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.10.50.20151027 (trunk snapshot). Date: Thu, 23 Jul 2026 18:32:01 GMT Message-ID: <178483152104.1.16849015854953975329.rpms-gdb-23f398e61a85@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 23f398e61a85e64e6d7f6288e7ae000db543885f QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogMjNmMzk4ZTYxYTg1ZTY0ZTZkN2Y2Mjg4ZTdhZTAwMGRi NTQzODg1ZgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNS0xMS0wM1QyMjoyODozNiswMTowMApTdGF0cyAgOiArMTc5My8tMzY3 OCBpbiAyNSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvZ2RiL2MvMjNmMzk4ZTYxYTg1ZTY0ZTZkN2Y2Mjg4ZTdhZTAwMGRiNTQzODg1Zj9icmFuY2g9 Zml4LWR1cC1wYXRjaAoKTG9nOgpSZWJhc2UgdG8gRlNGIEdEQiA3LjEwLjUwLjIwMTUxMDI3ICh0 cnVuayBzbmFwc2hvdCkuCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3Jl CmluZGV4IGZkYmY0ZGQuLmQ3MzJmZDQgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdp dGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMjI1NTIx LnRhci54egotL2dkYi03LjEwLnRhci54egorL2dkYi03LjEwLjUwLjIwMTUxMDI3LnRhci54egoK ZGlmZiAtLWdpdCBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoIGIvZ2RiLTYuMy1y ZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKaW5kZXggOGVlYjU5Yy4uZWY4Y2Y1MSAxMDA2NDQKLS0t IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKKysrIGIvZ2RiLTYuMy1yZWFkbmV2 ZXItMjAwNTA5MDcucGF0Y2gKQEAgLTExLDEwICsxMSwxMCBAQAogCiAgICAgICAgICogZ2RiLnRl eGluZm8gKEZpbGUgT3B0aW9ucyk6IERvY3VtZW50IC0tcmVhZG5ldmVyLgogCi1JbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTUtMDUtMzEgMTY6MzQ6NTguNDM2 Mzc5NjYzICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTUtMDUtMzEgMTY6MzU6MDMuNDUyNDE2MzgxICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjIub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTUtMTAtMjIgMjI6MTY6NTAuNDgzNDgy Mjg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2RvYy9nZGIudGV4aW5mbwky MDE1LTEwLTIyIDIyOjI4OjIyLjA0MjU1NDE0MiArMDIwMAogQEAgLTEwMzIsNiArMTAzMiwxMiBA QCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhlIGRlZmF1bHQs IHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQuCiAgVGhp cyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25zIGZhc3Rl ci4KQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9j L2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1vZGUgT3B0aW9ucwotSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21haW4uYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDIyL2dkYi9tYWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL21haW4uYwkyMDE1LTA1LTMxIDE2OjM0OjU4LjQzOTM3OTY4NSArMDIwMAotKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL21haW4uYwkyMDE1LTA1LTMxIDE2OjM1OjIwLjU0NzU0MTUxOCAr MDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL21haW4uYwkyMDE1LTEwLTIy IDIyOjE2OjUwLjQ4NTQ4MjI5OSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9t YWluLmMJMjAxNS0xMC0yMiAyMjoyODoyMi4wNDI1NTQxNDIgKzAyMDAKIEBAIC02MDQsNiArNjA0 LDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7InR1aSIsIG5vX2FyZ3Vt ZW50LCAwLCBPUFRfVFVJfSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3VtZW50LCAmZGJ4X2NvbW1h bmRzLCAxfSwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvbWFpbi5jCiAgICAtLXdyaXRlICAgICAgICAgICAgU2V0IHdyaXRpbmcgaW50byBleGVjdXRh YmxlIGFuZCBjb3JlIGZpbGVzLlxuXG5cCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRl cmVkIChfKCJcCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3ltZmlsZS5jCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTUtMDUtMzEgMTY6MzQ6NTgu NDQwMzc5NjkyICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3ltZmlsZS5jCTIw MTUtMDUtMzEgMTY6MzU6MDMuNDU0NDE2Mzk1ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEw MjIub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTUtMTAtMjIgMjI6MTY6NTAuNDg2NDgyMzA1ICswMjAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3N5bWZpbGUuYwkyMDE1LTEwLTIyIDIyOjI4 OjIyLjA0MzU1NDE0OCArMDIwMAogQEAgLTgwLDYgKzgwLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJf c3ltdGFiX3VzZXJzX2NsZWFudXAgKAogIAogIC8qIEdsb2JhbCB2YXJpYWJsZXMgb3duZWQgYnkg dGhpcyBmaWxlLiAgKi8KQEAgLTYwLDMzICs2MCwzMyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvc3ltZmlsZS5jCiAgCiAgLyogRnVuY3Rpb25zIHRoaXMgZmlsZSBkZWZpbmVzLiAg Ki8KICAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wNS0zMSAxNjoz NDo1OC40NDYzNzk3MzYgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJy ZWFkLmMJMjAxNS0wNS0zMSAxNjozNTowMy40NTk0MTY0MzIgKzAyMDAKLUBAIC02OSw2ICs2OSw3 IEBACi0gI2luY2x1ZGUgInNvdXJjZS5oIgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcv Z2RiL2R3YXJmMnJlYWQuYwkyMDE1LTEwLTIyIDIyOjI4OjIyLjA0NjU1NDE2NSArMDIwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0xMC0yMiAyMjoyOTox Ny42NjQ4ODE2NDIgKzAyMDAKK0BAIC03MCw2ICs3MCw3IEBACiAgI2luY2x1ZGUgImZpbGVzdHVm Zi5oIgogICNpbmNsdWRlICJidWlsZC1pZC5oIgorICNpbmNsdWRlICJuYW1lc3BhY2UuaCIKICsj aW5jbHVkZSAidG9wLmgiCiAgCiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgotQEAgLTIwNTAsNyArMjA1MSw4IEBAIGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUKK0BAIC0yMDU5LDcgKzIwNjAsOCBAQCBkd2FyZjJfaGFzX2luZm8gKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9p ZCAqKSBuYW1lcyk7CiAgICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlID0gb2JqZmls ZTsKICAgICAgfQogLSAgcmV0dXJuICghZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLmlzX3ZpcnR1 YWwKICsgIHJldHVybiAhcmVhZG5ldmVyX3N5bWJvbF9maWxlcyAmJgogKwkgKCFkd2FyZjJfcGVy X29iamZpbGUtPmluZm8uaXNfdmlydHVhbAotIAkgICYmIGR3YXJmMl9wZXJfb2JqZmlsZS0+aW5m by5zLmFzZWN0aW9uICE9IE5VTEwKKyAJICAmJiBkd2FyZjJfcGVyX29iamZpbGUtPmluZm8ucy5z ZWN0aW9uICE9IE5VTEwKICAJICAmJiAhZHdhcmYyX3Blcl9vYmpmaWxlLT5hYmJyZXYuaXNfdmly dHVhbAotIAkgICYmIGR3YXJmMl9wZXJfb2JqZmlsZS0+YWJicmV2LnMuYXNlY3Rpb24gIT0gTlVM TCk7Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdG9wLmgKKyAJICAmJiBkd2FyZjJf cGVyX29iamZpbGUtPmFiYnJldi5zLnNlY3Rpb24gIT0gTlVMTCk7CitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3RvcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi90b3AuaAkyMDE1LTA1LTMxIDE2OjM0OjU4LjQ0ODM3OTc1MSArMDIwMAotKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RvcC5oCTIwMTUtMDUtMzEgMTY6MzU6MDMuNDU5NDE2 NDMyICswMjAwCi1AQCAtNjcsNiArNjcsNyBAQCBleHRlcm4gdm9pZCBzZXRfcHJvbXB0IChjb25z dCBjaGFyICpzKTsKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi90b3AuaAkyMDE1 LTEwLTIyIDIyOjE2OjUwLjQ5MDQ4MjMyOSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi90b3AuaAkyMDE1LTEwLTIyIDIyOjI4OjIyLjA0NzU1NDE3MSArMDIwMAorQEAgLTc0LDYg Kzc0LDcgQEAgZXh0ZXJuIGludCBnZGJfaW5fc2Vjb25kYXJ5X3Byb21wdF9wICh2bwogIAogIC8q IEZyb20gcmFuZG9tIHBsYWNlcy4gICovCiAgZXh0ZXJuIGludCByZWFkbm93X3N5bWJvbF9maWxl czsKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCBkYzA1YzM5Li42NzljMGY1IDEwMDY0NAotLS0gYS9n ZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUu cGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY29y ZWxvdy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NvcmVsb3cuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY29yZWxvdy5jCTIwMTUtMDct MDkgMjI6MDU6MjAuOTg4MDQ0MzEyICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv Y29yZWxvdy5jCTIwMTUtMDctMDkgMjI6MDU6NDIuMDU3MjIyNzIyICswMjAwCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvY29yZWxvdy5jCTIwMTUtMTAtMjIgMjI6MzA6NDYuMjI2 NDAzMDg3ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NvcmVsb3cuYwkyMDE1 LTEwLTIyIDIyOjMwOjQ5LjI2NjQyMDk4NiArMDIwMAogQEAgLTQ1LDYgKzQ1LDEwIEBACiAgI2lu Y2x1ZGUgImdkYl9iZmQuaCIKICAjaW5jbHVkZSAiY29tcGxldGVyLmgiCkBAIC05NCwxMSArOTQs MTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5V TEwsIE5VTEwsIE5VTEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTA3LTA5IDIyOjA1OjIw Ljk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2NzIyMjgwNiArMDIwMAotQEAgLTE4MzA0LDYgKzE4 MzA0LDI3IEBAIGluZm9ybWF0aW9uIGZpbGVzLgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9y aWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIzMzQwMzEyOCArMDIw MAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNS0xMC0y MiAyMjozMDo0OS4yNzE0MjEwMTUgKzAyMDAKK0BAIC0xODQ5NSw2ICsxODQ5NSwyNyBAQCBpbmZv cm1hdGlvbiBmaWxlcy4KICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjYsMTAgKzEyNiwxMCBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBA Y29kZXsuZ251X2RlYnVnbGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlv bnMKICBBIGRlYnVnIGxpbmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUg ZmlsZSBuYW1lZAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3NvbGliLXN2cjQuYwor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTA3LTA5 IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Nv bGliLXN2cjQuYwkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2ODIyMjgxNSArMDIwMAorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ2 LjIzNTQwMzE0MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zb2xpYi1zdnI0 LmMJMjAxNS0xMC0yMiAyMjozMDo0OS4yNzI0MjEwMjEgKzAyMDAKIEBAIC00NSw2ICs0NSw3IEBA CiAgI2luY2x1ZGUgImF1eHYuaCIKICAjaW5jbHVkZSAiZ2RiX2JmZC5oIgpAQCAtMTM4LDcgKzEz OCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zb2xpYi1zdnI0LmMKICAKICBz dGF0aWMgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKnN2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0 cyAodm9pZCk7CiAgc3RhdGljIGludCBzdnI0X2hhdmVfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7 Ci1AQCAtMTM3OSw5ICsxMzgwLDUyIEBAIHN2cjRfcmVhZF9zb19saXN0IChDT1JFX0FERFIgbG0s IENPUkVfQUQKK0BAIC0xNDE2LDkgKzE0MTcsNTIgQEAgc3ZyNF9yZWFkX3NvX2xpc3QgKENPUkVf QUREUiBsbSwgQ09SRV9BRAogIAkgIGNvbnRpbnVlOwogIAl9CiAgCkBAIC0xOTQsMTEgKzE5NCwx MSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc29saWItc3ZyNC5jCiAgICAgICAg eGZyZWUgKGJ1ZmZlcik7CiAgCiAgICAgICAgLyogSWYgdGhpcyBlbnRyeSBoYXMgbm8gbmFtZSwg b3IgaXRzIG5hbWUgbWF0Y2hlcyB0aGUgbmFtZQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2VsZnJlYWQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9lbGZyZWFkLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2VsZnJlYWQuYwky MDE1LTA3LTA5IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2VsZnJlYWQuYwkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2ODIyMjgxNSArMDIwMAotQEAg LTEyNTAsOSArMTI1MCwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTUtMTAt MjIgMjI6MzA6NDYuMjM1NDAzMTQwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L2VsZnJlYWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI3MjQyMTAyMSArMDIwMAorQEAgLTEyNTks OSArMTI1OSwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCiAg CSAgICYmIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gTlVMTAogIAkgICAmJiBv YmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rID09IE5VTEwpCiAgICAgIHsK QEAgLTIxMSw3ICsyMTEsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZWxmcmVh ZC5jCiAgCiAgICAgICAgaWYgKGRlYnVnZmlsZSA9PSBOVUxMKQogIAlkZWJ1Z2ZpbGUgPSBmaW5k X3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfZGVidWdsaW5rIChvYmpmaWxlKTsKLUBAIC0xMjY2LDYg KzEyNjcsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAorQEAg LTEyNzUsNiArMTI3NiwxMiBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsCiAgCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBkZWJ1Z2ZpbGUsIHN5bWZp bGVfZmxhZ3MsIG9iamZpbGUpOwogIAkgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKICAJfQpAQCAt MjI0LDEwICsyMjQsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2VsZnJlYWQu YwogICAgICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3N5bWZpbGUu aAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zeW1maWxlLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE1LTA3LTA5IDIy OjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3N5bWZp bGUuaAkyMDE1LTA3LTA5IDIyOjA1OjQyLjA2ODIyMjgxNSArMDIwMAorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDIyLm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIzNjQwMzE0 NSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9zeW1maWxlLmgJMjAxNS0xMC0y MiAyMjozMDo0OS4yNzM0MjEwMjcgKzAyMDAKIEBAIC01ODQsNiArNTg0LDEwIEBAIHZvaWQgZXhw YW5kX3N5bXRhYnNfbWF0Y2hpbmcgKGV4cGFuZF9zeW0KICB2b2lkIG1hcF9zeW1ib2xfZmlsZW5h bWVzIChzeW1ib2xfZmlsZW5hbWVfZnR5cGUgKmZ1biwgdm9pZCAqZGF0YSwKICAJCQkgICBpbnQg bmVlZF9mdWxsbmFtZSk7CkBAIC0yMzksMTEgKzIzOSwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKICAvKiBO YW1lcyBmb3IgYSBkd2FyZjIgZGVidWdnaW5nIHNlY3Rpb24uICBUaGUgZmllbGQgTk9STUFMIGlz IHRoZSBub3JtYWwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90ZXN0c3VpdGUvbGli L2dkYi5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90ZXN0 c3VpdGUvbGliL2dkYi5leHAJMjAxNS0wNy0wOSAyMjowNToyMC45ODgwNDQzMTIgKzAyMDAKLSsr KyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNS0wNy0w OSAyMjowNTo0Mi4wNzAyMjI4MzIgKzAyMDAKLUBAIC0xNTczLDYgKzE1NzMsMTYgQEAgcHJvYyBk ZWZhdWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIzNzQwMzE1MSArMDIw MAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAx NS0xMC0yMiAyMjozMDo0OS4yNzM0MjEwMjcgKzAyMDAKK0BAIC0xNjQwLDYgKzE2NDAsMTYgQEAg cHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0 IHRoZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yNjAsMTEgKzI2MCwxMSBAQCBJbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgICAgIHJl dHVybiAwCiAgfQogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Rlc3RzdWl0ZS9s aWIvbWktc3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1 aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3 MDkub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE1LTA3LTA5IDIyOjA1 OjIwLjk4ODA0NDMxMiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Rlc3RzdWl0 ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNS0wNy0wOSAyMjowNTo0Mi4wNzAyMjI4MzIgKzAyMDAK LUBAIC0yMTQsNiArMjE0LDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0g eworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3Vw cG9ydC5leHAJMjAxNS0xMC0yMiAyMjozMDo0OS4yNzQ0MjEwMzMgKzAyMDAKKysrKyBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE1LTEwLTIy IDIyOjMxOjI0Ljg2OTYzMTU3NSArMDIwMAorQEAgLTIwNCw2ICsyMDQsMTYgQEAgcHJvYyBkZWZh dWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQg dGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAgIH0KQEAgLTI3OCwxNCArMjc4LDE0IEBAIEluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCiAr CSAgICB3YXJuaW5nICJDb3VsZCBub3QgZGlzYWJsZSB0aGUgbWlzc2luZyBkZWJ1ZyBpbmZvcyB3 YXJuaW5ncy4uIgogKwl9CiArICAgIH0KLSAgICAgIyBJZiBhbGxvd2luZyB0aGUgaW5mZXJpb3Ig dG8gaGF2ZSBpdHMgb3duIFBUWSB0aGVuIGFzc2lnbiB0aGUgaW5mZXJpb3IKLSAgICAgIyBpdHMg b3duIHRlcm1pbmFsIGRldmljZSBoZXJlLgorIAorICAgICAjIENyZWF0ZSB0aGUgbmV3IFBUWSBm b3IgdGhlIGluZmVyaW9yIHByb2Nlc3MuCiAgICAgIGlmIHsgJHNlcGFyYXRlX2luZmVyaW9yX3B0 eSB9IHsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9vYmpmaWxlcy5oCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL29iamZpbGVzLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxNS0wNy0wOSAyMjowNToyMC45 ODgwNDQzMTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9vYmpmaWxlcy5oCTIw MTUtMDctMDkgMjI6MDU6NDIuMDcxMjIyODQwICswMjAwCi1AQCAtNDU5LDYgKzQ1OSwxMCBAQCBz dHJ1Y3Qgb2JqZmlsZQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL29iamZpbGVz LmgJMjAxNS0xMC0yMiAyMjozMDo0Ni4yMzg0MDMxNTcgKzAyMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvb2JqZmlsZXMuaAkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI3NDQyMTAzMyArMDIw MAorQEAgLTQ4OSw2ICs0ODksMTAgQEAgc3RydWN0IG9iamZpbGUKICAKICAjZGVmaW5lIE9CSkZf Tk9UX0ZJTEVOQU1FICgxIDw8IDYpCiAgCkBAIC0yOTYsMTAgKzI5NiwxMCBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvb2JqZmlsZXMuaAogIC8qIERlY2xhcmF0aW9ucyBmb3IgZnVu Y3Rpb25zIGRlZmluZWQgaW4gb2JqZmlsZXMuYyAqLwogIAogIGV4dGVybiBzdHJ1Y3Qgb2JqZmls ZSAqYWxsb2NhdGVfb2JqZmlsZSAoYmZkICosIGNvbnN0IGNoYXIgKm5hbWUsIGludCk7Ci1JbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4 cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29y ZWZpbGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTUtMDctMDkgMjI6MDU6MjAuOTg4MDQ0 MzEyICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2NvcmVmaWxlLmV4cAkyMDE1LTA3LTA5IDIyOjA1OjQyLjA3MTIyMjg0MCArMDIwMAorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5l eHAJMjAxNS0xMC0yMiAyMjozMDo0Ni4yMzg0MDMxNTcgKzAyMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE1LTEwLTIyIDIy OjMwOjQ5LjI3NDQyMTAzMyArMDIwMAogQEAgLTI5MywzICsyOTMsMzMgQEAgZ2RiX3Rlc3RfbXVs dGlwbGUgImNvcmUtZmlsZSAkY29yZWZpbGUiCiAgCXBhc3MgJHRlc3QKICAgICAgfQpAQCAtMzM0 LDEwICszMzQsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9jb3JlZmlsZS5leHAKICsgICAgZ2RiX3Rlc3QgImluZm8gZmlsZXMiICJMb2NhbCBl eGVjIGZpbGU6XHJcblxbIFx0XF0qYFtzdHJpbmdfdG9fcmVnZXhwICRkZWJ1Z2Rpci8kYnVpbGRp ZF0nLCBmaWxlIHR5cGUgLioiCiArICAgIHBhc3MgJHdob2xldGVzdAogK30KLUluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9y aWcvZ2RiL2J1aWxkLWlkLmMJMjAxNS0wNy0wOSAyMjowNToyMC45ODgwNDQzMTIgKzAyMDAKLSsr KyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5jCTIwMTUtMDctMDkgMjI6MTk6MzUu MDIyOTU3MDA5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYnVpbGQt aWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIzODQwMzE1NyArMDIwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi9idWlsZC1pZC5jCTIwMTUtMTAtMjIgMjI6MzQ6MzYuNTc5Nzc0NjYyICsw MjAwCiBAQCAtMjYsMTEgKzI2LDY3IEBACiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAgI2luY2x1 ZGUgImZpbGVuYW1lcy5oIgpAQCAtNzY1LDcgKzc2NSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9idWlsZC1pZC5jCiAgCiAgICBpZiAoZm91bmQgPT0gTlVMTCkKICAgICAgd2Fy bmluZyAoXygiRmlsZSBcIiVzXCIgaGFzIG5vIGJ1aWxkLWlkLCBmaWxlIHNraXBwZWQiKSwKLUBA IC02NSwyMCArNDYzLDU2IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoYmZkICphYmZkLCBzaXplX3QgY2hl Y2sKK0BAIC02NSwyMyArNDYzLDU2IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoYmZkICphYmZkLCBzaXpl X3QgY2hlY2sKICAgIHJldHVybiByZXR2YWw7CiAgfQogIApAQCAtODE4LDE1ICs4MTgsMTggQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2J1aWxkLWlkLmMKICAgIHN0cnVjdCBjbGVh bnVwICpiYWNrX3RvOwogICAgaW50IGl4OwogICAgYmZkICphYmZkID0gTlVMTDsKKy0gIGludCBh bGxvY19sZW47CiAgCiAgICAvKiBERUJVR19GSUxFX0RJUkVDVE9SWS8uYnVpbGQtaWQvYWIvY2Rl ZiAqLwotLSAgbGluayA9IGFsbG9jYSAoc3RybGVuIChkZWJ1Z19maWxlX2RpcmVjdG9yeSkgKyAo c2l6ZW9mICIvLmJ1aWxkLWlkLyIgLSAxKSArIDEKLS0JCSArIDIgKiBidWlsZF9pZF9sZW4gKyAo c2l6ZW9mICIuZGVidWciIC0gMSkgKyAxKTsKKy0gIGFsbG9jX2xlbiA9IChzdHJsZW4gKGRlYnVn X2ZpbGVfZGlyZWN0b3J5KQorLQkgICAgICAgKyAoc2l6ZW9mICIvLmJ1aWxkLWlkLyIgLSAxKSAr IDEKKy0JICAgICAgICsgMiAqIGJ1aWxkX2lkX2xlbiArIChzaXplb2YgIi5kZWJ1ZyIgLSAxKSAr IDEpOworLSAgbGluayA9IChjaGFyICopIGFsbG9jYSAoYWxsb2NfbGVuKTsKICsgIGxpbmsgPSB4 bWFsbG9jIChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0b3J5KSArIDIgKiBidWlsZF9pZF9sZW4g KyA1MCk7CiAgCiAgICAvKiBLZWVwIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgc28gdGhhdCBERUJV R19GSUxFX0RJUkVDVE9SWSBiZWluZyAiIiB3aWxsCiAgICAgICBjYXVzZSAiLy5idWlsZC1pZC8u Li4iIGxvb2t1cHMuICAqLwotQEAgLTkxLDkgKzUyNSwxMiBAQCBidWlsZF9pZF90b19kZWJ1Z19i ZmQgKHNpemVfdCBidWlsZF9pZF9sCitAQCAtOTQsOSArNTI1LDEyIEBAIGJ1aWxkX2lkX3RvX2Rl YnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2wKICAgICAgICBzaXplX3QgZGVidWdkaXJfbGVuID0g c3RybGVuIChkZWJ1Z2Rpcik7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmRhdGEgPSBidWlsZF9p ZDsKICAgICAgICBzaXplX3Qgc2l6ZSA9IGJ1aWxkX2lkX2xlbjsKQEAgLTg0MCw3ICs4NDMsNyBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYnVpbGQtaWQuYwogIAogICAgICAgIG1l bWNweSAobGluaywgZGVidWdkaXIsIGRlYnVnZGlyX2xlbik7CiAgICAgICAgcyA9ICZsaW5rW2Rl YnVnZGlyX2xlbl07Ci1AQCAtMTA3LDQ3ICs1NDQsMjgxIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2Jm ZCAoc2l6ZV90IGJ1aWxkX2lkX2wKK0BAIC0xMTAsNDcgKzU0NCwyODEgQEAgYnVpbGRfaWRfdG9f ZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbAogIAkqcysrID0gJy8nOwogICAgICAgIHdoaWxl IChzaXplLS0gPiAwKQogIAlzICs9IHNwcmludGYgKHMsICIlMDJ4IiwgKHVuc2lnbmVkKSAqZGF0 YSsrKTsKQEAgLTExNDEsNyArMTE0NCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9idWlsZC1pZC5jCiAgICAgICAgLyogUHJldmVudCBsb29waW5nIG9uIGEgc3RyaXBwZWQgLmRl YnVnIGZpbGUuICAqLwogICAgICAgIGlmIChhYmZkICE9IE5VTEwKICAJICAmJiBmaWxlbmFtZV9j bXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLAotQEAgLTE2NywzICs4MzgsMjEgQEAgZmluZF9z ZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgorQEAgLTE3MCwzICs4MzgsMjEgQEAg ZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgogICAgICB9CiAgICByZXR1 cm4gTlVMTDsKICB9CkBAIC0xMTYzLDEwICsxMTY2LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9idWlsZC1pZC5jCiArCiArICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9j aGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwogK30KLUluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL2J1aWxkLWlkLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9y aWcvZ2RiL2J1aWxkLWlkLmgJMjAxNS0wNy0wOSAyMjowNToyMC45ODgwNDQzMTIgKzAyMDAKLSsr KyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9idWlsZC1pZC5oCTIwMTUtMDctMDkgMjI6MDU6NDIu MDcyMjIyODQ5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYnVpbGQt aWQuaAkyMDE1LTEwLTIyIDIyOjMwOjQ2LjIzOTQwMzE2MyArMDIwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi9idWlsZC1pZC5oCTIwMTUtMTAtMjIgMjI6MzA6NDkuMjc1NDIxMDM5ICsw MjAwCiBAQCAtMjAsOSArMjAsMTAgQEAKICAjaWZuZGVmIEJVSUxEX0lEX0gKICAjZGVmaW5lIEJV SUxEX0lEX0gKQEAgLTEyMDEsMTEgKzEyMDQsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2J1aWxkLWlkLmgKICsJCQkJCSAgICAgICBjaGFyICoqYnVpbGRfaWRfZmlsZW5hbWVf cmV0dXJuKTsKICAKICAjZW5kaWYgLyogQlVJTERfSURfSCAqLwotSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcv Z2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA3LTA5IDIyOjA1OjIwLjk4ODA0NDMxMiArMDIwMAotKysr IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA3LTA5IDIyOjA1OjQy LjA3NzIyMjg5MSArMDIwMAotQEAgLTI1MDcsNyArMjUwNyw3IEBAIGR3YXJmMl9nZXRfZHd6X2Zp bGUgKHZvaWQpCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZHdhcmYycmVhZC5j CTIwMTUtMTAtMjIgMjI6MzA6NDYuMjQyNDAzMTgxICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ5LjI3ODQyMTA1NyArMDIw MAorQEAgLTI1MTQsNyArMjUxNCw3IEBAIGR3YXJmMl9nZXRfZHd6X2ZpbGUgKHZvaWQpCiAgICAg IH0KICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCkBAIC0xMjE0LDEwICsxMjE3LDEwIEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJyZWFkLmMKICAKICAgIGlmIChkd3pf YmZkID09IE5VTEwpCiAgICAgIGVycm9yIChfKCJjb3VsZCBub3QgZmluZCAnLmdudV9kZWJ1Z2Fs dGxpbmsnIGZpbGUgZm9yICVzIiksCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0 aG9uL3B5LW9iamZpbGUuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9weXRob24v cHktb2JqZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dk Yi9weXRob24vcHktb2JqZmlsZS5jCTIwMTUtMDctMDkgMjI6MDU6MjAuOTg4MDQ0MzEyICswMjAw Ci0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE1LTA3 LTA5IDIyOjA1OjQyLjA3NzIyMjg5MSArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9y aWcvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAxNS0xMC0yMiAyMjozMDo0Ni4yNDM0MDMxODcg KzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwky MDE1LTEwLTIyIDIyOjMwOjQ5LjI3ODQyMTA1NyArMDIwMAogQEAgLTEzOSw3ICsxMzksNyBAQCBv YmpmcHlfZ2V0X2J1aWxkX2lkIChQeU9iamVjdCAqc2VsZiwgdm9pCiAgCiAgICBUUlkKQEAgLTEy MzYsMTAgKzEyMzksMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3B5dGhvbi9w eS1vYmpmaWxlLmMKICAgICAgICBpZiAob2JmZF9idWlsZF9pZCA9PSBOVUxMKQogIAljb250aW51 ZTsKICAgICAgICBpZiAob2JqZnB5X2J1aWxkX2lkX21hdGNoZXMgKG9iZmRfYnVpbGRfaWQsIGJ1 aWxkX2lkKSkKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jb2ZmcmVhZC5jCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NvZmZyZWFkLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAxNS0wNy0wOSAyMjowNToy MC45ODgwNDQzMTIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jb2ZmcmVhZC5j CTIwMTUtMDctMDkgMjI6MDU6NDIuMDc4MjIyODk5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjIub3JpZy9nZGIvY29mZnJlYWQuYwkyMDE1LTEwLTIyIDIyOjMwOjQ2LjI0NDQwMzE5MyAr MDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9jb2ZmcmVhZC5jCTIwMTUtMTAtMjIg MjI6MzA6NDkuMjc4NDIxMDU3ICswMjAwCiBAQCAtNzM5LDcgKzczOSw3IEBAIGNvZmZfc3ltZmls ZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmkKICAgICAgewogICAgICAgIGNoYXIgKmRlYnVn ZmlsZTsKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0 Y2ggYi9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0Y2gKaW5kZXggMjZjOTI4 ZC4uZDEzMTU4MCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZv LnBhdGNoCisrKyBiL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5wYXRjaApAQCAt MywxMCArMywxMCBAQAogCVBvcnQgdG8gR0RCLTYuOHByZS4KIAlSZW1vdmUgdGhlIGBbJyBjaGFy YWN0ZXIgZnJvbSB0aGUgR0RCLTYuOCBkZWZhdWx0IG1lc3NhZ2UuCiAKLUluZGV4OiBnZGItNy45 LjUwLjIwMTUwNTMxL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guYworSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2gu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9m b3JrLWRldGFjaC5jCTIwMTUtMDUtMzEgMTg6MjM6NDkuMDA4NDUwNzE2ICswMjAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCTIw MTUtMTAtMjcgMjI6Mzg6NDYuNjkzNDU5NTY5ICswMTAwCiBAQCAtMCwwICsxLDU3IEBACiArLyog VGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTY1 LDEwICs2NSwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ZvcmstZGV0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Zvcmst ZGV0YWNoLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9mb3JrLWRldGFjaC5leHAJMjAxNS0wNS0zMSAxODoyMzo0OS4wMDg0NTA3MTYgKzAy MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Zvcmst ZGV0YWNoLmV4cAkyMDE1LTEwLTI3IDIyOjM4OjQ2LjY5MzQ1OTU2OSArMDEwMAogQEAgLTAsMCAr MSwzNiBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiArCkBAIC0xMDYsMTEgKzEwNiwxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmV4cAogK2dkYl90ZXN0ICIiIFwKICsgICAg ICAgICAiRGV0YWNoaW5nIGFmdGVyIGZvcmsgZnJvbSBjaGlsZCBwcm9jZXNzLipcXFxbSW5mZXJp b3IgLiogZXhpdGVkIG5vcm1hbGx5XFxcXSIgXAogKyAgICAgICAgICJJbmZvIG1lc3NhZ2UgY2F1 Z2h0IgotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41 MC4yMDE1MDUzMS5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTA1LTMxIDE4OjIzOjQxLjcwMzQwNTYx NyArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2luZnJ1bi5jCTIwMTUtMDUtMzEg MTg6MjM6NDkuMDExNDUwNzM1ICswMjAwCi1AQCAtNDQzLDcgKzQ0Myw3IEBAIGhvbGRpbmcgdGhl IGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9pbmZydW4uYwkyMDE1LTEwLTI3IDIyOjM4OjM0LjMzMzM4NjkzOSArMDEwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9pbmZydW4uYwkyMDE1LTEwLTI3IDIyOjM4OjQ2LjY5 NTQ1OTU4MSArMDEwMAorQEAgLTQ3Nyw3ICs0NzcsNyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9w cGVkLiAgVHJ5IFwic2V0IGRlCiAgCSAgICAgIHJlbW92ZV9icmVha3BvaW50c19waWQgKHB0aWRf Z2V0X3BpZCAoaW5mZXJpb3JfcHRpZCkpOwogIAkgICAgfQogIApAQCAtMTE5LDMgKzExOSwyNSBA QCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMKICAJICAgIHsKICAJICAg ICAgLyogRW5zdXJlIHRoYXQgd2UgaGF2ZSBhIHByb2Nlc3MgcHRpZC4gICovCiAgCSAgICAgIHB0 aWRfdCBwcm9jZXNzX3B0aWQgPSBwaWRfdG9fcHRpZCAocHRpZF9nZXRfcGlkIChjaGlsZF9wdGlk KSk7CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j YXRjaC1zeXNjYWxsLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYXRjaC1zeXNjYWxsLmV4cAkyMDE1LTEwLTI3IDIy OjQzOjQ3LjAxNTIyNDMyMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvY2F0Y2gtc3lzY2FsbC5leHAJMjAxNS0xMC0yNyAyMjo0NDoyOS4zMjc0 NzI5NTUgKzAxMDAKK0BAIC0xNjUsNyArMTY1LDcgQEAgcHJvYyBjaGVja19mb3JfcHJvZ3JhbV9l bmQge30geworICAgICAjIERlbGV0aW5nIHRoZSBjYXRjaHBvaW50cworICAgICBkZWxldGVfYnJl YWtwb2ludHMKKyAKKy0gICAgZ2RiX2NvbnRpbnVlX3RvX2VuZAorKyAgICBnZGJfY29udGludWVf dG9fZW5kICIiIGNvbnRpbnVlIDEKKyB9CisgCisgcHJvYyB0ZXN0X2NhdGNoX3N5c2NhbGxfd2l0 aG91dF9hcmdzIHt9IHsKK0BAIC0yMzYsNyArMjM2LDcgQEAgcHJvYyB0ZXN0X2NhdGNoX3N5c2Nh bGxfd2l0aF93cm9uZ19hcmdzCisgCSMgSWYgaXQgZG9lc24ndCwgZXZlcnl0aGluZyBpcyByaWdo dCAoc2luY2Ugd2UgZG9uJ3QgaGF2ZQorIAkjIGEgc3lzY2FsbCBuYW1lZCAibWxvY2siIGluIGl0 KS4gIE90aGVyd2lzZSwgdGhpcyBpcyBhIGZhaWx1cmUuCisgCXNldCB0aGlzdGVzdCAiY2F0Y2gg c3lzY2FsbCB3aXRoIHVudXNlZCBzeXNjYWxsICgkc3lzY2FsbF9uYW1lKSIKKy0JZ2RiX2NvbnRp bnVlX3RvX2VuZCAkdGhpc3Rlc3QKKysJZ2RiX2NvbnRpbnVlX3RvX2VuZCAkdGhpc3Rlc3QgY29u dGludWUgMQorICAgICB9CisgfQorIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtc2NoZWR1bGVyX2xv Y2tpbmctc3RlcC1pcy1kZWZhdWx0LnBhdGNoIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1z dGVwLWlzLWRlZmF1bHQucGF0Y2gKaW5kZXggZThlMDU5NS4uNDk2N2I5MiAxMDA2NDQKLS0tIGEv Z2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0Y2gKKysrIGIvZ2Ri LTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLWlzLWRlZmF1bHQucGF0Y2gKQEAgLTEsMjEgKzEs MjEgQEAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9pbmZydW4uYworSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDIyL2dkYi9pbmZydW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljcu NTAuMjAxNDA2MDkub3JpZy9nZGIvaW5mcnVuLmMJMjAxNC0wNi0xMyAyMDowODo1MS4yMjU2OTky MDMgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9pbmZydW4uYwkyMDE0LTA2LTEz IDIwOjA4OjU1LjUxNTcwMzQ2NiArMDIwMAotQEAgLTE2NjEsNyArMTY2MSw3IEBAIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBzY2hlZHVsZXJfZW51bXMKLSAgIHNjaGVkbG9ja19zdGVwLAorLS0t IGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMTAtMjIgMjI6MzA6 MTUuODg3MjI0NDUyICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2luZnJ1bi5j CTIwMTUtMTAtMjIgMjI6MzA6MjUuNzQyMjgyNDc4ICswMjAwCitAQCAtMjE3NSw3ICsyMTc1LDcg QEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNjaGVkdWxlcl9lbnVtcworICAgc2NoZWRsb2Nr X3JlcGxheSwKICAgIE5VTEwKICB9OwotLXN0YXRpYyBjb25zdCBjaGFyICpzY2hlZHVsZXJfbW9k ZSA9IHNjaGVkbG9ja19vZmY7Cistc3RhdGljIGNvbnN0IGNoYXIgKnNjaGVkdWxlcl9tb2RlID0g c2NoZWRsb2NrX3JlcGxheTsKICtzdGF0aWMgY29uc3QgY2hhciAqc2NoZWR1bGVyX21vZGUgPSBz Y2hlZGxvY2tfc3RlcDsKICBzdGF0aWMgdm9pZAogIHNob3dfc2NoZWR1bGVyX21vZGUgKHN0cnVj dCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCiAgCQkgICAgIHN0cnVjdCBjbWRfbGlzdF9l bGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAJMjAx NC0wNi0xMyAyMDowODo1NS41MTU3MDM0NjYgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAJMjAxNC0wNi0xMyAyMDowOToyNC44NjI3 MzI4MzIgKzAyMDAKLUBAIC0xODEsNyArMTgxLDcgQEAgbWlfZXhwZWN0X3N0b3AgImJyZWFrcG9p bnQtaGl0IiAibWFpbiIgIgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWktY2xpLmV4cAkyMDE1LTEwLTIyIDIyOjI5OjM4LjM1MjAwMzQ0NyArMDIw MAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5l eHAJMjAxNS0xMC0yMiAyMjozMDoxNS44ODgyMjQ0NTggKzAyMDAKK0BAIC0xOTksNyArMTk5LDcg QEAgbWlfZXhwZWN0X3N0b3AgImJyZWFrcG9pbnQtaGl0IiAibWFpbiIgIgogICMgVGVzdCB0aGF0 IHRoZSB0b2tlbiBpcyBvdXRwdXQgZXZlbiBmb3IgQ0xJIGNvbW1hbmRzCiAgIyBBbHNvIHRlc3Qg dGhhdCAqc3RvcHBlZCBpbmNsdWRlcyBmcmFtZSBpbmZvcm1hdGlvbi4KICBtaV9nZGJfdGVzdCAi MzQgbmV4dCIgXApAQCAtMjQsMTAgKzI0LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAKICAgICAgIjM0IG5leHQ6IHJ1biIKICAK ICAjIFRlc3QgdGhhdCB0aGUgbmV3IGN1cnJlbnQgc291cmNlIGxpbmUgaXMgb3V0cHV0IHRvIHRo ZSBjb25zb2xlCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS1sb2dnaW5nLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0 MDYwOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcuZXhwCTIwMTQtMDYtMTMg MjA6MDg6NTEuMjI3Njk5MjA1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS1sb2dnaW5nLmV4cAkyMDE0LTA2LTEzIDIwOjA4OjU1LjUxNjcwMzQ2 NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktbG9nZ2luZy5leHAJMjAxNS0xMC0yMiAyMjoyOTozOC4zNTIwMDM0NDcgKzAyMDAKKysr KyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1sb2dnaW5nLmV4 cAkyMDE1LTEwLTIyIDIyOjMwOjE1Ljg4ODIyNDQ1OCArMDIwMAogQEAgLTUzLDcgKzUzLDcgQEAg Y2xvc2UgJGNoYW4KICAKICBzZXQgbWlfbG9nX3Byb21wdCAiXFsoXF1nZGJcWylcXSBcW1xyXG5c XSsiCkBAIC00NiwxMCArNDYsMTAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAKICAgICAgcGFzcyAiUmVkaXJlY3QgbG9nIGZp bGUgY29udGVudHMiCiAgfSBlbHNlIHsKICAgICAgZmFpbCAiUmVkaXJlY3QgbG9nIGZpbGUgY29u dGVudHMiCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aS1jb25zb2xlLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pLWNvbnNvbGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYw OS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNvbnNvbGUuZXhwCTIwMTQtMDYtMTMgMjA6 MDg6NTEuMjI3Njk5MjA1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS1jb25zb2xlLmV4cAkyMDE0LTA2LTEzIDIwOjA4OjU1LjUxNjcwMzQ2NyAr MDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWktY29uc29sZS5leHAJMjAxNS0xMC0yMiAyMjoyOTozOC4zNTMwMDM0NTMgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jb25zb2xlLmV4cAky MDE1LTEwLTIyIDIyOjMwOjE1Ljg4ODIyNDQ1OCArMDIwMAogQEAgLTYwLDYgKzYwLDkgQEAgaWYg IHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LwogIAogIG1pX3J1bl90b19tYWlu CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2ggYi9nZGItYXJjaGVyLXZs YS10ZXN0cy5wYXRjaAppbmRleCBkMGZkMTgzLi41NTZmOWQxIDEwMDY0NAotLS0gYS9nZGItYXJj aGVyLXZsYS10ZXN0cy5wYXRjaAorKysgYi9nZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaApAQCAt MSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2Ri LmFkYS9wYWNrZWRfYXJyYXkuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rl c3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43 LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJ MjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTQtMDYtMTYgMjM6 MzA6MzAuMTA3OTQwNDgzICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE1LTEwLTI3IDAyOjQ4OjMyLjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2Ri LmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjEyODc3NjA1ICswMTAw CiBAQCAtNTYsNSArNTYsMTEgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiR0ZXN0IiAiJHRlc3QiIHsK ICAgICAgICAgICMgYXJlLiAgT2JzZXJ2ZWQgd2l0aCAoRlNGIEdOVSBBZGEgNC41LjMgMjAxMTAx MjQpLgogICAgICAgICAgeGZhaWwgJHRlc3QKQEAgLTE0LDEwICsxNCwxMCBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAog KyAgICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQt dmxhLXR5cGVkZWYtZm9vLlMJMjAxNC0wNi0xNiAyMzozMDozMC4xMDg5NDA0ODQgKzAyMDAKKysr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEt dHlwZWRlZi1mb28uUwkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMjg3NzYwNSArMDEwMAogQEAgLTAs MCArMSw0NTUgQEAKICsJLmZpbGUJIng4Nl82NC12bGEtdHlwZWRlZi5jIgogKwkuc2VjdGlvbgku ZGVidWdfYWJicmV2LCIiLEBwcm9nYml0cwpAQCAtNDc0LDEwICs0NzQsMTAgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVk ZWYtZm9vLlMKICsJLnN0cmluZwkiR05VIEMgNC4zLjIgMjAwODExMDUgKFJlZCBIYXQgNC4zLjIt NykiCiArCS5pZGVudAkiR0NDOiAoR05VKSA0LjMuMiAyMDA4MTEwNSAoUmVkIEhhdCA0LjMuMi03 KSIKICsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYu YworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2 XzY0LXZsYS10eXBlZGVmLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMJMjAxNC0wNi0xNiAyMzozMDozMC4x MDk5NDA0ODQgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjEzODc3NjEx ICswMTAwCiBAQCAtMCwwICsxLDQzIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdE QiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTUyMiwxMCArNTIyLDEwIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVm LmMKICt9CiArCiArI2VuZGlmCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0 LXZsYS10eXBlZGVmLmV4cAkyMDE0LTA2LTE2IDIzOjMwOjMwLjEwOTk0MDQ4NCArMDIwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10 eXBlZGVmLmV4cAkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMzg3NzYxMSArMDEwMAogQEAgLTAsMCAr MSw2NCBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiArCkBAIC01OTEsMTAgKzU5MSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKICtnZGJfdGVzdCAid2hh dGlzIGFycmF5IiAidHlwZSA9IGFycmF5X3QiICJzZWNvbmQ6IHdoYXRpcyBhcnJheSIKICsKICtn ZGJfdGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxbNzhcXFxdIiAic2Vjb25kOiBw dHlwZSBhcnJheSIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXJyYXlpZHguYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2 MTMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJMjAxNC0wNi0xMyAwMzo1 OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXJyYXlpZHguYwkyMDE0LTA2LTE2IDIzOjMwOjMwLjEwOTk0MDQ4NCArMDIw MAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9h cnJheWlkeC5jCTIwMTUtMTAtMjcgMDI6NDg6MzIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTUtMTEt MDMgMjI6MjM6MjcuMjEzODc3NjExICswMTAwCiBAQCAtMTcsNiArMTcsMTMgQEAKICAKICBpbnQg YXJyYXlbXSA9IHsxLCAyLCAzLCA0fTsKQEAgLTYwOSwxMCArNjA5LDEwIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogIGludAog IG1haW4gKHZvaWQpCiAgewotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljcu OTAuMjAxNDA2MTMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE0 LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNC0wNi0xNiAyMzozMDozMC4x MDk5NDA0ODQgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTUtMTAtMjcgMDI6NDg6MzIuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJh eWlkeC5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTM4Nzc2MTEgKzAxMDAKIEBAIC00OSw0ICs0 OSwxMiBAQCBnZGJfdGVzdCAicHJpbnQgYXJyYXkiIFwKICAgICAgICAgICAiXFx7XFxcWzBcXFxd ID0gMSwgXFxcWzFcXFxdID0gMiwgXFxcWzJcXFxdID0gMywgXFxcWzNcXFxdID0gNFxcfSIgXAog ICAgICAgICAgICJQcmludCBhcnJheSB3aXRoIGFycmF5LWluZGV4ZXMgb24iCkBAIC02MjcsMTAg KzYyNywxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmV4cAogKwl1bnN1cHBvcnRlZCAiJHRlc3QgKG5vIEdDQykiCiArICAgIH0K ICt9Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2lu dGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwt dmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE0LTA2LTE2IDIzOjMwOjMwLjEwOTk0MDQ4NCArMDIwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwt dmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMzg3NzYxMSArMDEwMAog QEAgLTAsMCArMSwyMCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBH TlUgZGVidWdnZXIuCiArCkBAIC02NTIsMTAgKzY1MiwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNz LmMKICtzdHJ1Y3QgewogKyAgaW50IGZpZWxkOwogK30gc3RhdGljc3RydWN0ID0geyAxIH07Ci1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFs LXZhci1maWVsZC1hZGRyZXNzLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZh ci1maWVsZC1hZGRyZXNzLmV4cAkyMDE0LTA2LTE2IDIzOjMwOjMwLjEwOTk0MDQ4NCArMDIwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwt dmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjEzODc3NjExICswMTAw CiBAQCAtMCwwICsxLDI2IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICsKQEAgLTY4MywxMCArNjgzLDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3Mu ZXhwCiArCiArZ2RiX3Rlc3Qge3NldCAkdmFyc3RydWN0ID0gc3RhdGljc3RydWN0fQogK2dkYl90 ZXN0IHtwICR2YXJzdHJ1Y3QuZmllbGR9ICIgPSAxIgotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYworSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMJMjAx NC0wNi0xNiAyMzozMDozMC4xMTA5NDA0ODUgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5jCTIwMTUtMTEtMDMgMjI6MjM6Mjcu MjEzODc3NjExICswMTAwCiBAQCAtMCwwICsxLDMxIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTcxOSwxMCArNzE5LDEwIEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1l LmMKICsgIGYgKHMpOwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5l eHAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTA5NDA0ODUgKzAyMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5leHAJMjAxNS0xMS0wMyAy MjoyMzoyNy4yMTM4Nzc2MTEgKzAxMDAKIEBAIC0wLDAgKzEsMzggQEAKICsjIENvcHlyaWdodCAy MDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTc2MiwxMCArNzYyLDEw IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LWZyYW1lLmV4cAogK30KICsKICtnZGJfdGVzdCAiYnQgZnVsbCIgIlxyXG4gK3MgPSBcIlhcXFxc MDAwXCJcclxuLioiCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS1vdmVyZmxvdy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwkyMDE0LTA2LTE2IDIz OjMwOjMwLjExMDk0MDQ4NSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTM4Nzc2 MTEgKzAxMDAKIEBAIC0wLDAgKzEsMzAgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNzk3LDEwICs3OTcsMTAgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwog KwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5leHAJ MjAxNC0wNi0xNiAyMzozMDozMC4xMTA5NDA0ODUgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5leHAJMjAxNS0xMS0wMyAy MjoyMzoyNy4yMTM4Nzc2MTEgKzAxMDAKIEBAIC0wLDAgKzEsMTA5IEBACiArIyBDb3B5cmlnaHQg MjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTkxMSwxMCArOTExLDEw IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LW92ZXJmbG93LmV4cAogK2dkYl90ZXN0ICJidCIgImluIFxbXiBcXSphYm9ydCBcXCguKiBpbiBt YWluIFxcKC4qIiAiQmFja3RyYWNlIGFmdGVyIGFib3J0KCkiCiArCiArdmVyYm9zZSAtbG9nICJr Yl9mb3VuZCBpbiBidCBhZnRlciBhYm9ydCgpID0gW2V4cHIgW21lbW9yeV92X3BhZ2VzX2dldF0g KiAkcGFnZXNpemUgLyAxMDI0XSIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEwOTQwNDg1ICsw MjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEu YwkyMDE1LTExLTAzIDIyOjIzOjI3LjIxMzg3NzYxMSArMDEwMAogQEAgLTAsMCArMSw1NSBAQAog Ky8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBA IC05NzEsMTAgKzk3MSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3ZsYS5jCiArICBmb28gKDc4KTsKICsgIHJldHVybiAwOwogK30KLUluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAorSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEu ZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEwOTQwNDg1ICswMjAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCTIwMTUtMTEtMDMgMjI6MjM6 MjcuMjE0ODc3NjE3ICswMTAwCiBAQCAtMCwwICsxLDYyIEBACiArIyBDb3B5cmlnaHQgMjAwOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEwMzgsMTAgKzEwMzgsMTAgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhw CiArZ2RiX3Rlc3QgInAgdGVtcDEiICIgPSAnMScgPHJlcGVhdHMgNzggdGltZXM+IiAic2Vjb25k OiBwcmludCB0ZW1wMSIKICtnZGJfdGVzdCAicCB0ZW1wMiIgIiA9ICcyJyA8cmVwZWF0cyA3OCB0 aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAyIgogK2dkYl90ZXN0ICJwIHRlbXAzIiAiID0gJzMn IDxyZXBlYXRzIDQ4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDMiCi1JbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3Qu UworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItYm91bmQtbG9jbGlzdC5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVz dHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwkyMDE0LTA2LTE2IDIzOjMwOjMw LjExMTk0MDQ4NyArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE0ODc3 NjE3ICswMTAwCiBAQCAtMCwwICsxLDI0NiBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xMjg5LDExICsxMjg5LDExIEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQt bG9jbGlzdC5TCiArCS5zdHJpbmcJCSJjaGFyIgogKy5MdWludF9zdHI6CiArCS5zdHJpbmcJCSJ1 bnNpZ25lZCBpbnQiCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3Vu ZC1sb2NsaXN0LmV4cAkyMDE0LTA2LTE2IDIzOjMwOjMwLjExMTk0MDQ4NyArMDIwMAotQEAgLTAs MCArMSw2MyBAQAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTQ4Nzc2MTcg KzAxMDAKK0BAIC0wLDAgKzEsNjYgQEAKICsjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwogKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTEzMzIsMTcgKzEzMzIsMjAg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1ib3VuZC1sb2NsaXN0LmV4cAogKwogKyMgVmVyaWZ5IGl0IGJlaGF2ZXMgYXQgbGVhc3QgYXMg YW4gdW5ib3VuZCBhcnJheSB3aXRob3V0IGluZmVyaW9yLgogKwotK3NldCB0ZXN0ICJwIGFfc3Ry aW5nIgotK2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKLSsgICAgLXJlICIgPSAweFxb MC05YS1mXF0rIFwic2Vlbm5vdHNlZW5cIlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCXBhc3MgJHRl c3QKLSsgICAgfQotKyAgICAtcmUgIk5vIHJlZ2lzdGVyc1xcLlxyXG4kZ2RiX3Byb21wdCAkIiB7 Ci0rCWtmYWlsICJ2bGFyZWdyZXNzaW9uIiAkdGVzdAotKyAgICB9Ci0rfQotKwotK2dkYl90ZXN0 ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBjaGFyIFxbdmFyaWFibGUgbGVuZ3RoXF19CisrIyBG SVhNRTogRlNGIEdEQiBjcmFzaGVzIGR1ZSB0byAhaGFzX3N0YWNrX2ZyYW1lcyAoKS4KKysjIEJ1 dCBpbiBwcmFjdGljZSB0aGF0IHNob3VsZCBub3QgaGFwcGVuLgorKyMgaHR0cHM6Ly9nY2MuZ251 Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NDM3NjIKKysjc2V0IHRlc3QgInAgYV9zdHJp bmciCisrI2dkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsKKysjICAgIC1yZSAiID0gMHhc WzAtOWEtZlxdKyBcInNlZW5ub3RzZWVuXCJcclxuJGdkYl9wcm9tcHQgJCIgeworKyMJcGFzcyAk dGVzdAorKyMgICAgfQorKyMgICAgLXJlICJObyByZWdpc3RlcnNcXC5cclxuJGdkYl9wcm9tcHQg JCIgeworKyMJa2ZhaWwgInZsYXJlZ3Jlc3Npb24iICR0ZXN0CisrIyAgICB9CisrI30KKysjCisr I2dkYl90ZXN0ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBjaGFyIFxbdmFyaWFibGUgbGVuZ3Ro XF19CiArCiArIyBOb3QgcnVudG9fbWFpbiBhcyBkdzItYm91bmQtbG9jbGlzdC5TIGhhbmRsZXMg b25seSB0aGUgZmlyc3QgYnl0ZSBvZiBtYWluLgogK2lmICFbcnVudG8gIiptYWluIl0gewpAQCAt MTM1NywxMCArMTM2MCwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCiArCiArIyBUaGUgcmVnaXN0ZXIg Y29udGFpbnMgdW5wcmVkaWN0YWJsZSB2YWx1ZSAtIHRoZSBhcnJheSBzaXplLgogK2dkYl90ZXN0 ICJwdHlwZSByZWdfc3RyaW5nIiB7dHlwZSA9IGNoYXIgXFstP1swLTldK1xdfQotSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5j CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdHJpcHBlZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMJMjAxNC0wNi0xNiAyMzozMDozMC4xMTE5NDA0ODcg KzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN0cmlwcGVkLmMJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTQ4Nzc2MTcgKzAxMDAKIEBAIC0w LDAgKzEsNDIgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRl YnVnZ2VyLgogKwpAQCAtMTQwNCwxMCArMTQwNywxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMKICsgIGZ1bmMxICgx LCAyKTsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3Ry aXBwZWQuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTExOTQwNDg3ICswMjAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAJ MjAxNS0xMS0wMyAyMjoyMzoyNy4yMTQ4Nzc2MTcgKzAxMDAKIEBAIC0wLDAgKzEsNzkgQEAKICsj IENvcHlyaWdodCAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTQ4 OCwxMCArMTQ5MSwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAogK2dkYl90ZXN0ICJzdGVwIiBcCiArICAgICAg ICAgImZ1bmMuKiBcXCguKlxcKSBhdCAuKiIgXAogKyAgICAgICAgICJzdGVwIgotSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVt YmVyLWRhdGEtbG9jYXRpb24uUworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3Ry dWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMJMjAxNC0wNi0xNiAyMzozMDozMC4xMTI5NDA0ODgg KzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE0 ODc3NjE3ICswMTAwCiBAQCAtMCwwICsxLDgzIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE1NzYsMTAgKzE1NzksMTAgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1 Y3QtbWVtYmVyLWRhdGEtbG9jYXQKICsKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8K ICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0 aW9uLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVy LWRhdGEtbG9jYXRpb24uZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEyOTQwNDg4ICswMjAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1 Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE0ODc3NjE3 ICswMTAwCiBAQCAtMCwwICsxLDM3IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE2MTgsMTAgKzE2MjEsMTAgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVy LWRhdGEtbG9jYXQKICtjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCiArCiArZ2RiX3Rlc3QgInB0eXBl IHN0cnVjdCBzb21lX3N0cnVjdCIgInR5cGUgPSBzdHJ1Y3Qgc29tZV9zdHJ1Y3Qge1xbXHJcbiBc dFxdKnZvaWQgZmllbGQ7XFtcclxuIFx0XF0qfSIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5n ZS1uby10eXBlLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEy OTQwNDg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTQ4Nzc2 MTcgKzAxMDAKIEBAIC0wLDAgKzEsMTIxIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE3NDQsMTAgKzE3NDcsMTAgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5n ZS1uby10eXBlLlMKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KICsKICsJLmJ5dGUJ CTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5v LXR5cGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTEy OTQwNDg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAkyMDE1LTExLTAzIDIyOjIzOjI3LjIxNTg3 NzYyMyArMDEwMAogQEAgLTAsMCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIwMTIgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNzg4LDEwICsxNzkxLDEwIEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Ut bm8tdHlwZS5leHAKICsKICtnZGJfdGVzdCAicHR5cGUgbm90eXBlX3N0cmluZyIge3R5cGUgPSBj aGFyIFxbMTI5XF19CiArZ2RiX3Rlc3QgInAgbm90eXBlX3N0cmluZyIgIiA9ICd4JyA8cmVwZWF0 cyAxMjkgdGltZXM+IgotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5l eHAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTI5NDA0ODggKzAyMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAJMjAxNS0x MS0wMyAyMjoyMzoyNy4yMTU4Nzc2MjMgKzAxMDAKIEBAIC0wLDAgKzEsNDIgQEAKICsjIENvcHly aWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTgzNSwxMCAr MTgzOCwxMCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJl YWstaGVyZSIgIi4qYnJlYWstaGVyZS4qIgogK2dkYl90ZXN0ICJwIGM0MHB0KDEpIiAiID0gJzAt aGVsbG8uKiIKICtnZGJfdGVzdCAicCBjNDBwdCgyKSIgIiA9ICcxLWhlbGxvLioiCi1JbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlk ZS5mOTAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2R3YXJmLXN0cmlkZS5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE0LTA2LTE2IDIzOjMwOjMw LjExMjk0MDQ4OCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE1LTExLTAzIDIyOjIzOjI3LjIxNTg3NzYy MyArMDEwMAogQEAgLTAsMCArMSw0MCBAQAogKyEgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTg4MCwxMCArMTg4MywxMCBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5m OTAKICsgIHByaW50ICosIGM0MHB0ICAhIGJyZWFrLWhlcmUKICsKICtlbmQgcHJvZ3JhbSByZXBy bwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHluYW1pYy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNC0wNi0xNiAyMzozNzo0NS41Njgz NjI1NjMgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMuZXhwCTIwMTUtMTEtMDMgMjI6Mjc6MjUuNDgxMjgxOTA0ICswMTAwCiBA QCAtMCwwICsxLDE1MSBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC0xOTMxLDkgKzE5MzQsOSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZhcngtaW5pdCIKICtnZGJfdGVzdCAicCB2YXJ4IiAiXFwkXFswLTlc XSogPSA8bm90IGFsbG9jYXRlZD4iICJwIHZhcnggdW5hbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInB0 eXBlIHZhcngiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmFyeCB1bmFsbG9jYXRl ZCIKLStnZGJfdGVzdCAicCB2YXJ4KDEsNSwxNykiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJl Y2F1c2Ugbm90IGFsbG9jYXRlZCIgInAgdmFyeCgxLDUsMTcpIHVuYWxsb2NhdGVkIgotK2dkYl90 ZXN0ICJwIHZhcngoMSw1LDE3KT0xIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5v dCBhbGxvY2F0ZWQiICJwIHZhcngoMSw1LDE3KT0xIHVuYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJw dHlwZSB2YXJ4KDEsNSwxNykiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFs bG9jYXRlZCIgInB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKKytnZGJfdGVzdCAicCB2 YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0 ZWRcKX0gInAgdmFyeCgxLDUsMTcpIHVuYWxsb2NhdGVkIgorK2dkYl90ZXN0ICJwIHZhcngoMSw1 LDE3KT0xIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9 ICJwIHZhcngoMSw1LDE3KT0xIHVuYWxsb2NhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJ4KDEs NSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0g InB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKICsKICtnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAidmFyeC1hbGxvY2F0ZWQiXQogK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJ2YXJ4LWFsbG9jYXRlZCIKQEAgLTE5NzksMTYgKzE5ODIsMTYgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAog K2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9ICg8bm90IGFzc29jaWF0ZWQ+fC4qKENh bm5vdCBhY2Nlc3MgaXR8VW5hYmxlIHRvIGFjY2VzcyB0aGUgb2JqZWN0KSBiZWNhdXNlIHRoZSBv YmplY3QgaXMgbm90IGFzc29jaWF0ZWQuKSIgInAgdmFydiBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rl c3QgInB0eXBlIHZhcnYiICJ0eXBlID0gKDxub3QgYXNzb2NpYXRlZD58LiooQ2Fubm90IGFjY2Vz cyBpdHxVbmFibGUgdG8gYWNjZXNzIHRoZSBvYmplY3QpIGJlY2F1c2UgdGhlIG9iamVjdCBpcyBu b3QgYXNzb2NpYXRlZC4pIiAicHR5cGUgdmFydiBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInAg bCIgIlxcJFxbMC05XF0qID0gXFwuRkFMU0VcXC4iICJwIGwgaWYgdmFydiBkZWFzc29jaWF0ZWQi Ci0rZ2RiX3Rlc3QgInAgdmFydigxLDUsMTcpIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNh dXNlIG5vdCBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ2KDEsNSwxNykiICJubyBz dWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInAg dmFydigxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYXNzb2Np YXRlZFwpfQorK2dkYl90ZXN0ICJwdHlwZSB2YXJ2KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBl bGVtZW50IFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXCl9CiArCiArZ2RiX2JyZWFrcG9pbnQgW2dk Yl9nZXRfbGluZV9udW1iZXIgInZhcngtZGVhbGxvY2F0ZWQiXQogK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2YXJ4LWRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZhcngiICJcXCRcWzAt OVxdKiA9IDxub3QgYWxsb2NhdGVkPiIgInAgdmFyeCBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAi cHR5cGUgdmFyeCIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2YXJ4IGRlYWxsb2Nh dGVkIgogK2dkYl90ZXN0ICJwIGwiICJcXCRcWzAtOVxdKiA9IFxcLkZBTFNFXFwuIiAicCBsIGlm IHZhcnggZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpIiAibm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiICJwIHZhcngoMSw1LDE3KSBkZWFs bG9jYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcpIiAibm8gc3VjaCB2ZWN0b3Ig ZWxlbWVudCBiZWNhdXNlIG5vdCBhbGxvY2F0ZWQiICJwdHlwZSB2YXJ4KDEsNSwxNykgZGVhbGxv Y2F0ZWQiCisrZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KSBkZWFsbG9jYXRlZCIK KytnZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBc KHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwdHlwZSB2YXJ4KDEsNSwxNykgZGVhbGxvY2F0ZWQi CiArCiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcnktcGFzc2VkIl0K ICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyeS1wYXNzZWQiCkBAIC0yMDM2LDEwICsy MDM5LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vZHluYW1pYy5leHAKICtnZGJfdGVzdCAicCB2YXJ0KDMsOCkiICJcXCRcWzAtOVxdKiA9 IDkiCiArIyBtYXBzIHRvIGZvbzo6dmFyeSgxLDMpCiArZ2RiX3Rlc3QgInAgdmFydCgyLDkpIiAi XFwkXFswLTlcXSogPSAxMCIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTQtMDYt MTYgMjM6MzA6MzAuMTEzOTQwNDg4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAkyMDE1LTExLTAzIDIyOjIzOjI3LjIx NTg3NzYyMyArMDEwMAogQEAgLTAsMCArMSw5OCBAQAogKyEgQ29weXJpZ2h0IDIwMDcgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjEzOSwxMCArMjE0MiwxMCBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMu ZjkwCiArICBpZiAoeCAoMSwgMSkgLm5lLiA4IC5vci4geCAoMiwgMikgLm5lLiA5IC5vci4geCAo MSwgMikgLm5lLiA0KSBjYWxsIGFib3J0CiArICBpZiAoeCAoMywgMSkgLm5lLiAxMCkgY2FsbCBh Ym9ydAogK2VuZAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9zdHJpbmcuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNC0wNi0xNiAyMzozMDoz MC4xMTQ5NDA0ODkgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTU4Nzc2MjMgKzAx MDAKIEBAIC0wLDAgKzEsNTkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogKwpAQCAtMjIwMywxMCArMjIwNiwxMCBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAKICtnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAidmFyLWZpbmlzaCIKICtnZGJfdGVzdCAicCBlIiAiXFwkXFsw LTlcXSogPSAnZSAgICciICJwIGUgcmUtc2V0IgogK2dkYl90ZXN0ICJwIGYiICJcXCRcWzAtOVxd KiA9IFxcKFxcKCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAn LCAnZiAgICdcXCkgXFwoICdmMiAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAn ZiAgICcsICdmICAgJ1xcKSBcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAg ICcsICdmICAgJywgJ2YgICAnXFwpIFxcKSIgInAgKmYgcmUtc2V0IgotSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkwCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZjkw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3N0cmluZy5mOTAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTQ5NDA0ODkgKzAyMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAJMjAx NS0xMS0wMyAyMjoyMzoyNy4yMTU4Nzc2MjMgKzAxMDAKIEBAIC0wLDAgKzEsMzcgQEAKICshIENv cHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTIyNDUs MTAgKzIyNDgsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdHJpbmcuZjkwCiArICBoID0gJ2gnCiArICBjYWxsIGZvbyAoZywgaCkKICtl bmQKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v c3VicmFuZ2UuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAu MTE0OTQwNDg5ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTU4Nzc2MjMgKzAx MDAKIEBAIC0wLDAgKzEsNzIgQEAKICsjIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogKwpAQCAtMjMyMiwxMCArMjMyNSwxMCBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAogK2dkYl91 bmxvYWQKICtzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCiArZ2RiX3Rl c3Qge3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIzXCl9Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAorSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJh bmdlLmY5MAkyMDE0LTA2LTE2IDIzOjMwOjMwLjExNDk0MDQ4OSArMDIwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCTIwMTUt MTEtMDMgMjI6MjM6MjcuMjE1ODc3NjIzICswMTAwCiBAQCAtMCwwICsxLDI4IEBACiArISBDb3B5 cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMzU1LDEw ICsyMzU4LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3VicmFuZ2UuZjkwCiArICBwdHIgPT4gYQogKyAgd3JpdGUgKCosKikgYSAgICAg ICAgICAgICAgICAgISBicmVhay1zdGF0aWMKICtlbmQKLUluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBl LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p Mi12YXItc3RhbGUtdHlwZS5jCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTE0OTQwNDg5ICswMjAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFs ZS10eXBlLmMJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTY4Nzc2MjkgKzAxMDAKIEBAIC0wLDAgKzEs MjYgQEAKICsvKiBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKQEAgLTIzODYsMTAgKzIzODksMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKICsKICsgIHJldHVybiAwOwog K30KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12 YXItc3RhbGUtdHlwZS5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCTIwMTQt MDYtMTYgMjM6MzA6MzAuMTE0OTQwNDg5ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAkyMDE1LTExLTAzIDIy OjIzOjI3LjIxNjg3NzYyOSArMDEwMAogQEAgLTAsMCArMSw1NyBAQAogKyMgQ29weXJpZ2h0IDIw MTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtMjQ0OCwxMCArMjQ1MSwx MCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTIt dmFyLXN0YWxlLXR5cGUuZXhwCiArbWlfY3JlYXRlX3Zhcm9iaiAidmxhIiAidmxhIiAiY3JlYXRl IGxvY2FsIHZhcmlhYmxlIHZsYSIKICsKICttaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgIlxc XmRvbmUsY2hhbmdlbGlzdD0uKiIgIi12YXItdXBkYXRlICoiCi1JbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXkt ZnJvbS1yZWdpc3Rlci1mdW5jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE0LTA2LTE2IDIz OjMwOjMwLjExNTk0MDQ5MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE1LTExLTAzIDIyOjIz OjI3LjIxNjg3NzYyOSArMDEwMAogQEAgLTAsMCArMSwyMiBAQAogKy8qIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI0NzUsMTAgKzI0NzgsMTAgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZy b20tcmVnaXN0ZXItZnVuYy5jCiArewogKyAgcmV0dXJuIGFyclswXTsKICt9Ci1JbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rl ci5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2Fy cmF5LWZyb20tcmVnaXN0ZXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rl c3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwkyMDE0LTA2LTE2IDIzOjMwOjMw LjExNTk0MDQ5MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTY4Nzc2 MjkgKzAxMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIs IHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yNTA4LDEwICsyNTExLDEwIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVy LmMKICsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAorSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2Fy cmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTE1OTQwNDkwICswMjAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZy b20tcmVnaXN0ZXIuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE2ODc3NjI5ICswMTAwCiBAQCAt MCwwICsxLDMzIEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsjCkBAIC0yNTQ2LDEwICsyNTQ5LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmV4cAogKyMgU2Vl biByZWdyZXNzaW9uOgogKyMgQWRkcmVzcyByZXF1ZXN0ZWQgZm9yIGlkZW50aWZpZXIgImFyciIg d2hpY2ggaXMgaW4gcmVnaXN0ZXIgJHJkaQogK2dkYl90ZXN0ICJwIGFyclxbMFxdIiAiXFwkXFsw LTlcXSsgPSA0MiIKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2Ri LnBhc2NhbC9hcnJheXMuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAu MTE1OTQwNDkwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGFzY2FsL2FycmF5cy5leHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTY4Nzc2MjkgKzAxMDAK IEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNjU1LDEwICsyNjU4LDEwIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCiArfQog K2dkYl90ZXN0ICJwcmludCBEeW5BcnJDaGFyIiAiLiogPSAnYWJjZGVmZ2hpamtsbSciICJQcmlu dCBkeW5hbWljIGFycmF5IG9mIGNoYXIiCiArCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcworSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcwkyMDE0 LTA2LTE2IDIzOjMwOjMwLjExNTk0MDQ5MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTUtMTEtMDMgMjI6MjM6Mjcu MjE2ODc3NjI5ICswMTAwCiBAQCAtMCwwICsxLDgyIEBACiArewogKyBDb3B5cmlnaHQgMjAwOCwg MjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTI3NDIsMTEgKzI3NDUsMTEg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2Fy cmF5cy5wYXMKICsgIHMgOj0gJ3Rlc3QnIzAnc3RyaW5nJzsKICsgIHdyaXRlbG4ocyk7IHsgc2V0 IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2 MTMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MjkuMjc4 OTM5NzAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCTIwMTQtMDYtMTYgMjM6MzA6MzAuMTE3OTQwNDkyICswMjAwCi1AQCAtMTU5LDYgKzE1 OSwxMSBAQCBwcm9jIGdkYl91bmxvYWQge30geworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE1LTExLTAzIDIyOjIzOjI2LjY4NDg3NDQ1 NyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAJMjAxNS0xMS0wMyAyMjoyMzoyNy4yMTc4Nzc2MzUgKzAxMDAKK0BAIC0xNzMsNiArMTczLDEx IEBAIHByb2MgZ2RiX3VubG9hZCB7fSB7CiAgCSAgICBzZW5kX2dkYiAieVxuIgogIAkgICAgZXhw X2NvbnRpbnVlCiAgCX0KQEAgLTI3NTgsMTAgKzI3NjEsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogIAktcmUgIkRpc2NhcmQgc3ltYm9s IHRhYmxlIGZyb20gLip5IG9yIG4uKiQiIHsKICAJICAgIHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBl eHBfY29udGludWUKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvbGli L3Bhc2NhbC5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2xp Yi9wYXNjYWwuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dk Yi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5l eHAJMjAxNC0wNi0xNiAyMzozMDozMC4xMTc5NDA0OTIgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNS0xMC0yNyAwMjo0 ODozMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1 aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTUtMTEtMDMgMjI6MjM6MjcuMjE3ODc3NjM1ICswMTAwCiBA QCAtMzcsNiArMzcsOSBAQCBwcm9jIHBhc2NhbF9pbml0IHt9IHsKICAgICAgZ2xvYmFsIHBhc2Nh bF9jb21waWxlcl9pc19mcGMKICAgICAgZ2xvYmFsIGdwY19jb21waWxlcgoKZGlmZiAtLWdpdCBh L2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2ggYi9nZGItYXR0YWNoLWZhaWwtcmVh c29ucy01b2Y1LnBhdGNoCmluZGV4IDgzMDA1YjQuLmM0Y2Q4NGUgMTAwNjQ0Ci0tLSBhL2dkYi1h dHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKKysrIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNv bnMtNW9mNS5wYXRjaApAQCAtMzcsMTMgKzM3LDEzIEBAIGdkYi9nZGJzZXJ2ZXIvCiAJKGxpbnV4 X2NyZWF0ZV9pbmZlcmlvciwgbGludXhfdHJhY2Vmb3JrX2NoaWxkKTogQ2FsbCBpdCBpbnN0ZWFk IG9mCiAJZGlyZWN0IHB0cmFjZS4KIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL25h dC9saW51eC1wdHJhY2UuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9uYXQvbGlu dXgtcHRyYWNlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2Ri L25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTA3LTA5IDE4OjI0OjEzLjcwNTE0MDM4NCArMDIwMAot KysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTA3LTA5 IDE4OjI0OjI0LjkxMTIzNTk3MyArMDIwMAotQEAgLTIzLDYgKzIzLDEwIEBACi0gI2luY2x1ZGUg ImJ1ZmZlci5oIgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL25hdC9saW51eC1w dHJhY2UuYwkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ3NDkxNzEzOSArMDIwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNS0xMC0yMiAyMjozNTowOC4x MjA5NjI3MjkgKzAyMDAKK0BAIC0yNCw2ICsyNCwxMCBAQAogICNpbmNsdWRlICJnZGJfd2FpdC5o IgorICNpbmNsdWRlICJnZGJfcHRyYWNlLmgiCiAgCiArI2lmZGVmIEhBVkVfU0VMSU5VWF9TRUxJ TlVYX0gKICsjIGluY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgpAQCAtNTIsNyArNTIsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiAgLyogU3Rv cmVzIHRoZSBwdHJhY2Ugb3B0aW9ucyBzdXBwb3J0ZWQgYnkgdGhlIHJ1bm5pbmcga2VybmVsLgog ICAgIEEgdmFsdWUgb2YgLTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVjayBmb3IgZmVhdHVyZXMgeWV0 LiAgQSB2YWx1ZQogICAgIG9mIDAgbWVhbnMgdGhlcmUgYXJlIG5vIHN1cHBvcnRlZCBmZWF0dXJl cy4gICovCi1AQCAtNDcsNiArNTEsOCBAQCBsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29u IChwaWRfdCBwCitAQCAtNDgsNiArNTIsOCBAQCBsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVh c29uIChwaWRfdCBwCiAgICAgIGJ1ZmZlcl94bWxfcHJpbnRmIChidWZmZXIsIF8oInByb2Nlc3Mg JWQgaXMgYSB6b21iaWUgIgogIAkJCQkgIi0gdGhlIHByb2Nlc3MgaGFzIGFscmVhZHkgdGVybWlu YXRlZCIpLAogIAkJICAgICAgIChpbnQpIHBpZCk7CkBAIC02MSw3ICs2MSw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICB9CiAgCiAgLyogU2Vl IGxpbnV4LXB0cmFjZS5oLiAgKi8KLUBAIC01ODEsNiArNTg3LDIyIEBAIGxpbnV4X3B0cmFjZV9p bml0X3dhcm5pbmdzICh2b2lkKQorQEAgLTU5NCw2ICs2MDAsMjIgQEAgbGludXhfcHRyYWNlX2lu aXRfd2FybmluZ3MgKHZvaWQpCiAgICBsaW51eF9wdHJhY2VfdGVzdF9yZXRfdG9fbnggKCk7CiAg fQogIApAQCAtODQsMTEgKzg0LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9u YXQvbGludXgtcHRyYWNlLmMKICAvKiBFeHRyYWN0IGV4dGVuZGVkIHB0cmFjZSBldmVudCBmcm9t IHdhaXQgc3RhdHVzLiAgKi8KICAKICBpbnQKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9uYXQvbGludXgtcHRyYWNlLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbmF0 L2xpbnV4LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmln L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wNy0wOSAxODoyNDoxMy43MDYxNDAzOTIgKzAy MDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0w Ny0wOSAxODoyNDoyNC45MTIyMzU5ODEgKzAyMDAKLUBAIC0xNTcsNiArMTU3LDcgQEAgZXh0ZXJu IHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYQorLS0tIGdkYi03LjEwLjUwLjIwMTUx MDIyLm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ3NDkx NzEzOSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9uYXQvbGludXgtcHRyYWNl LmgJMjAxNS0xMC0yMiAyMjozNTowOC4xMjA5NjI3MjkgKzAyMDAKK0BAIC0xNjQsNiArMTY0LDcg QEAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYQogIGV4dGVybiBjaGFy ICpsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29uX3N0cmluZyAocHRpZF90IHB0aWQsIGlu dCBlcnIpOwogIAogIGV4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lk KTsKQEAgLTk2LDExICs5NiwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbmF0 L2xpbnV4LXB0cmFjZS5oCiAgZXh0ZXJuIHZvaWQgbGludXhfY2hlY2tfcHRyYWNlX2ZlYXR1cmVz ICh2b2lkKTsKICBleHRlcm4gdm9pZCBsaW51eF9lbmFibGVfZXZlbnRfcmVwb3J0aW5nIChwaWRf dCBwaWQsIGludCBhdHRhY2hlZCk7CiAgZXh0ZXJuIHZvaWQgbGludXhfZGlzYWJsZV9ldmVudF9y ZXBvcnRpbmcgKHBpZF90IHBpZCk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY29u ZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NvbmZpZ3VyZS5hYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY29uZmlndXJlLmFj CTIwMTUtMDctMDkgMTg6MjQ6MTMuNzA3MTQwNDAxICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvY29uZmlndXJlLmFjCTIwMTUtMDctMDkgMTg6MjQ6MjQuOTEzMjM1OTkwICswMjAw Ci1AQCAtMjE1MCw2ICsyMTUwLDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4KKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyMi5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxNS0xMC0yMiAyMjozNTowMC40NzU5 MTcxNDUgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvY29uZmlndXJlLmFjCTIw MTUtMTAtMjIgMjI6MzU6MDguMTIxOTYyNzM1ICswMjAwCitAQCAtMjA5Niw2ICsyMDk2LDEwIEBA IGNhc2UgJGhvc3Rfb3MgaW4KICBlc2FjCiAgQUNfREVGSU5FX1VOUVVPVEVEKEdEQklOSVQsIiRn ZGJpbml0IixbVGhlIC5nZGJpbml0IGZpbGVuYW1lLl0pCiAgCkBAIC0xMTEsMTEgKzExMSwxMSBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY29uZmlndXJlLmFjCiAgZG5sIEhhbmRs ZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBlbmFibGVkLgogIAogICMgU3VwcG9ydCBm b3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19XSVRIX0RJUiwKLUluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJ MjAxNS0wNy0wOSAxODoyNDoxMy43MDcxNDA0MDEgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMDctMDkgMTg6MjQ6MjQuOTEzMjM1 OTkwICswMjAwCi1AQCAtNDk5LDYgKzQ5OSwxMCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE1 LTEwLTIyIDIyOjM1OjAwLjQ3NTkxNzE0NSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMTAtMjIgMjI6MzU6MDguMTIxOTYyNzM1 ICswMjAwCitAQCAtNTAyLDYgKzUwMiwxMCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkK ICBmaQogIApAQCAtMTI2LDExICsxMjYsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKICBBQ19TVUJTVChHREJTRVJWRVJfREVQRklMRVMp CiAgQUNfU1VCU1QoR0RCU0VSVkVSX0xJQlMpCiAgQUNfU1VCU1Qoc3J2X3htbGJ1aWx0aW4pCi1J bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCTIwMTUtMDctMDkgMTg6MjQ6MTMuNzA5MTQwNDE4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTUtMDctMDkgMTg6MjQ6MjQuOTE0 MjM1OTk4ICswMjAwCi1AQCAtNzU1LDYgKzc1NSwyOSBAQCBhZGRfbHdwIChwdGlkX3QgcHRpZCkK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJ MjAxNS0xMC0yMiAyMjozNTowMC40NzY5MTcxNTEgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyMi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTUtMTAtMjIgMjI6MzU6MDguMTIyOTYy NzQxICswMjAwCitAQCAtODQzLDYgKzg0MywyOSBAQCBhZGRfbHdwIChwdGlkX3QgcHRpZCkKICAg IHJldHVybiBsd3A7CiAgfQogIApAQCAtMTYwLDcgKzE2MCw3IEBAIEluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKICAvKiBTdGFydCBhbiBpbmZlcmlv ciBwcm9jZXNzIGFuZCByZXR1cm5zIGl0cyBwaWQuCiAgICAgQUxMQVJHUyBpcyBhIHZlY3RvciBv ZiBwcm9ncmFtLW5hbWUgYW5kIGFyZ3MuICovCiAgCi1AQCAtNzc4LDcgKzgwMSw3IEBAIGxpbnV4 X2NyZWF0ZV9pbmZlcmlvciAoY2hhciAqcHJvZ3JhbSwgY2gKK0BAIC04NjYsNyArODg5LDcgQEAg bGludXhfY3JlYXRlX2luZmVyaW9yIChjaGFyICpwcm9ncmFtLCBjaAogICAgaWYgKHBpZCA9PSAw KQogICAgICB7CiAgICAgICAgY2xvc2VfbW9zdF9mZHMgKCk7CkBAIC0xNjksMTAgKzE2OSwxMCBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAg CiAgI2lmbmRlZiBfX0FORFJPSURfXyAvKiBCaW9uaWMgZG9lc24ndCB1c2UgU0lHUlRNSU4gdGhl IHdheSBnbGliYyBkb2VzLiAgKi8KICAgICAgICBzaWduYWwgKF9fU0lHUlRNSU4gKyAxLCBTSUdf REZMKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9pbmYtcHRyYWNlLmMKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaW5mLXB0cmFjZS5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAxNS0wNy0wOSAxODoy NDoxMy43MTAxNDA0MjYgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9pbmYtcHRy YWNlLmMJMjAxNS0wNy0wOSAxODoyNDoyNC45MTUyMzYwMDcgKzAyMDAKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyMi5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAxNS0xMC0yMiAyMjozNTowMC40Nzc5 MTcxNTYgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaW5mLXB0cmFjZS5jCTIw MTUtMTAtMjIgMjI6MzU6MDguMTIyOTYyNzQxICswMjAwCiBAQCAtNzksNyArNzksMTUgQEAgc3Rh dGljIHZvaWQKICBpbmZfcHRyYWNlX21lICh2b2lkKQogIHsKQEAgLTE4OSwxMCArMTg5LDEwIEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9pbmYtcHRyYWNlLmMKICB9CiAgCiAgLyog U3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlzIHRo ZSBmaWxlIHRvCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbGludXgtbmF0LmMKK0lu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbGludXgtbmF0LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6 MjQ6MTMuNzEyMTQwNDQzICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbGludXgt bmF0LmMJMjAxNS0wNy0wOSAxODoyNDoyNC45MTYyMzYwMTUgKzAyMDAKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyMi5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ3Nzkx NzE1NiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9saW51eC1uYXQuYwkyMDE1 LTEwLTIyIDIyOjM1OjA4LjEyMzk2Mjc0NyArMDIwMAogQEAgLTExODQsNiArMTE4NCw3IEBAIGxp bnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKICB7CiAgICBzdHJ1Y3QgY2xl YW51cCAqcmVzdG9yZV9wZXJzb25hbGl0eQpAQCAtMjMxLDEwICsyMzEsMTAgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xpbnV4LW5hdC5jCiAgCiAgICBkb19jbGVhbnVwcyAocmVz dG9yZV9wZXJzb25hbGl0eSk7CiAgfQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2Nv bmZpZy5pbgorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9jb25maWcuaW4KID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE1LTA3 LTA5IDE4OjI0OjEzLjcxMzE0MDQ1MiArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2NvbmZpZy5pbgkyMDE1LTA3LTA5IDE4OjI0OjI0LjkxNjIzNjAxNSArMDIwMAorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ3 ODkxNzE2MiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9jb25maWcuaW4JMjAx NS0xMC0yMiAyMjozNTowOC4xMjM5NjI3NDcgKzAyMDAKIEBAIC0yNjQsNiArMjY0LDkgQEAKICAv KiBEZWZpbmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8KICAjdW5kZWYgSEFW RV9MSUJSUE0KQEAgLTI1NSwxMSArMjU1LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGxvY2Fs ZScgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0VUTE9DQUxFCiAgCi1JbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9n ZGIvY29uZmlndXJlCTIwMTUtMDctMDkgMTg6MjQ6MTMuNzE4MTQwNDk1ICswMjAwCi0rKysgZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvY29uZmlndXJlCTIwMTUtMDctMDkgMTg6MjQ6MjQuOTIwMjM2 MDQ5ICswMjAwCi1AQCAtMTQyMjgsNiArMTQyMjgsNjQgQEAgY2F0ID4+Y29uZmRlZnMuaCA8PF9B Q0VPRgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE1LTEw LTIyIDIyOjM1OjAwLjQ4MDkxNzE3NCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi9jb25maWd1cmUJMjAxNS0xMC0yMiAyMjozNTowOC4xMjU5NjI3NTkgKzAyMDAKK0BAIC0xNDY5 MSw2ICsxNDY5MSw2NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAgX0FDRU9GCiAgCiAg CkBAIC0zMjQsMTEgKzMyNCwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvY29u ZmlndXJlCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RC X0FDX1dJVEhfRElSLAogICMgZXhjZXB0IHRoYXQgdGhlIGFyZ3VtZW50IHRvIC0td2l0aC1zeXNy b290IGlzIG9wdGlvbmFsLgotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnNlcnZl ci9jb25maWcuaW4KK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZ2Ric2VydmVyL2Nv bmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZ2Ri c2VydmVyL2NvbmZpZy5pbgkyMDE1LTA3LTA5IDE4OjI0OjEzLjcxOTE0MDUwMyArMDIwMAotKysr IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0wNy0wOSAx ODoyNDoyNC45MjAyMzYwNDkgKzAyMDAKLUBAIC0xMTMsNiArMTEzLDkgQEAKKy0tLSBnZGItNy4x MC41MC4yMDE1MTAyMi5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIwMTUtMTAtMjIgMjI6 MzU6MDAuNDgxOTE3MTgwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2dkYnNl cnZlci9jb25maWcuaW4JMjAxNS0xMC0yMiAyMjozNTowOC4xMjY5NjI3NjUgKzAyMDAKK0BAIC0x MTcsNiArMTE3LDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1jaGVjaycg bGlicmFyeSAoLWxtY2hlY2spLiAqLwogICN1bmRlZiBIQVZFX0xJQk1DSEVDSwogIApAQCAtMzM4 LDcgKzMzOCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIvY29u ZmlnLmluCiAgLyogRGVmaW5lIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgYnJhbmNoIHRyYWNpbmcu ICovCiAgI3VuZGVmIEhBVkVfTElOVVhfQlRSQUNFCiAgCi1AQCAtMTg5LDYgKzE5Miw5IEBACitA QCAtMTk2LDYgKzE5OSw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRu cycgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0VUTlMKICAKQEAgLTM0OCwxMSArMzQ4LDEx IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAg LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZ3R0eS5oPiBoZWFkZXIgZmlsZS4gKi8K ICAjdW5kZWYgSEFWRV9TR1RUWV9ICiAgCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv Z2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9nZGJz ZXJ2ZXIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmln L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTUtMDctMDkgMTg6MjQ6MTMuNzIxMTQwNTIwICsw MjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1 LTA3LTA5IDE4OjI0OjI0LjkyMjIzNjA2NiArMDIwMAotQEAgLTcwMjIsNiArNzAyMiw2NCBAQCBp ZiAkd2FudF9pcGEgOyB0aGVuCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZQkyMDE1LTEwLTIyIDIyOjM1OjAwLjQ4MjkxNzE4NiArMDIwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTUtMTAtMjIg MjI6MzU6MDguMTI3OTYyNzcwICswMjAwCitAQCAtNzI5MCw2ICs3MjkwLDY0IEBAIGlmICR3YW50 X2lwYSA7IHRoZW4KICAgICBmaQogIGZpCiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tYWxs b2NhdGUtbm90LWluaXRlZC5wYXRjaCBiL2dkYi1mb3J0cmFuLWFsbG9jYXRlLW5vdC1pbml0ZWQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIyNzE2NQotLS0gL2Rl di9udWxsCisrKyBiL2dkYi1mb3J0cmFuLWFsbG9jYXRlLW5vdC1pbml0ZWQucGF0Y2gKQEAgLTAs MCArMSw2MSBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTUtMTEv bXNnMDAxMjcuaHRtbAorU3ViamVjdDogW3Rlc3RzdWl0ZSBwYXRjaF0gRm9ydHJhbjogYWxsb2Nh dGUoKWQgbWVtb3J5IGlzIHVuaW5pdGlhbGl6ZWQKKworCistLW1QM0RScGVKRFNFK2NpdVEKK0Nv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3Np dGlvbjogaW5saW5lCisKK0hpLAorCisgIGFsbG9jYXRlICh2bGExICg1KSkgICAgICAgICAhIHZs YTEtbm90LWFsbG9jYXRlZAorICBsID0gYWxsb2NhdGVkKHZsYTEpICAgICAgICAgISB2bGExLWFs bG9jYXRlZCAgICAgPC0tLS0tLS0tLS0tLS0tLS0tLQorCitFeHBlY3Rpbmc6IF4oNTEwLWRhdGEt ZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExW15NCitdKyk/KDUxMFxeZG9uZSx2YWx1ZT0iXCgwLCAw LCAwLCAwLCAwXCkiW15NCitdK1soXWdkYlspXSBeTQorWyBdKikKKzUxMC1kYXRhLWV2YWx1YXRl LWV4cHJlc3Npb24gdmxhMV5NCis1MTBeZG9uZSx2YWx1ZT0iKDEuODI5ODc0MDNlLTA5LCA3Ljg0 NzI3MTRlLTQ0LCAxLjgyOTg3NDAzZS0wOSwgNy44NDcyNzE0ZS00NCwgMi42NzkyOTkyNmUrMjAp Il5NCisoZ2RiKSBeTQorRkFJTDogZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cDogZXZhbHVhdGUg YWxsb2NhdGVkIHZsYQorCitnY2MtNC45LjItNi5mYzIxLng4Nl82NAorCitJIHRoaW5rIHNvbWUg b2xkZXIgZ2ZvcnRyYW4gZGlkIGluaXRpYWxpemUgYWxsb2NhdGVkIG1lbW9yeSBidXQgdGhhdCBp cyBhbgordW5zcGVjaWZpZWQgYmVoYXZpb3IuICBJIGhhdmVuJ3QgZm91bmQgYW55IGluaXRpYWxp emF0aW9uIG1lbnRpb25lZAoraW4gRm9ydHJhbiA5MCBzdGFuZGFyZCAoZHJhZnQpIGFuZCBpdCBp cyBhbHNvIGNsZWFybHkgc3RhdGVkIGhlcmU6CisJaHR0cHM6Ly9zb2Z0d2FyZS5pbnRlbC5jb20v ZW4tdXMvZm9ydW1zL2ludGVsLWZvcnRyYW4tY29tcGlsZXItZm9yLWxpbnV4LWFuZC1tYWMtb3Mt eC90b3BpYy8yNjg3ODYKKwlJbml0aWFsaXphdGlvbiB0byAwIG9mIGFsbG9jYXRlZCBhcnJheXMg KG9mIGludGVnZXJzKSBpcyBhbgorCWltcGxlbWVudGF0aW9uIGlzc3VlLiBpLmUuIGRvIG5vdCBy ZWx5IG9uIGl0LgorCitPSyBmb3IgY2hlY2staW4/CisKKworSmFuCisKKy0tbVAzRFJwZUpEU0Ur Y2l1UQorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50 LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cKKzIwMTUtMTEtMDMgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KKworCSogZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cCAoZXZhbHVhdGUgYWxsb2NhdGVkIHZs YSk6IFJlbW92ZSB0ZXN0LgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt dmxhLWZvcnRyYW4uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhw CitpbmRleCBkMTkxNjIzLi5iYWVlN2Y4IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktdmxhLWZvcnRyYW4uZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEt Zm9ydHJhbi5leHAKK0BAIC02OCw4ICs2OCw2IEBAIG1pX2NyZWF0ZV9icmVha3BvaW50ICItdCB2 bGEuZjkwOiRicF9saW5lbm8iIDIgImRlbCIgInZsYSIgIi4qdmxhLmY5MCIgXAorIG1pX3J1bl9j bWQKKyBtaV9leHBlY3Rfc3RvcCAiYnJlYWtwb2ludC1oaXQiICJ2bGEiICIiICIuKnZsYS5mOTAi ICIkYnBfbGluZW5vIiBcCisgICB7ICIiICJkaXNwPVwiZGVsXCIiIH0gInJ1biB0byBicmVha3Bv aW50IGF0IGxpbmUgJGJwX2xpbmVubyIKKy1taV9nZGJfdGVzdCAiNTEwLWRhdGEtZXZhbHVhdGUt ZXhwcmVzc2lvbiB2bGExIiBcCistICAiNTEwXFxeZG9uZSx2YWx1ZT1cIlxcKDAsIDAsIDAsIDAs IDBcXClcIiIgImV2YWx1YXRlIGFsbG9jYXRlZCB2bGEiCisgCisgbWlfY3JlYXRlX3Zhcm9ial9j aGVja2VkIHZsYTFfYWxsb2NhdGVkIHZsYTEgInJlYWxcXFwoa2luZD00XFxcKSBcXFwoNVxcXCki IFwKKyAgICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgdmxhMV9hbGxvY2F0ZWQiCisKKy0tbVAzRFJw ZUpEU0UrY2l1US0tCisKCmRpZmYgLS1naXQgYS9nZGItbm9uc3RvcC1zY3JhdGNocGFkLnBhdGNo IGIvZ2RiLW5vbnN0b3Atc2NyYXRjaHBhZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41MjI5ZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLW5vbnN0b3Atc2NyYXRj aHBhZC5wYXRjaApAQCAtMCwwICsxLDI2OCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dk Yi1wYXRjaGVzLzIwMTUtMTAvbXNnMDA2MDEuaHRtbAorU3ViamVjdDogW1BBVENIXSBbUEFUQ0hd IERvbid0IGRpc3BsYWNlZCBzdGVwIHdoZW4gdGhlcmUncyBhIGJyZWFrcG9pbnQgaW4gdGhlIHNj cmF0Y2ggcGFkIHJhbmdlCisKK0Fzc3VtaW5nIGRpc3BsYWNlZCBzdGVwcGluZyBpcyBlbmFibGVk LCBhbmQgYSBicmVha3BvaW50IGlzIHNldCBpbiB0aGUKK21lbW9yeSByZWdpb24gb2YgdGhlIHNj cmF0Y2ggcGFkLCB0aGluZ3MgYnJlYWsuICBPbmUgb2YgdHdvIGNhc2VzIGNhbgoraGFwcGVuOgor CisjMSAtIFRoZSBicmVha3BvaW50IHdhc24ndCBpbnNlcnRlZCB5ZXQgKGFsbCB0aHJlYWRzIHdl cmUgc3RvcHBlZCksIHNvCisgICAgIGFmdGVyIHNldHRpbmcgdXAgdGhlIGRpc3BsYWNlZCBzdGVw cGluZyBzY3JhdGNoIHBhZCB3aXRoIHRoZQorICAgICBhZGp1c3RlZCBjb3B5IG9mIHRoZSBpbnN0 cnVjdGlvbiB3ZSdyZSB0cnlpbmcgdG8gc2luZ2xlLXN0ZXAsIHdlCisgICAgIGluc2VydCB0aGUg YnJlYWtwb2ludCwgd2hpY2ggY29ycnVwdHMgdGhlIHNjcmF0Y2ggcGFkLCBhbmQgdGhlCisgICAg IGluZmVyaW9yIGV4ZWN1dGVzIHRoZSB3cm9uZyBpbnN0cnVjdGlvbi4gIChFeGFtcGxlIGJlbG93 LikKKyAgICAgVGhpcyBpcyBjbGVhcmx5IHVuYWNjZXB0YWJsZS4KKworIzIgLSBUaGUgYnJlYWtw b2ludCB3YXMgYWxyZWFkeSBpbnNlcnRlZCwgc28gc2V0dGluZyB1cCB0aGUgZGlzcGxhY2VkCisg ICAgIHN0ZXBwaW5nIHNjcmF0Y2ggcGFkIG92ZXJ3cml0ZXMgdGhlIGJyZWFrcG9pbnQuICBUaGlz IGlzIE9LIGluCisgICAgIHRoZSBzZW5zZSB0aGF0IHdlIGFscmVhZHkgYXNzdW1lIHRoYXQgbm8g dGhyZWFkIGlzIGdvaW5nIHRvCisgICAgIGV4ZWN1dGVzIHRoZSBjb2RlIGluIHRoZSBzY3JhdGNo IHBhZCByYW5nZSAoYWZ0ZXIgaW5pdGlhbAorICAgICBzdGFydHVwKSBhbnl3YXkuCisKK1RoaXMg Y29tbWl0IGFkZHJlc3NlcyBib3RoIGNhc2VzIGJ5IHNpbXBseSBwdW50aW5nIG9uIGRpc3BsYWNl ZAorc3RlcHBpbmcgaWYgd2UgaGF2ZSBhIGJyZWFrcG9pbnQgaW4gdGhlIHNjcmF0Y2ggcGFkIHJh bmdlLgorCitUaGUgIzEgY2FzZSBhYm92ZSBleHBsYWlucyBhIGZldyByZWdyZXNzaW9ucyBleHBv c2VkIGJ5IHRoZSBBUy9OUworc2VyaWVzIG9uIHg4NjoKKworIFJ1bm5pbmcgLi9nZGIuZHdhcmYy L2NhbGxmcmFtZWNmYS5leHAgLi4uCisgRkFJTDogZ2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEuZXhw OiBzZXQgZGlzcGxheSBmb3IgY2FsbC1mcmFtZS1jZmEKKyBGQUlMOiBnZGIuZHdhcmYyL2NhbGxm cmFtZWNmYS5leHA6IHN0ZXAgMSBmb3IgY2FsbC1mcmFtZS1jZmEKKyBGQUlMOiBnZGIuZHdhcmYy L2NhbGxmcmFtZWNmYS5leHA6IHN0ZXAgMiBmb3IgY2FsbC1mcmFtZS1jZmEKKyBGQUlMOiBnZGIu ZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IHN0ZXAgMyBmb3IgY2FsbC1mcmFtZS1jZmEKKyBGQUlM OiBnZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IHN0ZXAgNCBmb3IgY2FsbC1mcmFtZS1jZmEK KyBSdW5uaW5nIC4vZ2RiLmR3YXJmMi90eXBlZGR3YXJmLmV4cCAuLi4KKyBGQUlMOiBnZGIuZHdh cmYyL3R5cGVkZHdhcmYuZXhwOiBjb250aW51ZSB0byBicmVha3BvaW50OiBjb250aW51ZSB0byB0 eXBlZGR3YXJmLmM6NTMKKyBGQUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdhcmYuZXhwOiBjaGVjayB2 YWx1ZSBvZiB4IGF0IHR5cGVkZHdhcmYuYzo1MworIEZBSUw6IGdkYi5kd2FyZjIvdHlwZWRkd2Fy Zi5leHA6IGNoZWNrIHZhbHVlIG9mIHkgYXQgdHlwZWRkd2FyZi5jOjUzCisgRkFJTDogZ2RiLmR3 YXJmMi90eXBlZGR3YXJmLmV4cDogY2hlY2sgdmFsdWUgb2YgeiBhdCB0eXBlZGR3YXJmLmM6NTMK KyBGQUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdhcmYuZXhwOiBjb250aW51ZSB0byBicmVha3BvaW50 OiBjb250aW51ZSB0byB0eXBlZGR3YXJmLmM6NzMKKyBGQUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdh cmYuZXhwOiBjaGVjayB2YWx1ZSBvZiB3IGF0IHR5cGVkZHdhcmYuYzo3MworIEZBSUw6IGdkYi5k d2FyZjIvdHlwZWRkd2FyZi5leHA6IGNoZWNrIHZhbHVlIG9mIHggYXQgdHlwZWRkd2FyZi5jOjcz CisgRkFJTDogZ2RiLmR3YXJmMi90eXBlZGR3YXJmLmV4cDogY2hlY2sgdmFsdWUgb2YgeSBhdCB0 eXBlZGR3YXJmLmM6NzMKKyBGQUlMOiBnZGIuZHdhcmYyL3R5cGVkZHdhcmYuZXhwOiBjaGVjayB2 YWx1ZSBvZiB6IGF0IHR5cGVkZHdhcmYuYzo3MworCitFbmFibGluZyAibWFpbnQgc2V0IHRhcmdl dC1ub24tc3RvcCBvbiIgaW1wbGllcyBkaXNwbGFjZWQgc3RlcHBpbmcKK2VuYWJsZWQgYXMgd2Vs bCwgYW5kIGl0J3MgdGhlIGxhdHRlciB0aGF0J3MgdG8gYmxhbWUgaGVyZS4gIFdlIGNhbiBzZWUK K3RoZSBzYW1lIGZhaWx1cmVzIHdpdGggIm1haW50IHNldCB0YXJnZXQtbm9uLXN0b3Agb2ZmICsg c2V0IGRpc3BsYWNlZAorb24iLgorCitEaWZmaW5nIChnb29kL2JhZCkgZ2RiLmxvZyBmb3IgY2Fs bGZyYW1lY2ZhLmV4cCBzaG93czoKKworIEBAIC05OSwyOSArOTksMjkgQEAgQnJlYWtwb2ludCAy IGF0IDB4ODA0ODFiMDogZmlsZSBxLmMsIGxpbgorICBjb250aW51ZQorICBDb250aW51aW5nLgor CisgLUJyZWFrcG9pbnQgMiwgZnVuYyAoYXJnPTc3KSBhdCBxLmM6MgorICtCcmVha3BvaW50IDIs IGZ1bmMgKGFyZz01MjMwMSkgYXQgcS5jOjIKKyAgMiAgICAgIGluIHEuYworICAoZ2RiKSBQQVNT OiBnZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHA6IGNvbnRpbnVlIHRvIGJyZWFrcG9pbnQ6IGNv bnRpbnVlIHRvIGJyZWFrcG9pbnQgZm9yIGNhbGwtZnJhbWUtY2ZhCisgIGRpc3BsYXkgYXJnCisg LTE6IGFyZyA9IDc3CisgLShnZGIpIFBBU1M6IGdkYi5kd2FyZjIvY2FsbGZyYW1lY2ZhLmV4cDog c2V0IGRpc3BsYXkgZm9yIGNhbGwtZnJhbWUtY2ZhCisgKzE6IGFyZyA9IDUyMzAxCisgKyhnZGIp IEZBSUw6IGdkYi5kd2FyZjIvY2FsbGZyYW1lY2ZhLmV4cDogc2V0IGRpc3BsYXkgZm9yIGNhbGwt ZnJhbWUtY2ZhCisKK1RoZSBwcm9ibGVtIGlzIGhlcmUsIHdoZW4gc2V0dGluZyB1cCB0aGUgZnVu YyBjYWxsOgorCisgQnJlYWtwb2ludCAxLCBtYWluIChhcmdjPS0xMzM0NSwgYXJndj0weDApIGF0 IHEuYzo3CisgNyAgICAgICBpbiBxLmMKKworIChnZGIpIGRpc2Fzc2VtYmxlCisgRHVtcCBvZiBh c3NlbWJsZXIgY29kZSBmb3IgZnVuY3Rpb24gbWFpbjoKKyAgICAweDA4MDQ4MWJiIDwrMD46ICAg ICBwdXNoICAgJWVicAorICAgIDB4MDgwNDgxYmMgPCsxPjogICAgIG1vdiAgICAlZXNwLCVlYnAK KyAgICAweDA4MDQ4MWJlIDwrMz46ICAgICBzdWIgICAgJDB4NCwlZXNwCisgPT4gMHgwODA0ODFj MSA8KzY+OiAgICAgbW92bCAgICQweDRkLCglZXNwKQorICAgIDB4MDgwNDgxYzggPCsxMz46ICAg IGNhbGwgICAweDgwNDgxYjAgPGZ1bmM+CisgICAgMHgwODA0ODFjZCA8KzE4PjogICAgbGVhdmUK KyAgICAweDA4MDQ4MWNlIDwrMTk+OiAgICByZXQKKyBFbmQgb2YgYXNzZW1ibGVyIGR1bXAuCisg KGdkYikgZGlzYXNzZW1ibGUgL3IKKyBEdW1wIG9mIGFzc2VtYmxlciBjb2RlIGZvciBmdW5jdGlv biBtYWluOgorICAgIDB4MDgwNDgxYmIgPCswPjogICAgIDU1ICAgICAgcHVzaCAgICVlYnAKKyAg ICAweDA4MDQ4MWJjIDwrMT46ICAgICA4OSBlNSAgIG1vdiAgICAlZXNwLCVlYnAKKyAgICAweDA4 MDQ4MWJlIDwrMz46ICAgICA4MyBlYyAwNCAgICAgICAgc3ViICAgICQweDQsJWVzcAorID0+IDB4 MDgwNDgxYzEgPCs2PjogICAgIGM3IDA0IDI0IDRkIDAwIDAwIDAwICAgIG1vdmwgICAkMHg0ZCwo JWVzcCkKKyAgICAweDA4MDQ4MWM4IDwrMTM+OiAgICBlOCBlMyBmZiBmZiBmZiAgY2FsbCAgIDB4 ODA0ODFiMCA8ZnVuYz4KKyAgICAweDA4MDQ4MWNkIDwrMTg+OiAgICBjOSAgICAgIGxlYXZlCisg ICAgMHgwODA0ODFjZSA8KzE5PjogICAgYzMgICAgICByZXQKKyBFbmQgb2YgYXNzZW1ibGVyIGR1 bXAuCisKK05vdGUgdGhlIGJyZWFrcG9pbnQgYXQgbWFpbiBpcyBzZXQgYXQgMHgwODA0ODFjMS4g IFJpZ2h0IGF0IHRoZQoraW5zdHJ1Y3Rpb24gdGhhdCBzZXRzIHVwIGZ1bmMncyBhcmd1bWVudC4g IEV4ZWN1dGluZyB0aGF0IGluc3RydWN0aW9uCitzaG91bGQgd3JpdGUgMHg0ZCB0byB0aGUgYWRk cmVzcyBwb2ludGVkIGF0IGJ5ICRlc3AuICBIb3dldmVyLCBpZiB3ZQorc3RlcGksIHRoZSBwcm9n cmFtIG1hbmFnZXMgdG8gd3JpdGUgNTIzMDEvMHhjYzRkIHRoZXJlIGluc3RlYWQgKDB4Y2MKK2lz IGludDMsIHRoZSB4ODYgYnJlYWtwb2ludCBpbnN0cnVjdGlvbiksIGJlY2F1c2UgdGhlIGJyZWFr cG9pbnQKK2FkZHJlc3MgaXMgNCBieXRlcyBpbnNpZGUgdGhlIHNjcmF0Y2ggcGFkIGxvY2F0aW9u LCB3aGljaCBpcworMHgwODA0ODFiZDoKKworIChnZGIpIHAgMHgwODA0ODFjMSAtIDB4MDgwNDgx YmQKKyAkMSA9IDQKKworSU9XLCBpbnN0ZWFkIG9mIGV4ZWN1dGluZzoKKworICAiYzcgMDQgMjQg NGQgMDAgMDAgMDAiIFsgbW92bCAkMHg0ZCwoJWVzcCkgXQorCit0aGUgaW5mZXJpb3IgZXhlY3V0 ZXM6CisKKyAgImM3IDA0IDI0IDRkIGNjIDAwIDAwIiBbbW92bCAkMHhjYzRkLCglZXNwKSBdCisK K2dkYi9DaGFuZ2VMb2c6CisyMDE1LTEwLTI2ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQu Y29tPgorCisJKiBicmVha3BvaW50LmMgKGJyZWFrcG9pbnRfaW5fcmFuZ2VfcCkKKwkoYnJlYWtw b2ludF9sb2NhdGlvbl9hZGRyZXNzX3JhbmdlX292ZXJsYXApOiBOZXcgZnVuY3Rpb25zLgorCSog YnJlYWtwb2ludC5oIChicmVha3BvaW50X2luX3JhbmdlX3ApOiBOZXcgZGVjbGFyYXRpb24uCisJ KiBpbmZydW4uYyAoZGlzcGxhY2VkX3N0ZXBfcHJlcGFyZV90aHJvdyk6IElmIHRoZXJlJ3MgYSBi cmVha3BvaW50CisJaW4gdGhlIHNjcmF0Y2ggcGFkIHJhbmdlLCBkb24ndCBkaXNwbGFjZWQgc3Rl cC4KKy0tLQorIGdkYi9icmVha3BvaW50LmMgfCA2MCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGdkYi9icmVha3BvaW50LmggfCAgNSAr KysrKworIGdkYi9pbmZydW4uYyAgICAgfCAyMyArKysrKysrKysrKysrKysrKysrKysrCisgMyBm aWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nZGIvYnJlYWtw b2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYworaW5kZXggMmM5MDFmZi4uNTg2MzU3MyAxMDA2NDQK Ky0tLSBhL2dkYi9icmVha3BvaW50LmMKKysrKyBiL2dkYi9icmVha3BvaW50LmMKK0BAIC0xNzMs NiArMTczLDEwIEBAIHN0YXRpYyBpbnQgYnJlYWtwb2ludF9sb2NhdGlvbl9hZGRyZXNzX21hdGNo IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLAorIAkJCQkJICAgICAgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKmFzcGFjZSwKKyAJCQkJCSAgICAgIENPUkVfQUREUiBhZGRyKTsKKyAKKytzdGF0aWMgaW50 IGJyZWFrcG9pbnRfbG9jYXRpb25fYWRkcmVzc19yYW5nZV9vdmVybGFwIChzdHJ1Y3QgYnBfbG9j YXRpb24gKiwKKysJCQkJCQkgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLAorKwkJCQkJCSAg ICAgIENPUkVfQUREUiwgaW50KTsKKysKKyBzdGF0aWMgdm9pZCBicmVha3BvaW50c19pbmZvIChj aGFyICosIGludCk7CisgCisgc3RhdGljIHZvaWQgd2F0Y2hwb2ludHNfaW5mbyAoY2hhciAqLCBp bnQpOworQEAgLTQyNDMsNiArNDI0Nyw0MCBAQCBicmVha3BvaW50X2hlcmVfcCAoc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKmFzcGFjZSwgQ09SRV9BRERSIHBjKQorICAgcmV0dXJuIGFueV9icmVha3Bv aW50X2hlcmUgPyBvcmRpbmFyeV9icmVha3BvaW50X2hlcmUgOiBub19icmVha3BvaW50X2hlcmU7 CisgfQorIAorKy8qIFNlZSBicmVha3BvaW50LmguICAqLworKworK2ludAorK2JyZWFrcG9pbnRf aW5fcmFuZ2VfcCAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKKysJCSAgICAgICBDT1JF X0FERFIgYWRkciwgVUxPTkdFU1QgbGVuKQorK3sKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYmws ICoqYmxwX3RtcDsKKysKKysgIEFMTF9CUF9MT0NBVElPTlMgKGJsLCBibHBfdG1wKQorKyAgICB7 CisrICAgICAgaWYgKGJsLT5sb2NfdHlwZSAhPSBicF9sb2Nfc29mdHdhcmVfYnJlYWtwb2ludAor KwkgICYmIGJsLT5sb2NfdHlwZSAhPSBicF9sb2NfaGFyZHdhcmVfYnJlYWtwb2ludCkKKysJY29u dGludWU7CisrCisrICAgICAgaWYgKChicmVha3BvaW50X2VuYWJsZWQgKGJsLT5vd25lcikKKysJ ICAgfHwgYmwtPnBlcm1hbmVudCkKKysJICAmJiBicmVha3BvaW50X2xvY2F0aW9uX2FkZHJlc3Nf cmFuZ2Vfb3ZlcmxhcCAoYmwsIGFzcGFjZSwKKysJCQkJCQkJYWRkciwgbGVuKSkKKysJeworKwkg IGlmIChvdmVybGF5X2RlYnVnZ2luZworKwkgICAgICAmJiBzZWN0aW9uX2lzX292ZXJsYXkgKGJs LT5zZWN0aW9uKQorKwkgICAgICAmJiAhc2VjdGlvbl9pc19tYXBwZWQgKGJsLT5zZWN0aW9uKSkK KysJICAgIHsKKysJICAgICAgLyogVW5tYXBwZWQgb3ZlcmxheSAtLSBjYW4ndCBiZSBhIG1hdGNo LiAgKi8KKysJICAgICAgY29udGludWU7CisrCSAgICB9CisrCisrCSAgcmV0dXJuIDE7CisrCX0K KysgICAgfQorKworKyAgcmV0dXJuIDA7CisrfQorKworIC8qIFJldHVybiB0cnVlIGlmIHRoZXJl J3MgYSBtb3JpYnVuZCBicmVha3BvaW50IGF0IFBDLiAgKi8KKyAKKyBpbnQKK0BAIC03MDc5LDYg KzcxMTcsMjggQEAgYnJlYWtwb2ludF9sb2NhdGlvbl9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYnBf bG9jYXRpb24gKmJsLAorIAkJCQkJCSBhc3BhY2UsIGFkZHIpKSk7CisgfQorIAorKy8qIFJldHVy bnMgdHJ1ZSBpZiB0aGUgW0FERFIsQUREUitMRU4pIHJhbmdlIGluIEFTUEFDRSBvdmVybGFwcwor KyAgIGJyZWFrcG9pbnQgQkwuICBCTCBtYXkgYmUgYSByYW5nZWQgYnJlYWtwb2ludC4gIEluIG1v c3QgdGFyZ2V0cywgYQorKyAgIG1hdGNoIGhhcHBlbnMgb25seSBpZiBBU1BBQ0UgbWF0Y2hlcyB0 aGUgYnJlYWtwb2ludCdzIGFkZHJlc3MKKysgICBzcGFjZS4gIE9uIHRhcmdldHMgdGhhdCBoYXZl IGdsb2JhbCBicmVha3BvaW50cywgdGhlIGFkZHJlc3Mgc3BhY2UKKysgICBkb2Vzbid0IHJlYWxs eSBtYXR0ZXIuICAqLworKworK3N0YXRpYyBpbnQKKyticmVha3BvaW50X2xvY2F0aW9uX2FkZHJl c3NfcmFuZ2Vfb3ZlcmxhcCAoc3RydWN0IGJwX2xvY2F0aW9uICpibCwKKysJCQkJCSAgIHN0cnVj dCBhZGRyZXNzX3NwYWNlICphc3BhY2UsCisrCQkJCQkgICBDT1JFX0FERFIgYWRkciwgaW50IGxl bikKKyt7CisrICBpZiAoZ2RiYXJjaF9oYXNfZ2xvYmFsX2JyZWFrcG9pbnRzICh0YXJnZXRfZ2Ri YXJjaCAoKSkKKysgICAgICB8fCBibC0+cHNwYWNlLT5hc3BhY2UgPT0gYXNwYWNlKQorKyAgICB7 CisrICAgICAgaW50IGJsX2xlbiA9IGJsLT5sZW5ndGggIT0gMCA/IGJsLT5sZW5ndGggOiAxOwor KworKyAgICAgIGlmIChtZW1fcmFuZ2VzX292ZXJsYXAgKGFkZHIsIGxlbiwgYmwtPmFkZHJlc3Ms IGJsX2xlbikpCisrCXJldHVybiAxOworKyAgICB9CisrICByZXR1cm4gMDsKKyt9CisrCisgLyog SWYgTE9DMSBhbmQgTE9DMidzIG93bmVycyBhcmUgbm90IHRyYWNlcG9pbnRzLCByZXR1cm5zIGZh bHNlIGRpcmVjdGx5LgorICAgIFRoZW4sIGlmIExPQzEgYW5kIExPQzIgcmVwcmVzZW50IHRoZSBz YW1lIHRyYWNlcG9pbnQgbG9jYXRpb24sIHJldHVybnMKKyAgICB0cnVlLCBvdGhlcndpc2UgcmV0 dXJucyBmYWxzZS4gICovCitkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuaCBiL2dkYi9icmVh a3BvaW50LmgKK2luZGV4IDg5NmQzZWIuLmVlOGIyZTAgMTAwNjQ0CistLS0gYS9nZGIvYnJlYWtw b2ludC5oCisrKysgYi9nZGIvYnJlYWtwb2ludC5oCitAQCAtMTE0Niw2ICsxMTQ2LDExIEBAIGV4 dGVybiBpbnQgcHJvZ3JhbV9icmVha3BvaW50X2hlcmVfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIENPUkVfQUREUiBhZGRyZXNzCisgZXh0ZXJuIGVudW0gYnJlYWtwb2ludF9oZXJlIGJyZWFr cG9pbnRfaGVyZV9wIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCAKKyAJCQkJCSAgICAgICBDT1JF X0FERFIpOworIAorKy8qIFJldHVybiB0cnVlIGlmIGFuIGVuYWJsZWQgYnJlYWtwb2ludCBleGlz dHMgaW4gdGhlIHJhbmdlIGRlZmluZWQgYnkKKysgICBBRERSIGFuZCBMRU4sIGluIEFTUEFDRS4g ICovCisrZXh0ZXJuIGludCBicmVha3BvaW50X2luX3JhbmdlX3AgKHN0cnVjdCBhZGRyZXNzX3Nw YWNlICphc3BhY2UsCisrCQkJCSAgQ09SRV9BRERSIGFkZHIsIFVMT05HRVNUIGxlbik7CisrCisg ZXh0ZXJuIGludCBtb3JpYnVuZF9icmVha3BvaW50X2hlcmVfcCAoc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKiwgQ09SRV9BRERSKTsKKyAKKyBleHRlcm4gaW50IGJyZWFrcG9pbnRfaW5zZXJ0ZWRfaGVy ZV9wIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBDT1JFX0FERFIpOworZGlmZiAtLWdpdCBhL2dk Yi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYworaW5kZXggOTE3ZjliZS4uZWY0Y2NiNCAxMDA2NDQK Ky0tLSBhL2dkYi9pbmZydW4uYworKysrIGIvZ2RiL2luZnJ1bi5jCitAQCAtMTcyOSw2ICsxNzI5 LDcgQEAgZGlzcGxhY2VkX3N0ZXBfcHJlcGFyZV90aHJvdyAocHRpZF90IHB0aWQpCisgICBzdHJ1 Y3QgdGhyZWFkX2luZm8gKnRwID0gZmluZF90aHJlYWRfcHRpZCAocHRpZCk7CisgICBzdHJ1Y3Qg cmVnY2FjaGUgKnJlZ2NhY2hlID0gZ2V0X3RocmVhZF9yZWdjYWNoZSAocHRpZCk7CisgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisrICBz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlID0gZ2V0X3JlZ2NhY2hlX2FzcGFjZSAocmVnY2Fj aGUpOworICAgQ09SRV9BRERSIG9yaWdpbmFsLCBjb3B5OworICAgVUxPTkdFU1QgbGVuOworICAg c3RydWN0IGRpc3BsYWNlZF9zdGVwX2Nsb3N1cmUgKmNsb3N1cmU7CitAQCAtMTc4NCw2ICsxNzg1 LDI4IEBAIGRpc3BsYWNlZF9zdGVwX3ByZXBhcmVfdGhyb3cgKHB0aWRfdCBwdGlkKQorICAgY29w eSA9IGdkYmFyY2hfZGlzcGxhY2VkX3N0ZXBfbG9jYXRpb24gKGdkYmFyY2gpOworICAgbGVuID0g Z2RiYXJjaF9tYXhfaW5zbl9sZW5ndGggKGdkYmFyY2gpOworIAorKyAgaWYgKGJyZWFrcG9pbnRf aW5fcmFuZ2VfcCAoYXNwYWNlLCBjb3B5LCBsZW4pKQorKyAgICB7CisrICAgICAgLyogVGhlcmUn cyBhIGJyZWFrcG9pbnQgc2V0IGluIHRoZSBzY3JhdGNoIHBhZCBsb2NhdGlvbiByYW5nZQorKwkg KHdoaWNoIGlzIHVzdWFsbHkgYXJvdW5kIHRoZSBlbnRyeSBwb2ludCkuICBXZSdkIGVpdGhlcgor KwkgaW5zdGFsbCBpdCBiZWZvcmUgcmVzdW1pbmcsIHdoaWNoIHdvdWxkIG92ZXJ3cml0ZS9jb3Jy dXB0IHRoZQorKwkgc2NyYXRjaCBwYWQsIG9yIGlmIGl0IHdhcyBhbHJlYWR5IGluc2VydGVkLCB0 aGlzIGRpc3BsYWNlZAorKwkgc3RlcCB3b3VsZCBvdmVyd3JpdGUgaXQuICBUaGUgbGF0dGVyIGlz IE9LIGluIHRoZSBzZW5zZSB0aGF0CisrCSB3ZSBhbHJlYWR5IGFzc3VtZSB0aGF0IG5vIHRocmVh ZCBpcyBnb2luZyB0byBleGVjdXRlIHRoZSBjb2RlCisrCSBpbiB0aGUgc2NyYXRjaCBwYWQgcmFu Z2UgKGFmdGVyIGluaXRpYWwgc3RhcnR1cCkgYW55d2F5LCBidXQKKysJIHRoZSBmb3JtZXIgaXMg dW5hY2NlcHRhYmxlLiAgU2ltcGx5IHB1bnQgYW5kIGZhbGxiYWNrIHRvCisrCSBzdGVwcGluZyBv dmVyIHRoaXMgYnJlYWtwb2ludCBpbi1saW5lLiAgKi8KKysgICAgICBpZiAoZGVidWdfZGlzcGxh Y2VkKQorKwl7CisrCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorKwkJCSAgICAg ICJkaXNwbGFjZWQ6IGJyZWFrcG9pbnQgc2V0IGluIHNjcmF0Y2ggcGFkLiAgIgorKwkJCSAgICAg ICJTdGVwcGluZyBvdmVyIGJyZWFrcG9pbnQgaW4tbGluZSBpbnN0ZWFkLlxuIik7CisrCX0KKysK KysgICAgICBkb19jbGVhbnVwcyAob2xkX2NsZWFudXBzKTsKKysgICAgICByZXR1cm4gLTE7Cisr ICAgIH0KKysKKyAgIC8qIFNhdmUgdGhlIG9yaWdpbmFsIGNvbnRlbnRzIG9mIHRoZSBjb3B5IGFy ZWEuICAqLworICAgZGlzcGxhY2VkLT5zdGVwX3NhdmVkX2NvcHkgPSAoZ2RiX2J5dGUgKikgeG1h bGxvYyAobGVuKTsKKyAgIGlnbm9yZV9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAoZnJlZV9jdXJy ZW50X2NvbnRlbnRzLAorLS0gCisxLjkuMworCgpkaWZmIC0tZ2l0IGEvZ2RiLXByb2Jlcy1iYXNl ZC1pbnRlcmZhY2Utcm9idXN0LTFvZjIucGF0Y2ggYi9nZGItcHJvYmVzLWJhc2VkLWludGVyZmFj ZS1yb2J1c3QtMW9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTI5NWUw Ni4uMDAwMDAwMAotLS0gYS9nZGItcHJvYmVzLWJhc2VkLWludGVyZmFjZS1yb2J1c3QtMW9mMi5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5MyArMCwwIEBACi1Gcm9tIGY0NjllOGNlMTE2NzJl MjZmZWI1YmE2ZjlhMTM0Mjc1ZmNmZDViNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmks IDIxIEF1ZyAyMDE1IDE4OjEzOjQ2IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMS80XSBJbXByb3Zl IGVycm9yIHJlcG9ydGluZyB3aGVuIGhhbmRsaW5nIFN5c3RlbVRhcCBTRFQKLSBwcm9iZXMKLQot VGhpcyBwYXRjaCBpbXByb3ZlcyB0aGUgZXJyb3IgcmVwb3J0aW5nIHdoZW4gaGFuZGxpbmcgU3lz dGVtVGFwIFNEVAotcHJvYmVzLiAgIkhhbmRsaW5nIiwgaW4gdGhpcyBjYXNlLCBtb3N0bHkgbWVh bnMgInBhcnNpbmciLgotCi1PbiBnZGIvcHJvYmUuaCwgb25seSB0cml2aWFsIGNoYW5nZXMgb24g ZnVuY3Rpb25zJyBjb21tZW50cyBpbiBvcmRlcgotdG8gZXhwbGljaXRseSBtZW50aW9uIHRoYXQg c29tZSBvZiB0aGVtIGNhbiB0aHJvdyBleGNlcHRpb25zLiAgVGhpcyBpcwotanVzdCB0byBtYWtl IHRoZSBBUEkgYSBiaXQgbW9yZSBjbGVhci4KLQotT24gZ2RiL3N0YXAtcHJvYmUuYywgSSBoYXZl IHMvaW50ZXJuYWxfZXJyb3IvZXJyb3IvIG9uIHR3byBmdW5jdGlvbnMKLXRoYXQgYXJlIHJlc3Bv bnNpYmxlIGZvciBwYXJzaW5nIHNwZWNpZmljIGJpdHMgb2YgdGhlIHByb2JlcycKLWFyZ3VtZW50 czogc3RhcF9nZXRfb3Bjb2RlIGFuZCBzdGFwX2dldF9leHBlY3RlZF9hcmd1bWVudF90eXBlLiAg SXQgaXMKLW5vdCBjb3JyZWN0IHRvIGNhbGwgaW50ZXJuYWxfZXJyb3Igb24gc3VjaCBzaXR1YXRp b25zIGJlY2F1c2UgaXQgaXMKLW5vdCByZWFsbHkgR0RCJ3MgZmF1bHQgaWYgdGhlIHByb2JlcyBo YXZlIG1hbGZvcm1lZCBhcmd1bWVudHMuICBJIGFsc28KLWltcHJvdmVkIHRoZSBlcnJvciByZXBv cnRlZCBvbiBzdGFwX2dldF9leHBlY3RlZF9hcmd1bWVudF90eXBlIGJ5IGFsc28KLWluY2x1ZGlu ZyB0aGUgcHJvYmUgbmFtZSBvbiBpdC4KLQotQXNpZGUgZnJvbSB0aGF0LCBhbmQgcGVyaGFwcyBt b3N0IGltcG9ydGFudGx5LCBJIGFkZGVkIGEgY2hlY2sgb24KLXN0YXBfZ2V0X2FyZyB0byBtYWtl IHN1cmUgdGhhdCB3ZSBkb24ndCB0cnkgdG8gZXh0cmFjdCBhbiBhcmd1bWVudAotZnJvbSBhIHBy b2JlIHRoYXQgaGFzIG5vIGFyZ3VtZW50cy4gIFRoaXMgY2hlY2sgaXNzdWVzIGFuCi1pbnRlcm5h bF9lcnJvciwgYmVjYXVzZSBpdCByZWFsbHkgbWVhbnMgdGhhdCBHREIgaXMgZG9pbmcgc29tZXRo aW5nIGl0Ci1zaG91bGRuJ3QuCi0KLUFsdGhvdWdoIGl0IGNhbiBiZSBjb25zaWRlcmVkIGFsbW9z dCB0cml2aWFsLCBhbmQgZGVzcGl0ZSB0aGUgZmFjdAotdGhhdCBJIGFtIHRoZSBtYWludGFpbmVy IGZvciB0aGlzIHBhcnQgb2YgdGhlIGNvZGUsIEkgYW0gcG9zdGluZyB0aGlzCi1wYXRjaCBmb3Ig cmV2aWV3LiAgSSB3aWxsIHdhaXQgYSBmZXcgZGF5cywgYW5kIGlmIG5vYm9keSBoYXMgYW55dGhp bmcKLXRvIHNheSwgSSB3aWxsIGdvIGFoZWFkIGFuZCBwdXNoIGl0LgotCi1nZGIvQ2hhbmdlTG9n OgotMjAxNS0wOS0wMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNv bT4KLQotCSogcHJvYmUuaCAoc3RydWN0IHByb2JlX29wcykgPGdldF9wcm9iZV9hcmd1bWVudF9j b3VudCwKLQlldmFsdWF0ZV9wcm9iZV9hcmd1bWVudCwgZW5hYmxlX3Byb2JlLCBkaXNhYmxlX3By b2JlPjogTWVudGlvbiBpbgotCXRoZSBjb21tZW50IHRoYXQgdGhlIGZ1bmN0aW9uIGNhbiB0aHJv dyBhbiBleGNlcHRpb24uCi0JKGdldF9wcm9iZV9hcmd1bWVudF9jb3VudCk6IExpa2V3aXNlLgot CShldmFsdWF0ZV9wcm9iZV9hcmd1bWVudCk6IExpa2V3aXNlLgotCSogc3RhcC1wcm9iZS5jIChz dGFwX2dldF9vcGNvZGUpOiBDYWxsIGVycm9yIGluc3RlYWQgb2YKLQlpbnRlcm5hbF9lcnJvci4K LQkoc3RhcF9nZXRfZXhwZWN0ZWRfYXJndW1lbnRfdHlwZSk6IExpa2V3aXNlLiAgQWRkIGFyZ3Vt ZW50Ci0JJ3Byb2JlJy4gIEltcHJvdmUgZXJyb3IgbWVzc2FnZSBieSBtZW50aW9uaW5nIHRoZSBw cm9iZSdzIG5hbWUuCi0JKHN0YXBfcGFyc2VfcHJvYmVfYXJndW1lbnRzKTogQWRqdXN0IGNhbGwg dG8KLQlzdGFwX2dldF9leHBlY3RlZF9hcmd1bWVudF90eXBlLgotCShzdGFwX2dldF9hcmcpOiBB ZGQgY29tbWVudC4gIEFzc2VydCB0aGF0ICdwcm9iZS0+YXJnc19wYXJzZWQnIGlzCi0Jbm90IHpl cm8uICBDYWxsIGludGVybmFsX2Vycm9yIGlmIEdEQiByZXF1ZXN0cyBhbiBhcmd1bWVudCBidXQg dGhlCi0JcHJvYmUgaGFzIG5vIGFyZ3VtZW50cy4KLS0tLQotIGdkYi9DaGFuZ2VMb2cgICAgfCAx NyArKysrKysrKysrKysrKysrKwotIGdkYi9wcm9iZS5oICAgICAgfCAyMCArKysrKysrKysrKysr Ky0tLS0tLQotIGdkYi9zdGFwLXByb2JlLmMgfCAyOSArKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0p Ci0KLUluZGV4OiBnZGItNy4xMC9nZGIvcHJvYmUuaAotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw Lm9yaWcvZ2RiL3Byb2JlLmgKLSsrKyBnZGItNy4xMC9nZGIvcHJvYmUuaAotQEAgLTcwLDcgKzcw LDggQEAgc3RydWN0IHByb2JlX29wcwotICAgICBDT1JFX0FERFIgKCpnZXRfcHJvYmVfYWRkcmVz cykgKHN0cnVjdCBwcm9iZSAqcHJvYmUsCi0gCQkJCSAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSk7Ci0gCi0tICAgIC8qIFJldHVybiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBvZiBQUk9CRS4g ICovCi0rICAgIC8qIFJldHVybiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBvZiBQUk9CRS4gIFRo aXMgZnVuY3Rpb24gY2FuCi0rICAgICAgIHRocm93IGFuIGV4Y2VwdGlvbi4gICovCi0gCi0gICAg IHVuc2lnbmVkICgqZ2V0X3Byb2JlX2FyZ3VtZW50X2NvdW50KSAoc3RydWN0IHByb2JlICpwcm9i ZSwKLSAJCQkJCSAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKTsKLUBAIC04Miw3ICs4Myw4IEBA IHN0cnVjdCBwcm9iZV9vcHMKLSAgICAgaW50ICgqY2FuX2V2YWx1YXRlX3Byb2JlX2FyZ3VtZW50 cykgKHN0cnVjdCBwcm9iZSAqcHJvYmUpOwotIAotICAgICAvKiBFdmFsdWF0ZSB0aGUgTnRoIGFy Z3VtZW50IGZyb20gdGhlIFBST0JFLCByZXR1cm5pbmcgYSB2YWx1ZQotLSAgICAgICBjb3JyZXNw b25kaW5nIHRvIGl0LiAgVGhlIGFyZ3VtZW50IG51bWJlciBpcyByZXByZXNlbnRlZCBOLiAgKi8K LSsgICAgICAgY29ycmVzcG9uZGluZyB0byBpdC4gIFRoZSBhcmd1bWVudCBudW1iZXIgaXMgcmVw cmVzZW50ZWQgTi4KLSsgICAgICAgVGhpcyBmdW5jdGlvbiBjYW4gdGhyb3cgYW4gZXhjZXB0aW9u LiAgKi8KLSAKLSAgICAgc3RydWN0IHZhbHVlICooKmV2YWx1YXRlX3Byb2JlX2FyZ3VtZW50KSAo c3RydWN0IHByb2JlICpwcm9iZSwKLSAJCQkJCSAgICAgIHVuc2lnbmVkIG4sCi1AQCAtMTQxLDEz ICsxNDMsMTUgQEAgc3RydWN0IHByb2JlX29wcwotIAotICAgICAvKiBFbmFibGUgYSBwcm9iZS4g IFRoZSBzZW1hbnRpY3Mgb2YgImVuYWJsaW5nIiBhIHByb2JlIGRlcGVuZCBvbgotICAgICAgICB0 aGUgc3BlY2lmaWMgYmFja2VuZCBhbmQgdGhlIGZpZWxkIGNhbiBiZSBOVUxMIGluIGNhc2UgZW5h YmxpbmcKLS0gICAgICAgcHJvYmVzIGlzIG5vdCBzdXBwb3J0ZWQuICAqLwotKyAgICAgICBwcm9i ZXMgaXMgbm90IHN1cHBvcnRlZC4gIFRoaXMgZnVuY3Rpb24gY2FuIHRocm93IGFuCi0rICAgICAg IGV4Y2VwdGlvbi4gICovCi0gCi0gICAgIHZvaWQgKCplbmFibGVfcHJvYmUpIChzdHJ1Y3QgcHJv YmUgKnByb2JlKTsKLSAKLSAgICAgLyogRGlzYWJsZSBhIHByb2JlLiAgVGhlIHNlbWFudGljcyBv ZiAiZGlzYWJsaW5nIiBhIHByb2JlIGRlcGVuZAotICAgICAgICBvbiB0aGUgc3BlY2lmaWMgYmFj a2VuZCBhbmQgdGhlIGZpZWxkIGNhbiBiZSBOVUxMIGluIGNhc2UKLS0gICAgICAgZGlzYWJsaW5n IHByb2JlcyBpcyBub3Qgc3VwcG9ydGVkLiAgKi8KLSsgICAgICAgZGlzYWJsaW5nIHByb2JlcyBp cyBub3Qgc3VwcG9ydGVkLiAgVGhpcyBmdW5jdGlvbiBjYW4gdGhyb3cgYW4KLSsgICAgICAgZXhj ZXB0aW9uLiAgKi8KLSAKLSAgICAgdm9pZCAoKmRpc2FibGVfcHJvYmUpIChzdHJ1Y3QgcHJvYmUg KnByb2JlKTsKLSAgIH07Ci1AQCAtMjY0LDcgKzI2OCw5IEBAIGV4dGVybiBzdHJ1Y3QgY21kX2xp c3RfZWxlbWVudCAqKmluZm9fcHIKLSBleHRlcm4gQ09SRV9BRERSIGdldF9wcm9iZV9hZGRyZXNz IChzdHJ1Y3QgcHJvYmUgKnByb2JlLAotIAkJCQkgICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUp OwotIAotLS8qIFJldHVybiB0aGUgYXJndW1lbnQgY291bnQgb2YgdGhlIHNwZWNpZmllZCBwcm9i ZS4gICovCi0rLyogUmV0dXJuIHRoZSBhcmd1bWVudCBjb3VudCBvZiB0aGUgc3BlY2lmaWVkIHBy b2JlLgotKwotKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHRocm93IGFuIGV4Y2VwdGlvbi4gICovCi0g Ci0gZXh0ZXJuIHVuc2lnbmVkIGdldF9wcm9iZV9hcmd1bWVudF9jb3VudCAoc3RydWN0IHByb2Jl ICpwcm9iZSwKLSAJCQkJCSAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKTsKLUBAIC0yNzYsNyAr MjgyLDkgQEAgZXh0ZXJuIHVuc2lnbmVkIGdldF9wcm9iZV9hcmd1bWVudF9jb3VudAotIGV4dGVy biBpbnQgY2FuX2V2YWx1YXRlX3Byb2JlX2FyZ3VtZW50cyAoc3RydWN0IHByb2JlICpwcm9iZSk7 Ci0gCi0gLyogRXZhbHVhdGUgYXJndW1lbnQgTiBvZiB0aGUgc3BlY2lmaWVkIHByb2JlLiAgTiBt dXN0IGJlIGJldHdlZW4gMAotLSAgIGluY2x1c2l2ZSBhbmQgZ2V0X3Byb2JlX2FyZ3VtZW50X2Nv dW50IGV4Y2x1c2l2ZS4gICovCi0rICAgaW5jbHVzaXZlIGFuZCBnZXRfcHJvYmVfYXJndW1lbnRf Y291bnQgZXhjbHVzaXZlLgotKwotKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHRocm93IGFuIGV4Y2Vw dGlvbi4gICovCi0gCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZXZhbHVhdGVfcHJvYmVfYXJndW1l bnQgKHN0cnVjdCBwcm9iZSAqcHJvYmUsCi0gCQkJCQkgICAgICB1bnNpZ25lZCBuLAotSW5kZXg6 IGdkYi03LjEwL2dkYi9zdGFwLXByb2JlLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC5vcmln L2dkYi9zdGFwLXByb2JlLmMKLSsrKyBnZGItNy4xMC9nZGIvc3RhcC1wcm9iZS5jCi1AQCAtMzEz LDkgKzMxMyw4IEBAIHN0YXBfZ2V0X29wY29kZSAoY29uc3QgY2hhciAqKnMpCi0gICAgICAgYnJl YWs7Ci0gCi0gICAgIGRlZmF1bHQ6Ci0tICAgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBf X0xJTkVfXywKLS0JCSAgICAgIF8oIkludmFsaWQgb3Bjb2RlIGluIGV4cHJlc3Npb24gYCVzJyBm b3IgU3lzdGVtVGFwIgotLQkJCSJwcm9iZSIpLCAqcyk7Ci0rICAgICAgZXJyb3IgKF8oIkludmFs aWQgb3Bjb2RlIGluIGV4cHJlc3Npb24gYCVzJyBmb3IgU3lzdGVtVGFwIgotKwkgICAgICAgInBy b2JlIiksICpzKTsKLSAgICAgfQotIAotICAgcmV0dXJuIG9wOwotQEAgLTMyNiw3ICszMjUsOCBA QCBzdGFwX2dldF9vcGNvZGUgKGNvbnN0IGNoYXIgKipzKQotIAotIHN0YXRpYyBzdHJ1Y3QgdHlw ZSAqCi0gc3RhcF9nZXRfZXhwZWN0ZWRfYXJndW1lbnRfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCi0tCQkJCSBlbnVtIHN0YXBfYXJnX2JpdG5lc3MgYikKLSsJCQkJIGVudW0gc3RhcF9h cmdfYml0bmVzcyBiLAotKwkJCQkgY29uc3Qgc3RydWN0IHN0YXBfcHJvYmUgKnByb2JlKQotIHsK LSAgIHN3aXRjaCAoYikKLSAgICAgewotQEAgLTM2MSw4ICszNjEsOCBAQCBzdGFwX2dldF9leHBl Y3RlZF9hcmd1bWVudF90eXBlIChzdHJ1Y3QKLSAgICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChn ZGJhcmNoKS0+YnVpbHRpbl91aW50NjQ7Ci0gCi0gICAgIGRlZmF1bHQ6Ci0tICAgICAgaW50ZXJu YWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKLS0JCSAgICAgIF8oIlVuZGVmaW5lZCBiaXRu ZXNzIGZvciBwcm9iZS4iKSk7Ci0rICAgICAgZXJyb3IgKF8oIlVuZGVmaW5lZCBiaXRuZXNzIGZv ciBwcm9iZSAnJXMnLiIpLAotKwkgICAgIHByb2JlLT5wLm5hbWUpOwotICAgICAgIGJyZWFrOwot ICAgICB9Ci0gfQotQEAgLTExNzIsNyArMTE3Miw4IEBAIHN0YXBfcGFyc2VfcHJvYmVfYXJndW1l bnRzIChzdHJ1Y3Qgc3RhcF8KLSAgICAgICBlbHNlCi0gCWFyZy5iaXRuZXNzID0gU1RBUF9BUkdf QklUTkVTU19VTkRFRklORUQ7Ci0gCi0tICAgICAgYXJnLmF0eXBlID0gc3RhcF9nZXRfZXhwZWN0 ZWRfYXJndW1lbnRfdHlwZSAoZ2RiYXJjaCwgYXJnLmJpdG5lc3MpOwotKyAgICAgIGFyZy5hdHlw ZSA9IHN0YXBfZ2V0X2V4cGVjdGVkX2FyZ3VtZW50X3R5cGUgKGdkYmFyY2gsIGFyZy5iaXRuZXNz LAotKwkJCQkJCSAgIHByb2JlKTsKLSAKLSAgICAgICBleHByID0gc3RhcF9wYXJzZV9hcmd1bWVu dCAoJmN1ciwgYXJnLmF0eXBlLCBnZGJhcmNoKTsKLSAKLUBAIC0xMjc4LDEyICsxMjc5LDI2IEBA IHN0YXBfaXNfb3BlcmF0b3IgKGNvbnN0IGNoYXIgKm9wKQotICAgcmV0dXJuIHJldDsKLSB9Ci0g Ci0rLyogUmV0dXJuIGFyZ3VtZW50IE4gb2YgcHJvYmUgUFJPQkUuCi0rCi0rICAgSWYgdGhlIHBy b2JlJ3MgYXJndW1lbnRzIGhhdmUgbm90IGJlZW4gcGFyc2VkIHlldCwgcGFyc2UgdGhlbS4gIElm Ci0rICAgdGhlcmUgYXJlIG5vIGFyZ3VtZW50cywgdGhyb3cgYW4gZXhjZXB0aW9uIChlcnJvciku ICBPdGhlcndpc2UsCi0rICAgcmV0dXJuIHRoZSByZXF1ZXN0ZWQgYXJndW1lbnQuICAqLwotKwot IHN0YXRpYyBzdHJ1Y3Qgc3RhcF9wcm9iZV9hcmcgKgotIHN0YXBfZ2V0X2FyZyAoc3RydWN0IHN0 YXBfcHJvYmUgKnByb2JlLCB1bnNpZ25lZCBuLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKLSB7 Ci0gICBpZiAoIXByb2JlLT5hcmdzX3BhcnNlZCkKLSAgICAgc3RhcF9wYXJzZV9wcm9iZV9hcmd1 bWVudHMgKHByb2JlLCBnZGJhcmNoKTsKLSAKLSsgIGdkYl9hc3NlcnQgKHByb2JlLT5hcmdzX3Bh cnNlZCk7Ci0rICBpZiAocHJvYmUtPmFyZ3NfdS52ZWMgPT0gTlVMTCkKLSsgICAgaW50ZXJuYWxf ZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJCSAgICBfKCJQcm9iZSAnJXMnIGFwcGFyZW50 bHkgZG9lcyBub3QgaGF2ZSBhcmd1bWVudHMsIGJ1dCBcbiIKLSsJCSAgICAgICJHREIgaXMgcmVx dWVzdGluZyBpdHMgYXJndW1lbnQgbnVtYmVyICV1IGFueXdheS4gICIKLSsJCSAgICAgICJUaGlz IHNob3VsZCBub3QgaGFwcGVuLiAgUGxlYXNlIHJlcG9ydCB0aGlzIGJ1Zy4iKSwKLSsJCSAgICBw cm9iZS0+cC5uYW1lLCBuKTsKLSsKLSAgIHJldHVybiBWRUNfaW5kZXggKHN0YXBfcHJvYmVfYXJn X3MsIHByb2JlLT5hcmdzX3UudmVjLCBuKTsKLSB9Ci0gCgpkaWZmIC0tZ2l0IGEvZ2RiLXByb2Jl cy1iYXNlZC1pbnRlcmZhY2Utcm9idXN0LTJvZjIucGF0Y2ggYi9nZGItcHJvYmVzLWJhc2VkLWlu dGVyZmFjZS1yb2J1c3QtMm9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg YTlhMDIyYy4uMDAwMDAwMAotLS0gYS9nZGItcHJvYmVzLWJhc2VkLWludGVyZmFjZS1yb2J1c3Qt Mm9mMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi1Gcm9tIDNiZDdlNWI3 ZWU1ZWEwYjNiYmI0MDMwY2E4NDFmNjZmYWFkNzRmMGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRl OiBGcmksIDIxIEF1ZyAyMDE1IDE4OjI4OjA3IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMi80XSBD YXRjaGluZyBlcnJvcnMgb24gcHJvYmVzLWJhc2VkIGR5bmFtaWMgbGlua2VyIGludGVyZmFjZQot Ci1UaGlzIHBhdGNoIGlzIGludGVuZGVkIHRvIG1ha2UgdGhlIGludGVyYWN0aW9uIGJldHdlZW4g dGhlCi1wcm9iZXMtYmFzZWQgZHluYW1pYyBsaW5rZXIgaW50ZXJmYWNlIGFuZCB0aGUgU3lzdGVt VGFwIFNEVCBwcm9iZSBjb2RlCi1vbiBHREIgbW9yZSByb2J1c3QuICBJdCBkb2VzIHRoYXQgYnkg d3JhcHBpbmcgdGhlIGNhbGxzIHRvIHRoZSBwcm9iZQotQVBJIHdpdGggVFJZLi4uQ0FUQ0gnZXMs IHNvIHRoYXQgYW55IGV4Y2VwdGlvbiB0aHJvd24gd2lsbCBiZSBjYXVnaHQKLWFuZCBoYW5kbGVk IHByb3Blcmx5LgotCi1UaGUgaWRlYSBmb3IgdGhpcyBwYXRjaCBjYW1lIGZyb20KLTxodHRwczov L2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTExOTYxODE+LCB3aGljaCBpcyBh IGJ1ZwotaW5pdGlhbGx5IGZpbGVkIGFnYWluc3QgRmVkb3JhIEdEQiAoYnV0IG5vdyB1bmRlciBG ZWRvcmEgR0xJQkMpLiAgVGhpcwotYnVnIGhhcHBlbnMgb24gYXJtaGZwIChhbHRob3VnaCBpdCBj b3VsZCBoYXBwZW4gb24gb3RoZXIgdGFyZ2V0cyBhcwotd2VsbCksIGFuZCBpcyB0cmlnZ2VyZWQg YmVjYXVzZSBHQ0MgZ2VuZXJhdGVzIGEgc3RyYW5nZSBhcmd1bWVudCBmb3IKLW9uZSBvZiB0aGUg cHJvYmVzIHVzZWQgYnkgR0RCIGluIHRoZSBkeW5hbWljIGxpbmtlciBpbnRlcmZhY2UuICBBcyBj YW4KLWJlIHNlZW4gaW4gdGhlIGJ1ZywgdGhpcyBhcmd1bWVudCBpcyAiLTRALkwxMDUyIi4KLQot SSBkb24ndCB3YW50IHRvIGRpc2N1c3MgdGhlIHJlYXNvbnMgZm9yIHRoaXMgYXJndW1lbnQgdG8g YmUgdGhlcmUKLSh0aGlzIGRpc2N1c3Npb24gYmVsb25ncyB0byB0aGUgYnVnLCBvciB0byBhbm90 aGVyIHRocmVhZCksIGJ1dCBHREIKLWNvdWxkIGRlZmluaXRlbHkgZG8gYSBiZXR0ZXIgZXJyb3Ig aGFuZGxpbmcgaGVyZS4gIEN1cnJlbnRseSwgb25lIHNlZXMKLXRoZSBmb2xsb3dpbmcgbWVzc2Fn ZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGluIHRoZSBwcm9iZXMtYmFzZWQKLWR5bmFtaWMgbGlu a2VyIGludGVyZmFjZToKLQotICAoZ2RiKSBydW4KLSAgU3RhcnRpbmcgcHJvZ3JhbTogL2Jpbi9p bmZlcmlvcgotICB3YXJuaW5nOiBQcm9iZXMtYmFzZWQgZHluYW1pYyBsaW5rZXIgaW50ZXJmYWNl IGZhaWxlZC4KLSAgUmV2ZXJ0aW5nIHRvIG9yaWdpbmFsIGludGVyZmFjZS4KLQotICBDYW5ub3Qg cGFyc2UgZXhwcmVzc2lvbiBgLkw5NzYgNEByNCcuCi0gIChnZGIpCi0KLVdoaWNoIG1lYW5zIHRo YXQgb25lIG5lZWRzIHRvIGV4cGxpY2l0bHkgaXNzdWUgYSAiY29udGludWUiIGNvbW1hbmQgdG8K LW1ha2UgR0RCIGNvbnRpbnVlIHJ1bm5pbmcgdGhlIGluZmVyaW9yLCBldmVuIHRob3VnaCB0aGlz IGVycm9yIGlzIG5vdAotZmF0YWwgYW5kIEdEQiB3aWxsIGZhbGxiYWNrIHRvIHRoZSBvbGQgaW50 ZXJmYWNlIGF1dG9tYXRpY2FsbHkuCi0KLVRoaXMgaXMgd2hlcmUgdGhpcyBwYXRjaCBoZWxwczog aXQgbWFrZXMgR0RCIHN0aWxsIHByaW50IHRoZSBuZWNlc3NhcnkKLXdhcm5pbmdzIG9yIGVycm9y IG1lc3NhZ2VzLCBidXQgaXQgKmFsc28qIGRvZXMgbm90IHN0b3AgdGhlIGluZmVyaW9yCi11bm5l Y2Vzc2FyaWx5LgotCi1JIGhhdmUgdGVzdGVkIHRoaXMgcGF0Y2ggb24gdGhlIHN5c3RlbXMgd2hl cmUgdGhpcyBlcnJvciBoYXBwZW5zLCBidXQKLUkgY291bGQgbm90IGNvbWUgdXAgd2l0aCBhIHdh eSB0byBjcmVhdGUgYSB0ZXN0Y2FzZSBmb3IgaXQuCi1OZXZlcnRoZWxlc3MsIGl0IHNob3VsZCBi ZSBzdHJhaWdodGZvcndhcmQgdG8gc2VlIHRoYXQgdGhpcyBwYXRjaCBkb2VzCi1pbXByb3ZlIHRo ZSBjdXJyZW50IHNpdHVhdGlvbi4KLQotZ2RiL0NoYW5nZUxvZzoKLTIwMTUtMDktMDEgIFNlcmdp byBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0KLQkqIHNvbGliLXN2cjQu YyAoc29saWJfZXZlbnRfcHJvYmVfYWN0aW9uKTogQ2FsbAotCWdldF9wcm9iZV9hcmd1bWVudF9j b3VudCB1c2luZyBUUlkuLi5DQVRDSC4KLQkoc3ZyNF9oYW5kbGVfc29saWJfZXZlbnQpOiBMaWtl d2lzZSwgZm9yIGV2YWx1YXRlX3Byb2JlX2FyZ3VtZW50LgotLS0tCi0gZ2RiL0NoYW5nZUxvZyAg ICB8ICA2ICsrKysrKwotIGdkYi9zb2xpYi1zdnI0LmMgfCA0MyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQotCi1JbmRleDogZ2RiLTcuMTAvZ2RiL3NvbGliLXN2cjQuYwot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwotKysrIGdkYi03 LjEwL2dkYi9zb2xpYi1zdnI0LmMKLUBAIC0xNzk2LDcgKzE3OTYsMjMgQEAgc29saWJfZXZlbnRf cHJvYmVfYWN0aW9uIChzdHJ1Y3QgcHJvYmVfYQotICAgICAgICBhcmcwOiBMbWlkX3QgbG1pZCAo bWFuZGF0b3J5KQotICAgICAgICBhcmcxOiBzdHJ1Y3Qgcl9kZWJ1ZyAqZGVidWdfYmFzZSAobWFu ZGF0b3J5KQotICAgICAgICBhcmcyOiBzdHJ1Y3QgbGlua19tYXAgKm5ldyAob3B0aW9uYWwsIGZv ciBpbmNyZW1lbnRhbCB1cGRhdGVzKSAgKi8KLS0gIHByb2JlX2FyZ2MgPSBnZXRfcHJvYmVfYXJn dW1lbnRfY291bnQgKHBhLT5wcm9iZSwgZnJhbWUpOwotKyAgVFJZCi0rICAgIHsKLSsgICAgICBw cm9iZV9hcmdjID0gZ2V0X3Byb2JlX2FyZ3VtZW50X2NvdW50IChwYS0+cHJvYmUsIGZyYW1lKTsK LSsgICAgfQotKyAgQ0FUQ0ggKGV4LCBSRVRVUk5fTUFTS19FUlJPUikKLSsgICAgewotKyAgICAg IGV4Y2VwdGlvbl9wcmludCAoZ2RiX3N0ZGVyciwgZXgpOwotKyAgICAgIHByb2JlX2FyZ2MgPSAw OwotKyAgICB9Ci0rICBFTkRfQ0FUQ0gKLSsKLSsgIC8qIElmIGdldF9wcm9iZV9hcmd1bWVudF9j b3VudCB0aHJvd3MgYW4gZXhjZXB0aW9uLCBwcm9iZV9hcmdjIHdpbGwKLSsgICAgIGJlIHNldCB0 byB6ZXJvLiAgSG93ZXZlciwgaWYgcGEtPnByb2JlIGRvZXMgbm90IGhhdmUgYXJndW1lbnRzLAot KyAgICAgdGhlbiBnZXRfcHJvYmVfYXJndW1lbnRfY291bnQgd2lsbCBzdWNjZWVkIGJ1dCBwcm9i ZV9hcmdjIHdpbGwKLSsgICAgIGFsc28gYmUgemVyby4gIEJvdGggY2FzZXMgaGFwcGVuIGJlY2F1 c2Ugb2YgZGlmZmVyZW50IHRoaW5ncywgYnV0Ci0rICAgICB0aGV5IGFyZSB0cmVhdGVkIGVxdWFs bHkgaGVyZTogYWN0aW9uIHdpbGwgYmUgc2V0IHRvCi0rICAgICBQUk9CRVNfSU5URVJGQUNFX0ZB SUxFRC4gICovCi0gICBpZiAocHJvYmVfYXJnYyA9PSAyKQotICAgICBhY3Rpb24gPSBGVUxMX1JF TE9BRDsKLSAgIGVsc2UgaWYgKHByb2JlX2FyZ2MgPCAyKQotQEAgLTE5NTAsNyArMTk2NiwxNyBA QCBzdnI0X2hhbmRsZV9zb2xpYl9ldmVudCAodm9pZCkKLSAgIHVzbV9jaGFpbiA9IG1ha2VfY2xl YW51cCAocmVzdW1lX3NlY3Rpb25fbWFwX3VwZGF0ZXNfY2xlYW51cCwKLSAJCQkgICAgY3VycmVu dF9wcm9ncmFtX3NwYWNlKTsKLSAKLS0gIHZhbCA9IGV2YWx1YXRlX3Byb2JlX2FyZ3VtZW50IChw YS0+cHJvYmUsIDEsIGZyYW1lKTsKLSsgIFRSWQotKyAgICB7Ci0rICAgICAgdmFsID0gZXZhbHVh dGVfcHJvYmVfYXJndW1lbnQgKHBhLT5wcm9iZSwgMSwgZnJhbWUpOwotKyAgICB9Ci0rICBDQVRD SCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9SKQotKyAgICB7Ci0rICAgICAgZXhjZXB0aW9uX3ByaW50 IChnZGJfc3RkZXJyLCBleCk7Ci0rICAgICAgdmFsID0gTlVMTDsKLSsgICAgfQotKyAgRU5EX0NB VENICi0rCi0gICBpZiAodmFsID09IE5VTEwpCi0gICAgIHsKLSAgICAgICBkb19jbGVhbnVwcyAo b2xkX2NoYWluKTsKLUBAIC0xOTgxLDcgKzIwMDcsMTggQEAgc3ZyNF9oYW5kbGVfc29saWJfZXZl bnQgKHZvaWQpCi0gCi0gICBpZiAoYWN0aW9uID09IFVQREFURV9PUl9SRUxPQUQpCi0gICAgIHsK LS0gICAgICB2YWwgPSBldmFsdWF0ZV9wcm9iZV9hcmd1bWVudCAocGEtPnByb2JlLCAyLCBmcmFt ZSk7Ci0rICAgICAgVFJZCi0rCXsKLSsJICB2YWwgPSBldmFsdWF0ZV9wcm9iZV9hcmd1bWVudCAo cGEtPnByb2JlLCAyLCBmcmFtZSk7Ci0rCX0KLSsgICAgICBDQVRDSCAoZXgsIFJFVFVSTl9NQVNL X0VSUk9SKQotKwl7Ci0rCSAgZXhjZXB0aW9uX3ByaW50IChnZGJfc3RkZXJyLCBleCk7Ci0rCSAg ZG9fY2xlYW51cHMgKG9sZF9jaGFpbik7Ci0rCSAgcmV0dXJuOwotKwl9Ci0rICAgICAgRU5EX0NB VENICi0rCi0gICAgICAgaWYgKHZhbCAhPSBOVUxMKQotIAlsbSA9IHZhbHVlX2FzX2FkZHJlc3Mg KHZhbCk7Ci0gCi1Gcm9tIGFkMWM5MTdhNzllOGM1YWE2NzY1N2YxNDg0MTVjMWJlZTAxYjI0MGYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNl cmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDIgU2VwIDIwMTUgMDA6MzQ6MjIgLTA0MDAK LVN1YmplY3Q6IFtQQVRDSCAzLzRdIEluaXRpYWxpemUgdmFyaWFibGUgYW5kIHNpbGVuY2UgR0ND IHdhcm5pbmcgZnJvbSBsYXN0Ci0gY29tbWl0Ci0KLUJ1aWxkQm90IGUtbWFpbGVkIG1lIHRvIGxl dCBtZSBrbm93IHRoYXQgbXkgbGFzdCBjb21taXQgYnJva2UgR0RCIG9uCi1SSEVMLTcuMSBzMzkw eC4gIE9uIHNvbGliLXN2cjQuYzpzdnI0X2hhbmRsZV9zb2xpYl9ldmVudCwgJ3ZhbCcgbm93Ci1u ZWVkcyB0byBiZSBpbml0aWFsaXplZCBhcyBOVUxMIGJlY2F1c2UgaXQgaXMgaW5zaWRlIGEgVFJZ Li5DQVRDSAotYmxvY2suICBUaGlzIHBhdGNoIGRvZXMgdGhhdC4gIFB1c2hlZCBhcyBvYnZpb3Vz LgotCi1nZGIvQ2hhbmdlTG9nOgotMjAxNS0wOS0wMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8 c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLQotCSogc29saWItc3ZyNC5jIChzdnI0X2hhbmRsZV9zb2xp Yl9ldmVudCk6IEluaXRpYWxpemUgJ3ZhbCcgYXMgTlVMTAotLS0tCi0gZ2RiL0NoYW5nZUxvZyAg ICB8IDQgKysrKwotIGdkYi9zb2xpYi1zdnI0LmMgfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotSW5kZXg6IGdkYi03LjEwL2dkYi9zb2xp Yi1zdnI0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC5vcmlnL2dkYi9zb2xpYi1zdnI0LmMK LSsrKyBnZGItNy4xMC9nZGIvc29saWItc3ZyNC5jCi1AQCAtMTkxOCw3ICsxOTE4LDcgQEAgc3Zy NF9oYW5kbGVfc29saWJfZXZlbnQgKHZvaWQpCi0gICBzdHJ1Y3QgcHJvYmVfYW5kX2FjdGlvbiAq cGE7Ci0gICBlbnVtIHByb2JlX2FjdGlvbiBhY3Rpb247Ci0gICBzdHJ1Y3QgY2xlYW51cCAqb2xk X2NoYWluLCAqdXNtX2NoYWluOwotLSAgc3RydWN0IHZhbHVlICp2YWw7Ci0rICBzdHJ1Y3QgdmFs dWUgKnZhbCA9IE5VTEw7Ci0gICBDT1JFX0FERFIgcGMsIGRlYnVnX2Jhc2UsIGxtID0gMDsKLSAg IGludCBpc19pbml0aWFsX25zOwotICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lID0gZ2V0X2N1 cnJlbnRfZnJhbWUgKCk7Ci1Gcm9tIDczYzZiNDc1NmE3Y2VlNTNjMjc0ZWQwNWZkZGNkMDc5Yjhi N2U1N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5p b3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDIgU2VwIDIwMTUgMDA6NDY6NDMg LTA0MDAKLVN1YmplY3Q6IFtQQVRDSCA0LzRdIEluaXRpYWxpemUgeWV0IGFub3RoZXIgdmFyaWFi bGUgdG8gc2lsZW5jZSBHQ0Mgd2FybmluZwotIGZyb20gbGFzdC1idXQtb25lIGNvbW1pdAotCi1Z ZXQgYW5vdGhlciBCdWlsZEJvdCBlLW1haWwsIHlldCBhbm90aGVyIGJyZWFrYWdlIG9uIFJIRUwt Ny4xIHMzOTB4Ci0od2hpY2ggdXNlcyBhbiBvbGRlciBHQ0MpLiAgVGhpcyB0aW1lLAotc29saWIt c3ZyNC5jOnNvbGliX2V2ZW50X3Byb2JlX2FjdGlvbiBoYXMgdGhlIHByb2JlX2FyZ2MgdmFyaWFi bGUsCi13aGljaCBpcyBub3cgaW5zaWRlIGEgVFJZLi5DQVRDSCBhbmQgdGhlcmVmb3JlIG5lZWRz IHRvIGJlCi1pbml0aWFsaXplZC4gIFB1c2hlZCBhcyBvYnZpb3VzLgotCi1nZGIvQ2hhbmdlTG9n OgotMjAxNS0wOS0wMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNv bT4KLQotCSogc29saWItc3ZyNC5jIChzb2xpYl9ldmVudF9wcm9iZV9hY3Rpb24pOiBJbml0aWFs aXplICdwcm9iZV9hcmdjJwotCWFzIHplcm8uCi0tLS0KLSBnZGIvQ2hhbmdlTG9nICAgIHwgNSAr KysrKwotIGdkYi9zb2xpYi1zdnI0LmMgfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotIDIwMTUtMDktMDEgIFNlcmdpbyBEdXJpZ2FuIEp1 bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1JbmRleDogZ2RiLTcuMTAvZ2RiL3NvbGliLXN2 cjQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwotKysr IGdkYi03LjEwL2dkYi9zb2xpYi1zdnI0LmMKLUBAIC0xNzgyLDcgKzE3ODIsNyBAQCBzdGF0aWMg ZW51bSBwcm9iZV9hY3Rpb24KLSBzb2xpYl9ldmVudF9wcm9iZV9hY3Rpb24gKHN0cnVjdCBwcm9i ZV9hbmRfYWN0aW9uICpwYSkKLSB7Ci0gICBlbnVtIHByb2JlX2FjdGlvbiBhY3Rpb247Ci0tICB1 bnNpZ25lZCBwcm9iZV9hcmdjOwotKyAgdW5zaWduZWQgcHJvYmVfYXJnYyA9IDA7Ci0gICBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBnZXRfY3VycmVudF9mcmFtZSAoKTsKLSAKLSAgIGFjdGlv biA9IHBhLT5hY3Rpb247CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMjYwNTU4LXBwYzY0bGUtc2tp cF90cmFtcG9saW5lX2NvZGUucGF0Y2ggYi9nZGItcmhiejEyNjA1NTgtcHBjNjRsZS1za2lwX3Ry YW1wb2xpbmVfY29kZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RiYmQ2 YS4uMDAwMDAwMAotLS0gYS9nZGItcmhiejEyNjA1NTgtcHBjNjRsZS1za2lwX3RyYW1wb2xpbmVf Y29kZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1NyArMCwwIEBACi1odHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0wOS9tc2cwMDE4My5odG1sCi1TdWJqZWN0OiBb cHBjNjRsZSBwYXRjaCB2M10gVXNlIHNraXBfZW50cnlwb2ludCBmb3Igc2tpcF90cmFtcG9saW5l X2NvZGUKLQotCi0tLW1ZQ3BJS2hHeU1BVEQwaSsKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsg Y2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCi0KLUFuIHVwZGF0 ZSB0byBQQVNTIHRoZSB0ZXN0Y2FzZSBvbiBub24tcHBjNjRsZSBhcmNocy4KLQotLS1tWUNwSUto R3lNQVREMGkrCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNv bnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9NAotCi1nZGIvQ2hhbmdlTG9nCi0y MDE1LTA5LTA3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0K LQkqIGxpbmVzcGVjLmMgKG1pbnN5bV9mb3VuZCk6IENhbGwgZ2RiYXJjaF9za2lwX2VudHJ5cG9p bnQuCi0JKiBwcGM2NC10ZGVwLmMgKHBwYzY0X3NraXBfdHJhbXBvbGluZV9jb2RlKTogUmVuYW1l IHRvIC4uLgotCShwcGM2NF9za2lwX3RyYW1wb2xpbmVfY29kZV8xKTogLi4uIGhlcmUuCi0JKHBw YzY0X3NraXBfdHJhbXBvbGluZV9jb2RlKTogTmV3IHdyYXBwZXIgZnVuY3Rpb24uCi0JKiBzeW10 YWIuYyAoZmluZF9mdW5jdGlvbl9zdGFydF9zYWwpOiBDYWxsIGdkYmFyY2hfc2tpcF9lbnRyeXBv aW50LgotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotMjAxNS0wOS0wNyAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIub3B0L3NvbGliLWludHJh LXN0ZXAtbGliLmM6IE5ldyBmaWxlLgotCSogZ2RiLm9wdC9zb2xpYi1pbnRyYS1zdGVwLW1haW4u YzogTmV3IGZpbGUuCi0JKiBnZGIub3B0L3NvbGliLWludHJhLXN0ZXAuZXhwOiBOZXcgZmlsZS4K LQotZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5jIGIvZ2RiL2xpbmVzcGVjLmMKLWluZGV4IDhm MTAyZmEuLjRjMjljMTIgMTAwNjQ0Ci0tLS0gYS9nZGIvbGluZXNwZWMuYwotKysrIGIvZ2RiL2xp bmVzcGVjLmMKLUBAIC0zNTcwLDYgKzM1NzAsOCBAQCBtaW5zeW1fZm91bmQgKHN0cnVjdCBsaW5l c3BlY19zdGF0ZSAqc2VsZiwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCi0gCSAgc2FsLnBjID0g TVNZTUJPTF9WQUxVRV9BRERSRVNTIChvYmpmaWxlLCBtc3ltYm9sKTsKLSAJICBzYWwucGMgPSBn ZGJhcmNoX2NvbnZlcnRfZnJvbV9mdW5jX3B0cl9hZGRyIChnZGJhcmNoLCBzYWwucGMsCi0gCQkJ CQkJICAgICAgICZjdXJyZW50X3RhcmdldCk7Ci0rCSAgaWYgKGdkYmFyY2hfc2tpcF9lbnRyeXBv aW50X3AgKGdkYmFyY2gpKQotKwkgICAgc2FsLnBjID0gZ2RiYXJjaF9za2lwX2VudHJ5cG9pbnQg KGdkYmFyY2gsIHNhbC5wYyk7Ci0gCX0KLSAgICAgICBlbHNlCi0gCXNraXBfcHJvbG9ndWVfc2Fs ICgmc2FsKTsKLWRpZmYgLS1naXQgYS9nZGIvcHBjNjQtdGRlcC5jIGIvZ2RiL3BwYzY0LXRkZXAu YwotaW5kZXggYmIyM2I2YS4uNGEwYjkzYSAxMDA2NDQKLS0tLSBhL2dkYi9wcGM2NC10ZGVwLmMK LSsrKyBiL2dkYi9wcGM2NC10ZGVwLmMKLUBAIC00NTQsOCArNDU0LDggQEAgcHBjNjRfc3RhbmRh cmRfbGlua2FnZTRfdGFyZ2V0IChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCi0gICAgV2hlbiB0 aGUgZXhlY3V0aW9uIGRpcmVjdGlvbiBpcyBFWEVDX1JFVkVSU0UsIHNjYW4gYmFja3dhcmQgdG8K LSAgICBjaGVjayB3aGV0aGVyIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgUExUIHN0dWIuICAq LwotIAotLUNPUkVfQUREUgotLXBwYzY0X3NraXBfdHJhbXBvbGluZV9jb2RlIChzdHJ1Y3QgZnJh bWVfaW5mbyAqZnJhbWUsIENPUkVfQUREUiBwYykKLStzdGF0aWMgQ09SRV9BRERSCi0rcHBjNjRf c2tpcF90cmFtcG9saW5lX2NvZGVfMSAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBDT1JFX0FE RFIgcGMpCi0gewotICNkZWZpbmUgTUFYKGEsYikgKChhKSA+IChiKSA/IChhKSA6IChiKSkKLSAg IHVuc2lnbmVkIGludCBpbnNuc1tNQVggKE1BWCAoTUFYIChBUlJBWV9TSVpFIChwcGM2NF9zdGFu ZGFyZF9saW5rYWdlMSksCi1AQCAtNTMwLDYgKzUzMCwyMCBAQCBwcGM2NF9za2lwX3RyYW1wb2xp bmVfY29kZSAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBDT1JFX0FERFIgcGMpCi0gICByZXR1 cm4gMDsKLSB9Ci0gCi0rLyogV3JhcHBlciBvZiBwcGM2NF9za2lwX3RyYW1wb2xpbmVfY29kZV8x IGNoZWNraW5nIGFsc28KLSsgICBwcGNfZWxmdjJfc2tpcF9lbnRyeXBvaW50LiAgKi8KLSsKLStD T1JFX0FERFIKLStwcGM2NF9za2lwX3RyYW1wb2xpbmVfY29kZSAoc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLCBDT1JFX0FERFIgcGMpCi0rewotKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotKwotKyAgcGMgPSBwcGM2NF9za2lwX3RyYW1wb2xpbmVf Y29kZV8xIChmcmFtZSwgcGMpOwotKyAgaWYgKHBjICE9IDAgJiYgZ2RiYXJjaF9za2lwX2VudHJ5 cG9pbnRfcCAoZ2RiYXJjaCkpCi0rICAgIHBjID0gZ2RiYXJjaF9za2lwX2VudHJ5cG9pbnQgKGdk YmFyY2gsIHBjKTsKLSsgIHJldHVybiBwYzsKLSt9Ci0rCi0gLyogU3VwcG9ydCBmb3IgY29udmVy dF9mcm9tX2Z1bmNfcHRyX2FkZHIgKEFSQ0gsIEFERFIsIFRBUkcpIG9uIFBQQzY0Ci0gICAgR05V L0xpbnV4LgotIAotZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuYyBiL2dkYi9zeW10YWIuYwotaW5k ZXggMWJhNjkxZS4uZjY1ZTgwOSAxMDA2NDQKLS0tLSBhL2dkYi9zeW10YWIuYwotKysrIGIvZ2Ri L3N5bXRhYi5jCi1AQCAtMzYyOSw3ICszNjI5LDExIEBAIGZpbmRfZnVuY3Rpb25fc3RhcnRfc2Fs IChzdHJ1Y3Qgc3ltYm9sICpzeW0sIGludCBmdW5maXJzdGxpbmUpCi0gICAgICAgJiYgKENPTVBV TklUX0xPQ0FUSU9OU19WQUxJRCAoU1lNVEFCX0NPTVBVTklUIChzYWwuc3ltdGFiKSkKLSAJICB8 fCBTWU1UQUJfTEFOR1VBR0UgKHNhbC5zeW10YWIpID09IGxhbmd1YWdlX2FzbSkpCi0gICAgIHsK LSsgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHN5bWJvbF9hcmNoIChzeW0pOwotKwot ICAgICAgIHNhbC5wYyA9IEJMT0NLX1NUQVJUIChTWU1CT0xfQkxPQ0tfVkFMVUUgKHN5bSkpOwot KyAgICAgIGlmIChnZGJhcmNoX3NraXBfZW50cnlwb2ludF9wIChnZGJhcmNoKSkKLSsJc2FsLnBj ID0gZ2RiYXJjaF9za2lwX2VudHJ5cG9pbnQgKGdkYmFyY2gsIHNhbC5wYyk7Ci0gICAgICAgcmV0 dXJuIHNhbDsKLSAgICAgfQotIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9z b2xpYi1pbnRyYS1zdGVwLWxpYi5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJh LXN0ZXAtbGliLmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi45YWIxMjEx Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvc29saWItaW50cmEt c3RlcC1saWIuYwotQEAgLTAsMCArMSwzMCBAQAotKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIwMTUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsKLSt2b2lkCi0rc2hsaWJfc2Vj b25kIChpbnQgZHVtbXkpCi0reyAvKiBzZWNvbmQtcmV0cnkgKi8KLSsgIGFib3J0ICgpOyAvKiBz ZWNvbmQtaGl0ICovCi0rfQotKwotK3ZvaWQKLStzaGxpYl9maXJzdCAodm9pZCkKLSt7IC8qIGZp cnN0LXJldHJ5ICovCi0rICBzaGxpYl9zZWNvbmQgKDApOyAvKiBmaXJzdC1oaXQgKi8KLSt9Ci1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAtbWFpbi5j IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAtbWFpbi5jCi1uZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMTg2YmQ1ZgotLS0tIC9kZXYvbnVsbAotKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAtbWFpbi5jCi1AQCAtMCww ICsxLDI1IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsg ICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCi0rCi0rZXh0 ZXJuIHZvaWQgc2hsaWJfZmlyc3QgKHZvaWQpOwotKwotK2ludAotK21haW4gKHZvaWQpCi0rewot KyAgc2hsaWJfZmlyc3QgKCk7Ci0rICByZXR1cm4gMDsKLSt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIub3B0L3NvbGliLWludHJhLXN0ZXAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L3NvbGliLWludHJhLXN0ZXAuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAw MDAwMC4uMDQ0YzRiZAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L3NvbGliLWludHJhLXN0ZXAuZXhwCi1AQCAtMCwwICsxLDg2IEBACi0rIyBDb3B5cmlnaHQgMjAx NSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSsKLStpZiB7W3NraXBfc2hsaWJfdGVz dHNdfSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotKyMgTGlicmFyeSBmaWxlLgotK3NldCBsaWJu YW1lICIke3Rlc3RmaWxlfS1saWIiCi0rc2V0IHNyY2ZpbGVfbGliICR7c3JjZGlyfS8ke3N1YmRp cn0vJHtsaWJuYW1lfS5jCi0rc2V0IGJpbmZpbGVfbGliIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAk e2xpYm5hbWV9LnNvXQotK3NldCBsaWJfZmxhZ3MgW2xpc3QgZGVidWcgb3B0aW1pemU9LU8yXQot KyMgQmluYXJ5IGZpbGUuCi0rc2V0IHRlc3RmaWxlICIke3Rlc3RmaWxlfS1tYWluIgotK3NldCBz cmNmaWxlICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0uYwotK3NldCBiaW5maWxlIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfV0KLStzZXQgYmluX2ZsYWdzIFtsaXN0IGRl YnVnIHNobGliPSR7YmluZmlsZV9saWJ9XQotKwotK2lmIFtnZXRfY29tcGlsZXJfaW5mb10gewot KyAgICByZXR1cm4gLTEKLSt9Ci0rCi0raWYgeyBbZ2RiX2NvbXBpbGVfc2hsaWIgJHtzcmNmaWxl X2xpYn0gJHtiaW5maWxlX2xpYn0gJGxpYl9mbGFnc10gIT0gIiIKLSsgICAgIHx8IFtnZGJfY29t cGlsZSAke3NyY2ZpbGV9ICR7YmluZmlsZX0gZXhlY3V0YWJsZSAkYmluX2ZsYWdzXSAhPSAiIiB9 IHsKLSsgIHVudGVzdGVkICJDb3VsZCBub3QgY29tcGlsZSAkYmluZmlsZV9saWIgb3IgJGJpbmZp bGUuIgotKyAgcmV0dXJuIC0xCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQgJHtiaW5maWxlfQotK2dk Yl9sb2FkX3NobGlicyAkYmluZmlsZV9saWIKLSsKLStpZiAhW3J1bnRvX21haW5dIHRoZW4gewot KyAgcmV0dXJuIDAKLSt9Ci0rCi0rc2V0IHRlc3QgImZpcnN0LWhpdCIKLStnZGJfdGVzdF9tdWx0 aXBsZSAic3RlcCIgJHRlc3QgewotKyAgICAtcmUgIiBmaXJzdC1oaXQgLipcclxuJGdkYl9wcm9t cHQgJCIgewotKwlwYXNzICR0ZXN0Ci0rICAgIH0KLSsgICAgLXJlICIgZmlyc3QtcmV0cnkgLipc clxuJGdkYl9wcm9tcHQgJCIgewotKwlnZGJfdGVzdCAic3RlcCIgIiBmaXJzdC1oaXQgLioiICJm aXJzdC1oaXQgKG9wdGltaXplZCkiCi0rICAgIH0KLSt9Ci0rCi0rc2V0IHRlc3QgInNlY29uZC1o aXQiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgInN0ZXAiICR0ZXN0IHsKLSsgICAgLXJlICIgc2Vjb25k LWhpdCAuKlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCXBhc3MgJHRlc3QKLSsgICAgfQotKyAgICAt cmUgIiBmaXJzdC1yZXRyeSAuKlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCXNldCB0ZXN0ICJzZWNv bmQtaGl0IChvcHRpbWl6ZWQgMSkiCi0rCWdkYl90ZXN0X211bHRpcGxlICJzdGVwIiAkdGVzdCB7 Ci0rCSAgICAtcmUgIiBzZWNvbmQtaGl0IC4qXHJcbiRnZGJfcHJvbXB0ICQiIHsKLSsJCXBhc3Mg JHRlc3QKLSsJICAgIH0KLSsJICAgIC1yZSAiIGZpcnN0LWhpdCAuKlxyXG4kZ2RiX3Byb21wdCAk IiB7Ci0rCQlnZGJfdGVzdCAic3RlcCIgIiBzZWNvbmQtaGl0IC4qIiAic2Vjb25kLWhpdCAob3B0 aW1pemVkIDIpIgotKwkgICAgfQotKwl9Ci0rICAgIH0KLSsgICAgLXJlICIgc2Vjb25kLXJldHJ5 IC4qXHJcbiRnZGJfcHJvbXB0ICQiIHsKLSsJZ2RiX3Rlc3QgInN0ZXAiICIgc2Vjb25kLWhpdCAu KiIgInNlY29uZC1oaXQgKG9wdGltaXplZCAzKSIKLSsgICAgfQotK30KLSsKLStpZiAhW3J1bnRv X21haW5dIHRoZW4gewotKyAgcmV0dXJuIDAKLSt9Ci0rCi0rZ2RiX2JyZWFrcG9pbnQgInNobGli X3NlY29uZCIKLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2Vjb25kLWhpdCIgIi4qIChz ZWNvbmQtaGl0fHNlY29uZC1yZXRyeSkgLioiCi0KLS0tbVlDcElLaEd5TUFURDBpKy0tCi0KCmRp ZmYgLS1naXQgYS9nZGItcmhiejEyNzA1NjQtaW52YWxpZC1kd2FyZi1yZWduby5wYXRjaCBiL2dk Yi1yaGJ6MTI3MDU2NC1pbnZhbGlkLWR3YXJmLXJlZ25vLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBhNTFjYWFmLi4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTI3MDU2NC1pbnZh bGlkLWR3YXJmLXJlZ25vLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIwICswLDAgQEAKLWh0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE1LTEwL21zZzAwMTY2Lmh0bWwK LVN1YmplY3Q6IFtwYXRjaF0gRml4IGludGVybmFsIGVycm9yIG9uIERXX09QX2JyZWd4KC0xKQot Ci0KLS0taWJUdk4xNjEvZWdxWXVLOAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0KLWh0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDU2NCNjMTUKLWh0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9hdHRhY2htZW50LmNnaT9pZD0xMDgxNzcyCi0KLWNsYW5nLTMu NS4wLTkuZmMyMi54ODZfNjQKLSA8Mz48MjJiMj46IEFiYnJldiBOdW1iZXI6IDY5IChEV19UQUdf dmFyaWFibGUpCi0gICAgPDIyYjM+ICAgRFdfQVRfbG9jYXRpb24gICAgOiA3IGJ5dGUgYmxvY2s6 IDkyIGZmIGZmIGZmIGZmIGYgMCAgICAgICAoRFdfT1BfYnJlZ3g6IDQyOTQ5NjcyOTUgKHItMSkg MCkKLSAgICA8MjJiYj4gICBEV19BVF9uYW1lICAgICAgICA6IChpbmRpcmVjdCBzdHJpbmcsIG9m ZnNldDogMHgyYTM2KTogdGV4dHVyZV9kYXRhCi0gICAgPDIyYzE+ICAgRFdfQVRfdHlwZSAgICAg ICAgOiA8MHgxZDM+Ci0KLShnZGIpIHAgdmFyaWFibGUKLXdhcm5pbmc6IFVubWFwcGVkIERXQVJG IFJlZ2lzdGVyICMtMSBlbmNvdW50ZXJlZC4KLXJlZ2NhY2hlLmM6MTc3OiBpbnRlcm5hbC1lcnJv cjogcmVnaXN0ZXJfc2l6ZTogQXNzZXJ0aW9uIGByZWdudW0gPj0gMCAmJiByZWdudW0gPCAoZ2Ri YXJjaF9udW1fcmVncyAoZ2RiYXJjaCkgKyBnZGJhcmNoX251bV9wc2V1ZG9fcmVncyAoZ2RiYXJj aCkpJyBmYWlsZWQuCi1bLi4uXQotUXVpdCB0aGlzIGRlYnVnZ2luZyBzZXNzaW9uPyAoeSBvciBu KSBGQUlMOiBnZGIuZHdhcmYyL2R3Mi1yZWduby1pbnZhbGlkLmV4cDogcCB2YXJpYWJsZSAoR0RC IGludGVybmFsIGVycm9yKQotCi0tPiAoeDg2XzY0KQotKGdkYikgcCB2YXJpYWJsZQotd2Fybmlu ZzogVW5tYXBwZWQgRFdBUkYgUmVnaXN0ZXIgIy0xIGVuY291bnRlcmVkLgotSW52YWxpZCByZWdp c3RlciAjLTEsIGV4cGVjdGluZyAwIDw9ICMgPCAyMjAKLShnZGIpIFBBU1M6IGdkYi5kd2FyZjIv ZHcyLXJlZ25vLWludmFsaWQuZXhwOiBwIHZhcmlhYmxlCi0tPiAoaTM4NikKLShnZGIpIHAgdmFy aWFibGUKLUludmFsaWQgcmVnaXN0ZXIgIzEwNCwgZXhwZWN0aW5nIDAgPD0gIyA8IDEwNAotKGdk YikgUEFTUzogZ2RiLmR3YXJmMi9kdzItcmVnbm8taW52YWxpZC5leHA6IHAgdmFyaWFibGUKLQot R0RCIGNhbGxzIGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0oKSBmaXJzdCB3aGljaCByZXR1 cm5zIC0xIGluIHRoZSB4ODZfNjQKLWNhc2UKLSAgaWYgKHJlZ251bSA9PSAtMSkKLSAgICB3YXJu aW5nIChfKCJVbm1hcHBlZCBEV0FSRiBSZWdpc3RlciAjJWQgZW5jb3VudGVyZWQuIiksIHJlZyk7 Ci1idXQgaW4gaTM4NiBjYXNlIGl0IGRvZXM6Ci0gIC8qIFRoaXMgd2lsbCBob3BlZnVsbHkgcHJv dm9rZSBhIHdhcm5pbmcuICAqLwotICByZXR1cm4gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkg KyBnZGJhcmNoX251bV9wc2V1ZG9fcmVncyAoZ2RiYXJjaCk7Ci1hbmQgdGhlIGRlZmF1bHQgaW1w bGVtZW50YXRpb24gaXMgYSBub3AsIGxlYXZpbmcgd2hhdGV2ZXIgcmVnaXN0ZXIgbnVtYmVyCi10 aGUgRFdBUkYgc3BlY2lmaWVkLgotCi1ObyByZWdyZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1t MzIsaTY4Nn0tZmVkb3JhcmF3aGlkZS1saW51eC1nbnUuCi0KLQotSmFuCi0KLS0taWJUdk4xNjEv ZWdxWXVLOAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250 ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJ1bmRlZnJlZy5wYXRjaCIKLQotZ2Ri L0NoYW5nZUxvZwotMjAxNS0xMC0xMiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgotCi0JKiBmaW5kdmFyLmMgKGFkZHJlc3NfZnJvbV9yZWdpc3Rlcik6IENoZWNr IFJFR05VTSB2YWxpZGl0eS4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLTIwMTUtMTAtMTIg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLmR3 YXJmMi9kdzItcmVnbm8taW52YWxpZC5TOiBOZXcgZmlsZS4KLQkqIGdkYi5kd2FyZjIvZHcyLXJl Z25vLWludmFsaWQuZXhwOiBOZXcgZmlsZS4KLQotZGlmZiAtLWdpdCBhL2dkYi9maW5kdmFyLmMg Yi9nZGIvZmluZHZhci5jCi1pbmRleCAwZjQ2ZTUzLi44NTU5NDdkIDEwMDY0NAotLS0tIGEvZ2Ri L2ZpbmR2YXIuYwotKysrIGIvZ2RiL2ZpbmR2YXIuYwotQEAgLTkyNyw2ICs5MjcsMTIgQEAgYWRk cmVzc19mcm9tX3JlZ2lzdGVyIChpbnQgcmVnbnVtLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUp Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5f ZGF0YV9wdHI7Ci0gICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOwotICAgQ09SRV9BRERSIHJlc3VsdDsK LSsgIGludCByZWdudW1fbWF4X2V4Y2wgPSAoZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkKLSsJ CQkgKyBnZGJhcmNoX251bV9wc2V1ZG9fcmVncyAoZ2RiYXJjaCkpOwotKwotKyAgaWYgKHJlZ251 bSA8IDAgfHwgcmVnbnVtID49IHJlZ251bV9tYXhfZXhjbCkKLSsgICAgZXJyb3IgKF8oIkludmFs aWQgcmVnaXN0ZXIgIyVkLCBleHBlY3RpbmcgMCA8PSAjIDwgJWQiKSwgcmVnbnVtLAotKwkgICBy ZWdudW1fbWF4X2V4Y2wpOwotIAotICAgLyogVGhpcyByb3V0aW5lIG1heSBiZSBjYWxsZWQgZHVy aW5nIGVhcmx5IHVud2luZGluZywgYXQgYSB0aW1lCi0gICAgICB3aGVyZSB0aGUgSUQgb2YgRlJB TUUgaXMgbm90IHlldCBrbm93bi4gIENhbGxpbmcgdmFsdWVfZnJvbV9yZWdpc3RlcgotZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItcmVnbm8taW52YWxpZC5TIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1yZWduby1pbnZhbGlkLlMKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4wNzViZmQ2Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXJlZ25vLWludmFsaWQuUwotQEAgLTAsMCArMSw5MSBA QAotKy8qIENvcHlyaWdodCAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSsJLnNlY3Rpb24J LmRlYnVnX2luZm8KLStkZWJ1Z19zdGFydDoKLSsJLjRieXRlCWRlYnVnX2VuZCAtIDFmCS8qIExl bmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8gKi8KLSsxOgotKwkuMmJ5dGUJMHgzCS8qIERX QVJGIHZlcnNpb24gbnVtYmVyICovCi0rCS40Ynl0ZQkuTGRlYnVnX2FiYnJldjAJLyogT2Zmc2V0 IEludG8gQWJicmV2LiBTZWN0aW9uICovCi0rCS5ieXRlCTB4NAkvKiBQb2ludGVyIFNpemUgKGlu IGJ5dGVzKSAqLwotKwkudWxlYjEyOCAweDEJLyogKERJRSAoMHhiKSBEV19UQUdfY29tcGlsZV91 bml0KSAqLwotKwkuYXNjaWkgImNsYW5nLTMuNS4wLTkuZmMyMi54ODZfNjRcMCIJLyogRFdfQVRf cHJvZHVjZXIgKi8KLSsJLmJ5dGUJMHgxCS8qIERXX0FUX2xhbmd1YWdlICovCi0rCS5hc2NpaSAi MS5jXDAiCS8qIERXX0FUX25hbWUgKi8KLSsJLjRieXRlCW1haW5fbGFiZWwJCS8qIERXX0FUX2xv d19wYyAqLwotKwkuNGJ5dGUJbWFpbl9sYWJlbCsweDEwMDAwCS8qIERXX0FUX2hpZ2hfcGMgKi8K LSsKLSsJLnVsZWIxMjgJMgkJCS8qIEFiYnJldjogRFdfVEFHX3N1YnByb2dyYW0gKi8KLSsJLmJ5 dGUJCTEJCQkvKiBEV19BVF9leHRlcm5hbCAqLwotKwkuYXNjaWkJCSJtYWluXDAiCQkvKiBEV19B VF9uYW1lICovCi0rCS40Ynl0ZQltYWluX2xhYmVsCQkvKiBEV19BVF9sb3dfcGMgKi8KLSsJLjRi eXRlCW1haW5fbGFiZWwrMHgxMDAwMAkvKiBEV19BVF9oaWdoX3BjICovCi0rCi0rCS51bGViMTI4 IDB4NAkvKiAoRFdfVEFHX3ZhcmlhYmxlKSAqLwotKwkuYXNjaWkgInZhcmlhYmxlXDAiCS8qIERX X0FUX25hbWUgKi8KLSsJLjJieXRlCTJmIC0gMWYJLyogRFdfQVRfbG9jYXRpb246IERXX0ZPUk1f YmxvY2syICovCi0rMToKLSsJLmJ5dGUJMHg5MgkvKiBEV19PUF9icmVneCAqLwotKwkudWxlYjEy OAkweGZmZmZmZmZmCi0rCS5zbGViMTI4IDAKLSsyOgotKwotKwkuYnl0ZQkweDAJLyogZW5kIG9m IGNoaWxkcmVuIG9mIG1haW4gKi8KLSsJLmJ5dGUJMHgwCS8qIGVuZCBvZiBjaGlsZHJlbiBvZiBD VSAqLwotK2RlYnVnX2VuZDoKLSsKLSsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldgotKy5MZGVidWdf YWJicmV2MDoKLSsJLnVsZWIxMjggMHgxCS8qIChhYmJyZXYgY29kZSkgKi8KLSsJLnVsZWIxMjgg MHgxMQkvKiAoVEFHOiBEV19UQUdfY29tcGlsZV91bml0KSAqLwotKwkuYnl0ZQkweDEJLyogRFdf Y2hpbGRyZW5feWVzICovCi0rCS51bGViMTI4IDB4MjUJLyogKERXX0FUX3Byb2R1Y2VyKSAqLwot KwkudWxlYjEyOCAweDgJLyogKERXX0ZPUk1fc3RyaW5nKSAqLwotKwkudWxlYjEyOCAweDEzCS8q IChEV19BVF9sYW5ndWFnZSkgKi8KLSsJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAq LwotKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCi0rCS51bGViMTI4IDB4OAkvKiAo RFdfRk9STV9zdHJpbmcpICovCi0rCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3dfcGMgKi8K LSsJLnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCi0rCS51bGViMTI4CTB4MTIJCQkv KiBEV19BVF9oaWdoX3BjICovCi0rCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLwot KwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCi0rCS51bGViMTI4CTIJCQkvKiBBYmJyZXYgY29k ZSAqLwotKwkudWxlYjEyOAkweDJlCQkJLyogRFdfVEFHX3N1YnByb2dyYW0gKi8KLSsJLmJ5dGUJ CTEJCQkvKiBoYXNfY2hpbGRyZW4gKi8KLSsJLnVsZWIxMjgJMHgzZgkJCS8qIERXX0FUX2V4dGVy bmFsICovCi0rCS51bGViMTI4CTB4YwkJCS8qIERXX0ZPUk1fZmxhZyAqLwotKwkudWxlYjEyOAkw eDMJCQkvKiBEV19BVF9uYW1lICovCi0rCS51bGViMTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5n ICovCi0rCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3dfcGMgKi8KLSsJLnVsZWIxMjgJMHgx CQkJLyogRFdfRk9STV9hZGRyICovCi0rCS51bGViMTI4CTB4MTIJCQkvKiBEV19BVF9oaWdoX3Bj ICovCi0rCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLwotKwkuYnl0ZQkJMHgwCQkJ LyogVGVybWluYXRvciAqLwotKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwotKwotKwot KwkudWxlYjEyOCAweDQJLyogKGFiYnJldiBjb2RlKSAqLwotKwkudWxlYjEyOCAweDM0CS8qIChU QUc6IERXX1RBR192YXJpYWJsZSkgKi8KLSsJLmJ5dGUJMHgwCS8qIERXX2NoaWxkcmVuX3llcyAq LwotKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCi0rCS51bGViMTI4IDB4OAkvKiAo RFdfRk9STV9zdHJpbmcpICovCi0rCS51bGViMTI4IDB4MDIJLyogKERXX0FUX2xvY2F0aW9uKSAq LwotKwkudWxlYjEyOCAweDMJLyogKERXX0ZPUk1fYmxvY2syKSAqLwotKwkuYnl0ZQkweDAKLSsJ LmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItcmVnbm8taW52YWxpZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LXJlZ25vLWludmFsaWQuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u N2MzYTQwNAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1yZWduby1pbnZhbGlkLmV4cAotQEAgLTAsMCArMSwzMiBAQAotKyMgQ29weXJpZ2h0IDIwMTUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgotK2xvYWRfbGliIGR3YXJmLmV4cAotKwotKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJl IHJ1biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KLStpZiB7 IVtkd2FyZjJfc3VwcG9ydF19IHsKLSsgICAgcmV0dXJuIDAgIAotK30KLSsKLStzdGFuZGFyZF90 ZXN0ZmlsZSAuUyBtYWluLmMKLSsKLStpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3Vi ZGlyfS8ke3NyY2ZpbGV9ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlMn0iIFwKLSsJCSAg IiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge31dICE9ICIiIH0gewotKyAgICByZXR1cm4gLTEKLSt9 Ci0rCi0rY2xlYW5fcmVzdGFydCAke2JpbmZpbGV9Ci0rcnVudG9fbWFpbgotKwotK2dkYl90ZXN0 ICJwIHZhcmlhYmxlIgotCi0tLWliVHZOMTYxL2VncVl1SzgtLQotCgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y MG9mMjUucGF0Y2gKaW5kZXggZGJjODU3OS4uNjAzN2UwZSAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBv ZjI1LnBhdGNoCkBAIC00NjMsMTEgKzQ2MywxMSBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRj aAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjog YXR0YWNobWVudDsgZmlsZW5hbWU9Yml0cG9zLW1haW4ucGF0Y2gKIAotSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9n ZGIvYWRhLWxhbmcuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk2ODM1NTg4MSArMDIwMAotKysrIGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMTkz ODM2MTIgKzAyMDAKLUBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVzY19i b3VuZHNfdHlwZSAoc3QKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hZGEtbGFu Zy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc1MzUxNDEwICswMTAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTczNjQ3MTQgKzAx MDAKK0BAIC03NSw3ICs3NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVzY19ib3VuZHNfdHlw ZSAoc3QKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVl ICopOwogIApAQCAtNDc2LDcgKzQ3Niw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGludCBmYXRfcG50cl9ib3VuZHNfYml0c2l6ZSAoc3Ry dWN0IHR5cGUgKik7CiAgCi1AQCAtODIsMTMgKzgyLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAq ZGVzY19kYXRhX3RhcmdldF90eXAKK0BAIC04MywxMyArODMsMTMgQEAgc3RhdGljIHN0cnVjdCB0 eXBlICpkZXNjX2RhdGFfdGFyZ2V0X3R5cAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2Nf ZGF0YSAoc3RydWN0IHZhbHVlICopOwogIApAQCAtNDkyLDcgKzQ5Miw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGludCBkZXNjX2JvdW5k X2JpdHNpemUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKICAKLUBAIC0xNjgsNyArMTY4LDcg QEAgc3RhdGljIHN0cnVjdCB0eXBlICpzdGF0aWNfdW53cmFwX3R5cGUgKAorQEAgLTE3Miw3ICsx NzIsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnN0YXRpY191bndyYXBfdHlwZSAoCiAgCiAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqdW53cmFwX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC01 MDEsNyArNTAxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMK ICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKmRlY29kZV9jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXlf dHlwZSAoc3RydWN0IHR5cGUgKik7CiAgCi1AQCAtMTgzLDcgKzE4Myw4IEBAIHN0YXRpYyBpbnQg YWRhX2lzX3VuY29uc3RyYWluZWRfcGFja2VkX2EKK0BAIC0xODcsNyArMTg3LDggQEAgc3RhdGlj IGludCBhZGFfaXNfdW5jb25zdHJhaW5lZF9wYWNrZWRfYQogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUg KnZhbHVlX3N1YnNjcmlwdF9wYWNrZWQgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZhbHVlICoqKTsKICAK QEAgLTUxMSwxMiArNTExLDEyIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEt bGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqY29lcmNlX3Vuc3BlY192YWxfdG9fdHlw ZSAoc3RydWN0IHZhbHVlICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7Ci1AQCAtMjExLDE0ICsyMTIsMTQgQEAgc3RhdGlj IHN0cnVjdCB2YWx1ZSAqdmFsdWVfdmFsX2F0ciAoc3RydQorQEAgLTIxNSwxNCArMjE2LDE0IEBA IHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZhbF9hdHIgKHN0cnUKICBzdGF0aWMgc3RydWN0 IHN5bWJvbCAqc3RhbmRhcmRfbG9va3VwIChjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCBibG9j ayAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9lbnVt KTsKICAKLS1zdGF0aWMgc3RydWN0IHZhbHVlICphZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hh ciAqLCBzdHJ1Y3QgdmFsdWUgKiwgaW50LAotK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9zZWFy Y2hfc3RydWN0X2ZpZWxkIChjaGFyICosIHN0cnVjdCB2YWx1ZSAqLCBMT05HRVNULAorLXN0YXRp YyBzdHJ1Y3QgdmFsdWUgKmFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICosIHN0 cnVjdCB2YWx1ZSAqLCBpbnQsCisrc3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX3NlYXJjaF9zdHJ1 Y3RfZmllbGQgKGNvbnN0IGNoYXIgKiwgc3RydWN0IHZhbHVlICosIExPTkdFU1QsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICopOwog IAogLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVj dCB2YWx1ZSAqLCBpbnQsIGludCwKQEAgLTUyNiwxMSArNTI2LDExIEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAtc3RhdGljIGludCBmaW5kX3N0cnVjdF9maWVs ZCAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdHlwZSAqLCBpbnQsCiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR5cGUgKiosIGludCAqLCBpbnQgKiwgaW50ICosIGludCAqKTsK ICtzdGF0aWMgaW50IGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICosIHN0cnVjdCB0eXBl ICosIExPTkdFU1QsCi0rCQkJICAgICAgc3RydWN0IHR5cGUgKiosIExPTkdFU1QgKiwgaW50ICos IGludCAqLCBpbnQgKik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5 cGUgKiosIExPTkdFU1QgKiwgaW50ICosIGludCAqLCBpbnQgKik7CiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqYWRhX3RvX2ZpeGVkX3ZhbHVlX2NyZWF0ZSAoc3RydWN0IHR5cGUgKiwgQ09SRV9B RERSLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB2YWx1ZSAqKTsKLUBAIC0yMzIsNyArMjMzLDcgQEAgc3RhdGljIGludCBhZGFfaXNfZGly ZWN0X2FycmF5X3R5cGUgKHN0cgorQEAgLTIzNiw3ICsyMzcsNyBAQCBzdGF0aWMgaW50IGFkYV9p c19kaXJlY3RfYXJyYXlfdHlwZSAoc3RyCiAgc3RhdGljIHZvaWQgYWRhX2xhbmd1YWdlX2FyY2hf aW5mbyAoc3RydWN0IGdkYmFyY2ggKiwKICAJCQkJICAgIHN0cnVjdCBsYW5ndWFnZV9hcmNoX2lu Zm8gKik7CiAgCkBAIC01MzksNyArNTM5LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2FkYS1sYW5nLmMKICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqYXNzaWduX2FnZ3JlZ2F0ZSAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1 ZSAqLCAKLUBAIC02OTUsNyArNjk2LDcgQEAgY29lcmNlX3Vuc3BlY192YWxfdG9fdHlwZSAoc3Ry dWN0IHZhbHVlCitAQCAtNzAwLDcgKzcwMSw3IEBAIGNvZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUg KHN0cnVjdCB2YWx1ZQogIH0KICAKICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgKgpAQCAtNTQ4LDcg KzU0OCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgewog ICAgaWYgKHZhbGFkZHIgPT0gTlVMTCkKICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtNzA0LDcgKzcw NSw3IEBAIGNvbmRfb2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRlICp2YWxhZGQKK0BAIC03MDks NyArNzEwLDcgQEAgY29uZF9vZmZzZXRfaG9zdCAoY29uc3QgZ2RiX2J5dGUgKnZhbGFkZAogIH0K ICAKICBzdGF0aWMgQ09SRV9BRERSCkBAIC01NTcsNyArNTU3LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBpZiAoYWRkcmVzcyA9PSAwKQogICAg ICByZXR1cm4gMDsKLUBAIC0xNzExLDcgKzE3MTIsNyBAQCBkZXNjX2JvdW5kcyAoc3RydWN0IHZh bHVlICphcnIpCitAQCAtMTcxNyw3ICsxNzE4LDcgQEAgZGVzY19ib3VuZHMgKHN0cnVjdCB2YWx1 ZSAqYXJyKQogIC8qIElmIFRZUEUgaXMgdGhlIHR5cGUgb2YgYW4gYXJyYXktZGVzY3JpcHRvciAo ZmF0IHBvaW50ZXIpLCAgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBjb250YWlu aW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBib3VuZHMgZGF0YS4gICovCiAgCkBAIC01NjYsNyArNTY2 LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICBmYXRfcG50 cl9ib3VuZHNfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gVFlQRV9G SUVMRF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMSk7Ci1AQCAtMTc3Nyw3ICsxNzc4 LDcgQEAgZGVzY19kYXRhIChzdHJ1Y3QgdmFsdWUgKmFycikKK0BAIC0xNzgzLDcgKzE3ODQsNyBA QCBkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqYXJyKQogIC8qIElmIFRZUEUgaXMgdGhlIHR5cGUg b2YgYW4gYXJyYXktZGVzY3JpcHRvciAoZmF0IHBvaW50ZXIpLCB0aGUgYml0CiAgICAgcG9zaXRp b24gb2YgdGhlIGZpZWxkIGNvbnRhaW5pbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGRhdGEuICAqLwog IApAQCAtNTc1LDcgKzU3NSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEt bGFuZy5jCiAgZmF0X3BudHJfZGF0YV9iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAg IHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAwKTsKLUBA IC0xODEyLDcgKzE4MTMsNyBAQCBkZXNjX29uZV9ib3VuZCAoc3RydWN0IHZhbHVlICpib3VuZHMs IGluCitAQCAtMTgxOCw3ICsxODE5LDcgQEAgZGVzY19vbmVfYm91bmQgKHN0cnVjdCB2YWx1ZSAq Ym91bmRzLCBpbgogICAgIG9mIHRoZSBJdGggbG93ZXIgYm91bmQgc3RvcmVkIGluIGl0LCBpZiBX SElDSCBpcyAwLCBhbmQgdGhlIEl0aCB1cHBlcgogICAgIGJvdW5kLCBpZiBXSElDSCBpcyAxLiAg VGhlIGZpcnN0IGJvdW5kIGlzIEk9MS4gICovCiAgCkBAIC01ODQsNyArNTg0LDcgQEAgSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICBkZXNjX2JvdW5kX2JpdHBvcyAo c3RydWN0IHR5cGUgKnR5cGUsIGludCBpLCBpbnQgd2hpY2gpCiAgewogICAgcmV0dXJuIFRZUEVf RklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDIgKiBpICsgd2hpY2ggLSAyKTsK LUBAIC0yMDAyLDcgKzIwMDMsNyBAQCBhZGFfdHlwZV9vZl9hcnJheSAoc3RydWN0IHZhbHVlICph cnIsIGluCitAQCAtMjAwOCw3ICsyMDA5LDcgQEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2 YWx1ZSAqYXJyLCBpbgogIAkgICAgICAgICB6ZXJvLCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBy ZWNvbXB1dGVkLiAgKi8KICAJICAgICAgaWYgKGxvIDwgaGkpCiAgCQl7CkBAIC01OTMsNyArNTkz LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAJCSAgICAg ICAgKGhpIC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUsIDApOwogIAog IAkJICBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSArIDcpIC8gODsK LUBAIC0yMTYyLDcgKzIxNjMsNyBAQCBkZWNvZGVfcGFja2VkX2FycmF5X2JpdHNpemUgKHN0cnVj dCB0eXBlCitAQCAtMjE2OCw3ICsyMTY5LDcgQEAgZGVjb2RlX3BhY2tlZF9hcnJheV9iaXRzaXpl IChzdHJ1Y3QgdHlwZQogICAgIHRoZSBsZW5ndGggaXMgYXJiaXRyYXJ5LiAgKi8KICAKICBzdGF0 aWMgc3RydWN0IHR5cGUgKgpAQCAtNjAyLDcgKzYwMiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgewogICAgc3RydWN0IHR5cGUgKm5ld19lbHRfdHlwZTsK ICAgIHN0cnVjdCB0eXBlICpuZXdfdHlwZTsKLUBAIC0yMjE2LDcgKzIyMTcsNyBAQCBkZWNvZGVf Y29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0CitAQCAtMjIyMiw3ICsyMjIzLDcgQEAg ZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheV90eXBlIChzdAogICAgY2hhciAqbmFtZTsK ICAgIGNvbnN0IGNoYXIgKnRhaWw7CiAgICBzdHJ1Y3QgdHlwZSAqc2hhZG93X3R5cGU7CkBAIC02 MTEsNyArNjExLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMK ICAKICAgIGlmICghcmF3X25hbWUpCiAgICAgIHJhd19uYW1lID0gYWRhX3R5cGVfbmFtZSAoZGVz Y19iYXNlX3R5cGUgKHR5cGUpKTsKLUBAIC0yMjg3LDcgKzIyODgsOCBAQCBkZWNvZGVfY29uc3Ry YWluZWRfcGFja2VkX2FycmF5IChzdHJ1Y3QKK0BAIC0yMjkzLDcgKzIyOTQsOCBAQCBkZWNvZGVf Y29uc3RyYWluZWRfcGFja2VkX2FycmF5IChzdHJ1Y3QKICAgCSBhcnJheSB3aXRoIG5vIHdyYXBw ZXIuICBJbiBvcmRlciB0byBpbnRlcnByZXQgdGhlIHZhbHVlIHRocm91Z2gKICAgCSB0aGUgKGxl ZnQtanVzdGlmaWVkKSBwYWNrZWQgYXJyYXkgdHlwZSB3ZSBqdXN0IGJ1aWx0LCB3ZSBtdXN0CiAg IAkgZmlyc3QgbGVmdC1qdXN0aWZ5IGl0LiAgKi8KQEAgLTYyMSw3ICs2MjEsNyBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogICAgICAgIFVMT05HRVNUIG1vZDsK ICAKICAgICAgICBtb2QgPSBhZGFfbW9kdWx1cyAodmFsdWVfdHlwZSAoYXJyKSkgLSAxOwotQEAg LTIzODgsMTUgKzIzOTAsMTYgQEAgaGFzX25lZ2F0aXZlcyAoc3RydWN0IHR5cGUgKnR5cGUpCitA QCAtMjUyMSw3ICsyNTIzLDcgQEAgYWRhX3VucGFja19mcm9tX2NvbnRlbnRzIChjb25zdCBnZGJf Ynl0ZQogIAogIHN0cnVjdCB2YWx1ZSAqCiAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFs IChzdHJ1Y3QgdmFsdWUgKm9iaiwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC02MzAsMjEg KzYzMCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBz dHJ1Y3QgdmFsdWUgKnY7Ci0tICBpbnQgc3JjLCAgICAgICAgICAgICAgICAgICAgICAvKiBJbmRl eCBpbnRvIHRoZSBzb3VyY2UgYXJlYSAqLwotLSAgICB0YXJnLCAgICAgICAgICAgICAgICAgICAg ICAgLyogSW5kZXggaW50byB0aGUgdGFyZ2V0IGFyZWEgKi8KLS0gICAgc3JjQml0c0xlZnQsICAg ICAgICAgICAgICAgIC8qIE51bWJlciBvZiBzb3VyY2UgYml0cyBsZWZ0IHRvIG1vdmUgKi8KLS0g ICAgbnNyYywgbnRhcmcsICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBzb3VyY2UgYW5kIHRh cmdldCBieXRlcyAqLwotLSAgICB1bnVzZWRMUywgICAgICAgICAgICAgICAgICAgLyogTnVtYmVy IG9mIGJpdHMgaW4gbmV4dCBzaWduaWZpY2FudAotKyAgaW50IHNyYzsgICAgICAgICAgICAgICAg ICAgICAgLyogSW5kZXggaW50byB0aGUgc291cmNlIGFyZWEgKi8KLSsgIExPTkdFU1QgdGFyZzsg ICAgICAgICAgICAgICAgIC8qIEluZGV4IGludG8gdGhlIHRhcmdldCBhcmVhICovCi0rICBpbnQg c3JjQml0c0xlZnQsICAgICAgICAgICAgICAvKiBOdW1iZXIgb2Ygc291cmNlIGJpdHMgbGVmdCB0 byBtb3ZlICovCi0rICAgIG5zcmM7ICAgICAgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2Yg c291cmNlIGJ5dGVzICovCi0rICBMT05HRVNUIG50YXJnOyAgICAgICAgICAgICAgICAvKiBOdW1i ZXIgb2YgdGFyZ2V0IGJ5dGVzICovCi0rICBpbnQgdW51c2VkTFMsICAgICAgICAgICAgICAgICAv KiBOdW1iZXIgb2YgYml0cyBpbiBuZXh0IHNpZ25pZmljYW50Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBieXRlIG9mIHNvdXJjZSB0aGF0IGFyZSB1bnVzZWQgKi8KLSAgICAg YWNjdW1TaXplOyAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiBtZWFuaW5nZnVsIGJpdHMg aW4gYWNjdW0gKi8KLSAgIHVuc2lnbmVkIGNoYXIgKmJ5dGVzOyAgICAgICAgIC8qIEZpcnN0IGJ5 dGUgY29udGFpbmluZyBkYXRhIHRvIHVucGFjayAqLwotQEAgLTI0NDEsNyArMjQ0NCw3IEBAIGFk YV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0yNTk0LDcgKzI1OTYs NyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CiAgCiAgICBpZiAo b2JqICE9IE5VTEwpCiAgICAgIHsKQEAgLTY1Myw3ICs2MzksNyBAQCBJbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogIAogICAgICAgIHNldF92YWx1ZV9jb21wb25lbnRf bG9jYXRpb24gKHYsIG9iaik7CiAgICAgICAgc2V0X3ZhbHVlX2JpdHBvcyAodiwgYml0X29mZnNl dCArIHZhbHVlX2JpdHBvcyAob2JqKSk7Ci1AQCAtMjU2Miw3ICsyNTY1LDcgQEAgYWRhX3ZhbHVl X3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgorQEAgLTI2NDIsNyArMjY0NCw3IEBAIGFk YV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKICAgICBub3Qgb3ZlcmxhcC4g ICovCiAgc3RhdGljIHZvaWQKICBtb3ZlX2JpdHMgKGdkYl9ieXRlICp0YXJnZXQsIGludCB0YXJn X29mZnNldCwgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZSwKQEAgLTY2MiwxNiArNjQ4LDE2IEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgewogICAgdW5zaWduZWQg aW50IGFjY3VtLCBtYXNrOwogICAgaW50IGFjY3VtX2JpdHMsIGNodW5rX3NpemU7Ci1AQCAtMjY1 Miw3ICsyNjU1LDcgQEAgYWRhX3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgcwor QEAgLTI3MzIsNyArMjczNCw3IEBAIGFkYV92YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92 YWwsIHMKICAgICAgewogICAgICAgIGludCBsZW4gPSAodmFsdWVfYml0cG9zICh0b3ZhbCkKICAJ CSArIGJpdHMgKyBIT1NUX0NIQVJfQklUIC0gMSkgLyBIT1NUX0NIQVJfQklUOwogLSAgICAgIGlu dCBmcm9tX3NpemU7CiArICAgICAgTE9OR0VTVCBmcm9tX3NpemU7Ci0gICAgICAgZ2RiX2J5dGUg KmJ1ZmZlciA9IGFsbG9jYSAobGVuKTsKKyAgICAgICBnZGJfYnl0ZSAqYnVmZmVyID0gKGdkYl9i eXRlICopIGFsbG9jYSAobGVuKTsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKICAgICAgICBD T1JFX0FERFIgdG9fYWRkciA9IHZhbHVlX2FkZHJlc3MgKHRvdmFsKTsKLUBAIC0yNzAzLDcgKzI3 MDYsNyBAQCB2YWx1ZV9hc3NpZ25fdG9fY29tcG9uZW50IChzdHJ1Y3QgdmFsdWUKK0BAIC0yNzgz LDcgKzI3ODUsNyBAQCB2YWx1ZV9hc3NpZ25fdG9fY29tcG9uZW50IChzdHJ1Y3QgdmFsdWUKICAg ICAgKExPTkdFU1QpICAodmFsdWVfYWRkcmVzcyAoY29tcG9uZW50KSAtIHZhbHVlX2FkZHJlc3Mg KGNvbnRhaW5lcikpOwogICAgaW50IGJpdF9vZmZzZXRfaW5fY29udGFpbmVyID0KICAgICAgdmFs dWVfYml0cG9zIChjb21wb25lbnQpIC0gdmFsdWVfYml0cG9zIChjb250YWluZXIpOwpAQCAtNjgw LDcgKzY2Niw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAg CiAgICB2YWwgPSB2YWx1ZV9jYXN0ICh2YWx1ZV90eXBlIChjb21wb25lbnQpLCB2YWwpOwogIAot QEAgLTQyOTQsNyArNDI5Nyw3IEBAIGVuc3VyZV9sdmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BA IC00MzkyLDcgKzQzOTQsNyBAQCBlbnN1cmVfbHZhbCAoc3RydWN0IHZhbHVlICp2YWwpCiAgICBp ZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBub3RfbHZhbAogICAgICAgIHx8IFZBTFVFX0xWQUwgKHZh bCkgPT0gbHZhbF9pbnRlcm5hbHZhcikKICAgICAgewpAQCAtNjg5LDE2ICs2NzUsMTYgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBDT1JF X0FERFIgYWRkciA9CiAgICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1ZV9hbGxvY2F0ZV9zcGFj ZV9pbl9pbmZlcmlvciAobGVuKSk7CiAgCi1AQCAtNDM3OCw3ICs0MzgxLDcgQEAgc3RhdGljIENP UkVfQUREUgorQEAgLTQ0NzYsNyArNDQ3OCw3IEBAIHN0YXRpYyBDT1JFX0FERFIKICB2YWx1ZV9w b2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwogLSAgdW5zaWdu ZWQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogKyAgVUxPTkdFU1QgbGVuID0gVFlQRV9MRU5H VEggKHR5cGUpOwotICAgZ2RiX2J5dGUgKmJ1ZiA9IGFsbG9jYSAobGVuKTsKKyAgIGdkYl9ieXRl ICpidWYgPSAoZ2RiX2J5dGUgKikgYWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERSIGFkZHI7CiAg Ci1AQCAtNjUyMSw3ICs2NTI0LDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJl c3MgKHN0cgorQEAgLTY3MTEsNyArNjcxMyw3IEBAIHZhbHVlX3RhZ19mcm9tX2NvbnRlbnRzX2Fu ZF9hZGRyZXNzIChzdHIKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MpCiAgewpA QCAtNzA3LDcgKzY5Myw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFu Zy5jCiAgICBzdHJ1Y3QgdHlwZSAqdGFnX3R5cGU7CiAgCiAgICBpZiAoZmluZF9zdHJ1Y3RfZmll bGQgKCJfdGFnIiwgdHlwZSwgMCwgJnRhZ190eXBlLCAmdGFnX2J5dGVfb2Zmc2V0LAotQEAgLTY5 OTEsNyArNjk5NCw3IEBAIGFkYV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwgc3RydWN0IHR5cGUK K0BAIC03MTgxLDcgKzcxODMsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0cnVj dCB0eXBlCiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFja2VkIHZhbHVlcyBvZiBh cmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03MTYsNyAr NzAyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAgewogICAgc3Ry dWN0IHR5cGUgKnR5cGU7Ci1AQCAtNzAwMyw3ICs3MDA2LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2 ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNzE5Myw3ICs3MTk1LDcgQEAgYWRhX3ZhbHVlX3By aW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCiAgCiAgICBpZiAoVFlQRV9GSUVMRF9CSVRTSVpF IChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkKICAgICAgewpAQCAtNzI1LDcgKzcxMSw3IEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGJpdF9z aXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAgCiAgICAgICAg cmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29udGVu dHMgKGFyZzEpLAotQEAgLTcwMzAsOSArNzAzMyw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmll bGQgKHN0cnVjdCB2YWx1ZQorQEAgLTcyMjAsOSArNzIyMiw5IEBAIGFkYV92YWx1ZV9wcmltaXRp dmVfZmllbGQgKHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBvdGhlcndp c2UuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3MjMsNyBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9wKQogIHsKICAg IGludCBpOwotQEAgLTcwNTAsOCArNzA1Myw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBj aGFyICpuYW1lLCBzdHIKK0BAIC03MjQwLDggKzcyNDIsOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAo Y29uc3QgY2hhciAqbmFtZSwgc3RyCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERT ICh0eXBlKTsgaSArPSAxKQogICAgICB7CkBAIC03NDgsMTYgKzczNCwxNiBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IGNoYXIgKnRfZmll bGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7CiAgCiAgICAgICAgaWYgKHRfZmll bGRfbmFtZSA9PSBOVUxMKQotQEAgLTcxMjEsNyArNzEyNCw3IEBAIG51bV92aXNpYmxlX2ZpZWxk cyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNzMxMSw3ICs3MzEzLDcgQEAgbnVtX3Zpc2libGVf ZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICBTZWFyY2hlcyByZWN1cnNpdmVseSB0aHJv dWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KICAKICBzdGF0aWMgc3Ry dWN0IHZhbHVlICoKLS1hZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3RydWN0 IHZhbHVlICphcmcsIGludCBvZmZzZXQsCi0rYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIg Km5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnLCBMT05HRVNUIG9mZnNldCwKKy1hZGFfc2VhcmNoX3N0 cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVlICphcmcsIGludCBvZmZz ZXQsCisrYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2 YWx1ZSAqYXJnLCBMT05HRVNUIG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzE1NCw3ICs3MTU3LDcgQEAgYWRh X3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTczNDQsNyArNzM0Niw3 IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW0KICAgICAgICAgICAg aW50IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5 cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBAIC03NjYsNyAr NzUyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAKICAg ICAgICAgICAgZm9yIChqID0gMDsgaiA8IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0g MSkKICAgICAgICAgICAgICB7Ci1AQCAtNzE3Miw4ICs3MTc1LDggQEAgYWRhX3NlYXJjaF9zdHJ1 Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTczNjIsOCArNzM2NCw4IEBAIGFkYV9zZWFy Y2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW0KICAgIHJldHVybiBOVUxMOwogIH0KICAK QEAgLTc3Nyw3ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxh bmcuYwogIAogIAogIC8qIFJldHVybiBmaWVsZCAjSU5ERVggaW4gQVJHLCB3aGVyZSB0aGUgaW5k ZXggaXMgdGhhdCByZXR1cm5lZCBieQotQEAgLTcxODIsNyArNzE4NSw3IEBAIHN0YXRpYyBzdHJ1 Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkKK0BAIC03MzcyLDcgKzczNzQsNyBAQCBzdGF0 aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCiAgICogSWYgZm91bmQsIHJldHVy biB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAq CkBAIC03ODYsNyArNzcyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1s YW5nLmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2luZGV4X3N0 cnVjdF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03MTk0LDcgKzcx OTcsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitAQCAtNzM4 NCw3ICs3Mzg2LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1Ywog ICAqICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc5NSw3ICs3 ODEsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuYwogIAkJCSAg c3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzI4NCw3ICs3Mjg3LDggQEAg YWRhX3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAgLTc0NzQsNyArNzQ3 Niw4IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFyZywKICAgICAgdiA9 IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAg ICB7CkBAIC04MDUsNyArNzkxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2Fk YS1sYW5nLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAgICAgICBDT1JFX0FE RFIgYWRkcmVzczsKICAKLUBAIC03NjAxLDggKzc2MDUsOCBAQCBhZGFfY29lcmNlX3JlZiAoc3Ry dWN0IHZhbHVlICp2YWwwKQorQEAgLTc3OTEsOCArNzc5NCw4IEBAIGFkYV9jb2VyY2VfcmVmIChz dHJ1Y3QgdmFsdWUgKnZhbDApCiAgLyogUmV0dXJuIE9GRiByb3VuZGVkIHVwd2FyZCBpZiBuZWNl c3NhcnkgdG8gYSBtdWx0aXBsZSBvZgogICAgIEFMSUdOTUVOVCAoYSBwb3dlciBvZiAyKS4gICov CiAgCkBAIC04MTYsNyArODAyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2Fk YS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYgfihhbGlnbm1l bnQgLSAxKTsKICB9Ci1AQCAtNzk5NiwxMCArODAwMCw5IEBAIGFkYV90ZW1wbGF0ZV90b19maXhl ZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC04MTg2LDEwICs4MTg5LDkgQEAgYWRhX3RlbXBsYXRl X3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFs dWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlw ZTsKQEAgLTgyOSw3ICs4MTUsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRh LWxhbmcuYwogICAgaW50IGY7CiAgCiAgICAvKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgZmllbGRz IGluIHRoaXMgcmVjb3JkIHR5cGUgdGhhdCBhcmUgZ29pbmcKLUBAIC04MDc3LDcgKzgwODAsNyBA QCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtODI2Nyw3ICs4 MjY5LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogIAkgICAg IHRoYXQgZm9sbG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWduZXJfdHlwZSAo ZmllbGRfdHlwZSkpCiAgCSAgICB7CkBAIC04MzgsNyArODI0LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRfdmFsYWRkciA9IGNv bmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAgCSAgICAgIGZp ZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxkX29m ZnNldCk7Ci1AQCAtODIxMywxMSArODIxNiwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVj b3JkX3R5cGVfMSAoc3RyCitAQCAtODQwMywxMSArODQwNSwxMSBAQCBhZGFfdGVtcGxhdGVfdG9f Zml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDAp CiAgICAgIHsKICAgICAgICBpZiAoVFlQRV9OQU1FIChydHlwZSkpCkBAIC04NTQsNyArODQwLDcg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAg ZWxzZQogICAgICB7Ci1AQCAtODY4NCw3ICs4Njg3LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUwLAorQEAgLTg4NzQsNyArODg3Niw4IEBAIHRvX2ZpeGVkX2FycmF5 X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBh Y2tlZCkgYXJyYXkgdHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFy cmF5IGVsZW1lbnRzIG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVu Z3RoIG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAg LTg2NCwxMSArODUwLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtbGFu Zy5jCiAgICAgICAgaW50IGVsdF9iaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwg MCk7CiAgCiAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFIChyZXN1bHQsIDApID0gVFlQRV9GSUVM RF9CSVRTSVpFICh0eXBlMCwgMCk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRh LWxhbmcuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hZGEtbGFuZy5oCTIwMTUt MDctMDkgMTg6MjQ6MzguOTY5MzU1ODg5ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvYWRhLWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjIxOTM4MzYxMiArMDIwMAotQEAgLTE3 OSw3ICsxNzksNyBAQCBleHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hZGEtbGFuZy5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMTc3MzUxNDIzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1s YW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTgzNjQ3MjEgKzAxMDAKK0BAIC0xNjgsNyArMTY4 LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlCiAgZXh0ZXJuIHZv aWQgYWRhX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpu ZXdfc3ltYm9sLAogIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICAKQEAgLTg3 Nyw3ICs4NjMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuaAog IAkJCSAgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUg KiwKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLUBAIC0xOTQs NyArMTk0LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX2VtaXRfY2hhciAoaW50LCBzdHJ1Y3QgdAorQEAg LTE4Myw3ICsxODMsNyBAQCBleHRlcm4gdm9pZCBhZGFfZW1pdF9jaGFyIChpbnQsIHN0cnVjdCB0 CiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3Qg dWlfZmlsZSAqKTsKICAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxl ICosIHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC04ODYsNyArODcyLDcgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZl cnRfYWN0dWFsIChzdHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNjUsNyArMjY1LDcgQEAgZXh0 ZXJuIGludCBhZGFfaXNfY29uc3RyYWluZWRfcGFja2VkX2FycgorQEAgLTI1NSw3ICsyNTUsNyBA QCBleHRlcm4gaW50IGFkYV9pc19jb25zdHJhaW5lZF9wYWNrZWRfYXJyCiAgCiAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUg KiwKICAJCQkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICosCkBAIC04OTUsMTEgKzg4MSwxMSBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLWxhbmcuaAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7CiAg CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphZGFfY29lcmNlX3RvX3NpbXBsZV9hcnJheV90eXBlIChz dHJ1Y3QgdHlwZSAqKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hZGEtdHlwZXBy aW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXR5cGVwcmludC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hZGEtdHlwZXByaW50 LmMJMjAxNS0wNy0wOSAxODoyNDozOC45NjkzNTU4ODkgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMjAzODM2MjEg KzAyMDAKLUBAIC04ODYsOCArODg2LDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0 eXBlMCwgY29ucworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FkYS10eXBlcHJp bnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3NzM1MTQyMyArMDEwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTgzNjQ3 MjEgKzAxMDAKK0BAIC04OTEsOCArODkxLDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlMCwgY29ucwogIAkgICAgY29uc3QgY2hhciAqbmFtZSA9IGFkYV90eXBlX25hbWUgKHR5 cGUpOwogIAogIAkgICAgaWYgKCFhZGFfaXNfcmFuZ2VfdHlwZV9uYW1lIChuYW1lKSkKQEAgLTkx MCw3ICs4OTYsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYWRhLXR5cGVwcmlu dC5jCiAgCSAgICBlbHNlCiAgCSAgICAgIHsKICAJCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg InJhbmdlICIpOwotQEAgLTkwOCw3ICs5MDgsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUwLCBjb25zCitAQCAtOTEzLDcgKzkxMyw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1 Y3QgdHlwZSAqdHlwZTAsIGNvbnMKICAJICB9CiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9D T0RFX0ZMVDoKQEAgLTkyMCwxMCArOTA2LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRU5V TToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS12 YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hZGEtdmFscHJp bnQuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk3MDM1NTg5OCArMDIwMAotKysrIGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjIwMzgzNjIx ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWRhLXZhbHByaW50LmMJ MjAxNS0xMS0wMiAyMToyMzoxMS4xNzkzNTE0MzYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWRhLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTkzNjQ3MjggKzAx MDAKIEBAIC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKQEAgLTEw NjgsMTAgKzEwNTQsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2FkYS12YWxw cmludC5jCiAgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ ICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvYW5ub3RhdGUuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hbm5vdGF0ZS5j CTIwMTUtMDctMDkgMTg6MjQ6MzguOTcxMzU1OTA2ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvYW5ub3RhdGUuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMTM4MzYyOSArMDIwMAor LS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxNS0xMS0wMiAy MToyMzoxMS4xNzkzNTE0MzYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYW5u b3RhdGUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5OTM2NDcyOCArMDEwMAogQEAgLTU0MiwyMSAr NTQyLDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKICB9CiAgDApAQCAtMTA5OCwxMCAr MTA4NCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYW5ub3RhdGUuYwogIH0K ICAKICB2b2lkCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYW5ub3RhdGUuaAorSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTUtMDctMDkgMTg6MjQ6 MzguOTcxMzU1OTA2ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYW5ub3RhdGUu aAkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMTM4MzYyOSArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2Fubm90YXRlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4xNzkzNTE0MzYg KzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYW5ub3RhdGUuaAkyMDE1LTExLTAy IDIxOjIzOjEzLjE5OTM2NDcyOCArMDEwMAogQEAgLTkyLDggKzkyLDggQEAgZXh0ZXJuIHZvaWQg YW5ub3RhdGVfZnJhbWVfc291cmNlX2VuZCAodgogIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1l X3doZXJlICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpOwpA QCAtMTExMywxMSArMTA5OSwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYW5u b3RhdGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsKICBleHRl cm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2FycmF5 X3NlY3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hcm0t bGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXJtLWxpbnV4LW5h dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9hcm0tbGlu dXgtbmF0LmMJMjAxNS0wNy0wOSAxODoyNDozOC45NzEzNTU5MDYgKzAyMDAKLSsrKyBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMjEz ODM2MjkgKzAyMDAKLUBAIC0xMzYyLDcgKzEzNjIsNyBAQCBhcm1fbGludXhfcmVtb3ZlX2h3X2Jy ZWFrcG9pbnQgKHN0cnVjdCB0CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYXJt LWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTgwMzUxNDQzICswMTAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEz LjIwMDM2NDczNCArMDEwMAorQEAgLTEwOTksNyArMTA5OSw3IEBAIGFybV9saW51eF9yZW1vdmVf aHdfYnJlYWtwb2ludCAoc3RydWN0IHQKICAgICBBRERSPyAgKi8KICBzdGF0aWMgaW50CiAgYXJt X2xpbnV4X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNl bGYsCkBAIC0xMTI2LDExICsxMTEyLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9hcm0tbGludXgtbmF0LmMKICB7CiAgICBjb25zdCBzdHJ1Y3QgYXJtX2xpbnV4X2h3YnBfY2Fw ICpjYXAgPSBhcm1fbGludXhfZ2V0X2h3YnBfY2FwICgpOwogICAgQ09SRV9BRERSIG1heF93cF9s ZW5ndGgsIGFsaWduZWRfYWRkcjsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC1n ZGIuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvYXgtZ2RiLmMJMjAxNS0wNy0wOSAx ODoyNDozOC45NzMzNTU5MjMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC1n ZGIuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMjM4MzYzOCArMDIwMAotQEAgLTgyLDEyICs4Miwx MiBAQCBzdGF0aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0IGdkYmFyCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYXgtZ2RiLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xODIz NTE0NTYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMJMjAxNS0x MS0wMiAyMToyMzoxMy4yMDEzNjQ3NDEgKzAxMDAKK0BAIC04MywxMiArODMsMTIgQEAgc3RhdGlj IHZvaWQgZ2VuX3RyYWNlZF9wb3AgKHN0cnVjdCBnZGJhcgogIHN0YXRpYyB2b2lkIGdlbl9zaWdu X2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZv aWQgZ2VuX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3Rh dGljIHZvaWQgZ2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsK QEAgLTExNDUsNyArMTEzMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC1n ZGIuYwogIHN0YXRpYyB2b2lkIGdlbl9zeW1fb2Zmc2V0IChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBz dHJ1Y3Qgc3ltYm9sICopOwogIHN0YXRpYyB2b2lkIGdlbl92YXJfcmVmIChzdHJ1Y3QgZ2RiYXJj aCAqLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVl LCBzdHJ1Y3Qgc3ltYm9sICp2YXIpOwotQEAgLTEzNSwxNSArMTM1LDE2IEBAIHN0YXRpYyB2b2lk IGdlbl9kZXJlZiAoc3RydWN0IGFnZW50X2V4cHIKK0BAIC0xMzYsMTUgKzEzNiwxNiBAQCBzdGF0 aWMgdm9pZCBnZW5fZGVyZWYgKHN0cnVjdCBhZ2VudF9leHByCiAgc3RhdGljIHZvaWQgZ2VuX2Fk ZHJlc3Nfb2YgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCBheHNfdmFsdWUgKik7CiAgc3Rh dGljIHZvaWQgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0 IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLApAQCAt MTE2NSw3ICsxMTUxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2F4LWdkYi5j CiAgCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOwogIHN0YXRpYyB2b2lkIGdlbl9zdHJ1Y3Rf cmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJ ICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAotQEAgLTUzOCw3ICs1MzksNyBAQCBnZW5fZmV0 Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CitAQCAtNTM5LDcgKzU0MCw3IEBAIGdl bl9mZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QKICAgICByaWdodCBzaGlmdCBp dCBieSAtRElTVEFOQ0UgYml0cyBpZiBESVNUQU5DRSA8IDAuICBUaGlzIGdlbmVyYXRlcwogICAg IHVuc2lnbmVkIChsb2dpY2FsKSByaWdodCBzaGlmdHMuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0x MTc0LDcgKzExNjAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYXgtZ2RiLmMK ICB7CiAgICBpZiAoZGlzdGFuY2UgPiAwKQogICAgICB7Ci1AQCAtNTkyLDcgKzU5Myw3IEBAIGdl bl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gKK0BAIC01OTMsNyArNTk0LDcg QEAgZ2VuX2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaAogICAgIHByb2dyYW1t aW5nIGluIE1MLCBpdCB3b3VsZCBiZSBjbGVhcmVyIHdoeSB0aGVzZSBhcmUgdGhlIHNhbWUKICAg ICB0aGluZy4gICovCiAgc3RhdGljIHZvaWQKQEAgLTExODMsNyArMTE2OSw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC1nZGIuYwogIHsKICAgIC8qIEl0IHdvdWxkIHN1ZmZp Y2UgdG8gc2ltcGx5IHB1c2ggdGhlIG9mZnNldCBhbmQgYWRkIGl0LCBidXQgdGhpcwogICAgICAg bWFrZXMgaXQgZWFzaWVyIHRvIHJlYWQgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG9mZnNldHMgaW4g dGhlCi1AQCAtMTI0OCw3ICsxMjQ5LDcgQEAgZ2VuX2FkZHJlc3Nfb2YgKHN0cnVjdCBhZ2VudF9l eHByICpheCwgcworQEAgLTEyNDksNyArMTI1MCw3IEBAIGdlbl9hZGRyZXNzX29mIChzdHJ1Y3Qg YWdlbnRfZXhwciAqYXgsIHMKICBzdGF0aWMgdm9pZAogIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVj dCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJCSAgc3RydWN0IGF4 c192YWx1ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTE5Miw3ICsxMTc4LDcgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2F4LWdkYi5jCiAgewogICAgLyogTm90ZSB0 aGF0IG9wc1tpXSBmZXRjaGVzIDggPDwgaSBiaXRzLiAgKi8KICAgIHN0YXRpYyBlbnVtIGFnZW50 X29wIG9wc1tdCi1AQCAtMTI4MywxMyArMTI4NCwxMyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAtMTI4NCwxMyArMTI4NSwxMyBAQCBnZW5fYml0ZmllbGRf cmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCiAgCiAgICAvKiBUaGUgZmlyc3QgYW5kIG9uZS1h ZnRlci1sYXN0IGJpdHMgaW4gdGhlIGZpZWxkLCBidXQgcm91bmRlZCBkb3duCiAgICAgICBhbmQg dXAgdG8gYnl0ZSBib3VuZGFyaWVzLiAgKi8KQEAgLTEyMTEsNyArMTE5Nyw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC1nZGIuYwogIAogICAgLyogVGhlIGluZGV4IGluIG9w cyBvZiB0aGUgb3Bjb2RlIHdlJ3JlIGNvbnNpZGVyaW5nLiAgKi8KICAgIGludCBvcDsKLUBAIC0x NDA4LDcgKzE0MDksNyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw CitAQCAtMTQwOSw3ICsxNDEwLDcgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Np b24gKmV4cAogIHN0YXRpYyB2b2lkCiAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJl c3Npb24gKmV4cCwKICAJCSAgICAgc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QgYXhzX3Zh bHVlICp2YWx1ZSwKQEAgLTEyMjAsNyArMTIwNiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9heC1nZGIuYwogIHsKICAgIC8qIElzIHRoaXMgYSBiaXRmaWVsZD8gICovCiAgICBp ZiAoVFlQRV9GSUVMRF9QQUNLRUQgKHR5cGUsIGZpZWxkbm8pKQotQEAgLTE0MzMsNyArMTQzNCw3 IEBAIGdlbl9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCBleHByZXNzaW9uICoKK0BAIC0xNDM0LDcg KzE0MzUsNyBAQCBnZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqCiAgc3Rh dGljIGludAogIGdlbl9zdHJ1Y3RfcmVmX3JlY3Vyc2l2ZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4 cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUs CkBAIC0xMjI5LDExICsxMjE1LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9h eC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAgaW50IG5iYXNlcyA9IFRZUEVfTl9CQVNF Q0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYXgtZ2VuZXJh bC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdlbmVyYWwuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTUt MDctMDkgMTg6MjQ6MzguOTczMzU1OTIzICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjIzMzgzNjQ2ICswMjAwCi1AQCAt MTkzLDcgKzE5Myw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwgaW50IG4K Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxNS0xMS0w MiAyMToyMzoxMS4xODIzNTE0NTYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YXgtZ2VuZXJhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICswMTAwCitAQCAtMTky LDcgKzE5Miw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwgaW50IG4KICAK ICAvKiBBcHBlbmQgYSB0cmFjZV9xdWljayBpbnN0cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQg TiBieXRlcy4gICovCiAgdm9pZApAQCAtMTI0MiwxMCArMTIyOCwxMCBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAgLyogTiBtdXN0IGZpdCBpbiBh IGJ5dGUuICAqLwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1JbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvYXguaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9heC5oCTIwMTUtMDct MDkgMTg6MjQ6MzguOTczMzU1OTIzICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv YXguaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyMzM4MzY0NiArMDIwMAorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2F4LmgJMjAxNS0xMS0wMiAyMToyMzoxMS4xODMzNTE0NjMgKzAx MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAkyMDE1LTExLTAyIDIxOjIzOjEz LjIwMTM2NDc0MSArMDEwMAogQEAgLTIwNyw3ICsyMDcsNyBAQCBleHRlcm4gdm9pZCBheF9leHQg KHN0cnVjdCBhZ2VudF9leHByICpFCiAgZXh0ZXJuIHZvaWQgYXhfemVyb19leHQgKHN0cnVjdCBh Z2VudF9leHByICpFWFBSLCBpbnQgTik7CiAgCkBAIC0xMjU1LDExICsxMjQxLDExIEBAIEluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9heC5oCiAgCiAgLyogQXBwZW5kIGEgZ290byBvcCB0 byBFWFBSLiAgT1AgaXMgdGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3BfZ290byBvcgogICAgIGFv cF9pZl9nb3RvKS4gIFdlIGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0YXJnZXQgb2Zmc2V0IHll dCwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNS0wNy0wOSAxODoyNDoz OC45NzczNTU5NTggKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9icmVha3BvaW50 LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMjczODM2ODAgKzAyMDAKLUBAIC0yMjAyLDkgKzIyMDIs OSBAQCBzaG91bGRfYmVfaW5zZXJ0ZWQgKHN0cnVjdCBicF9sb2NhdGlvbiAqCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MTg4MzUxNDk2ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQu YwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNTM2NDc2NyArMDEwMAorQEAgLTIyMTUsOSArMjIxNSw5 IEBAIHNob3VsZF9iZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICoKICAJewogIAkgIGZw cmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5mcnVuOiBzdGVwcGlu ZyBwYXN0IG5vbi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI3MSw3ICsxMjU3LDcgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAgICAgICAg cmV0dXJuIDA7CiAgICAgIH0KLUBAIC02OTk1LDcgKzY5OTUsNyBAQCBicmVha3BvaW50X2FkZHJl c3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCitAQCAtNzA1Myw3ICs3MDUzLDcgQEAgYnJlYWtwb2lu dF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBpbnQKICBicmVha3Bv aW50X2FkZHJlc3NfbWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBD T1JFX0FERFIgYWRkcjEsCkBAIC0xMjgwLDcgKzEyNjYsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvYnJlYWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRyMikKICB7CiAgICBy ZXR1cm4gKChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoICgp KQotQEAgLTExMzAyLDcgKzExMzAyLDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChz dHJ1Y3QgdmFsdQorQEAgLTExMzg3LDcgKzExMzg3LDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRj aHBvaW50IChzdHJ1Y3QgdmFsdQogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkgIT0gVFlQ RV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVfYWRkcmVz cyAodik7CkBAIC0xMjg5LDExICsxMjc1LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9icmVha3BvaW50LmMKICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJICBsZW4gPSAodGFy Z2V0X2V4YWN0X3dhdGNocG9pbnRzCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYnJl YWtwb2ludC5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvYnJlYWtwb2ludC5o CTIwMTUtMDctMDkgMTg6MjQ6MzguOTc4MzU1OTY2ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvYnJlYWtwb2ludC5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjI3MzgzNjgwICswMjAw Ci1AQCAtMjM2LDcgKzIzNiw3IEBAIHN0cnVjdCBicF90YXJnZXRfaW5mbworLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE5 MDM1MTUwOSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmgJ MjAxNS0xMS0wMiAyMToyMzoxMy4yMDYzNjQ3NzMgKzAxMDAKK0BAIC0yMzcsNyArMjM3LDcgQEAg c3RydWN0IGJwX3RhcmdldF9pbmZvCiAgCiAgICAvKiBJZiB0aGlzIGlzIGEgcmFuZ2VkIGJyZWFr cG9pbnQsIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUKICAgICAgIGxlbmd0aCBvZiB0aGUg cmFuZ2UgdGhhdCB3aWxsIGJlIHdhdGNoZWQgZm9yIGV4ZWN1dGlvbi4gICovCkBAIC0xMzAyLDcg KzEyODgsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvYnJlYWtwb2ludC5oCiAg CiAgICAvKiBJZiB0aGUgYnJlYWtwb2ludCBsaXZlcyBpbiBtZW1vcnkgYW5kIHJlYWRpbmcgdGhh dCBtZW1vcnkgd291bGQKICAgICAgIGdpdmUgYmFjayB0aGUgYnJlYWtwb2ludCwgaW5zdGVhZCBv ZiB0aGUgb3JpZ2luYWwgY29udGVudHMsIHRoZW4KLUBAIC00MTIsNyArNDEyLDcgQEAgc3RydWN0 IGJwX2xvY2F0aW9uCitAQCAtNDEzLDcgKzQxMyw3IEBAIHN0cnVjdCBicF9sb2NhdGlvbgogICAg LyogRm9yIGhhcmR3YXJlIHdhdGNocG9pbnRzLCB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHJlZ2lv biBiZWluZwogICAgICAgd2F0Y2hlZC4gIEZvciBoYXJkd2FyZSByYW5nZWQgYnJlYWtwb2ludHMs IHRoZSBzaXplIG9mIHRoZQogICAgICAgYnJlYWtwb2ludCByYW5nZS4gICovCkBAIC0xMzExLDEw ICsxMjk3LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9icmVha3BvaW50LmgK ICAKICAgIC8qIFR5cGUgb2YgaGFyZHdhcmUgd2F0Y2hwb2ludC4gICovCiAgICBlbnVtIHRhcmdl dF9od19icF90eXBlIHdhdGNocG9pbnRfdHlwZTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9jLWxhbmcuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLWxhbmcuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvYy1sYW5nLmMJMjAx NS0wNy0wOSAxODoyNDozOC45NzkzNTU5NzUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9jLWxhbmcuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyODM4MzY4OSArMDIwMAorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MTkwMzUxNTA5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5jCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjA2MzY0NzczICswMTAwCiBAQCAtMTg3LDcgKzE4Nyw3IEBAIGNf cHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICB2b2lkCkBAIC0xMzQy LDEwICsxMzI4LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jLWxhbmcuYwog IAogIAkJaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAoZXhwZWN0X3R5 cGUpLAogIAkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCi1JbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvYy1sYW5nLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYy1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2Ri L2MtbGFuZy5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTc5MzU1OTc1ICswMjAwCi0rKysgZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvYy1sYW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMjgzODM2ODkg KzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jLWxhbmcuaAkyMDE1LTEx LTAyIDIxOjIzOjExLjE5MTM1MTUxNSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9jLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNjM2NDc3MyArMDEwMAogQEAgLTc0LDcg Kzc0LDcgQEAgZXh0ZXJuIHZvaWQgY19wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwZQogIAkJCSAg ICAgc3RydWN0IHVpX2ZpbGUgKik7CiAgCkBAIC0xMzgxLDExICsxMzY3LDQwIEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jLWxhbmcuaAogIAkJCQkJc3RydWN0IHVpX2ZpbGUgKiwg aW50LAogIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJCQljb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqLAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2MtdmFs cHJpbnQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwky MDE1LTA3LTA5IDE4OjI0OjM4Ljk3OTM1NTk3NSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIyODM4MzY4OSArMDIwMAot QEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50 X2RlCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMTkxMzUxNTE1ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2MtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNzM2NDc4MCArMDEwMAorQEAg LTI0Miw3ICsyNDIsNyBAQCBjX3ZhbF9wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNv CisgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID4gMCAmJiBUWVBFX0xFTkdUSCAodW5yZXNvbHZl ZF9lbHR0eXBlKSA+IDApCisgICAgIHsKKyAgICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9i b3VuZDsKKy0gICAgICBpbnQgZWx0bGVuLCBsZW47CisrICAgICAgTE9OR0VTVCBlbHRsZW4sIGxl bjsKKyAgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUp OworICAgICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVy IChnZGJhcmNoKTsKKyAgICAgICB1bnNpZ25lZCBpbnQgaSA9IDA7CS8qIE51bWJlciBvZiBjaGFy YWN0ZXJzIHByaW50ZWQuICAqLworQEAgLTMxNiw4ICszMTYsOCBAQCBjX3ZhbF9wcmludF9hcnJh eSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCisgCSAgaWYgKGNwX2lzX3Z0YmxfcHRyX3R5cGUgKGVs dHR5cGUpKQorIAkgICAgeworIAkgICAgICBpID0gMTsKKy0JICAgICAgZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCBfKCIlZCB2dGFibGUgZW50cmllcyIpLAorLQkJCQlsZW4gLSAxKTsKKysJICAg ICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCIlcyB2dGFibGUgZW50cmllcyIpLAorKwkJ CQlwbG9uZ2VzdCAobGVuIC0gMSkpOworIAkgICAgfQorIAkgIGVsc2UKKyAJICAgIHsKK0BAIC0z OTQsNyArMzk0LDcgQEAgY192YWxfcHJpbnRfc3RydWN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgYwor IAkgLWZ2dGFibGVfdGh1bmtzLiAgKE90aGVyd2lzZSwgbG9vayB1bmRlcgorIAkgVFlQRV9DT0RF X1BUUi4pICAqLworICAgICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJj aCAodHlwZSk7CistICAgICAgaW50IG9mZnNldCA9IChlbWJlZGRlZF9vZmZzZXQKKysgICAgICBM T05HRVNUIG9mZnNldCA9IChlbWJlZGRlZF9vZmZzZXQKKyAJCSAgICArIFRZUEVfRklFTERfQklU UE9TICh0eXBlLAorIAkJCQkJIFZUQkxfRk5BRERSX09GRlNFVCkgLyA4KTsKKyAgICAgICBzdHJ1 Y3QgdHlwZSAqZmllbGRfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwgVlRCTF9GTkFERFJf T0ZGU0VUKTsKK0BAIC00OTMsNyArNDkzLDcgQEAgY192YWxfcHJpbnRfbWVtYmVycHRyIChzdHJ1 Y3QgdHlwZSAqdHlwZQogIAogIHZvaWQKICBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTM5NCwyOSArMTQwOSw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jLXZhbHByaW50LmMKICAJICAgICBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdp bmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQotQEAgLTE0Myw3ICsxNDMsNyBAQCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkCi0gICB1bnNpZ25lZCBsZW47Ci0gICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKnVu cmVzb2x2ZWRfZWx0dHlwZTsKLSAgIHN0cnVjdCB0eXBlICp1bnJlc29sdmVkX3R5cGUgPSB0eXBl OwotLSAgdW5zaWduZWQgZWx0bGVuOwotKyAgVUxPTkdFU1QgZWx0bGVuOwotICAgQ09SRV9BRERS IGFkZHI7Ci0gCi0gICBDSEVDS19UWVBFREVGICh0eXBlKTsKLUBAIC0zNzksOSArMzc5LDkgQEAg Y192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZAotIAkgIC8qIFByaW50IHZ0 YWJsZSBlbnRyeSAtIHdlIG9ubHkgZ2V0IGhlcmUgaWYgTk9UIHVzaW5nCi0gCSAgICAgLWZ2dGFi bGVfdGh1bmtzLiAgKE90aGVyd2lzZSwgbG9vayB1bmRlcgotIAkgICAgIFRZUEVfQ09ERV9QVFIu KSAgKi8KLS0JICBpbnQgb2Zmc2V0ID0gKGVtYmVkZGVkX29mZnNldAotLQkJCSsgVFlQRV9GSUVM RF9CSVRQT1MgKHR5cGUsCi0tCQkJCQkgICAgIFZUQkxfRk5BRERSX09GRlNFVCkgLyA4KTsKLSsJ ICBMT05HRVNUIG9mZnNldCA9IChlbWJlZGRlZF9vZmZzZXQKLSsJCQkgICAgKyBUWVBFX0ZJRUxE X0JJVFBPUyAodHlwZSwKLSsJCQkJCQkgVlRCTF9GTkFERFJfT0ZGU0VUKSAvIDgpOwotIAkgIHN0 cnVjdCB0eXBlICpmaWVsZF90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLAotIAkJCQkJCSAg ICAgVlRCTF9GTkFERFJfT0ZGU0VUKTsKLSAJICBDT1JFX0FERFIgYWRkcgotQEAgLTQ2MCw3ICs0 NjAsOCBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0CitAQCAtNTY1 LDcgKzU2NSw4IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QKICAJ ICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAg IHN0cnVjdCB0eXBlICp0eXBlLCAqcmVhbF90eXBlLCAqdmFsX3R5cGU7CkBAIC0xNDI2LDEwICsx NDE5LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jLXZhbHByaW50LmMKICAg IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsKICAKICAgIG9wdHMu ZGVyZWZfcmVmID0gMTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jcC1hYmkuYwor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY3AtYWJpLmMJMjAxNS0wNy0wOSAxODoyNDoz OC45ODAzNTU5ODMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jcC1hYmkuYwky MDE1LTA3LTA5IDE4OjI0OjQyLjIyODM4MzY4OSArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICswMTAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjA3MzY0NzgwICswMTAwCiBAQCAtNjQsMTIgKzY0LDEyIEBAIGlzX29wZXJhdG9yX25hbWUg KGNvbnN0IGNoYXIgKm5hbWUpCiAgICByZXR1cm4gKCpjdXJyZW50X2NwX2FiaS5pc19vcGVyYXRv cl9uYW1lKSAobmFtZSk7CiAgfQpAQCAtMTQ2NCwxMCArMTQ1NywxMCBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvY3AtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqcmV0ID0gTlVM TDsKICAKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jcC1hYmkuaAorSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljku OTAuMjAxNTA3MDkub3JpZy9nZGIvY3AtYWJpLmgJMjAxNS0wNy0wOSAxODoyNDozOC45ODAzNTU5 ODMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jcC1hYmkuaAkyMDE1LTA3LTA5 IDE4OjI0OjQyLjIyOTM4MzY5OCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICswMTAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0 NzgwICswMTAwCiBAQCAtMTA4LDcgKzEwOCw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVl X3ZpcnR1YWxfZm5fZmkKICAJCQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICpmLAogIAkJCQkJICAg ICBpbnQgaiwKQEAgLTE1MjIsMTAgKzE1MTUsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL2NwLWFiaS5oCiAgICB2b2lkICgqcHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9i eXRlICpjb250ZW50cywKICAJCQkgICAgc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJICAgIHN0cnVj dCB1aV9maWxlICpzdHJlYW0pOwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2NwLXZh bHByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtdmFscHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY3AtdmFscHJpbnQu YwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk4MDM1NTk4MyArMDIwMAotKysrIGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMjkzODM2OTggKzAy MDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMTkzMzUxNTI5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2NwLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAKIEBA IC04MCw3ICs4MCw3IEBAIHN0YXRpYyB2b2lkIGNwX3ByaW50X3N0YXRpY19maWVsZCAoc3RydWMK ICAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCkBAIC0xNTk5 LDExICsxNTkyLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9jcC12YWxwcmlu dC5jCiAgICAgICAgaW50IHNraXAgPSAwOwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xhc3Mg PSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwogICAgICAgIGNvbnN0 IGNoYXIgKmJhc2VuYW1lID0gVFlQRV9OQU1FIChiYXNlY2xhc3MpOwotSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2QtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9k LWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk4MTM1NTk5MiArMDIwMAotKysrIGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2QtbGFuZy5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjI5MzgzNjk4ICsw MjAwCi1AQCAtNzEsNyArNzEsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5fZF90eXBl ICpidWlsCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZC1sYW5nLmgJMjAxNS0x MS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZC1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAKK0BAIC04MSw3 ICs4MSw3IEBAIGV4dGVybiBzdHJ1Y3QgYmxvY2tfc3ltYm9sIGRfbG9va3VwX25lc3QKICAvKiBE ZWZpbmVkIGluIGQtdmFscHJpbnQuYyAgKi8KICAKICBleHRlcm4gdm9pZCBkX3ZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTYxMiwxMCAr MTYwNSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZC1sYW5nLmgKICAJCQkg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cyk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZC12YWxwcmludC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6 MzguOTgxMzU1OTkyICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZC12YWxwcmlu dC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjI5MzgzNjk4ICswMjAwCistLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkzMzUx NTI5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIwODM2NDc4NyArMDEwMAogQEAgLTI5LDcgKzI5LDcgQEAKICAKICBz dGF0aWMgaW50CkBAIC0xNjM4LDEwICsxNjMxLDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9kLXZhbHByaW50LmMKICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgaW50IHJldDsKLUluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9kb3VibGVzdC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2RvdWJsZXN0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2Ri L2RvdWJsZXN0LmMJMjAxNS0wNy0wOSAxODoyNDozOC45ODEzNTU5OTIgKzAyMDAKLSsrKyBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9kb3VibGVzdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjMwMzgz NzA2ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZG91Ymxlc3QuYwky MDE1LTExLTAyIDIxOjIzOjExLjE5NDM1MTUzNSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9kb3VibGVzdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA4MzY0Nzg3ICswMTAwCiBA QCAtNzY1LDcgKzc2NSw3IEBAIGZsb2F0Zm9ybWF0X2Zyb21fZG91Ymxlc3QgKGNvbnN0IHN0cnVj dAogICAgIGJ1dCBub3QgcGFzc2VkIG9uIGJ5IEdEQi4gIFRoaXMgc2hvdWxkIGJlIGZpeGVkLiAg Ki8KICAKQEAgLTE2NjIsMTEgKzE2NTUsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2RvdWJsZXN0LmMKICAgIHJldHVybiBmb3JtYXQ7CiAgfQogIAotSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2R3YXJmMmxvYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmln L2dkYi9kd2FyZjJsb2MuYwkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk4MzM1NjAwOSArMDIwMAotKysr IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDctMDkgMTg6MjQ6NDIu MjMxMzgzNzE1ICswMjAwCi1AQCAtMTU1NywxOSArMTU1NywxOSBAQCBpbnNlcnRfYml0cyAodW5z aWduZWQgaW50IGRhdHVtLAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2R3YXJm MmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTk3MzUxNTU1ICswMTAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA5MzY0Nzkz ICswMTAwCitAQCAtMTYzMiwxOSArMTYzMiwxOSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQgaW50 IGRhdHVtLAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFy Y2guICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0xNjkyLDcgKzE2ODUsNyBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvZHdhcmYybG9jLmMKICAKICAgIGRlc3RfYXZhaWwgPSA4IC0g ZGVzdF9vZmZzZXRfYml0cyAlIDg7CiAgCi1AQCAtMTYwNywxMyArMTYwNywxMyBAQCBzdGF0aWMg dm9pZAorQEAgLTE2ODIsMTMgKzE2ODIsMTMgQEAgc3RhdGljIHZvaWQKICByZWFkX3BpZWNlZF92 YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogIHsKICAgIGludCBpOwpAQCAtMTcwOCw3ICsxNzAxLDcg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCiAgICBzaXplX3Qg YnVmZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBzdHJ1Y3Qg Y2xlYW51cCAqY2xlYW51cDsKLUBAIC0xNjQwLDggKzE2NDAsOCBAQCByZWFkX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE3MTUsOCArMTcxNSw4IEBAIHJlYWRfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnYpCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYg b2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHBy X3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3MTksNyArMTcxMiw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGNvbnN0IGdkYl9ieXRl ICppbnRlcm1lZGlhdGVfYnVmZmVyOwogIAogICAgICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNl LCBhbmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0xNzkwLDEzICsx NzkwLDEzIEBAIHN0YXRpYyB2b2lkCitAQCAtMTg1NiwxMyArMTg1NiwxMyBAQCBzdGF0aWMgdm9p ZAogIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpm cm9tKQogIHsKICAgIGludCBpOwpAQCAtMTczNSw3ICsxNzI4LDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCiAgICBzaXplX3QgYnVmZmVyX3NpemUgPSAwOwog ICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsK LUBAIC0xODI0LDggKzE4MjQsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dG8sIHN0CitAQCAtMTg5MCw4ICsxODkwLDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnRvLCBzdAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8 IHR5cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAq cCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzQ2LDcgKzE3MzksNyBAQCBJbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvZHdhcmYybG9jLmMKICAgICAgICBpbnQgbmVlZF9iaXR3aXNlOwogICAg ICAgIGNvbnN0IGdkYl9ieXRlICpzb3VyY2VfYnVmZmVyOwogIAotQEAgLTE5NTMsOCArMTk1Myw4 IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKK0BAIC0yMDEwLDgg KzIwMTAsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0CiAgICAg YSBzeW50aGV0aWMgcG9pbnRlci4gICovCiAgCiAgc3RhdGljIGludApAQCAtMTc1Nyw3ICsxNzUw LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCiAgewogICAg c3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikg dmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodmFsdWUpOwotQEAgLTE5NjcsNyArMTk2Nyw3IEBAIGNo ZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3QKK0BAIC0yMDI0LDcgKzIwMjQs NyBAQCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0CiAgICBmb3IgKGkg PSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAg ICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3NjYs NyArMTc1OSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJsb2MuYwog IAogICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIwMDksOSArMjAwOSwxMCBA QCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtMjA2Niw5ICsy MDY2LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKICAgIHN0 cnVjdCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwogICAgc3RydWN0 IGR3YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOwpAQCAtMTc3OSw3ICsxNzcyLDcgQEAgSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2R3YXJmMmxvYy5jCiAgICBlbnVtIGJmZF9lbmRpYW4g Ynl0ZV9vcmRlcjsKICAKICAgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1 ZSkpOwotQEAgLTIwMjYsNyArMjAyNyw3IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0 IHZhbHVlICp2YWwKK0BAIC0yMDgzLDcgKzIwODQsNyBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUg KHN0cnVjdCB2YWx1ZSAqdmFsCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgYml0 X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNl ICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3ODgsNyArMTc4MSw3IEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJsb2MuYwogIAogICAgICAgIGlmIChiaXRfb2Zmc2V0ID4g MCkKICAJewotQEAgLTIzMDksNyArMjMxMCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19m dWxsIChzdHJ1Y3QgdHkKK0BAIC0yMzYzLDcgKzIzNjQsNyBAQCBkd2FyZjJfZXZhbHVhdGVfbG9j X2Rlc2NfZnVsbCAoc3RydWN0IHR5CiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gZHdhcmZf ZXhwcl9mZXRjaCAoY3R4LCAwKTsKICAJICAgIGdkYl9ieXRlICpjb250ZW50czsKICAJICAgIGNv bnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7CkBAIC0xNzk3LDExICsxNzkwLDExIEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJsb2MuYwogIAogIAkgICAgaWYgKGJ5dGVfb2Zm c2V0ICsgVFlQRV9MRU5HVEggKHR5cGUpID4gbikKICAJICAgICAgaW52YWxpZF9zeW50aGV0aWNf cG9pbnRlciAoKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9kd2FyZjJyZWFkLmMK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wNy0w OSAxODoyNDozOC45ODkzNTYwNjAgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9k d2FyZjJyZWFkLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMzYzODM3NTcgKzAyMDAKLUBAIC0xOTEw LDEyICsxOTEwLDEyIEBAIGR3YXJmMl9jb21wbGV4X2xvY2F0aW9uX2V4cHJfY29tcGxhaW50ICgK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yMDQzNTE2MDEgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZHdhcmYycmVhZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE1MzY0ODMzICswMTAwCitAQCAtMTkx NywxMiArMTkxNywxMiBAQCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAo CiAgfQogIAogIHN0YXRpYyB2b2lkCkBAIC0xODE4LDcgKzE4MTEsNyBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvZHdhcmYycmVhZC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAt MTI1MjQsOCArMTI1MjQsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAq ZmlwCitAQCAtMTI1NTQsOCArMTI1NTQsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmll bGRfaW5mbyAqZmlwCiAgCSAgICAgICAgIG9iamVjdCwgYW5kIHRoZW4gc3VidHJhY3Qgb2ZmIHRo ZSBudW1iZXIgb2YgYml0cyBvZgogIAkgICAgICAgICB0aGUgZmllbGQgaXRzZWxmLiAgVGhlIHJl c3VsdCBpcyB0aGUgYml0IG9mZnNldCBvZgogIAkgICAgICAgICB0aGUgTFNCIG9mIHRoZSBmaWVs ZC4gICovCkBAIC0xODI5LDEwICsxODIyLDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9kd2FyZjJyZWFkLmMKICAKICAJICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2J5dGVfc2l6ZSwgY3UpOwogIAkgICAgICBpZiAoYXR0cikKLUluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9ldmFsLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZh bC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9ldmFsLmMJ MjAxNS0wNy0wOSAxODoyNDozOC45OTAzNTYwNjggKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9ldmFsLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMzczODM3NjYgKzAyMDAKKy0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9ldmFsLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4y MDYzNTE2MTQgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjE2MzY0ODM5ICswMTAwCiBAQCAtMzE3LDcgKzMxNyw4IEBAIGV2YWx1 YXRlX3N0cnVjdF90dXBsZSAoc3RydWN0IHZhbHVlICpzdHIKICAgIHdoaWxlICgtLW5hcmdzID49 IDApCiAgICAgIHsKQEAgLTE4NTIsNyArMTg0NSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9ldmFsLmMKICAKICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IEJJTk9Q X0NPTU1BKQogICAgICB7Ci1AQCAtNTI1LDExICs1MjYsMTEgQEAgYmlub3BfcHJvbW90ZSAoY29u c3Qgc3RydWN0IGxhbmd1YWdlX2RlZgorQEAgLTUyNiwxMSArNTI3LDExIEBAIGJpbm9wX3Byb21v dGUgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWYKICAgICAgLyogRklYTUU6IEFsc28gbWl4ZWQg aW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVzdWx0IGFuIGludGVnZXIuICAqLwogICAgICB7CiAg ICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5fdHlwZSAqYnVpbHRpbiA9IGJ1aWx0aW5fdHlwZSAo Z2RiYXJjaCk7CkBAIC0xODY3LDcgKzE4NjAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvZXZhbC5jCiAgICAgICAgaW50IHVuc2lnbmVkX29wZXJhdGlvbjsKICAKICAgICAgICAv KiBEZXRlcm1pbmUgdHlwZSBsZW5ndGggYW5kIHNpZ25lZG5lc3MgYWZ0ZXIgcHJvbW90aW9uIGZv cgotQEAgLTcxMSw3ICs3MTIsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0 eXBlICplCitAQCAtNzEyLDcgKzcxMyw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3Ry dWN0IHR5cGUgKmUKICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsKICAgIGludCBjb2RlOwogICAg aW50IGl4OwpAQCAtMTg3Niw3ICsxODY5LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2V2YWwuYwogICAgc3RydWN0IHR5cGUgKiphcmdfdHlwZXM7CiAgICBpbnQgc2F2ZV9wb3Mx OwogICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBOVUxMOwotQEAgLTg5MCw3ICs4OTEsNyBA QCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtODkxLDcgKzg5 Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAJICBzdHJ1 Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0 IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwogIAkgIHN0cnVj dCB2YWx1ZSAqYXJyYXkgPSBhbGxvY2F0ZV92YWx1ZSAoZXhwZWN0X3R5cGUpOwpAQCAtMTg5NSwx MCArMTg4OCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZXZhbC5jCiAgCXN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CiAgCiAgCWdldF91c2VyX3ByaW50X29wdGlv bnMgKCZvcHRzKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mLWxhbmcuYworSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZi1sYW5nLmMJMjAxNS0wNy0wOSAxODoyNDozOC45 OTEzNTYwNzcgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mLWxhbmcuYwkyMDE1 LTA3LTA5IDE4OjI0OjQyLjIzNzM4Mzc2NiArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA2MzUxNjE0ICswMTAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjE2MzY0ODM5ICswMTAwCiBAQCAtMTAzLDcgKzEwMyw3IEBAIGZfcHJpbnRjaGFyIChpbnQgYywg c3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICBzdGF0aWMgdm9pZApAQCAtMTkwOCwxMCArMTkwMSwx MCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZi1sYW5nLmMKICAJICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIGNvbnN0IGNoYXIg KnR5cGVfZW5jb2RpbmcgPSBmX2dldF9lbmNvZGluZyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Zi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2Yt bGFuZy5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTkxMzU2MDc3ICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvZi1sYW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yMzgzODM3NzQgKzAy MDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTExLTAy IDIxOjIzOjExLjIwNzM1MTYyMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9m LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNjM2NDgzOSArMDEwMAogQEAgLTMwLDcgKzMw LDcgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5lZAogIGV4dGVybiB2 b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlf ZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNvbnN0IHN0cnVjdCB0eXBlX3ByaW50X29wdGlvbnMg Kik7CkBAIC0xOTIxLDEwICsxOTE0LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9mLWxhbmcuaAogIAkJCSBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJIGNvbnN0IHN0cnVj dCB2YWx1ZSAqLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLUlu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45 MC4yMDE1MDcwOS5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDozOC45OTEz NTYwNzcgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mLXZhbHByaW50LmMJMjAx NS0wNy0wOSAxODoyNDo0Mi4yMzgzODM3NzQgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDczNTE2MjAgKzAx MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIg MjE6MjQ6MzQuMTA4ODk3MDkwICswMTAwCiBAQCAtMzgsNyArMzgsNyBAQCBleHRlcm4gdm9pZCBf aW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkCiAgc3RhdGljIHZvaWQgaW5mb19jb21tb25fY29t bWFuZCAoY2hhciAqLCBpbnQpOwogIHN0YXRpYyB2b2lkIGY3N19nZXRfZHluYW1pY19sZW5ndGhf b2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsKQEAgLTE5ODQsMTEgKzE5NzcsMTEgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2YtdmFscHJpbnQuYwogIAkgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2ZpbmR2YXIuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9maW5kdmFyLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE1 LTA3LTA5IDE4OjI0OjM4Ljk5MTM1NjA3NyArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2ZpbmR2YXIuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjIzODM4Mzc3NCArMDIwMAotQEAgLTYy Niw3ICs2MjYsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2ZpbmR2YXIuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIwODM1MTYyNyArMDEwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9maW5kdmFyLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y MTczNjQ4NDYgKzAxMDAKK0BAIC04MDEsNyArODAxLDcgQEAgc3RydWN0IHZhbHVlICoKICBkZWZh dWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0sIHN0 cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCkKICB7CkBAIC0xOTk3LDcgKzE5OTAsNyBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZmluZHZhci5jCiAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVl ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwogIAogICAgVkFMVUVfTFZBTCAodmFsdWUpID0gbHZh bF9yZWdpc3RlcjsKLUBAIC02NTksMTAgKzY1OSwxMCBAQCB2b2lkCitAQCAtODM0LDEwICs4MzQs MTAgQEAgdm9pZAogIHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFs dWUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CkBAIC0yMDA2LDI0ICsxOTk5LDI0IEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9maW5kdmFyLmMKICsgIExPTkdFU1Qgb2Zmc2V0 ID0gMDsKICsgIExPTkdFU1QgcmVnX29mZnNldCA9IHZhbHVlX29mZnNldCAodmFsdWUpOwogICAg aW50IHJlZ251bSA9IFZBTFVFX1JFR05VTSAodmFsdWUpOwotLSAgaW50IGxlbiA9IFRZUEVfTEVO R1RIIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpKTsKLSsgIExPTkdFU1QgbGVu ID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSkpOworLSAg aW50IGxlbiA9IHR5cGVfbGVuZ3RoX3VuaXRzIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2 YWx1ZSkpKTsKKysgIExPTkdFU1QgbGVuID0gdHlwZV9sZW5ndGhfdW5pdHMgKGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSkpOwogIAogICAgZ2RiX2Fzc2VydCAoVkFMVUVfTFZBTCAo dmFsdWUpID09IGx2YWxfcmVnaXN0ZXIpOwogIAotQEAgLTY3Nyw3ICs2NzcsNyBAQCByZWFkX2Zy YW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUKK0BAIC04NTIsNyArODUyLDcgQEAgcmVh ZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlCiAgICB3aGlsZSAobGVuID4gMCkK ICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqcmVndmFsID0gZ2V0X2ZyYW1lX3JlZ2lzdGVy X3ZhbHVlIChmcmFtZSwgcmVnbnVtKTsKLS0gICAgICBpbnQgcmVnX2xlbiA9IFRZUEVfTEVOR1RI ICh2YWx1ZV90eXBlIChyZWd2YWwpKSAtIHJlZ19vZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCByZWdf bGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHJlZ3ZhbCkpIC0gcmVnX29mZnNldDsKKy0g ICAgICBpbnQgcmVnX2xlbiA9IHR5cGVfbGVuZ3RoX3VuaXRzICh2YWx1ZV90eXBlIChyZWd2YWwp KSAtIHJlZ19vZmZzZXQ7CisrICAgICAgTE9OR0VTVCByZWdfbGVuID0gdHlwZV9sZW5ndGhfdW5p dHMgKHZhbHVlX3R5cGUgKHJlZ3ZhbCkpIC0gcmVnX29mZnNldDsKICAKICAgICAgICAvKiBJZiB0 aGUgcmVnaXN0ZXIgbGVuZ3RoIGlzIGxhcmdlciB0aGFuIHRoZSBudW1iZXIgb2YgYnl0ZXMKICAg ICAgICAgICByZW1haW5pbmcgdG8gY29weSwgdGhlbiBvbmx5IGNvcHkgdGhlIGFwcHJvcHJpYXRl IGJ5dGVzLiAgKi8KLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mcmFtZS5jCitJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNS0wNy0wOSAxODoyNDozOC45OTIz NTYwODUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mcmFtZS5jCTIwMTUtMDct MDkgMTg6MjQ6NDIuMjM5MzgzNzgzICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvZnJhbWUuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIwODM1MTYyNyArMDEwMAorKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE4MzY0 ODUyICswMTAwCiBAQCAtMTI3Miw3ICsxMjcyLDcgQEAgZGVwcmVjYXRlZF9mcmFtZV9yZWdpc3Rl cl9yZWFkIChzdHJ1Y3QgZgogIAogIGludApAQCAtMjA0MiwxMSArMjAzNSwxMSBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZnJhbWUuYwogIAogICAgLyogQ29weSB0aGUgZGF0YS4g ICovCiAgICB3aGlsZSAobGVuID4gMCkKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9m cmFtZS5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNS0wNy0wOSAx ODoyNDozOC45OTIzNTYwODUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9mcmFt ZS5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjM5MzgzNzgzICswMjAwCi1AQCAtNTgzLDcgKzU4Myw3 IEBAIGV4dGVybiB2b2lkIHB1dF9mcmFtZV9yZWdpc3RlciAoc3RydWN0IGYKKy0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mcmFtZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA5MzUx NjM0ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmgJMjAxNS0xMS0w MiAyMToyMzoxMy4yMTgzNjQ4NTIgKzAxMDAKK0BAIC01ODUsNyArNTg1LDcgQEAgZXh0ZXJuIHZv aWQgcHV0X2ZyYW1lX3JlZ2lzdGVyIChzdHJ1Y3QgZgogICAgIGNvbnRlbnRzIGFyZSBvcHRpbWl6 ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAgICAgKlVOQVZBSUxBQkxF UCBhY2NvcmRpbmdseS4gICovCiAgZXh0ZXJuIGludCBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMg KHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTIwNTUsMTEgKzIwNDgs MTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2ZyYW1lLmgKICAJCQkJICAgICBn ZGJfYnl0ZSAqbXlhZGRyLAogIAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWls YWJsZXApOwogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnR5cGVzLmMKK0lu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTA3LTA5IDE4OjI0 OjM4Ljk5NTM1NjExMSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnR5cGVz LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDEzODM4MDAgKzAyMDAKLUBAIC0yNjk4LDcgKzI2OTgs NyBAQCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIx MjM1MTY1MyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjIwMzY0ODY2ICswMTAwCitAQCAtMjcxOSw3ICsyNzE5LDcgQEAg YWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAogICAgIGxlYXN0IGFzIGxv bmcgYXMgT0JKRklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjA2OCw3ICsyMDYxLDcg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dkYnR5cGVzLmMKICAJICAgY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewogICAgc3RydWN0IHR5cGUg KnR5cGU7Ci1AQCAtMjkzOCw4ICsyOTM4LDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3Qg dHlwZSAqYmFzZSwgcworQEAgLTI5NTksOCArMjk1OSw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAo c3RydWN0IHR5cGUgKmJhc2UsIHMKICAKICBzdGF0aWMgaW50CiAgaXNfdW5pcXVlX2FuY2VzdG9y X3dvcmtlciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB0eXBlICpkY2xhc3MsCkBAIC0yMDc5 LDcgKzIwNzIsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2RidHlwZXMuYwog IAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAgICBpbnQg aSwgY291bnQgPSAwOwotQEAgLTI5NTAsNyArMjk1MCw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93 b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yOTcxLDcgKzI5NzEsNyBAQCBpc191bmlxdWVfYW5j ZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JB U0VDTEFTU0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7CiAgICAgICAgc3Ry dWN0IHR5cGUgKml0ZXI7CkBAIC0yMDg4LDcgKzIwODEsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvZ2RidHlwZXMuYwogIAogICAgICAgIGl0ZXIgPSBjaGVja190eXBlZGVmIChU WVBFX0JBU0VDTEFTUyAoZGNsYXNzLCBpKSk7CiAgCi1AQCAtMjk5MSw3ICsyOTkxLDcgQEAgaXNf dW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTMwMTIsNyArMzAxMiw3 IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKICBpbnQKICBpc191 bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7 CkBAIC0yMDk3LDcgKzIwOTAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ2Ri dHlwZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKGJhc2UsIHZh bHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJp bnRpbmcgKHZhbCksCi1AQCAtNDE1Niw3ICs0MTU2LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNDIwMCw3ICs0MjAwLDcgQEAgcmVjdXJzaXZlX2R1bXBf dHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIHB1dHNf ZmlsdGVyZWQgKCJcbiIpOwpAQCAtMjEwNiw3ICsyMDk5LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2dkYnR5cGVzLmMKICAgIGlmIChUWVBFX09CSkZJTEVfT1dORUQgKHR5cGUp KQogICAgICB7CiAgICAgICAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAib2JqZmlsZSAiKTsK LUBAIC00Mjg0LDggKzQyODQsOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAq dHlwZSwKK0BAIC00MzI4LDggKzQzMjgsOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKICAJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfRU5VTVZBTCAodHlw ZSwgaWR4KSkpOwogICAgICAgIGVsc2UKICAJcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzICsgMiwK QEAgLTIxMTcsNyArMjExMCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJ0 eXBlcy5jCiAgCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlkeCkpOwogICAgICAgIGdk Yl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaWR4KSwgZ2RiX3N0 ZG91dCk7CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVzJyAoIiwKLUBAIC00NjY2 LDcgKzQ2NjYsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTQ2 NzEsNyArNDY3MSw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAg c3RydWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCkBAIC0y MTI2LDExICsyMTE5LDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJ0eXBl cy5jCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0 eXBlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9nZGJ0 eXBlcy5oCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk1MzU2MTExICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvZ2RidHlwZXMuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0MTM4MzgwMCAr MDIwMAotQEAgLTUwNCw3ICs1MDQsNyBAQCB1bmlvbiBmaWVsZF9sb2NhdGlvbgorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4y MTMzNTE2NjAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuaAky MDE1LTExLTAyIDIxOjIzOjEzLjIyMDM2NDg2NiArMDEwMAorQEAgLTUxMiw3ICs1MTIsNyBAQCB1 bmlvbiBmaWVsZF9sb2NhdGlvbgogICAgICAgZ2RiYXJjaF9iaXRzX2JpZ19lbmRpYW49MCB0YXJn ZXRzLCBpdCBpcyB0aGUgYml0IG9mZnNldCB0bwogICAgICAgdGhlIExTQi4gICovCiAgCkBAIC0y MTQwLDE1ICsyMTMzLDE1IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nZGJ0eXBl cy5oCiAgICAvKiAqIEVudW0gdmFsdWUuICAqLwogICAgTE9OR0VTVCBlbnVtdmFsOwogQEAgLTgy Miw3ICs4MjIsNyBAQCBzdHJ1Y3QgdHlwZQotICAgICAgSE9TVF9DSEFSX0JJVC4gIEhvd2V2ZXIs IHRoaXMgd291bGQgc3RpbGwgZmFpbCB0byBhZGRyZXNzCi0gICAgICBtYWNoaW5lcyBiYXNlZCBv biBhIHRlcm5hcnkgb3IgZGVjaW1hbCByZXByZXNlbnRhdGlvbi4gICovCi0gICAKLS0gIHVuc2ln bmVkIGxlbmd0aDsKKyAgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIGZ1bmN0aW9uIHNob3VsZCBiZSB1 c2VkIGluIG9yZGVyIHRvIGdldCB0aGUgbGVuZ3RoCisgICAgICBleHByZXNzZWQgaW4gdGFyZ2V0 IGFkZHJlc3NhYmxlIG1lbW9yeSB1bml0cy4gICovCisgCistICB1bnNpZ25lZCBpbnQgbGVuZ3Ro OwogKyAgVUxPTkdFU1QgbGVuZ3RoOwogIAogICAgLyogKiBDb3JlIHR5cGUsIHNoYXJlZCBieSBh IGdyb3VwIG9mIHF1YWxpZmllZCB0eXBlcy4gICovCiAgCi1AQCAtMTcwOCwxMSArMTcwOCwxMiBA QCBleHRlcm4gc3RydWN0IHR5cGUgKmdldF90YXJnZXRfdHlwZSAoc3RyCitAQCAtMTcxNywxMSAr MTcxNywxMiBAQCBleHRlcm4gdW5zaWduZWQgaW50IHR5cGVfbGVuZ3RoX3VuaXRzIChzCiAgCiAg LyogKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9iamZpbGUtb3duZWQgdHlwZXMuICAq LwogIApAQCAtMjE2MywxMCArMjE1NiwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvZ2RidHlwZXMuaAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9pbnRlZ2VyX3R5cGUgKHN0 cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAq YXJjaF9jaGFyYWN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsIGNoYXIgKik7 CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2Jvb2xlYW5fdHlwZSAoc3RydWN0IGdkYmFyY2gg KiwgaW50LCBpbnQsIGNoYXIgKik7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ251 LXYyLWFiaS5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12Mi1hYmkuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZ251LXYyLWFiaS5j CTIwMTUtMDctMDkgMTg6MjQ6MzguOTk2MzU2MTIwICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQxMzgzODAwICswMjAw CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjEzMzUxNjYwICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2dudS12Mi1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEwMAogQEAgLTgy LDcgKzgyLDcgQEAgZ251djJfaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFtZQogICAg IFRZUEUgaXMgdGhlIHR5cGUgaW4gd2hpY2ggRiBpcyBsb2NhdGVkLiAgKi8KICBzdGF0aWMgc3Ry dWN0IHZhbHVlICoKQEAgLTIyMTgsMTAgKzIyMTEsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL2dudS12Mi1hYmkuYwogIAkgICAgZ251djJfYmFzZWNsYXNzX29mZnNldCAodHlw ZSwgaSwgdmFsYWRkciwKICAJCQkJICAgIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgdmFsKTsK ICAKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nbnUtdjMtYWJpLmMKK0luZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0wNy0wOSAxODoyNDoz OC45OTYzNTYxMjAgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nbnUtdjMtYWJp LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDIzODM4MDggKzAyMDAKKy0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTQzNTE2 NjcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjIxMzY0ODcyICswMTAwCiBAQCAtMTA4LDcgKzEwOCw3IEBAIGJ1aWxk X2dkYl92dGFibGVfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmEKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dDsKQEAgLTIyMzksOCArMjIzMiw4IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9n bnUtdjMtYWJpLmMKICtzdGF0aWMgTE9OR0VTVAogIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNl dCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgewotICAgc3RydWN0IHR5cGUgKnZ0YWJsZV90 eXBlID0gZ2RiYXJjaF9kYXRhIChnZGJhcmNoLCB2dGFibGVfdHlwZV9nZGJhcmNoX2RhdGEpOwot QEAgLTI4NSw3ICsyODUsNyBAQCBnbnV2M19nZXRfdnRhYmxlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjCisgICBzdHJ1Y3QgdHlwZSAqdnRhYmxlX3R5cGUKK0BAIC0yODYsNyArMjg2LDcgQEAgZ251 djNfZ2V0X3Z0YWJsZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwogIAogIHN0YXRpYyBzdHJ1Y3Qg dHlwZSAqCiAgZ251djNfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtMjI0OSw3 ICsyMjQyLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2dudS12My1hYmkuYwog IHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwogICAgc3RydWN0IHR5cGUgKnZhbHVlc190 eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsdWUpKTsKLUBAIC00MTAsNyArNDEw LDcgQEAgZ251djNfZ2V0X3ZpcnR1YWxfZm4gKHN0cnVjdCBnZGJhcmNoICpnZAorQEAgLTQxMSw3 ICs0MTEsNyBAQCBnbnV2M19nZXRfdmlydHVhbF9mbiAoc3RydWN0IGdkYmFyY2ggKmdkCiAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCiAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVl ICoqdmFsdWVfcCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYs IGludCBqLApAQCAtMjI1OCw3ICsyMjUxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL2dudS12My1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKCp2YWx1ZV9wKSk7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaDsKLUBAIC00NDAsMTYgKzQ0MCwxNiBAQCBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1 Y3QgdmFsdWUgKip2CitAQCAtNDQxLDE2ICs0NDEsMTYgQEAgZ251djNfdmlydHVhbF9mbl9maWVs ZCAoc3RydWN0IHZhbHVlICoqdgogIAogICAgIC0xIGlzIHJldHVybmVkIG9uIGVycm9yLiAgKi8K ICAKQEAgLTIyNzgsNyArMjI3MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9n bnUtdjMtYWJpLmMKICAKICAgIC8qIERldGVybWluZSBhcmNoaXRlY3R1cmUuICAqLwogICAgZ2Ri YXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwotQEAgLTQ3Myw3ICs0NzMsNyBAQCBnbnV2M19i YXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwCitAQCAtNDc0LDcgKzQ3NCw3IEBAIGdu dXYzX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKICAgIGN1cl9iYXNlX29mZnNl dCA9IGN1cl9iYXNlX29mZnNldCArIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNldCAoZ2RiYXJj aCk7CiAgICBpZiAoKC0gY3VyX2Jhc2Vfb2Zmc2V0KSAlIFRZUEVfTEVOR1RIIChwdHJfdHlwZSkg IT0gMCkKICAgICAgZXJyb3IgKF8oIk1pc2FsaWduZWQgdmJhc2Ugb2Zmc2V0LiIpKTsKQEAgLTIy ODcsNyArMjI4MCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nbnUtdjMtYWJp LmMKICAKICAgIHZ0YWJsZSA9IGdudXYzX2dldF92dGFibGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJl c3MgKyBlbWJlZGRlZF9vZmZzZXQpOwogICAgZ2RiX2Fzc2VydCAodnRhYmxlICE9IE5VTEwpOwot QEAgLTUxNyw3ICs1MTcsNyBAQCBnbnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRv bWFpCitAQCAtNTE4LDcgKzUxOCw3IEBAIGdudXYzX2ZpbmRfbWV0aG9kX2luIChzdHJ1Y3QgdHlw ZSAqZG9tYWkKICAgICAgIHdlJ3JlIG91dCBvZiBsdWNrLiAgKi8KICAgIGZvciAoaSA9IDA7IGkg PCBUWVBFX05fQkFTRUNMQVNTRVMgKGRvbWFpbik7IGkrKykKICAgICAgewpAQCAtMjI5NiwxMCAr MjI4OSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ251LXYzLWFiaS5jCiAg ICAgICAgc3RydWN0IHR5cGUgKmJhc2V0eXBlOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFf VklSVFVBTCAoZG9tYWluLCBpKSkKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nby1s YW5nLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tbGFuZy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9nby1sYW5nLmgJMjAxNS0wNy0w OSAxODoyNDozOC45OTczNTYxMjggKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9n by1sYW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDIzODM4MDggKzAyMDAKKy0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nby1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTQz NTE2NjcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tbGFuZy5oCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjIxMzY0ODcyICswMTAwCiBAQCAtODUsNyArODUsNyBAQCBleHRlcm4g dm9pZCBnb19wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqCiAgLyogRGVmaW5lZCBpbiBnby12YWxw cmludC5jLiAgKi8KICAKQEAgLTIzMDksMTAgKzIzMDIsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL2dvLWxhbmcuaAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy45LjkwLjIw MTUwNzA5L2dkYi9nby12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2dvLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcv Z2RiL2dvLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDozOC45OTczNTYxMjggKzAyMDAKLSsr KyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nby12YWxwcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6 NDIuMjQyMzgzODA4ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ28t dmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNDM1MTY2NyArMDEwMAorKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9nby12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIy MzY0ODc5ICswMTAwCiBAQCAtMzcsNyArMzcsNyBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMzM0 LDEyICsyMzI3LDEyIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9nby12YWxwcmlu dC5jCiArCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLCBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCiAgewotICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7Ci1JbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvanYtbGFuZy5jCisgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlw ZSk7CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvanYtbGFuZy5jCTIwMTUtMDctMDkg MTg6MjQ6MzguOTk3MzU2MTI4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvanYt bGFuZy5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQzMzgzODE3ICswMjAwCi1AQCAtNDM2LDcgKzQz Niw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4y MTUzNTE2NzMgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5jCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICswMTAwCitAQCAtNDQwLDcgKzQ0MCw3IEBAIGph dmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGZvciAoaSA9IFRZUEVf Tl9CQVNFQ0xBU1NFUyAodHlwZSk7IGkgPCBuZmllbGRzOyBpKyspCiAgICAgIHsKICAgICAgICBp bnQgYWNjZmxhZ3M7CkBAIC0yMzQ4LDcgKzIzNDEsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvanYtbGFuZy5jCiAgCiAgICAgICAgaWYgKGZpZWxkcyA9PSBOVUxMKQogIAl7Ci1A QCAtODg2LDcgKzg4Niw3IEBAIGphdmFfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5 cGUKK0BAIC04OTAsNyArODkwLDcgQEAgamF2YV9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZQogIHN0YXRpYyB2b2lkCiAgamF2YV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCiAgCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5n LApAQCAtMjM1NywxMCArMjM1MCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv anYtbGFuZy5jCiAgCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gamF2YV9nZXRfZW5jb2Rp bmcgKHR5cGUpOwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2p2LWxhbmcuaAorSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjM4 Ljk5NzM1NjEyOCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2p2LWxhbmcuaAky MDE1LTA3LTA5IDE4OjI0OjQyLjI0MzM4MzgxNyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxNTM1MTY3MyArMDEw MAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgJMjAxNS0xMS0wMiAyMToy MzoxMy4yMjIzNjQ4NzkgKzAxMDAKIEBAIC00Myw4ICs0Myw4IEBAIHN0cnVjdCBidWlsdGluX2ph dmFfdHlwZQogIAogIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5cGUgKmJ1aWx0 aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKQEAgLTIzNzIsMTEgKzIzNjUsMTEgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2p2LWxhbmcuaAogIAkJCSAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Kik7CiAgCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvanYtdmFscHJpbnQuYworSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi12YWxwcmludC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9qdi12YWxwcmludC5jCTIwMTUtMDctMDkg MTg6MjQ6MzguOTk4MzU2MTM3ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvanYt dmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0MzM4MzgxNyArMDIwMAotQEAgLTI2NSw3 ICsyNjUsNyBAQCBqYXZhX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RyCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjExLjIxNTM1MTY3MyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi12 YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICswMTAwCitAQCAtMjY2LDcg KzI2Niw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHIKICAKICBz dGF0aWMgdm9pZAogIGphdmFfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yMzg1LDcgKzIzNzgsNyBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvanYtdmFscHJpbnQuYwogIAkJCSBDT1JFX0FERFIgYWRkcmVz cywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQ1Myw3ICs0NTMsNyBAQCBqYXZhX3ByaW50X3ZhbHVl X2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5CitAQCAtNDU0LDcgKzQ1NCw3IEBAIGphdmFfcHJpbnRf dmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHkKICAKICB2b2lkCiAgamF2YV92YWxfcHJpbnQg KHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTIzOTQsMTEg KzIzODcsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2p2LXZhbHByaW50LmMK ICAJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9sYW5ndWFnZS5jCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0wNy0wOSAxODoyNDozOC45OTgz NTYxMzcgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9sYW5ndWFnZS5jCTIwMTUt MDctMDkgMTg6MjQ6NDIuMjQ0MzgzODI1ICswMjAwCi1AQCAtNzIwLDcgKzcyMCw3IEBAIHVua19s YW5nX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICoKKy0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE2MzUxNjgwICsw MTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0xMS0wMiAy MToyMzoxMy4yMjMzNjQ4ODUgKzAxMDAKK0BAIC03MzksNyArNzM5LDcgQEAgdW5rX2xhbmdfcHJp bnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgogIAogIHN0YXRpYyB2b2lkCiAgdW5rX2xhbmdf cHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApAQCAt MjQwNyw3ICsyNDAwLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xhbmd1YWdl LmMKICAJCSAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNzM5 LDcgKzczOSw3IEBAIHVua19sYW5nX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAg LTc1OCw3ICs3NTgsNyBAQCB1bmtfbGFuZ19wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwK ICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjQxNiwxMCArMjQwOSwxMCBAQCBJbmRleDog Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbGFuZ3VhZ2UuYwogIAkJICAgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAog IAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xhbmd1YWdlLmgKK0luZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3 MDkub3JpZy9nZGIvbGFuZ3VhZ2UuaAkyMDE1LTA3LTA5IDE4OjI0OjM4Ljk5ODM1NjEzNyArMDIw MAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xhbmd1YWdlLmgJMjAxNS0wNy0wOSAxODoy NDo0Mi4yNDQzODM4MjUgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9s YW5ndWFnZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE2MzUxNjgwICswMTAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjMzNjQ4 ODUgKzAxMDAKIEBAIC0xODksNyArMTg5LDcgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm4KICAJCQkg IHN0cnVjdCB1aV9maWxlICogc3RyZWFtKTsKICAKQEAgLTI0MzgsMTAgKzI0MzEsMTAgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2xhbmd1YWdlLmgKICAJCQkgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWws CiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbTItbGFuZy5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL20yLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3 MDkub3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk5MzU2MTQ1ICswMjAw Ci0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbTItbGFuZy5jCTIwMTUtMDctMDkgMTg6MjQ6 NDIuMjQ0MzgzODI1ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTIt bGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE3MzUxNjg2ICswMTAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSAr MDEwMAogQEAgLTEwNCwxMCArMTA0LDEwIEBAIG0yX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0 eXBlICp0eXBlLAogIAogIHN0YXRpYyB2b2lkCkBAIC0yNDc2LDEwICsyNDY5LDEwIEBAIEluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAg CSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJ ICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi1sYW5n LmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9tMi1sYW5nLmgJMjAxNS0wNy0wOSAx ODoyNDozOC45OTkzNTYxNDUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi1s YW5nLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDQzODM4MjUgKzAyMDAKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9tMi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTczNTE2 ODYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5oCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjIzMzY0ODg1ICswMTAwCiBAQCAtMzQsNyArMzQsNyBAQCBleHRlcm4gdm9p ZCBtMl9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwCiAgZXh0ZXJuIGludCBtMl9pc19sb25nX3Nl dCAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4dGVybiBpbnQgbTJfaXNfdW5ib3VuZGVkX2FycmF5 IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CkBAIC0yNDg5LDEwICsyNDgyLDEwIEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9tMi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGlu dCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbTItdHlw ZXByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdHlwZXByaW50LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL20yLXR5cGVwcmlu dC5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk5MzU2MTQ1ICswMjAwCi0rKysgZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDUzODM4MzQg KzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tMi10eXBlcHJpbnQuYwky MDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9tMi10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5MiArMDEw MAogQEAgLTIzNCw5ICsyMzQsMTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkgKHN0cnVjdCB0eXBl ICp0eXBlLAogIAkgIG0yX3ByaW50X2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFICh0eXBlKSwgc3Ry ZWFtLCBzaG93LCAtMSwgMSk7CiAgCX0KQEAgLTI1MDksMTAgKzI1MDIsMTAgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL20yLXR5cGVwcmludC5jCiAgICAgIH0KICAgIGZwcmludGZf ZmlsdGVyZWQgKHN0cmVhbSwgIl0gT0YgIik7CiAgICBtMl9wcmludF90eXBlIChUWVBFX1RBUkdF VF9UWVBFICh0eXBlKSwgIiIsIHN0cmVhbSwgc2hvdywgbGV2ZWwsIGZsYWdzKTsKLUluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIw MTUwNzA5Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDozOC45OTkzNTYx NDUgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9tMi12YWxwcmludC5jCTIwMTUt MDctMDkgMTg6MjQ6NDIuMjQ1MzgzODM0ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiArMDEw MAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi12YWxwcmludC5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCiBAQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMgaW50IHBy aW50X3VucGFja2VkX3BvaW50ZXIgKHN0cnVjCiAgCQkJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0pOwogIHN0YXRpYyB2b2lkCkBAIC0yNTc4LDEwICsyNTcxLDEwIEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi9tMi12YWxwcmludC5jCiAgCiAgCQkgIC8qIExvb2sgZm9yIGEgTlVM TCBjaGFyLiAgKi8KICAJCSAgZm9yICh0ZW1wX2xlbiA9IDA7Ci1JbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvbWVtcmFuZ2UuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9t ZW1yYW5nZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9t ZW1yYW5nZS5jCTIwMTUtMDctMDkgMTg6MjQ6MzguOTk5MzU2MTQ1ICswMjAwCi0rKysgZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvbWVtcmFuZ2UuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0NTM4Mzgz NCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL21lbXJhbmdlLmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yMTgzNTE2OTMgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbWVtcmFuZ2UuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5MiArMDEwMAogQEAg LTIxLDggKzIxLDggQEAKICAjaW5jbHVkZSAibWVtcmFuZ2UuaCIKICAKQEAgLTI1OTMsMTAgKzI1 ODYsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL21lbXJhbmdlLmMKICB7CiAg ICBVTE9OR0VTVCBoLCBsOwogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL21lbXJh bmdlLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvbWVtcmFuZ2UuaAkyMDE1LTA3 LTA5IDE4OjI0OjM5LjAwMDM1NjE1NCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L21lbXJhbmdlLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDUzODM4MzQgKzAyMDAKKy0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tZW1yYW5nZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjE4MzUxNjkzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmgJ MjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4OTIgKzAxMDAKIEBAIC0zMCw3ICszMCw3IEBAIHN0 cnVjdCBtZW1fcmFuZ2UKICAgIENPUkVfQUREUiBzdGFydDsKICAKQEAgLTI2MTcsMTEgKzI2MTAs MTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL21lbXJhbmdlLmgKICAKICAvKiBS ZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4gICovCiAgCi1JbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvbWlwcy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1 MDcwOS5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDAwMzU2 MTU0ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvbWlwcy1saW51eC1uYXQuYwky MDE1LTA3LTA5IDE4OjI0OjQyLjI0NTM4MzgzNCArMDIwMAotQEAgLTU4Niw3ICs1ODYsNyBAQCBt aXBzX2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1Y3QKKy0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE4 MzUxNjkzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21pcHMtbGludXgtbmF0 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjUzNjQ4OTkgKzAxMDAKK0BAIC01ODcsNyArNTg3LDcg QEAgbWlwc19saW51eF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0CiAgCiAgc3RhdGljIGlu dAogIG1pcHNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0 X29wcyAqc2VsZiwKQEAgLTI2MzAsMTAgKzI2MjMsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL21pcHMtbGludXgtbmF0LmMKICB7CiAgICBzdHJ1Y3QgcHRfd2F0Y2hfcmVncyBk dW1teV9yZWdzOwogICAgaW50IGk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvb3Bl bmNsLWxhbmcuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9vcGVuY2wtbGFu Zy5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDAwMzU2MTU0ICswMjAwCi0rKysgZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0NjM4Mzg0MyAr MDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yMTkzNTE2OTkgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEwMAog QEAgLTc4LDExICs3OCwxMSBAQCBidWlsdGluX29wZW5jbF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKQEAgLTI3MTAsMTAgKzI3MDMsMTAgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL29wZW5jbC1sYW5nLmMKICAKICAgICAgICBpZiAo IXZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGMtPnZhbCwKICAJCQkJCSBjLT5pbmRpY2Vz W2ldICogZWxzaXplICsgY29tcF9vZmZzZXQsCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvcC1sYW5nLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTUt MDctMDkgMTg6MjQ6MzkuMDAxMzU2MTYyICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvcC1sYW5nLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDYzODM4NDMgKzAyMDAKKy0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIx OTM1MTY5OSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEwMAogQEAgLTk1LDggKzk1LDggQEAgcGFzY2Fs X21haW5fbmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFSX0JJ VCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhhcHBl biBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwpAQCAtMjc2MSwxMCArMjc1NCwxMCBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcC1sYW5nLmMKICAJICBpID0gcmVwMSAt IDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9s ZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9w LWxhbmcuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvcC1sYW5nLmgJMjAxNS0wNy0w OSAxODoyNDozOS4wMDEzNTYxNjIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9w LWxhbmcuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjI0NjM4Mzg0MyArMDIwMAorLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE5MzUx Njk5ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjI2MzY0OTA1ICswMTAwCiBAQCAtMzYsNyArMzYsNyBAQCBleHRlcm4gdm9p ZCBwYXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5CiAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50 X3R5cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJCQkJICBzdHJ1Y3Qg dWlfZmlsZSAqKTsKQEAgLTI3OTksMTAgKzI3OTIsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL3AtbGFuZy5oCiAgCQkJCQkgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxl ICosCiAgCQkJCQkgICAgICBpbnQsCiAgCQkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwK LUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9wLXZhbHByaW50LmMKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OS45MC4yMDE1MDcwOS5vcmlnL2dkYi9wLXZhbHByaW50LmMJMjAxNS0wNy0wOSAxODoyNDozOS4w MDEzNTYxNjIgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9wLXZhbHByaW50LmMJ MjAxNS0wNy0wOSAxODoyNDo0Mi4yNDczODM4NTEgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9wLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjAzNTE3MDYg KzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmludC5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjI2MzY0OTA1ICswMTAwCiBAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCiAgCiAgdm9pZApAQCAtMjg2NCwxMCArMjg1 NywxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcC12YWxwcmludC5jCiAgICAg ICAgaW50IHNraXAgPSAwOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlw ZSwgaSkpCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHBjLWxpbnV4LW5hdC5jCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUt MDctMDkgMTg6MjQ6MzkuMDAyMzU2MTcxICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjQ3MzgzODUxICswMjAwCist LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3BwYy1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNzM2NDkxMiArMDEwMAogQEAg LTE0NDksNyArMTQ0OSw3IEBAIHBwY19saW51eF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVj dAogIAogIHN0YXRpYyBpbnQKQEAgLTI4NzcsMTAgKzI4NzAsMTAgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1i eXRlIHF1YW50aXRpZXMuICAqLwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv cHJpbnRjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIv cHJpbnRjbWQuYwkyMDE1LTA3LTA5IDE4OjI0OjM5LjAwMzM1NjE3OSArMDIwMAotKysrIGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL3ByaW50Y21kLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDgzODM4 NjAgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wcmludGNtZC5jCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3ByaW50Y21kLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjczNjQ5MTIgKzAxMDAKIEBA IC0yNzQsNyArMjc0LDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50 CiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CkBAIC0yODkwLDcgKzI4ODMsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHJpbnRjbWQuYwogIAogICAgaWYgKFZBTFVF X0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIG5leHRfYWRkcmVzcyA9IHZhbHVlX2Fk ZHJlc3MgKHZhbCkgKyBsZW47Ci1AQCAtMzUyLDcgKzM1Miw3IEBAIHByaW50X3NjYWxhcl9mb3Jt YXR0ZWQgKGNvbnN0IHZvaWQgKnZhbGEKK0BAIC0zNTIsNyArMzUyLDcgQEAgcHJpbnRfc2NhbGFy X2Zvcm1hdHRlZCAoY29uc3QgZ2RiX2J5dGUgKgogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CiAgICBMT05HRVNUIHZhbF9sb25nID0gMDsKQEAg LTI4OTksMTEgKzI4OTIsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ByaW50 Y21kLmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVy IChnZGJhcmNoKTsKICAKICAgIC8qIFN0cmluZyBwcmludGluZyBzaG91bGQgZ28gdGhyb3VnaCB2 YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZC4gICovCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvcHJvY2ZzLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJvY2ZzLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIw MTUtMDctMDkgMTg6MjQ6MzkuMDA0MzU2MTg4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvcHJvY2ZzLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNDkzODM4NjggKzAyMDAKLUBAIC00 ODU5LDcgKzQ4NTksNyBAQCBwcm9jZnNfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNS0xMS0wMiAy MToyMzoxMS4yMjMzNTE3MjYgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJv Y2ZzLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjgzNjQ5MTggKzAxMDAKK0BAIC00ODYzLDcgKzQ4 NjMsNyBAQCBwcm9jZnNfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfCiAgCiAgc3Rh dGljIGludAogIHByb2Nmc19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLApAQCAtMjkxMiwxMCArMjkwNSwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvcHJvY2ZzLmMKICB7CiAgICAvKiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkg b24gU29sYXJpcyAyLjYgYW5kIHVwIHNheXMgdGhhdCB0aGUKICAgICAgIHN5c3RlbSBjYW4gc3Vw cG9ydCAidGhvdXNhbmRzIiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0IGdpdmVzCi1JbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3B5dGhvbi9weS1wcmV0dHlw cmludC5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA0MzU2MTg4ICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0 Mi4yNDkzODM4NjggKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9weXRo b24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyMzM1MTcyNiArMDEwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIyOTM2NDkyNSArMDEwMAogQEAgLTcwMyw3ICs3MDMsNyBAQCBwcmlu dF9jaGlsZHJlbiAoUHlPYmplY3QgKnByaW50ZXIsIGNvbnN0CiAgZW51bSBleHRfbGFuZ19yYwog IGdkYnB5X2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9s YW5ndWFnZV9kZWZuICpleHRsYW5nLApAQCAtMjkyNSwxMSArMjkxOCwxMSBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKICAJCQkJc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAogIAkJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUlu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIw MTUwNzA5Lm9yaWcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0wNy0wOSAxODoyNDozOS4wMDUzNTYxOTYg KzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9yZWdjYWNoZS5jCTIwMTUtMDctMDkg MTg6MjQ6NDIuMjUwMzgzODc3ICswMjAwCi1AQCAtOTQ5LDcgKzk0OSw3IEBAIHR5cGVkZWYgdm9p ZCAocmVnY2FjaGVfd3JpdGVfZnR5cGUpIChzdHIKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9yZWdjYWNoZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI0MzUxNzMyICswMTAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0xMS0wMiAyMToyMzox My4yMjkzNjQ5MjUgKzAxMDAKK0BAIC05NTgsNyArOTU4LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdj YWNoZV93cml0ZV9mdHlwZSkgKHN0cgogIAogIHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0YXR1cwog IHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251 bSwKQEAgLTI5MzgsNyArMjkzMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9y ZWdjYWNoZS5jCiAgCQkgICAgZW51bSByZWdpc3Rlcl9zdGF0dXMgKCpyZWFkKSAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwKICAJCQkJCQkgIGludCByZWdudW0sCiAgCQkJCQkJICBnZGJfYnl0 ZSAqYnVmKSwKLUBAIC05OTMsNyArOTkzLDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0IChzdHJ1Y3Qg cmVnY2FjaGUgKnJlZworQEAgLTEwMDIsNyArMTAwMiw3IEBAIHJlZ2NhY2hlX3hmZXJfcGFydCAo c3RydWN0IHJlZ2NhY2hlICpyZWcKICAKICBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hl X3Jhd19yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBA IC0yOTQ3LDcgKzI5NDAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcmVnY2Fj aGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVz Y3I7CiAgCi1AQCAtMTAwNCw3ICsxMDA0LDcgQEAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3Ry dWN0IHJlZ2NhY2hlCitAQCAtMTAxMyw3ICsxMDEzLDcgQEAgcmVnY2FjaGVfcmF3X3JlYWRfcGFy dCAoc3RydWN0IHJlZ2NhY2hlCiAgCiAgdm9pZAogIHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0IChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk1Niw3ICsyOTQ5LDcg QEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1 Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEwMTUs NyArMTAxNSw3IEBAIHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BA IC0xMDI0LDcgKzEwMjQsNyBAQCByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAoc3RydWN0IHJlZ2Nh Y2hlCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0 IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk2NSw3ICsyOTU4 LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBz dHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEw MjYsNyArMTAyNiw3IEBAIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWMK K0BAIC0xMDM1LDcgKzEwMzUsNyBAQCByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3Qg cmVnY2FjCiAgCiAgdm9pZAogIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0IChzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk3NCwxMCArMjk2NywxMCBAQCBJbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdj YWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1JbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvcmVnY2FjaGUuaAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9yZWdjYWNoZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dk Yi9yZWdjYWNoZS5oCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA1MzU2MTk2ICswMjAwCi0rKysgZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvcmVnY2FjaGUuaAkyMDE1LTA3LTA5IDE4OjI0OjQyLjI1MDM4 Mzg3NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3JlZ2NhY2hlLmgJ MjAxNS0xMS0wMiAyMToyMzoxMS4yMjQzNTE3MzIgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvcmVnY2FjaGUuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIzMDM2NDkzMSArMDEwMAog QEAgLTkyLDkgKzkyLDkgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfcmF3X3dyaXRlX3Vuc2lnbmVk CiAgCiAgZXh0ZXJuIGVudW0gcmVnaXN0ZXJfc3RhdHVzCkBAIC0zMDA1LDExICsyOTk4LDExIEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9yZWdjYWNoZS5oCiAgCiAgLyogU3BlY2lh bCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv cmVtb3RlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3Jl bW90ZS5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDA3MzU2MjEzICswMjAwCi0rKysgZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvcmVtb3RlLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNTMzODM5MDIgKzAy MDAKLUBAIC04Nzk2LDcgKzg3OTYsNyBAQCBpbnQgcmVtb3RlX2h3X2JyZWFrcG9pbnRfbGltaXQg PSAtMTsKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9yZW1vdGUuYwkyMDE1LTEx LTAyIDIxOjIzOjExLjIyNzM1MTc1MiArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9yZW1vdGUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzMjM2NDk0NSArMDEwMAorQEAgLTkxNTcs NyArOTE1Nyw3IEBAIGludCByZW1vdGVfaHdfYnJlYWtwb2ludF9saW1pdCA9IC0xOwogIAogIHN0 YXRpYyBpbnQKICByZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFy Z2V0X29wcyAqc2VsZiwKQEAgLTMwMTgsMTEgKzMwMTEsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90ZV9od193YXRjaHBvaW50X2xl bmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi9zcHUtbXVsdGlhcmNoLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv c3B1LW11bHRpYXJjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmln L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wNy0wOSAxODoyNDozOS4wMDgzNTYyMjIgKzAyMDAK LSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wNy0wOSAx ODoyNDo0Mi4yNTMzODM5MDIgKzAyMDAKLUBAIC0xMTcsNyArMTE3LDcgQEAgc3B1X3RocmVhZF9h cmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyODM1MTc1OSArMDEw MAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMzMzNjQ5NTEgKzAxMDAKK0BAIC0xMjcsNyArMTI3LDcgQEAgc3B1X3RocmVh ZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbwogIC8qIE92ZXJyaWRlIHRoZSB0b19yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCiAgc3RhdGljIGludAogIHNwdV9y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAt MzAzMSwxMCArMzAyNCwxMCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc3B1LW11 bHRpYXJjaC5jCiAgewogICAgc3RydWN0IHRhcmdldF9vcHMgKm9wc19iZW5lYXRoID0gZmluZF90 YXJnZXRfYmVuZWF0aCAoc2VsZik7CiAgCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv c3RhY2suYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9zdGFjay5jCTIwMTUtMDctMDkg MTg6MjQ6MzkuMDA5MzU2MjMwICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc3Rh Y2suYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI1NDM4MzkxMSArMDIwMAorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjkzNTE3NjUg KzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwkyMDE1LTExLTAyIDIx OjIzOjEzLjIzMzM2NDk1MSArMDEwMAogQEAgLTE3Niw3ICsxNzYsNyBAQCBwcmludF9zdGFja19m cmFtZSAoc3RydWN0IGZyYW1lX2luZm8gKmZyCiAgICAgYXJndW1lbnQgKG5vdCBqdXN0IHRoZSBm aXJzdCBuYW1lbGVzcyBhcmd1bWVudCkuICAqLwogIApAQCAtMzA3MywxMCArMzA2NiwxMCBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc3RhY2suYwogIAogICAgICAgIGlmIChoaWdo ZXN0X29mZnNldCA9PSAtMSkKICAJc3RhcnQgPSBnZGJhcmNoX2ZyYW1lX2FyZ3Nfc2tpcCAoZ2V0 X2ZyYW1lX2FyY2ggKGZyYW1lKSk7Ci1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvc3lt bWlzYy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N5bW1pc2MuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTUtMDct MDkgMTg6MjQ6MzkuMDA5MzU2MjMwICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv c3ltbWlzYy5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjU0MzgzOTExICswMjAwCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI5 MzUxNzY1ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N5bW1pc2MuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIzNDM2NDk1OCArMDEwMAogQEAgLTUzNCwxMSArNTM0LDExIEBAIHBy aW50X3N5bWJvbCAodm9pZCAqYXJncykKICAKICAJY2FzZSBMT0NfQ09OU1RfQllURVM6CkBAIC0z MDkyLDEwICszMDg1LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zeW1taXNj LmMKICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7IGkrKykKICAJICAg ICAgZnByaW50Zl9maWx0ZXJlZCAob3V0ZmlsZSwgIiAlMDJ4IiwKICAJCQkJKHVuc2lnbmVkKSBT WU1CT0xfVkFMVUVfQllURVMgKHN5bWJvbClbaV0pOwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL3RhcmdldC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90YXJnZXQuYwky MDE1LTA3LTA5IDE4OjI0OjM5LjAxMDM1NjIzOSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL3RhcmdldC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjU1MzgzOTE5ICswMjAwCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMzAzNTE3NzIgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmMJ MjAxNS0xMS0wMiAyMToyMzoxMy4yMzQzNjQ5NTggKzAxMDAKIEBAIC01NCw3ICs1NCw3IEBAIHN0 YXRpYyBpbnQgZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGkKICAJCQkJCQkgQ09SRV9BRERS LCBDT1JFX0FERFIsIGludCk7CiAgCkBAIC0zMTA1LDcgKzMwOTgsNyBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMgdm9pZCBkZWZhdWx0X3JjbWQg KHN0cnVjdCB0YXJnZXRfb3BzICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKik7CiAg Ci1AQCAtMzA4NSw3ICszMDg1LDcgQEAgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9jIChzdHJ1 Y3QgaW5mZQorQEAgLTMxMzIsNyArMzEzMiw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxv YyAoc3RydWN0IGluZmUKICAKICBzdGF0aWMgaW50CiAgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3 X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzExNCwxMSArMzEwNywx MSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdGFyZ2V0LmMKICB7CiAgICByZXR1 cm4gKGxlbiA8PSBnZGJhcmNoX3B0cl9iaXQgKHRhcmdldF9nZGJhcmNoICgpKSAvIFRBUkdFVF9D SEFSX0JJVCk7CiAgfQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RhcmdldC5oCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTA3LTA5IDE4OjI0OjM5 LjAxMDM1NjIzOSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RhcmdldC5oCTIw MTUtMDctMDkgMTg6MjQ6NDIuMjU2MzgzOTI4ICswMjAwCi1AQCAtNTQ3LDcgKzU0Nyw3IEBAIHN0 cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdGFyZ2V0 LmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzEzNTE3NzkgKzAxMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGFyZ2V0LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzUzNjQ5NjQgKzAxMDAK K0BAIC01NDksNyArNTQ5LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAgLyogRG9jdW1lbnRh dGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZwog ICAgICAgICB0YXJnZXRfKiBtYWNyby4gICovCiAgICAgIGludCAoKnRvX3JlZ2lvbl9va19mb3Jf aHdfd2F0Y2hwb2ludCkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMTI3LDExICszMTIwLDEx IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90YXJnZXQuaAogICAgICAgIFRBUkdF VF9ERUZBVUxUX0ZVTkMgKGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KTsKICAK ICAgICAgaW50ICgqdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uKSAoc3RydWN0IHRh cmdldF9vcHMgKiwKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90cmFjZXBvaW50LmMK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNS0wNy0w OSAxODoyNDozOS4wMTIzNTYyNTYgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90 cmFjZXBvaW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNTczODM5MzYgKzAyMDAKLUBAIC05Mjgs MTMgKzkyOCwxMyBAQCBhZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCist LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjMzMzUxNzkyICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Ry YWNlcG9pbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzNjM2NDk3MSArMDEwMAorQEAgLTkzMCwx MyArOTMwLDEzIEBAIGFkZF9yZWdpc3RlciAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqY28KICBz dGF0aWMgdm9pZAogIGFkZF9tZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqbWVtcmFu Z2VzLCAKICAJICAgICAgaW50IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2UsCkBAIC0zMTQ3LDcg KzMxNDAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdHJhY2Vwb2ludC5jCiAg ICAgIH0KICAKICAgIC8qIHR5cGU6IG1lbXJhbmdlX2Fic29sdXRlID09IG1lbW9yeSwgb3RoZXIg biA9PSBiYXNlcmVnICovCi1AQCAtOTY0LDcgKzk2NCw3IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1 Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05NjYsNyArOTY2LDcgQEAgY29sbGVjdF9zeW1ib2wg KHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgogIAkJQ09SRV9BRERSIHNjb3BlLAogIAkJaW50IHRy YWNlX3N0cmluZykKICB7CkBAIC0zMTU2LDcgKzMxNDksNyBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvdHJhY2Vwb2ludC5jCiAgICB1bnNpZ25lZCBpbnQgcmVnOwogICAgYmZkX3Np Z25lZF92bWEgb2Zmc2V0OwogICAgaW50IHRyZWF0X2FzX2V4cHIgPSAwOwotQEAgLTk4OCw4ICs5 ODgsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCitAQCAtOTkw LDggKzk5MCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKICAJ ICBjaGFyIHRtcFs0MF07CiAgCiAgCSAgc3ByaW50Zl92bWEgKHRtcCwgb2Zmc2V0KTsKQEAgLTMx NjcsNyArMzE2MCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90cmFjZXBvaW50 LmMKICAJCQkgICB0bXAgLyogYWRkcmVzcyAqLyk7CiAgCX0KICAgICAgICAvKiBBIHN0cnVjdCBt YXkgYmUgYSBDKysgY2xhc3Mgd2l0aCBzdGF0aWMgZmllbGRzLCBnbyB0byBnZW5lcmFsCi1AQCAt MTAyMSw4ICsxMDIxLDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3Qg KgorQEAgLTEwMjMsOCArMTAyMyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlv bl9saXN0ICoKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5 bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzE3OCw3ICszMTcxLDcgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RyYWNlcG9pbnQuYwogIAkgIHByaW50Zl92 bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAl ZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwMzMsOCArMTAzMyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChz dHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDM1LDggKzEwMzUsOCBAQCBjb2xsZWN0X3N5 bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAgICAgICAgb2Zmc2V0ID0gMDsKICAgICAg ICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMTg5LDcgKzMxODIsNyBAQCBJbmRleDogZ2Ri LTcuOS45MC4yMDE1MDcwOS9nZGIvdHJhY2Vwb2ludC5jCiAgCSAgcHJpbnRmX3ZtYSAob2Zmc2V0 KTsKICAJICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSByZWcgJWRcbiIsIHJlZyk7CiAgCX0KLUBA IC0xMDQ1LDggKzEwNDUsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlz dCAqCitAQCAtMTA0Nyw4ICsxMDQ3LDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0 aW9uX2xpc3QgKgogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAo c3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMjAwLDcgKzMxOTMsNyBA QCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdHJhY2Vwb2ludC5jCiAgCSAgcHJpbnRm X3ZtYSAob2Zmc2V0KTsKICAJICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSBmcmFtZSBwdHIgcmVn ICVkXG4iLCByZWcpOwogIAl9Ci1AQCAtMjcwOSw3ICsyNzA5LDggQEAgc2NvcGVfaW5mbyAoY2hh ciAqYXJncywgaW50IGZyb21fdHR5KQorQEAgLTI3MDgsNyArMjcwOCw4IEBAIHNjb3BlX2luZm8g KGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CiAgICBj aGFyICpzYXZlX2FyZ3MgPSBhcmdzOwogICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7CkBA IC0zMjA5LDggKzMyMDIsOCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdHJhY2Vw b2ludC5jCiArICBMT05HRVNUIGo7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKICAgIGlu dCByZWdubzsKLSAKLUBAIC0yODQ1LDggKzI4NDYsMTEgQEAgc2NvcGVfaW5mbyAoY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQorICAgc3RydWN0IGV2ZW50X2xvY2F0aW9uICpsb2NhdGlvbjsKK0BA IC0yODUyLDggKzI4NTMsMTEgQEAgc2NvcGVfaW5mbyAoY2hhciAqYXJncywgaW50IGZyb21fdHR5 KQogIAkJfQogIAkgICAgfQogIAkgIGlmIChTWU1CT0xfVFlQRSAoc3ltKSkKQEAgLTMyMjQsMTEg KzMyMTcsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RyYWNlcG9pbnQuYwog IAl9CiAgICAgICAgaWYgKEJMT0NLX0ZVTkNUSU9OIChibG9jaykpCiAgCWJyZWFrOwotSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3R5cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1 MDcwOS5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTA3LTA5IDE4OjI0OjM5LjAxMzM1NjI2NCAr MDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDctMDkg MTg6MjQ6NDIuMjU3MzgzOTM2ICswMjAwCi1AQCAtNDA0LDcgKzQwNCw3IEBAIHdoYXRpc19leHAg KGNoYXIgKmV4cCwgaW50IHNob3cpCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv dHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzQzNTE3OTggKzAxMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzYz NjQ5NzEgKzAxMDAKK0BAIC00MDYsNyArNDA2LDcgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBp bnQgc2hvdykKICAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUgPSBOVUxMOwogICAgc3RydWN0IHR5 cGUgKnR5cGU7CiAgICBpbnQgZnVsbCA9IDA7CkBAIC0zMjM3LDM3ICszMjMwLDI3IEBAIEluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi90eXBlcHJpbnQuYwogICAgaW50IHVzaW5nX2VuYyA9 IDA7CiAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogICAgc3RydWN0IHR5cGVf cHJpbnRfb3B0aW9ucyBmbGFncyA9IGRlZmF1bHRfcHR5cGVfZmxhZ3M7Ci1JbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvdmFsYXJpdGguYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmln L2dkYi92YWxhcml0aC5jCTIwMTUtMDctMDkgMTg6MjQ6MzkuMDE0MzU2MjczICswMjAwCi0rKysg Z2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsYXJpdGguYwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI1 NzM4MzkzNiArMDIwMAotQEAgLTE4OCwxMiArMTg4LDEzIEBAIHZhbHVlX3N1YnNjcmlwdCAoc3Ry dWN0IHZhbHVlICphcnJheSwgTE8KKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92 YWxhcml0aC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjM0MzUxNzk4ICswMTAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMiAyMToyMzo1OS44MjI2NzE0 OTYgKzAxMDAKK0BAIC0xODgsMTIgKzE4OCwxMiBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2 YWx1ZSAqYXJyYXksIExPCiAgICAgdG8gZG91YmxlcywgYnV0IG5vIGxvbmdlciBkb2VzLiAgKi8K ICAKICBzdHJ1Y3QgdmFsdWUgKgogLXZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZh bHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxvd2VyYm91bmQpCi0rdmFsdWVfc3Vic2Ny aXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05HRVNUIGluZGV4LAotKwkJCSAg TE9OR0VTVCBsb3dlcmJvdW5kKQorK3ZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZh bHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgTE9OR0VTVCBsb3dlcmJvdW5kKQogIHsKICAgIHN0 cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkp KTsKICAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VU X1RZUEUgKGFycmF5X3R5cGUpKTsKLS0gIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IFRZUEVfTEVO R1RIIChlbHRfdHlwZSk7CistICB1bnNpZ25lZCBpbnQgZWx0X3NpemUgPSB0eXBlX2xlbmd0aF91 bml0cyAoZWx0X3R5cGUpOwogLSAgdW5zaWduZWQgaW50IGVsdF9vZmZzOwotKyAgVUxPTkdFU1Qg ZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0X3R5cGUpOworKyAgVUxPTkdFU1QgZWx0X3NpemUg PSB0eXBlX2xlbmd0aF91bml0cyAoZWx0X3R5cGUpOwogKyAgVUxPTkdFU1QgZWx0X29mZnM7CiAg ICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBFX0lOREVYX1RZUEUg KGFycmF5X3R5cGUpKTsKICAgIHN0cnVjdCB2YWx1ZSAqdjsKICAKLUBAIC0yMDIsNyArMjAzLDcg QEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgotICAgaWYgKFRZUEVf Tk9UX0FMTE9DQVRFRCAoYXJyYXlfdHlwZSkpCi0gICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3Rv ciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIpKTsKLSAKLS0gIGVsdF9vZmZzID0gbG9u Z2VzdF90b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7Ci0rICBlbHRfb2ZmcyA9IGluZGV4IC0g bG93ZXJib3VuZDsKLSAKLSAgIGlmIChlbHRfc3RyaWRlID4gMCkKLSAgICAgZWx0X29mZnMgKj0g ZWx0X3N0cmlkZTsKLUBAIC02NzgsNyArNjc5LDcgQEAgdmFsdWVfY29uY2F0IChzdHJ1Y3QgdmFs dWUgKmFyZzEsIHN0cnVjdAorQEAgLTY3OCw3ICs2NzgsNyBAQCB2YWx1ZV9jb25jYXQgKHN0cnVj dCB2YWx1ZSAqYXJnMSwgc3RydWN0CiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMTsKICAgIHN0cnVj dCB2YWx1ZSAqaW52YWwyOwogICAgc3RydWN0IHZhbHVlICpvdXR2YWwgPSBOVUxMOwpAQCAtMzI3 Niw3ICszMjU5LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbGFyaXRoLmMK ICAgIGludCBjb3VudCwgaWR4OwogICAgY2hhciAqcHRyOwogICAgY2hhciBpbmNoYXI7Ci1AQCAt MTUzMSw3ICsxNTMyLDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0 CitAQCAtMTUzMSw3ICsxNTMxLDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwg c3RydWN0CiAgaW50CiAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKICB7 CkBAIC0zMjg1LDcgKzMyNjgsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFs YXJpdGguYwogICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTE7CiAg Ci1AQCAtMTU2MiwxMSArMTU2MywxMSBAQCB2YWx1ZV9sb2dpY2FsX25vdCAoc3RydWN0IHZhbHVl ICphcmcxKQorQEAgLTE1NjIsMTEgKzE1NjIsMTEgQEAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVj dCB2YWx1ZSAqYXJnMSkKICBzdGF0aWMgaW50CiAgdmFsdWVfc3RyY21wIChzdHJ1Y3QgdmFsdWUg KmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0zMzAwLDEwICszMjgzLDEwIEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxhcml0aC5jCiAgCiAgICBmb3IgKGkgPSAw OyBpIDwgbGVuOyBpKyspCiAgICAgIHsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92 YWxvcHMuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0wNy0w OSAxODoyNDozOS4wMTkzNTYzMTYgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92 YWxvcHMuYwkyMDE1LTA3LTA5IDE4OjI2OjAyLjAzMjA2NDQyMCArMDIwMAorLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjQwMzUx ODM4ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjM4MzY0OTg0ICswMTAwCiBAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgc3Ry dWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X2ZpZWxkCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAq c2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKiwgc3RydWN0IHZhbHVlICoqLApAQCAt MzQyNSw3ICszNDA4LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5j CiAgCQkgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAogIAkJICAgZ2RiX2J5dGUgKmJ1 ZmZlciwgc2l6ZV90IGxlbmd0aCkKICB7Ci1AQCAtMTA1NCw3ICsxMDU2LDcgQEAgdmFsdWVfYXNz aWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1YworQEAgLTEwNTcsNyArMTA1OSw3IEBAIHZh bHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKICAgICAgICB7CiAgCWNvbnN0 IGdkYl9ieXRlICpkZXN0X2J1ZmZlcjsKICAJQ09SRV9BRERSIGNoYW5nZWRfYWRkcjsKQEAgLTM0 MzQsNyArMzQxNyw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxvcHMuYwog ICAgICAgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOwogIAogIAlpZiAodmFs dWVfYml0c2l6ZSAodG92YWwpKQotQEAgLTExMjMsNyArMTEyNSw3IEBAIHZhbHVlX2Fzc2lnbiAo c3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKK0BAIC0xMTI2LDcgKzExMjgsNyBAQCB2YWx1ZV9h c3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCiAgCWlmICh2YWx1ZV9iaXRzaXplICh0 b3ZhbCkpCiAgCSAgewogIAkgICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2YWx1ZV9wYXJlbnQg KHRvdmFsKTsKQEAgLTM0NDMsNyArMzQyNiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi92YWxvcHMuYwogIAkgICAgaW50IGNoYW5nZWRfbGVuOwogIAkgICAgZ2RiX2J5dGUgYnVm ZmVyW3NpemVvZiAoTE9OR0VTVCldOwogIAkgICAgaW50IG9wdGltLCB1bmF2YWlsOwotQEAgLTE2 MDQsNyArMTYwNiw3IEBAIHZhbHVlX2FycmF5IChpbnQgbG93Ym91bmQsIGludCBoaWdoYm91bmQK K0BAIC0xNTkwLDcgKzE1OTIsNyBAQCB2YWx1ZV9hcnJheSAoaW50IGxvd2JvdW5kLCBpbnQgaGln aGJvdW5kCiAgewogICAgaW50IG5lbGVtOwogICAgaW50IGlkeDsKQEAgLTM0NTIsNyArMzQzNSw3 IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxvcHMuYwogICAgc3RydWN0IHZh bHVlICp2YWw7CiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXl0eXBlOwogIAotQEAgLTE3NzksNyArMTc4 MSw3IEBAIHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQgdmFyYXJncywgaW50IG4KK0BAIC0xNzY2 LDcgKzE3NjgsNyBAQCB0eXBlY21wIChpbnQgc3RhdGljcCwgaW50IHZhcmFyZ3MsIGludCBuCiAg CiAgc3RhdGljIHZvaWQKICB1cGRhdGVfc2VhcmNoX3Jlc3VsdCAoc3RydWN0IHZhbHVlICoqcmVz dWx0X3B0ciwgc3RydWN0IHZhbHVlICp2LApAQCAtMzQ2MSw3ICszNDQ0LDcgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCQkgICAgICBjb25zdCBjaGFyICpuYW1l LCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpZiAodiAhPSBOVUxMKQotQEAgLTE4MDMsMTAg KzE4MDUsMTAgQEAgdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0cnVjdCB2YWx1ZSAqKnJlcworQEAg LTE3OTAsMTAgKzE3OTIsMTAgQEAgdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0cnVjdCB2YWx1ZSAq KnJlcwogICAgIGxvb2t1cCBpcyBhbWJpZ3VvdXMuICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0z NDc0LDcgKzM0NTcsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsb3BzLmMK ICAJCQlzdHJ1Y3QgdHlwZSAqb3V0ZXJtb3N0X3R5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtMTg1 Myw3ICsxODU1LDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQor QEAgLTE4NDAsNyArMTg0Miw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIg Km5hbWUKICAJCSAgIDx2YXJpYW50IGZpZWxkPi4gICovCiAgCiAgCQlzdHJ1Y3QgdmFsdWUgKnYg PSBOVUxMOwpAQCAtMzQ4Myw3ICszNDY2LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3ZhbG9wcy5jCiAgCiAgCQkvKiBUaGlzIGlzIHByZXR0eSBncm9zcy4gIEluIEcrKywgdGhl IG9mZnNldCBpbiBhbgogIAkJICAgYW5vbnltb3VzIHVuaW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBi ZWdpbm5pbmcgb2YgdGhlCi1AQCAtMTg5Miw3ICsxODk0LDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9m aWVsZCAoY29uc3QgY2hhciAqbmFtZQorQEAgLTE4NzksNyArMTg4MSw3IEBAIGRvX3NlYXJjaF9z dHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUKICAJCQkgICAgICYmIChzdHJjbXBfaXcgKG5h bWUsIAogIAkJCQkJICAgIFRZUEVfQkFTRUNMQVNTX05BTUUgKHR5cGUsIAogIAkJCQkJCQkJIGkp KSA9PSAwKSk7CkBAIC0zNDkyLDcgKzM0NzUsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcw OS9nZGIvdmFsb3BzLmMKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHR5cGUs IGkpKQogIAl7Ci1AQCAtMTk2OCw3ICsxOTcwLDcgQEAgc2VhcmNoX3N0cnVjdF9maWVsZCAoY29u c3QgY2hhciAqbmFtZSwgcworQEAgLTE5NTUsNyArMTk1Nyw3IEBAIHNlYXJjaF9zdHJ1Y3RfZmll bGQgKGNvbnN0IGNoYXIgKm5hbWUsIHMKICAJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUsIGludCBs b29raW5nX2Zvcl9iYXNlY2xhc3MpCiAgewogICAgc3RydWN0IHZhbHVlICpyZXN1bHQgPSBOVUxM OwpAQCAtMzUwMSw3ICszNDg0LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Zh bG9wcy5jCiAgCiAgICBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcxLCAwLCB0eXBl LCBsb29raW5nX2Zvcl9iYXNlY2xhc3MsCiAgCQkJICAmcmVzdWx0LCAmYm9mZnNldCwgdHlwZSk7 Ci1AQCAtMTk4NSw3ICsxOTg3LDcgQEAgc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAq bmFtZSwgcworQEAgLTE5NzIsNyArMTk3NCw3IEBAIHNlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0 IGNoYXIgKm5hbWUsIHMKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKICBzZWFyY2hfc3RydWN0 X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVlICoqYXJnMXAsCkBAIC0zNTEw LDcgKzM0OTMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsb3BzLmMKICAJ CSAgICAgIGludCAqc3RhdGljX21lbWZ1bmNwLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBp bnQgaTsKLUBAIC0yMDQ5LDggKzIwNTEsOCBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3Qg Y2hhciAqbmFtZSwKK0BAIC0yMDM2LDggKzIwMzgsOCBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAo Y29uc3QgY2hhciAqbmFtZSwKICAKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlw ZSkgLSAxOyBpID49IDA7IGktLSkKICAgICAgewpAQCAtMzUyMSw3ICszNTA0LDcgQEAgSW5kZXg6 IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VUWVBF X1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKICAJewotQEAgLTIyODUsMTAgKzIyODcsMTAgQEAgdmFs dWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgorQEAgLTIyNzIsMTAgKzIyNzQs MTAgQEAgdmFsdWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgogIAogIHN0YXRp YyB2b2lkCiAgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgY29uc3QgY2hh ciAqbWV0aG9kLApAQCAtMzUzNCw3ICszNTE3LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL3ZhbG9wcy5jCiAgewogICAgaW50IGk7CiAgICBzdHJ1Y3QgZm5fZmllbGQgKmYgPSBO VUxMOwotQEAgLTIzNDUsNyArMjM0Nyw3IEBAIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1 ZSAqKmFyZ3AsIGMKK0BAIC0yMzMyLDcgKzIzMzQsNyBAQCBmaW5kX21ldGhvZF9saXN0IChzdHJ1 Y3QgdmFsdWUgKiphcmdwLCBjCiAgICAgICBleHRlbnNpb24gbWV0aG9kcy4gICovCiAgICBmb3Ig KGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsK QEAgLTM1NDMsNyArMzUyNiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxv cHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCiAgCXsK LUBAIC0yMzg4LDcgKzIzOTAsNyBAQCB2YWx1ZV9maW5kX29sb2FkX21ldGhvZF9saXN0IChzdHJ1 Y3QgdmFsCitAQCAtMjM3NSw3ICsyMzc3LDcgQEAgdmFsdWVfZmluZF9vbG9hZF9tZXRob2RfbGlz dCAoc3RydWN0IHZhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQs IHN0cnVjdCBmbl9maWVsZCAqKmZuX2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50ICpudW1fZm5zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFQyAoeG1l dGhvZF93b3JrZXJfcHRyKSAqKnhtX3dvcmtlcl92ZWMsCkBAIC0zNTUyLDcgKzM1MzUsNyBAQCBJ bmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsb3BzLmMKICB7CiAgICBzdHJ1Y3QgdHlw ZSAqdDsKICAKLUBAIC0yNDk5LDcgKzI1MDEsNyBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1 Y3QgdmFsdWUgKiphcmdzCitAQCAtMjQ4Niw3ICsyNDg4LDcgQEAgZmluZF9vdmVybG9hZF9tYXRj aCAoc3RydWN0IHZhbHVlICoqYXJncwogICAgLyogTnVtYmVyIG9mIG92ZXJsb2FkZWQgaW5zdGFu Y2VzIGJlaW5nIGNvbnNpZGVyZWQuICAqLwogICAgaW50IG51bV9mbnMgPSAwOwogICAgc3RydWN0 IHR5cGUgKmJhc2V0eXBlID0gTlVMTDsKQEAgLTM1NjEsNyArMzU0NCw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi92YWxvcHMuYwogIAogICAgc3RydWN0IGNsZWFudXAgKmFsbF9j bGVhbnVwcyA9IG1ha2VfY2xlYW51cCAobnVsbF9jbGVhbnVwLCBOVUxMKTsKICAKLUBAIC0zMzE0 LDcgKzMzMTYsNyBAQCBjb21wYXJlX3BhcmFtZXRlcnMgKHN0cnVjdCB0eXBlICp0MSwgc3RyCitA QCAtMzMwMCw3ICszMzAyLDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlwZSAqdDEs IHN0cgogICAgIHRoZSBmb3JtICJET01BSU46Ok5BTUUiLiAgKi8KICAKICBzdGF0aWMgc3RydWN0 IHZhbHVlICoKQEAgLTM1NzAsNyArMzU1Myw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi92YWxvcHMuYwogIAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY29uc3QgY2hhciAqbmFt ZSwKICAJCQkJc3RydWN0IHR5cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1A QCAtMzM0OCw3ICszMzUwLDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1 Y3QgdAorQEAgLTMzMzQsNyArMzMzNiw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5j ZSAoc3RydWN0IHQKICAJICBpZiAod2FudF9hZGRyZXNzKQogIAkgICAgcmV0dXJuIHZhbHVlX2Zy b21fbG9uZ2VzdAogIAkgICAgICAobG9va3VwX21lbWJlcnB0cl90eXBlIChUWVBFX0ZJRUxEX1RZ UEUgKHQsIGkpLCBkb21haW4pLApAQCAtMzU3OSw3ICszNTYyLDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3ZhbG9wcy5jCiAgCSAgZWxzZSBpZiAobm9zaWRlICE9IEVWQUxfTk9S TUFMKQogIAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkp KTsKICAJICBlbHNlCi1AQCAtMzUxNiw3ICszNTE4LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3Jf cmVmZXJlbmNlIChzdHJ1Y3QgdAorQEAgLTM1MDIsNyArMzUwNCw3IEBAIHZhbHVlX3N0cnVjdF9l bHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NF UyAodCkgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdjsK QEAgLTM1ODgsNyArMzU3MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxv cHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodCwgaSkpCiAgCWJhc2Vf b2Zmc2V0ID0gMDsKLUBAIC0zNTk3LDcgKzM1OTksNyBAQCB2YWx1ZV9tYXliZV9uYW1lc3BhY2Vf ZWx0IChjb25zdCBzdHJ1Y3QKK0BAIC0zNTgzLDcgKzM1ODUsNyBAQCB2YWx1ZV9tYXliZV9uYW1l c3BhY2VfZWx0IChjb25zdCBzdHJ1Y3QKICAKICBzdHJ1Y3QgdHlwZSAqCiAgdmFsdWVfcnR0aV9p bmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgCkBAIC0zNTk3LDcgKzM1 ODAsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsb3BzLmMKICB7CiAgICBz dHJ1Y3QgdmFsdWUgKnRhcmdldCA9IE5VTEw7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJlYWxf dHlwZSwgKnRhcmdldF90eXBlOwotQEAgLTM2NjUsMTIgKzM2NjcsMTIgQEAgdmFsdWVfcnR0aV9p bmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTM2NTEsMTIgKzM2NTMsMTIgQEAgdmFs dWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgogIHN0cnVjdCB2YWx1ZSAqCiAg dmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1Y3QgdHlw ZSAqcnR5cGUsIApAQCAtMzYxMiwxMSArMzU5NSwxMSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1 MDcwOS9nZGIvdmFsb3BzLmMKICAgIGludCB1c2luZ19lbmMgPSAwOwogICAgc3RydWN0IHZhbHVl ICpuZXdfdmFsOwogIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHByaW50LmMK K0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE1LTA3LTA5IDE4 OjI0OjM5LjAyMDM1NjMyNCArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHBy aW50LmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjAzODM5NjIgKzAyMDAKLUBAIC0yOTgsNyArMjk4 LDcgQEAgdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eQorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4y NDIzNTE4NTEgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwky MDE1LTExLTAyIDIxOjIzOjEzLjIzOTM2NDk5MSArMDEwMAorQEAgLTI5OSw3ICsyOTksNyBAQCB2 YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5CiAgaW50CiAgdmFscHJpbnRf Y2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJIHN0cnVjdCB0eXBl ICp0eXBlLApAQCAtMzYyNCw4ICszNjA3LDggQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3ZhbHByaW50LmMKICsJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAgCQkJIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKLSAgIENIRUNLX1RZUEVERUYgKHR5cGUpOwotQEAgLTM5 Niw3ICszOTYsNyBAQCB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cnVjdCB1aV9maWxlCisg ICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7CitAQCAtODM0LDcgKzgzNCw3IEBAIGdlbmVy aWNfdmFsX3ByaW50X2NvbXBsZXggKHN0cnVjdCB0eXBlICoKICAKICB2b2lkCiAgZ2VuZXJpY192 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAg LTM2MzQsNyArMzYxNyw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxwcmlu dC5jCiAgCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC03NTgsNyArNzU4LDcgQEAgZ2VuZXJpY192 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworQEAgLTk2OSw3ICs5NjksNyBAQCBnZW5l cmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCiAgICAgUkVDVVJTRS4gICovCiAg CiAgdm9pZApAQCAtMzY0Myw3ICszNjI2LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3ZhbHByaW50LmMKICAJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAogIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtOTk4LDcgKzk5 OCw3IEBAIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBlICoKK0BAIC0xMjIx LDcgKzEyMjEsNyBAQCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqCiAg CiAgdm9pZAogIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkIChzdHJ1Y3QgdHlwZSAqdHlwZSwK QEAgLTM2NTIsNyArMzYzNSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxw cmludC5jCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKICAJCQkgICAgaW50IHNpemUsCi1A QCAtMTU0MCw3ICsxNTQwLDcgQEAgcHJpbnRfZGVjaW1hbF9jaGFycyAoc3RydWN0IHVpX2ZpbGUg KnN0cgorQEAgLTE3NjYsNyArMTc2Niw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1 aV9maWxlICpzdHIKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM2NjEsNyArMzY0NCw3IEBAIElu ZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxwcmludC5jCiAgewogICAgY29uc3QgZ2Ri X2J5dGUgKnA7CiAgCi1AQCAtMTY1NywyMiArMTY1NywyMiBAQCBtYXliZV9wcmludF9hcnJheV9p bmRleCAoc3RydWN0IHR5cGUgKmluCitAQCAtMTg4MywyMiArMTg4MywyMiBAQCBtYXliZV9wcmlu dF9hcnJheV9pbmRleCAoc3RydWN0IHR5cGUgKmluCiAgCiAgdm9pZAogIHZhbF9wcmludF9hcnJh eV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0zNjkwLDcgKzM2NzMsNyBAQCBJbmRl eDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFscHJpbnQuYwogICAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7CiAgICBMT05HRVNUIGxvd19wb3MsIGhpZ2hfcG9zOwogIAotQEAgLTE3 NjIsNyArMTc2Miw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnQK K0BAIC0xOTg4LDcgKzE5ODgsNyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0 eXBlICp0CiAgCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSArIDEsIHZhbCwgb3B0aW9u cywKICAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7CiAgCSAgYW5ub3RhdGVfZWx0X3JlcCAocmVw cyk7CkBAIC0zNjk5LDcgKzM2ODIsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv dmFscHJpbnQuYwogIAkgIGFubm90YXRlX2VsdF9yZXBfZW5kICgpOwogIAogIAkgIGkgPSByZXAx IC0gMTsKLUBAIC0yNDE4LDcgKzI0MTgsNyBAQCBwcmludF9jb252ZXJ0ZWRfY2hhcnNfdG9fb2Jz dGFjayAoc3RydWN0CitAQCAtMjY0NCw3ICsyNjQ0LDcgQEAgcHJpbnRfY29udmVydGVkX2NoYXJz X3RvX29ic3RhY2sgKHN0cnVjdAogIAogIHZvaWQKICBnZW5lcmljX3ByaW50c3RyIChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgCkBAIC0zNzA4LDEwICszNjkxLDEw IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0 IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFy LCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWxwcmlu dC5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0wNy0w OSAxODoyNDozOS4wMjEzNTYzMzMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92 YWxwcmludC5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjYwMzgzOTYyICswMjAwCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI0 MjM1MTg1MSArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5oCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjM5MzY0OTkxICswMTAwCiBAQCAtMTE1LDExICsxMTUsMTEgQEAg ZXh0ZXJuIHZvaWQgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJCQkgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwpAQCAtMzc2MiwxMCArMzc0NSwx MCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFscHJpbnQuaAogIAkJCSAgICAg IGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkJICAgICAgaW50 IHF1b3RlX2NoYXIsIGludCBjX3N0eWxlX3Rlcm1pbmF0b3IsCiAgCQkJICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvdmFsdWUuYwky MDE1LTA3LTA5IDE4OjI0OjM5LjAyNjM1NjM3NSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3 MDkvZ2RiL3ZhbHVlLmMJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjEzODM5NzAgKzAyMDAKKy0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjQ4MzUxODkwICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMJMjAx NS0xMS0wMiAyMToyMzoxMy4yNDEzNjUwMDQgKzAxMDAKIEBAIC02NiwxMCArNjYsMTAgQEAgc3Ry dWN0IGludGVybmFsX2Z1bmN0aW9uCiAgc3RydWN0IHJhbmdlCiAgewpAQCAtMzgwMCw5ICszNzgz LDkgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICAgIHJhbmdlX3Mg d2hhdDsKICAgIGludCBpOwogQEAgLTI0MCw3ICsyNDAsNyBAQCBzdHJ1Y3QgdmFsdWUKLSAgICAg IGx2YWwgPT0gbHZhbF9yZWdpc3RlciwgdGhpcyBpcyBhIGZ1cnRoZXIgb2Zmc2V0IGZyb20KLSAg ICAgIGxvY2F0aW9uLmFkZHJlc3Mgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAgTm90 ZSBhbHNvIHRoZQotICAgICAgbWVtYmVyIGVtYmVkZGVkX29mZnNldCBiZWxvdy4gICovCisgICAg ICB0aGUgYWRkcmVzcy4gIElmIGx2YWwgPT0gbHZhbF9yZWdpc3RlciwgdGhpcyBpcyBhIGZ1cnRo ZXIgb2Zmc2V0IGZyb20KKyAgICAgIGxvY2F0aW9uLmFkZHJlc3Mgd2l0aGluIHRoZSByZWdpc3Rl cnMgc3RydWN0dXJlLiAgTm90ZSBhbHNvIHRoZSBtZW1iZXIKKyAgICAgIGVtYmVkZGVkX29mZnNl dCBiZWxvdy4gICovCiAtICBpbnQgb2Zmc2V0OwogKyAgTE9OR0VTVCBvZmZzZXQ7CiAgCkBAIC0z ODE5LDggKzM4MDIsOCBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuYwog IAogICAgLyogVmFsdWVzIGFyZSBzdG9yZWQgaW4gYSBjaGFpbiwgc28gdGhhdCB0aGV5IGNhbiBi ZSBkZWxldGVkIGVhc2lseQogICAgICAgb3ZlciBjYWxscyB0byB0aGUgaW5mZXJpb3IuICBWYWx1 ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwKLUBAIC0zNDIsNyArMzQyLDcgQEAgc3RydWN0IHZhbHVl Ci0gfTsKK0BAIC0zNTAsNyArMzUwLDcgQEAgZ2V0X3ZhbHVlX2FyY2ggKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsdQorIH0KICAKICBpbnQKIC12YWx1ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKQEAgLTM4MjgsNyArMzgx MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgZ2Ri X2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKICAKLUBAIC0zNTAsNyArMzUwLDggQEAgdmFsdWVfYml0 c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZQorQEAgLTM1OCw3ICszNTgsOCBAQCB2YWx1 ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlCiAgfQogIAogIGludApAQCAtMzgz OCw3ICszODIxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICB7 CiAgICByZXR1cm4gdmFsdWVfYml0c19hdmFpbGFibGUgKHZhbHVlLAogIAkJCSAgICAgICBvZmZz ZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtMzU4LDcgKzM1OSw4IEBAIHZhbHVlX2J5dGVzX2F2 YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHUKK0BAIC0zNjYsNyArMzY3LDggQEAgdmFsdWVfYnl0 ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdQogIH0KICAKICBpbnQKQEAgLTM4NDgsNyAr MzgzMSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAg Z2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKICAKLUBAIC00MjAsNyArNDIyLDggQEAgdmFsdWVf ZW50aXJlbHlfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbAorQEAgLTQyOCw3ICs0MzAsOCBAQCB2 YWx1ZV9lbnRpcmVseV9vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsCiAgICAgT0ZGU0VUIGJpdHMs IGFuZCBleHRlbmRpbmcgZm9yIHRoZSBuZXh0IExFTkdUSCBiaXRzLiAgKi8KICAKICBzdGF0aWMg dm9pZApAQCAtMzg1OCw3ICszODQxLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3ZhbHVlLmMKICB7CiAgICByYW5nZV9zIG5ld3I7CiAgICBpbnQgaTsKLUBAIC01OTEsNyArNTk0 LDggQEAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdQorQEAgLTU5OSw3 ICs2MDIsOCBAQCBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1CiAgfQog IAogIHZvaWQKQEAgLTM4NjgsNyArMzg1MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi92YWx1ZS5jCiAgewogICAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlICh2YWx1ZSwK ICAJCQkgICAgICAgb2Zmc2V0ICogVEFSR0VUX0NIQVJfQklULAotQEAgLTYwNSw3ICs2MDksNyBA QCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsCitAQCAtNjEzLDcgKzYx Nyw3IEBAIG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWwKICAKICBzdGF0 aWMgaW50CiAgZmluZF9maXJzdF9yYW5nZV9vdmVybGFwIChWRUMocmFuZ2VfcykgKnJhbmdlcywg aW50IHBvcywKQEAgLTM4NzcsNyArMzg2MCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi92YWx1ZS5jCiAgewogICAgcmFuZ2VfcyAqcjsKICAgIGludCBpOwotQEAgLTgwMSw5ICs4 MDUsOSBAQCBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXBfYW5kX21hdGNoIChzdHJ1CitAQCAtODA5 LDkgKzgxMyw5IEBAIGZpbmRfZmlyc3RfcmFuZ2Vfb3ZlcmxhcF9hbmRfbWF0Y2ggKHN0cnUKICAg ICBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXZhaWxhYmxlIGJpdHMgbWF0Y2guICAqLwogIAogIHN0YXRp YyBpbnQKQEAgLTM4OTAsNyArMzg3Myw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi92YWx1ZS5jCiAgewogICAgLyogRWFjaCBhcnJheSBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIGEg cmFuZ2VzIHNvdXJjZSAodW5hdmFpbGFibGUsCiAgICAgICBvcHRpbWl6ZWQgb3V0KS4gICcxJyBp cyBmb3IgVkFMMSwgJzInIGZvciBWQUwyLiAgKi8KLUBAIC04NjMsOSArODY3LDkgQEAgdmFsdWVf Y29udGVudHNfYml0c19lcSAoY29uc3Qgc3RydWN0IHZhbAorQEAgLTg3MSw5ICs4NzUsOSBAQCB2 YWx1ZV9jb250ZW50c19iaXRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsCiAgfQogIAogIGludApAQCAt MzkwMyw3ICszODg2LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMK ICB7CiAgICByZXR1cm4gdmFsdWVfY29udGVudHNfYml0c19lcSAodmFsMSwgb2Zmc2V0MSAqIFRB UkdFVF9DSEFSX0JJVCwKICAJCQkJIHZhbDIsIG9mZnNldDIgKiBUQVJHRVRfQ0hBUl9CSVQsCi1A QCAtMTAyOSwxMyArMTAzMywxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3Qg dmFsdWUKK0BAIC0xMDM3LDEzICsxMDQxLDEzIEBAIGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUg KHN0cnVjdCB2YWx1ZQogICAgdmFsdWUtPnR5cGUgPSB0eXBlOwogIH0KICAKQEAgLTM5MTksNyAr MzkwMiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAg dmFsdWUtPm9mZnNldCA9IG9mZnNldDsKICB9Ci1AQCAtMTI0Niw4ICsxMjUwLDkgQEAgdmFsdWVf cmFuZ2VzX2NvcHlfYWRqdXN0ZWQgKHN0cnVjdCB2YWx1ZQorQEAgLTEyNTcsOCArMTI2MSw5IEBA IHZhbHVlX3Jhbmdlc19jb3B5X2FkanVzdGVkIChzdHJ1Y3QgdmFsdWUKICAgICBEU1RfT0ZGU0VU K0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAqLwogIAogIHZvaWQKQEAgLTM5 MzAsOCArMzkxMyw4IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAr CQkJIHNzaXplX3QgbGVuZ3RoKQogIHsKICAgIHJhbmdlX3MgKnI7Ci0gICBpbnQgaTsKLUBAIC0x MjkzLDggKzEyOTgsOCBAQCB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpk CisgICBpbnQgc3JjX2JpdF9vZmZzZXQsIGRzdF9iaXRfb2Zmc2V0LCBiaXRfbGVuZ3RoOworQEAg LTEzMDUsOCArMTMxMCw4IEBAIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUg KmQKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAq LwogIAogIHZvaWQKQEAgLTM5NDIsNyArMzkyNSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi92YWx1ZS5jCiAgewogICAgaWYgKHNyYy0+bGF6eSkKICAgICAgdmFsdWVfZmV0Y2hf bGF6eSAoc3JjKTsKLUBAIC0xMzU4LDcgKzEzNjMsOCBAQCB2YWx1ZV9vcHRpbWl6ZWRfb3V0IChz dHJ1Y3QgdmFsdWUgKnZhbHVlCitAQCAtMTM3MCw3ICsxMzc1LDggQEAgdmFsdWVfb3B0aW1pemVk X291dCAoc3RydWN0IHZhbHVlICp2YWx1ZQogICAgIHRoZSBmb2xsb3dpbmcgTEVOR1RIIGJ5dGVz LiAgKi8KICAKICB2b2lkCkBAIC0zOTUyLDcgKzM5MzUsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvdmFsdWUuYwogIHsKICAgIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0 ICh2YWx1ZSwKICAJCQkJIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC0xMzY4LDE0ICsx Mzc0LDE1IEBAIG1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVkX291dCAoc3RydWN0IHYKK0BAIC0x MzgwLDE0ICsxMzg2LDE1IEBAIG1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVkX291dCAoc3RydWN0 IHYKICAvKiBTZWUgdmFsdWUuaC4gICovCiAgCiAgdm9pZApAQCAtMzk3MCw3ICszOTUzLDcgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICB7CiAgICBpZiAodmFsdWUt Pmx2YWwgIT0gbHZhbF9jb21wdXRlZAogICAgICAgIHx8ICF2YWx1ZS0+bG9jYXRpb24uY29tcHV0 ZWQuZnVuY3MtPmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKQotQEAgLTEzODUsMjYgKzEzOTIsMjYg QEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQorQEAgLTEzOTcsMjYg KzE0MDQsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQogIAkJ CQkJCQkJICBsZW5ndGgpOwogIH0KICAKQEAgLTQwMDEsNyArMzk4NCw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgewogICAgdmFsdWUtPnBvaW50ZWRfdG9fb2Zm c2V0ID0gdmFsOwogIH0KLUBAIC0yMjg3LDcgKzIyOTQsNyBAQCBnZXRfaW50ZXJuYWx2YXJfZnVu Y3Rpb24gKHN0cnVjdCBpbnRlcm5hCitAQCAtMjI5NSw3ICsyMzAyLDcgQEAgZ2V0X2ludGVybmFs dmFyX2Z1bmN0aW9uIChzdHJ1Y3QgaW50ZXJuYQogIH0KICAKICB2b2lkCkBAIC00MDEwLDcgKzM5 OTMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuYwogIAkJCSAgIGlu dCBiaXRzaXplLCBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbCkKICB7CiAgICBnZGJfYnl0ZSAqYWRkcjsK LUBAIC0zMDA4LDcgKzMwMTUsNyBAQCBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2 YWx1ZSAqCitAQCAtMzAyMCw3ICszMDI3LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlIChz dHJ1Y3QgdmFsdWUgKgogICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4gICovCiAgCiAgc3Ry dWN0IHZhbHVlICoKQEAgLTQwMTksNyArNDAwMiw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUw NzA5L2dkYi92YWx1ZS5jCiAgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICphcmdf dHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMzA1OCw3ICszMDY1LDcgQEAgdmFs dWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAgLTMwNzIsNyArMzA3OSw3 IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAgICAgICAvKiBU aGlzIGZpZWxkIGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJvYmplY3QsIHNvIHByZXNlcnZlIHRoZQog IAkgZW50aXJlIG9iamVjdCdzIGNvbnRlbnRzIGZvciBsYXRlciByZWZlcmVuY2VzIHRvIHZpcnR1 YWwKICAJIGJhc2VzLCBldGMuICAqLwpAQCAtNDAyOCw3ICs0MDExLDcgQEAgSW5kZXg6IGdkYi03 LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICAKICAgICAgICAvKiBMYXp5IHJlZ2lzdGVyIHZh bHVlcyB3aXRoIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwogICAgICAgIGlmIChWQUxV RV9MVkFMIChhcmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xhenkgKGFyZzEpKQotQEAg LTMxNDQsNyArMzE1MSw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBm aWUKK0BAIC0zMTU5LDcgKzMxNjYsNyBAQCB2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcx LCBpbnQgZmllCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVl ICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCWludCBqLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwKQEAgLTQwMzcsNyArNDAyMCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92 YWx1ZS5jCiAgewogICAgc3RydWN0IHZhbHVlICp2OwogICAgc3RydWN0IHR5cGUgKmZ0eXBlID0g VFlQRV9GTl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0zMjE0LDE0ICszMjIxLDE0IEBAIHZhbHVl X2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKK0BAIC0zMjI5LDE0ICszMjM2LDE0 IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKICAKICBzdGF0aWMg TE9OR0VTVAogIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQwNTQsNyArNDAzNyw3IEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5jCiAgCiAgICAvKiBSZWFkIHRoZSBtaW5pbXVtIG51 bWJlciBvZiBieXRlcyByZXF1aXJlZDsgdGhlcmUgbWF5IG5vdCBiZQogICAgICAgZW5vdWdoIGJ5 dGVzIHRvIHJlYWQgYW4gZW50aXJlIFVMT05HRVNULiAgKi8KLUBAIC0zMjcwLDcgKzMyNzcsNyBA QCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqZmllbGRfCitAQCAtMzI4NSw3ICsz MjkyLDcgQEAgdW5wYWNrX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKmZpZWxkXwogIAogIGlu dAogIHVucGFja192YWx1ZV9maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCkBAIC00MDYzLDcgKzQwNDYsNyBAQCBJbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvdmFsdWUuYwogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwg TE9OR0VTVCAqcmVzdWx0KQogIHsKICAgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAo dHlwZSwgZmllbGRubyk7Ci1AQCAtMzMxNCw3ICszMzIxLDcgQEAgdW5wYWNrX2ZpZWxkX2FzX2xv bmcgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMzMjksNyArMzMzNiw3IEBAIHVucGFja19maWVs ZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICB2b2lkCiAgdW5wYWNrX3ZhbHVlX2JpdGZp ZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAogIAkJICAgICAgIGludCBiaXRwb3MsIGludCBi aXRzaXplLApAQCAtNDA3Miw3ICs0MDU1LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3ZhbHVlLmMKICAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAgICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0zMzUyLDcgKzMzNTksNyBAQCB1bnBhY2tf dmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzCitAQCAtMzM2Nyw3ICszMzc0LDcgQEAg dW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlcwogIHN0cnVjdCB2YWx1ZSAq CiAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRubywK ICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDA4MSw3ICs0MDY0LDcgQEAg SW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmMKICB7CiAgICBpbnQgYml0cG9z ID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwogICAgaW50IGJpdHNpemUgPSBU WVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwotQEAgLTMzNzMsMTIgKzMzODAsMTIg QEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMzODgsMTIg KzMzOTUsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAogIAog IHZvaWQKICBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRkciwK QEAgLTQwOTYsMTEgKzQwNzksMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3Zh bHVlLmMKICAKICAgIC8qIE5vcm1hbGl6ZSBCSVRQT1MuICAqLwogICAgYWRkciArPSBiaXRwb3Mg LyA4OwotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAu MjAxNTA3MDkub3JpZy9nZGIvdmFsdWUuaAkyMDE1LTA3LTA5IDE4OjI0OjM5LjAyNzM1NjM4NCAr MDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgJMjAxNS0wNy0wOSAxODoy NDo0Mi4yNjIzODM5NzkgKzAyMDAKLUBAIC0xMzEsOCArMTMxLDggQEAgZXh0ZXJuIHZvaWQgc2V0 X3ZhbHVlX3BhcmVudCAoc3RydWN0IHZhbAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL3ZhbHVlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQgKzAxMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MTM2NTAw NCArMDEwMAorQEAgLTEzNSw4ICsxMzUsOCBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfcGFyZW50 IChzdHJ1Y3QgdmFsCiAgICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAgTm90ZSBh bHNvIHRoZSBtZW1iZXIKICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwogIApAQCAtNDEx MSw3ICs0MDk0LDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgKICAK ICAvKiBUaGUgY29tbWVudCBmcm9tICJzdHJ1Y3QgdmFsdWUiIHJlYWRzOiBgYElzIGl0IG1vZGlm aWFibGU/ICBPbmx5CiAgICAgcmVsZXZhbnQgaWYgbHZhbCAhPSBub3RfbHZhbC4nJy4gIFNob3Vs ZG4ndCB0aGUgdmFsdWUgaW5zdGVhZCBiZQotQEAgLTIwMSwxMCArMjAxLDEwIEBAIGV4dGVybiBz dHJ1Y3QgdHlwZSAqdmFsdWVfYWN0dWFsX3R5cGUgKHMKK0BAIC0yMDUsMTAgKzIwNSwxMCBAQCBl eHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX2FjdHVhbF90eXBlIChzCiAgCQkJCSAgICAgICBpbnQg cmVzb2x2ZV9zaW1wbGVfdHlwZXMsCiAgCQkJCSAgICAgICBpbnQgKnJlYWxfdHlwZV9mb3VuZCk7 CiAgCkBAIC00MTI2LDcgKzQxMDksNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv dmFsdWUuaAogIAogIC8qIEZvciBsdmFsX2NvbXB1dGVkIHZhbHVlcywgdGhpcyBzdHJ1Y3R1cmUg aG9sZHMgZnVuY3Rpb25zIHVzZWQgdG8KICAgICByZXRyaWV2ZSBhbmQgc2V0IHRoZSB2YWx1ZSAo b3IgcG9ydGlvbnMgb2YgdGhlIHZhbHVlKS4KLUBAIC0yNDIsNyArMjQyLDcgQEAgc3RydWN0IGx2 YWxfZnVuY3MKK0BAIC0yNDYsNyArMjQ2LDcgQEAgc3RydWN0IGx2YWxfZnVuY3MKICAgIC8qIElm IG5vbi1OVUxMLCB0aGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGluZGljYXRl ZCBiaXRzCiAgICAgICBvZiBWQUxVRSBhcmUgYSBzeW50aGV0aWMgcG9pbnRlci4gICovCiAgICBp bnQgKCpjaGVja19zeW50aGV0aWNfcG9pbnRlcikgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUs CkBAIC00MTM1LDcgKzQxMTgsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFs dWUuaAogIAogICAgLyogUmV0dXJuIGEgZHVwbGljYXRlIG9mIFZBTFVFJ3MgY2xvc3VyZSwgZm9y IHVzZSBpbiBhIG5ldyB2YWx1ZS4KICAgICAgIFRoaXMgbWF5IHNpbXBseSByZXR1cm4gdGhlIHNh bWUgY2xvc3VyZSwgaWYgVkFMVUUncyBpcwotQEAgLTI3OSw3ICsyNzksNyBAQCBleHRlcm4gc3Ry dWN0IHZhbHVlICphbGxvY2F0ZV9jb21wdXRlZF92CitAQCAtMjgzLDcgKzI4Myw3IEBAIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX2NvbXB1dGVkX3YKICAgICBPdGhlcndpc2UsIHJldHVy biAxLiAgKi8KICAKICBleHRlcm4gaW50IHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTQxNDQsNyArNDEyNyw3IEBA IEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCQkJCSAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCk7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfb3B0 aW1pemVkX291dF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUpOwotQEAgLTM3Myw3ICszNzMsOCBA QCBleHRlcm4gaW50IHZhbHVlX29wdGltaXplZF9vdXQgKHN0cnVjdCB2CitAQCAtMzc3LDcgKzM3 Nyw4IEBAIGV4dGVybiBpbnQgdmFsdWVfb3B0aW1pemVkX291dCAoc3RydWN0IHYKICAgICBvdGhl cndpc2UuICAqLwogIAogIGV4dGVybiBpbnQgdmFsdWVfYml0c19hbnlfb3B0aW1pemVkX291dCAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTQxNTQsNyArNDEzNyw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgLyogTGlrZSB2YWx1ZV9vcHRpbWl6 ZWRfb3V0LCBidXQgcmV0dXJuIHRydWUgaWZmIHRoZSB3aG9sZSB2YWx1ZSBpcwogICAgIG9wdGlt aXplZCBvdXQuICAqLwotQEAgLTM4MywxMyArMzg0LDEzIEBAIGV4dGVybiBpbnQgdmFsdWVfZW50 aXJlbHlfb3B0aW1pemVkX291dAorQEAgLTM4NywxMyArMzg4LDEzIEBAIGV4dGVybiBpbnQgdmFs dWVfZW50aXJlbHlfb3B0aW1pemVkX291dAogICAgIExFTkdUSCBieXRlcyBhcyBvcHRpbWl6ZWQg b3V0LiAgKi8KICAKICBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX29wdGltaXplZF9vdXQg KHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00MTcwLDcgKzQxNTMsNyBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogIAogIC8qIFNldCBvciByZXR1cm4gZmllbGQgaW5k aWNhdGluZyB3aGV0aGVyIGEgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgb3IKICAgICBub3QsIGJh c2VkIG9uIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBzdXBwbGllZCBieSB0aGUgY29tcGlsZXIuCi1A QCAtNDcyLDcgKzQ3Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV9hcnJheSAoc3Ry dWMKK0BAIC00NzYsNyArNDc3LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqY29lcmNlX2FycmF5 IChzdHJ1YwogICAgIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJpdHMgYXJlIGEgc3ludGhldGljIHBv aW50ZXIuICAqLwogIAogIGV4dGVybiBpbnQgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTQxNzksNyArNDE2Miw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgLyogR2l2ZW4gYSB2YWx1ZSwgZGV0 ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbnRlbnRzIGJ5dGVzIHN0YXJ0aW5nIGF0CiAgICAgT0ZGU0VU IGFuZCBleHRlbmRpbmcgZm9yIExFTkdUSCBieXRlcyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1 cm5zCi1AQCAtNDgwLDcgKzQ4MSw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYml0c19zeW50aGV0aWNf cG9pbnRlcgorQEAgLTQ4NCw3ICs0ODUsNyBAQCBleHRlcm4gaW50IHZhbHVlX2JpdHNfc3ludGhl dGljX3BvaW50ZXIKICAgICBieXRlIGlzIHVuYXZhaWxhYmxlLiAgKi8KICAKICBleHRlcm4gaW50 IHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTQx ODgsNyArNDE3MSw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAg CiAgLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbnRlbnRzIGJpdHMg c3RhcnRpbmcgYXQKICAgICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJpdHMgYXJl IGF2YWlsYWJsZS4gIFRoaXMgcmV0dXJucwotQEAgLTQ4OCw3ICs0ODksNyBAQCBleHRlcm4gaW50 IHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3QKK0BAIC00OTIsNyArNDkzLDcgQEAgZXh0ZXJu IGludCB2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0CiAgICAgYml0IGlzIHVuYXZhaWxhYmxl LiAgKi8KICAKICBleHRlcm4gaW50IHZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbHVlLApAQCAtNDE5Nyw3ICs0MTgwLDcgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL3ZhbHVlLmgKICAKICAvKiBMaWtlIHZhbHVlX2J5dGVzX2F2YWlsYWJsZSwgYnV0 IHJldHVybiBmYWxzZSBpZiBhbnkgYnl0ZSBpbiB0aGUKICAgICB3aG9sZSBvYmplY3QgaXMgdW5h dmFpbGFibGUuICAqLwotQEAgLTUwMiw3ICs1MDMsNyBAQCBleHRlcm4gaW50IHZhbHVlX2VudGly ZWx5X3VuYXZhaWxhYmxlIChzCitAQCAtNTA2LDcgKzUwNyw3IEBAIGV4dGVybiBpbnQgdmFsdWVf ZW50aXJlbHlfdW5hdmFpbGFibGUgKHMKICAgICBMRU5HVEggYnl0ZXMgYXMgdW5hdmFpbGFibGUu ICAqLwogIAogIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVj dCB2YWx1ZSAqdmFsdWUsCkBAIC00MjA2LDcgKzQxODksNyBAQCBJbmRleDogZ2RiLTcuOS45MC4y MDE1MDcwOS9nZGIvdmFsdWUuaAogIAogIC8qIE1hcmsgVkFMVUUncyBjb250ZW50IGJpdHMgc3Rh cnRpbmcgYXQgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yCiAgICAgTEVOR1RIIGJpdHMgYXMgdW5h dmFpbGFibGUuICAqLwotQEAgLTU2Myw5ICs1NjQsOSBAQCBleHRlcm4gdm9pZCBtYXJrX3ZhbHVl X2JpdHNfdW5hdmFpbGFibGUKK0BAIC01NjcsOSArNTY4LDkgQEAgZXh0ZXJuIHZvaWQgbWFya192 YWx1ZV9iaXRzX3VuYXZhaWxhYmxlCiAgICAgYWZ0ZXIgdGhlIGluZmVyaW9yIGlzIGdvbmUsIGl0 IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLAogICAgIHRoaXMgcm91dGluZSBt dXN0IG5vdCBiZSBjYWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICovCiAgCkBAIC00MjE3LDkgKzQy MDAsOSBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogKwkJCSAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZzZXQyLAogKwkJCSAgICAgIExP TkdFU1QgbGVuZ3RoKTsKICAKLSAvKiBSZWFkIExFTkdUSCBieXRlcyBvZiBtZW1vcnkgc3RhcnRp bmcgYXQgTUVNQUREUiBpbnRvIEJVRkZFUiwgd2hpY2gKLSAgICBpcyAob3Igd2lsbCBiZSBjb3Bp ZWQgdG8pIFZBTCdzIGNvbnRlbnRzIGJ1ZmZlciBvZmZzZXQgYnkKLUBAIC01NzQsNyArNTc1LDcg QEAgZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydQorIC8qIFJlYWQgTEVO R1RIIGFkZHJlc3NhYmxlIG1lbW9yeSB1bml0cyBzdGFydGluZyBhdCBNRU1BRERSIGludG8gQlVG RkVSLAorICAgIHdoaWNoIGlzIChvciB3aWxsIGJlIGNvcGllZCB0bykgVkFMJ3MgY29udGVudHMg YnVmZmVyIG9mZnNldCBieQorQEAgLTU3OCw3ICs1NzksNyBAQCBleHRlcm4gaW50IHZhbHVlX2Nv bnRlbnRzX2VxIChjb25zdCBzdHJ1CiAgICAgbWVtb3J5IGlzIGxpa2V3aXNlIHVuYXZhaWxhYmxl LiAgU1RBQ0sgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIG1lbW9yeQogICAgIGlzIGtub3duIHRvIGJl IHN0YWNrIG1lbW9yeS4gICovCiAgCkBAIC00MjI4LDcgKzQyMTEsNyBAQCBJbmRleDogZ2RiLTcu OS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogIAkJCSAgICAgICBpbnQgc3RhY2ssIENPUkVfQURE UiBtZW1hZGRyLAogIAkJCSAgICAgICBnZGJfYnl0ZSAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsK ICAKLUBAIC02MTAsMTcgKzYxMSwxOCBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmllbGRfYXNf bG9uZyAoc3RyCitAQCAtNjE0LDE3ICs2MTUsMTggQEAgZXh0ZXJuIExPTkdFU1QgdW5wYWNrX2Zp ZWxkX2FzX2xvbmcgKHN0cgogIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAogIAkJ CQkgICAgIGludCBmaWVsZG5vKTsKICBleHRlcm4gaW50IHVucGFja192YWx1ZV9maWVsZF9hc19s b25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC00MjUw LDcgKzQyMzMsNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogIAkJ CQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwogIAogIGV4dGVybiB2b2lkIHBhY2tfbG9u ZyAoZ2RiX2J5dGUgKmJ1Ziwgc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1QgbnVtKTsKLUBAIC02 NzcsMTIgKzY3OSwxMiBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpkZWZhdWx0X3JlYWRfdmFyX3Zh CitAQCAtNjgzLDEyICs2ODUsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZGVmYXVsdF9yZWFk X3Zhcl92YQogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlIChzdHJ1Y3Qg dHlwZSAqdHlwZSk7CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfdmFsdWVfbGF6eSAo c3RydWN0IHR5cGUgKnR5cGUpOwpAQCAtNDI2OSw3ICs0MjUyLDcgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0 ZV9yZXBlYXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgY291bnQpOwogIAotQEAgLTc2 MCwxNiArNzYyLDE2IEBAIGV4dGVybiBpbnQgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHYK K0BAIC03NjYsMTYgKzc2OCwxNiBAQCBleHRlcm4gaW50IGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0 cnVjdCB2CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZmllbGQgKHN0cnVjdCB2YWx1 ZSAqYXJnMSwgaW50IGZpZWxkbm8pOwogIApAQCAtNDI4OSw3ICs0MjcyLDcgQEAgSW5kZXg6IGdk Yi03LjkuOTAuMjAxNTA3MDkvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV9jYXN0X3BvaW50ZXJzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgaW50KTsK ICAKLUBAIC04NjQsNyArODY2LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X2ludGVybmFsdmFyX3N0cmlu ZyAoc3RydQorQEAgLTg3MCw3ICs4NzIsNyBAQCBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJf c3RyaW5nIChzdHJ1CiAgZXh0ZXJuIHZvaWQgY2xlYXJfaW50ZXJuYWx2YXIgKHN0cnVjdCBpbnRl cm5hbHZhciAqdmFyKTsKICAKICBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50 IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwKQEAgLTQyOTgsNyArNDI4MSw3IEBAIEluZGV4OiBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCQkJCSAgICAgICBpbnQgYml0cG9zLCBp bnQgYml0c2l6ZSwKICAJCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqbmV3dmFsdWUpOwogIAotQEAg LTk0NSw3ICs5NDcsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV94X3Vub3AgKHN0cnVj CitAQCAtOTUxLDcgKzk1Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3hfdW5vcCAo c3RydWMKICAJCQkJICAgZW51bSBub3NpZGUgbm9zaWRlKTsKICAKICBleHRlcm4gc3RydWN0IHZh bHVlICp2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVs ZCAqZiwKQEAgLTQzMDcsNyArNDI5MCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi92YWx1ZS5oCiAgCiAgZXh0ZXJuIGludCBiaW5vcF90eXBlc191c2VyX2RlZmluZWRfcCAoZW51 bSBleHBfb3Bjb2RlIG9wLAogIAkJCQkgICAgICAgc3RydWN0IHR5cGUgKnR5cGUxLAotQEAgLTk3 Myw3ICs5NzUsOCBAQCBleHRlcm4gdm9pZCByZWxlYXNlX3ZhbHVlX29yX2luY3JlZiAoc3RyCitA QCAtOTc5LDcgKzk4MSw4IEBAIGV4dGVybiB2b2lkIHJlbGVhc2VfdmFsdWVfb3JfaW5jcmVmIChz dHIKICBleHRlcm4gaW50IHJlY29yZF9sYXRlc3RfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsKTsK ICAKICBleHRlcm4gdm9pZCBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0 ZSAqYWRkciwKQEAgLTQzMTcsNyArNDMwMCw3IEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHZvaWQgdHlwZV9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywKICAJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgc2hvdyk7Ci1AQCAtMTAwMyw3ICsxMDA2LDcgQEAgZXh0ZXJuIHZvaWQgdmFsdWVfcHJpbnRf YXJyYXlfZWxlbWVudHMgKAorQEAgLTEwMDksNyArMTAxMiw3IEBAIGV4dGVybiB2b2lkIHZhbHVl X3ByaW50X2FycmF5X2VsZW1lbnRzICgKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9yZWxl YXNlX3RvX21hcmsgKHN0cnVjdCB2YWx1ZSAqbWFyayk7CiAgCiAgZXh0ZXJuIHZvaWQgdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC00MzI2 LDcgKzQzMDksNyBAQCBJbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvdmFsdWUuaAogIAkJ ICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgICAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zLAotQEAgLTEwNTYsMTAgKzEwNTksMTEgQEAgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbAorQEAgLTEwNjIsMTAgKzEwNjUsMTEgQEAgZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0ZXJhbF9jb21wbAogIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKmZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKiwKICAJCQkJCQlzdHJ1 Y3Qgb2JqZmlsZSAqKik7CiAgCkBAIC00MzQwLDEwICs0MzIzLDEwIEBAIEluZGV4OiBnZGItNy45 LjkwLjIwMTUwNzA5L2dkYi92YWx1ZS5oCiAgCiAgLyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAg Ki8KICAKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9zMzkwLWxpbnV4LW5hdC5jCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3MzOTAtbGludXgtbmF0LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAx NS0wNy0wOSAxODoyNDozOS4wMjgzNTYzOTMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjYyMzgzOTc5ICswMjAw CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1 LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQyMzY1MDEwICswMTAw CiBAQCAtNjEyLDcgKzYxMiw3IEBAIHMzOTBfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1Y3Qg dGFyZ2UKICAKICBzdGF0aWMgaW50CkBAIC00MzUzLDExICs0MzM2LDExIEBAIEluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIDE7CiAg fQotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL2V4dGVuc2lvbi1wcml2LmgKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXh0ZW5zaW9uLXByaXYuaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvZXh0ZW5zaW9uLXByaXYuaAkyMDE1LTA3 LTA5IDE4OjI0OjM5LjAyODM1NjM5MyArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2V4dGVuc2lvbi1wcml2LmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjIzODM5NzkgKzAyMDAKLUBA IC0xODAsNyArMTgwLDcgQEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9vcHMKKy0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjUwMzUxOTA0ICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V4dGVu c2lvbi1wcml2LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDIzNjUwMTAgKzAxMDAKK0BAIC0xODEs NyArMTgxLDcgQEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9vcHMKICAgIGVudW0gZXh0X2xh bmdfcmMgKCphcHBseV92YWxfcHJldHR5X3ByaW50ZXIpCiAgICAgIChjb25zdCBzdHJ1Y3QgZXh0 ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKiwKICAgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQzNjYsMTAgKzQzNDksMTAgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL2V4dGVuc2lvbi1wcml2LmgKICAgICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAogICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAogICAgICAgY29uc3Qgc3RydWN0 IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKTsKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4y MDE1MDcwOS5vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wNy0wOSAxODoy NDozOS4wMjgzNTYzOTMgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9weXRob24v cHl0aG9uLWludGVybmFsLmgJMjAxNS0wNy0wOSAxODoyNDo0Mi4yNjMzODM5ODggKzAyMDAKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJ MjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQy MzY1MDEwICswMTAwCiBAQCAtMzE2LDcgKzMxNiw3IEBAIGV4dGVybiBpbnQgZ2RicHlfYXV0b19s b2FkX2VuYWJsZWQgKGNvbnMKICBleHRlcm4gZW51bSBleHRfbGFuZ19yYyBnZGJweV9hcHBseV92 YWxfcHJldHR5X3ByaW50ZXIKICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2Rl Zm4gKiwKQEAgLTQzNzksMTEgKzQzNjIsMTEgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCByZWN1cnNlLAogICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjkuOTAuMjAx NTA3MDkvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjkwLjIwMTUw NzA5Lm9yaWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTA3LTA5IDE4OjI0OjM5LjAyOTM1 NjQwMSArMDIwMAotKysrIGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMu YwkyMDE1LTA3LTA5IDE4OjI0OjQyLjI2NDM4Mzk5NiArMDIwMAotQEAgLTc0MiwxNCArNzQyLDE0 IEBAIGRlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnUKKy0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yNTIzNTE5MTcgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0 LWRlbGVnYXRlcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQzMzY1MDE3ICswMTAwCitAQCAtNzM2 LDE0ICs3MzYsMTQgQEAgZGVidWdfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydQog IH0KICAKICBzdGF0aWMgaW50CkBAIC00NDAwLDcgKzQzODMsNyBAQCBJbmRleDogZ2RiLTcuOS45 MC4yMDE1MDcwOS9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgewogICAgaW50IHJlc3VsdDsKICAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIi0+ICVzLT50b19yZWdpb25fb2tfZm9y X2h3X3dhdGNocG9pbnQgKC4uLilcbiIsIGRlYnVnX3RhcmdldC50b19zaG9ydG5hbWUpOwotQEAg LTc1OSw3ICs3NTksNyBAQCBkZWJ1Z19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVj CitAQCAtNzUzLDcgKzc1Myw3IEBAIGRlYnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAo c3RydWMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0 X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMSk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAi LCBnZGJfc3RkbG9nKTsKQEAgLTQ0MDksMjMgKzQzOTIsMjMgQEAgSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIikg PSAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKHJlc3VsdCk7CiAg ICBmcHV0c191bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsKLUluZGV4OiBnZGItNy45Ljkw LjIwMTUwNzA5L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45Ljkw LjIwMTUwNzA5Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNS0wNy0wOSAxODoyNDoz OS4wMzAzNTY0MTAgKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9hYXJjaDY0LWxp bnV4LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY0MzgzOTk2ICswMjAwCi1AQCAtMTM4Niw3 ICsxMzg2LDcgQEAgYWFyY2g2NF9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0CistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTEx LTAyIDIxOjIzOjExLjI1MjM1MTkxNyArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQzMzY1MDE3ICswMTAw CitAQCAtNzM2LDcgKzczNiw3IEBAIGFhcmNoNjRfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKHN0 cnVjdAogIAogIHN0YXRpYyBpbnQKICBhYXJjaDY0X2xpbnV4X3JlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCiAtCQkJCQkgICBDT1JFX0FERFIgYWRk ciwgaW50IGxlbikKICsJCQkJCSAgIENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbikKICB7Ci0g ICBDT1JFX0FERFIgYWxpZ25lZF9hZGRyOwotIAotSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkv Z2RiL25hdC94ODYtZHJlZ3MuYworICAgcmV0dXJuIGFhcmNoNjRfbGludXhfcmVnaW9uX29rX2Zv cl93YXRjaHBvaW50IChhZGRyLCBsZW4pOworIH0KK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcw OS5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0wNy0wOSAxODoyNDozOS4wMzAzNTY0MTAg KzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0w Ny0wOSAxODoyNDo0Mi4yNjQzODM5OTYgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTIzNTE5MTcgKzAx MDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjQ0MzY1MDI0ICswMTAwCiBAQCAtMzg0LDcgKzM4NCw3IEBAIHg4Nl9yZW1v dmVfYWxpZ25lZF93YXRjaHBvaW50IChzdHJ1Y3QgeDgKICAKICBzdGF0aWMgaW50CkBAIC00NDQ0 LDEwICs0NDI3LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQveDg2LWRy ZWdzLmMKICB7CiAgICBpbnQgbnJlZ3M7CiAgCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUt MDctMDkgMTg6MjQ6MzkuMDMwMzU2NDEwICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9n ZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY1Mzg0 MDA1ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvY29tcGlsZS9jb21w aWxlLWMtc3VwcG9ydC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCisrKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAogQEAgLTI5OSwxMSArMjk5LDExIEBAIGdl bmVyYXRlX3JlZ2lzdGVyX3N0cnVjdCAoc3RydWN0IHVpX2ZpbGUKICAKICAJICAgICAgZGVmYXVs dDoKQEAgLTQ0NjIsMTAgKzQ0NDUsMTAgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogIAkgICAgICB9CiAgCSAgICBmcHV0c191bmZp bHRlcmVkICgiO1xuIiwgc3RyZWFtKTsKICAKLUluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dk Yi9uYXQveDg2LWRyZWdzLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4 Ni1kcmVncy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS45MC4yMDE1MDcwOS5vcmlnL2dkYi9u YXQveDg2LWRyZWdzLmgJMjAxNS0wNy0wOSAxODoyNDozOS4wMzAzNTY0MTAgKzAyMDAKLSsrKyBn ZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0wNy0wOSAxODoyNDo0 Mi4yNjUzODQwMDUgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9uYXQv eDg2LWRyZWdzLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTMzNTE5MjMgKzAxMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjQ0MzY1MDI0ICswMTAwCiBAQCAtMTE2LDcgKzExNiw3IEBAIGV4dGVybiBpbnQgeDg2X2RyX3Jl bW92ZV93YXRjaHBvaW50IChzdHIKICAvKiBSZXR1cm4gbm9uLXplcm8gaWYgd2UgY2FuIHdhdGNo IGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0YXJ0cyBhdAogICAgIGFkZHJlc3MgQUREUiBhbmQgd2hv c2UgbGVuZ3RoIGlzIExFTiBieXRlcy4gICovCkBAIC00NDc1LDExICs0NDU4LDExIEBAIEluZGV4 OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9uYXQveDg2LWRyZWdzLmgKICAKICAvKiBJZiB0aGUg aW5mZXJpb3IgaGFzIHNvbWUgYnJlYWsvd2F0Y2hwb2ludCB0aGF0IHRyaWdnZXJlZCwgc2V0IHRo ZQogICAgIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoYXQgYnJlYWsvd2F0Y2hwb2ludCBhbmQg cmV0dXJuIHRydWUuCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIveDg2LW5hdC5jCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3g4Ni1uYXQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIveDg2LW5hdC5jCTIwMTUtMDctMDkgMTg6MjQ6 MzkuMDMxMzU2NDE4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIveDg2LW5hdC5j CTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY1Mzg0MDA1ICswMjAwCi1AQCAtMTc4LDcgKzE3OCw3IEBA IHg4Nl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi94ODYtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTMzNTE5 MjMgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIveDg2LW5hdC5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjQ0MzY1MDI0ICswMTAwCitAQCAtMTc0LDcgKzE3NCw3IEBAIHg4Nl9yZW1v dmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMKICAKICBzdGF0aWMgaW50CiAgeDg2X3Jl Z2lvbl9va19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC00NDg4 LDExICs0NDcxLDExIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi94ODYtbmF0LmMK ICB7CiAgICBzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAgICAgPSB4ODZfZGVi dWdfcmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4OiBnZGIt Ny45LjkwLjIwMTUwNzA5L2dkYi9ndWlsZS9ndWlsZS1pbnRlcm5hbC5oCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45LjkwLjIwMTUwNzA5Lm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAx NS0wNy0wOSAxODoyNDozOS4wMzEzNTY0MTggKzAyMDAKLSsrKyBnZGItNy45LjkwLjIwMTUwNzA5 L2dkYi9ndWlsZS9ndWlsZS1pbnRlcm5hbC5oCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY1Mzg0MDA1 ICswMjAwCi1AQCAtNTYyLDcgKzU2Miw3IEBAIGV4dGVybiB2b2lkIGdkYnNjbV9wcmVzZXJ2ZV92 YWx1ZXMKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9ndWlsZS9ndWlsZS1pbnRl cm5hbC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0xMS0wMiAyMToyMzox My4yNDQzNjUwMjQgKzAxMDAKK0BAIC02MDYsNyArNjA2LDcgQEAgZXh0ZXJuIHZvaWQgZ2Ric2Nt X3ByZXNlcnZlX3ZhbHVlcwogIGV4dGVybiBlbnVtIGV4dF9sYW5nX3JjIGdkYnNjbV9hcHBseV92 YWxfcHJldHR5X3ByaW50ZXIKICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2Rl Zm4gKiwKICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBA IC00NTAxLDEwICs0NDg0LDEwIEBAIEluZGV4OiBnZGItNy45LjkwLjIwMTUwNzA5L2dkYi9ndWls ZS9ndWlsZS1pbnRlcm5hbC5oCiAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vy c2UsCiAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIv Z3VpbGUvc2NtLXByZXR0eS1wcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuOTAuMjAx NTA3MDkub3JpZy9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6 MzkuMDMxMzU2NDE4ICswMjAwCi0rKysgZ2RiLTcuOS45MC4yMDE1MDcwOS9nZGIvZ3VpbGUvc2Nt LXByZXR0eS1wcmludC5jCTIwMTUtMDctMDkgMTg6MjQ6NDIuMjY2Mzg0MDEzICswMjAwCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjU0MzUxOTMwICswMTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NTM2 NTAzMCArMDEwMAogQEAgLTk1OCw3ICs5NTgsNyBAQCBwcHNjbV9wcmludF9jaGlsZHJlbiAoU0NN IHByaW50ZXIsIGVudW0KICBlbnVtIGV4dF9sYW5nX3JjCiAgZ2Ric2NtX2FwcGx5X3ZhbF9wcmV0 dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5n LAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2ggYi9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoCmluZGV4IDljYTAwMTAuLjcxYWYzY2YgMTAw NjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2gKKysrIGIvZ2RiLXJo Yno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaApAQCAtNTIsMTEgKzUyLDExIEBAIENvbnRlbnQt VHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250 ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtZW5zdXJlLXNpemVf dC5wYXRjaAogCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWxwaGEtdGRlcC5jCitJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvYWxwaGEtdGRlcC5jCTIwMTQtMDYtMTMg MjI6MTQ6NDkuNzI1ODQ2MzgzICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWxw aGEtdGRlcC5jCTIwMTQtMDYtMTMgMjI6MTQ6NTMuMTYzODUwMDgxICswMjAwCi1AQCAtNDE0LDYg KzQxNCwxMyBAQCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYWxwaGEtdGRlcC5jCTIwMTUtMTAtMjQgMjM6 MDM6NTAuNjE0ODk4MDI1ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FscGhh LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjAzOjUyLjA5OTkwNzc0OSArMDIwMAorQEAgLTQxMyw2ICs0 MTMsMTMgQEAgYWxwaGFfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogICAgICBh Y2N1bXVsYXRlX3NpemUgPSAwOwogICAgZWxzZQogICAgICBhY2N1bXVsYXRlX3NpemUgLT0gc2l6 ZW9mKGFyZ19yZWdfYnVmZmVyKTsKQEAgLTcwLDI0ICs3MCwyNCBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvYWxwaGEtdGRlcC5jCiAgICBzcCAtPSBhY2N1bXVsYXRlX3NpemU7CiAg CiAgICAvKiBLZWVwIHNwIGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiAxNiBhcyB0aGUgQUJJIHJl cXVpcmVzLiAgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jcC12YWxwcmludC5j CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2NwLXZhbHByaW50LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNC0w Ni0xMyAyMjoxNDo0OS43MjU4NDYzODMgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9jcC12YWxwcmludC5jCTIwMTQtMDYtMTMgMjI6MTQ6NTMuMTY0ODUwMDgxICswMjAwCi1AQCAt NTM4LDYgKzUzOCw4IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTUtMTAt MjQgMjM6MDM6NTIuMTAwOTA3NzU2ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L2NwLXZhbHByaW50LmMJMjAxNS0xMC0yNCAyMzowNjoyMC40OTY4Nzk0MzMgKzAyMDAKK0BAIC01 MzYsNiArNTM2LDggQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Ywog IAkJICBnZGJfYnl0ZSAqYnVmOwogIAkJICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKICAKICsJ CSAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSk7 CiArCi0gCQkgIGJ1ZiA9IHhtYWxsb2MgKFRZUEVfTEVOR1RIIChiYXNlY2xhc3MpKTsKKyAJCSAg YnVmID0gKGdkYl9ieXRlICopIHhtYWxsb2MgKFRZUEVfTEVOR1RIIChiYXNlY2xhc3MpKTsKICAJ CSAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1Zik7CiAgCi1JbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9y aWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTQtMDYtMTMgMjI6MTQ6NDkuNzI2ODQ2Mzg0ICswMjAwCi0r KysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMJMjAxNC0wNi0xMyAyMjoxNDo1 My4xNjY4NTAwODQgKzAyMDAKLUBAIC0xNjY2LDYgKzE2NjYsOCBAQCByZWFkX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp2KQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2R3 YXJmMmxvYy5jCTIwMTUtMTAtMjQgMjM6MDM6NTAuNjE2ODk4MDM5ICswMjAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTAtMjQgMjM6MDM6NTIuMTAxOTA3 NzYyICswMjAwCitAQCAtMTc0NCw2ICsxNzQ0LDggQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVj dCB2YWx1ZSAqdikKICAKICAgICAgICB0aGlzX3NpemUgPSAodGhpc19zaXplX2JpdHMgKyBzb3Vy Y2Vfb2Zmc2V0X2JpdHMgJSA4ICsgNykgLyA4OwogICAgICAgIHNvdXJjZV9vZmZzZXQgPSBzb3Vy Y2Vfb2Zmc2V0X2JpdHMgLyA4OwpAQCAtOTYsNyArOTYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKICAgICAgICBpZiAoYnVmZmVyX3NpemUgPCB0aGlzX3Np emUpCiAgCXsKICAJICBidWZmZXJfc2l6ZSA9IHRoaXNfc2l6ZTsKLUBAIC0xODU3LDYgKzE4NTks NyBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0CitAQCAtMTkzNSw2 ICsxOTM3LDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogIAl9 CiAgICAgICAgZWxzZQogIAl7CkBAIC0xMDQsMzUgKzEwNCwzNSBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKICAJICBpZiAoYnVmZmVyX3NpemUgPCB0aGlzX3Np emUpCiAgCSAgICB7CiAgCSAgICAgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOwotSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2ZpbmRjbWQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDIyL2dkYi9maW5kY21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9y aWcvZ2RiL2ZpbmRjbWQuYwkyMDE0LTA2LTEzIDIyOjE0OjQ5LjcyNjg0NjM4NCArMDIwMAotKysr IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2ZpbmRjbWQuYwkyMDE0LTA2LTEzIDIyOjE0OjUzLjE2 Njg1MDA4NCArMDIwMAotQEAgLTE4NSw2ICsxODUsNyBAQCBwYXJzZV9maW5kX2FyZ3MgKGNoYXIg KmFyZ3MsIFVMT05HRVNUICptCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvZmlu ZGNtZC5jCTIwMTUtMTAtMjQgMjM6MDM6NTIuMTAxOTA3NzYyICswMjAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL2ZpbmRjbWQuYwkyMDE1LTEwLTI0IDIzOjA2OjU3LjIwODExOTgxMyAr MDIwMAorQEAgLTE4NCw2ICsxODQsNyBAQCBwYXJzZV9maW5kX2FyZ3MgKGNoYXIgKmFyZ3MsIFVM T05HRVNUICptCiAgCSAgc2l6ZV90IGN1cnJlbnRfb2Zmc2V0ID0gcGF0dGVybl9idWZfZW5kIC0g cGF0dGVybl9idWY7CiAgCiAgCSAgcGF0dGVybl9idWZfc2l6ZSA9IHBhdHRlcm5fYnVmX3NpemVf bmVlZCAqIDI7CiArCSAgdWxvbmdlc3RfZml0c19ob3N0X29yX2Vycm9yIChwYXR0ZXJuX2J1Zl9z aXplKTsKLSAJICBwYXR0ZXJuX2J1ZiA9IHhyZWFsbG9jIChwYXR0ZXJuX2J1ZiwgcGF0dGVybl9i dWZfc2l6ZSk7CisgCSAgcGF0dGVybl9idWYgPSAoZ2RiX2J5dGUgKikgeHJlYWxsb2MgKHBhdHRl cm5fYnVmLCBwYXR0ZXJuX2J1Zl9zaXplKTsKICAJICBwYXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJu X2J1ZiArIGN1cnJlbnRfb2Zmc2V0OwogIAl9Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3AtdmFscHJp bnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvcC12YWxw cmludC5jCTIwMTQtMDYtMTMgMjI6MTQ6NDkuNzI4ODQ2Mzg3ICswMjAwCi0rKysgZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvcC12YWxwcmludC5jCTIwMTQtMDYtMTMgMjI6MTQ6NTMuMTY2ODUwMDg0 ICswMjAwCi1AQCAtNzcyLDYgKzc3Miw3IEBAIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0 cnVjdCB0eXBlICoKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9wLXZhbHByaW50 LmMJMjAxNS0xMC0yNCAyMzowMzo1Mi4xMDE5MDc3NjIgKzAyMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvcC12YWxwcmludC5jCTIwMTUtMTAtMjQgMjM6MDc6MTguNDU3MjU4OTUwICsw MjAwCitAQCAtNzY4LDYgKzc2OCw3IEBAIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVj dCB0eXBlICoKICAJICAgICAgZ2RiX2J5dGUgKmJ1ZjsKICAJICAgICAgc3RydWN0IGNsZWFudXAg KmJhY2tfdG87CiAgCiArCSAgICAgIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9M RU5HVEggKGJhc2VjbGFzcykpOwotIAkgICAgICBidWYgPSB4bWFsbG9jIChUWVBFX0xFTkdUSCAo YmFzZWNsYXNzKSk7CisgCSAgICAgIGJ1ZiA9IChnZGJfYnl0ZSAqKSB4bWFsbG9jIChUWVBFX0xF TkdUSCAoYmFzZWNsYXNzKSk7CiAgCSAgICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVl LCBidWYpOwogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3V0aWxzLmMKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdXRpbHMuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdXRpbHMuYwkyMDE0LTA2LTEzIDIyOjE0OjUzLjE2Njg1 MDA4NCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3V0aWxzLmMJMjAxNC0wNi0x MyAyMjoxNToxNi44Mzk4NzUzNDEgKzAyMDAKLUBAIC0yODM4LDYgKzI4MzgsMTggQEAgc3RyaW5n X3RvX2NvcmVfYWRkciAoY29uc3QgY2hhciAqbXlfc3RyaQorLS0tIGdkYi03LjEwLjUwLjIwMTUx MDIyLm9yaWcvZ2RiL3V0aWxzLmMJMjAxNS0xMC0yNCAyMzowMzo1MC42MTc4OTgwNDUgKzAyMDAK KysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdXRpbHMuYwkyMDE1LTEwLTI0IDIzOjAzOjUy LjEwMjkwNzc2OSArMDIwMAorQEAgLTI4MzUsNiArMjgzNSwxOCBAQCBzdHJpbmdfdG9fY29yZV9h ZGRyIChjb25zdCBjaGFyICpteV9zdHJpCiAgICByZXR1cm4gYWRkcjsKICB9CiAgCkBAIC0xNTEs MzEgKzE1MSwzMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdXRpbHMuYwogIGNo YXIgKgogIGdkYl9yZWFscGF0aCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCiAgewotSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmln L2dkYi92YWxvcHMuYwkyMDE0LTA2LTEzIDIyOjE0OjQ5LjczMDg0NjM4OSArMDIwMAotKysrIGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCTIwMTQtMDYtMTMgMjI6MTQ6NTMuMTY5ODUw MDg4ICswMjAwCi1AQCAtMjA3NCw2ICsyMDc0LDcgQEAgc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNv bnN0IGNoYXIgKm5hbWUsCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvdmFsb3Bz LmMJMjAxNS0xMC0yNCAyMzowMzo1Mi4xMDM5MDc3NzUgKzAyMDAKKysrKyBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvdmFsb3BzLmMJMjAxNS0xMC0yNCAyMzowODoyNy4wNTY3MDk1OTkgKzAyMDAK K0BAIC0yMDU3LDYgKzIwNTcsNyBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAq bmFtZSwKICAJICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgCSAgICAgIENPUkVfQURE UiBhZGRyZXNzOwogIAogKwkgICAgICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVf TEVOR1RIIChiYXNlY2xhc3MpKTsKLSAJICAgICAgdG1wID0geG1hbGxvYyAoVFlQRV9MRU5HVEgg KGJhc2VjbGFzcykpOworIAkgICAgICB0bXAgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAoVFlQRV9M RU5HVEggKGJhc2VjbGFzcykpOwogIAkgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJl ZSwgdG1wKTsKICAJICAgICAgYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKCphcmcxcCk7Ci1JbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDIyL2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5v cmlnL2dkYi92YWx1ZS5jCTIwMTQtMDYtMTMgMjI6MTQ6NDkuNzMyODQ2MzkxICswMjAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwkyMDE0LTA2LTEzIDIyOjE0OjUzLjE2OTg1 MDA4OCArMDIwMAotQEAgLTgyNCw2ICs4MjQsNyBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1 Y3QgdHlwZSAqdHlwZSkKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi92YWx1ZS5j CTIwMTUtMTAtMjQgMjM6MDM6NTAuNjE5ODk4MDU4ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzowODowMC4wNDk1MzEyOTEgKzAyMDAKK0BA IC05MzQsNiArOTM0LDcgQEAgYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUp CiAgICAgICBkZXNjcmlwdGlvbiBjb3JyZWN0bHkuICAqLwogICAgY2hlY2tfdHlwZWRlZiAodHlw ZSk7CiAgCiArICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVfTEVOR1RIICh0eXBl KSk7Ci0gICB2YWwgPSAoc3RydWN0IHZhbHVlICopIHh6YWxsb2MgKHNpemVvZiAoc3RydWN0IHZh bHVlKSk7CisgICB2YWwgPSBYQ05FVyAoc3RydWN0IHZhbHVlKTsKICAgIHZhbC0+Y29udGVudHMg PSBOVUxMOwogICAgdmFsLT5uZXh0ID0gYWxsX3ZhbHVlczsKLUBAIC04NTUsNiArODU2LDggQEAg YWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtOTY0LDYgKzk2NSw4 IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKQogIHN0YXRpYyB2b2lk CiAgYWxsb2NhdGVfdmFsdWVfY29udGVudHMgKHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKQEAgLTE4 NCw3ICsxODQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogICAg aWYgKCF2YWwtPmNvbnRlbnRzKQogICAgICB2YWwtPmNvbnRlbnRzID0gKGdkYl9ieXRlICopIHh6 YWxsb2MgKFRZUEVfTEVOR1RIICh2YWwtPmVuY2xvc2luZ190eXBlKSk7CiAgfQotQEAgLTI4MzEs OCArMjgzNCwxMiBAQCB2b2lkCitAQCAtMjk5NSw4ICsyOTk4LDEyIEBAIHZvaWQKICBzZXRfdmFs dWVfZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlwZSAqbmV3X2Vu Y2xfdHlwZSkKICB7CiAgICBpZiAoVFlQRV9MRU5HVEggKG5ld19lbmNsX3R5cGUpID4gVFlQRV9M RU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKSkgCkBAIC0xOTksMTEgKzE5OSwxMSBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIAogICAgdmFsLT5lbmNs b3NpbmdfdHlwZSA9IG5ld19lbmNsX3R5cGU7CiAgfQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3ZheC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmF4LXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdmF4LXRk ZXAuYwkyMDE0LTA2LTEzIDIyOjE0OjQ5LjczMjg0NjM5MSArMDIwMAotKysrIGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3ZheC10ZGVwLmMJMjAxNC0wNi0xMyAyMjoxNDo1My4xNjk4NTAwODggKzAy MDAKLUBAIC0yMjMsNiArMjIzLDcgQEAgdmF4X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyYworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAx NS0xMC0yNCAyMzowMzo1MC42MTk4OTgwNTggKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvdmF4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjAzOjUyLjEwNTkwNzc4OCArMDIwMAorQEAg LTIxOSw2ICsyMTksNyBAQCB2YXhfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj CiAgCSAgVUxPTkdFU1QgYWRkcjsKICAKICAJICByZWdjYWNoZV9yYXdfcmVhZF91bnNpZ25lZCAo cmVnY2FjaGUsIFZBWF9SMF9SRUdOVU0sICZhZGRyKTsKQEAgLTIxMSwxMSArMjExLDExIEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YXgtdGRlcC5jCiAgCSAgcmVhZF9tZW1vcnkg KGFkZHIsIHJlYWRidWYsIGxlbik7CiAgCX0KICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9kZWZzLmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvZGVmcy5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9kZWZzLmgJMjAxNC0wNi0x MyAyMjoxNDo0OS43MzI4NDYzOTEgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9k ZWZzLmgJMjAxNC0wNi0xMyAyMjoxNDo1My4xNjk4NTAwODggKzAyMDAKLUBAIC03NTYsNCArNzU2 LDYgQEAgZW51bSBibG9ja19lbnVtCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIv ZGVmcy5oCTIwMTUtMTAtMjQgMjM6MDM6NTAuNjE5ODk4MDU4ICswMjAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL2RlZnMuaAkyMDE1LTEwLTI0IDIzOjAzOjUyLjEwNTkwNzc4OCArMDIw MAorQEAgLTY5MCw0ICs2OTAsNiBAQCBlbnVtIGJsb2NrX2VudW0KICAKICAjaW5jbHVkZSAidXRp bHMuaCIKICAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBhdGNo IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaAppbmRleCBlY2NhMDY4Li5lN2Mw YThjIDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBhdGNoCisrKyBi L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2gKQEAgLTk2LDExICs5NiwxMSBAQCBD b250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2Jp dAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Yml0cG9zLXdwLnBh dGNoCiAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tbGludXgtbmF0LmMKK0lu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYXJtLWxpbnV4LW5hdC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0w MS0wNSAyMjoxMDozMC4xNzA3MjY3NzQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9hcm0tbGludXgtbmF0LmMJMjAxNS0wMS0wNSAyMjoxMDozNS41NzE3NTEzMjQgKzAxMDAKLUBA IC0xMjk1LDcgKzEyOTUsNyBAQCBhcm1fbGludXhfc3RvcHBlZF9ieV93YXRjaHBvaW50IChzdHJ1 Y3QKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9hcm0tbGludXgtbmF0LmMJMjAx NS0xMC0yNCAyMzoxMzoyNC42MTc2ODYxMjEgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMTAtMjQgMjM6MTM6MzIuMDUxNzM1NTAxICswMjAw CitAQCAtMTIwOSw3ICsxMjA5LDcgQEAgYXJtX2xpbnV4X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAo c3RydWN0CiAgc3RhdGljIGludAogIGFybV9saW51eF93YXRjaHBvaW50X2FkZHJfd2l0aGluX3Jh bmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LAogIAkJCQkJQ09SRV9BRERSIGFkZHIsCkBA IC0xMDksMTEgKzEwOSwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXJtLWxp bnV4LW5hdC5jCiAgewogICAgcmV0dXJuIHN0YXJ0IDw9IGFkZHIgJiYgc3RhcnQgKyBsZW5ndGgg LSAxID49IGFkZHI7CiAgfQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3BwYy1saW51 eC1uYXQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9wcGMtbGludXgtbmF0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3BwYy1saW51eC1u YXQuYwkyMDE1LTAxLTA1IDIyOjEwOjMwLjE3MTcyNjc3OSArMDEwMAotKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3Mjc1MTMy OSArMDEwMAotQEAgLTE4NjAsMTEgKzE4NjAsMTEgQEAgY2FuX3VzZV93YXRjaHBvaW50X2NvbmRf YWNjZWwgKHZvaWQpCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvcHBjLWxpbnV4 LW5hdC5jCTIwMTUtMTAtMjQgMjM6MTM6MjQuNjE3Njg2MTIxICswMjAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTEwLTI0IDIzOjEzOjMyLjA1MTcz NTUwMSArMDIwMAorQEAgLTE4MDcsMTEgKzE4MDcsMTEgQEAgY2FuX3VzZV93YXRjaHBvaW50X2Nv bmRfYWNjZWwgKHZvaWQpCiAgICAgQ09ORElUSU9OX1ZBTFVFIHdpbGwgaG9sZCB0aGUgdmFsdWUg d2hpY2ggc2hvdWxkIGJlIHB1dCBpbiB0aGUKICAgICBEVkMgcmVnaXN0ZXIuICAqLwogIHN0YXRp YyB2b2lkCkBAIC0xMjgsNyArMTI4LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3BwYy1saW51eC1uYXQuYwogICAgQ09SRV9BRERSIGFkZHJfZW5kX2RhdGEsIGFkZHJfZW5kX2R2 YzsKICAKICAgIC8qIFRoZSBEVkMgcmVnaXN0ZXIgY29tcGFyZXMgYnl0ZXMgd2l0aGluIGZpeGVk LWxlbmd0aCB3aW5kb3dzIHdoaWNoCi1AQCAtMTk1MSw3ICsxOTUxLDcgQEAgbnVtX21lbW9yeV9h Y2Nlc3NlcyAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE4OTgsNyArMTg5OCw3IEBAIG51bV9tZW1v cnlfYWNjZXNzZXMgKHN0cnVjdCB2YWx1ZSAqdikKICAgICBvZiB0aGUgY29uc3RhbnQuICAqLwog IHN0YXRpYyBpbnQKICBjaGVja19jb25kaXRpb24gKENPUkVfQUREUiB3YXRjaF9hZGRyLCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqY29uZCwKQEAgLTEzNyw3ICsxMzcsNyBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgewogICAgaW50IHBjID0gMSwgbnVtX2Fj Y2Vzc2VzX2xlZnQsIG51bV9hY2Nlc3Nlc19yaWdodDsKICAgIHN0cnVjdCB2YWx1ZSAqbGVmdF92 YWwsICpyaWdodF92YWwsICpsZWZ0X2NoYWluLCAqcmlnaHRfY2hhaW47Ci1AQCAtMjAxOSw3ICsy MDE5LDcgQEAgY2hlY2tfY29uZGl0aW9uIChDT1JFX0FERFIgd2F0Y2hfYWRkciwgcworQEAgLTE5 NjYsNyArMTk2Niw3IEBAIGNoZWNrX2NvbmRpdGlvbiAoQ09SRV9BRERSIHdhdGNoX2FkZHIsIHMK ICAgICB0cnVlLiAgKi8KICBzdGF0aWMgaW50CiAgcHBjX2xpbnV4X2Nhbl9hY2NlbF93YXRjaHBv aW50X2NvbmRpdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0xNDYsMTYgKzE0Niwx NiBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgCQkJ CQkgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQogIHsKICAgIENPUkVfQUREUiBkYXRhX3ZhbHVl OwotQEAgLTIwMzYsNyArMjAzNiw3IEBAIHBwY19saW51eF9jYW5fYWNjZWxfd2F0Y2hwb2ludF9j b25kaXRpb24KK0BAIC0xOTgzLDcgKzE5ODMsNyBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNo cG9pbnRfY29uZGl0aW9uCiAgCiAgc3RhdGljIHZvaWQKICBjcmVhdGVfd2F0Y2hwb2ludF9yZXF1 ZXN0IChzdHJ1Y3QgcHBjX2h3X2JyZWFrcG9pbnQgKnAsIENPUkVfQUREUiBhZGRyLAotLQkJCSAg IGludCBsZW4sIGludCBydywgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQsCi0rCQkJICAgTE9OR0VT VCBsZW4sIGludCBydywgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQsCi0gCQkJICAgaW50IGluc2Vy dCkKKy0JCQkgICBpbnQgbGVuLCBlbnVtIHRhcmdldF9od19icF90eXBlIHR5cGUsCisrCQkJICAg TE9OR0VTVCBsZW4sIGVudW0gdGFyZ2V0X2h3X2JwX3R5cGUgdHlwZSwKKyAJCQkgICBzdHJ1Y3Qg ZXhwcmVzc2lvbiAqY29uZCwgaW50IGluc2VydCkKICB7CiAgICBpZiAobGVuID09IDEKLUBAIC0y MzAyLDcgKzIzMDIsNyBAQCBwcGNfbGludXhfc3RvcHBlZF9ieV93YXRjaHBvaW50IChzdHJ1Y3QK K0BAIC0yMjQ5LDcgKzIyNDksNyBAQCBwcGNfbGludXhfc3RvcHBlZF9ieV93YXRjaHBvaW50IChz dHJ1Y3QKICBzdGF0aWMgaW50CiAgcHBjX2xpbnV4X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFu Z2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCiAgCQkJCQlDT1JFX0FERFIgYWRkciwKQEAg LTE2NCwxMSArMTY0LDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtbGlu dXgtbmF0LmMKICB7CiAgICBpbnQgbWFzazsKICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9wcm9jZnMuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcHJvY2ZzLmMJMjAx NS0wMS0wNSAyMjoxMDozMC4xNzI3MjY3ODMgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9wcm9jZnMuYwkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3Mzc1MTMzMyArMDEwMAotQEAgLTI0 MjYsNyArMjQyNiw3IEBAIHByb2Nmc19hZGRyZXNzX3RvX2hvc3RfcG9pbnRlciAoQ09SRV9BREQK Ky0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9wcm9jZnMuYwkyMDE1LTEwLTI0IDIz OjEzOjI0LjYxNzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9wcm9j ZnMuYwkyMDE1LTEwLTI0IDIzOjEzOjMyLjA1MjczNTUwNyArMDIwMAorQEAgLTI0MjcsNyArMjQy Nyw3IEBAIHByb2Nmc19hZGRyZXNzX3RvX2hvc3RfcG9pbnRlciAoQ09SRV9BREQKICAjZW5kaWYK ICAKICBzdGF0aWMgaW50CkBAIC0xNzcsNyArMTc3LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Byb2Nmcy5jCiAgewogICNpZiAhZGVmaW5lZCAoUENXQVRDSCkgJiYgIWRlZmlu ZWQgKFBJT0NTV0FUQ0gpCiAgICAvKiBJZiBuZWl0aGVyIG9yIHRoZXNlIGlzIGRlZmluZWQsIHdl IGNhbid0IHN1cHBvcnQgd2F0Y2hwb2ludHMuCi1AQCAtNDcwNSw3ICs0NzA1LDcgQEAgcHJvY2Zz X3BpZF90b19zdHIgKHN0cnVjdCB0YXJnZXRfb3BzICpvcAorQEAgLTQ3MDYsNyArNDcwNiw3IEBA IHByb2Nmc19waWRfdG9fc3RyIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3AKICAvKiBJbnNlcnQgYSB3 YXRjaHBvaW50LiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC0xODYsMTEgKzE4NiwxMSBAQCBJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHJvY2ZzLmMKICAJCSAgICAgICBpbnQgYWZ0ZXIp CiAgewogICNpZm5kZWYgQUlYNQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlbW90 ZS5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3JlbW90ZS5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9yZW1vdGUuYwkyMDE1LTAxLTA1IDIy OjEwOjMwLjE3NDcyNjc5MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlbW90 ZS5jCTIwMTUtMDEtMDUgMjI6MTA6MzUuNTc0NzUxMzM4ICswMTAwCi1AQCAtODI5OCw3ICs4Mjk4 LDcgQEAgcmVtb3RlX2luc2VydF93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XworLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTUtMTAtMjQgMjM6MTM6MjQuNjE3 Njg2MTIxICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3JlbW90ZS5jCTIwMTUt MTAtMjQgMjM6MTM6MzIuMDU0NzM1NTIxICswMjAwCitAQCAtOTA4NSw3ICs5MDg1LDcgQEAgcmVt b3RlX2luc2VydF93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XwogICAgcCA9IHN0cmNociAocnMt PmJ1ZiwgJ1wwJyk7CiAgICBhZGRyID0gcmVtb3RlX2FkZHJlc3NfbWFza2VkIChhZGRyKTsKICAg IHAgKz0gaGV4bnVtc3RyIChwLCAoVUxPTkdFU1QpIGFkZHIpOwpAQCAtMTk5LDcgKzE5OSw3IEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9yZW1vdGUuYwogIAogICAgcHV0cGt0IChy cy0+YnVmKTsKICAgIGdldHBrdCAoJnJzLT5idWYsICZycy0+YnVmX3NpemUsIDApOwotQEAgLTgz MTgsNyArODMxOCw3IEBAIHJlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8K K0BAIC05MTA1LDcgKzkxMDUsNyBAQCByZW1vdGVfaW5zZXJ0X3dhdGNocG9pbnQgKHN0cnVjdCB0 YXJnZXRfCiAgCiAgc3RhdGljIGludAogIHJlbW90ZV93YXRjaHBvaW50X2FkZHJfd2l0aGluX3Jh bmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LCBDT1JFX0FERFIgYWRkciwKQEAgLTIwOCw3 ICsyMDgsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVtb3RlLmMKICB7CiAg ICBDT1JFX0FERFIgZGlmZiA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkciAtIHN0YXJ0KTsK ICAKLUBAIC04MzQ4LDcgKzgzNDgsNyBAQCByZW1vdGVfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVj dCB0YXJnZXRfCitAQCAtOTEzNCw3ICs5MTM0LDcgQEAgcmVtb3RlX3JlbW92ZV93YXRjaHBvaW50 IChzdHJ1Y3QgdGFyZ2V0XwogICAgcCA9IHN0cmNociAocnMtPmJ1ZiwgJ1wwJyk7CiAgICBhZGRy ID0gcmVtb3RlX2FkZHJlc3NfbWFza2VkIChhZGRyKTsKICAgIHAgKz0gaGV4bnVtc3RyIChwLCAo VUxPTkdFU1QpIGFkZHIpOwpAQCAtMjE3LDEwICsyMTcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3JlbW90ZS5jCiAgICBwdXRwa3QgKHJzLT5idWYpOwogICAgZ2V0cGt0ICgm cnMtPmJ1ZiwgJnJzLT5idWZfc2l6ZSwgMCk7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGFyZ2V0LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGFyZ2V0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3RhcmdldC5jCTIw MTUtMDEtMDUgMjI6MTA6MzAuMTc1NzI2Nzk3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGFyZ2V0LmMJMjAxNS0wMS0wNSAyMjoxMDozNS41NzU3NTEzNDIgKzAxMDAKKy0tLSBn ZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi90YXJnZXQuYwkyMDE1LTEwLTI0IDIzOjEzOjI0 LjYxNzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90YXJnZXQuYwky MDE1LTEwLTI0IDIzOjEzOjMyLjA1NDczNTUyMSArMDIwMAogQEAgLTUxLDcgKzUxLDcgQEAgc3Rh dGljIHZvaWQgZ2VuZXJpY190bHNfZXJyb3IgKHZvaWQpIEFUVAogIHN0YXRpYyB2b2lkIGRlZmF1 bHRfdGVybWluYWxfaW5mbyAoc3RydWN0IHRhcmdldF9vcHMgKiwgY29uc3QgY2hhciAqLCBpbnQp OwogIApAQCAtMjMwLDcgKzIzMCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 YXJnZXQuYwogIAogIHN0YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9p bnQgKHN0cnVjdCB0YXJnZXRfb3BzICosCiAgCQkJCQkJQ09SRV9BRERSLCBMT05HRVNUKTsKLUBA IC0yOTgzLDcgKzI5ODMsNyBAQCBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAo c3RyCitAQCAtMzE0MCw3ICszMTQwLDcgQEAgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNo cG9pbnQgKHN0cgogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5f cmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCiAgCQkJCSAgICAgIENPUkVfQUREUiBh ZGRyLApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3RhcmdldC5jCiAgewogICAgcmV0dXJuIGFkZHIgPj0gc3RhcnQgJiYgYWRkciA8IHN0YXJ0ICsg bGVuZ3RoOwogIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQuaAorSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90YXJnZXQuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNS0wMS0wNSAyMjoxMDozMC4x NzY3MjY4MDIgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQuaAkyMDE1 LTAxLTA1IDIyOjEwOjM1LjU3NTc1MTM0MiArMDEwMAotQEAgLTQ4Myw3ICs0ODMsNyBAQCBzdHJ1 Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3RhcmdldC5o CTIwMTUtMTAtMjQgMjM6MTM6MjQuNjE3Njg2MTIxICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL3RhcmdldC5oCTIwMTUtMTAtMjQgMjM6MTM6MzIuMDU1NzM1NTI3ICswMjAwCitA QCAtNTQzLDcgKzU0Myw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgIGludCAoKnRvX3N0b3Bw ZWRfZGF0YV9hZGRyZXNzKSAoc3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9BRERSICopCiAgICAg ICAgVEFSR0VUX0RFRkFVTFRfUkVUVVJOICgwKTsKICAgICAgaW50ICgqdG9fd2F0Y2hwb2ludF9h ZGRyX3dpdGhpbl9yYW5nZSkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0yNTIsNyArMjUyLDcg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCiAgICAgICAgVEFSR0VU X0RFRkFVTFRfRlVOQyAoZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlKTsKICAK ICAgICAgLyogRG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0 aGUgY29ycmVzcG9uZGluZwotQEAgLTQ5Myw3ICs0OTMsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwor QEAgLTU1Myw3ICs1NTMsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogICAgICAgIFRBUkdFVF9ERUZB VUxUX0ZVTkMgKGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KTsKICAKICAgICAg aW50ICgqdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uKSAoc3RydWN0IHRhcmdldF9v cHMgKiwKQEAgLTI2MSw4MCArMjYxLDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90YXJnZXQuaAogIAkJCQkJICAgICAgc3RydWN0IGV4cHJlc3Npb24gKikKICAgICAgICBUQVJH RVRfREVGQVVMVF9SRVRVUk4gKDApOwogICAgICBpbnQgKCp0b19tYXNrZWRfd2F0Y2hfbnVtX3Jl Z2lzdGVycykgKHN0cnVjdCB0YXJnZXRfb3BzICosCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMDEtMDUgMjI6MTA6MzAuMTc2NzI2 ODAyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWFyY2g2NC1saW51eC1uYXQu YwkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3NTc1MTM0MiArMDEwMAotQEAgLTQyNCwxNCArNDI0LDE0 IEBAIGFhcmNoNjRfbm90aWZ5X2RlYnVnX3JlZ19jaGFuZ2UgKGNvbnN0IHMKLSBzdGF0aWMgdm9p ZAotIGFhcmNoNjRfc2hvd19kZWJ1Z19yZWdfc3RhdGUgKHN0cnVjdCBhYXJjaDY0X2RlYnVnX3Jl Z19zdGF0ZSAqc3RhdGUsCi0gCQkJICAgICAgY29uc3QgY2hhciAqZnVuYywgQ09SRV9BRERSIGFk ZHIsCi0tCQkJICAgICAgaW50IGxlbiwgaW50IHR5cGUpCi0rCQkJICAgICAgTE9OR0VTVCBsZW4s IGludCB0eXBlKQotIHsKLSAgIGludCBpOwotIAotICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJf c3RkbG9nLCAiJXMiLCBmdW5jKTsKLSAgIGlmIChhZGRyIHx8IGxlbikKLS0gICAgZnByaW50Zl91 bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiIChhZGRyPTB4JTA4bHgsIGxlbj0lZCwgdHlwZT0lcyki LAotLQkJCSh1bnNpZ25lZCBsb25nKSBhZGRyLCBsZW4sCi0rICAgIGZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGxvZywgIiAoYWRkcj0weCUwOGx4LCBsZW49JXMsIHR5cGU9JXMpIiwKLSsJCQko dW5zaWduZWQgbG9uZykgYWRkciwgcGxvbmdlc3QgKGxlbiksCi0gCQkJdHlwZSA9PSBod193cml0 ZSA/ICJody13cml0ZS13YXRjaHBvaW50IgotIAkJCTogKHR5cGUgPT0gaHdfcmVhZCA/ICJody1y ZWFkLXdhdGNocG9pbnQiCi0gCQkJICAgOiAodHlwZSA9PSBod19hY2Nlc3MgPyAiaHctYWNjZXNz LXdhdGNocG9pbnQiCi1AQCAtODUxLDkgKzg1MSwxMCBAQCBhYXJjaDY0X2xpbnV4X3JlYWRfZGVz Y3JpcHRpb24gKHN0cnVjdCB0Ci0gICAgZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMgZm9y IG1vcmUgaW5mb3JtYXRpb24uICAqLwotIAotIHN0YXRpYyB2b2lkCi0tYWFyY2g2NF9hbGlnbl93 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgQ09SRV9BRERSICphbGlnbmVkX2Fk ZHJfcCwKLSthYXJjaDY0X2FsaWduX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBMT05HRVNU IGxlbiwKLSsJCQkgIENPUkVfQUREUiAqYWxpZ25lZF9hZGRyX3AsCi0gCQkJICBpbnQgKmFsaWdu ZWRfbGVuX3AsIENPUkVfQUREUiAqbmV4dF9hZGRyX3AsCi0tCQkJICBpbnQgKm5leHRfbGVuX3Ap Ci0rCQkJICBMT05HRVNUICpuZXh0X2xlbl9wKQotIHsKLSAgIGludCBhbGlnbmVkX2xlbjsKLSAg IHVuc2lnbmVkIGludCBvZmZzZXQ7Ci1AQCAtMTAyMCw3ICsxMDIxLDcgQEAgYWFyY2g2NF9wb2lu dF9lbmNvZGVfY3RybF9yZWcgKGludCB0eXBlLAotICAgIFJldHVybiAwIGZvciBhbnkgbm9uLWNv bXBsaWFudCBBRERSIGFuZC9vciBMRU47IHJldHVybiAxIG90aGVyd2lzZS4gICovCi0gCi0gc3Rh dGljIGludAotLWFhcmNoNjRfcG9pbnRfaXNfYWxpZ25lZCAoaW50IGlzX3dhdGNocG9pbnQsIENP UkVfQUREUiBhZGRyLCBpbnQgbGVuKQotK2FhcmNoNjRfcG9pbnRfaXNfYWxpZ25lZCAoaW50IGlz X3dhdGNocG9pbnQsIENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbikKLSB7Ci0gICB1bnNpZ25l ZCBpbnQgYWxpZ25tZW50ID0gaXNfd2F0Y2hwb2ludCA/IEFBUkNINjRfSFdQX0FMSUdOTUVOVAot ICAgICA6IEFBUkNINjRfSEJQX0FMSUdOTUVOVDsKLUBAIC0xMjcyLDcgKzEyNzMsNyBAQCBhYXJj aDY0X2hhbmRsZV9hbGlnbmVkX3dhdGNocG9pbnQgKGludCB0Ci0gICAgUmV0dXJuIDAgaWYgc3Vj Y2VlZC4gICovCi0gCi0gc3RhdGljIGludAotLWFhcmNoNjRfaGFuZGxlX3VuYWxpZ25lZF93YXRj aHBvaW50IChpbnQgdHlwZSwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCi0rYWFyY2g2NF9oYW5k bGVfdW5hbGlnbmVkX3dhdGNocG9pbnQgKGludCB0eXBlLCBDT1JFX0FERFIgYWRkciwgTE9OR0VT VCBsZW4sCi0gCQkJCSAgICAgaW50IGlzX2luc2VydCkKLSB7Ci0gICBzdHJ1Y3QgYWFyY2g2NF9k ZWJ1Z19yZWdfc3RhdGUgKnN0YXRlCi1AQCAtMTI5Nyw4ICsxMjk4LDggQEAgYWFyY2g2NF9oYW5k bGVfdW5hbGlnbmVkX3dhdGNocG9pbnQgKGludAotIAlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9z dGRsb2csCi0gImhhbmRsZV91bmFsaWduZWRfd2F0Y2hwb2ludDogaXNfaW5zZXJ0OiAlZFxuIgot ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduZWRfYWRkcjogMHglMDhseCwgYWxp Z25lZF9sZW46ICVkXG4iCi0tIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dF9h ZGRyOiAweCUwOGx4LCAgICBuZXh0X2xlbjogJWRcbiIsCi0tCQkgaXNfaW5zZXJ0LCBhbGlnbmVk X2FkZHIsIGFsaWduZWRfbGVuLCBhZGRyLCBsZW4pOwotKyIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5leHRfYWRkcjogMHglMDhseCwgICAgbmV4dF9sZW46ICVzXG4iLAotKwkJIGlz X2luc2VydCwgYWxpZ25lZF9hZGRyLCBhbGlnbmVkX2xlbiwgYWRkciwgcGxvbmdlc3QgKGxlbikp OwotIAotICAgICAgIGlmIChyZXQgIT0gMCkKLSAJcmV0dXJuIHJldDsKLUBAIC0xMzEwLDcgKzEz MTEsNyBAQCBhYXJjaDY0X2hhbmRsZV91bmFsaWduZWRfd2F0Y2hwb2ludCAoaW50Ci0gLyogSW1w bGVtZW50cyBpbnNlcnRpb24gYW5kIHJlbW92YWwgb2YgYSBzaW5nbGUgd2F0Y2hwb2ludC4gICov Ci0gCi0gc3RhdGljIGludAotLWFhcmNoNjRfaGFuZGxlX3dhdGNocG9pbnQgKGludCB0eXBlLCBD T1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IGlzX2luc2VydCkKLSthYXJjaDY0X2hhbmRsZV93 YXRjaHBvaW50IChpbnQgdHlwZSwgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgaXNf aW5zZXJ0KQotIHsKLSAgIGlmIChhYXJjaDY0X3BvaW50X2lzX2FsaWduZWQgKDEgLyogaXNfd2F0 Y2hwb2ludCAqLyAsIGFkZHIsIGxlbikpCi0gICAgIHJldHVybiBhYXJjaDY0X2hhbmRsZV9hbGln bmVkX3dhdGNocG9pbnQgKHR5cGUsIGFkZHIsIGxlbiwgaXNfaW5zZXJ0KTsKLUBAIC0xNDc5LDcg KzE0ODAsNyBAQCBhYXJjaDY0X2xpbnV4X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAoc3RyCistLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTEw LTI0IDIzOjEzOjI0LjYxNzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMTAtMjQgMjM6MTM6MzIuMDU1NzM1NTI3ICswMjAw CitAQCAtNzk1LDcgKzc5NSw3IEBAIGFhcmNoNjRfbGludXhfc3RvcHBlZF9ieV93YXRjaHBvaW50 IChzdHIKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF93YXRjaHBvaW50X2FkZHJfd2l0aGlu X3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LAogIAkJCQkJICAgIENPUkVfQUREUiBh ZGRyLApAQCAtMzQzLDExICsyNzQsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2FhcmNoNjQtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gc3RhcnQgPD0gYWRkciAmJiBzdGFy dCArIGxlbmd0aCAtIDEgPj0gYWRkcjsKICB9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rh cmdldC1kZWxlZ2F0ZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUtMDEtMDUgMjI6MTA6MzAuMTc3NzI2ODA2ICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUt MDEtMDUgMjI6MTI6MTEuMDcxMTg1NDA4ICswMTAwCi1AQCAtNjA3LDE0ICs2MDcsMTQgQEAgZGVi dWdfc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdCB0YXJnZQorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDIyLm9yaWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTEwLTI0IDIzOjEzOjI0LjYx NzY4NjEyMSArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90YXJnZXQtZGVsZWdh dGVzLmMJMjAxNS0xMC0yNCAyMzoxMzozMi4wNTU3MzU1MjcgKzAyMDAKK0BAIC03MDksMTQgKzcw OSwxNCBAQCBkZWJ1Z19zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdlCiAgfQogIAog IHN0YXRpYyBpbnQKQEAgLTM2NCw3ICsyOTUsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgewogICAgaW50IHJlc3VsdDsKICAgIGZwcmludGZf dW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIi0+ICVzLT50b193YXRjaHBvaW50X2FkZHJfd2l0aGlu X3JhbmdlICguLi4pXG4iLCBkZWJ1Z190YXJnZXQudG9fc2hvcnRuYW1lKTsKLUBAIC02MjYsNyAr NjI2LDcgQEAgZGVidWdfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydQorQEAgLTcy OCw3ICs3MjgsNyBAQCBkZWJ1Z193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1CiAg ICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19w cmludF9DT1JFX0FERFIgKGFyZzIpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0 ZGxvZyk7CkBAIC0zNzMsNyArMzA0LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3RhcmdldC1kZWxlZ2F0ZXMuYwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIikgPSAiLCBnZGJfc3Rk bG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKHJlc3VsdCk7CiAgICBmcHV0c191bmZp bHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsKLUBAIC02NTksMjAgKzY1OSwyMCBAQCBkZWJ1Z19y ZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjCitAQCAtNzYxLDIwICs3NjEsMjAgQEAg ZGVidWdfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1YwogIH0KICAKICBzdGF0aWMg aW50CkBAIC0zOTcsNyArMzI4LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rh cmdldC1kZWxlZ2F0ZXMuYwogIHsKICAgIGludCByZXN1bHQ7CiAgICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRsb2csICItPiAlcy0+dG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9u ICguLi4pXG4iLCBkZWJ1Z190YXJnZXQudG9fc2hvcnRuYW1lKTsKLUBAIC02ODIsNyArNjgyLDcg QEAgZGVidWdfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChzdAorQEAgLTc4NCw3ICs3 ODQsNyBAQCBkZWJ1Z19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKHN0CiAgICBmcHV0 c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19wcmludF9D T1JFX0FERFIgKGFyZzEpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7 CkBAIC00MDYsMyArMzM3LDc3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJn ZXQtZGVsZWdhdGVzLmMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOwog ICAgdGFyZ2V0X2RlYnVnX3ByaW50X2ludCAoYXJnMyk7CiAgICBmcHV0c191bmZpbHRlcmVkICgi LCAiLCBnZGJfc3RkbG9nKTsKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbmF0L2Fh cmNoNjQtbGludXgtaHctcG9pbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEwLjUwLjIwMTUx MDIyLm9yaWcvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmMJMjAxNS0xMC0yMiAwMzo0 ODozMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbmF0L2Fh cmNoNjQtbGludXgtaHctcG9pbnQuYwkyMDE1LTEwLTI0IDIzOjEyOjI5LjkyNzMyMjg0NSArMDIw MAorQEAgLTExMSw3ICsxMTEsNyBAQCBhYXJjaDY0X3BvaW50X2VuY29kZV9jdHJsX3JlZyAoZW51 bSB0YXJnCisgICAgUmV0dXJuIDAgZm9yIGFueSBub24tY29tcGxpYW50IEFERFIgYW5kL29yIExF TjsgcmV0dXJuIDEgb3RoZXJ3aXNlLiAgKi8KKyAKKyBzdGF0aWMgaW50CistYWFyY2g2NF9wb2lu dF9pc19hbGlnbmVkIChpbnQgaXNfd2F0Y2hwb2ludCwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4p CisrYWFyY2g2NF9wb2ludF9pc19hbGlnbmVkIChpbnQgaXNfd2F0Y2hwb2ludCwgQ09SRV9BRERS IGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIHVuc2lnbmVkIGludCBhbGlnbm1lbnQgPSAwOwor IAorQEAgLTE4MCw5ICsxODAsMTAgQEAgYWFyY2g2NF9wb2ludF9pc19hbGlnbmVkIChpbnQgaXNf d2F0Y2hwbworICAgIGxpbWl0YXRpb25zIGNhbiBiZSBsYXJnZWx5IHJlbGF4ZWQgd2l0aCBzb21l IGZ1cnRoZXIgd29yay4gICovCisgCisgc3RhdGljIHZvaWQKKy1hYXJjaDY0X2FsaWduX3dhdGNo cG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBDT1JFX0FERFIgKmFsaWduZWRfYWRkcl9w LAorK2FhcmNoNjRfYWxpZ25fd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVu LAorKwkJCSAgQ09SRV9BRERSICphbGlnbmVkX2FkZHJfcCwKKyAJCQkgIGludCAqYWxpZ25lZF9s ZW5fcCwgQ09SRV9BRERSICpuZXh0X2FkZHJfcCwKKy0JCQkgIGludCAqbmV4dF9sZW5fcCkKKysJ CQkgIExPTkdFU1QgKm5leHRfbGVuX3ApCisgeworICAgaW50IGFsaWduZWRfbGVuOworICAgdW5z aWduZWQgaW50IG9mZnNldDsKK0BAIC00OTQsNyArNDk1LDcgQEAgYWFyY2g2NF9oYW5kbGVfYWxp Z25lZF93YXRjaHBvaW50IChlbnVtCisgCisgc3RhdGljIGludAorIGFhcmNoNjRfaGFuZGxlX3Vu YWxpZ25lZF93YXRjaHBvaW50IChlbnVtIHRhcmdldF9od19icF90eXBlIHR5cGUsCistCQkJCSAg ICAgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBpc19pbnNlcnQsCisrCQkJCSAgICAgQ09S RV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLCBpbnQgaXNfaW5zZXJ0LAorIAkJCQkgICAgIHN0cnVj dCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUpCisgeworICAgd2hpbGUgKGxlbiA+IDAp CitAQCAtNTE3LDkgKzUxOCw5IEBAIGFhcmNoNjRfaGFuZGxlX3VuYWxpZ25lZF93YXRjaHBvaW50 IChlbnUKKyAJCSAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKKyAJCSAgICAg ICJhbGlnbmVkX2FkZHI6ICVzLCBhbGlnbmVkX2xlbjogJWRcbiIKKyAJCSAgICAgICIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIKKy0JCSAgICAgICJuZXh0X2FkZHI6ICVzLCAgICBu ZXh0X2xlbjogJWRcbiIsCisrCQkgICAgICAibmV4dF9hZGRyOiAlcywgICAgbmV4dF9sZW46ICVz XG4iLAorIAkJICAgICAgaXNfaW5zZXJ0LCBjb3JlX2FkZHJfdG9fc3RyaW5nX256IChhbGlnbmVk X2FkZHIpLAorLQkJICAgICAgYWxpZ25lZF9sZW4sIGNvcmVfYWRkcl90b19zdHJpbmdfbnogKGFk ZHIpLCBsZW4pOworKwkJICAgICAgYWxpZ25lZF9sZW4sIGNvcmVfYWRkcl90b19zdHJpbmdfbnog KGFkZHIpLCBwbG9uZ2VzdCAobGVuKSk7CisgCisgICAgICAgaWYgKHJldCAhPSAwKQorIAlyZXR1 cm4gcmV0OworQEAgLTUzMCw3ICs1MzEsNyBAQCBhYXJjaDY0X2hhbmRsZV91bmFsaWduZWRfd2F0 Y2hwb2ludCAoZW51CisgCisgaW50CisgYWFyY2g2NF9oYW5kbGVfd2F0Y2hwb2ludCAoZW51bSB0 YXJnZXRfaHdfYnBfdHlwZSB0eXBlLCBDT1JFX0FERFIgYWRkciwKKy0JCQkgICBpbnQgbGVuLCBp bnQgaXNfaW5zZXJ0LAorKwkJCSAgIExPTkdFU1QgbGVuLCBpbnQgaXNfaW5zZXJ0LAorIAkJCSAg IHN0cnVjdCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUpCisgeworICAgaWYgKGFhcmNo NjRfcG9pbnRfaXNfYWxpZ25lZCAoMSAvKiBpc193YXRjaHBvaW50ICovICwgYWRkciwgbGVuKSkK K0BAIC01ODEsMTQgKzU4MiwxNCBAQCBhYXJjaDY0X2xpbnV4X3NldF9kZWJ1Z19yZWdzIChjb25z dCBzdHJ1Cisgdm9pZAorIGFhcmNoNjRfc2hvd19kZWJ1Z19yZWdfc3RhdGUgKHN0cnVjdCBhYXJj aDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCisgCQkJICAgICAgY29uc3QgY2hhciAqZnVuYywg Q09SRV9BRERSIGFkZHIsCistCQkJICAgICAgaW50IGxlbiwgZW51bSB0YXJnZXRfaHdfYnBfdHlw ZSB0eXBlKQorKwkJCSAgICAgIExPTkdFU1QgbGVuLCBlbnVtIHRhcmdldF9od19icF90eXBlIHR5 cGUpCisgeworICAgaW50IGk7CisgCisgICBkZWJ1Z19wcmludGYgKCIlcyIsIGZ1bmMpOworICAg aWYgKGFkZHIgfHwgbGVuKQorLSAgICBkZWJ1Z19wcmludGYgKCIgKGFkZHI9MHglMDhseCwgbGVu PSVkLCB0eXBlPSVzKSIsCistCQkgICh1bnNpZ25lZCBsb25nKSBhZGRyLCBsZW4sCisrICAgIGRl YnVnX3ByaW50ZiAoIiAoYWRkcj0weCUwOGx4LCBsZW49JXMsIHR5cGU9JXMpIiwKKysJCSAgKHVu c2lnbmVkIGxvbmcpIGFkZHIsIHBsb25nZXN0IChsZW4pLAorIAkJICB0eXBlID09IGh3X3dyaXRl ID8gImh3LXdyaXRlLXdhdGNocG9pbnQiCisgCQkgIDogKHR5cGUgPT0gaHdfcmVhZCA/ICJody1y ZWFkLXdhdGNocG9pbnQiCisgCQkgICAgIDogKHR5cGUgPT0gaHdfYWNjZXNzID8gImh3LWFjY2Vz cy13YXRjaHBvaW50IgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUu cGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCmluZGV4IDg2MmYzYWEu LmM5ZDNlZjggMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gK KysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaApAQCAtMTM3LDExICsxMzcs MTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rp bmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBv cy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hbHBoYS10ZGVw LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYWxwaGEtdGRlcC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNS0w NS0zMSAxNzoxNTowMS4wNTY4NjgwMzUgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9hbHBoYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MTk4ODI4NDYgKzAyMDAKLUBAIC0y OTgsMTggKzI5OCwxOCBAQCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYWxwaGEtdGRlcC5jCTIwMTUtMTAt MjQgMjM6MTQ6MTcuNzkyMDM5MzI3ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L2FscGhhLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE1OjA3LjYxNTM3MDI3NCArMDIwMAorQEAgLTI5 OSwxNyArMjk5LDE3IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcK ICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCk7CiAgICBpbnQgaTsKQEAgLTE1NSw4ICsxNTUsNyBAQCBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvYWxwaGEtdGRlcC5jCiArICAgICAgc3NpemVfdCBsZW47CiArICAgICAg c3NpemVfdCBvZmZzZXQ7CiAgICAgIH07Ci0gICBzdHJ1Y3QgYWxwaGFfYXJnICphbHBoYV9hcmdz Ci0gICAgID0gKHN0cnVjdCBhbHBoYV9hcmcgKikgYWxsb2NhIChuYXJncyAqIHNpemVvZiAoc3Ry dWN0IGFscGhhX2FyZykpOworICAgc3RydWN0IGFscGhhX2FyZyAqYWxwaGFfYXJncyA9IFhBTExP Q0FWRUMgKHN0cnVjdCBhbHBoYV9hcmcsIG5hcmdzKTsKICAgIHN0cnVjdCBhbHBoYV9hcmcgKm1f YXJnOwogICAgZ2RiX2J5dGUgYXJnX3JlZ19idWZmZXJbQUxQSEFfUkVHSVNURVJfU0laRSAqIEFM UEhBX05VTV9BUkdfUkVHU107CiAtICBpbnQgcmVxdWlyZWRfYXJnX3JlZ3M7CkBAIC0xODQsMTAg KzE4MywxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWxwaGEtdGRlcC5jCiAg CSAgICAgIG1lbWNweSAoYXJnX3JlZ19idWZmZXIgKyBvZmZzZXQsIGNvbnRlbnRzLCB0bGVuKTsK ICAJICAgICAgb2Zmc2V0ICs9IHRsZW47CiAgCSAgICAgIGNvbnRlbnRzICs9IHRsZW47Ci1JbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW1kNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL2FtZDY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDU4ODY4 MDQ3ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW1kNjQtdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6NDAuMjUzMTEzNzIyICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIu b3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuNzkzMDM5MzMzICswMjAw CisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FtZDY0LXRkZXAuYwkyMDE1LTEwLTI0IDIz OjE0OjIwLjkzNTA2MDIwNCArMDIwMAogQEAgLTcwMSw3ICs3MDEsNyBAQCBhbWQ2NF9yZXR1cm5f dmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhCiAgCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNv bnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7CkBAIC0xOTksNyArMTk4LDcgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0LXRkZXAuYwogICAgaW50IGludGVnZXJfcmVnID0g MDsKIEBAIC04NTIsOCArODUyLDggQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdj YWNoZSAqcgogICAgfTsKLSAgIHN0cnVjdCB2YWx1ZSAqKnN0YWNrX2FyZ3MgPSBhbGxvY2EgKG5h cmdzICogc2l6ZW9mIChzdHJ1Y3QgdmFsdWUgKikpOworICAgc3RydWN0IHZhbHVlICoqc3RhY2tf YXJncyA9IFhBTExPQ0FWRUMgKHN0cnVjdCB2YWx1ZSAqLCBuYXJncyk7CiAgICBpbnQgbnVtX3N0 YWNrX2FyZ3MgPSAwOwogLSAgaW50IG51bV9lbGVtZW50cyA9IDA7CiAtICBpbnQgZWxlbWVudCA9 IDA7CkBAIC0yMTcsMTAgKzIxNiwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv YW1kNjQtdGRlcC5jCiAgICAgICAgZW51bSBhbWQ2NF9yZWdfY2xhc3MgdGhlY2xhc3NbMl07CiAg ICAgICAgaW50IG5lZWRlZF9pbnRlZ2VyX3JlZ3MgPSAwOwogICAgICAgIGludCBuZWVkZWRfc3Nl X3JlZ3MgPSAwOwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0LXdpbmRvd3Mt dGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2FtZDY0LXdpbmRvd3MtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hbWQ2NC13 aW5kb3dzLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA1OTg2ODA1NCArMDIwMAotKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTUtMDUtMzEgMTc6 MTU6MDMuNDIxODgyODU5ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIv YW1kNjQtd2luZG93cy10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy43OTQwMzkzNDAgKzAyMDAK KysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJMjAxNS0x MC0yNCAyMzoxNDoyMC45MzUwNjAyMDQgKzAyMDAKIEBAIC0yODgsNyArMjg4LDcgQEAgYW1kNjRf d2luZG93c19yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcgogIAkJCSAgICBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCQkgICAgZ2RiX2J5dGUgKnJlYWRi dWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKQEAgLTIzMCwxMSArMjI5LDExIEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwogICAgaW50IHJl Z251bSA9IC0xOwogIAogICAgLyogU2VlIGlmIG91ciB2YWx1ZSBpcyByZXR1cm5lZCB0aHJvdWdo IGEgcmVnaXN0ZXIuICBJZiBpdCBpcywgdGhlbgotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2FybS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvYXJtLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYXJtLXRkZXAu YwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA2OTg2ODExNiArMDIwMAotKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2FybS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MjU4ODI4ODQgKzAyMDAK LUBAIC0zNTM3LDcgKzM1MzcsNyBAQCBhcm1fdmZwX2NwcmNfcmVnX2NoYXIgKGVudW0gYXJtX3Zm cF9jcHJjCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYXJtLXRkZXAuYwkyMDE1 LTEwLTI0IDIzOjE0OjE3LjgwMDAzOTM4MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi9hcm0tdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTM3MDYwMjE3ICswMjAwCitAQCAt MzUzMSw3ICszNTMxLDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19jaGFyIChlbnVtIGFybV92ZnBfY3By YwogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQs IG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICovCiAgCkBAIC0yNDMs NyArMjQyLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FybS10ZGVwLmMKICBh cm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUgKnQsCiAgCQkJICAgIGVudW0g YXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90eXBlKQogIHsKLUBAIC0zNjAwLDcgKzM2MDAs NyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKK0BAIC0zNTk0LDcg KzM1OTQsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKICAKICAg ICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CiAgICAgICAgewpAQCAtMjUyLDcgKzI1MSw3IEBAIElu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCiAgCXVuc2lnbmVkIHVuaXRs ZW47CiAgCWNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfVEFSR0VUX1RZ UEUgKHQpLCBiYXNlX3R5cGUpOwogIAlpZiAoY291bnQgPT0gLTEpCi1AQCAtMzYyMCwxMyArMzYy MCwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKK0BAIC0zNjE0 LDEzICszNjE0LDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChzdHJ1Y3QgdHlwZQog IAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6CiAgICAgICAgewpAQCAtMjcxLDcgKzI3MCw3 IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCiAgCSAgICBpZiAo c3ViX2NvdW50ID09IC0xKQogIAkgICAgICByZXR1cm4gLTE7CiAgCSAgICBjb3VudCArPSBzdWJf Y291bnQ7Ci1AQCAtMzY0NiwxMyArMzY0OCwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0 ZSAoc3RydWN0IHR5cGUKK0BAIC0zNjQwLDEzICszNjQyLDE1IEBAIGFybV92ZnBfY3ByY19zdWJf Y2FuZGlkYXRlIChzdHJ1Y3QgdHlwZQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9VTklPTjoKICAg ICAgICB7CkBAIC0yOTAsNyArMjg5LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAgICAgIHJldHVybiAt MTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8gY291bnQgOiBzdWJfY291bnQp OwotQEAgLTM2ODgsNyArMzY5Miw3IEBAIGFybV92ZnBfY2FsbF9jYW5kaWRhdGUgKHN0cnVjdCB0 eXBlICp0LAorQEAgLTM2ODIsNyArMzY4Niw3IEBAIGFybV92ZnBfY2FsbF9jYW5kaWRhdGUgKHN0 cnVjdCB0eXBlICp0LAogIAkJCWludCAqY291bnQpCiAgewogICAgZW51bSBhcm1fdmZwX2NwcmNf YmFzZV90eXBlIGIgPSBWRlBfQ1BSQ19VTktOT1dOOwpAQCAtMjk5LDcgKzI5OCw3IEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCiAgICBpZiAoYyA8PSAwIHx8IGMg PiA0KQogICAgICByZXR1cm4gMDsKICAgICpiYXNlX3R5cGUgPSBiOwotQEAgLTM3NjksNyArMzc3 Myw3IEBAIGFybV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKK0BAIC0zNzYz LDcgKzM3NjcsNyBAQCBhcm1fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAg CiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0rKykKICAgICAgewpA QCAtMzA4LDI4ICszMDcsMjcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FybS10 ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGU7CiAgICAgICAgc3RydWN0IHR5cGUg KnRhcmdldF90eXBlOwogICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlOwotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2F2ci10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyMi9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvYXZyLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2ODEyOSArMDIwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2F2ci10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTow My40MjU4ODI4ODQgKzAyMDAKLUBAIC0xMTk2LDEzICsxMTk2LDE0IEBAIGF2cl9kdW1teV9pZCAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmln L2dkYi9hdnItdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODAxMDM5Mzg2ICswMjAwCisrKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2F2ci10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNTozNS43 NzU1NTczMjUgKzAyMDAKK0BAIC0xMTk2LDEzICsxMTk2LDEzIEBAIGF2cl9kdW1teV9pZCAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKICAKICBzdHJ1Y3Qgc3RhY2tfaXRlbQogIHsKIC0gIGlu dCBsZW47CiArICBzc2l6ZV90IGxlbjsKICAgIHN0cnVjdCBzdGFja19pdGVtICpwcmV2OwotICAg dm9pZCAqZGF0YTsKKyAgIGdkYl9ieXRlICpkYXRhOwogIH07CiAgCiAgc3RhdGljIHN0cnVjdCBz dGFja19pdGVtICoKIC1wdXNoX3N0YWNrX2l0ZW0gKHN0cnVjdCBzdGFja19pdGVtICpwcmV2LCBj b25zdCBiZmRfYnl0ZSAqY29udGVudHMsIGludCBsZW4pCi0rcHVzaF9zdGFja19pdGVtIChzdHJ1 Y3Qgc3RhY2tfaXRlbSAqcHJldiwgY29uc3QgYmZkX2J5dGUgKmNvbnRlbnRzLAotKwkJIHNzaXpl X3QgbGVuKQorK3B1c2hfc3RhY2tfaXRlbSAoc3RydWN0IHN0YWNrX2l0ZW0gKnByZXYsIGNvbnN0 IGJmZF9ieXRlICpjb250ZW50cywgc3NpemVfdCBsZW4pCiAgewogICAgc3RydWN0IHN0YWNrX2l0 ZW0gKnNpOwotICAgc2kgPSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFja19pdGVtKSk7Ci1A QCAtMTI5MSwxMiArMTI5MiwxMiBAQCBhdnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiCisgICBzaSA9IFhORVcgKHN0cnVjdCBzdGFja19pdGVtKTsKK0BAIC0xMjkxLDEyICsx MjkxLDEyIEBAIGF2cl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAKICAg IGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0zNDUsMTAgKzM0MywxMCBA QCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYXZyLXRkZXAuYwogIAogICAgICAgIC8q IENhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0ZXIgbmVlZGVkLiAgKi8KICAgICAg ICBsYXN0X3JlZ251bSA9IHJlZ251bSAtIChsZW4gKyAobGVuICYgMSkpOwotSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi9iZmluLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2ODEyOSArMDIwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6 MDMuNDI2ODgyODkwICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvYmZp bi10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDIwMzkzOTMgKzAyMDAKKysrKyBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvYmZpbi10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45MzcwNjAy MTcgKzAyMDAKIEBAIC01MDQsNyArNTA0LDcgQEAgYmZpbl9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZAogICAgZ2RiX2J5dGUgYnVmWzRdOwogICAgaW50IGk7CkBAIC0zNjcsMTAg KzM2NSwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYmZpbi10ZGVwLmMKICAK ICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAgICAgIHdyaXRlX21lbW9yeSAoc3AsIHZh bHVlX2NvbnRlbnRzX3dyaXRlYWJsZSAoYXJnc1tpXSksIGNvbnRhaW5lcl9sZW4pOwotSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3Mzg2ODE0MiAr MDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCTIwMTUtMDUtMzEg MTc6MTU6MDMuNDI3ODgyODk3ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9n ZGIvY3Jpcy10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDIwMzkzOTMgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvY3Jpcy10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNTo1OC45 MDI3MTA5NDUgKzAyMDAKIEBAIC02NjMsMTMgKzY2MywxMyBAQCBzdGF0aWMgQ09SRV9BRERSIGNy aXNfdW53aW5kX3NwIChzdHJ1Y3QKICAKICBzdHJ1Y3Qgc3RhY2tfaXRlbQpAQCAtMzc4LDE2ICsz NzYsMTYgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCiAtICBp bnQgbGVuOwogKyAgc3NpemVfdCBsZW47CiAgICBzdHJ1Y3Qgc3RhY2tfaXRlbSAqcHJldjsKLSAg IHZvaWQgKmRhdGE7CisgICBnZGJfYnl0ZSAqZGF0YTsKICB9OwogIAogIHN0YXRpYyBzdHJ1Y3Qg c3RhY2tfaXRlbSAqCiAtcHVzaF9zdGFja19pdGVtIChzdHJ1Y3Qgc3RhY2tfaXRlbSAqcHJldiwg Y29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLCBpbnQgbGVuKQogK3B1c2hfc3RhY2tfaXRlbSAoc3Ry dWN0IHN0YWNrX2l0ZW0gKnByZXYsIGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywgc3NpemVfdCBs ZW4pCiAgewotICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwotICAgc2kgPSB4bWFsbG9jIChzaXpl b2YgKHN0cnVjdCBzdGFja19pdGVtKSk7Ci1AQCAtODQyLDEzICs4NDIsMTMgQEAgY3Jpc19wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNp ID0gWE5FVyAoc3RydWN0IHN0YWNrX2l0ZW0pOworICAgc2ktPmRhdGEgPSAoZ2RiX2J5dGUgKikg eG1hbGxvYyAobGVuKTsKK0BAIC04NDEsMTMgKzg0MSwxMyBAQCBjcmlzX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5h cmdzOyBhcmdudW0rKykKICAgICAgewpAQCAtNDA1LDEwICs0MDMsMTAgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAgCiAgICAgICAgLyogSG93IG1h eSByZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlzIGFyZ3VtZW50 PyAgKi8KICAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQgIT0gMCA/IDEg OiAwKTsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9oODMwMC10ZGVwLmMKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaDgzMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNS0wNS0zMSAxNzox NTowMS4wNzQ4NjgxNDggKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9oODMwMC10 ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mjc4ODI4OTcgKzAyMDAKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyMi5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDMw Mzk0MDAgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaDgzMDAtdGRlcC5jCTIw MTUtMTAtMjQgMjM6MTY6MzMuNjUzOTQxNzc3ICswMjAwCiBAQCAtNjM5LDcgKzYzOSw3IEBAIGg4 MzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAJCSAgICAgICBpbnQgc3Ry dWN0X3JldHVybiwgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKQEAgLTQyMywxMyArNDIxLDEz IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9oODMwMC10ZGVwLmMKICAgICAgICBz dHJ1Y3QgY2xlYW51cCAqYmFja190bzsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVl X3R5cGUgKGFyZ3NbYXJndW1lbnRdKTsKIC0gICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5 cGUpOwotICAgICAgIGNoYXIgKmNvbnRlbnRzID0gKGNoYXIgKikgdmFsdWVfY29udGVudHMgKGFy Z3NbYXJndW1lbnRdKTsKICsgICAgICBzc2l6ZV90IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsK KyAgICAgICBjaGFyICpjb250ZW50cyA9IChjaGFyICopIHZhbHVlX2NvbnRlbnRzIChhcmdzW2Fy Z3VtZW50XSk7CiAgCiAgICAgICAgLyogUGFkIHRoZSBhcmd1bWVudCBhcHByb3ByaWF0ZWx5LiAg Ki8KIC0gICAgICBpbnQgcGFkZGVkX2xlbiA9IGFsaWduX3VwIChsZW4sIHdvcmRzaXplKTsKICsg ICAgICBzc2l6ZV90IHBhZGRlZF9sZW4gPSBhbGlnbl91cCAobGVuLCB3b3Jkc2l6ZSk7Ci0gICAg ICAgZ2RiX2J5dGUgKnBhZGRlZCA9IHhtYWxsb2MgKHBhZGRlZF9sZW4pOworICAgICAgIGdkYl9i eXRlICpwYWRkZWQgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAocGFkZGVkX2xlbik7CiAgICAgICAg YmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIHBhZGRlZCk7CiAgCiBAQCAtNjk5LDcgKzY5 OSw3IEBAIGg4MzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKQEAgLTQ0MSwx MSArNDM5LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9oODMwMC10ZGVwLmMK ICAKICAJICAgICAgZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBwYWRkZWRfbGVuOyBvZmZzZXQg Kz0gd29yZHNpemUpCiAgCQl7Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaHBwYS10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaHBwYS10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6MDEuMDc2ODY4MTYwICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvaHBwYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mjg4ODI5MDMgKzAyMDAKLUBAIC05 OTEsNyArOTkxLDcgQEAgaHBwYTY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgor LS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIwMTUtMTAtMjQg MjM6MTQ6MTcuODA0MDM5NDA3ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2hw cGEtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTM5MDYwMjMxICswMjAwCitAQCAtOTk2LDcg Kzk5Niw3IEBAIGhwcGE2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKICAgICAg ewogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAgICAgICBzdHJ1Y3QgdHlw ZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZyk7CkBAIC00NTQsNyArNDUyLDcgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2hwcGEtdGRlcC5jCiAgICAgICAgY29uc3QgYmZkX2J5dGUg KnZhbGJ1ZjsKICAgICAgICBiZmRfYnl0ZSBmcHRyYnVmWzhdOwogICAgICAgIGludCByZWdudW07 Ci1AQCAtMTE4Niw3ICsxMTg2LDcgQEAgaHBwYTY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFy Y2ggKmdkYgorQEAgLTExOTEsNyArMTE5MSw3IEBAIGhwcGE2NF9yZXR1cm5fdmFsdWUgKHN0cnVj dCBnZGJhcmNoICpnZGIKICAJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsCiAgCQkgICAgIGdkYl9ieXRlICpyZWFkYnVmLCBjb25zdCBnZGJfYnl0ZSAq d3JpdGVidWYpCiAgewpAQCAtNDYzLDEwICs0NjEsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2hwcGEtdGRlcC5jCiAgICBpbnQgcmVnbnVtLCBvZmZzZXQ7CiAgCiAgICBpZiAo bGVuID4gMTYpCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaTM4Ni1kYXJ3aW4tdGRl cC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvaTM4Ni1kYXJ3aW4t dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDc2ODY4MTYwICswMjAwCi0rKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDI4 ODgyOTAzICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvaTM4Ni1kYXJ3 aW4tdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODA0MDM5NDA3ICswMjAwCisrKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIw LjkzOTA2MDIzMSArMDIwMAogQEAgLTE2Myw3ICsxNjMsNyBAQCBpMzg2X2Rhcndpbl9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhCiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9w YXNzIDwgMjsgd3JpdGVfcGFzcysrKQpAQCAtNDc2LDEwICs0NzQsMTAgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogICAgICAgIGludCBudW1fbTEy OCA9IDA7CiAgCiAgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4pCi1JbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvaTM4Ni10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIv aTM4Ni10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2Ri L2kzODYtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDgyODY4MTk4ICswMjAwCi0rKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvaTM4Ni10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MzA4 ODI5MTUgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9pMzg2LXRkZXAu YwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgwNzAzOTQyNiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIw MTUxMDIyL2dkYi9pMzg2LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0MDA2MDIzNyArMDIw MAogQEAgLTI2NTEsNyArMjY1MSw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKICAgIGdkYl9ieXRlIGJ1Zls0XTsKICAgIGludCBpOwpAQCAtNTQzLDEwICs1NDEs MTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICBp ZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwgcmVnbnVtKSkKICAg ICAgewotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2lxMjAwMC10ZGVwLmMKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvaXEyMDAwLXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE1LTA1LTMxIDE3 OjE1OjAxLjA4Mzg2ODIwNCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2lxMjAw MC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MzE4ODI5MjIgKzAyMDAKKy0tLSBnZGItNy4x MC41MC4yMDE1MTAyMi5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcu ODA4MDM5NDMzICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL2lxMjAwMC10ZGVw LmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDEwNjAyNDQgKzAyMDAKIEBAIC02NTEsOCArNjUxLDkg QEAgaXEyMDAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgY29uc3QgYmZk X2J5dGUgKnZhbDsKICAgIGJmZF9ieXRlIGJ1Zls0XTsKQEAgLTU1OSwxMCArNTU3LDEwIEBAIElu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9pcTIwMDAtdGRlcC5jCiAgICAvKiBVc2VkIHRv IGNvcHkgc3RydWN0IGFyZ3VtZW50cyBpbnRvIHRoZSBzdGFjay4gICovCiAgICBDT1JFX0FERFIg c3RydWN0X3B0cjsKICAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tMzJyLXRkZXAu YworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9tMzJyLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNS0wNS0z MSAxNzoxNTowMS4wODM4NjgyMDQgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9t MzJyLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzMTg4MjkyMiArMDIwMAorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL20zMnItdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcu ODA4MDM5NDMzICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL20zMnItdGRlcC5j CTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQxMDYwMjQ0ICswMjAwCiBAQCAtNjg3LDcgKzY4Nyw3IEBA IG0zMnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIENPUkVfQUREUiBy ZWd2YWw7CiAgICBnZGJfYnl0ZSAqdmFsOwpAQCAtNTcyLDEwICs1NzAsMTAgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL20zMnItdGRlcC5jCiAgCiAgICAvKiBGaXJzdCBmb3JjZSBz cCB0byBhIDQtYnl0ZSBhbGlnbm1lbnQuICAqLwogICAgc3AgPSBzcCAmIH4zOwotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL202OGstdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL202OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA4NDg2ODIxMCArMDIw MAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL202OGstdGRlcC5jCTIwMTUtMDUtMzEgMTc6 MTU6MDMuNDMyODgyOTI4ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIv bTY4ay10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDgwMzk0MzMgKzAyMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvbTY4ay10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDEw NjAyNDQgKzAyMDAKIEBAIC0zODIsNyArMzgyLDcgQEAgbTY4a19yZWdfc3RydWN0X3JldHVybl9w IChzdHJ1Y3QgZ2RiYXJjaAogIHsKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJh cmNoX3RkZXAgKGdkYmFyY2gpOwpAQCAtNTk4LDEwICs1OTYsMTAgQEAgSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL202OGstdGRlcC5jCiAgCiAgICAgICAgLyogTm9uLXNjYWxhcnMgYmln Z2VyIHRoYW4gNCBieXRlcyBhcmUgbGVmdCBhbGlnbmVkLCBvdGhlcnMgYXJlCiAgCSByaWdodCBh bGlnbmVkLiAgKi8KLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tODhrLXRkZXAuYwor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9tODhrLXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNS0wNS0zMSAx NzoxNTowMS4wODU4NjgyMTcgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tODhr LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzMjg4MjkyOCArMDIwMAorLS0tIGdkYi03LjEw LjUwLjIwMTUxMDIyLm9yaWcvZ2RiL204OGstdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODA5 MDM5NDQwICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL204OGstdGRlcC5jCTIw MTUtMTAtMjQgMjM6MTQ6MjAuOTQyMDYwMjUwICswMjAwCiBAQCAtMjU3LDEzICsyNTcsMTMgQEAg bTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgogIHsKICAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKQEAgLTYyOSwx MSArNjI3LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tODhrLXRkZXAuYwog IAogICAgICAgIGlmIChtODhrX2luX3JlZ2lzdGVyX3AgKHR5cGUpKQogIAl7Ci1JbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvbWVwLXRkZXAuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDIyL2dkYi9tZXAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi9tZXAtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDg2ODY4MjIzICswMjAwCi0r KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWVwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAz LjQzMzg4MjkzNCArMDIwMAotQEAgLTIyNjksNyArMjI2OSw3IEBAIHB1c2hfbGFyZ2VfYXJndW1l bnRzIChDT1JFX0FERFIgc3AsIGludAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2Ri L21lcC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MDkwMzk0NDAgKzAyMDAKKysrKyBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvbWVwLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0MjA2 MDI1MCArMDIwMAorQEAgLTIyNzAsNyArMjI3MCw3IEBAIHB1c2hfbGFyZ2VfYXJndW1lbnRzIChD T1JFX0FERFIgc3AsIGludAogIAogICAgZm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKICAgICAg ewpAQCAtNjQyLDEwICs2NDAsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21l cC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnX2xlbiA+IE1FUF9HUFJfU0laRSkKICAgICAgICAg IHsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9taXBzLXRkZXAuYworSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDIyL2dkYi9taXBzLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbWlwcy10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4w OTQ4NjgyNzMgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9taXBzLXRkZXAuYwky MDE1LTA1LTMxIDE3OjE1OjAzLjQzNTg4Mjk0NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUx MDIyLm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODE0MDM5NDczICsw MjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL21pcHMtdGRlcC5jCTIwMTUtMTAtMjQg MjM6MTQ6MjAuOTQzMDYwMjU3ICswMjAwCiBAQCAtNDU1LDcgKzQ1NSw3IEBAIHN0YXRpYyB2b2lk CiAgbWlwc194ZmVyX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICBpbnQgcmVnX251bSwgaW50IGxlbmd0aCwKQEAgLTY2 Niw3ICs2NjQsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy10ZGVwLmMK ICAgIGlmIChtaXBzX2RlYnVnICYmIG91dCAhPSBOVUxMKQogICAgICB7CiAgICAgICAgaW50IGk7 Ci1AQCAtNDU1MSwxMyArNDU1MSwxMyBAQCBtaXBzX2VhYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjCitAQCAtNDU1NCwxMyArNDU1NCwxMyBAQCBtaXBzX2VhYmlfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjCiAgICAgICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9T SVpFXTsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBz dHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsK QEAgLTY4Myw3ICs2ODEsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy10 ZGVwLmMKICAKICAgICAgICAvKiBUaGUgRUFCSSBwYXNzZXMgc3RydWN0dXJlcyB0aGF0IGRvIG5v dCBmaXQgaW4gYSByZWdpc3RlciBieQogICAgICAgICAgIHJlZmVyZW5jZS4gICovCi1AQCAtNDgy Niw3ICs0ODI2LDcgQEAgbWlwc19lYWJpX3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKgor QEAgLTQ4MjksNyArNDgyOSw3IEBAIG1pcHNfZWFiaV9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJh cmNoICoKICAKICBzdGF0aWMgaW50CiAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5rX3AgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUsCkBAIC02OTIsNyArNjkw LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgewogICAg aW50IGk7CiAgCi1AQCAtNDg0MSw3ICs0ODQxLDcgQEAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5r X3AgKHN0cnVjdCBnZGJhcgorQEAgLTQ4NDQsNyArNDg0NCw3IEBAIG1pcHNfbjMybjY0X2ZwX2Fy Z19jaHVua19wIChzdHJ1Y3QgZ2RiYXIKICAKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVM RFMgKGFyZ190eXBlKTsgaSsrKQogICAgICB7CkBAIC03MDEsNyArNjk5LDcgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgICAgICAgc3RydWN0IHR5cGUgKmZp ZWxkX3R5cGU7CiAgCiAgICAgICAgLyogV2UncmUgb25seSBsb29raW5nIGF0IG5vcm1hbCBmaWVs ZHMuICAqLwotQEAgLTQ4ODMsNyArNDg4Myw3IEBAIG1pcHNfbjMybjY0X3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmEKK0BAIC00ODg2LDcgKzQ4ODYsNyBAQCBtaXBzX24zMm42NF9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhCiAgICBpbnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3Jl ZzsKICAgIGludCBhcmdudW07CkBAIC03MTAsNyArNzA4LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIGVu dW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsK ICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBO VUxMKTsKLUBAIC01MjM0LDExICs1MjM0LDExIEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAo c3RydWN0IGdkYmFyY2gKK0BAIC01MjM3LDExICs1MjM3LDExIEBAIG1pcHNfbjMybjY0X3JldHVy bl92YWx1ZSAoc3RydWN0IGdkYmFyY2gKICAJCQkJOiBNSVBTX1YwX1JFR05VTSk7CiAgCSAgIGZp ZWxkIDwgVFlQRV9ORklFTERTICh0eXBlKTsgZmllbGQrKywgcmVnbnVtICs9IDIpCiAgCXsKQEAg LTcyNiw3ICs3MjQsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy10ZGVw LmMKICAJICBpZiAoVFlQRV9MRU5HVEggKFRZUEVfRklFTERfVFlQRSAodHlwZSwgZmllbGQpKSA9 PSAxNikKICAJICAgIHsKICAJICAgICAgLyogQSAxNi1ieXRlIGxvbmcgZG91YmxlIGZpZWxkIGdv ZXMgaW4gdHdvIGNvbnNlY3V0aXZlCi1AQCAtNTI4MCw4ICs1MjgwLDggQEAgbWlwc19uMzJuNjRf cmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTUyODMsOCArNTI4Myw4IEBAIG1pcHNf bjMybjY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2gKICAJICBpZiAob2Zmc2V0ICsgeGZl ciA+IFRZUEVfTEVOR1RIICh0eXBlKSkKICAJICAgIHhmZXIgPSBUWVBFX0xFTkdUSCAodHlwZSkg LSBvZmZzZXQ7CiAgCSAgaWYgKG1pcHNfZGVidWcpCkBAIC03MzcsNyArNzM1LDcgQEAgSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgCSAgbWlwc194ZmVyX3JlZ2lz dGVyIChnZGJhcmNoLCByZWdjYWNoZSwKICAJCQkgICAgICBnZGJhcmNoX251bV9yZWdzIChnZGJh cmNoKSArIHJlZ251bSwKICAJCQkgICAgICB4ZmVyLCBCRkRfRU5ESUFOX1VOS05PV04sIHJlYWRi dWYsIHdyaXRlYnVmLAotQEAgLTUzMzksNyArNTMzOSw3IEBAIG1pcHNfbzMyX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2gKK0BAIC01MzQyLDcgKzUzNDIsNyBAQCBtaXBzX28zMl9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICBpbnQgYXJncmVnOwogICAgaW50IGZsb2F0 X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBAIC03NDYsNyArNzQ0LDcgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gMDsK ICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJh cmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0 aW9uLCBOVUxMKTsKLUBAIC01NDAzLDEzICs1NDAzLDEzIEBAIG1pcHNfbzMyX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2gKK0BAIC01NDA2LDEzICs1NDA2LDEzIEBAIG1pcHNfbzMyX3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFs OwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwogICAgICAgIHN0cnVj dCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAt NzYzLDcgKzc2MSw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9taXBzLXRkZXAu YwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAotQEAgLTU4NjcsOCAr NTg2Nyw4IEBAIG1pcHNfbzY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKK0BAIC01 ODcwLDggKzU4NzAsOCBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo CiAgICBpbnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdudW07CkBA IC03NzQsNyArNzcyLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21pcHMtdGRl cC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChm dW5jdGlvbiwgTlVMTCk7CiAgCi1AQCAtNTkyOCwxMyArNTkyOCwxMyBAQCBtaXBzX282NF9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTkzMSwxMyArNTkzMSwxMyBAQCBtaXBz X282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICAgICAgY29uc3QgZ2RiX2J5 dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAg ICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcp KTsKQEAgLTc5MSwxMSArNzg5LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9t aXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAotSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21uMTAzMDAtdGRlcC5jCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjIvZ2RiL21uMTAzMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAx LjA5NTg2ODI3OSArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21uMTAzMDAtdGRl cC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDM1ODgyOTQ3ICswMjAwCi1AQCAtMTIyNSw3ICsxMjI1 LDcgQEAgbW4xMDMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCistLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDox Ny44MTUwMzk0ODAgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvbW4xMDMwMC10 ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDMwNjAyNTcgKzAyMDAKK0BAIC0xMjI3LDcgKzEy MjcsNyBAQCBtbjEwMzAwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAg IGNvbnN0IGludCBwdXNoX3NpemUgPSByZWdpc3Rlcl9zaXplIChnZGJhcmNoLCBFX1BDX1JFR05V TSk7CiAgICBpbnQgcmVnc191c2VkOwpAQCAtODA0LDEwICs4MDIsMTAgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL21uMTAzMDAtdGRlcC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0g MDsKICAgIGludCBhcmdudW07CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwotSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL210LXRkZXAuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi9tdC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL210LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5Njg2ODI4NiArMDIwMAotKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL210LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzNjg4 Mjk1MyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL210LXRkZXAuYwky MDE1LTEwLTI0IDIzOjE0OjE3LjgxNTAzOTQ4MCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUx MDIyL2dkYi9tdC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDQwNjAyNjQgKzAyMDAKIEBA IC03ODEsOSArNzgxLDkgQEAgbXRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YQogICAgZ2RiX2J5dGUgYnVmW01UX01BWF9TVFJVQ1RfU0laRV07CiAgICBpbnQgYXJncmVnID0g TVRfMVNUX0FSR1JFRzsKQEAgLTgyMCwxMCArODE4LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9tdC10ZGVwLmMKICAgIGludCBpLCBqOwogIAogICAgLyogRmlyc3QgaGFuZGxl IGhvd2V2ZXIgbWFueSBhcmdzIHdlIGNhbiBmaXQgaW50byBNVF8xU1RfQVJHUkVHIHRocnUKLUlu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcGMtc3lzdi10ZGVwLmMKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wNS0zMSAxNzox NTowMS4wOTc4NjgyOTIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcGMtc3lz di10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MzY4ODI5NTMgKzAyMDAKKy0tLSBnZGItNy4x MC41MC4yMDE1MTAyMi5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDox Ny44MTYwMzk0ODYgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvcHBjLXN5c3Yt dGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQ0MDYwMjY0ICswMjAwCiBAQCAtNjYsNyArNjYs NyBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBp bnQgb3BlbmNsX2FiaSA9IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBlIChmdW5j dGlvbikpOwpAQCAtODY4LDExICs4NjYsMTEgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3BwYy1zeXN2LXRkZXAuYwogIAogICAgLyogRW5mb3JjZSBhbGlnbm1lbnQgb2Ygc3RhY2sg bG9jYXRpb24sIGlmIHJlcXVlc3RlZC4gICovCiAgICBpZiAoYWxpZ24gPiB0ZGVwLT53b3Jkc2l6 ZSkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ybDc4LXRkZXAuYworSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDIyL2dkYi9ybDc4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4w OTc4NjgyOTIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ybDc4LXRkZXAuYwky MDE1LTA1LTMxIDE3OjE1OjAzLjQzNzg4Mjk1OSArMDIwMAotQEAgLTEzMzMsOCArMTMzMyw4IEBA IHJsNzhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy4xMC41 MC4yMDE1MTAyMi5vcmlnL2dkYi9ybDc4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgxNjAz OTQ4NiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi9ybDc4LXRkZXAuYwkyMDE1 LTEwLTI0IDIzOjE0OjIwLjk0NDA2MDI2NCArMDIwMAorQEAgLTEzMzgsOCArMTMzOCw4IEBAIHJs NzhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGZvciAoaSA9IG5hcmdz IC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlw ZSA9IHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ldKTsKQEAgLTg4MywxMCArODgxLDEwIEBA IEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ybDc4LXRkZXAuYwogIAogICAgICAgIHNw IC09IGNvbnRhaW5lcl9sZW47CiAgICAgICAgd3JpdGVfbWVtb3J5IChybDc4X21ha2VfZGF0YV9h ZGRyZXNzIChzcCksCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcnM2MDAwLWFpeC10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3JzNjAwMC1haXgt dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDk4ODY4Mjk4ICswMjAwCi0rKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mzc4 ODI5NTkgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9yczYwMDAtYWl4 LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgxNjAzOTQ4NiArMDIwMAorKysrIGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0 NDA2MDI2NCArMDIwMAogQEAgLTE4Niw5ICsxODYsOSBAQCByczYwMDBfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTkwOCwxMSArOTA2LDExIEBAIEluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9yczYwMDAtYWl4LXRkZXAuYwogIAogICAgICAgIGlmIChhcmdi eXRlcykKICAJewotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3MzOTAtbGludXgtdGRl cC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3MzOTAtbGludXgtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zMzkwLWxpbnV4LXRk ZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5OTg2ODMwNCArMDIwMAotKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTY6MTMuMjg1MzIw NzY5ICswMjAwCi1AQCAtMjQ2Myw3ICsyNDYzLDcgQEAgczM5MF9mdW5jdGlvbl9hcmdfdmVjdG9y IChzdHJ1Y3QgdHlwZSAqdAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3MzOTAt bGludXgtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODE3MDM5NDkzICswMjAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6 MjAuOTQ1MDYwMjcwICswMjAwCitAQCAtMjU3MSw3ICsyNTcxLDcgQEAgczM5MF9mdW5jdGlvbl9h cmdfdmVjdG9yIChzdHJ1Y3QgdHlwZSAqdAogIC8qIERldGVybWluZSB3aGV0aGVyIE4gaXMgYSBw b3dlciBvZiB0d28uICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTkyMSw3ICs5MTksNyBAQCBJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvczM5MC1saW51eC10ZGVwLmMKICB7CiAgICByZXR1 cm4gbiAmJiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKICB9Ci1AQCAtMjUyMCw3ICsyNTIwLDcgQEAg czM5MF9oYW5kbGVfYXJnIChzdHJ1Y3QgczM5MF9hcmdfc3RhdGUgKgorQEAgLTI2MjgsNyArMjYy OCw3IEBAIHMzOTBfaGFuZGxlX2FyZyAoc3RydWN0IHMzOTBfYXJnX3N0YXRlICoKICAJCSBlbnVt IGJmZF9lbmRpYW4gYnl0ZV9vcmRlciwgaW50IGlzX3VubmFtZWQpCiAgewogICAgc3RydWN0IHR5 cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTkzMCwxMCAr OTI4LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zMzkwLWxpbnV4LXRkZXAu YwogICAgaW50IHdyaXRlX21vZGUgPSBhcy0+cmVnY2FjaGUgIT0gTlVMTDsKICAKICAgIGlmIChz MzkwX2Z1bmN0aW9uX2FyZ19mbG9hdCAodHlwZSkpCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvc2NvcmUtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Njb3Jl LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvc2Nv cmUtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTAwODY4MzExICswMjAwCi0rKysgZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDM5ODgy OTcyICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvc2NvcmUtdGRlcC5j CTIwMTUtMTAtMjQgMjM6MTQ6MTcuODE3MDM5NDkzICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL3Njb3JlLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0NTA2MDI3MCArMDIw MAogQEAgLTUxNCw3ICs1MTQsNyBAQCBzY29yZV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJh cmNoICpnCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRl ciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJnbnVtOwpAQCAtOTQzLDEwICs5NDEsMTAgQEAgSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Njb3JlLXRkZXAuYwogICAgQ09SRV9BRERSIHN0YWNr X29mZnNldCA9IDA7CiAgICBDT1JFX0FERFIgYWRkciA9IDA7CiAgCi1JbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvc2gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv c2gtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTAxODY4MzE3ICswMjAwCi0rKysgZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvc2gtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDM5ODgyOTcy ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvc2gtdGRlcC5jCTIwMTUt MTAtMjQgMjM6MTQ6MTcuODE4MDM5NDk5ICswMjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL3NoLXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0NjA2MDI3NyArMDIwMAogQEAgLTgw NSw3ICs4MDUsNyBAQCBzaF9za2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCiAg c3RhdGljIGludAogIHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBz dHJ1Y3QgdHlwZSAqdHlwZSkKQEAgLTk4NSwxMCArOTgzLDEwIEBAIEluZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9zaC10ZGVwLmMKICAgIGludCBwYXNzX29uX3N0YWNrID0gMDsKICAgIGlu dCBsYXN0X3JlZ19hcmcgPSBJTlRfTUFYOwogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3NoNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3NoNjQtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zaDY0LXRk ZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwMjg2ODMyMyArMDIwMAotKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3NoNjQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQwODgyOTc4ICsw MjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjIub3JpZy9nZGIvc2g2NC10ZGVwLmMJMjAxNS0x MC0yNCAyMzoxNDoxNy44MTkwMzk1MDYgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvc2g2NC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDYwNjAyNzcgKzAyMDAKIEBAIC0x MDU2LDcgKzEwNTYsNyBAQCBzaDY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdk CiAgCQkgICAgICBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewpAQCAtMTAwNywxMCArMTAwNSwx MCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc2g2NC10ZGVwLmMKICAgIGludCBh cmdyZWdfc2l6ZTsKICAgIGludCBmcF9hcmdzWzEyXTsKICAKLUluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9zcGFyYy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIv c3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9zcGFyYy10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDM4NjgzMjkgKzAyMDAKLSsrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYy10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40 NDE4ODI5ODQgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi9zcGFyYy10 ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MTkwMzk1MDYgKzAyMDAKKysrKyBnZGItNy4xMC41 MC4yMDE1MTAyMi9nZGIvc3BhcmMtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQ2MDYwMjc3 ICswMjAwCiBAQCAtNTI1LDcgKzUyNSw3IEBAIHNwYXJjMzJfc3RvcmVfYXJndW1lbnRzIChzdHJ1 Y3QgcmVnY2FjaGUKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0x MDIwLDEwICsxMDE4LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYy10 ZGVwLmMKICAKICAgICAgICBpZiAoc3BhcmNfc3RydWN0dXJlX29yX3VuaW9uX3AgKHR5cGUpCiAg CSAgfHwgKHNwYXJjX2Zsb2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAxNikKLUluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYzY0LXRkZXAuYworSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDIyL2dkYi9zcGFyYzY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDQ4Njgz MzYgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE1 LTA1LTMxIDE3OjE1OjAzLjQ0MTg4Mjk4NCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIy Lm9yaWcvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODIwMDM5NTEzICsw MjAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTUtMTAt MjQgMjM6MTQ6MjAuOTQ3MDYwMjg0ICswMjAwCiBAQCAtNjM2LDcgKzYzNiw4IEBAIHNwYXJjNjRf MTZfYnl0ZV9hbGlnbl9wIChzdHJ1Y3QgdHlwZSAqdHkKICAKICBzdGF0aWMgdm9pZApAQCAtMTA3 OSwxMSArMTA3NywxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3BhcmM2NC10 ZGVwLmMKICAgICAgICBpbnQgcmVnbnVtID0gLTE7CiAgICAgICAgZ2RiX2J5dGUgYnVmWzE2XTsK ICAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3NwdS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDU4 NjgzNDIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6MDMuNDQyODgyOTkwICswMjAwCi1AQCAtMTQzMCw3ICsxNDMwLDcgQEAgc3B1 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDIyLm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MjEwMzk1MTkg KzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvc3B1LXRkZXAuYwkyMDE1LTEwLTI0 IDIzOjE0OjIwLjk0NzA2MDI4NCArMDIwMAorQEAgLTE0MjksNyArMTQyOSw3IEBAIHNwdV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFy ZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlIChhcmcpKTsKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHMgPSB2YWx1 ZV9jb250ZW50cyAoYXJnKTsKQEAgLTEwOTIsNyArMTA5MCw3IEBAIEluZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9zcHUtdGRlcC5jCiAgCiAgICAgICAgLyogSWYgdGhlIGFyZ3VtZW50IGRv ZXNuJ3Qgd2hvbGx5IGZpdCBpbnRvIHJlZ2lzdGVycywgaXQgYW5kCiAgCSBhbGwgc3Vic2VxdWVu dCBhcmd1bWVudHMgZ28gdG8gdGhlIHN0YWNrLiAgKi8KLUBAIC0xNDYyLDcgKzE0NjIsNyBAQCBz cHVfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAtMTQ2MSw3ICsxNDYx LDcgQEAgc3B1X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgogIAl7CiAgCSAg c3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogIAkgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMTAxLDEwICsxMDk5LDEwIEBAIElu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtdGRlcC5jCiAgCSAgaW50IHByZWZlcnJl ZF9zbG90OwogIAkgIAogIAkgIGlmIChzcHVfc2NhbGFyX3ZhbHVlX3AgKHR5cGUpKQotSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RpYzZ4LXRkZXAuYworSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDIyL2dkYi90aWM2eC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwNjg2ODM0 OCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE1LTA1 LTMxIDE3OjE1OjAzLjQ0Mjg4Mjk5MCArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9y aWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3LjgyMTAzOTUxOSArMDIwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90aWM2eC10ZGVwLmMJMjAxNS0xMC0yNCAyMzox NDoyMC45NDcwNjAyODQgKzAyMDAKIEBAIC04OTUsNyArODk1LDcgQEAgdGljNnhfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogICAgaW50IGFyZ3JlZyA9IDA7CiAgICBpbnQgYXJn bnVtOwpAQCAtMTE0MiwxMCArMTE0MCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGljNngtdGRlcC5jCiAgCiAgCSAgYWRkciA9IHNwICsgc3RhY2tfb2Zmc2V0OwogIAkgIHdy aXRlX21lbW9yeSAoYWRkciwgdmFsLCBsZW4pOwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3RpbGVneC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGlsZWd4 LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdGls ZWd4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwNzg2ODM1NSArMDIwMAotKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40NDI4 ODI5OTAgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmlnL2dkYi90aWxlZ3gtdGRl cC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODIyMDM5NTI2ICswMjAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoyMC45NDcwNjAyODQg KzAyMDAKIEBAIC0yODgsNyArMjg4LDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKgogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKICAgIGludCBhcmdyZWcg PSBUSUxFR1hfUjBfUkVHTlVNOwpAQCAtMTE1NSwxMCArMTE1MywxMCBAQCBJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGlsZWd4LXRkZXAuYwogICAgc3RhdGljIGNvbnN0IGdkYl9ieXRl IGZvdXJfemVyb193b3Jkc1sxNl0gPSB7IDAgfTsKICAKICAgIC8qIElmIHN0cnVjdF9yZXR1cm4g aXMgMSwgdGhlbiB0aGUgc3RydWN0IHJldHVybiBhZGRyZXNzIHdpbGwKLUluZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi92ODUwLXRkZXAuYworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi92ODUwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvdjg1MC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDc4NjgzNTUgKzAyMDAKLSsr KyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92ODUwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAz LjQ0Mzg4Mjk5NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3Y4NTAt dGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MTcuODIyMDM5NTI2ICswMjAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQ4MDYwMjkw ICswMjAwCiBAQCAtMTAxOSw3ICsxMDE5LDcgQEAgdjg1MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ3JlZzsKQEAgLTExNzcsMTAgKzExNzUsMTAg QEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Y4NTAtdGRlcC5jCiAgICAgICAgZ2Ri X2J5dGUgKnZhbDsKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6ZV07CiAgCi1J bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmF4LXRkZXAuYworSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi92YXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4y MDE1MDUyMC5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTA4ODY4MzYx ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmF4LXRkZXAuYwkyMDE1LTA1LTMx IDE3OjE1OjAzLjQ0Mzg4Mjk5NyArMDIwMAorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcv Z2RiL3ZheC10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MjIwMzk1MjYgKzAyMDAKKysrKyBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmF4LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjIwLjk0 ODA2MDI5MCArMDIwMAogQEAgLTExMSw3ICsxMTEsNyBAQCB2YXhfc3RvcmVfYXJndW1lbnRzIChz dHJ1Y3QgcmVnY2FjaGUgKnJlCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdj YWNoZV9hcmNoIChyZWdjYWNoZSk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC0xMTk5LDEwICsxMTk3LDEwIEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YXgtdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gKGxl biArIDMpICYgfjM7CiAgICAgICAgY291bnQgKz0gKGxlbiArIDMpIC8gNDsKLUluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUw LjIwMTUwNTIwLm9yaWcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4x MDg4NjgzNjEgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94c3Rvcm15MTYtdGRl cC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQzODgyOTk3ICswMjAwCistLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjIub3JpZy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE1LTEwLTI0IDIzOjE0OjE3Ljgy MjAzOTUyNiArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi94c3Rvcm15MTYtdGRl cC5jCTIwMTUtMTAtMjQgMjM6MTQ6MjAuOTQ4MDYwMjkwICswMjAwCiBAQCAtMjMzLDggKzIzMyw5 IEBAIHhzdG9ybXkxNl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmMKICAgIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENP UkVfQUREUiBzdGFja19kZXN0ID0gc3A7CkBAIC0xMjE1LDExICsxMjEzLDExIEBAIEluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi94c3Rvcm15MTYtdGRlcC5jCiAgICBjb25zdCBnZGJfYnl0 ZSAqdmFsOwogICAgZ2RiX2J5dGUgYnVmW3hzdG9ybXkxNl9wY19zaXplXTsKICAKLUluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjIvZ2RiL3h0ZW5zYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMTA4Njgz NzMgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6MDMuNDQ0ODgzMDAzICswMjAwCi1AQCAtMTY0Niw4ICsxNjQ2LDcgQEAgeHRl bnNhX3N0b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDIyLm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNS0xMC0yNCAyMzoxNDoxNy44MjQwMzk1 MzkgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIveHRlbnNhLXRkZXAuYwkyMDE1 LTEwLTI0IDIzOjE0OjIwLjk0ODA2MDI5MCArMDIwMAorQEAgLTE2NDAsOCArMTY0MCw3IEBAIHh0 ZW5zYV9zdG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBlICoKICAKICAgICAgICBpZiAobGVu ID4gKGNhbGxzaXplID4gOCA/IDggOiAxNikpCiAgCWludGVybmFsX2Vycm9yIChfX0ZJTEVfXywg X19MSU5FX18sCkBAIC0xMjI5LDcgKzEyMjcsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIveHRlbnNhLXRkZXAuYwogICAgICAgIGFyZWcgPSBhcnJlZ19udW1iZXIgKGdkYmFyY2gs CiAgCQkJICAgZ2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIgKyBjYWxsc2l6ZSwg d2IpOwogIAotQEAgLTE3MjEsMTggKzE3MjAsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKgorQEAgLTE3MTUsMTggKzE3MTQsMTggQEAgeHRlbnNhX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBpOwpAQCAtMTI1MSw3 ICsxMjQ5LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3h0ZW5zYS10ZGVwLmMK ICAgICAgICBpbnQgcmVnbm87CQkvKiByZWdubyBpZiBpbiByZWdpc3Rlci4gICovCiAgICAgIH0g dTsKICAgIH07Ci1AQCAtMTc1Niw5ICsxNzU1LDEwIEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xNzUwLDkgKzE3NDksMTAgQEAgeHRlbnNhX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgICAgICAgewogIAkgIHN0cnVjdCB2YWx1ZSAq YXJnID0gYXJnc1tpXTsKICAJICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVm ICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTEyNjUsNyArMTI2Myw3IEBAIEluZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiAgCSAgc3dpdGNoIChUWVBFX0NPREUgKGFy Z190eXBlKSkKICAJICAgIHsKICAJICAgIGNhc2UgVFlQRV9DT0RFX0lOVDoKLUBAIC0xODI4LDgg KzE4MjgsOCBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCitAQCAt MTgyMiw4ICsxODIyLDggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KgogIAkgIGluZm8tPmFsaWduID0gVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCkt PmJ1aWx0aW5fbG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0KQEAgLTEyNzUsNyArMTI3Myw3IEBAIElu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiAgCiAgICAgICAgLyog QWxpZ24gc2l6ZSBhbmQgb25zdGFja19zaXplLiAgKi8KICAgICAgICBzaXplID0gKHNpemUgKyBp bmZvLT5hbGlnbiAtIDEpICYgfihpbmZvLT5hbGlnbiAtIDEpOwotQEAgLTE4NzQsNyArMTg3NCw3 IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xODY4LDcg KzE4NjgsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgCiAg ICAgICAgaWYgKGluZm8tPm9uc3RhY2spCiAgCXsKQEAgLTEyODQsNyArMTI4Miw3IEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiAgCSAgQ09SRV9BRERSIG9m ZnNldCA9IHNwICsgaW5mby0+dS5vZmZzZXQ7CiAgCiAgCSAgLyogT2RkLXNpemVkIHN0cnVjdHMg YXJlIGFsaWduZWQgdG8gdGhlIGxvd2VyIHNpZGUgb2YgYSBtZW1vcnkKLUBAIC0xODkwLDcgKzE4 OTAsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCitAQCAtMTg4 NCw3ICsxODg0LDcgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgog IAl9CiAgICAgICAgZWxzZQogIAl7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTI1b2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gKaW5kZXgg NmZlNjg0ZS4uMjBkYjkxNSAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2Yy NS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBhdGNoCkBAIC00Nywx MCArNDcsMTAgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1l PWY3Ny1ib3VuZHMucGF0Y2gKIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtbGFu Zy5oCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTAxLTA2IDIy OjQ2OjMxLjYyMDg1Mjk5NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtbGFu Zy5oCTIwMTUtMDEtMDYgMjI6NDY6MzQuMTkwODY1NDY2ICswMTAwCistLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyNToxNC4yMzMxNjEwOTcg KzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgJMjAxNS0xMS0wMiAy MToyNToyMi40MDQyMTQ4NjAgKzAxMDAKIEBAIC02Miw5ICs2Miw5IEBAIHN0cnVjdCBjb21tb25f YmxvY2sKICAgIHN0cnVjdCBzeW1ib2wgKmNvbnRlbnRzWzFdOwogIH07CkBAIC02MywxMSArNjMs MTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtbGFuZy5oCiAgCiAgZXh0ZXJu IHZvaWQgZjc3X2dldF9keW5hbWljX2FycmF5X2xlbmd0aCAoc3RydWN0IHR5cGUgKik7CiAgCi1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9mLXR5cGVwcmludC5jCTIwMTUtMDEtMDYgMjI6NDY6MzEu NjIxODUzMDAxICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQu YwkyMDE1LTAxLTA2IDIyOjQ3OjAzLjczMTAwODc5OCArMDEwMAotQEAgLTE1OCw3ICsxNTgsNyBA QCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjI1OjE0LjIz NDE2MTEwNCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXR5cGVwcmludC5j CTIwMTUtMTEtMDIgMjE6MjU6MjIuNDA0MjE0ODYwICswMTAwCitAQCAtMTcxLDcgKzE3MSw3IEBA IGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUKICAJCQkgICAgIGludCBz aG93LCBpbnQgcGFzc2VkX2FfcHRyLCBpbnQgZGVtYW5nbGVkX2FyZ3MsCiAgCQkJICAgICBpbnQg YXJyYXlwcmludF9yZWN1cnNlX2xldmVsKQogIHsKQEAgLTc2LDcgKzc2LDcgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMKICAKICAgIC8qIE5vIHN0YXRpYyB2 YXJpYWJsZXMgYXJlIHBlcm1pdHRlZCBhcyBhbiBlcnJvciBjYWxsIG1heSBvY2N1ciBkdXJpbmcK ICAgICAgIGV4ZWN1dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLiAgKi8KLUBAIC0xOTIsNyArMTkyLDcg QEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorQEAgLTIwNCw3ICsy MDQsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCiAgCiAgICAg ICAgICAgIGxvd2VyX2JvdW5kID0gZjc3X2dldF9sb3dlcmJvdW5kICh0eXBlKTsKICAgICAgICAg ICAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCkBAIC04NSw3 ICs4NSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLXR5cGVwcmludC5jCiAg CiAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZlIGFuIGFzc3VtZWQgc2l6 ZSBhcnJheSwgd2UKICAgICAgICAgICAgICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQg dGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KLUBAIC0yMDIsNyArMjAyLDcgQEAgZl90eXBlX3By aW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQorQEAgLTIxNCw3ICsyMTQsNyBAQCBmX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCiAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJi b3VuZCAodHlwZSk7CkBAIC05NCw3ICs5NCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9mLXR5cGVwcmludC5jCiAgICAgICAgICAgICAgfQogIAogICAgICAgICAgICBpZiAoVFlQ RV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgIT0gVFlQRV9DT0RFX0FSUkFZKQotQEAg LTI3MSw3ICsyNzEsNyBAQCB2b2lkCitAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQKICBmX3R5cGVf cHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCBzaG93LAogIAkJICAgaW50IGxldmVsKQogIHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYwogICAgaW50IGluZGV4OwogIAog ICAgUVVJVDsKLUBAIC0zNTMsNyArMzUzLDcgQEAgZl90eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdAorQEAgLTM2NSw3ICszNjUsNyBAQCBmX3R5cGVfcHJpbnRfYmFzZSAoc3Ry dWN0IHR5cGUgKnR5cGUsIHN0CiAgICAgICAgZWxzZQogIAl7CiAgCSAgdXBwZXJfYm91bmQgPSBm NzdfZ2V0X3VwcGVyYm91bmQgKHR5cGUpOwpAQCAtMTEyLDEwICsxMTIsMTAgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMKICAJfQogICAgICAgIGJyZWFrOwog IAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ2OjMx LjYyMTg1MzAwMSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQu YwkyMDE1LTAxLTA2IDIyOjQ2OjM0LjE5MTg2NTQ3MSArMDEwMAorLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjI1OjE0LjIzNDE2MTEw NCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMJMjAxNS0x MS0wMiAyMToyNToyMi40MDUyMTQ4NjcgKzAxMDAKIEBAIC00Myw3ICs0Myw3IEBAIExPTkdFU1Qg Zjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU4KICAvKiBBcnJheSB3aGljaCBob2xkcyBv ZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMKICAgICBmb3IgYSBn aXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFjaCBzdWJhcnJheS4g ICovCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaCBi L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKaW5kZXggNjRlMTU2NS4uMzE5 NzhlYyAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaAor KysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtbGF6eXZhbHVlLnBhdGNoCkBAIC0xLDE1ICsxLDE5 IEBACi0tLS0gZ2RiLTcuNS4wLjIwMTIwOTI2LW02NC9nZGIvdmFsdWUuYy1vcmlnCTIwMTItMTEt MDkgMTc6MDg6NTIuMTM3NDA2MTE4ICswMTAwCi0rKysgZ2RiLTcuNS4wLjIwMTIwOTI2LW02NC9n ZGIvdmFsdWUuYwkyMDEyLTExLTA5IDE3OjMyOjM4LjMyNDE5OTIzMCArMDEwMAotQEAgLTY2Myw3 ICs2NjMsNiBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0luZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzoxNzowNC4wNDIx NDM2MjggKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYwkyMDE1LTEw LTI0IDIzOjE3OjI3LjY4NzMwMDY4OSArMDIwMAorQEAgLTkzNCw3ICs5MzQsNiBAQCBhbGxvY2F0 ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgIGRlc2NyaXB0aW9uIGNvcnJl Y3RseS4gICovCiAgICBjaGVja190eXBlZGVmICh0eXBlKTsKICAKIC0gIHVsb25nZXN0X2ZpdHNf aG9zdF9vcl9lcnJvciAoVFlQRV9MRU5HVEggKHR5cGUpKTsKLSAgIHZhbCA9IChzdHJ1Y3QgdmFs dWUgKikgeHphbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgdmFsdWUpKTsKKyAgIHZhbCA9IFhDTkVXIChz dHJ1Y3QgdmFsdWUpOwogICAgdmFsLT5jb250ZW50cyA9IE5VTEw7CiAgICB2YWwtPm5leHQgPSBh bGxfdmFsdWVzOwotLS0tIC9kZXYvbnVsbAkyMDEyLTEwLTE4IDExOjA4OjEzLjIwMjMyODIzOSAr MDIwMAotKysrIGdkYi03LjUuMC4yMDEyMDkyNi1tNjQtdGVzdC9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCTIwMTItMTEtMDkgMTg6MTM6NTYuMjg2NTg3OTk0 ICswMTAwCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAJMjAxNS0xMC0y NCAyMzoxNzowNC4wNDIxNDM2MjggKzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsjIFRoaXMgdGVz dGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03MCw4ICs3NCwx MCBAQAogK30KICsKICt0ZXN0ICJuYXRpdmUiCi0tLS0gL2Rldi9udWxsCTIwMTItMTAtMTggMTE6 MDg6MTMuMjAyMzI4MjM5ICswMjAwCi0rKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdl c3QtdHlwZXMtNjRiaXQuYwkyMDEyLTExLTA5IDE3OjA4OjUxLjM3NDQwNjM0NCArMDEwMAorSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10 eXBlcy02NGJpdC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMJMjAxNS0xMC0yNCAyMzoxNzowNC4wNDIx NDM2MjggKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQg b2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTAxLDggKzEwNywxMCBAQAogK3sKICsg IHJldHVybiAwOwogK30KLS0tLSAvZGV2L251bGwJMjAxMi0xMC0xOCAxMTowODoxMy4yMDIzMjgy MzkgKzAyMDAKLSsrKyAuL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJp dC5TCTIwMTItMTEtMDkgMTc6NTE6MzcuNTk3ODQ2MTMwICswMTAwCitJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xv bmdlc3QtdHlwZXMtNjRiaXQuUwkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIwMAog QEAgLTAsMCArMSwyNDkgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgogKwpAQCAtMzUzLDggKzM2MSwxMCBAQAogKwkuc3RyaW5nCSJjaGFyIgog KwkuaWRlbnQJIkdDQzogKEdOVSkgNC43LjMgMjAxMjExMDkgKHByZXJlbGVhc2UpIgogKwkuc2Vj dGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi0tLS0gL2Rldi9udWxsCTIwMTItMTAt MTggMTE6MDg6MTMuMjAyMzI4MjM5ICswMjAwCi0rKysgZ2RiLTcuNS4wLjIwMTIwOTI2LW02NC10 ZXN0L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5iejIudXUJMjAx Mi0xMS0wOSAxODowNDo1Mi45OTU2OTI3NzEgKzAxMDAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYnoyLnV1Cis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25n ZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIw MAogQEAgLTAsMCArMSw2NyBAQAogK2JlZ2luIDc1NSBnZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0 Yml0LmJ6MgogK00wRUlILjMlITYyOTM2PCdOI09IYCJHL19fX19fX19fXl9fX19fXz9fWV9fX19f Xy8vXTdTUUQ1J14vXyUKCmRpZmYgLS1naXQgYS9nZGItdXBzdHJlYW0ucGF0Y2ggYi9nZGItdXBz dHJlYW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U1M2Q0Ngot LS0gL2Rldi9udWxsCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApAQCAtMCwwICsxLDY5IEBACito dHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0xMC9tc2cwMDUxMC5odG1s CitTdWJqZWN0OiBbcGF0Y2hdIEZpeCBhY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cCB0eXBvcy9l cnJvcnMgIFtSZTogW1BBVENIXSBbQWRhXSBGaXggdGhlIGV2YWx1YXRpb24gb2YgYWNjZXNzIHRv IHBhY2tlZCBhcnJheSBzdWJzY3JpcHRdCisKKworLS1yNVB5ZDcrZlhOdDg0RmYzCitDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRpb246 IGlubGluZQorCitPbiBNb24sIDE0IFNlcCAyMDE1IDE2OjE4OjAwICswMjAwLCBKb2VsIEJyb2Jl Y2tlciB3cm90ZToKKz4gPiAJKiBnZGIuYWRhL2FjY2Vzc190b19wYWNrZWRfYXJyYXkuZXhwOiBO ZXcgdGVzdGNhc2UuCis+IAorPiBMb29rcyBnb29kIHRvIG1lLiBQbGVhc2UgZ28gYWhlYWQgYW5k IHB1c2guCisKK1J1bm5pbmcgLi9nZGIuYWRhL2FjY2Vzc190b19wYWNrZWRfYXJyYXkuZXhwIC4u LgorRVJST1I6IHRjbCBlcnJvciBzb3VyY2luZyAuL2dkYi5hZGEvYWNjZXNzX3RvX3BhY2tlZF9h cnJheS5leHAuCitFUlJPUjogZXh0cmEgY2hhcmFjdGVycyBhZnRlciBjbG9zZS1xdW90ZQorICAg IHdoaWxlIGV4ZWN1dGluZworImdkYl90ZXN0ICJwcmludCBwYWNrLmEiICJcXCgwID0+IDEsIDIs IDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXFwpIikiCisgICAgKGZpbGUgIi4vZ2RiLmFkYS9hY2Nl c3NfdG9fcGFja2VkX2FycmF5LmV4cCIgbGluZSAyOSkKKyAgICBpbnZva2VkIGZyb20gd2l0aGlu Cisic291cmNlIC4vZ2RiLmFkYS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cCIKKyAgICAoInVw bGV2ZWwiIGJvZHkgbGluZSAxKQorICAgIGludm9rZWQgZnJvbSB3aXRoaW4KKyJ1cGxldmVsICMw IHNvdXJjZSAuL2dkYi5hZGEvYWNjZXNzX3RvX3BhY2tlZF9hcnJheS5leHAiCisgICAgaW52b2tl ZCBmcm9tIHdpdGhpbgorImNhdGNoICJ1cGxldmVsICMwIHNvdXJjZSAkdGVzdF9maWxlX25hbWUi IgorCitBdHRhY2hpbmcgYSBmaXggb2YgdGhlIHR5cG9zLgorCitVbnJlbGF0ZWQgdG8gdGhlIHR5 cG9zIEkgaGF2ZSBjaGFuZ2VkIHRoZSBwcmludCBleHBlY3RhdGlvbnMgcy8ieCIvIiA9IHgiLwor YXMgZm9yIGV4YW1wbGUgZXhwZWN0YXRpb24gIjMiIHNob3VsZCBub3QgbWF0Y2ggIiA9IDQzIi4K KworT24gRmVkb3JhIDIxIHg4Nl82NCBpdCB0aGVuOgorIyBvZiBleHBlY3RlZCBwYXNzZXMJNQor CitPSyBmb3IgY2hlY2staW4/CisKKworSmFuCisKKy0tcjVQeWQ3K2ZYTnQ4NEZmMworQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0aW9u OiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKzIwMTUtMTAt MjUgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogZ2Ri LmFkYS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cDogRml4IHR5cG9zIGVycm9yaW5nIHRoZSB0 ZXN0ZmlsZS4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9hY2Nlc3NfdG9f cGFja2VkX2FycmF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9hY2Nlc3NfdG9fcGFja2Vk X2FycmF5LmV4cAoraW5kZXggMGRjYTc4MC4uMWJmM2UyMiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmFkYS9hY2Nlc3NfdG9fcGFja2VkX2FycmF5LmV4cAorKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYWRhL2FjY2Vzc190b19wYWNrZWRfYXJyYXkuZXhwCitAQCAtMjYsOCArMjYsOCBA QCBjbGVhbl9yZXN0YXJ0ICR7dGVzdGZpbGV9Cisgc2V0IGJwX2xvY2F0aW9uIFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJCUkVBSyIgJHt0ZXN0ZGlyfS9mb28uYWRiXQorIHJ1bnRvICJmb28uYWRiOiRi cF9sb2NhdGlvbiIKKyAKKy1nZGJfdGVzdCAicHJpbnQgcGFjay5hIiAiXFwoMCA9PiAxLCAyLCAz LCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxcKSIpCistZ2RiX3Rlc3QgInBhY2suYWEiICAgICAgIlxc KGFjY2VzcyBwYWNrXFwuYXJyYXlfdHlwZVxcKSAweC4qIDxwYWNrXFwuYT4iKQorK2dkYl90ZXN0 ICJwcmludCBwYWNrLmEiICIgPSBcXCgwID0+IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEw XFwpIgorK2dkYl90ZXN0ICJwcmludCBwYWNrLmFhIiAiID0gXFwoYWNjZXNzIHBhY2tcXC5hcnJh eV90eXBlXFwpIDB4LiogPHBhY2tcXC5hPiIKKyAKKy1nZGJfdGVzdCAicGFjay5hKDIpIiAgICIz IgorLWdkYl90ZXN0ICJwYWNrLmFhKDIpIiAgIjMiCisrZ2RiX3Rlc3QgInByaW50IHBhY2suYSgy KSIgIiA9IDMiCisrZ2RiX3Rlc3QgInByaW50IHBhY2suYWEoMikiICIgPSAzIgorCistLXI1UHlk NytmWE50ODRGZjMtLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBh dGNoIGIvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCmluZGV4IGFkMjM5YjUuLjNiOGQ3 N2EgMTAwNjQ0Ci0tLSBhL2dkYi12bGEtaW50ZWwtMDRvZjIzLWZpeC5wYXRjaAorKysgYi9nZGIt dmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gKQEAgLTEsMzggKzEsMzggQEAKIFJlOiBbUEFUQ0gg MDQvMjNdIHZsYTogbWFrZSBkeW5hbWljIGZvcnRyYW4gYXJyYXlzIGZ1bmN0aW9uYWwuCiBodHRw czovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDYvbXNnMDA1NzAuaHRtbAog Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvdmFsYXJpdGguYworSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYyNy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTQtMDctMDcgMjA6NDQ6MDMuMTM2Mzk0 NTI1ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvdmFsYXJpdGguYwkyMDE0LTA3 LTA3IDIwOjQ1OjQxLjU4ODUzNjQ1OSArMDIwMAotQEAgLTE5NSwxMCArMTk1LDE3IEBAIHZhbHVl X3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKKy0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMTEtMDMgMjA6NDE6NDguNTQzNTA0OTk5ICsw MTAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMyAy MDo0NjozNi45OTUyMzg4ODggKzAxMDAKK0BAIC0xOTMsMTAgKzE5MywxNyBAQCB2YWx1ZV9zdWJz Y3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7CiAgICBzdHJ1Y3QgdHlwZSAq ZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7 Ci0gICB1bnNpZ25lZCBpbnQgZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0X3R5cGUpOworICAg dW5zaWduZWQgaW50IGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKIC0g IHVuc2lnbmVkIGludCBlbHRfb2ZmcyA9IGxvbmdlc3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91 bmQpOwogKyAgdW5zaWduZWQgaW50IGVsdF9vZmZzOwogICAgTE9OR0VTVCBlbHRfc3RyaWRlID0g VFlQRV9CWVRFX1NUUklERSAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7CiAgICBzdHJ1 Y3QgdmFsdWUgKnY7CiAgCiArICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAoYXJyYXlfdHlwZSkp Ci0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFzc29j aWF0ZWQiKSk7CisrICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Ig bm90IGFzc29jaWF0ZWQpIikpOwogKyAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAoYXJyYXlfdHlw ZSkpCi0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFs bG9jYXRlZCIpKTsKKysgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgKHZlY3Rv ciBub3QgYWxsb2NhdGVkKSIpKTsKICsKICsgIGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGlu ZGV4IC0gbG93ZXJib3VuZCk7CiArCiAgICBpZiAoZWx0X3N0cmlkZSA+IDApCiAgICAgIGVsdF9v ZmZzICo9IGVsdF9zdHJpZGU7CiAgICBlbHNlIGlmIChlbHRfc3RyaWRlIDwgMCkKLUBAIC0yMTIs MTQgKzIxOSw3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKK0BA IC0yMTAsMTQgKzIxNyw3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVl ICoKICAKICAgIGlmIChpbmRleCA8IGxvd2VyYm91bmQgfHwgKCFUWVBFX0FSUkFZX1VQUEVSX0JP VU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKLSAJCQkgICAgICYmIGVsdF9vZmZzID49IFRZ UEVfTEVOR1RIIChhcnJheV90eXBlKSkpCisgCQkJICAgICAmJiBlbHRfb2ZmcyA+PSB0eXBlX2xl bmd0aF91bml0cyAoYXJyYXlfdHlwZSkpKQogLSAgICB7Ci0tICAgICAgaWYgKFRZUEVfTk9UX0FT U09DSUFURUQgKGFycmF5X3R5cGUpKQotLSAgICAgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9y IGVsZW1lbnQgYmVjYXVzZSBub3QgYXNzb2NpYXRlZCIpKTsKLS0gICAgICBlbHNlIGlmIChUWVBF X05PVF9BTExPQ0FURUQgKGFycmF5X3R5cGUpKQotLSAgICAgICAgZXJyb3IgKF8oIm5vIHN1Y2gg dmVjdG9yIGVsZW1lbnQgYmVjYXVzZSBub3QgYWxsb2NhdGVkIikpOworLSAgICAgIGlmICh0eXBl X25vdF9hc3NvY2lhdGVkIChhcnJheV90eXBlKSkKKy0gICAgICAgIGVycm9yIChfKCJubyBzdWNo IHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOworLSAgICAgIGVsc2Ug aWYgKHR5cGVfbm90X2FsbG9jYXRlZCAoYXJyYXlfdHlwZSkpCistICAgICAgICBlcnJvciAoXygi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhbGxvY2F0ZWQpIikpOwogLSAgICAg IGVsc2UKIC0gICAgICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IikpOwogLSAg ICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2ggYi9nZGIt dmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAppbmRleCA1NmNlZmYyLi5mNjE5N2YyIDEwMDY0 NAotLS0gYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAorKysgYi9nZGItdmxhLWlu dGVsLXN0cmluZ2J0LWZpeC5wYXRjaApAQCAtMTY1LDE3ICsxNjUsMyBAQCBJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJh bWUuZjkwCiArICBlbmQgaW50ZXJmYWNlCiArICBjYWxsIGZvbyAoJ2hlbGxvJykKICtlbmQKLUlu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0 cmluZ3MuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIwMTUtMDUtMzEgMTY6MTQ6MDQu MTY3NTMzODU0ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE1LTA1LTMxIDE2OjE0OjMxLjA3MzcxODIwMSAr MDIwMAotQEAgLTMzLDkgKzMzLDYgQEAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9j aGFyLWFsbAotIGdkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAotICAgIiA9IFxcKFBUUiBUTyAt PiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpXFwpICR7aGV4fSIgXAotICAgInByaW50IHZhcl9jaGFy IGFmdGVyIGFsbG9jYXRlZCBmaXJzdCB0aW1lIgotLWdkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIi IFwKLS0gICIgPSAnXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxc XDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMCciIFwKLS0gICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIg YWxsb2NhdGVkIGZpcnN0IHRpbWUiCi0gZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUg PSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAotICAgIndoYXRpcyB2YXJfY2hh ciBmaXJzdCB0aW1lIgotIGdkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8g LT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwu cGF0Y2ggYi9nZGItdmxhLWludGVsLnBhdGNoCmluZGV4IDg1YzAzNjQuLjMzNjE1ODUgMTAwNjQ0 Ci0tLSBhL2dkYi12bGEtaW50ZWwucGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRlbC5wYXRjaApAQCAt NiwxMSArNiwxMSBAQCBHSVQgc25hcHNob3Q6CiBjb21taXQgNTExYmZmNTIwMzcyZmZjMTBmYTJm ZjU2OWMxNzZiZGYxZTZlNDc1ZAogCiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9j LXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9jLXZhbHByaW50 LmMJMjAxNS0wNS0yOSAwODoyNzowMi42NTc3MTczMjYgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowNi4yNTM3NDAyMDkgKzAy MDAKLUBAIC01MzcsNyArNTM3LDE2IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFs LCBzdHJ1Y3QKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jLXZhbHByaW50LmMJ MjAxNS0xMC0yNyAwMjo0ODozMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYy12YWxwcmludC5jCTIwMTUtMTEtMDMgMjE6MTM6MzUuOTU5MzM5MTEzICswMTAw CitAQCAtNjQyLDcgKzY0MiwxNiBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwg c3RydWN0CiAgCXsKICAJICAvKiBub3JtYWwgY2FzZSAqLwogIAkgIGZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIigiKTsKQEAgLTI4LDExICsyOCwxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvYy12YWxwcmludC5jCiAgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAi KTsKICAJfQogICAgICB9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYybG9j LmgKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJmMmxvYy5oCTIwMTUtMDUt MjkgMDg6Mjc6MDIuNjU4NzE3MzMzICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv ZHdhcmYybG9jLmgJMjAxNS0wNS0yOSAwODoyNzowNi4yNTM3NDAyMDkgKzAyMDAKLUBAIC0xMzEs NiArMTMxLDExIEBAIGludCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnUKKy0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJsb2MuaAkyMDE1LTEwLTI3IDAy OjQ4OjMxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2Fy ZjJsb2MuaAkyMDE1LTExLTAzIDIwOjQxOjQ4LjUzMzUwNDk0MSArMDEwMAorQEAgLTEzOCw2ICsx MzgsMTEgQEAgaW50IGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydQogIAkJCSAg ICAgIHN0cnVjdCBwcm9wZXJ0eV9hZGRyX2luZm8gKmFkZHJfc3RhY2ssCiAgCQkJICAgICAgQ09S RV9BRERSICp2YWx1ZSk7CiAgCkBAIC00NCwyNCArNDQsMzEgQEAgSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2R3YXJmMmxvYy5oCiAgLyogQSBoZWxwZXIgZm9yIHRoZSBjb21waWxlciBp bnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBkeW5hbWljCiAgICAgcHJvcGVydHkgdG8g QyBjb2RlLgogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTI5 IDA4OjI3OjAyLjY3NjcxNzQ0NyArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE1LTA1LTI5IDEwOjA0OjUyLjI3MjYwMDIxMiArMDIwMAotQEAgLTE4Njgs NiArMTg2OCwxMiBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKLSBz dGF0aWMgdm9pZCBjaGVja19wcm9kdWNlciAoc3RydWN0IGR3YXJmMl9jdSAqY3UpOworLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTEwLTI3IDAyOjQ4 OjMxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJy ZWFkLmMJMjAxNS0xMS0wMyAyMToxMzozOC4yMTYzNDk4MDAgKzAxMDAKK0BAIC0xNzQ1LDcgKzE3 NDUsOSBAQCBzdGF0aWMgdm9pZCByZWFkX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0CiAgCi0gc3Rh dGljIHZvaWQgZnJlZV9saW5lX2hlYWRlcl92b2lkcCAodm9pZCAqYXJnKTsKLSsKLStzdGF0aWMg aW50Ci0rYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIs IHN0cnVjdCBkaWVfaW5mbyAqZGllLAotKwkJICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0 cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCi0rCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqYWRkaXRp b25hbF9kYXRhLCBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpOwotKwotIAwKLSAvKiBWYXJpb3Vz IGNvbXBsYWludHMgYWJvdXQgc3ltYm9sIHJlYWRpbmcgdGhhdCBkb24ndCBhYm9ydCB0aGUgcHJv Y2Vzcy4gICovCisgc3RhdGljIGludCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0ciwKKyAJCQkJIHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwKKy0JCQkJIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3ApOworKwkJCQkgc3Ry dWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKKysJCQkJIGNvbnN0IGdkYl9ieXRlICphZGRpdGlvbmFs X2RhdGEsCisrCQkJCSBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpOworIAorIC8qIG1lbW9yeSBh bGxvY2F0aW9uIGludGVyZmFjZSAqLworIAorQEAgLTExNDIwLDcgKzExNDIyLDcgQEAgcmVhZF9m dW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcworICAgICB7CisgICAgICAgbmV3b2Jq LT5zdGF0aWNfbGluaworIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc3Ry dWN0IGR5bmFtaWNfcHJvcCk7CistICAgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRp ZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmspOworKyAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9w IChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBOVUxMLCAwKTsKKyAgICAgfQog IAotQEAgLTE0NDMxLDI5ICsxNDQzNyw5MiBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkCisgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9zeW1ib2xzOworQEAg LTE0NDcxLDI5ICsxNDQ3Myw5MiBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9i amZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwg KmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0xNjEsNyArMTY4LDcg QEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogICAgY2hhcl90 eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFy Y2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5n ZV90eXBlKTsKICAKLUBAIC0xNDc3NiwxMyArMTQ4NDUsMTUgQEAgcmVhZF9iYXNlX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdAorQEAgLTE0ODE2LDEzICsxNDg4MSwxNSBAQCByZWFkX2Jh c2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0CiAgICByZXR1cm4gc2V0X2RpZV90eXBl IChkaWUsIHR5cGUsIGN1KTsKICB9CiAgCkBAIC0xNzgsOCArMTg1LDggQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogIHsKICAgIHN0cnVjdCBkd2FyZjJfcHJv cGVydHlfYmF0b24gKmJhdG9uOwogICAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2sgPSAmY3UtPm9i amZpbGUtPm9iamZpbGVfb2JzdGFjazsKLUBAIC0xNDc5NSw4ICsxNDg2NiwyNSBAQCBhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCi0gICAgICAgYmF0b24gPSBvYnN0YWNr X2FsbG9jIChvYnN0YWNrLCBzaXplb2YgKCpiYXRvbikpOworQEAgLTE0ODM1LDggKzE0OTAyLDI1 IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKKyAgICAgICBiYXRv biA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgICAg ICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CiAgICAgICAgYmF0b24tPmxvY2V4cHIu cGVyX2N1ID0gY3UtPnBlcl9jdTsKIC0gICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxP Q0sgKGF0dHIpLT5zaXplOwpAQCAtMjA2LDggKzIxMyw4IEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9kd2FyZjJyZWFkLmMKICAgICAgICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247 CiAgICAgICAgcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAgICAgICBnZGJfYXNzZXJ0IChw cm9wLT5kYXRhLmJhdG9uICE9IE5VTEwpOwotQEAgLTE0ODMyLDggKzE0OTIwLDI4IEBAIGF0dHJf dG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKLSAJCWJhdG9uID0gb2JzdGFja19h bGxvYyAob2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKK0BAIC0xNDg3Miw4ICsxNDk1NiwyOCBA QCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCisgCQliYXRvbiA9IFhP Qk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgCQliYXRvbi0+ cmVmZXJlbmNlZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCQli YXRvbi0+bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwogLQkJYmF0b24tPmxvY2V4cHIuc2l6 ZSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemU7CkBAIC0yMzcsNyArMjQ0LDcgQEAgSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogIAkJcHJvcC0+ZGF0YS5i YXRvbiA9IGJhdG9uOwogIAkJcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAJCWdkYl9hc3Nl cnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAtMTQ4ODcsNyArMTQ5OTUsNyBAQCBy ZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCitAQCAtMTQ5MjcsNyArMTUw MzEsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCiAgICBzdHJ1 Y3QgdHlwZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFu Z2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0yNDYsNyArMjUzLDcgQEAg SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogICAgaW50IGxvd19k ZWZhdWx0X2lzX3ZhbGlkOwogICAgaW50IGhpZ2hfYm91bmRfaXNfY291bnQgPSAwOwogICAgY29u c3QgY2hhciAqbmFtZTsKLUBAIC0xNDkwNyw3ICsxNTAxNSw5IEBAIHJlYWRfc3VicmFuZ2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNDk0Nyw3ICsxNTA1MSw5IEBAIHJlYWRfc3Vi cmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAKICAgIGxvdy5raW5kID0gUFJPUF9D T05TVDsKICAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7CkBAIC0yNTYsNyArMjYzLDcgQEAgSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogIAogICAgLyogU2V0IExP V19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIERXQVJGIHZlcnNpb24g YWxsb3cKICAgICAgIG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5kLiAgKi8KLUBAIC0xNDk0MCwx OSArMTUwNTAsMjYgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQor QEAgLTE0OTgwLDE5ICsxNTA4NiwyNiBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTI4Niw3ICsyOTMsNyBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYycmVhZC5jCiAgCXsKICAJICAvKiBJ ZiBib3VuZHMgYXJlIGNvbnN0YW50IGRvIHRoZSBmaW5hbCBjYWxjdWxhdGlvbiBoZXJlLiAgKi8K ICAJICBpZiAobG93LmtpbmQgPT0gUFJPUF9DT05TVCAmJiBoaWdoLmtpbmQgPT0gUFJPUF9DT05T VCkKLUBAIC0xNTAxNiw3ICsxNTEzMyw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUKK0BAIC0xNTA1Niw3ICsxNTE2OSw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUKICAgICAgICAmJiAhVFlQRV9VTlNJR05FRCAoYmFzZV90eXBl KSAmJiAoaGlnaC5kYXRhLmNvbnN0X3ZhbCAmIG5lZ2F0aXZlX21hc2spKQogICAgICBoaWdoLmRh dGEuY29uc3RfdmFsIHw9IG5lZ2F0aXZlX21hc2s7CiAgCkBAIC0yOTUsMzggKzMwMiwyNiBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBpZiAoaGln aF9ib3VuZF9pc19jb3VudCkKICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+Zmxh Z191cHBlcl9ib3VuZF9pc19jb3VudCA9IDE7Ci1AQCAtMjIxMjgsOSArMjIyNDUsMzcgQEAgc2V0 X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQotICAgICAgICYmICFIQVZFX0dO QVRfQVVYX0lORk8gKHR5cGUpKQotICAgICBJTklUX0dOQVRfU1BFQ0lGSUMgKHR5cGUpOwotIAot KyAgLyogUmVhZCBEV19BVF9hbGxvY2F0ZWQgYW5kIHNldCBpbiB0eXBlLiAgKi8KLSsgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hbGxvY2F0ZWQsIGN1KTsKLSsgIGlmIChhdHRyX2Zv cm1faXNfYmxvY2sgKGF0dHIpKQotKyAgICB7Ci0rICAgICAgc3RydWN0IGR5bmFtaWNfcHJvcCBw cm9wOwotKworQEAgLTIyMzYwLDcgKzIyNDczLDcgQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydQorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2FsbG9j YXRlZCwgY3UpOworICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCisgICAgIHsKKy0g ICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKICsg ICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxM LCAwKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkK LSsgICAgICAgICAgICA9IG9ic3RhY2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ss IHNpemVvZiAocHJvcCkpOwotKyAgICAgICAgICAqVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkg PSBwcm9wOwotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAvKiBSZWFkIERXX0FUX2Fzc29jaWF0 ZWQgYW5kIHNldCBpbiB0eXBlLiAgKi8KLSsgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9hc3NvY2lhdGVkLCBjdSk7Ci0rICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKLSsg ICAgewotKyAgICAgIHN0cnVjdCBkeW5hbWljX3Byb3AgcHJvcDsKLSsKKyAgICAgICAgIGFkZF9k eW5fcHJvcCAoRFlOX1BST1BfQUxMT0NBVEVELCBwcm9wLCB0eXBlLCBvYmpmaWxlKTsKKyAgICAg fQorICAgZWxzZSBpZiAoYXR0ciAhPSBOVUxMKQorQEAgLTIyMzc1LDcgKzIyNDg4LDcgQEAgc2V0 X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQorICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2Fzc29jaWF0ZWQsIGN1KTsKKyAgIGlmIChhdHRyX2Zvcm1faXNfYmxv Y2sgKGF0dHIpKQorICAgICB7CistICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRy LCBkaWUsIGN1LCAmcHJvcCkpCiArICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRy LCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0rICAgICAgICB7Ci0rICAgICAgICAgIFRZUEVf QVNTT0NJQVRFRF9QUk9QICh0eXBlKQotKyAgICAgICAgICAgID0gb2JzdGFja19hbGxvYyAoJm9i amZpbGUtPm9iamZpbGVfb2JzdGFjaywgc2l6ZW9mIChwcm9wKSk7Ci0rICAgICAgICAgICpUWVBF X0FTU09DSUFURURfUFJPUCAodHlwZSkgPSBwcm9wOwotKyAgICAgICAgfQotKyAgICB9Ci0rCisg ICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0FTU09DSUFURUQsIHByb3AsIHR5cGUsIG9i amZpbGUpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCitAQCAtMjIzODgsNyAr MjI1MDEsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1CisgCiAg ICAvKiBSZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KICAgIGF0 dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7CiAtICBpZiAo YXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKQEAgLTMzNCwyMiAr MzI5LDI0IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJyZWFkLmMKICAg ICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9EQVRBX0xPQ0FUSU9OLCBwcm9wLCB0eXBlLCBvYmpm aWxlKTsKICAKICAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUtPmRpZV90eXBlX2hhc2ggPT0gTlVM TCkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXR5cGVwcmludC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0wNS0yOSAwODoy NzowMi42Nzg3MTc0NjAgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXR5cGVw cmludC5jCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjYxNzQwMjYwICswMjAwCi1AQCAtMzAsNiArMzAs NyBAQAotICNpbmNsdWRlICJnZGJjb3JlLmgiCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTEwLTI3IDAyOjQ4OjMxLjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXR5cGVwcmludC5jCTIwMTUtMTEtMDMgMjE6 MTM6MzUuNzA3MzM3OTIwICswMTAwCitAQCAtMzEsNiArMzEsNyBAQAogICNpbmNsdWRlICJ0YXJn ZXQuaCIKICAjaW5jbHVkZSAiZi1sYW5nLmgiCisgI2luY2x1ZGUgInR5cGVwcmludC5oIgogKyNp bmNsdWRlICJ2YWxwcmludC5oIgogIAogICNpZiAwCQkJCS8qIEN1cnJlbnRseSB1bnVzZWQuICAq LwogIHN0YXRpYyB2b2lkIGZfdHlwZV9wcmludF9hcmdzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3Qg dWlfZmlsZSAqKTsKLUBAIC01Myw2ICs1NCwxNyBAQCBmX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlLCBjb25zdCBjCi0gICBlbnVtIHR5cGVfY29kZSBjb2RlOwotICAgaW50IGRlbWFuZ2xl ZF9hcmdzOwotIAorQEAgLTY0LDYgKzY1LDE3IEBAIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGMKKyAgICAgeworICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChz dHJlYW0pOworICAgICAgIHJldHVybjsKKysgICAgfQorKwogKyAgaWYgKFRZUEVfTk9UX0FTU09D SUFURUQgKHR5cGUpKQogKyAgICB7CiArICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChz dHJlYW0pOwpAQCAtMzU5LDczICszNTYsMTMgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2YtdHlwZXByaW50LmMKICsgICAgewogKyAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVk IChzdHJlYW0pOwogKyAgICAgIHJldHVybjsKLSsgICAgfQotKworICAgICB9CisgCiAgICBmX3R5 cGVfcHJpbnRfYmFzZSAodHlwZSwgc3RyZWFtLCBzaG93LCBsZXZlbCk7Ci0gICBjb2RlID0gVFlQ RV9DT0RFICh0eXBlKTsKLSAgIGlmICgodmFyc3RyaW5nICE9IE5VTEwgJiYgKnZhcnN0cmluZyAh PSAnXDAnKQotQEAgLTE2NywyOCArMTc5LDM2IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZp eCAoc3RydWN0IHR5cGUKLSAgICAgICBpZiAoYXJyYXlwcmludF9yZWN1cnNlX2xldmVsID09IDEp Ci0gCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKLSAKLS0gICAgICBpZiAoVFlQRV9D T0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotLQlmX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0s IDAsIDAsIDAsCi0tCQkJCSAgICAgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKTsKLS0KLS0gICAg ICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7Ci0tICAgICAgaWYgKGxv d2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCi0tCWZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsKLS0KLS0gICAgICAvKiBNYWtlIHN1cmUg dGhhdCwgaWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCi0tICAgICAgICAgcHJp bnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KLS0K LS0gICAgICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKHR5cGUpKQot LQlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIqIik7Ci0rICAgICAgaWYgKFRZUEVfTk9UX0FT U09DSUFURUQgKHR5cGUpKQotKyAgICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJl YW0pOwotKyAgICAgIGVsc2UgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAodHlwZSkpCi0rICAgICAg ICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKLSAgICAgICBlbHNlCi0tCXsKLS0J ICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlwZSk7Ci0tCSAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7Ci0tCX0KLS0KLS0gICAgICBpZiAo VFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgIT0gVFlQRV9DT0RFX0FSUkFZKQot LQlmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBz dHJlYW0sIDAsIDAsIDAsCi0tCQkJCSAgICAgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKTsKLSsg ICAgICAgIHsKLSsKLSsgICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAo dHlwZSkpID09IFRZUEVfQ09ERV9BUlJBWSkKLSsgICAgICAgICAgICBmX3R5cGVfcHJpbnRfdmFy c3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsIDAsIDAsCi0r ICAgICAgICAgICAgICAgICBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOwotKwotKyAgICAgICAg ICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7Ci0rICAgICAgICAgIGlm IChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLwotKyAgICAgICAgICAg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsKLSsKLSsgICAg ICAgICAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXplIGFycmF5 LCB3ZQotKyAgICAgICAgICAgICBwcmludCBvdXQgYSB3YXJuaW5nIGFuZCBwcmludCB0aGUgdXBw ZXJib3VuZCBhcyAnKicuICAqLwotKwotKyAgICAgICAgICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9C T1VORF9JU19VTkRFRklORUQgKHR5cGUpKQotKyAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIioiKTsKLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsKLSsgICAgICAg ICAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKLSsgICAgICAg ICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQpOwotKyAg ICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKLSsgICAgICAgICAgICBmX3R5cGVfcHJpbnRf dmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsIDAsIDAs Ci0rICAgICAgICAgICAgICAgICBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOwotKyAgICAgIH0K LSAgICAgICBpZiAoYXJyYXlwcmludF9yZWN1cnNlX2xldmVsID09IDEpCi0gCWZwcmludGZfZmls dGVyZWQgKHN0cmVhbSwgIikiKTsKLSAgICAgICBlbHNlCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvZi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Yt dmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv Zi12YWxwcmludC5jCTIwMTUtMDUtMjkgMDg6MjY6NDkuNTY3NjM0MDE5ICswMjAwCi0rKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjYy NzQwMjY2ICswMjAwCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi12YWxwcmlu dC5jCTIwMTUtMTAtMjcgMDI6NDg6MzEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTExLTAzIDIxOjEzOjM1Ljk1OTMzOTExMyAr MDEwMAogQEAgLTM2LDggKzM2LDYgQEAKICAKICBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3Zh bHByaW50ICh2b2lkKTsKQEAgLTYxMiwxMSArNTQ5LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9mLXZhbHByaW50LmMKICAgICAgICAgICAgaWYgKGluZGV4ICE9IFRZUEVfTkZJ RUxEUyAodHlwZSkgLSAxKQogICAgICAgICAgICAgIGZwdXRzX2ZpbHRlcmVkICgiLCAiLCBzdHJl YW0pOwogICAgICAgICAgfQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVz LmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTA1LTI5 IDA4OjI3OjAyLjY4MzcxNzQ5MiArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dk YnR5cGVzLmMJMjAxNS0wNS0yOSAxMDo1NDozNi4yMzY0OTg3NDkgKzAyMDAKLUBAIC04MjQsNyAr ODI0LDggQEAgYWxsb2NhdGVfc3R1Yl9tZXRob2QgKHN0cnVjdCB0eXBlICp0eXBlKQorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0xMC0yNyAwMjo0ODoz MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMu YwkyMDE1LTExLTAzIDIxOjEzOjM4LjY4MzM1MjAxMSArMDEwMAorQEAgLTgzNiw3ICs4MzYsOCBA QCBhbGxvY2F0ZV9zdHViX21ldGhvZCAoc3RydWN0IHR5cGUgKnR5cGUpCiAgc3RydWN0IHR5cGUg KgogIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0 eXBlICppbmRleF90eXBlLAogIAkJICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqbG93X2Jv dW5kLApAQCAtNjI2LDcgKzU2Myw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9n ZGJ0eXBlcy5jCiAgewogICAgaWYgKHJlc3VsdF90eXBlID09IE5VTEwpCiAgICAgIHJlc3VsdF90 eXBlID0gYWxsb2NfdHlwZV9jb3B5IChpbmRleF90eXBlKTsKLUBAIC04MzksNiArODQwLDcgQEAg Y3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdAorQEAgLTg1MSw2ICs4NTIs NyBAQCBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90CiAgICAgIFRZUEVf WkFMTE9DIChyZXN1bHRfdHlwZSwgc2l6ZW9mIChzdHJ1Y3QgcmFuZ2VfYm91bmRzKSk7CiAgICBU WVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+bG93ID0gKmxvd19ib3VuZDsKICAgIFRZUEVf UkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5oaWdoID0gKmhpZ2hfYm91bmQ7CkBAIC02MzQsNyAr NTcxLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKICAKICAg IGlmIChsb3dfYm91bmQtPmtpbmQgPT0gUFJPUF9DT05TVCAmJiBsb3dfYm91bmQtPmRhdGEuY29u c3RfdmFsID49IDApCiAgICAgIFRZUEVfVU5TSUdORUQgKHJlc3VsdF90eXBlKSA9IDE7Ci1AQCAt ODY3LDcgKzg2OSw3IEBAIHN0cnVjdCB0eXBlICoKK0BAIC04NzksNyArODgxLDcgQEAgc3RydWN0 IHR5cGUgKgogIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90 eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCQkgIExPTkdFU1QgbG93X2JvdW5kLCBM T05HRVNUIGhpZ2hfYm91bmQpCiAgewpAQCAtNjQzLDcgKzU4MCw3IEBAIEluZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICBsb3cua2luZCA9IFBST1BfQ09OU1Q7 CiAgICBsb3cuZGF0YS5jb25zdF92YWwgPSBsb3dfYm91bmQ7Ci1AQCAtODc1LDcgKzg3NywxMSBA QCBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyCitAQCAtODg3LDcgKzg4 OSwxMSBAQCBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyCiAgICBoaWdo LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCA9IGhpZ2hfYm91bmQ7 CiAgCkBAIC02NTYsMjAgKzU5MywxNiBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv Z2RidHlwZXMuYwogIAogICAgcmV0dXJuIHJlc3VsdF90eXBlOwogIH0KLUBAIC0xMDY4LDE4ICsx MDc0LDI0IEBAIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlIChzdHJ1Y3QgdHkKLSAKLSAg IFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID0gVFlQRV9DT0RFX0FSUkFZOwotICAgVFlQRV9UQVJH RVRfVFlQRSAocmVzdWx0X3R5cGUpID0gZWxlbWVudF90eXBlOwotLSAgaWYgKGhhc19zdGF0aWNf cmFuZ2UgKFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSkpKQotKyAgaWYgKGhhc19zdGF0aWNf cmFuZ2UgKFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSkpCi0rICAgICAgJiYgZHdhcmYyX2Fk ZHJlc3NfZGF0YV92YWxpZCAocmVzdWx0X3R5cGUpKQorQEAgLTEwODQsMTYgKzEwOTAsMjEgQEAg Y3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHN0cnVjdCB0eQorICAgICAgJiYgKCF0eXBl X25vdF9hc3NvY2lhdGVkIChyZXN1bHRfdHlwZSkKKyAgICAgICAgICYmICF0eXBlX25vdF9hbGxv Y2F0ZWQgKHJlc3VsdF90eXBlKSkpCiAgICAgIHsKIC0gICAgICBMT05HRVNUIGxvd19ib3VuZCwg aGlnaF9ib3VuZDsKICsgICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgYnl0ZV9z dHJpZGU7CiAgCiAgICAgICAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZs b3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCiAgCWxvd19ib3VuZCA9IGhpZ2hfYm91bmQgPSAw OwotICAgICAgIENIRUNLX1RZUEVERUYgKGVsZW1lbnRfdHlwZSk7CisgICAgICAgZWxlbWVudF90 eXBlID0gY2hlY2tfdHlwZWRlZiAoZWxlbWVudF90eXBlKTsKICsKICsgICAgICBieXRlX3N0cmlk ZSA9IGFicyAoVFlQRV9CWVRFX1NUUklERSAocmFuZ2VfdHlwZSkpOwogKwpAQCAtNjgzLDcgKzYx Niw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCiAgICAgICAg ZWxzZSBpZiAoYml0X3N0cmlkZSA+IDApCiAgCVRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPQog IAkgIChiaXRfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKSArIDcpIC8gODsK LUBAIC0xNzg5LDEyICsxODAxLDMxIEBAIHN0dWJfbm9uYW1lX2NvbXBsYWludCAodm9pZCkKK0BA IC0xODA0LDEyICsxODE1LDMxIEBAIHN0dWJfbm9uYW1lX2NvbXBsYWludCAodm9pZCkKICBzdGF0 aWMgaW50CiAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IHRvcF9sZXZlbCkKICB7CkBAIC03MTUsNyArNjQ4LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2dkYnR5cGVzLmMKICAgIC8qIFR5cGVzIHRoYXQgaGF2ZSBhIGR5bmFtaWMgVFlQ RV9EQVRBX0xPQ0FUSU9OIGFyZSBjb25zaWRlcmVkCiAgICAgICBkeW5hbWljLCBldmVuIGlmIHRo ZSB0eXBlIGl0c2VsZiBpcyBzdGF0aWNhbGx5IGRlZmluZWQuCiAgICAgICBGcm9tIGEgdXNlcidz IHBvaW50IG9mIHZpZXcsIHRoaXMgbWF5IGFwcGVhciBjb3VudGVyLWludHVpdGl2ZTsKLUBAIC0x ODIzLDExICsxODU0LDE5IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUg KnQKK0BAIC0xODQ0LDExICsxODc0LDE5IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3Ry dWN0IHR5cGUgKnQKICAgICAgICB7CiAgCWdkYl9hc3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkg PT0gMSk7CiAgCkBAIC03MzgsNyArNjcxLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2dkYnR5cGVzLmMKICAgICAgICB9CiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoK LUBAIC0xODQwLDYgKzE4NzksMTggQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3Qg dHlwZSAqdAorQEAgLTE4NjEsNiArMTg5OSwxOCBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwg KHN0cnVjdCB0eXBlICp0CiAgCSAgICAgICYmIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQ RV9GSUVMRF9UWVBFICh0eXBlLCBpKSwgMCkpCiAgCSAgICByZXR1cm4gMTsKICAgICAgICB9CkBA IC03NTcsNyArNjkwLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVz LmMKICAgICAgICBicmVhazsKICAgICAgfQogIAotQEAgLTE4NjksNyArMTkyMCw4IEBAIHJlc29s dmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl8KK0BAIC0xODkwLDcgKzE5NDAsOCBA QCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fCiAgICBzdHJ1Y3QgdHlw ZSAqc3RhdGljX3JhbmdlX3R5cGUsICpzdGF0aWNfdGFyZ2V0X3R5cGU7CiAgICBjb25zdCBzdHJ1 Y3QgZHluYW1pY19wcm9wICpwcm9wOwogICAgY29uc3Qgc3RydWN0IGR3YXJmMl9sb2NleHByX2Jh dG9uICpiYXRvbjsKQEAgLTc2NywxMiArNzAwLDEyIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKGR5bl9yYW5n ZV90eXBlKSA9PSBUWVBFX0NPREVfUkFOR0UpOwogIAotQEAgLTE5MDEsMTIgKzE5NTMsMTkgQEAg cmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXworQEAgLTE5MjIsMTIgKzE5 NzMsMTkgQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXwogICAgICAg IGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwgPSAwOwogICAgICB9CiAgCiArICBwcm9wID0gJlRZ UEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5cGUpLT5zdHJpZGU7Ci0rICBpZiAoZHdhcmYyX2V2 YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQorKyAgaWYgKGR3YXJm Ml9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgTlVMTCwgYWRkcl9zdGFjaywgJnZhbHVlKSkKICsg ICAgewogKyAgICAgIHN0cmlkZS5raW5kID0gUFJPUF9DT05TVDsKICsgICAgICBzdHJpZGUuZGF0 YS5jb25zdF92YWwgPSB2YWx1ZTsKQEAgLTc5MCwxMDMgKzcyMyw0MiBAQCBJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwogICAgVFlQRV9SQU5HRV9EQVRBIChzdGF0aWNf cmFuZ2VfdHlwZSktPmZsYWdfYm91bmRfZXZhbHVhdGVkID0gMTsKICAgIHJldHVybiBzdGF0aWNf cmFuZ2VfdHlwZTsKICB9Ci1AQCAtMTkyMywyMyArMTk4Miw0NyBAQCByZXNvbHZlX2R5bmFtaWNf YXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCi0gICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGU7Ci0gICBz dHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKK0BAIC0xOTQ2LDcgKzIwMDQsOCBAQCByZXNvbHZlX2R5 bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCiAgICBzdHJ1Y3QgdHlwZSAqYXJ5X2RpbTsK LSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7Ci0rICBzdHJ1Y3QgdHlwZSAqY29weSA9IGNv cHlfdHlwZSAodHlwZSk7CisgICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOwogIAogLSAgZ2Ri X2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpOwogKyAgZ2RiX2Fz c2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKICsJICAgICAgfHwgVFlQ RV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKTsKICAKLSAgIGVsdF90eXBlID0gdHlw ZTsKLSAgIHJhbmdlX3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX0lOREVYX1RZUEUgKGVsdF90 eXBlKSk7Ci0gICByYW5nZV90eXBlID0gcmVzb2x2ZV9keW5hbWljX3JhbmdlIChyYW5nZV90eXBl LCBhZGRyX3N0YWNrKTsKKyAgIHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOworIAorQEAgLTE5NzEs MTMgKzIwMzAsMTggQEAgcmVzb2x2ZV9keW5hbWljX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZQog IAotKyAgcHJvcCA9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpOwotKyAgaWYgKGR3YXJmMl9l dmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkcl9zdGFjaywgJnZhbHVlKSkKLSsgICAgewotKyAg ICAgIFRZUEVfQUxMT0NBVEVEX1BST1AgKGNvcHkpLT5raW5kID0gUFJPUF9DT05TVDsKLSsgICAg ICBUWVBFX0FMTE9DQVRFRF9QUk9QIChjb3B5KS0+ZGF0YS5jb25zdF92YWwgPSB2YWx1ZTsKLSsg ICAgfQotKwotKyAgcHJvcCA9IFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKTsKLSsgIGlmIChk d2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIGFkZHJfc3RhY2ssICZ2YWx1ZSkpCi0rICAg IHsKLSsgICAgICBUWVBFX0FTU09DSUFURURfUFJPUCAoY29weSktPmtpbmQgPSBQUk9QX0NPTlNU OwotKyAgICAgIFRZUEVfQVNTT0NJQVRFRF9QUk9QIChjb3B5KS0+ZGF0YS5jb25zdF92YWwgPSB2 YWx1ZTsKLSsgICAgfQotKwogICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VU X1RZUEUgKGVsdF90eXBlKSk7CiAgCiAtICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYmIFRZUEVfQ09E RSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotLSAgICBlbHRfdHlwZSA9IHJlc29sdmVf ZHluYW1pY19hcnJheSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIGFkZHJfc3RhY2spOwogKyAg aWYgKGFyeV9kaW0gIT0gTlVMTCAmJiAoVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVf QVJSQVkKLSsgICAgICAgICAgfHwgVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVfU1RS SU5HKSkKLSsgICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKFRZUEVfVEFSR0VU X1RZUEUgKGNvcHkpLCBhZGRyX3N0YWNrKTsKKysJCQkgIHx8IFRZUEVfQ09ERSAoYXJ5X2RpbSkg PT0gVFlQRV9DT0RFX1NUUklORykpCisgICAgIGVsdF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2Fy cmF5IChhcnlfZGltLCBhZGRyX3N0YWNrKTsKICAgIGVsc2UKICAgICAgZWx0X3R5cGUgPSBUWVBF X1RBUkdFVF9UWVBFICh0eXBlKTsKICAKLS0gIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRo X3N0cmlkZSAoY29weV90eXBlICh0eXBlKSwKLS0JCQkJCWVsdF90eXBlLCByYW5nZV90eXBlLAot LQkJCQkJVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7CistICByZXR1cm4gY3JlYXRlX2Fy cmF5X3R5cGVfd2l0aF9zdHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5 cGUsIDApKTsKICsgIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJJTkcKICsg ICAgICAmJiBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApID09IDApCi0rICAgIHJldHVybiBj cmVhdGVfc3RyaW5nX3R5cGUgKGNvcHksCi0rCSAgICBlbHRfdHlwZSwKLSsJICAgIHJhbmdlX3R5 cGUpOworKyAgICByZXR1cm4gY3JlYXRlX3N0cmluZ190eXBlICh0eXBlLCBlbHRfdHlwZSwgcmFu Z2VfdHlwZSk7CiArICBlbHNlCi0rICAgIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0 cmlkZSAoY29weSwKLSsJICAgIGVsdF90eXBlLAotKwkgICAgcmFuZ2VfdHlwZSwgVFlQRV9GSUVM RF9CSVRTSVpFICh0eXBlLCAwKSk7CisrICAgIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRo X3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUsCisrCQkJCQkgIFRZUEVfRklFTERf QklUU0laRSAodHlwZSwgMCkpOwogIH0KICAKICAvKiBSZXNvbHZlIGR5bmFtaWMgYm91bmRzIG9m IG1lbWJlcnMgb2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGljCi1AQCAtNDQ1Myw2ICs0NTM2LDIw IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmoKLSAJCQkJVFlQRV9E WU5fUFJPUF9MSVNUICh0eXBlKSk7Ci0gCi0gCi0rICAvKiBDb3B5IGFsbG9jYXRlZCBpbmZvcm1h dGlvbi4gICovCi0rICBpZiAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkgIT0gTlVMTCkKLSsg ICAgewotKyAgICAgIFRZUEVfQUxMT0NBVEVEX1BST1AgKG5ld190eXBlKSA9IHhtYWxsb2MgKHNp emVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkpOwotKyAgICAgICpUWVBFX0FMTE9DQVRFRF9QUk9Q IChuZXdfdHlwZSkgPSAqVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSk7Ci0rICAgIH0KLSsKLSsg IC8qIENvcHkgYXNzb2NpYXRlZCBpbmZvcm1hdGlvbi4gICovCi0rICBpZiAoVFlQRV9BU1NPQ0lB VEVEX1BST1AgKHR5cGUpICE9IE5VTEwpCi0rICAgIHsKLSsgICAgICBUWVBFX0FTU09DSUFURURf UFJPUCAobmV3X3R5cGUpID0geG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7 Ci0rICAgICAgKlRZUEVfQVNTT0NJQVRFRF9QUk9QIChuZXdfdHlwZSkgPSAqVFlQRV9BU1NPQ0lB VEVEX1BST1AgKHR5cGUpOwotKyAgICB9Ci0rCi0gICAvKiBDb3B5IHBvaW50ZXJzIHRvIG90aGVy IHR5cGVzLiAgKi8KLSAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkKLSAgICAgVFlQRV9U QVJHRVRfVFlQRSAobmV3X3R5cGUpID0gCi1AQCAtNDQ5NCw2ICs0NTkxLDM1IEBAIGNvcHlfdHlw ZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmoKK0BAIC00NTU4LDYgKzQ2MjIsMTcgQEAg Y29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iagogICAgICAgIGdkYl9hc3Nl cnRfbm90X3JlYWNoZWQgKCJiYWQgdHlwZV9zcGVjaWZpY19raW5kIik7CiAgICAgIH0KICAKLSsg IGlmIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkKLSsgICAgewotKyAgICAgIFRZUEVfQUxM T0NBVEVEX1BST1AgKG5ld190eXBlKQotKyAgICAgICAgICAgICAgPSBPQlNUQUNLX1pBTExPQyAo JlRZUEVfT1dORVIgKHR5cGUpLm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkeW5hbWljX3Byb3ApOwotKyAgICAgIG1lbWNw eSAoVFlQRV9BTExPQ0FURURfUFJPUCAobmV3X3R5cGUpLCBUWVBFX0FMTE9DQVRFRF9QUk9QICh0 eXBlKSwKLSsgICAgICAgIHNpemVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkpOwotKyAgICB9Ci0r Ci0rICBpZiAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpKQotKyAgICB7Ci0rICAgICAgVFlQ RV9BU1NPQ0lBVEVEX1BST1AgKG5ld190eXBlKQotKyAgICAgICAgICAgICAgPSBPQlNUQUNLX1pB TExPQyAoJlRZUEVfT1dORVIgKHR5cGUpLm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkeW5hbWljX3Byb3ApOwotKyAgICAg IG1lbWNweSAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKG5ld190eXBlKSwgVFlQRV9BU1NPQ0lBVEVE X1BST1AgKHR5cGUpLAotKyAgICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7Ci0r ICAgIH0KLSsKICsgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpKQogKyAgICB7CiArICAgICAgaW50 IG5maWVsZHMgPSBUWVBFX05GSUVMRFMgKHR5cGUpOwpAQCAtOTAxLDI2ICs3NzMsMTEgQEAgSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKICAgIHJldHVybiBuZXdfdHlw ZTsKICB9CiAgCi1AQCAtNDUxOSw2ICs0NjQ1LDE0IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0 IHR5cGUgKnR5cGUpCi0gICAgIFRZUEVfRFlOX1BST1BfTElTVCAobmV3X3R5cGUpCi0gICAgICAg PSBjb3B5X2R5bmFtaWNfcHJvcF9saXN0ICgmVFlQRV9PQkpGSUxFICh0eXBlKSAtPiBvYmpmaWxl X29ic3RhY2ssCi0gCQkJCVRZUEVfRFlOX1BST1BfTElTVCAodHlwZSkpOwotKyAgaWYgKFRZUEVf QUxMT0NBVEVEX1BST1AgKHR5cGUpICE9IE5VTEwpCi0rICAgIFRZUEVfQUxMT0NBVEVEX1BST1Ag KG5ld190eXBlKSA9IG9ic3RhY2tfY29weQotKyAgICAgICgmVFlQRV9PQkpGSUxFICh0eXBlKS0+ b2JqZmlsZV9vYnN0YWNrLCBUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSwKLSsgICAgICAgc2l6 ZW9mICgqVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkpKTsKLSsgIGlmIChUWVBFX0FTU09DSUFU RURfUFJPUCAodHlwZSkgIT0gTlVMTCkKLSsgICAgVFlQRV9BU1NPQ0lBVEVEX1BST1AgKG5ld190 eXBlKSA9IG9ic3RhY2tfY29weQotKyAgICAgICgmVFlQRV9PQkpGSUxFICh0eXBlKS0+b2JqZmls ZV9vYnN0YWNrLCBUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSksCi0rICAgICAgIHNpemVvZiAo KlRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKSkpOwotIAotICAgcmV0dXJuIG5ld190eXBlOwot IH0KLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5oCitJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wNS0yOSAwODoyNzowMi42ODU3 MTc1MDQgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5oCTIwMTUt MDUtMjkgMDg6NDY6MDguODYyOTI0MDUyICswMjAwCi1AQCAtNTY5LDYgKzU2OSwxMCBAQCBzdHJ1 Y3QgcmFuZ2VfYm91bmRzCistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ2RidHlw ZXMuaAkyMDE1LTEwLTI3IDAyOjQ4OjMxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMTEtMDMgMjE6MTM6MzYuNzYwMzQyOTA2ICsw MTAwCitAQCAtNTc3LDYgKzU3NywxMCBAQCBzdHJ1Y3QgcmFuZ2VfYm91bmRzCiAgCiAgICBzdHJ1 Y3QgZHluYW1pY19wcm9wIGhpZ2g7CiAgCkBAIC05MzEsNyArNzg4LDcgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmgKICAgIC8qIFRydWUgaWYgSElHSCByYW5nZSBi b3VuZCBjb250YWlucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZQogICAgICAgc3VicmFu Z2UuIFRoaXMgYWZmZWN0cyBob3cgdGhlIGZpbmFsIGhpZ2h0IGJvdW5kIGlzIGNvbXB1dGVkLiAg Ki8KICAKLUBAIC03NDEsNiArNzQ1LDE4IEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC03NDksNiAr NzUzLDE4IEBAIHN0cnVjdCBtYWluX3R5cGUKICAKICAgIC8qICogQ29udGFpbnMgYWxsIGR5bmFt aWMgdHlwZSBwcm9wZXJ0aWVzLiAgKi8KICAgIHN0cnVjdCBkeW5hbWljX3Byb3BfbGlzdCAqZHlu X3Byb3BfbGlzdDsKQEAgLTk2NiwxMyArODIzLDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9nZGJ0eXBlcy5oCiAgCiAgLyogUHJvcGVydHkgYWNjZXNzb3JzIGZvciB0aGUgdHlw ZSBkYXRhIGxvY2F0aW9uLiAgKi8KICAjZGVmaW5lIFRZUEVfREFUQV9MT0NBVElPTih0aGlzdHlw ZSkgXAotQEAgLTEyNjUsNiArMTI5MCwyMCBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1 eF90eXBlIChzdHJ1Ci0gICBUWVBFX0RBVEFfTE9DQVRJT04gKHRoaXN0eXBlKS0+ZGF0YS5jb25z dF92YWwKK0BAIC0xMjY2LDYgKzEyOTEsMTggQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9h dXhfdHlwZSAoc3RydQogICNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQodGhpc3R5cGUp IFwKICAgIFRZUEVfREFUQV9MT0NBVElPTiAodGhpc3R5cGUpLT5raW5kCi0rI2RlZmluZSBUWVBF X0FMTE9DQVRFRF9QUk9QKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPmFsbG9j YXRlZAotKyNkZWZpbmUgVFlQRV9BU1NPQ0lBVEVEX1BST1AodGhpc3R5cGUpIFRZUEVfTUFJTl9U WVBFKHRoaXN0eXBlKS0+YXNzb2NpYXRlZAotKworIAogKy8qIEFsbG9jYXRlZCBzdGF0dXMgb2Yg dHlwZSBvYmplY3QuICBJZiBzZXQgdG8gbm9uLXplcm8gaXQgbWVhbnMgdGhlIG9iamVjdAogKyAg IGlzIGFsbG9jYXRlZC4gQSB6ZXJvIHZhbHVlIG1lYW5zIGl0IGlzIG5vdCBhbGxvY2F0ZWQuICAq LwogKyNkZWZpbmUgVFlQRV9OT1RfQUxMT0NBVEVEKHQpICAoVFlQRV9BTExPQ0FURURfUFJPUCAo dCkgXApAQCAtOTg0LDEwICs4MzgsMTEgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2dkYnR5cGVzLmgKICsjZGVmaW5lIFRZUEVfTk9UX0FTU09DSUFURUQodCkgIChUWVBFX0FTU09D SUFURURfUFJPUCAodCkgXAogKyAgJiYgVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHQpLT5raW5kID09 IFBST1BfQ09OU1QgXAogKyAgJiYgIVRZUEVfQVNTT0NJQVRFRF9QUk9QICh0KS0+ZGF0YS5jb25z dF92YWwpCi0gCi0gLyogQXR0cmlidXRlIGFjY2Vzc29ycyBmb3IgZHluYW1pYyBwcm9wZXJ0aWVz LiAgKi8KLSAjZGVmaW5lIFRZUEVfRFlOX1BST1BfTElTVCh0aGlzdHlwZSkgXAotQEAgLTEyODMs NiArMTMyMiw5IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnUKKysK KyAvKiBQcm9wZXJ0eSBhY2Nlc3NvcnMgZm9yIHRoZSB0eXBlIGFsbG9jYXRlZC9hc3NvY2lhdGVk LiAgKi8KKyAjZGVmaW5lIFRZUEVfQUxMT0NBVEVEX1BST1AodGhpc3R5cGUpIFwKKyAgIGdldF9k eW5fcHJvcCAoRFlOX1BST1BfQUxMT0NBVEVELCB0aGlzdHlwZSkKK0BAIC0xMjg5LDYgKzEzMjYs OSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CiAgICAgVFlQRV9I SUdIX0JPVU5EX1VOREVGSU5FRChUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBlKSkKICAjZGVmaW5l IFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfSVNfVU5ERUZJTkVEKGFycmF5dHlwZSkgXAogICAgIFRZ UEVfTE9XX0JPVU5EX1VOREVGSU5FRChUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBlKSkKQEAgLTk5 Nyw3ICs4NTIsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuaAog IAogICNkZWZpbmUgVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9WQUxVRShhcnJheXR5cGUpIFwKICAg ICAoVFlQRV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhfVFlQRSgoYXJyYXl0eXBlKSkpKQotQEAgLTE3 NjQsNiArMTgwNiw3IEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5cGVfd2kK K0BAIC0xNzc1LDYgKzE4MTUsNyBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90 eXBlX3dpCiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0 IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWlj X3Byb3AgKiwKQEAgLTEwMDUsMjIzICs4NjAsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2dkYnR5cGVzLmgKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3Ag Kik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5 cGUgKiwgc3RydWN0IHR5cGUgKiwKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxsb2MtYXNzb2MuZXhw CTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY2NzQwMjkyICswMjAwCi1AQCAtMCwwICsxLDY1IEBACi0r IyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQot KyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgInZsYS5mOTAi Ci0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0Zmls ZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJu IC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3Vs ZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotKyMg Q2hlY2sgdGhlIGFzc29jaWF0aW9uIHN0YXR1cyBvZiB2YXJpb3VzIHR5cGVzIG9mIFZMQSdzCi0r IyBhbmQgcG9pbnRlciB0byBWTEEncy4KLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAidmxhMS1hbGxvY2F0ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGEx LWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLlRSVUVcXC4iIFwKLSsgICJw cmludCB2bGExIGFsbG9jYXRpb24gc3RhdHVzIChhbGxvY2F0ZWQpIgotKwotK2dkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEyLWFsbG9jYXRlZCJdCi0rZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZsYTItYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJwcmludCBsIiAiID0g XFwuVFJVRVxcLiIgXAotKyAgInByaW50IHZsYTIgYWxsb2NhdGlvbiBzdGF0dXMgKGFsbG9jYXRl ZCkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2Np YXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKLStn ZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLlRSVUVcXC4iIFwKLSsgICJwcmludCBwdmxhIGFzc29j aWF0ZWQgc3RhdHVzIChhc3NvY2lhdGVkKSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9s aW5lX251bWJlciAicHZsYS1yZS1hc3NvY2lhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAicHZsYS1yZS1hc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCBsIiAiID0gXFwuVFJV RVxcLiIgXAotKyAgInByaW50IHB2bGEgYXNzb2NpYXRlZCBzdGF0dXMgKHJlLWFzc29jaWF0ZWQp IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhLWRlYXNzb2Np YXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtZGVhc3NvY2lhdGVkIgot K2dkYl90ZXN0ICJwcmludCBsIiAiID0gXFwuRkFMU0VcXC4iIFwKLSsgICJwcmludCBwdmxhIGFs bG9jYXRpb24gc3RhdHVzIChkZWFzc29jaWF0ZWQpIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJ2bGExLWRlYWxsb2NhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAidmxhMS1kZWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLkZB TFNFXFwuIiBcCi0rICAicHJpbnQgdmxhMSBhbGxvY2F0aW9uIHN0YXR1cyAoZGVhbGxvY2F0ZWQp IgotK2dkYl90ZXN0ICJwcmludCB2bGExIiAiID0gPG5vdCBhbGxvY2F0ZWQ+IiBcCi0rICAicHJp bnQgZGVhbGxvY2F0ZWQgdmxhMSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAidmxhMi1kZWFsbG9jYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZs YTItZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5GQUxTRVxcLiIgInBy aW50IHZsYTIgZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTIiICIgPSA8bm90IGFs bG9jYXRlZD4iICJwcmludCBkZWFsbG9jYXRlZCB2bGEyIgotSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0 YXR5cGVzLmV4cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2Njc0MDI5MiArMDIwMAotQEAgLTAsMCAr MSw4MiBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu Ci0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxl ICIuZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7 dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Ci0rICAg IHJldHVybiAtMQotK30KLSsKLSsjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4gc3RhbmRhcmQgZGF0 YXR5cGVzIHdpbGwgYmUKLSsjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNpbmcgYXMgVkxBJ3MK LSsKLStpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVu IHRvIGJyZWFrcG9pbnQgTUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsKLStnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhcy1hbGxvY2F0ZWQiXQotK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJ2bGFzLWFsbG9jYXRlZCIKLStnZGJfdGVzdCAibmV4dCIgIiA9IGFs bG9jYXRlZFxcXChyZWFsdmxhXFxcKSIgXAotKyAgIm5leHQgdG8gYWxsb2NhdGlvbiBzdGF0dXMg b2YgaW50dmxhIgotK2dkYl90ZXN0ICJwcmludCBsIiAiID0gXFwuVFJVRVxcLiIgImludHZsYSBh bGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgIm5leHQiICIgPSBhbGxvY2F0ZWRcXFwoY29tcGxleHZsYVxc XCkiIFwKLSsgICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9mIHJlYWx2bGEiCi0rZ2RiX3Rl c3QgInByaW50IGwiICIgPSBcXC5UUlVFXFwuIiAicmVhbHZsYSBhbGxvY2F0ZWQiCi0rZ2RiX3Rl c3QgIm5leHQiICIgPSBhbGxvY2F0ZWRcXFwobG9naWNhbHZsYVxcXCkiIFwKLSsgICJuZXh0IHRv IGFsbG9jYXRpb24gc3RhdHVzIG9mIGNvbXBsZXh2bGEiCi0rZ2RiX3Rlc3QgInByaW50IGwiICIg PSBcXC5UUlVFXFwuIiAiY29tcGxleHZsYSBhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgIm5leHQiICIg PSBhbGxvY2F0ZWRcXFwoY2hhcmFjdGVydmxhXFxcKSIgXAotKyAgIm5leHQgdG8gYWxsb2NhdGlv biBzdGF0dXMgb2YgbG9naWNhbHZsYSIKLStnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLlRSVUVc XC4iICJsb2dpY2FsdmxhIGFsbG9jYXRlZCIKLStnZGJfdGVzdCAibmV4dCIgImludHZsYVxcXCg6 LDosOlxcXCkgPSAxIiBcCi0rICAibmV4dCB0byBhbGxvY2F0aW9uIHN0YXR1cyBvZiBjaGFyYWN0 ZXJ2bGEiCi0rZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5UUlVFXFwuIiAiY2hhcmFjdGVydmxh IGFsbG9jYXRlZCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxh cy1pbml0aWFsaXplZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYXMtaW5pdGlh bGl6ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIGludHZsYSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9 NFxcXCkgXFxcKDExLDIyLDMzXFxcKSIgXAotKyAgInB0eXBlIGludHZsYSIKLStnZGJfdGVzdCAi cHR5cGUgcmVhbHZsYSIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDExLDIyLDMzXFxc KSIgXAotKyAgInB0eXBlIHJlYWx2bGEiCi0rZ2RiX3Rlc3QgInB0eXBlIGNvbXBsZXh2bGEiICJ0 eXBlID0gY29tcGxleFxcXChraW5kPTRcXFwpIFxcXCgxMSwyMiwzM1xcXCkiIFwKLSsgICJwdHlw ZSBjb21wbGV4dmxhIgotK2dkYl90ZXN0ICJwdHlwZSBsb2dpY2FsdmxhIiAidHlwZSA9IGxvZ2lj YWxcXFwoa2luZD00XFxcKSBcXFwoMTEsMjIsMzNcXFwpIiBcCi0rICAicHR5cGUgbG9naWNhbHZs YSIKLStnZGJfdGVzdCAicHR5cGUgY2hhcmFjdGVydmxhIiAidHlwZSA9IGNoYXJhY3RlclxcXCox IFxcXCgxMSwyMiwzM1xcXCkiIFwKLSsgICJwdHlwZSBjaGFyYWN0ZXJ2bGEiCi0rCi0rZ2RiX3Rl c3QgInByaW50IGludHZsYSg1LDUsNSkiICIgPSAxIiAicHJpbnQgaW50dmxhKDUsNSw1KSAoMXN0 KSIKLStnZGJfdGVzdCAicHJpbnQgcmVhbHZsYSg1LDUsNSkiICIgPSAzLjE0XFxkKyIgXAotKyAg InByaW50IHJlYWx2bGEoNSw1LDUpICgxc3QpIgotK2dkYl90ZXN0ICJwcmludCBjb21wbGV4dmxh KDUsNSw1KSIgIiA9IFxcXCgyLC0zXFxcKSIgXAotKyAgInByaW50IGNvbXBsZXh2bGEoNSw1LDUp ICgxc3QpIgotK2dkYl90ZXN0ICJwcmludCBsb2dpY2FsdmxhKDUsNSw1KSIgIiA9IFxcLlRSVUVc XC4iIFwKLSsgICJwcmludCBsb2dpY2FsdmxhKDUsNSw1KSAoMXN0KSIKLStnZGJfdGVzdCAicHJp bnQgY2hhcmFjdGVydmxhKDUsNSw1KSIgIiA9ICdLJyIgXAotKyAgInByaW50IGNoYXJhY3RlcnZs YSg1LDUsNSkgKDFzdCkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InZsYXMtbW9kaWZpZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGFzLW1vZGlm aWVkIgotK2dkYl90ZXN0ICJwcmludCBpbnR2bGEoNSw1LDUpIiAiID0gNDIiICJwcmludCBpbnR2 bGEoNSw1LDUpICgybmQpIgotK2dkYl90ZXN0ICJwcmludCByZWFsdmxhKDUsNSw1KSIgIiA9IDQu MTNcXGQrIiBcCi0rICAicHJpbnQgcmVhbHZsYSg1LDUsNSkgKDJuZCkiCi0rZ2RiX3Rlc3QgInBy aW50IGNvbXBsZXh2bGEoNSw1LDUpIiAiID0gXFxcKC0zLDJcXFwpIiBcCi0rICAicHJpbnQgY29t cGxleHZsYSg1LDUsNSkgKDJuZCkiCi0rZ2RiX3Rlc3QgInByaW50IGxvZ2ljYWx2bGEoNSw1LDUp IiAiID0gXFwuRkFMU0VcXC4iIFwKLSsgICJwcmludCBsb2dpY2FsdmxhKDUsNSw1KSAoMm5kKSIK LStnZGJfdGVzdCAicHJpbnQgY2hhcmFjdGVydmxhKDUsNSw1KSIgIiA9ICdYJyIgXAotKyAgInBy aW50IGNoYXJhY3RlcnZsYSg1LDUsNSkgKDJuZCkiCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZjkwCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlw ZXMuZjkwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY2NzQwMjkyICswMjAwCi1AQCAtMCwwICsxLDUx IEBACi0rISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsh Ci0rISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSshIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rISAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyEgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsh IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKLSshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r IQotKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKLSshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh Y2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKwotK3Byb2dyYW0g dmxhX3ByaW1pdGl2ZXMKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlICAgIDo6IGludHZsYSg6LCA6 LCA6KQotKyAgcmVhbCwgYWxsb2NhdGFibGUgICAgICAgOjogcmVhbHZsYSg6LCA6LCA6KQotKyAg Y29tcGxleCwgYWxsb2NhdGFibGUgICAgOjogY29tcGxleHZsYSg6LCA6LCA6KQotKyAgbG9naWNh bCwgYWxsb2NhdGFibGUgICAgOjogbG9naWNhbHZsYSg6LCA6LCA6KQotKyAgY2hhcmFjdGVyLCBh bGxvY2F0YWJsZSAgOjogY2hhcmFjdGVydmxhKDosIDosIDopCi0rICBsb2dpY2FsICAgICAgICAg ICAgICAgICA6OiBsCi0rCi0rICBhbGxvY2F0ZSAoaW50dmxhICgxMSwyMiwzMykpCi0rICBhbGxv Y2F0ZSAocmVhbHZsYSAoMTEsMjIsMzMpKQotKyAgYWxsb2NhdGUgKGNvbXBsZXh2bGEgKDExLDIy LDMzKSkKLSsgIGFsbG9jYXRlIChsb2dpY2FsdmxhICgxMSwyMiwzMykpCi0rICBhbGxvY2F0ZSAo Y2hhcmFjdGVydmxhICgxMSwyMiwzMykpCi0rCi0rICBsID0gYWxsb2NhdGVkKGludHZsYSkgICAg ICAgICAgICAgICAgICAgISB2bGFzLWFsbG9jYXRlZAotKyAgbCA9IGFsbG9jYXRlZChyZWFsdmxh KQotKyAgbCA9IGFsbG9jYXRlZChjb21wbGV4dmxhKQotKyAgbCA9IGFsbG9jYXRlZChsb2dpY2Fs dmxhKQotKyAgbCA9IGFsbG9jYXRlZChjaGFyYWN0ZXJ2bGEpCi0rCi0rICBpbnR2bGEoOiw6LDop ID0gMQotKyAgcmVhbHZsYSg6LDosOikgPSAzLjE0Ci0rICBjb21wbGV4dmxhKDosOiw6KSA9IGNt cGx4KDIuMCwtMy4wKQotKyAgbG9naWNhbHZsYSg6LDosOikgPSAuVFJVRS4KLSsgIGNoYXJhY3Rl cnZsYSg6LDosOikgPSBjaGFyKDc1KQotKwotKyAgaW50dmxhKDUsNSw1KSA9IDQyICAgICAgICAg ICAgICAgICAgICAgICEgdmxhcy1pbml0aWFsaXplZAotKyAgcmVhbHZsYSg1LDUsNSkgPSA0LjEz Ci0rICBjb21wbGV4dmxhKDUsNSw1KSA9IGNtcGx4KC0zLjAsMi4wKQotKyAgbG9naWNhbHZsYSg1 LDUsNSkgPSAuRkFMU0UuCi0rICBjaGFyYWN0ZXJ2bGEoNSw1LDUpID0gJ1gnCi0rCi0rICAhIGR1 bW15IHN0YXRlbWVudCBmb3IgYnAKLSsgIGwgPSAuRkFMU0UuICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAhIHZsYXMtbW9kaWZpZWQKLStlbmQgcHJvZ3JhbSB2bGFfcHJpbWl0aXZlcwotSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVu Yy5leHAKK0luZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1mdW5jLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjY3NDAy OTIgKzAyMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1mdW5jLmV4cAkyMDE1LTExLTAzIDIwOjQxOjQ4LjU0MjUwNDk5MyArMDEwMAogQEAg LTAsMCArMSw2MSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0xMjg0LDEwICs5MjYsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKICsgICJwcmludCB2bGEz IChhZnRlciBmdW5jMikiCiArZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0gaW50ZWdlclxc XChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKICsgICJwdHlwZSB2bGEzIChhZnRlciBmdW5jMiki Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1mdW5jLmY5MAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLWZ1bmMuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2 Nzc0MDI5OCArMDIwMAorKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLWZ1bmMuZjkwCTIwMTUtMTEtMDMgMjA6NDE6NDguNTQyNTA0OTkzICswMTAw CiBAQCAtMCwwICsxLDcxIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICshCkBAIC0xMzYwLDExICsxMDAyLDExIEBAIEluZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCiArCiArICBy ZXQgPSAuVFJVRS4gICAgICAgICAgICAgICAgISBmdW5jMi1yZXR1cm5lZAogK2VuZCBwcm9ncmFt IHZsYV9mdW5jCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCTIwMTUt MDUtMjkgMDg6Mjc6MDYuMjY3NzQwMjk4ICswMjAwCi1AQCAtMCwwICsxLDYyIEBACisrKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4 cAkyMDE1LTExLTAzIDIwOjQxOjQ4LjU0MjUwNDk5MyArMDEwMAorQEAgLTAsMCArMSw0NCBAQAog KyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCiArIyBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQpAQCAtMTM4MCw3ICsxMDIyLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAKICsjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CiArIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KICsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLmY5MCIKKytzdGFu ZGFyZF90ZXN0ZmlsZSAiLmY5MCIKICsKICtpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVz dGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKICsgICAge2RlYnVnIGY5MCBxdWll dH1dIH0gewpAQCAtMTM5MiwyMzkgKzEwMzQsNjMgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAKICsgICAgY29udGlu dWUKICt9CiArCi0rIyBTZXQgc29tZSBicmVha3BvaW50cyBhbmQgcHJpbnQgY29tcGxldGUgdmxh LgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWluaXQiXQotK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWluaXQiCi0rZ2RiX3Rlc3QgInByaW50IHZs YTEiICIgPSA8bm90IGFsbG9jYXRlZD4iICJwcmludCBub24tYWxsb2NhdGVkIHZsYTEiCi0rCi0r Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTItYWxsb2NhdGVkIl0KLStn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMi1hbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInBy aW50IHZsYTEiICIgPSBcXCggKlxcKCAqXFwoICowLCAqMCwgKjAsXFsoKTAsIC5cXSpcXCkiIFwK LSsgICJwcmludCB2bGExIGFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhMiIgIiA9IFxc KCAqXFwoICpcXCggKjAsICowLCAqMCxcWygpMCwgLlxdKlxcKSIgXAotKyAgInByaW50IHZsYTIg YWxsb2NhdGVkIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEx LWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtZmlsbGVkIgotK2dk Yl90ZXN0ICJwcmludCB2bGExIiBcCi0rICAiID0gXFwoICpcXCggKlxcKCAqMTMxMSwgKjEzMTEs ICoxMzExLFxbKCkxMzExLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgdmxhMSBmaWxsZWQiCi0rCi0r IyBUcnkgdG8gYWNjZXNzIGhpc3RvcnkgdmFsdWVzIGZvciBmdWxsIHZsYSBwcmludHMuCi0rZ2Ri X3Rlc3QgInByaW50IFwkMSIgIiA9IDxub3QgYWxsb2NhdGVkPiIgInByaW50IFwkMSIKLStnZGJf dGVzdCAicHJpbnQgXCQyIiAiID0gXFwoICpcXCggKlxcKCAqMCwgKjAsICowLFxbKCkwLCAuXF0q XFwpIiBcCi0rICAicHJpbnQgXCQyIgotK2dkYl90ZXN0ICJwcmludCBcJDMiICIgPSBcXCggKlxc KCAqXFwoICowLCAqMCwgKjAsXFsoKTAsIC5cXSpcXCkiIFwKLSsgICJwcmludCBcJDMiCi0rZ2Ri X3Rlc3QgInByaW50IFwkNCIgXAotKyAgIiA9IFxcKCAqXFwoICpcXCggKjEzMTEsICoxMzExLCAq MTMxMSxcWygpMTMxMSwgLlxdKlxcKSIgInByaW50IFwkNCIKLSsKLStnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAidmxhMi1maWxsZWQiXQotK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJ2bGEyLWZpbGxlZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhMigxLDQzLDIwKSIgIiA9 IDEzMTEiICJwcmludCB2bGEyKDEsNDMsMjApIgotK2dkYl90ZXN0ICJwcmludCB2bGExKDEsMyw4 KSIgIiA9IDEwMDEiICJwcmludCB2bGEyKDEsMyw4KSIKLSsKLSsjIFRyeSB0byBhY2Nlc3MgaGlz dG9yeSB2YWx1ZXMgZm9yIHZsYSB2YWx1ZXMuCi0rZ2RiX3Rlc3QgInByaW50IFwkOSIgIiA9IDEz MTEiICJwcmludCBcJDkiCi0rZ2RiX3Rlc3QgInByaW50IFwkMTAiICIgPSAxMDAxIiAicHJpbnQg XCQxMCIKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXB0eXBlLXN1Yi5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLXN1Yi5leHAJMjAxNS0wNS0yOSAwODoyNzow Ni4yNjc3NDAyOTggKzAyMDAKLUBAIC0wLDAgKzEsODcgQEAKLSsjIENvcHlyaWdodCAyMDE0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLXN1Yi5mOTAiCi0rCi0raWYgeyBbcHJl cGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBc Ci0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQorK2dkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJyZS1yZXZlcnNlLWVsZW1lbnRzIl0KKytn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicmUtcmV2ZXJzZS1lbGVtZW50cyIKKytnZGJfdGVz dCAicHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxcXCki IFwKKysgICJwcmludCByZS1yZXZlcnNlLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxh KDEpIiAiID0gMSIgInByaW50IGZpcnN0IHJlLXJldmVyc2UtZWxlbWVudCIKKytnZGJfdGVzdCAi cHJpbnQgcHZsYSgxMCkiICIgPSAxMCIgInByaW50IGxhc3QgcmUtcmV2ZXJzZS1lbGVtZW50Igog KwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4g dG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQorK2dkYl9icmVha3BvaW50 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJvZGQtZWxlbWVudHMiXQorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJvZGQtZWxlbWVudHMiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwo MSwgMywgNSwgNywgOVxcXCkiICJwcmludCBvZGQtZWxlbWVudHMiCisrZ2RiX3Rlc3QgInByaW50 IHB2bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3Qgb2RkLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInBy aW50IHB2bGEoNSkiICIgPSA5IiAicHJpbnQgbGFzdCBvZGQtZWxlbWVudCIKICsKLSsjIFBhc3Mg Zml4ZWQgYXJyYXkgdG8gZnVuY3Rpb24gYW5kIGhhbmRsZSB0aGVtIGFzIHZsYSBpbiBmdW5jdGlv bi4KLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibm90LWZpbGxlZCJdCi0r Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm5vdC1maWxsZWQgKDFzdCkiCi0rZ2RiX3Rlc3Qg InB0eXBlIGFycmF5MSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDQyLDQyXFxc KSIgXAotKyAgInB0eXBlIGFycmF5MSAocGFzc2VkIGZpeGVkKSIKLStnZGJfdGVzdCAicHR5cGUg YXJyYXkyIiAidHlwZSA9IHJlYWxcXFwoa2luZD00XFxcKSBcXFwoNDIsNDIsNDJcXFwpIiBcCi0r ICAicHR5cGUgYXJyYXkyIChwYXNzZWQgZml4ZWQpIgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTEo NDAsIDEwKSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSBhcnJh eTEoNDAsIDEwKSAocGFzc2VkIGZpeGVkKSIKLStnZGJfdGVzdCAicHR5cGUgYXJyYXkyKDEzLCAx MSwgNSkiICJ0eXBlID0gcmVhbFxcXChraW5kPTRcXFwpIiBcCi0rICAicHR5cGUgYXJyYXkyKDEz LCAxMSwgNSkgKHBhc3NlZCBmaXhlZCkiCi0rCi0rIyBQYXNzIHN1YiBhcnJheXMgdG8gZnVuY3Rp b24gYW5kIGhhbmRsZSB0aGVtIGFzIHZsYSBpbiBmdW5jdGlvbi4KLStnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAibm90LWZpbGxlZCAoMm5kKSIKLStnZGJfdGVzdCAicHR5cGUgYXJyYXkxIiAi dHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSBcXFwoNiw2XFxcKSIgXAotKyAgInB0eXBlIGFy cmF5MSAocGFzc2VkIHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MiIgInR5cGUg PSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDYsNiw2XFxcKSIgXAotKyAgInB0eXBlIGFycmF5MiAo cGFzc2VkIHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MSgzLCAzKSIgInR5cGUg PSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSBhcnJheTEoMywgMykgKHBhc3Nl ZCBzdWItYXJyYXkpIgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTIoNCwgNCwgNCkiICJ0eXBlID0g cmVhbFxcXChraW5kPTRcXFwpIiBcCi0rICAicHR5cGUgYXJyYXkyKDQsIDQsIDQpIChwYXNzZWQg c3ViLWFycmF5KSIKLSsKLSsjIENoZWNrIHB0eXBlIG91dHNpZGUgb2YgYm91bmRzLiBUaGlzIHNo b3VsZCBub3QgY3Jhc2ggR0RCLgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTEoMTAwLCAxMDApIiAi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIgXAotKyAgInB0eXBlIGFycmF5MSgxMDAsIDEwMCkgc3Vi YXJyYXkgZG8gbm90IGNyYXNoIChwYXNzZWQgc3ViLWFycmF5KSIKLStnZGJfdGVzdCAicHR5cGUg YXJyYXkyKDEwMCwgMTAwLCAxMDApIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIgXAotKyAgInB0 eXBlIGFycmF5MigxMDAsIDEwMCwgMTAwKSBzdWJhcnJheSBkbyBub3QgY3Jhc2ggKHBhc3NlZCBz dWItYXJyYXkpIgotKwotKyMgUGFzcyB2bGEgdG8gZnVuY3Rpb24uCi0rZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgIm5vdC1maWxsZWQgKDNyZCkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MSIg InR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDIwLDIwXFxcKSIgXAotKyAgInB0eXBl IGFycmF5MSAocGFzc2VkIHZsYSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MiIgInR5cGUgPSBy ZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDEwLDEwLDEwXFxcKSIgXAotKyAgInB0eXBlIGFycmF5MiAo cGFzc2VkIHZsYSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MSgzLCAzKSIgInR5cGUgPSBpbnRl Z2VyXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSBhcnJheTEoMywgMykgKHBhc3NlZCB2bGEp IgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTIoNCwgNCwgNCkiICJ0eXBlID0gcmVhbFxcXChraW5k PTRcXFwpIiBcCi0rICAicHR5cGUgYXJyYXkyKDQsIDQsIDQpIChwYXNzZWQgdmxhKSIKLSsKLSsj IENoZWNrIHB0eXBlIG91dHNpZGUgb2YgYm91bmRzLiBUaGlzIHNob3VsZCBub3QgY3Jhc2ggR0RC LgotK2dkYl90ZXN0ICJwdHlwZSBhcnJheTEoMTAwLCAxMDApIiAibm8gc3VjaCB2ZWN0b3IgZWxl bWVudCIgXAotKyAgInB0eXBlIGFycmF5MSgxMDAsIDEwMCkgVkxBIGRvIG5vdCBjcmFzaCAocGFz c2VkIHZsYSkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MigxMDAsIDEwMCwgMTAwKSIgIm5vIHN1 Y2ggdmVjdG9yIGVsZW1lbnQiIFwKLSsgICJwdHlwZSBhcnJheTIoMTAwLCAxMDAsIDEwMCkgVkxB IGRvIG5vdCBjcmFzaCAocGFzc2VkIHZsYSkiCi0rCi0rIyBQYXNzIGZpeGVkIGFycmF5IHRvIGZ1 bmN0aW9uIGFuZCBoYW5kbGUgaXQgYXMgVkxBIG9mIGFyYml0cmFyeSBsZW5ndGggaW4KLSsjIGZ1 bmN0aW9uLgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJlbmQtb2YtYmFy Il0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZW5kLW9mLWJhciIKLStnZGJfdGVzdCAi cHR5cGUgYXJyYXkxIiBcCi0rICAidHlwZSA9IChQVFIgVE8gLT4gXFwoICk/aW50ZWdlcihcXChr aW5kPTRcXCl8XFwqNCkgXFwoXFwqXFwpXFwpPyIgXAotKyAgInB0eXBlIGFycmF5MSAoYXJiaXRy YXJ5IGxlbmd0aCkiCi0rZ2RiX3Rlc3QgInB0eXBlIGFycmF5MiIgXAotKyAgInR5cGUgPSAoUFRS IFRPIC0+IFxcKCApP2ludGVnZXIoXFwoa2luZD00XFwpfFxcKjQpIFxcKDQ6OSwxMDpcXCpcXClc XCk/IiBcCi0rICAicHR5cGUgYXJyYXkyIChhcmJpdHJhcnkgbGVuZ3RoKSIKLStnZGJfdGVzdCAi cHR5cGUgYXJyYXkxKDEwMCkiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIiBcCi0rICAi cHR5cGUgYXJyYXkxKDEwMCkgKGFyYml0cmFyeSBsZW5ndGgpIgotK2dkYl90ZXN0ICJwdHlwZSBh cnJheTIoNCwxMDApIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSIgXAotKyAgInB0eXBl IGFycmF5Mig0LDEwMCkgKGFyYml0cmFyeSBsZW5ndGgpIgotSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCisrZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1lbGVtZW50Il0KKytnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEi ICIgPSBcXFwoNVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVudCIKKytnZGJfdGVzdCAicHJpbnQg cHZsYSgxKSIgIiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVsZW1lbnQiCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtcHR5cGUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY3NzQwMjk4ICswMjAwCi1AQCAtMCww ICsxLDk2IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAkyMDE1LTExLTAz IDIwOjQxOjQ4LjU0MzUwNDk5OSArMDEwMAorQEAgLTAsMCArMSwzMCBAQAorKyEgQ29weXJpZ2h0 IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQorKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBC b3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLmY5 MCIKKytwcm9ncmFtIHZsYV9zdHJpZGUKKysgIGludGVnZXIsIHRhcmdldCwgYWxsb2NhdGFibGUg OjogdmxhICg6KQorKyAgaW50ZWdlciwgcG9pbnRlciA6OiBwdmxhICg6KQogKwotK2lmIHsgW3By ZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0g XAotKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KKysgIGFs bG9jYXRlKHZsYSgxMCkpCisrICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8pCiArCi0raWYgIVty dW50byBNQUlOX19dIHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3Bv aW50IE1BSU5fXyIKLSsgICAgY29udGludWUKLSt9CisrICBwdmxhID0+IHZsYSgxMDoxOi0xKQor KyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCisrICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISByZS1y ZXZlcnNlLWVsZW1lbnRzCisrICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVudHMK ICsKLSsjIENoZWNrIHRoZSBwdHlwZSBvZiB2YXJpb3VzIFZMQSBzdGF0ZXMgYW5kIHBvaW50ZXIg dG8gVkxBJ3MuCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtaW5p dCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKLStnZGJfdGVzdCAi cHR5cGUgdmxhMSIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBpbml0 aWFsaXplZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4i ICJwdHlwZSB2bGEyIG5vdCBpbml0aWFsaXplZCIKLStnZGJfdGVzdCAicHR5cGUgcHZsYSIgInR5 cGUgPSA8bm90IGFzc29jaWF0ZWQ+IiAicHR5cGUgcHZsYSBub3QgaW5pdGlhbGl6ZWQiCi0rZ2Ri X3Rlc3QgInB0eXBlIHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1 c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInB0eXBlIHZsYTEoMywgNiwgOSkgbm90IGluaXRpYWxp emVkIgotK2dkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKLSsgICJubyBzdWNoIHZl Y3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInB0eXBlIHZsYTEoNSwg NDUsIDIwKSBub3QgaW5pdGlhbGl6ZWQiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInZsYTEtYWxsb2NhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi dmxhMS1hbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBlID0gcmVhbFxcXChr aW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXCkiIFwKLSsgICJwdHlwZSB2bGExIGFsbG9jYXRlZCIK LSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMi1hbGxvY2F0ZWQi XQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGEyLWFsbG9jYXRlZCIKLStnZGJfdGVz dCAicHR5cGUgdmxhMiIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDcsNDI6NTAsMTM6 MzVcXFwpIiBcCi0rICAicHR5cGUgdmxhMiBhbGxvY2F0ZWQiCi0rCi0rZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtZmlsbGVkIl0KLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAidmxhMS1maWxsZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBlID0gcmVh bFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXCkiIFwKLSsgICJwdHlwZSB2bGExIGZpbGxl ZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMSgzLCA2LCA5KSIgInR5cGUgPSByZWFsXFxcKGtpbmQ9 NFxcXCkiIFwKLSsgICJwdHlwZSB2bGExKDMsIDYsIDkpIgotKwotK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEyLWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgInZsYTItZmlsbGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2bGEyIiAidHlwZSA9IHJlYWxc XFwoa2luZD00XFxcKSBcXFwoNyw0Mjo1MCwxMzozNVxcXCkiIFwKLSsgICJwdHlwZSB2bGEyIGZp bGxlZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiAidHlwZSA9IHJlYWxcXFwo a2luZD00XFxcKSIgXAotKyAgInB0eXBlIHZsYTEoNSwgNDUsIDIwKSBmaWxsZWQiCi0rCi0rZ2Ri X2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJdCi0rZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5 cGUgcHZsYSIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDEwLDEwLDEwXFxcKSIgXAot KyAgInB0eXBlIHB2bGEgYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgcHZsYSgzLCA2LCA5 KSIgInR5cGUgPSByZWFsXFxcKGtpbmQ9NFxcXCkiIFwKLSsgICJwdHlwZSBwdmxhKDMsIDYsIDkp IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhLXJlLWFzc29j aWF0ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLXJlLWFzc29jaWF0ZWQi Ci0rZ2RiX3Rlc3QgInB0eXBlIHB2bGEiICJ0eXBlID0gcmVhbFxcXChraW5kPTRcXFwpIFxcXCg3 LDQyOjUwLDEzOjM1XFxcKSIgXAotKyAgInB0eXBlIHB2bGEgcmUtYXNzb2NpYXRlZCIKLStnZGJf dGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiAidHlwZSA9IHJlYWxcXFwoa2luZD00XFxcKSIg XAotKyAgInB0eXBlIHZsYTEoNSwgNDUsIDIwKSByZS1hc3NvY2lhdGVkIgotKwotK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhLWRlYXNzb2NpYXRlZCJdCi0rZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtZGVhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlw ZSBwdmxhIiAidHlwZSA9IDxub3QgYXNzb2NpYXRlZD4iICJwdHlwZSBwdmxhIGRlYXNzb2NpYXRl ZCIKLStnZGJfdGVzdCAicHR5cGUgcHZsYSg1LCA0NSwgMjApIiBcCi0rICAibm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhc3NvY2lhdGVkIiBcCi0rICAicHR5cGUgcHZsYSg1LCA0 NSwgMjApIG5vdCBhc3NvY2lhdGVkIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2bGExLWRlYWxsb2NhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi dmxhMS1kZWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSA8bm90IGFs bG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZs YTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRl ZCIgXAotKyAgInB0eXBlIHZsYTEoMywgNiwgOSkgbm90IGFsbG9jYXRlZCIKLSsKLStnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMi1kZWFsbG9jYXRlZCJdCi0rZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBl IHZsYTIiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmxhMiBub3QgYWxsb2NhdGVk IgotK2dkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKLSsgICJubyBzdWNoIHZlY3Rv ciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInB0eXBlIHZsYTIoNSwgNDUs IDIwKSBub3QgYWxsb2NhdGVkIgotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAorKyAgcHZsYSA9PiBudWxsKCkgICAgICAg ICEgc2luZ2xlLWVsZW1lbnQKKytlbmQgcHJvZ3JhbSB2bGFfc3RyaWRlCitJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXNpemVvZi5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjc3NDAyOTggKzAyMDAKLUBAIC0w LDAgKzEsNDYgQEAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE1LTExLTAzIDIxOjEzOjQ1Ljg2MzM4NjAwNyArMDEw MAorQEAgLTAsMCArMSwxMDEgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogKwogKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTE2NDAsMTUwICsxMTA2LDE1IEBA IEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXNpemVvZi5leHAKICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiArIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICsKLStzdGFuZGFyZF90 ZXN0ZmlsZSAidmxhLmY5MCIKKytzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKICsKICtpZiB7IFtw cmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9 IFwKICsgICAge2RlYnVnIGY5MCBxdWlldH1dIH0gewogKyAgICByZXR1cm4gLTEKICt9Ci0rCi0r aWYgIVtydW50byBNQUlOX19dIHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBi cmVha3BvaW50IE1BSU5fXyIKLSsgICAgY29udGludWUKLSt9Ci0rCi0rIyBUcnkgdG8gYWNjZXNz IHZhbHVlcyBpbiBub24gYWxsb2NhdGVkIFZMQQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2bGExLWluaXQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGEx LWluaXQiCi0rZ2RiX3Rlc3QgInByaW50IHNpemVvZih2bGExKSIgIiA9IDAiICJwcmludCBzaXpl b2Ygbm9uLWFsbG9jYXRlZCB2bGExIgotKwotKyMgVHJ5IHRvIGFjY2VzcyB2YWx1ZSBpbiBhbGxv Y2F0ZWQgVkxBCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTItYWxs b2NhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMi1hbGxvY2F0ZWQiCi0r Z2RiX3Rlc3QgInByaW50IHNpemVvZih2bGExKSIgIiA9IDQwMDAiICJwcmludCBzaXplb2YgYWxs b2NhdGVkIHZsYTEiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiB1bmRlZmluZWQgcG9p bnRlciB0byBWTEEgKGRhbmdsaW5nKQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2bGExLWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtZmls bGVkIgotK2dkYl90ZXN0ICJwcmludCBzaXplb2YocHZsYSkiICIgPSAwIiAicHJpbnQgc2l6ZW9m IG5vbi1hc3NvY2lhdGVkIHB2bGEiCi0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBwb2lu dGVyIHRvIFZMQSBhbmQgY29tcGFyZSB0aGVtCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg InB2bGEtYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEpIiAiID0gNDAw MCIgInByaW50IHNpemVvZiBhc3NvY2lhdGVkIHB2bGEiCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUu ZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY3NzQwMjk4ICswMjAwCi1AQCAtMCwwICsxLDQ0IEBA Ci0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0r IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAi Ci0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0Zmls ZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJu IC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3Vs ZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJyZS1yZXZlcnNlLWVsZW1lbnRzIl0K LStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicmUtcmV2ZXJzZS1lbGVtZW50cyIKLStnZGJf dGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxc XCkiIFwKLSsgICJwcmludCByZS1yZXZlcnNlLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBw dmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IHJlLXJldmVyc2UtZWxlbWVudCIKLStnZGJfdGVz dCAicHJpbnQgcHZsYSgxMCkiICIgPSAxMCIgInByaW50IGxhc3QgcmUtcmV2ZXJzZS1lbGVtZW50 IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJvZGQtZWxlbWVudHMi XQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3Qg InByaW50IHB2bGEiICIgPSBcXFwoMSwgMywgNSwgNywgOVxcXCkiICJwcmludCBvZGQtZWxlbWVu dHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3Qgb2RkLWVs ZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNSkiICIgPSA5IiAicHJpbnQgbGFzdCBvZGQt ZWxlbWVudCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAic2luZ2xl LWVsZW1lbnQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIK LStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVt ZW50IgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUt ZWxlbWVudCIKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5mOTAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNS0wNS0yOSAwODoyNzowNi4y Njg3NDAzMDUgKzAyMDAKLUBAIC0wLDAgKzEsMzAgQEAKLSshIENvcHlyaWdodCAyMDE0IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQotKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Ci0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSshIEZv dW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAw MjExMS0xMzA3LCBVU0EuCi0rCi0rcHJvZ3JhbSB2bGFfc3RyaWRlCi0rICBpbnRlZ2VyLCB0YXJn ZXQsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOikKLSsgIGludGVnZXIsIHBvaW50ZXIgOjogcHZsYSAo OikKLSsKLSsgIGFsbG9jYXRlKHZsYSgxMCkpCi0rICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8p Ci0rCi0rICBwdmxhID0+IHZsYSgxMDoxOi0xKQotKyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCi0r ICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISByZS1yZXZlcnNlLWVsZW1lbnRzCi0rICBwdmxhID0+ IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVudHMKLSsKLSsgIHB2bGEgPT4gbnVsbCgpICAgICAg ICAhIHNpbmdsZS1lbGVtZW50Ci0rZW5kIHByb2dyYW0gdmxhX3N0cmlkZQotSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN0cmluZ3MuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY4NzQwMzA1ICswMjAwCi1AQCAt MCwwICsxLDEwNCBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0r IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rl c3RmaWxlICIuZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0u ZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7 Ci0rICAgIHJldHVybiAtMQotK30KLSsKLSsjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4gc3RhbmRh cmQgZGF0YXR5cGVzIHdpbGwgYmUKLSsjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNpbmcgYXMg VkxBJ3MKKysKKysjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4gc3RhbmRhcmQgZGF0YXR5cGVzIHdp bGwgYmUKKysjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNpbmcgYXMgVkxBJ3MKICsKICtpZiAh W3J1bnRvIE1BSU5fX10gdGhlbiB7CiArICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFr cG9pbnQgTUFJTl9fIgpAQCAtMTc5NSw5ICsxMTI2LDYgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKICtnZGJfdGVz dCAicHJpbnQgdmFyX2NoYXIiIFwKICsgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjEwIFxcKVxcKSAke2hleH0iIFwKICsgICJwcmludCB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQg Zmlyc3QgdGltZSIKLStnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiBcCi0rICAiID0gJ1xcXFww MDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAw MFxcXFwwMDAnIiBcCi0rICAicHJpbnQgKnZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBmaXJzdCB0 aW1lIgogK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBj aGFyYWN0ZXJcXCoxMCBcXCkiIFwKICsgICJ3aGF0aXMgdmFyX2NoYXIgZmlyc3QgdGltZSIKICtn ZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCoxMCBcXCkiIFwKQEAgLTE4NjQsMTAgKzExOTIsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKICsgICJ3aGF0 aXMgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgogK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hh cl9wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNyBcXCkiIFwKICsgICJwdHlw ZSB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAorSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpbmdzLmY5MAkyMDE1LTA1LTMxIDE1OjI1OjAxLjMwNTYxNTc1NSArMDIwMAorKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlu Z3MuZjkwCTIwMTUtMTEtMDMgMjA6NDE6NDguNTQzNTA0OTk5ICswMTAwCiBAQCAtMCwwICsxLDQw IEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsh CkBAIC0xOTA5LDczNCArMTIzNywxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAogKyAgdmFyX2NoYXJfcCA9PiBu dWxsKCkKICsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9j aGFyX3Atbm90LWFzc29jaWF0ZWQKICtlbmQgcHJvZ3JhbSB2bGFfc3RyaW5ncwotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3ViLmY5MAor SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90eXBlcHJpbnQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3ViLmY5MAky MDE1LTA1LTI5IDA4OjI3OjA2LjI2ODc0MDMwNSArMDIwMAotQEAgLTAsMCArMSw4MiBAQAotKyEg Q29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIQotKyEgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rISBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0r ISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyEKLSshIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp dGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSshCi0rISBPcmlnaW5hbCBmaWxl IHdyaXR0ZW4gYnkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gYW5kCi0rISBKYW4g S3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4uCi0rISBNb2RpZmllZCBmb3Ig dGhlIEdEQiB0ZXN0Y2FzZXMgYnkgS2V2ZW4gQm9lbGwgPGtldmVuLmJvZWxsQGludGVsLmNvbT4u Ci0rCi0rc3Vicm91dGluZSBmb28gKGFycmF5MSwgYXJyYXkyKQotKyAgaW50ZWdlciA6OiBhcnJh eTEgKDosIDopCi0rICByZWFsICAgIDo6IGFycmF5MiAoOiwgOiwgOikKLSsKLSsgIGFycmF5MSg6 LDopID0gNSAgICAgICAgICAgICAgICAgICAgICAgISBub3QtZmlsbGVkCi0rICBhcnJheTEoMSwg MSkgPSAzMAotKwotKyAgYXJyYXkyKDosOiw6KSA9IDYgICAgICAgICAgICAgICAgICAgICAhIGFy cmF5MS1maWxsZWQKLSsgIGFycmF5Mig6LDosOikgPSAzCi0rICBhcnJheTIoMSwxLDEpID0gMzAK LSsgIGFycmF5MigzLDMsMykgPSA5MCAgICAgICAgICAgICAgICAgICAgISBhcnJheTItYWxtb3N0 LWZpbGxlZAotK2VuZCBzdWJyb3V0aW5lCi0rCi0rc3Vicm91dGluZSBiYXIgKGFycmF5MSwgYXJy YXkyKQotKyAgaW50ZWdlciA6OiBhcnJheTEgKCopCi0rICBpbnRlZ2VyIDo6IGFycmF5MiAoNDo5 LCAxMDoqKQotKwotKyAgYXJyYXkxKDU6MTApID0gMTMxMQotKyAgYXJyYXkxKDcpID0gMQotKyAg YXJyYXkxKDEwMCkgPSAxMDAKLSsgIGFycmF5Mig0LDEwKSA9IGFycmF5MSg3KQotKyAgYXJyYXky KDQsMTAwKSA9IGFycmF5MSg3KQotKyAgcmV0dXJuICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAhIGVuZC1vZi1iYXIKLStlbmQgc3Vicm91dGluZQotKwotK3Byb2dyYW0gdmxhX3N1Ygot KyAgaW50ZXJmYWNlCi0rICAgIHN1YnJvdXRpbmUgZm9vIChhcnJheTEsIGFycmF5MikKLSsgICAg ICBpbnRlZ2VyIDo6IGFycmF5MSAoOiwgOikKLSsgICAgICByZWFsIDo6IGFycmF5MiAoOiwgOiwg OikKLSsgICAgZW5kIHN1YnJvdXRpbmUKLSsgIGVuZCBpbnRlcmZhY2UKLSsgIGludGVyZmFjZQot KyAgICBzdWJyb3V0aW5lIGJhciAoYXJyYXkxLCBhcnJheTIpCi0rICAgICAgaW50ZWdlciA6OiBh cnJheTEgKCopCi0rICAgICAgaW50ZWdlciA6OiBhcnJheTIgKDQ6OSwgMTA6KikKLSsgICAgZW5k IHN1YnJvdXRpbmUKLSsgIGVuZCBpbnRlcmZhY2UKLSsKLSsgIHJlYWwsIGFsbG9jYXRhYmxlIDo6 IHZsYTEgKDosIDosIDopCi0rICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEyICg6LCA6KQot KwotKyAgISB1c2VkIGZvciBzdWJyb3V0aW5lCi0rICBpbnRlZ2VyIDo6IHN1Yl9hcnIxKDQyLCA0 MikKLSsgIHJlYWwgICAgOjogc3ViX2FycjIoNDIsIDQyLCA0MikKLSsgIGludGVnZXIgOjogc3Vi X2FycjMoNDIpCi0rCi0rICBzdWJfYXJyMSg6LDopID0gMSAgICAgICAgICAgICAgICAgICAhIHZs YTItZGVhbGxvY2F0ZWQKLSsgIHN1Yl9hcnIyKDosOiw6KSA9IDIKLSsgIHN1Yl9hcnIzKDopID0g MwotKwotKyAgY2FsbCBmb28oc3ViX2FycjEsIHN1Yl9hcnIyKQotKyAgY2FsbCBmb28oc3ViX2Fy cjEoNToxMCwgNToxMCksIHN1Yl9hcnIyKDEwOjE1LDEwOjE1LDEwOjE1KSkKLSsKLSsgIGFsbG9j YXRlICh2bGExICgxMCwxMCwxMCkpCi0rICBhbGxvY2F0ZSAodmxhMiAoMjAsMjApKQotKyAgdmxh MSg6LDosOikgPSAxMzExCi0rICB2bGEyKDosOikgPSA0MgotKyAgY2FsbCBmb28odmxhMiwgdmxh MSkKLSsKLSsgIGNhbGwgYmFyKHN1Yl9hcnIzLCBzdWJfYXJyMSkKLStlbmQgcHJvZ3JhbSB2bGFf c3ViCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAJ MjAxNS0wNS0yOSAwODoyNzowNi4yNjg3NDAzMDUgKzAyMDAKLUBAIC0wLDAgKzEsMzUgQEAKLSsj IENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0r IyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLXN1Yi5m OTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0 ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0 dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJj b3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwot KyMgQ2hlY2sgVkxBIHdpdGggYXJiaXRhcnkgbGVuZ3RoIGFuZCBjaGVjayB0aGF0IGVsZW1lbnRz IG91dHNpZGUgb2YKLSsjIGJvdW5kcyBvZiB0aGUgcGFzc2VkIFZMQSBjYW4gYmUgYWNjZXNzZWQg Y29ycmVjdGx5LgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJlbmQtb2Yt YmFyIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZW5kLW9mLWJhciIKLStnZGJfdGVz dCAicCBhcnJheTEoNDIpIiAiID0gMyIgInByaW50IGFyYml0YXJ5IGFycmF5MSg0MikiCi0rZ2Ri X3Rlc3QgInAgYXJyYXkxKDEwMCkiICIgPSAxMDAiICJwcmludCBhcmJpdGFyeSBhcnJheTEoMTAw KSIKLStnZGJfdGVzdCAicCBhcnJheTIoNCwxMCkiICIgPSAxIiAicHJpbnQgYXJiaXRhcnkgYXJy YXkyKDQsMTApIgotK2dkYl90ZXN0ICJwIGFycmF5Mig0LDEwMCkiICIgPSAxIiAicHJpbnQgYXJi aXRhcnkgYXJyYXkyKDQsMTAwKSIKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIt ZmluaXNoLmV4cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2ODc0MDMwNSArMDIwMAotQEAgLTAsMCAr MSw0OSBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu Ci0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxl ICJ2bGEtc3ViLmY5MCIKLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9 LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKLSsgICAge2RlYnVnIGY5MCBxdWlldH1dIH0g ewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0raWYgIVtydW50byBNQUlOX19dIHRoZW4gewotKyAg ICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIKLSsgICAgY29udGlu dWUKLSt9Ci0rCi0rIyAidXAiIHdvcmtzIHdpdGggR0NDIGJ1dCBvdGhlciBGb3J0cmFuIGNvbXBp bGVycyBtYXkgY29weSB0aGUgdmFsdWVzIGludG8gdGhlCi0rIyBvdXRlciBmdW5jdGlvbiBvbmx5 IG9uIHRoZSBleGl0IG9mIHRoZSBpbm5lciBmdW5jdGlvbi4KLSsjIFdlIG5lZWQgYm90aCB2YXJp YW50cyBhcyBkZXBlbmRpbmcgb24gdGhlIGFyY2ggd2Ugb3B0aW9uYWxseSBtYXkgc3RpbGwgYmUK LSsjIGV4ZWN1dGluZyB0aGUgY2FsbGVyIGxpbmUgb3Igbm90IGFmdGVyIGBmaW5pc2gnLgotKwot K2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJhcnJheTItYWxtb3N0LWZpbGxl ZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImFycmF5Mi1hbG1vc3QtZmlsbGVkIgot K2dkYl90ZXN0ICJwcmludCBhcnJheTIiICIgPSBcXCggKlxcKCAqXFwoICozMCwgKjMsICozLFxb KCkzLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgYXJyYXkyIGluIGZvbyBhZnRlciBpdCB3YXMgZmls bGVkIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTIoMiwxLDEpPTIwIiAiID0gMjAiIFwKLSsgICJz ZXQgYXJyYXkoMiwyLDIpIHRvIDIwIGluIHN1YnJvdXRpbmUiCi0rZ2RiX3Rlc3QgInByaW50IGFy cmF5MiIgIiA9IFxcKCAqXFwoICpcXCggKjMwLCAqMjAsICozLFxbKCkzLCAuXF0qXFwpIiBcCi0r ICAicHJpbnQgYXJyYXkyIGluIGZvbyBhZnRlciBpdCB3YXMgbW9maWZpZWQgaW4gZGVidWdnZXIi Ci0rCi0rZ2RiX3Rlc3QgImZpbmlzaCIgXAotKyAgIi4qZm9vXFxcKHN1Yl9hcnIxXFxcKDU6MTAs IDU6MTBcXFwpLCBzdWJfYXJyMlxcXCgxMDoxNSwxMDoxNSwxMDoxNVxcXClcXFwpIiBcCi0rICAi ZmluaXNoIGZ1bmN0aW9uIgotK2dkYl90ZXN0ICJwIHN1Yl9hcnIxKDUsIDcpIiAiID0gNSIgInN1 Yl9hcnIxKDUsIDcpIGFmdGVyIGZpbmlzaCIKLStnZGJfdGVzdCAicCBzdWJfYXJyMSgxLCAxKSIg IiA9IDMwIiAic3ViX2FycjEoMSwgMSkgYWZ0ZXIgZmluaXNoIgotK2dkYl90ZXN0ICJwIHN1Yl9h cnIyKDEsIDEsIDEpIiAiID0gMzAiICJzdWJfYXJyMigxLCAxLCAxKSBhZnRlciBmaW5pc2giCi0r Z2RiX3Rlc3QgInAgc3ViX2FycjIoMiwgMSwgMSkiICIgPSAyMCIgInN1Yl9hcnIyKDIsIDEsIDEp IGFmdGVyIGZpbmlzaCIKLSsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAJMjAxNS0w NS0yOSAwODoyNzowNi4yNjk3NDAzMTEgKzAyMDAKLUBAIC0wLDAgKzEsOTAgQEAKLSsjIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAidmxhLXN1Yi5mOTAiCi0r Ci0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0g JHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0x Ci0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4n dCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotKyMgQ2hl Y2sgdGhlIHZhbHVlcyBvZiBWTEEncyBpbiBzdWJyb3V0aW5lIGNhbiBiZSBldmFsdWF0ZWQgY29y cmVjdGx5Ci0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBmcm9tIGEgZml4ZWQgYXJyYXkgaGFu ZGxlZCBhcyBWTEEgaW4gc3Vicm91dGluZS4KLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAibm90LWZpbGxlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm5vdC1m aWxsZWQgKDFzdCkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MSIgIiA9IFxcKFxbKCkxLCAuXF0q XFwpIiBcCi0rICAicHJpbnQgcGFzc2VkIGFycmF5MSBpbiBmb28gKHBhc3NlZCBmaXhlZCBhcnJh eSkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImFycmF5MS1maWxs ZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJhcnJheTEtZmlsbGVkICgxc3QpIgot K2dkYl90ZXN0ICJwcmludCBhcnJheTEoNSwgNykiICIgPSA1IiBcCi0rICAicHJpbnQgYXJyYXkx KDUsIDcpIGFmdGVyIGZpbGxlZCBpbiBmb28gKHBhc3NlZCBmaXhlZCBhcnJheSkiCi0rZ2RiX3Rl c3QgInByaW50IGFycmF5MSgxLCAxKSIgIiA9IDMwIiBcCi0rICAicHJpbnQgYXJyYXkxKDEsIDEp IGFmdGVyIGZpbGxlZCBpbiBmb28gKHBhc3NlZCBmaXhlZCBhcnJheSkiCi0rCi0rZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImFycmF5Mi1hbG1vc3QtZmlsbGVkIl0KLStnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAiYXJyYXkyLWFsbW9zdC1maWxsZWQgKDFzdCkiCi0rZ2Ri X3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwoICpcXCggKjMwLCAqMywgKjMsXFsoKTMs IC5cXSpcXCkiIFwKLSsgICJwcmludCBhcnJheTIgaW4gZm9vIGFmdGVyIGl0IHdhcyBmaWxsZWQg KHBhc3NlZCBmaXhlZCBhcnJheSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MigyLDEsMSk9MjAi ICIgPSAyMCIgXAotKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAgaW4gc3Vicm91dGluZSAocGFz c2VkIGZpeGVkIGFycmF5KSIKLStnZGJfdGVzdCAicHJpbnQgYXJyYXkyIiAiID0gXFwoICpcXCgg KlxcKCAqMzAsICoyMCwgKjMsXFsoKTMsIC5cXSpcXCkiIFwKLSsgICJwcmludCBhcnJheTIgaW4g Zm9vIGFmdGVyIGl0IHdhcyBtb2ZpZmllZCBpbiBkZWJ1Z2dlciAocGFzc2VkIGZpeGVkIGFycmF5 KSIKLSsKLSsKLSsjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGZyb20gYSBmaXhlZCBzdWItYXJyYXkg aGFuZGxlZCBhcyBWTEEgaW4gc3Vicm91dGluZS4KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAibm90LWZpbGxlZCAoMm5kKSIKLStnZGJfdGVzdCAicHJpbnQgYXJyYXkxIiAiID0gXFwoXFso KTUsIC5cXSpcXCkiIFwKLSsgICJwcmludCBwYXNzZWQgYXJyYXkxIGluIGZvbyAocGFzc2VkIHN1 Yi1hcnJheSkiCi0rCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImFycmF5MS1maWxsZWQg KDJuZCkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MSg1LCA1KSIgIiA9IDUiIFwKLSsgICJwcmlu dCBhcnJheTEoNSwgNSkgYWZ0ZXIgZmlsbGVkIGluIGZvbyAocGFzc2VkIHN1Yi1hcnJheSkiCi0r Z2RiX3Rlc3QgInByaW50IGFycmF5MSgxLCAxKSIgIiA9IDMwIiBcCi0rICAicHJpbnQgYXJyYXkx KDEsIDEpIGFmdGVyIGZpbGxlZCBpbiBmb28gKHBhc3NlZCBzdWItYXJyYXkpIgotKwotK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJhcnJheTItYWxtb3N0LWZpbGxlZCAoMm5kKSIKLStnZGJf dGVzdCAicHJpbnQgYXJyYXkyIiAiID0gXFwoICpcXCggKlxcKCAqMzAsICozLCAqMyxcWygpMywg LlxdKlxcKSIgXAotKyAgInByaW50IGFycmF5MiBpbiBmb28gYWZ0ZXIgaXQgd2FzIGZpbGxlZCAo cGFzc2VkIHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MigyLDEsMSk9MjAiICIg PSAyMCIgXAotKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAgaW4gc3Vicm91dGluZSAocGFzc2Vk IHN1Yi1hcnJheSkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwoICpcXCgg KjMwLCAqMjAsICozLFxbKCkzLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgYXJyYXkyIGluIGZvbyBh ZnRlciBpdCB3YXMgbW9maWZpZWQgaW4gZGVidWdnZXIgKHBhc3NlZCBzdWItYXJyYXkpIgotKwot KwotKyMgVHJ5IHRvIGFjY2VzcyB2YWx1ZXMgZnJvbSBhIFZMQSBwYXNzZWQgdG8gc3Vicm91dGlu ZS4KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAibm90LWZpbGxlZCAoM3JkKSIKLStnZGJf dGVzdCAicHJpbnQgYXJyYXkxIiAiID0gXFwoXFsoKTQyLCAuXF0qXFwpIiBcCi0rICAicHJpbnQg cGFzc2VkIGFycmF5MSBpbiBmb28gKHBhc3NlZCB2bGEpIgotKwotK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJhcnJheTEtZmlsbGVkICgzcmQpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTEo NSwgNSkiICIgPSA1IiBcCi0rICAicHJpbnQgYXJyYXkxKDUsIDUpIGFmdGVyIGZpbGxlZCBpbiBm b28gKHBhc3NlZCB2bGEpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTEoMSwgMSkiICIgPSAzMCIg XAotKyAgInByaW50IGFycmF5MSgxLCAxKSBhZnRlciBmaWxsZWQgaW4gZm9vIChwYXNzZWQgdmxh KSIKLSsKLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYXJyYXkyLWFsbW9zdC1maWxsZWQg KDNyZCkiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwoICpcXCggKjMwLCAq MywgKjMsXFsoKTMsIC5cXSpcXCkiIFwKLSsgICJwcmludCBhcnJheTIgaW4gZm9vIGFmdGVyIGl0 IHdhcyBmaWxsZWQgKHBhc3NlZCB2bGEpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTIoMiwxLDEp PTIwIiAiID0gMjAiIFwKLSsgICJzZXQgYXJyYXkoMiwyLDIpIHRvIDIwIGluIHN1YnJvdXRpbmUg KHBhc3NlZCB2bGEpIgotK2dkYl90ZXN0ICJwcmludCBhcnJheTIiICIgPSBcXCggKlxcKCAqXFwo ICozMCwgKjIwLCAqMyxcWygpMywgLlxdKlxcKSIgXAotKyAgInByaW50IGFycmF5MiBpbiBmb28g YWZ0ZXIgaXQgd2FzIG1vZmlmaWVkIGluIGRlYnVnZ2VyIChwYXNzZWQgdmxhKSIKLUluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4 cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtdmFsdWUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY5NzQwMzExICswMjAwCi1AQCAt MCwwICsxLDE0OCBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0r IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rl c3RmaWxlICJ2bGEuZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0Zmls ZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICAge2RlYnVnIGY5MCBxdWlldH1d IH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0raWYgIVtydW50byBNQUlOX19dIHRoZW4gewot KyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIKLSsgICAgY29u dGludWUKLSt9Ci0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBub24gYWxsb2NhdGVkIFZM QQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWluaXQiXQotK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWluaXQiCi0rZ2RiX3Rlc3QgInByaW50IHZs YTEiICIgPSA8bm90IGFsbG9jYXRlZD4iICJwcmludCBub24tYWxsb2NhdGVkIHZsYTEiCi0rZ2Ri X3Rlc3QgInByaW50ICZ2bGExIiBcCi0rICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwo a2luZD00XFxcKSBcXFwoPG5vdCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKLSsgICJw cmludCBub24tYWxsb2NhdGVkICZ2bGExIgotK2dkYl90ZXN0ICJwcmludCB2bGExKDEsMSwxKSIg Im5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgYmVjYXVzZSBub3QgYWxsb2NhdGVkIiBcCi0rICAicHJp bnQgbWVtYmVyIGluIG5vbi1hbGxvY2F0ZWQgdmxhMSAoMSkiCi0rZ2RiX3Rlc3QgInByaW50IHZs YTEoMTAxLDIwMiwzMDMpIiBcCi0rICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5v dCBhbGxvY2F0ZWQiIFwKLSsgICJwcmludCBtZW1iZXIgaW4gbm9uLWFsbG9jYXRlZCB2bGExICgy KSIKLStnZGJfdGVzdCAicHJpbnQgdmxhMSg1LDIsMTgpPTEiICJubyBzdWNoIHZlY3RvciBlbGVt ZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInNldCBtZW1iZXIgaW4gbm9uLWFsbG9j YXRlZCB2bGExIgotKwotKyMgVHJ5IHRvIGFjY2VzcyB2YWx1ZSBpbiBhbGxvY2F0ZWQgVkxBCi0r Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTItYWxsb2NhdGVkIl0KLStn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMi1hbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgIm5l eHQiICJcXGQrKFxcdHxcXHMpK3ZsYTFcXFwoMywgNiwgOVxcXCkgPSA0MiIgXAotKyAgInN0ZXAg b3ZlciB2YWx1ZSBhc3NpZ25tZW50IG9mIHZsYTEiCi0rZ2RiX3Rlc3QgInByaW50ICZ2bGExIiBc Ci0rICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoMTAsMTAs MTBcXFwpXFxcKVxcXCkgJGhleCIgXAotKyAgInByaW50IGFsbG9jYXRlZCAmdmxhMSIKLStnZGJf dGVzdCAicHJpbnQgdmxhMSgzLCA2LCA5KSIgIiA9IDEzMTEiICJwcmludCBhbGxvY2F0ZWQgdmxh MSgzLDYsOSkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTEoMSwgMywgOCkiICIgPSAxMzExIiAicHJp bnQgYWxsb2NhdGVkIHZsYTEoMSwzLDgpIgotK2dkYl90ZXN0ICJwcmludCB2bGExKDksIDksIDkp ID0gOTk5IiAiID0gOTk5IiBcCi0rICAicHJpbnQgYWxsb2NhdGVkIHZsYTEoOSw5LDkpPTEiCi0r Ci0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBhbGxvY2F0ZWQgVkxBIGFmdGVyIHNwZWNpZmlj IGFzc2lnbm1lbnQKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMS1m aWxsZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWZpbGxlZCIKLStnZGJf dGVzdCAicHJpbnQgdmxhMSgzLCA2LCA5KSIgIiA9IDQyIiBcCi0rICAicHJpbnQgYWxsb2NhdGVk IHZsYTEoMyw2LDkpIGFmdGVyIHNwZWNpZmljIGFzc2lnbm1lbnQgKGZpbGxlZCkiCi0rZ2RiX3Rl c3QgInByaW50IHZsYTEoMSwgMywgOCkiICIgPSAxMDAxIiBcCi0rICAicHJpbnQgYWxsb2NhdGVk IHZsYTEoMSwzLDgpIGFmdGVyIHNwZWNpZmljIGFzc2lnbm1lbnQgKGZpbGxlZCkiCi0rZ2RiX3Rl c3QgInByaW50IHZsYTEoOSwgOSwgOSkiICIgPSA5OTkiIFwKLSsgICJwcmludCBhbGxvY2F0ZWQg dmxhMSg5LDksOSkgYWZ0ZXIgYXNzaWdubWVudCBpbiBkZWJ1Z2dlciAoZmlsbGVkKSIKLSsKLSsj IFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIHVuZGVmaW5lZCBwb2ludGVyIHRvIFZMQSAoZGFuZ2xp bmcpCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSA8bm90IGFzc29jaWF0ZWQ+IiAicHJpbnQg dW5kZWZpbmVkIHB2bGEiCi0rZ2RiX3Rlc3QgInByaW50ICZwdmxhIiBcCi0rICAiID0gXFxcKFBU UiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoPG5vdCBhc3NvY2lhdGVkPlxcXClc XFwpXFxcKSAkaGV4IiBcCi0rICAicHJpbnQgbm9uLWFzc29jaWF0ZWQgJnB2bGEiCi0rZ2RiX3Rl c3QgInByaW50IHB2bGEoMSwgMywgOCkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ug bm90IGFzc29jaWF0ZWQiIFwKLSsgICJwcmludCB1bmRlZmluZWQgcHZsYSgxLDMsOCkiCi0rCi0r IyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBpbiBwb2ludGVyIHRvIFZMQSBhbmQgY29tcGFyZSB0aGVt Ci0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJd Ci0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKLStnZGJfdGVz dCAicHJpbnQgJnB2bGEiIFwKLSsgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5k PTRcXFwpIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCi0rICAicHJpbnQgYXNzb2Np YXRlZCAmcHZsYSIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgzLCA2LCA5KSIgIiA9IDQyIiAicHJp bnQgYXNzb2NpYXRlZCBwdmxhKDMsNiw5KSIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4 KSIgIiA9IDEwMDEiICJwcmludCBhc3NvY2lhdGVkIHB2bGEoMSwzLDgpIgotK2dkYl90ZXN0ICJw cmludCBwdmxhKDksIDksIDkpIiAiID0gOTk5IiAicHJpbnQgYXNzb2NpYXRlZCBwdmxhKDksOSw5 KSIKLSsKLSsjIEZpbGwgdmFsdWVzIHRvIFZMQSB1c2luZyBwb2ludGVyIGFuZCBjaGVjawotK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhLXJlLWFzc29jaWF0ZWQiXQot K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLXJlLWFzc29jaWF0ZWQiCi0rZ2RiX3Rl c3QgInByaW50IHB2bGEoNSwgNDUsIDIwKSIgXAotKyAgIiA9IDEiICJwcmludCBwdmxhKDUsIDQ1 LCAyMCkgYWZ0ZXIgZmlsbGVkIHVzaW5nIHBvaW50ZXIiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTIo NSwgNDUsIDIwKSIgXAotKyAgIiA9IDEiICJwcmludCB2bGEyKDUsIDQ1LCAyMCkgYWZ0ZXIgZmls bGVkIHVzaW5nIHBvaW50ZXIiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNywgNDUsIDE0KSIgIiA9 IDIiIFwKLSsgICJwcmludCBwdmxhKDcsIDQ1LCAxNCkgYWZ0ZXIgZmlsbGVkIHVzaW5nIHBvaW50 ZXIiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTIoNywgNDUsIDE0KSIgIiA9IDIiIFwKLSsgICJwcmlu dCB2bGEyKDcsIDQ1LCAxNCkgYWZ0ZXIgZmlsbGVkIHVzaW5nIHBvaW50ZXIiCi0rCi0rIyBUcnkg dG8gYWNjZXNzIHZhbHVlcyBvZiBkZWFzc29jaWF0ZWQgVkxBIHBvaW50ZXIKLStnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAicHZsYS1kZWFzc29jaWF0ZWQiXQotK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJwdmxhLWRlYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHJpbnQg cHZsYSg1LCA0NSwgMjApIiBcCi0rICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5v dCBhc3NvY2lhdGVkIiBcCi0rICAicHJpbnQgcHZsYSg1LCA0NSwgMjApIGFmdGVyIGRlYXNzb2Np YXRlZCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSg3LCA0NSwgMTQpIiBcCi0rICAibm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhc3NvY2lhdGVkIiBcCi0rICAicHJpbnQgcHZsYSg3 LCA0NSwgMTQpIGFmdGVyIGRpc3Nhc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIg PSA8bm90IGFzc29jaWF0ZWQ+IiBcCi0rICAicHJpbnQgdmxhMSBhZnRlciBkZWFzc29jaWF0ZWQi Ci0rCi0rIyBUcnkgdG8gYWNjZXNzIHZhbHVlcyBvZiBkZWFsbG9jYXRlZCBWTEEKLStnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMS1kZWFsbG9jYXRlZCJdCi0rZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInByaW50 IHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9j YXRlZCIgXAotKyAgInByaW50IGFsbG9jYXRlZCB2bGExKDMsNiw5KSBhZnRlciBzcGVjaWZpYyBh c3NpZ25tZW50IChkZWFsbG9jYXRlZCkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTEoMSwgMywgOCki ICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInBy aW50IGFsbG9jYXRlZCB2bGExKDEsMyw4KSBhZnRlciBzcGVjaWZpYyBhc3NpZ25tZW50IChkZWFs bG9jYXRlZCkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTEoOSwgOSwgOSkiICJubyBzdWNoIHZlY3Rv ciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAotKyAgInByaW50IGFsbG9jYXRlZCB2 bGExKDksOSw5KSBhZnRlciBhc3NpZ25tZW50IGluIGRlYnVnZ2VyIChkZWFsbG9jYXRlZCkiCi0r Ci0rCi0rIyBUcnkgdG8gYXNzaWduIFZMQSB0byB1c2VyIHZhcmlhYmxlCi0rY2xlYW5fcmVzdGFy dCAke3Rlc3RmaWxlfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9y ICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQot K2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEyLWFsbG9jYXRlZCJdCi0r Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJu ZXh0IiAiXFxkKy4qdmxhMVxcKDMsIDYsIDlcXCkgPSA0MiIgIm5leHQgKDEpIgotKwotK2dkYl90 ZXN0X25vX291dHB1dCAic2V0IFwkbXl2YXIgPSB2bGExIiAic2V0IFwkbXl2YXIgPSB2bGExIgot K2dkYl90ZXN0ICJwcmludCBcJG15dmFyIiBcCi0rICAiID0gXFwoICpcXCggKlxcKCAqMTMxMSwg KjEzMTEsICoxMzExLFxbKCkxMzExLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgXCRteXZhciBzZXQg dG8gdmxhMSIKLSsKLStnZGJfdGVzdCAibmV4dCIgIlxcZCsuKnZsYTFcXCgxLCAzLCA4XFwpID0g MTAwMSIgIm5leHQgKDIpIgotK2dkYl90ZXN0ICJwcmludCBcJG15dmFyKDMsNiw5KSIgIiA9IDEz MTEiICJwcmludCBcJG15dmFyKDMsNiw5KSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9s aW5lX251bWJlciAicHZsYS1hc3NvY2lhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAicHZsYS1hc3NvY2lhdGVkIgotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IFwkbXlwdmFyID0g cHZsYSIgInNldCBcJG15cHZhciA9IHB2bGEiCi0rZ2RiX3Rlc3QgInByaW50IFwkbXlwdmFyKDEs Myw4KSIgIiA9IDEwMDEiICJwcmludCBcJG15cHZhcigxLDMsOCkiCi0rCi0rIyBkZWFsbG9jYXRl IHBvaW50ZXIgYW5kIG1ha2Ugc3VyZSB1c2VyIGRlZmluZWQgdmFyaWFibGUgc3RpbGwgaGFzIHRo ZQotKyMgcmlnaHQgdmFsdWUuCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InB2bGEtZGVhc3NvY2lhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicHZsYS1k ZWFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInByaW50IFwkbXlwdmFyKDEsMyw4KSIgIiA9IDEwMDEi IFwKLSsgICJwcmludCBcJG15cHZhcigxLDMsOCkgYWZ0ZXIgZGVhbGxvY2F0ZWQiCi1JbmRleDog Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2OTc0MDMxMSArMDIwMAotQEAgLTAsMCArMSw1NiBA QAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIQot KyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rISBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyEK LSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStwcm9ncmFtIHZsYQotKyAgcmVhbCwg dGFyZ2V0LCBhbGxvY2F0YWJsZSA6OiB2bGExICg6LCA6LCA6KQotKyAgcmVhbCwgdGFyZ2V0LCBh bGxvY2F0YWJsZSA6OiB2bGEyICg6LCA6LCA6KQotKyAgcmVhbCwgdGFyZ2V0LCBhbGxvY2F0YWJs ZSA6OiB2bGEzICg6LCA6KQotKyAgcmVhbCwgcG9pbnRlciA6OiBwdmxhICg6LCA6LCA6KQotKyAg bG9naWNhbCA6OiBsCi0rCi0rICBhbGxvY2F0ZSAodmxhMSAoMTAsMTAsMTApKSAgICAgICAgICAh IHZsYTEtaW5pdAotKyAgbCA9IGFsbG9jYXRlZCh2bGExKQotKwotKyAgYWxsb2NhdGUgKHZsYTIg KDE6Nyw0Mjo1MCwxMzozNSkpICAgISB2bGExLWFsbG9jYXRlZAotKyAgbCA9IGFsbG9jYXRlZCh2 bGEyKQotKwotKyAgdmxhMSg6LCA6LCA6KSA9IDEzMTEgICAgICAgICAgICAgICAgISB2bGEyLWFs bG9jYXRlZAotKyAgdmxhMSgzLCA2LCA5KSA9IDQyCi0rICB2bGExKDEsIDMsIDgpID0gMTAwMQot KyAgdmxhMSg2LCAyLCA3KSA9IDEzCi0rCi0rICB2bGEyKDosIDosIDopID0gMTMxMSAgICAgICAg ICAgICAgICAhIHZsYTEtZmlsbGVkCi0rICB2bGEyKDUsIDQ1LCAyMCkgPSA0MgotKwotKyAgcHZs YSA9PiB2bGExICAgICAgICAgICAgICAgICAgICAgICAgISB2bGEyLWZpbGxlZAotKyAgbCA9IGFz c29jaWF0ZWQocHZsYSkKLSsKLSsgIHB2bGEgPT4gdmxhMiAgICAgICAgICAgICAgICAgICAgICAg ICEgcHZsYS1hc3NvY2lhdGVkCi0rICBsID0gYXNzb2NpYXRlZChwdmxhKQotKyAgcHZsYSg1LCA0 NSwgMjApID0gMQotKyAgcHZsYSg3LCA0NSwgMTQpID0gMgotKwotKyAgcHZsYSA9PiBudWxsKCkg ICAgICAgICAgICAgICAgICAgICAgISBwdmxhLXJlLWFzc29jaWF0ZWQKLSsgIGwgPSBhc3NvY2lh dGVkKHB2bGEpCi0rCi0rICBkZWFsbG9jYXRlICh2bGExKSAgICAgICAgICAgICAgICAgICAhIHB2 bGEtZGVhc3NvY2lhdGVkCi0rICBsID0gYWxsb2NhdGVkKHZsYTEpCi0rCi0rICBkZWFsbG9jYXRl ICh2bGEyKSAgICAgICAgICAgICAgICAgICAhIHZsYTEtZGVhbGxvY2F0ZWQKLSsgIGwgPSBhbGxv Y2F0ZWQodmxhMikKLSsKLSsgIGFsbG9jYXRlICh2bGEzICgyLDIpKSAgICAgICAgICAgICAgICEg dmxhMi1kZWFsbG9jYXRlZAotKyAgdmxhMyg6LDopID0gMTMKLStlbmQgcHJvZ3JhbSB2bGEKLUlu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0 cmFuLmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTUtMDUtMjkgMTE6MTM6NTMuOTUxNjU2NTkxICswMjAw Ci1AQCAtMCwwICsxLDE4MSBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVmVy aWZ5IHRoYXQsIHVzaW5nIHRoZSBNSSwgd2UgY2FuIGV2YWx1YXRlIGEgc2ltcGxlIEMgVmFyaWFi bGUgTGVuZ3RoCi0rIyBBcnJheSAoVkxBKS4KLSsKLStsb2FkX2xpYiBtaS1zdXBwb3J0LmV4cAot K3NldCBNSUZMQUdTICItaT1taSIKLSsKLStnZGJfZXhpdAotK2lmIFttaV9nZGJfc3RhcnRdIHsK LSsgICAgY29udGludWUKLSt9Ci0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgdmxhLmY5MAotKwotK2lm IHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZp bGV9IiBleGVjdXRhYmxlIFwKLSsgICAgIHtkZWJ1ZyBmOTB9XSAhPSAiIiB9IHsKLSsgICAgIHVu dGVzdGVkIG1pLXZsYS1mb3J0cmFuLmV4cAotKyAgICAgcmV0dXJuIC0xCi0rfQotKwotK21pX2Rl bGV0ZV9icmVha3BvaW50cwotK21pX2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRp cgotK21pX2dkYl9sb2FkICR7YmluZmlsZX0KLSsKLStzZXQgYnBfbGluZW5vIFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2bGExLW5vdC1hbGxvY2F0ZWQiXQotK21pX2NyZWF0ZV9icmVha3BvaW50ICIt dCB2bGEuZjkwOiRicF9saW5lbm8iIDEgImRlbCIgInZsYSIgXAotKyAgIi4qdmxhLmY5MCIgJGJw X2xpbmVubyAkaGV4IFwKLSsgICJpbnNlcnQgYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8g KHZsYSBub3QgYWxsb2NhdGVkKSIKLSttaV9ydW5fY21kCi0rbWlfZXhwZWN0X3N0b3AgImJyZWFr cG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xpbmVubyIgXAotKyAgeyAiIiAi ZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8iCi0r bWlfZ2RiX3Rlc3QgIjUwMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAotKyAgIjUw MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFsbG9jYXRlZD5cIiIgImV2YWx1YXRlIG5vdCBhbGxvY2F0 ZWQgdmxhIgotKwotK21pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX25vdF9hbGxvY2F0ZWQg dmxhMSAiPG5vdCBhbGxvY2F0ZWQ+IiBcCi0rICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZsYTFf bm90X2FsbG9jYXRlZCIKLSttaV9nZGJfdGVzdCAiNTAxLXZhci1pbmZvLXR5cGUgdmxhMV9ub3Rf YWxsb2NhdGVkIiBcCi0rICAiNTAxXFxeZG9uZSx0eXBlPVwiPG5vdCBhbGxvY2F0ZWQ+XCIiIFwK LSsgICJpbmZvIHR5cGUgdmFyaWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgotK21pX2dkYl90ZXN0 ICI1MDItdmFyLXNob3ctZm9ybWF0IHZsYTFfbm90X2FsbG9jYXRlZCIgXAotKyAgIjUwMlxcXmRv bmUsZm9ybWF0PVwibmF0dXJhbFwiIiBcCi0rICAic2hvdyBmb3JtYXQgdmFyaWFibGUgdmxhMV9u b3RfYWxsb2NhdGVkIgotK21pX2dkYl90ZXN0ICI1MDMtdmFyLWV2YWx1YXRlLWV4cHJlc3Npb24g dmxhMV9ub3RfYWxsb2NhdGVkIiBcCi0rICAiNTAzXFxeZG9uZSx2YWx1ZT1cIlxcXFswXFxcXVwi IiBcCi0rICAiZXZhbCB2YXJpYWJsZSB2bGExX25vdF9hbGxvY2F0ZWQiCi0rbWlfbGlzdF9hcnJh eV92YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAidmxhMV9ub3RfYWxsb2NhdGVkIiAiMCIgIjEi IFwKLSsgICAgInJlYWxcXFwoa2luZD00XFxcKSIgImdldCBjaGlsZHJlbiBvZiB2bGExX25vdF9h bGxvY2F0ZWQiCi0rCi0rCi0rCi0rc2V0IGJwX2xpbmVubyBbZ2RiX2dldF9saW5lX251bWJlciAi dmxhMS1hbGxvY2F0ZWQiXQotK21pX2NyZWF0ZV9icmVha3BvaW50ICItdCB2bGEuZjkwOiRicF9s aW5lbm8iIDIgImRlbCIgInZsYSIgIi4qdmxhLmY5MCIgXAotKyAgJGJwX2xpbmVubyAkaGV4ICJp bnNlcnQgYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8gKHZsYSBhbGxvY2F0ZWQpIgotK21p X3J1bl9jbWQKLSttaV9leHBlY3Rfc3RvcCAiYnJlYWtwb2ludC1oaXQiICJ2bGEiICIiICIuKnZs YS5mOTAiICIkYnBfbGluZW5vIiBcCi0rICB7ICIiICJkaXNwPVwiZGVsXCIiIH0gInJ1biB0byBi cmVha3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSsjIENvbnRlbnQgb2YgJ3ZsYTEnIGlzIHVu aW5pdGlhbGl6ZWQgaGVyZS4KLSsKLSttaV9jcmVhdGVfdmFyb2JqX2NoZWNrZWQgdmxhMV9hbGxv Y2F0ZWQgdmxhMSAicmVhbFxcXChraW5kPTRcXFwpIFxcXCg1XFxcKSIgXAotKyAgImNyZWF0ZSBs b2NhbCB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKLSttaV9nZGJfdGVzdCAiNTExLXZhci1pbmZv LXR5cGUgdmxhMV9hbGxvY2F0ZWQiIFwKLSsgICI1MTFcXF5kb25lLHR5cGU9XCJyZWFsXFxcKGtp bmQ9NFxcXCkgXFxcKDVcXFwpXCIiIFwKLSsgICJpbmZvIHR5cGUgdmFyaWFibGUgdmxhMV9hbGxv Y2F0ZWQiCi0rbWlfZ2RiX3Rlc3QgIjUxMi12YXItc2hvdy1mb3JtYXQgdmxhMV9hbGxvY2F0ZWQi IFwKLSsgICI1MTJcXF5kb25lLGZvcm1hdD1cIm5hdHVyYWxcIiIgXAotKyAgInNob3cgZm9ybWF0 IHZhcmlhYmxlIHZsYTFfYWxsb2NhdGVkIgotK21pX2dkYl90ZXN0ICI1MTMtdmFyLWV2YWx1YXRl LWV4cHJlc3Npb24gdmxhMV9hbGxvY2F0ZWQiIFwKLSsgICI1MTNcXF5kb25lLHZhbHVlPVwiXFxc WzVcXFxdXCIiIFwKLSsgICJldmFsIHZhcmlhYmxlIHZsYTFfYWxsb2NhdGVkIgotK21pX2xpc3Rf YXJyYXlfdmFyb2JqX2NoaWxkcmVuX3dpdGhfaW5kZXggInZsYTFfYWxsb2NhdGVkIiAiNSIgIjEi IFwKLSsgICAgInJlYWxcXFwoa2luZD00XFxcKSIgImdldCBjaGlsZHJlbiBvZiB2bGExX2FsbG9j YXRlZCIKLSsKLSsKLStzZXQgYnBfbGluZW5vIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWZp bGxlZCJdCi0rbWlfY3JlYXRlX2JyZWFrcG9pbnQgIi10IHZsYS5mOTA6JGJwX2xpbmVubyIgMyAi ZGVsIiAidmxhIiAiLip2bGEuZjkwIiBcCi0rICAkYnBfbGluZW5vICRoZXggImluc2VydCBicmVh a3BvaW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSttaV9ydW5fY21kCi0rbWlfZXhwZWN0X3N0b3Ag ImJyZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xpbmVubyIgXAotKyAg eyAiIiAiZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5l bm8iCi0rbWlfZ2RiX3Rlc3QgIjUyMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAot KyAgIjUyMFxcXmRvbmUsdmFsdWU9XCJcXCgxLCAxLCAxLCAxLCAxXFwpXCIiICJldmFsdWF0ZSBm aWxsZWQgdmxhIgotKwotKwotK3NldCBicF9saW5lbm8gW2dkYl9nZXRfbGluZV9udW1iZXIgInZs YTEtbW9kaWZpZWQiXQotK21pX2NyZWF0ZV9icmVha3BvaW50ICItdCB2bGEuZjkwOiRicF9saW5l bm8iIDQgImRlbCIgInZsYSIgIi4qdmxhLmY5MCIgXAotKyAgJGJwX2xpbmVubyAkaGV4ICJpbnNl cnQgYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8iCi0rbWlfcnVuX2NtZAotK21pX2V4cGVj dF9zdG9wICJicmVha3BvaW50LWhpdCIgInZsYSIgIiIgIi4qdmxhLmY5MCIgIiRicF9saW5lbm8i IFwKLSsgIHsgIiIgImRpc3A9XCJkZWxcIiIgfSAicnVuIHRvIGJyZWFrcG9pbnQgYXQgbGluZSAk YnBfbGluZW5vIgotK21pX2dkYl90ZXN0ICI1MzAtZGF0YS1ldmFsdWF0ZS1leHByZXNzaW9uIHZs YTEiIFwKLSsgICI1MzBcXF5kb25lLHZhbHVlPVwiXFwoMSwgNDIsIDEsIDI0LCAxXFwpXCIiICJl dmFsdWF0ZSBmaWxsZWQgdmxhIgotK21pX2dkYl90ZXN0ICI1NDAtZGF0YS1ldmFsdWF0ZS1leHBy ZXNzaW9uIHZsYTEoMSkiIFwKLSsgICI1NDBcXF5kb25lLHZhbHVlPVwiMVwiIiAiZXZhbHVhdGUg ZmlsbGVkIHZsYSIKLSttaV9nZGJfdGVzdCAiNTUwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2 bGExKDIpIiBcCi0rICAiNTUwXFxeZG9uZSx2YWx1ZT1cIjQyXCIiICJldmFsdWF0ZSBmaWxsZWQg dmxhIgotK21pX2dkYl90ZXN0ICI1NjAtZGF0YS1ldmFsdWF0ZS1leHByZXNzaW9uIHZsYTEoNCki IFwKLSsgICI1NjBcXF5kb25lLHZhbHVlPVwiMjRcIiIgImV2YWx1YXRlIGZpbGxlZCB2bGEiCi0r Ci0rCi0rc2V0IGJwX2xpbmVubyBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMS1kZWFsbG9jYXRl ZCJdCi0rbWlfY3JlYXRlX2JyZWFrcG9pbnQgIi10IHZsYS5mOTA6JGJwX2xpbmVubyIgNSAiZGVs IiAidmxhIiAiLip2bGEuZjkwIiBcCi0rICAkYnBfbGluZW5vICRoZXggImluc2VydCBicmVha3Bv aW50IGF0IGxpbmUgJGJwX2xpbmVubyIKLSttaV9ydW5fY21kCi0rbWlfZXhwZWN0X3N0b3AgImJy ZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xpbmVubyIgXAotKyAgeyAi IiAiZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8i Ci0rbWlfZ2RiX3Rlc3QgIjU3MC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAotKyAg IjU3MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFsbG9jYXRlZD5cIiIgImV2YWx1YXRlIG5vdCBhbGxv Y2F0ZWQgdmxhIgotKwotKwotK3NldCBicF9saW5lbm8gW2dkYl9nZXRfbGluZV9udW1iZXIgInB2 bGEyLW5vdC1hc3NvY2lhdGVkIl0KLSttaV9jcmVhdGVfYnJlYWtwb2ludCAiLXQgdmxhLmY5MDok YnBfbGluZW5vIiA2ICJkZWwiICJ2bGEiICIuKnZsYS5mOTAiIFwKLSsgICRicF9saW5lbm8gJGhl eCAiaW5zZXJ0IGJyZWFrcG9pbnQgYXQgbGluZSAkYnBfbGluZW5vIgotK21pX3J1bl9jbWQKLStt aV9leHBlY3Rfc3RvcCAiYnJlYWtwb2ludC1oaXQiICJ2bGEiICIiICIuKnZsYS5mOTAiICIkYnBf bGluZW5vIiBcCi0rICB7ICIiICJkaXNwPVwiZGVsXCIiIH0gInJ1biB0byBicmVha3BvaW50IGF0 IGxpbmUgJGJwX2xpbmVubyIKLSttaV9nZGJfdGVzdCAiNTgwLWRhdGEtZXZhbHVhdGUtZXhwcmVz c2lvbiBwdmxhMiIgXAotKyAgIjU4MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFzc29jaWF0ZWQ+XCIi ICJldmFsdWF0ZSBub3QgYXNzb2NpYXRlZCB2bGEiCi0rCi0rbWlfY3JlYXRlX3Zhcm9ial9jaGVj a2VkIHB2bGEyX25vdF9hc3NvY2lhdGVkIHB2bGEyICI8bm90IGFzc29jaWF0ZWQ+IiBcCi0rICAi Y3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2bGEyX25vdF9hc3NvY2lhdGVkIgotK21pX2dkYl90ZXN0 ICI1ODEtdmFyLWluZm8tdHlwZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIgXAotKyAgIjU4MVxcXmRv bmUsdHlwZT1cIjxub3QgYXNzb2NpYXRlZD5cIiIgXAotKyAgImluZm8gdHlwZSB2YXJpYWJsZSBw dmxhMl9ub3RfYXNzb2NpYXRlZCIKLSttaV9nZGJfdGVzdCAiNTgyLXZhci1zaG93LWZvcm1hdCBw dmxhMl9ub3RfYXNzb2NpYXRlZCIgXAotKyAgIjU4MlxcXmRvbmUsZm9ybWF0PVwibmF0dXJhbFwi IiBcCi0rICAic2hvdyBmb3JtYXQgdmFyaWFibGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCi0rbWlf Z2RiX3Rlc3QgIjU4My12YXItZXZhbHVhdGUtZXhwcmVzc2lvbiBwdmxhMl9ub3RfYXNzb2NpYXRl ZCIgXAotKyAgIjU4M1xcXmRvbmUsdmFsdWU9XCJcXFxbMFxcXF1cIiIgXAotKyAgImV2YWwgdmFy aWFibGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCi0rbWlfbGlzdF9hcnJheV92YXJvYmpfY2hpbGRy ZW5fd2l0aF9pbmRleCAicHZsYTJfbm90X2Fzc29jaWF0ZWQiICIwIiAiMSIgXAotKyAgICAicmVh bFxcXChraW5kPTRcXFwpIiAiZ2V0IGNoaWxkcmVuIG9mIHB2bGEyX25vdF9hc3NvY2lhdGVkIgot KwotKwotK3NldCBicF9saW5lbm8gW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEyLWFzc29jaWF0 ZWQiXQotK21pX2NyZWF0ZV9icmVha3BvaW50ICItdCB2bGEuZjkwOiRicF9saW5lbm8iIDcgImRl bCIgInZsYSIgIi4qdmxhLmY5MCIgXAotKyAgJGJwX2xpbmVubyAkaGV4ICJpbnNlcnQgYnJlYWtw b2ludCBhdCBsaW5lICRicF9saW5lbm8iCi0rbWlfcnVuX2NtZAotK21pX2V4cGVjdF9zdG9wICJi cmVha3BvaW50LWhpdCIgInZsYSIgIiIgIi4qdmxhLmY5MCIgIiRicF9saW5lbm8iIFwKLSsgIHsg IiIgImRpc3A9XCJkZWxcIiIgfSAicnVuIHRvIGJyZWFrcG9pbnQgYXQgbGluZSAkYnBfbGluZW5v IgotK21pX2dkYl90ZXN0ICI1OTAtZGF0YS1ldmFsdWF0ZS1leHByZXNzaW9uIHB2bGEyIiBcCi0r ICAiNTkwXFxeZG9uZSx2YWx1ZT1cIlxcKFxcKCAyLCAyLCAyLCAyLCAyXFwpIFxcKCAyLCAyLCAy LCAyLCAyXFwpIFxcKVwiIiBcCi0rICAiZXZhbHVhdGUgYXNzb2NpYXRlZCB2bGEiCi0rCi0rbWlf Y3JlYXRlX3Zhcm9ial9jaGVja2VkIHB2bGEyX2Fzc29jaWF0ZWQgcHZsYTIgXAotKyAgInJlYWxc XFwoa2luZD00XFxcKSBcXFwoNSwyXFxcKSIgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSBwdmxhMl9h c3NvY2lhdGVkIgotK21pX2dkYl90ZXN0ICI1OTEtdmFyLWluZm8tdHlwZSBwdmxhMl9hc3NvY2lh dGVkIiBcCi0rICAiNTkxXFxeZG9uZSx0eXBlPVwicmVhbFxcXChraW5kPTRcXFwpIFxcXCg1LDJc XFwpXCIiIFwKLSsgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKLSttaV9n ZGJfdGVzdCAiNTkyLXZhci1zaG93LWZvcm1hdCBwdmxhMl9hc3NvY2lhdGVkIiBcCi0rICAiNTky XFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKLSsgICJzaG93IGZvcm1hdCB2YXJpYWJsZSBw dmxhMl9hc3NvY2lhdGVkIgotK21pX2dkYl90ZXN0ICI1OTMtdmFyLWV2YWx1YXRlLWV4cHJlc3Np b24gcHZsYTJfYXNzb2NpYXRlZCIgXAotKyAgIjU5M1xcXmRvbmUsdmFsdWU9XCJcXFxbMlxcXF1c IiIgXAotKyAgImV2YWwgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKLSsKLSsKLStzZXQgYnBf bGluZW5vIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJwdmxhMi1zZXQtdG8tbnVsbCJdCi0rbWlfY3Jl YXRlX2JyZWFrcG9pbnQgIi10IHZsYS5mOTA6JGJwX2xpbmVubyIgOCAiZGVsIiAidmxhIiAiLip2 bGEuZjkwIiBcCi0rICAkYnBfbGluZW5vICRoZXggImluc2VydCBicmVha3BvaW50IGF0IGxpbmUg JGJwX2xpbmVubyIKLSttaV9ydW5fY21kCi0rbWlfZXhwZWN0X3N0b3AgImJyZWFrcG9pbnQtaGl0 IiAidmxhIiAiIiAiLip2bGEuZjkwIiAiJGJwX2xpbmVubyIgXAotKyAgeyAiIiAiZGlzcD1cImRl bFwiIiB9ICJydW4gdG8gYnJlYWtwb2ludCBhdCBsaW5lICRicF9saW5lbm8iCi0rbWlfZ2RiX3Rl c3QgIjYwMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gcHZsYTIiIFwKLSsgICI2MDBcXF5kb25l LHZhbHVlPVwiPG5vdCBhc3NvY2lhdGVkPlwiIiAiZXZhbHVhdGUgdmxhIHBvaW50ZXIgc2V0IHRv IG51bGwiCi0rCi0rbWlfZ2RiX2V4aXQKLStyZXR1cm4gMAotSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2 LjI3MDc0MDMxNyArMDIwMAotQEAgLTAsMCArMSw0MiBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KLSsKLStwcm9ncmFtIHZsYQotKyAgcmVhbCwgYWxsb2NhdGFibGUgOjogdmxhMSAoOikK LSsgIHJlYWwsIHRhcmdldCwgYWxsb2NhdGFibGUgOjogdmxhMig6LCA6KQotKyAgcmVhbCwgcG9p bnRlciA6OiBwdmxhMiAoOiwgOikKLSsgIGxvZ2ljYWwgOjogbAotKwotKyAgYWxsb2NhdGUgKHZs YTEgKDUpKSAgICAgICAgICEgdmxhMS1ub3QtYWxsb2NhdGVkCi0rICBsID0gYWxsb2NhdGVkKHZs YTEpICAgICAgICAgISB2bGExLWFsbG9jYXRlZAotKwotKyAgdmxhMSg6KSA9IDEKLSsgIHZsYTEo MikgPSA0MiAgICAgICAgICAgICAgICAhIHZsYTEtZmlsbGVkCi0rICB2bGExKDQpID0gMjQKLSsK LSsgIGRlYWxsb2NhdGUgKHZsYTEpICAgICAgICAgICAhIHZsYTEtbW9kaWZpZWQKLSsgIGwgPSBh bGxvY2F0ZWQodmxhMSkgICAgICAgICAhIHZsYTEtZGVhbGxvY2F0ZWQKLSsKLSsgIGFsbG9jYXRl ICh2bGEyICg1LCAyKSkKLSsgIHZsYTIoOiwgOikgPSAyCi0rCi0rICBwdmxhMiA9PiB2bGEyICAg ICAgICAgICAgICAgISBwdmxhMi1ub3QtYXNzb2NpYXRlZAotKyAgbCA9IGFzc29jaWF0ZWQocHZs YTIpICAgICAgICEgcHZsYTItYXNzb2NpYXRlZAotKwotKyAgcHZsYTIoMiwgMSkgPSA0MgotKwot KyAgcHZsYTIgPT4gbnVsbCgpCi0rICBsID0gYXNzb2NpYXRlZChwdmxhMikgICAgICAgISBwdmxh Mi1zZXQtdG8tbnVsbAotK2VuZCBwcm9ncmFtIHZsYQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3R5cGVwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5v cmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY4ODcxNzUyMyArMDIwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDUtMjkgMDg6Mjc6 MDYuMjcwNzQwMzE3ICswMjAwCi1AQCAtNDU4LDYgKzQ1OCwxMyBAQCB3aGF0aXNfZXhwIChjaGFy ICpleHAsIGludCBzaG93KQorLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3R5cGVw cmludC5jCTIwMTUtMTAtMjcgMDI6NDg6MzIuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMTEtMDMgMjE6MTM6MzUuOTU5MzM5MTEz ICswMTAwCitAQCAtNDYwLDYgKzQ2MCwxMyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBz aG93KQogIAogICAgdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7CiAgCkBAIC0yNjUwLDE0ICsxMjU1 LDE0IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90eXBlcHJpbnQuYwogICAgZ2V0 X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwogICAgaWYgKG9wdHMub2JqZWN0cHJpbnQpCiAg ICAgIHsKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxhcml0aC5jCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0wNS0yOSAwODoyNzowMi42 ODk3MTc1MzAgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxhcml0aC5jCTIw MTUtMDUtMjkgMDg6Mjc6MDYuMjcxNzQwMzI0ICswMjAwCi1AQCAtMTkzLDEyICsxOTMsMzEgQEAg dmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgorLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMC0yNyAwMjo0ODozMi4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwkyMDE1LTEx LTAzIDIxOjEzOjM4LjYyNTM1MTczNiArMDEwMAorQEAgLTE5Myw5ICsxOTMsMjEgQEAgdmFsdWVf c3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgogICAgc3RydWN0IHR5cGUgKmFycmF5 X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwogICAgc3RydWN0IHR5 cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlw ZSkpOwotICAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gVFlQRV9MRU5HVEggKGVsdF90eXBlKTsK KyAgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7 CiAtICB1bnNpZ25lZCBpbnQgZWx0X29mZnMgPSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50IChp bmRleCAtIGxvd2VyYm91bmQpOwogKyAgdW5zaWduZWQgaW50IGVsdF9vZmZzID0gbG9uZ2VzdF90 b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7CiArICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBF X0JZVEVfU1RSSURFIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUpKTsKQEAgLTI2NzUsMjYg KzEyODAsMTUgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbGFyaXRoLmMKICsg ICAgZWx0X29mZnMgKj0gZWx0X3NpemU7CiArCiAgICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kIHx8 ICghVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKGFycmF5X3R5cGUpCi0gCQkJ ICAgICAmJiBlbHRfb2ZmcyA+PSBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkpKQotLSAgICBlcnJv ciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSsgICAgewotKyAgICAgIGlmIChUWVBF X05PVF9BU1NPQ0lBVEVEIChhcnJheV90eXBlKSkKLSsgICAgICAgIGVycm9yIChfKCJubyBzdWNo IHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFzc29jaWF0ZWQiKSk7Ci0rICAgICAgZWxzZSBp ZiAoVFlQRV9OT1RfQUxMT0NBVEVEIChhcnJheV90eXBlKSkKLSsgICAgICAgIGVycm9yIChfKCJu byBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIpKTsKLSsgICAgICBl bHNlCi0rICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSsgICAg fQotIAotICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9s YXp5IChhcnJheSkpCi0gICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5IChlbHRfdHlwZSk7Ci1J bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuYworIAkJCSAgICAgJiYgZWx0 X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKSkKKyAgICAgeworSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMDUtMjkgMDg6Mjc6MDIu NjkwNzE3NTM2ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuYwky MDE1LTA1LTI5IDA4OjI3OjA2LjI3MTc0MDMyNCArMDIwMAotQEAgLTMwMyw2ICszMDMsMTggQEAg dmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlCi0gewotICAgQ0hFQ0tfVFlQ RURFRiAodHlwZSk7CistLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFscHJpbnQu YwkyMDE1LTEwLTI3IDAyOjQ4OjMyLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi92YWxwcmludC5jCTIwMTUtMTEtMDMgMjE6MTM6MzUuOTU5MzM5MTEzICswMTAw CitAQCAtMzE2LDYgKzMxNiwxOCBAQCB2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3RydWN0IHVp X2ZpbGUKKyAgICAgICByZXR1cm4gMDsKKyAgICAgfQogIAogKyAgaWYgKFRZUEVfTk9UX0FTU09D SUFURUQgKHR5cGUpKQogKyAgICB7CkBAIC0yNzExLDI2ICsxMzA1LDcgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmMKICAgIGlmIChUWVBFX0NPREUgKHR5cGUpICE9 IFRZUEVfQ09ERV9VTklPTgogICAgICAgICYmIFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RF X1NUUlVDVAogICAgICAgICYmIFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKQot QEAgLTM1OSw2ICszNzEsMTggQEAgdmFsX3ByaW50X2ludmFsaWRfYWRkcmVzcyAoc3RydWN0IHVp X2ZpbAotICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBfKCI8aW52YWxpZCBhZGRyZXNzPiIp KTsKLSB9Ci0gCi0rdm9pZAotK3ZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtKQotK3sKLSsgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgXygiPG5vdCBhbGxv Y2F0ZWQ+IikpOwotK30KLSsKLSt2b2lkCi0rdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtKQotK3sKLSsgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgXygi PG5vdCBhc3NvY2lhdGVkPiIpKTsKLSt9Ci0rCi0gLyogQSBnZW5lcmljIHZhbF9wcmludCB0aGF0 IGlzIHN1aXRhYmxlIGZvciB1c2UgYnkgbGFuZ3VhZ2UKLSAgICBpbXBsZW1lbnRhdGlvbnMgb2Yg dGhlIGxhX3ZhbF9wcmludCBtZXRob2QuICBUaGlzIGZ1bmN0aW9uIGNhbgotICAgIGhhbmRsZSBt b3N0IHR5cGUgY29kZXMsIHRob3VnaCBub3QgYWxsLCBub3RhYmx5IGV4Y2VwdGlvbgotQEAgLTgw MiwxMiArODI2LDE2IEBAIHN0YXRpYyBpbnQKK0BAIC0xMDI1LDEyICsxMDM3LDE2IEBAIHN0YXRp YyBpbnQKICB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLAogIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zKQogIHsKQEAgLTI3NDcsMTAgKzEzMjIsMTIgQEAgSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmMKICAgIGlmICh2YWx1ZV9lbnRpcmVseV9vcHRpbWl6 ZWRfb3V0ICh2YWwpKQogICAgICB7CiAgICAgICAgaWYgKG9wdGlvbnMtPnN1bW1hcnkgJiYgIXZh bF9wcmludF9zY2FsYXJfdHlwZV9wICh2YWx1ZV90eXBlICh2YWwpKSkKLUBAIC04MzMsNiArODYx LDE4IEBAIHZhbHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0xMDY2 LDYgKzEwODIsMTggQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3QgdmFsdWUgKnZhbAor ICAgICB7CisgICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7CiAgICAgICAg cmV0dXJuIDA7Ci0gICAgIH0KLSAKKysgICAgfQorKwogKyAgaWYgKFRZUEVfTk9UX0FTU09DSUFU RUQgKHR5cGUpKQogKyAgICB7CiArICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJl YW0pOwpAQCAtMjc2MSwxNSArMTMzOCwxMyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdmFscHJpbnQuYwogKyAgICB7CiArICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0 cmVhbSk7CiArICAgICAgcmV0dXJuIDA7Ci0rICAgIH0KLSsKLSAgIHJldHVybiAxOwotIH0KKyAg ICAgfQogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmgKKyAgIHJl dHVybiAxOworSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWxwcmludC5oCTIwMTUt MDUtMjkgMDg6Mjc6MDIuNjkxNzE3NTQzICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdmFscHJpbnQuaAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3Mjc0MDMzMCArMDIwMAorLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0xMC0yNyAwMjo0ODoz Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQu aAkyMDE1LTExLTAzIDIxOjEzOjM1Ljk1OTMzOTExMyArMDEwMAogQEAgLTIzMiw0ICsyMzIsOCBA QCBleHRlcm4gdm9pZCBwcmludF9jb21tYW5kX3BhcnNlX2Zvcm1hdCAoCiAgCQkJCQlzdHJ1Y3Qg Zm9ybWF0X2RhdGEgKmZtdHApOwogIGV4dGVybiB2b2lkIHByaW50X3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnZhbCwgY29uc3Qgc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKQEAgLTI3NzksMTAgKzEz NTQsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmgKICtleHRl cm4gdm9pZCB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0p OwogKwogICNlbmRpZgotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMKK0lu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY5 MzcxNzU1NSArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMJMjAxNS0w NS0yOSAwODoyNzowNi4yNzM3NDAzMzcgKzAyMDAKKy0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi92YWx1ZS5jCTIwMTUtMTAtMjcgMDI6NDg6MzIuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMJMjAxNS0xMS0wMyAyMToxMzozOC43MzEz NTIyMzggKzAxMDAKIEBAIC00MCw2ICs0MCw3IEBACiAgI2luY2x1ZGUgInRyYWNlcG9pbnQuaCIK ICAjaW5jbHVkZSAiY3AtYWJpLmgiCkBAIC0yNzkxLDcgKzEzNjYsNyBAQCBJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwogIAogIC8qIFByb3RvdHlwZXMgZm9yIGV4cG9ydGVk IGZ1bmN0aW9ucy4gICovCiAgCi1AQCAtMTc3Niw2ICsxNzc3LDI1IEBAIHNldF92YWx1ZV9jb21w b25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWwKK0BAIC0xNzg4LDYgKzE3ODksMjUgQEAgc2V0X3Zh bHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbAogICAgICAgIGlmIChmdW5jcy0+Y29w eV9jbG9zdXJlKQogICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5jb21wdXRlZC5jbG9zdXJl ID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwogICAgICB9CkBAIC0yODE3LDE0ICsxMzky LDE0IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWx1ZS5jCiAgfQogIAogIAwK LUBAIC0zMDgwLDEzICszMTAwLDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZh bHVlICphcmcKK0BAIC0zMDk1LDEzICszMTE1LDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAo c3RydWN0IHZhbHVlICphcmcKICAJdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwogICAg ICAgIGVsc2UKICAJewogLQkgIHYgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7CiAtCSAgdmFsdWVf Y29udGVudHNfY29weV9yYXcgKHYsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAodiksCiAtCQkJCSAg IGFyZzEsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZzZXQsCi0tCQkJCSAgIFRZ UEVfTEVOR1RIICh0eXBlKSk7CistCQkJCSAgIHR5cGVfbGVuZ3RoX3VuaXRzICh0eXBlKSk7CiAr CSAgaWYgKFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkKICsJICAgICAgJiYgVFlQRV9EQVRBX0xP Q0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCiArCSAgICB2ID0gdmFsdWVfYXRfbGF6 eSAodHlwZSwgdmFsdWVfYWRkcmVzcyAoYXJnMSkgKyBvZmZzZXQpOwpAQCAtMjgzMyw3ICsxNDA4 LDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMKICsJICAgICAgdiA9 IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKICsJICAgICAgdmFsdWVfY29udGVudHNfY29weV9yYXcg KHYsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAodiksCiArCQkJCSAgICAgICBhcmcxLCB2YWx1ZV9l bWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0LAotKwkJCQkgICAgICAgVFlQRV9MRU5HVEgg KHR5cGUpKTsKKysJCQkJICAgICAgIHR5cGVfbGVuZ3RoX3VuaXRzICh0eXBlKSk7CiArCSAgICB9 CiAgCX0KIC0gICAgICB2LT5vZmZzZXQgPSAodmFsdWVfb2Zmc2V0IChhcmcxKSArIG9mZnNldApA QCAtMjg0Niw3ICsxNDIxLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVl LmMKICAgICAgfQogICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgYXJnMSk7CiAg ICBWQUxVRV9SRUdOVU0gKHYpID0gVkFMVUVfUkVHTlVNIChhcmcxKTsKLUBAIC0zNjc0LDcgKzM3 MDMsOCBAQCByZWFkanVzdF9pbmRpcmVjdF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsCitAQCAtMzY4 OSw3ICszNzE4LDggQEAgcmVhZGp1c3RfaW5kaXJlY3RfdmFsdWVfdHlwZSAoc3RydWN0IHZhbAog IAkJCSAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUpCiAgewogICAgLyogUmUtYWRq dXN0IHR5cGUuICAqLwpAQCAtMjg1Niw3ICsxNDMxLDcgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3ZhbHVlLmMKICAKICAgIC8qIEFkZCBlbWJlZGRpbmcgaW5mby4gICovCiAgICBz ZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHZhbHVlLCBlbmNfdHlwZSk7Ci1AQCAtMzY5MSw2ICsz NzIxLDEyIEBAIGNvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqYXJnKQorQEAgLTM3MDYsNiArMzcz NiwxMiBAQCBjb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKmFyZykKICAgIHN0cnVjdCB2YWx1ZSAq cmV0dmFsOwogICAgc3RydWN0IHR5cGUgKmVuY190eXBlOwogIApAQCAtMjg2OSw3ICsxNDQ0LDcg QEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMKICAgIHJldHZhbCA9IGNv ZXJjZV9yZWZfaWZfY29tcHV0ZWQgKGFyZyk7CiAgICBpZiAocmV0dmFsKQogICAgICByZXR1cm4g cmV0dmFsOwotQEAgLTM4MjUsOCArMzg2MSwxNCBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3Qg dmFsdWUgKnZhbCkKK0BAIC0zODM0LDggKzM4NzAsMTQgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3Ry dWN0IHZhbHVlICp2YWwpCiAgICAgIH0KICAgIGVsc2UgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0g bHZhbF9tZW1vcnkpCiAgICAgIHsKQEAgLTI4ODUsMTEgKzE0NjAsMTEgQEAgSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmMKICAKICAgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5 cGUpKQogIAlyZWFkX3ZhbHVlX21lbW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKLUlu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJsb2MuYworSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNS0wNS0yOSAwODoyNzowMi42OTQ3MTc1 NjIgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTA1 LTI5IDA4OjI3OjA2LjI3NDc0MDM0MyArMDIwMAotQEAgLTIyOTQsNiArMjI5NCwxMSBAQCBkd2Fy ZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CistLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNS0xMC0yNyAwMjo0ODozMS4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMJMjAxNS0xMS0w MyAyMToxMzozNS45NTkzMzkxMTMgKzAxMDAKK0BAIC0yMzQ3LDYgKzIzNDcsMTEgQEAgZHdhcmYy X2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkgICAgaW50IGluX3N0YWNrX21l bW9yeSA9IGR3YXJmX2V4cHJfZmV0Y2hfaW5fc3RhY2tfbWVtb3J5IChjdHgsIDApOwogIAogIAkg ICAgZG9fY2xlYW51cHMgKHZhbHVlX2NoYWluKTsKQEAgLTI5MDEsNyArMTQ3Niw3IEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJsb2MuYwogIAkgICAgcmV0dmFsID0gdmFs dWVfYXRfbGF6eSAodHlwZSwgYWRkcmVzcyArIGJ5dGVfb2Zmc2V0KTsKICAJICAgIGlmIChpbl9z dGFja19tZW1vcnkpCiAgCSAgICAgIHNldF92YWx1ZV9zdGFjayAocmV0dmFsLCAxKTsKLUBAIC0y NTc3LDYgKzI1ODIsMTkgQEAgZHdhcmYyX2NvbXBpbGVfcHJvcGVydHlfdG9fYyAoc3RydWN0IHVp XworQEAgLTI2MzksNiArMjY0NCwxOSBAQCBkd2FyZjJfY29tcGlsZV9wcm9wZXJ0eV90b19jIChz dHJ1Y3QgdWlfCiAgCQkJICAgICBkYXRhLCBkYXRhICsgc2l6ZSwgcGVyX2N1KTsKICB9CiAgCgpk aWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBlY2RiM2ZjLi5lMDdiMjg2IDEw MDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTksMTUgKzE5LDE1IEBAIFN1 bW1hcnk6IEEgR05VIHNvdXJjZS1sZXZlbCBkZWJ1Z2dlciBmb3IgQywgQysrLCBGb3J0cmFuLCBH byBhbmQgb3RoZXIgbGFuZ3VhZ2VzCiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6 ZSBpdCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxNTA3MDYK KyVnbG9iYWwgc25hcHNyYyAgICAyMDE1MTAyNwogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBn bnVsaWIgaW5zdGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgotJWdsb2JhbCBzbmFwZ251bGliIDIw MTIxMjEzCislZ2xvYmFsIHNuYXBnbnVsaWIgMjAxNTA4MjIKICVnbG9iYWwgdGFybmFtZSBnZGIt JXt2ZXJzaW9ufQotVmVyc2lvbjogNy4xMAorVmVyc2lvbjogNy4xMC41MC4le3NuYXBzcmN9CiAK ICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIs IHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8g c3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgot UmVsZWFzZTogMjklez9kaXN0fQorUmVsZWFzZTogMzAlez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2 MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGgg ZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWlu IGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0yNDUsNyArMjQ1LDcg QEAgUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0aHJlYWQtdGVzdC5wYXRj aAogCiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3QgdGhlIHNvdXJjZSB0YXJiYWxsLgogI1hkcm9w OiBKdXN0IGJhY2twb3J0cy4KLSNQYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCitQYXRjaDIz MjogZ2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dlcjYvREZQIGlu c3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVkb3JhdGVzdCtwcGMKQEAg LTU0MiwxOSArNTQyLDE0IEBAIFBhdGNoOTI3OiBnZGItcHl0aG9uLWdpbC5wYXRjaAogIyBGaXgg aml0LXJlYWRlci5oIGZvciBtdWx0aS1saWIuCiBQYXRjaDk3ODogZ2RiLWppdC1yZWFkZXItbXVs dGlsaWIucGF0Y2gKIAotIyBGaXggJ01ha2UgdGhlIHByb2Jlcy1iYXNlZCBkeW5hbWljIGxpbmtl ciBpbnRlcmZhY2UgbW9yZSByb2J1c3QgdG8KLSMgZXJyb3JzJyAoU2VyZ2lvIER1cmlnYW4gSnVu aW9yLCBSSCBCWiAxMjU5MTMyKS4KLVBhdGNoMTAyOTogZ2RiLXByb2Jlcy1iYXNlZC1pbnRlcmZh Y2Utcm9idXN0LTFvZjIucGF0Y2gKLVBhdGNoMTAzMDogZ2RiLXByb2Jlcy1iYXNlZC1pbnRlcmZh Y2Utcm9idXN0LTJvZjIucGF0Y2gKLQotIyBbcHBjNjRsZV0gVXNlIHNraXBfZW50cnlwb2ludCBm b3Igc2tpcF90cmFtcG9saW5lX2NvZGUgKFJIIEJaIDEyNjA1NTgpLgotUGF0Y2gxMDMxOiBnZGIt cmhiejEyNjA1NTgtcHBjNjRsZS1za2lwX3RyYW1wb2xpbmVfY29kZS5wYXRjaAotCiAjIEZpeCB0 aGUgcGFob2xlIGNvbW1hbmQgYnJlYWthZ2UgZHVlIHRvIGl0cyBQeXRob24zIHBvcnQgKFJIIEJa IDEyNjQ1MzIpLgogUGF0Y2gxMDQ0OiBnZGItcGFob2xlLXB5dGhvbjIucGF0Y2gKIAotIyBGaXgg aW50ZXJuYWwgZXJyb3Igb24gRFdfT1BfYnJlZ3goLTEpIChSSCBCWiAxMjcwNTY0KS4KLVBhdGNo MTA1MjogZ2RiLXJoYnoxMjcwNTY0LWludmFsaWQtZHdhcmYtcmVnbm8ucGF0Y2gKKyMgRml4IGNh bGxmcmFtZWNmYS5leHAgYW5kIHR5cGVkZHdhcmYuZXhwIHJlYmFzZSByZWdyZXNzaW9uLgorUGF0 Y2gxMDU0OiBnZGItbm9uc3RvcC1zY3JhdGNocGFkLnBhdGNoCisKKyMgdGVzdHN1aXRlOiBGb3J0 cmFuOiBhbGxvY2F0ZSgpZCBtZW1vcnkgaXMgdW5pbml0aWFsaXplZC4KK1BhdGNoMTA1NjogZ2Ri LWZvcnRyYW4tYWxsb2NhdGUtbm90LWluaXRlZC5wYXRjaAogCiAlaWYgMCV7IT9yaGVsOjF9IHx8 IDAlez9yaGVsfSA+IDYKICMgUkxfU1RBVEVfRkVET1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQg Zm9yOgpAQCAtNzQ3LDcgKzc0Miw3IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1m CiAjIE1hdGNoIHRoZSBGZWRvcmEncyB2ZXJzaW9uIGluZm8uCiAlcGF0Y2gyIC1wMQogCi0jcGF0 Y2gyMzIgLXAxCislcGF0Y2gyMzIgLXAxCiAlcGF0Y2gzNDkgLXAxCiAlcGF0Y2g4ODggLXAxCiAl cGF0Y2g5ODMgLXAxCkBAIC04NTEsMTAgKzg0Niw4IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhh cmdzIHJtIC1mCiAlcGF0Y2g5MjUgLXAxCiAlcGF0Y2g5MjcgLXAxCiAlcGF0Y2g5NzggLXAxCi0l cGF0Y2gxMDI5IC1wMQotJXBhdGNoMTAzMCAtcDEKLSVwYXRjaDEwMzEgLXAxCi0lcGF0Y2gxMDUy IC1wMQorJXBhdGNoMTA1NCAtcDEKKyVwYXRjaDEwNTYgLXAxCiAKICVwYXRjaDg0OCAtcDEKICVp ZiAwJXshP2VsNjoxfQpAQCAtMTM3MCw2ICsxMzYzLDkgQEAgdGhlbgogZmkKIAogJWNoYW5nZWxv ZworKiBUdWUgTm92ICAzIDIwMTUgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+IC0gNy4xMC41MC4yMDE1MTAyNy0zMC5mYzI0CistIFJlYmFzZSB0byBGU0YgR0RCIDcu MTAuNTAuMjAxNTEwMjcgKHRydW5rIHNuYXBzaG90KS4KKwogKiBNb24gT2N0IDEyIDIwMTUgSmFu IEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMC0yOS5mYzIzCiAt IEZpeCBpbnRlcm5hbCBlcnJvciBvbiBEV19PUF9icmVneCgtMSkgKFJIIEJaIDEyNzA1NjQpLgog CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggODkxODhmYi4uYmY3YWEwMiAx MDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEsMiBAQAogN2FkMzJk Mzg5NGFhZjkwZDAwYTQzNDNhNzM1YzNlMWMgIGdkYi1saWJzdGRjKystdjMtcHl0aG9uLXIyMjU1 MjEudGFyLnh6Ci0yYTM1YmFjNDFmYThlMTBiZjA0ZjNhMGRkN2Y3ZjM2MyAgZ2RiLTcuMTAudGFy Lnh6CiswODgxOWZiM2UyMzFiYmQ5ODY2OTViYjRlZGNkMjcxZCAgZ2RiLTcuMTAuNTAuMjAxNTEw MjcudGFyLnh6Cg==