[PATCH] maint: fix 'make syntax-check' errors
Eric Blake via M4-patches <[email protected]> Thu, 3 Apr 2025 19:56:11 -0500
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <[email protected]> |
KiBjZmcgKGluZGVudF9hcmdzKTogSW5mb3JtIGluZGVudCBvZiBvdXIgbm8tVEFCIHBvbGljeS4K KiBzcmMvKjogUnVuICdtYWtlIGluZGVudCcuCiogc3JjL2J1aWx0aW4uYyAoZGVmaW5lX3VzZXJf bWFjcm8pOiBUb3VjaCB1cCBvZGQgc3BsaXQgaW4gXygpCmJ5IHJlZHVjaW5nIGEgbGF5ZXIgb2Yg aW5kZW50YXRpb24uCiogc3JjL3N5bXRhYi5jIChzdHJ1Y3QgcHJvZmlsZSk6IFJlZm9ybWF0IGNv bW1lbnQgdG8gYXZvaWQKbG9uZyBsaW5lIGZyb20gaW5kZW50LgoqIHNyYy9pbnB1dC5jIChuZXh0 X2NoYXJfMSk6IExpa2V3aXNlLgoqIHNyYy9tNC5jIChsb25nX29wdGlvbnMpOiBMaWtld2lzZS4K KGluY2x1ZGVzKTogUHJlZmVyIDxlcnJvci5oPiBvdmVyICJlcnJvci5oIi4KKiBzcmMvbTQuaDog TGlrZXdpc2UgZm9yIDxhc3NlcnQuaD4uCihtNF9lcnJvciwgbTRfcGxhY2Vob2xkZXIpOiBXb3Jr IGFyb3VuZCBpbmRlbnQncyBpbmFiaWxpdHkgdG8KZ3JvayBBVFRSSUJVVEVfQ09MRC4KKiBNYWtl ZmlsZS5hbSAoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyk6IFJlbmFtZSB0bwpBTV9ESVNUQ0hF Q0tfQ09ORklHVVJFX0ZMQUdTLgotLS0KClB1c2hpbmcgdGhpcyBvbmUsIHRoZW4gcmViYXNpbmcg dGhlIGV2YWwgcGF0Y2hlcyBvbiB0b3AuICBJdCBhbHNvCnJlc3VsdGVkIGluIGEgYnVnLXJlcG9y dCBhZ2FpbnN0IEdOVSBpbmRlbnQ6CgpodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s L2J1Zy1pbmRlbnQvMjAyNS0wNC9tc2cwMDAwMC5odG1sCgogTWFrZWZpbGUuYW0gICB8ICAgMiAr LQogY2ZnLm1rICAgICAgICB8ICAgMSArCiBzcmMvYnVpbHRpbi5jIHwgMjI4ICsrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvZGVidWcuYyAgIHwg IDE1ICsrLS0KIHNyYy9ldmFsLmMgICAgfCAgOTIgKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9m b3JtYXQuYyAgfCAgNTggKysrKysrLS0tLS0tLQogc3JjL2ZyZWV6ZS5jICB8ICAgNSArLQogc3Jj L2lucHV0LmMgICB8ICA4NiArKysrKysrKystLS0tLS0tLS0tCiBzcmMvbTQuYyAgICAgIHwgIDUy ICsrKysrKy0tLS0tLQogc3JjL200LmggICAgICB8ICA4MiArKysrKysrKysrLS0tLS0tLS0KIHNy Yy9tYWNyby5jICAgfCAgMTQgKystLQogc3JjL291dHB1dC5jICB8ICA3NyArKysrKysrKysrKy0t LS0tLQogc3JjL3BhdGguYyAgICB8ICAxMCArLS0KIHNyYy9zeW10YWIuYyAgfCAgMzcgKysrKy0t LS0KIDE0IGZpbGVzIGNoYW5nZWQsIDQwNiBpbnNlcnRpb25zKCspLCAzNTMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQppbmRleCAzZTI3ZTY3ZC4u OGQ3NmIyOWQgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0z NSw3ICszNSw3IEBAIE1BSU5UQUlORVJDTEVBTkZJTEVTID0gSU5TVEFMTCBNYWtlZmlsZS5pbiBh Y2xvY2FsLm00IFwKIEFDTE9DQUxfQU1GTEFHUyA9IC1JIG00CiAjIyBFbm91Z2ggdXNlcnMgaW5z dGFsbCBHTlUgTTQgYXMgZ200IHRoYXQgd2UgbWFrZSBzdXJlICdtYWtlIGluc3RhbGxjaGVjaycK ICMjIHdpbGwgaGFuZGxlIHRoYXQsIHByaW9yIHRvIG1ha2luZyBhIHJlbGVhc2UuCi1ESVNUQ0hF Q0tfQ09ORklHVVJFX0ZMQUdTID0gLS1lbmFibGUtY2hhbmdld29yZCAtLXByb2dyYW0tcHJlZml4 PWcgXAorQU1fRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyA9IC0tZW5hYmxlLWNoYW5nZXdvcmQg LS1wcm9ncmFtLXByZWZpeD1nIFwKIAktLWVuYWJsZS1nY2Mtd2FybmluZ3MgLS1lbmFibGUtc2ls ZW50LXJ1bGVzIC0tZW5hYmxlLWN4eAoKICMgR2VuZXJhdGUgdGhlIENoYW5nZUxvZyBmcm9tIGdp dCBoaXN0b3J5LgpkaWZmIC0tZ2l0IGEvY2ZnLm1rIGIvY2ZnLm1rCmluZGV4IGYwNGY1N2JhLi42 Y2RmYzNlOSAxMDA2NDQKLS0tIGEvY2ZnLm1rCisrKyBiL2NmZy5tawpAQCAtNDQsNiArNDQsNyBA QCBzY19wcm9oaWJpdF90YWJfYmFzZWRfaW5kZW50YXRpb246CiAgQHJlPSdeICogICAgJyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIG1zZz0nVEFCIGlu IGluZGVudGF0aW9uOyB1c2Ugb25seSBzcGFjZXMnICAgICAgICAgICAgICAgICAgIFwKICAgICQo X3Byb2hpYml0X3JlZ2V4cCkKK2luZGVudF9hcmdzID0gLS1pZ25vcmUtcHJvZmlsZSAtLXByZXBy b2Nlc3Nvci1pbmRlbnRhdGlvbiAxIC0tbm8tdGFicwoKICMgTGlzdCBhbGwgc3ludGF4LWNoZWNr IGV4ZW1wdGlvbnM6CiBleGNsdWRlX2ZpbGVfbmFtZV9yZWdleHAtLXNjX3Byb2hpYml0X3RhYl9i YXNlZF9pbmRlbnRhdGlvbiA9IFwKZGlmZiAtLWdpdCBhL3NyYy9idWlsdGluLmMgYi9zcmMvYnVp bHRpbi5jCmluZGV4IGVmZDUxZDllLi4yZDRlNDAyZSAxMDA2NDQKLS0tIGEvc3JjL2J1aWx0aW4u YworKysgYi9zcmMvYnVpbHRpbi5jCkBAIC05MCw5MSArOTAsODkgQEAgREVDTEFSRSAobTRfdW5k aXZlcnQpOwoKICN1bmRlZiBERUNMQVJFCgotc3RhdGljIGJ1aWx0aW4gY29uc3QgYnVpbHRpbl90 YWJbXSA9Ci17CitzdGF0aWMgYnVpbHRpbiBjb25zdCBidWlsdGluX3RhYltdID0gewoKICAgLyog bmFtZSAgICAgICAgICAgICAgIEdOVWV4dCAgbWFjcm9zICBibGluZCAgIGZ1bmN0aW9uICovCgot ICB7ICJfX2ZpbGVfXyIsICAgICAgICAgdHJ1ZSwgICBmYWxzZSwgIGZhbHNlLCAgbTRfX19maWxl X18gfSwKLSAgeyAiX19saW5lX18iLCAgICAgICAgIHRydWUsICAgZmFsc2UsICBmYWxzZSwgIG00 X19fbGluZV9fIH0sCi0gIHsgIl9fcHJvZ3JhbV9fIiwgICAgICB0cnVlLCAgIGZhbHNlLCAgZmFs c2UsICBtNF9fX3Byb2dyYW1fXyB9LAotICB7ICJidWlsdGluIiwgICAgICAgICAgdHJ1ZSwgICB0 cnVlLCAgIHRydWUsICAgbTRfYnVpbHRpbiB9LAotICB7ICJjaGFuZ2Vjb20iLCAgICAgICAgZmFs c2UsICBmYWxzZSwgIGZhbHNlLCAgbTRfY2hhbmdlY29tIH0sCi0gIHsgImNoYW5nZXF1b3RlIiwg ICAgICBmYWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF9jaGFuZ2VxdW90ZSB9LAorICB7Il9fZmls ZV9fIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBtNF9fX2ZpbGVfX30sCisgIHsiX19saW5lX18iLCB0 cnVlLCBmYWxzZSwgZmFsc2UsIG00X19fbGluZV9ffSwKKyAgeyJfX3Byb2dyYW1fXyIsIHRydWUs IGZhbHNlLCBmYWxzZSwgbTRfX19wcm9ncmFtX199LAorICB7ImJ1aWx0aW4iLCB0cnVlLCB0cnVl LCB0cnVlLCBtNF9idWlsdGlufSwKKyAgeyJjaGFuZ2Vjb20iLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBtNF9jaGFuZ2Vjb219LAorICB7ImNoYW5nZXF1b3RlIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg bTRfY2hhbmdlcXVvdGV9LAogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECi0gIHsgImNoYW5nZXdv cmQiLCAgICAgICB0cnVlLCAgIGZhbHNlLCAgdHJ1ZSwgICBtNF9jaGFuZ2V3b3JkIH0sCisgIHsi Y2hhbmdld29yZCIsIHRydWUsIGZhbHNlLCB0cnVlLCBtNF9jaGFuZ2V3b3JkfSwKICNlbmRpZgot ICB7ICJkZWJ1Z21vZGUiLCAgICAgICAgdHJ1ZSwgICBmYWxzZSwgIGZhbHNlLCAgbTRfZGVidWdt b2RlIH0sCi0gIHsgImRlYnVnZmlsZSIsICAgICAgICB0cnVlLCAgIGZhbHNlLCAgZmFsc2UsICBt NF9kZWJ1Z2ZpbGUgfSwKLSAgeyAiZGVjciIsICAgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0 cnVlLCAgIG00X2RlY3IgfSwKLSAgeyAiZGVmaW5lIiwgICAgICAgICAgIGZhbHNlLCAgdHJ1ZSwg ICB0cnVlLCAgIG00X2RlZmluZSB9LAotICB7ICJkZWZuIiwgICAgICAgICAgICAgZmFsc2UsICBm YWxzZSwgIHRydWUsICAgbTRfZGVmbiB9LAotICB7ICJkaXZlcnQiLCAgICAgICAgICAgZmFsc2Us ICBmYWxzZSwgIGZhbHNlLCAgbTRfZGl2ZXJ0IH0sCi0gIHsgImRpdm51bSIsICAgICAgICAgICBm YWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF9kaXZudW0gfSwKLSAgeyAiZG5sIiwgICAgICAgICAg ICAgIGZhbHNlLCAgZmFsc2UsICBmYWxzZSwgIG00X2RubCB9LAotICB7ICJkdW1wZGVmIiwgICAg ICAgICAgZmFsc2UsICBmYWxzZSwgIGZhbHNlLCAgbTRfZHVtcGRlZiB9LAotICB7ICJlcnJwcmlu dCIsICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfZXJycHJpbnQgfSwKLSAgeyAi ZXN5c2NtZCIsICAgICAgICAgIHRydWUsICAgZmFsc2UsICB0cnVlLCAgIG00X2VzeXNjbWQgfSwK LSAgeyAiZXZhbCIsICAgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0cnVlLCAgIG00X2V2YWwg fSwKLSAgeyAiZm9ybWF0IiwgICAgICAgICAgIHRydWUsICAgZmFsc2UsICB0cnVlLCAgIG00X2Zv cm1hdCB9LAotICB7ICJpZmRlZiIsICAgICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAg bTRfaWZkZWYgfSwKLSAgeyAiaWZlbHNlIiwgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0cnVl LCAgIG00X2lmZWxzZSB9LAotICB7ICJpbmNsdWRlIiwgICAgICAgICAgZmFsc2UsICBmYWxzZSwg IHRydWUsICAgbTRfaW5jbHVkZSB9LAotICB7ICJpbmNyIiwgICAgICAgICAgICAgZmFsc2UsICBm YWxzZSwgIHRydWUsICAgbTRfaW5jciB9LAotICB7ICJpbmRleCIsICAgICAgICAgICAgZmFsc2Us ICBmYWxzZSwgIHRydWUsICAgbTRfaW5kZXggfSwKLSAgeyAiaW5kaXIiLCAgICAgICAgICAgIHRy dWUsICAgdHJ1ZSwgICB0cnVlLCAgIG00X2luZGlyIH0sCi0gIHsgImxlbiIsICAgICAgICAgICAg ICBmYWxzZSwgIGZhbHNlLCAgdHJ1ZSwgICBtNF9sZW4gfSwKLSAgeyAibTRleGl0IiwgICAgICAg ICAgIGZhbHNlLCAgZmFsc2UsICBmYWxzZSwgIG00X200ZXhpdCB9LAotICB7ICJtNHdyYXAiLCAg ICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfbTR3cmFwIH0sCi0gIHsgIm1ha2V0 ZW1wIiwgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgdHJ1ZSwgICBtNF9tYWtldGVtcCB9LAotICB7 ICJta3N0ZW1wIiwgICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfbWtzdGVtcCB9 LAotICB7ICJwYXRzdWJzdCIsICAgICAgICAgdHJ1ZSwgICBmYWxzZSwgIHRydWUsICAgbTRfcGF0 c3Vic3QgfSwKLSAgeyAicG9wZGVmIiwgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0cnVlLCAg IG00X3BvcGRlZiB9LAotICB7ICJwdXNoZGVmIiwgICAgICAgICAgZmFsc2UsICB0cnVlLCAgIHRy dWUsICAgbTRfcHVzaGRlZiB9LAotICB7ICJyZWdleHAiLCAgICAgICAgICAgdHJ1ZSwgICBmYWxz ZSwgIHRydWUsICAgbTRfcmVnZXhwIH0sCi0gIHsgInNoaWZ0IiwgICAgICAgICAgICBmYWxzZSwg IGZhbHNlLCAgdHJ1ZSwgICBtNF9zaGlmdCB9LAotICB7ICJzaW5jbHVkZSIsICAgICAgICAgZmFs c2UsICBmYWxzZSwgIHRydWUsICAgbTRfc2luY2x1ZGUgfSwKLSAgeyAic3Vic3RyIiwgICAgICAg ICAgIGZhbHNlLCAgZmFsc2UsICB0cnVlLCAgIG00X3N1YnN0ciB9LAotICB7ICJzeXNjbWQiLCAg ICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfc3lzY21kIH0sCi0gIHsgInN5c3Zh bCIsICAgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF9zeXN2YWwgfSwKLSAgeyAi dHJhY2VvZmYiLCAgICAgICAgIGZhbHNlLCAgZmFsc2UsICBmYWxzZSwgIG00X3RyYWNlb2ZmIH0s Ci0gIHsgInRyYWNlb24iLCAgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF90cmFj ZW9uIH0sCi0gIHsgInRyYW5zbGl0IiwgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgdHJ1ZSwgICBt NF90cmFuc2xpdCB9LAotICB7ICJ1bmRlZmluZSIsICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRy dWUsICAgbTRfdW5kZWZpbmUgfSwKLSAgeyAidW5kaXZlcnQiLCAgICAgICAgIGZhbHNlLCAgZmFs c2UsICBmYWxzZSwgIG00X3VuZGl2ZXJ0IH0sCisgIHsiZGVidWdtb2RlIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlLCBtNF9kZWJ1Z21vZGV9LAorICB7ImRlYnVnZmlsZSIsIHRydWUsIGZhbHNlLCBmYWxz ZSwgbTRfZGVidWdmaWxlfSwKKyAgeyJkZWNyIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9kZWNy fSwKKyAgeyJkZWZpbmUiLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgbTRfZGVmaW5lfSwKKyAgeyJkZWZu IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9kZWZufSwKKyAgeyJkaXZlcnQiLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBtNF9kaXZlcnR9LAorICB7ImRpdm51bSIsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IG00X2Rpdm51bX0sCisgIHsiZG5sIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgbTRfZG5sfSwKKyAg eyJkdW1wZGVmIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgbTRfZHVtcGRlZn0sCisgIHsiZXJycHJp bnQiLCBmYWxzZSwgZmFsc2UsIHRydWUsIG00X2VycnByaW50fSwKKyAgeyJlc3lzY21kIiwgdHJ1 ZSwgZmFsc2UsIHRydWUsIG00X2VzeXNjbWR9LAorICB7ImV2YWwiLCBmYWxzZSwgZmFsc2UsIHRy dWUsIG00X2V2YWx9LAorICB7ImZvcm1hdCIsIHRydWUsIGZhbHNlLCB0cnVlLCBtNF9mb3JtYXR9 LAorICB7ImlmZGVmIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9pZmRlZn0sCisgIHsiaWZlbHNl IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9pZmVsc2V9LAorICB7ImluY2x1ZGUiLCBmYWxzZSwg ZmFsc2UsIHRydWUsIG00X2luY2x1ZGV9LAorICB7ImluY3IiLCBmYWxzZSwgZmFsc2UsIHRydWUs IG00X2luY3J9LAorICB7ImluZGV4IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9pbmRleH0sCisg IHsiaW5kaXIiLCB0cnVlLCB0cnVlLCB0cnVlLCBtNF9pbmRpcn0sCisgIHsibGVuIiwgZmFsc2Us IGZhbHNlLCB0cnVlLCBtNF9sZW59LAorICB7Im00ZXhpdCIsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IG00X200ZXhpdH0sCisgIHsibTR3cmFwIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9tNHdyYXB9 LAorICB7Im1ha2V0ZW1wIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9tYWtldGVtcH0sCisgIHsi bWtzdGVtcCIsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgbTRfbWtzdGVtcH0sCisgIHsicGF0c3Vic3Qi LCB0cnVlLCBmYWxzZSwgdHJ1ZSwgbTRfcGF0c3Vic3R9LAorICB7InBvcGRlZiIsIGZhbHNlLCBm YWxzZSwgdHJ1ZSwgbTRfcG9wZGVmfSwKKyAgeyJwdXNoZGVmIiwgZmFsc2UsIHRydWUsIHRydWUs IG00X3B1c2hkZWZ9LAorICB7InJlZ2V4cCIsIHRydWUsIGZhbHNlLCB0cnVlLCBtNF9yZWdleHB9 LAorICB7InNoaWZ0IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9zaGlmdH0sCisgIHsic2luY2x1 ZGUiLCBmYWxzZSwgZmFsc2UsIHRydWUsIG00X3NpbmNsdWRlfSwKKyAgeyJzdWJzdHIiLCBmYWxz ZSwgZmFsc2UsIHRydWUsIG00X3N1YnN0cn0sCisgIHsic3lzY21kIiwgZmFsc2UsIGZhbHNlLCB0 cnVlLCBtNF9zeXNjbWR9LAorICB7InN5c3ZhbCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIG00X3N5 c3ZhbH0sCisgIHsidHJhY2VvZmYiLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBtNF90cmFjZW9mZn0s CisgIHsidHJhY2VvbiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIG00X3RyYWNlb259LAorICB7InRy YW5zbGl0IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF90cmFuc2xpdH0sCisgIHsidW5kZWZpbmUi LCBmYWxzZSwgZmFsc2UsIHRydWUsIG00X3VuZGVmaW5lfSwKKyAgeyJ1bmRpdmVydCIsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIG00X3VuZGl2ZXJ0fSwKCi0gIHsgMCwgICAgICAgICAgICAgICAgICBm YWxzZSwgIGZhbHNlLCAgZmFsc2UsICAwIH0sCisgIHswLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAw fSwKCiAgIC8qIHBsYWNlaG9sZGVyIGlzIGludGVudGlvbmFsbHkgc3R1Y2sgYWZ0ZXIgdGhlIHRh YmxlIGVuZCBkZWxpbWl0ZXIsCiAgICAgIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBmaW5kIGl0LCB3 aGlsZSBub3QgdHJlYXRpbmcgaXQgYXMgYSByZWFsCiAgICAgIGJ1aWx0aW4uICAqLwotICB7ICJw bGFjZWhvbGRlciIsICAgICAgdHJ1ZSwgICBmYWxzZSwgIGZhbHNlLCAgbTRfcGxhY2Vob2xkZXIg fSwKKyAgeyJwbGFjZWhvbGRlciIsIHRydWUsIGZhbHNlLCBmYWxzZSwgbTRfcGxhY2Vob2xkZXJ9 LAogfTsKCi1zdGF0aWMgcHJlZGVmaW5lZCBjb25zdCBwcmVkZWZpbmVkX3RhYltdID0KLXsKK3N0 YXRpYyBwcmVkZWZpbmVkIGNvbnN0IHByZWRlZmluZWRfdGFiW10gPSB7CiAjaWYgVU5JWAotICB7 ICJ1bml4IiwgICAgICJfX3VuaXhfXyIsICAgICAiIiB9LAorICB7InVuaXgiLCAiX191bml4X18i LCAiIn0sCiAjZW5kaWYKICNpZiBXMzJfTkFUSVZFCi0gIHsgIndpbmRvd3MiLCAgIl9fd2luZG93 c19fIiwgICIiIH0sCisgIHsid2luZG93cyIsICJfX3dpbmRvd3NfXyIsICIifSwKICNlbmRpZgog I2lmIE9TMgotICB7ICJvczIiLCAgICAgICJfX29zMl9fIiwgICAgICAiIiB9LAorICB7Im9zMiIs ICJfX29zMl9fIiwgIiJ9LAogI2VuZGlmCiAjaWYgIVVOSVggJiYgIVczMl9OQVRJVkUgJiYgIU9T MgogIyB3YXJuaW5nIFBsYXRmb3JtIG1hY3JvIG5vdCBwcm92aWRlZAogI2VuZGlmCi0gIHsgTlVM TCwgICAgICAgIl9fZ251X18iLCAgICAgICIiIH0sCisgIHtOVUxMLCAiX19nbnVfXyIsICIifSwK Ci0gIHsgTlVMTCwgICAgICAgTlVMTCwgICAgICAgICAgIE5VTEwgfSwKKyAge05VTEwsIE5VTEws IE5VTEx9LAogfTsKIAwKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS4KIHwgRmluZCB0aGUgYnVpbHRpbiwgd2hpY2ggbGl2ZXMgb24gQUREUi4gIHwKIGAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi1jb25zdCBidWlsdGluICogQVRU UklCVVRFX1BVUkUKK2NvbnN0IGJ1aWx0aW4gKkFUVFJJQlVURV9QVVJFCiBmaW5kX2J1aWx0aW5f YnlfYWRkciAoYnVpbHRpbl9mdW5jICpmdW5jKQogewogICBjb25zdCBidWlsdGluICpicDsKQEAg LTE5Miw3ICsxOTAsNyBAQCBmaW5kX2J1aWx0aW5fYnlfYWRkciAoYnVpbHRpbl9mdW5jICpmdW5j KQogfCBwbGFjZWhvbGRlciBidWlsdGluLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAogYC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0qLwoKLWNvbnN0IGJ1aWx0aW4gKiBBVFRSSUJVVEVfUFVSRQorY29uc3QgYnVp bHRpbiAqQVRUUklCVVRFX1BVUkUKIGZpbmRfYnVpbHRpbl9ieV9uYW1lIChjb25zdCBjaGFyICpu YW1lKQogewogICBjb25zdCBidWlsdGluICpicDsKQEAgLTI1MSw3ICsyNDksNyBAQCBzZXRfbWFj cm9fc2VxdWVuY2UgKGNvbnN0IGNoYXIgKnJlZ2V4cCkKIHsKICAgY29uc3QgY2hhciAqbXNnOwoK LSAgaWYgKCEgcmVnZXhwKQorICBpZiAoIXJlZ2V4cCkKICAgICByZWdleHAgPSBERUZBVUxUX01B Q1JPX1NFUVVFTkNFOwogICBlbHNlIGlmIChyZWdleHBbMF0gPT0gJ1wwJykKICAgICB7CkBAIC0y NjEsMTEgKzI1OSwxMiBAQCBzZXRfbWFjcm9fc2VxdWVuY2UgKGNvbnN0IGNoYXIgKnJlZ2V4cCkK CiAgIG1zZyA9IHJlX2NvbXBpbGVfcGF0dGVybiAocmVnZXhwLCBzdHJsZW4gKHJlZ2V4cCksICZt YWNyb19zZXF1ZW5jZV9idWYpOwogICBpZiAobXNnICE9IE5VTEwpCi0gICAgbTRfZmFpbHVyZSAo MCwgXygiLS13YXJuLW1hY3JvLXNlcXVlbmNlOiBiYWQgcmVndWxhciBleHByZXNzaW9uIGAlcyc6 ICVzIiksCisgICAgbTRfZmFpbHVyZSAoMCwKKyAgICAgICAgICAgICAgICBfKCItLXdhcm4tbWFj cm8tc2VxdWVuY2U6IGJhZCByZWd1bGFyIGV4cHJlc3Npb24gYCVzJzogJXMiKSwKICAgICAgICAg ICAgICAgICByZWdleHAsIG1zZyk7CiAgIHJlX3NldF9yZWdpc3RlcnMgKCZtYWNyb19zZXF1ZW5j ZV9idWYsICZtYWNyb19zZXF1ZW5jZV9yZWdzLAotICAgICAgICAgICAgICAgICAgICBtYWNyb19z ZXF1ZW5jZV9yZWdzLm51bV9yZWdzLAotICAgICAgICAgICAgICAgICAgICBtYWNyb19zZXF1ZW5j ZV9yZWdzLnN0YXJ0LCBtYWNyb19zZXF1ZW5jZV9yZWdzLmVuZCk7CisgICAgICAgICAgICAgICAg ICAgIG1hY3JvX3NlcXVlbmNlX3JlZ3MubnVtX3JlZ3MsIG1hY3JvX3NlcXVlbmNlX3JlZ3Muc3Rh cnQsCisgICAgICAgICAgICAgICAgICAgIG1hY3JvX3NlcXVlbmNlX3JlZ3MuZW5kKTsKICAgbWFj cm9fc2VxdWVuY2VfaW51c2UgPSB0cnVlOwogfQoKQEAgLTMwNywyMCArMzA2LDIzIEBAIGRlZmlu ZV91c2VyX21hY3JvIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp0ZXh0LCBzeW1ib2xf bG9va3VwIG1vZGUpCiAgICAgICB3aGlsZSAoKG9mZnNldCA9IHJlX3NlYXJjaCAoJm1hY3JvX3Nl cXVlbmNlX2J1ZiwgZGVmbiwgbGVuLCBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGVuIC0gb2Zmc2V0LCAmbWFjcm9fc2VxdWVuY2VfcmVncykpID49IDApCiAgICAg ICAgIHsKKyAgICAgICAgICBjaGFyIHRtcDsKKwogICAgICAgICAgIC8qIFNraXAgZW1wdHkgbWF0 Y2hlcy4gICovCiAgICAgICAgICAgaWYgKG1hY3JvX3NlcXVlbmNlX3JlZ3Muc3RhcnRbMF0gPT0g bWFjcm9fc2VxdWVuY2VfcmVncy5lbmRbMF0pCi0gICAgICAgICAgICBvZmZzZXQrKzsKLSAgICAg ICAgICBlbHNlCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGNoYXIgdG1wOwotICAgICAg ICAgICAgICBvZmZzZXQgPSBtYWNyb19zZXF1ZW5jZV9yZWdzLmVuZFswXTsKLSAgICAgICAgICAg ICAgdG1wID0gZGVmbltvZmZzZXRdOwotICAgICAgICAgICAgICBkZWZuW29mZnNldF0gPSAnXDAn OwotICAgICAgICAgICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAgICAg ICAgICAgICAgICAgICBfKCJXYXJuaW5nOiBkZWZpbml0aW9uIG9mIGAlcycgY29udGFpbnMgc2Vx dWVuY2UgYCVzJyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgZGVmbiArIG1hY3Jv X3NlcXVlbmNlX3JlZ3Muc3RhcnRbMF0pKTsKLSAgICAgICAgICAgICAgZGVmbltvZmZzZXRdID0g dG1wOworICAgICAgICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgICAgICAgY29udGludWU7CiAg ICAgICAgICAgICB9CisKKyAgICAgICAgICBvZmZzZXQgPSBtYWNyb19zZXF1ZW5jZV9yZWdzLmVu ZFswXTsKKyAgICAgICAgICB0bXAgPSBkZWZuW29mZnNldF07CisgICAgICAgICAgZGVmbltvZmZz ZXRdID0gJ1wwJzsKKyAgICAgICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCisgICAg ICAgICAgICAgICAgICAgIF8oIldhcm5pbmc6IGRlZmluaXRpb24gb2YgYCVzJyBjb250YWlucyBz ZXF1ZW5jZSBgJXMnIiksCisgICAgICAgICAgICAgICAgICAgIG5hbWUsIGRlZm4gKyBtYWNyb19z ZXF1ZW5jZV9yZWdzLnN0YXJ0WzBdKSk7CisgICAgICAgICAgZGVmbltvZmZzZXRdID0gdG1wOwor CiAgICAgICAgIH0KICAgICAgIGlmIChvZmZzZXQgPT0gLTIpCiAgICAgICAgIE00RVJST1IgKCh3 YXJuaW5nX3N0YXR1cywgMCwKQEAgLTYwMCw3ICs2MDIsNyBAQCBtNF91bmRlZmluZSAoc3RydWN0 IG9ic3RhY2sgKm9icyBNQVlCRV9VTlVTRUQsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikK IHN0YXRpYyB2b2lkCiBtNF9wdXNoZGVmIChzdHJ1Y3Qgb2JzdGFjayAqb2JzIE1BWUJFX1VOVVNF RCwgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQogewotICBkZWZpbmVfbWFjcm8gKGFyZ2Ms IGFyZ3YsICBTWU1CT0xfUFVTSERFRik7CisgIGRlZmluZV9tYWNybyAoYXJnYywgYXJndiwgU1lN Qk9MX1BVU0hERUYpOwogfQoKIHN0YXRpYyB2b2lkCkBAIC03MTUsOCArNzE3LDggQEAgZHVtcF9z eW1ib2wgKHN5bWJvbCAqc3ltLCB2b2lkICphcmcpCiBzdGF0aWMgaW50CiBkdW1wZGVmX2NtcCAo Y29uc3Qgdm9pZCAqczEsIGNvbnN0IHZvaWQgKnMyKQogewotICByZXR1cm4gc3RyY21wIChTWU1C T0xfTkFNRSAoKiAoc3ltYm9sICpjb25zdCAqKSBzMSksCi0gICAgICAgICAgICAgICAgIFNZTUJP TF9OQU1FICgqIChzeW1ib2wgKmNvbnN0ICopIHMyKSk7CisgIHJldHVybiBzdHJjbXAgKFNZTUJP TF9OQU1FICgqKHN5bWJvbCAqIGNvbnN0ICopIHMxKSwKKyAgICAgICAgICAgICAgICAgU1lNQk9M X05BTUUgKCooc3ltYm9sICogY29uc3QgKikgczIpKTsKIH0KCiAvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCkBAIC03NjgsNyAr NzcwLDggQEAgbTRfZHVtcGRlZiAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRva2Vu X2RhdGEgKiphcmd2KQogICAgICAgICBjYXNlIFRPS0VOX1RFWFQ6CiAgICAgICAgICAgaWYgKGRl YnVnX2xldmVsICYgREVCVUdfVFJBQ0VfUVVPVEUpCiAgICAgICAgICAgICBERUJVR19QUklOVDMg KCIlcyVzJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxxdW90ZS5zdHJpbmcsIFNZ TUJPTF9URVhUIChkYXRhLmJhc2VbMF0pLCBycXVvdGUuc3RyaW5nKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgbHF1b3RlLnN0cmluZywgU1lNQk9MX1RFWFQgKGRhdGEuYmFzZVswXSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgIHJxdW90ZS5zdHJpbmcpOwogICAgICAgICAgIGVsc2UK ICAgICAgICAgICAgIERFQlVHX1BSSU5UMSAoIiVzXG4iLCBTWU1CT0xfVEVYVCAoZGF0YS5iYXNl WzBdKSk7CiAgICAgICAgICAgYnJlYWs7CkBAIC04MTksMTIgKzgyMiwxMSBAQCBtNF9idWlsdGlu IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgIG5h bWUgPSBBUkcgKDEpOwogICBicCA9IGZpbmRfYnVpbHRpbl9ieV9uYW1lIChuYW1lKTsKICAgaWYg KGJwLT5mdW5jID09IG00X3BsYWNlaG9sZGVyKQotICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1 cywgMCwKLSAgICAgICAgICAgICAgXygidW5kZWZpbmVkIGJ1aWx0aW4gYCVzJyIpLCBuYW1lKSk7 CisgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBfKCJ1bmRlZmluZWQgYnVpbHRpbiBg JXMnIiksIG5hbWUpKTsKICAgZWxzZQogICAgIHsKICAgICAgIGludCBpOwotICAgICAgaWYgKCEg YnAtPmdyb2tzX21hY3JvX2FyZ3MpCisgICAgICBpZiAoIWJwLT5ncm9rc19tYWNyb19hcmdzKQog ICAgICAgICBmb3IgKGkgPSAyOyBpIDwgYXJnYzsgaSsrKQogICAgICAgICAgIGlmIChUT0tFTl9E QVRBX1RZUEUgKGFyZ3ZbaV0pICE9IFRPS0VOX1RFWFQpCiAgICAgICAgICAgICB7CkBAIC04NjAs MTIgKzg2MiwxMSBAQCBtNF9pbmRpciAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRv a2VuX2RhdGEgKiphcmd2KQogICBuYW1lID0gQVJHICgxKTsKICAgcyA9IGxvb2t1cF9zeW1ib2wg KG5hbWUsIFNZTUJPTF9MT09LVVApOwogICBpZiAocyA9PSBOVUxMIHx8IFNZTUJPTF9UWVBFIChz KSA9PSBUT0tFTl9WT0lEKQotICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwKLSAgICAg ICAgICAgICAgXygidW5kZWZpbmVkIG1hY3JvIGAlcyciKSwgbmFtZSkpOworICAgIE00RVJST1Ig KCh3YXJuaW5nX3N0YXR1cywgMCwgXygidW5kZWZpbmVkIG1hY3JvIGAlcyciKSwgbmFtZSkpOwog ICBlbHNlCiAgICAgewogICAgICAgaW50IGk7Ci0gICAgICBpZiAoISBTWU1CT0xfTUFDUk9fQVJH UyAocykpCisgICAgICBpZiAoIVNZTUJPTF9NQUNST19BUkdTIChzKSkKICAgICAgICAgZm9yIChp ID0gMjsgaSA8IGFyZ2M7IGkrKykKICAgICAgICAgICBpZiAoVE9LRU5fREFUQV9UWVBFIChhcmd2 W2ldKSAhPSBUT0tFTl9URVhUKQogICAgICAgICAgICAgewpAQCAtODk1LDcgKzg5Niw3IEBAIG00 X2RlZm4gKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikK ICAgYXNzZXJ0ICgwIDwgYXJnYyk7CiAgIGZvciAoaSA9IDE7IGkgPCAodW5zaWduZWQpIGFyZ2M7 IGkrKykKICAgICB7Ci0gICAgICBjb25zdCBjaGFyICphcmcgPSBBUkcoKGludCkgaSk7CisgICAg ICBjb25zdCBjaGFyICphcmcgPSBBUkcgKChpbnQpIGkpOwogICAgICAgcyA9IGxvb2t1cF9zeW1i b2wgKGFyZywgU1lNQk9MX0xPT0tVUCk7CiAgICAgICBpZiAocyA9PSBOVUxMKQogICAgICAgICBj b250aW51ZTsKQEAgLTkxNSw4ICs5MTYsNyBAQCBtNF9kZWZuIChzdHJ1Y3Qgb2JzdGFjayAqb2Jz LCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiBidWlsdGluIGAlcycgcmVxdWVzdGVkIGJ5 IGZyb3plbiBmaWxlIGlzIG5vdCBzdXBwb3J0ZWQiKSwgYXJnKSk7CiAgICAgICAgICAgZWxzZSBp ZiAoYXJnYyAhPSAyKQogICAgICAgICAgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLAot ICAgICAgICAgICAgICAgICAgICAgIF8oIldhcm5pbmc6IGNhbm5vdCBjb25jYXRlbmF0ZSBidWls dGluIGAlcyciKSwKLSAgICAgICAgICAgICAgICAgICAgICBhcmcpKTsKKyAgICAgICAgICAgICAg ICAgICAgICBfKCJXYXJuaW5nOiBjYW5ub3QgY29uY2F0ZW5hdGUgYnVpbHRpbiBgJXMnIiksIGFy ZykpOwogICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHB1c2hfbWFjcm8gKGIpOwogICAgICAg ICAgIGJyZWFrOwpAQCAtMTA5OSw4ICsxMDk5LDcgQEAgbTRfZXZhbCAoc3RydWN0IG9ic3RhY2sg Km9icywgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQogICBpZiAocmFkaXggPCAxIHx8IHJh ZGl4ID4gKGludCkgc3RybGVuIChkaWdpdHMpKQogICAgIHsKICAgICAgIE00RVJST1IgKCh3YXJu aW5nX3N0YXR1cywgMCwKLSAgICAgICAgICAgICAgICBfKCJyYWRpeCAlZCBpbiBidWlsdGluIGAl cycgb3V0IG9mIHJhbmdlIiksCi0gICAgICAgICAgICAgICAgcmFkaXgsIEFSRyAoMCkpKTsKKyAg ICAgICAgICAgICAgICBfKCJyYWRpeCAlZCBpbiBidWlsdGluIGAlcycgb3V0IG9mIHJhbmdlIiks IHJhZGl4LCBBUkcgKDApKSk7CiAgICAgICByZXR1cm47CiAgICAgfQoKQEAgLTEyOTgsMTUgKzEy OTcsMTQgQEAgbTRfc2hpZnQgKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9k YXRhICoqYXJndikKIGAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgogc3RhdGljIHZvaWQKLW00X2NoYW5n ZXF1b3RlIChzdHJ1Y3Qgb2JzdGFjayAqb2JzIE1BWUJFX1VOVVNFRCwgaW50IGFyZ2MsCi0gICAg ICAgICAgICAgICAgdG9rZW5fZGF0YSAqKmFyZ3YpCittNF9jaGFuZ2VxdW90ZSAoc3RydWN0IG9i c3RhY2sgKm9icyBNQVlCRV9VTlVTRUQsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikKIHsK ICAgaWYgKGJhZF9hcmdjIChhcmd2WzBdLCBhcmdjLCAxLCAzKSkKICAgICByZXR1cm47CgogICAv KiBFeHBsaWNpdCBOVUxMIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBlbXB0eSBhbmQgbWlzc2luZyBh cmd1bWVudC4gICovCiAgIHNldF9xdW90ZXMgKChhcmdjID49IDIpID8gVE9LRU5fREFUQV9URVhU IChhcmd2WzFdKSA6IE5VTEwsCi0gICAgICAgICAgICAgKGFyZ2MgPj0gMykgPyBUT0tFTl9EQVRB X1RFWFQgKGFyZ3ZbMl0pIDogTlVMTCk7CisgICAgICAgICAgICAgIChhcmdjID49IDMpID8gVE9L RU5fREFUQV9URVhUIChhcmd2WzJdKSA6IE5VTEwpOwogfQoKIC8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCkBAIC0xNDU1 LDExICsxNDUzLDExIEBAIG00X21ha2V0ZW1wIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJn YywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgICAgICAgICBhcmUgaW4gdHJhZGl0aW9uYWwgbW9kZS4K CiAgICAgICAgICBGb3IgcmVmZXJlbmNlLCBTb2xhcmlzIG00IGRvZXM6Ci0gICAgICAgICAgIG1h a2V0ZW1wKCkgLT4gYCcKLSAgICAgICAgICAgbWFrZXRlbXAoWCkgLT4gYFgnCi0gICAgICAgICAg IG1ha2V0ZW1wKFhYKSAtPiBgWG4nLCB3aGVyZSBuIGlzIGxhc3QgZGlnaXQgb2YgcGlkCi0gICAg ICAgICAgIG1ha2V0ZW1wKFhYWFhYWFhYKSAtPiBgWDAwbm5ubm4nLCB3aGVyZSBubm5ubiBpcyAx Ni1iaXQgcGlkCi0gICAgICAqLworICAgICAgICAgbWFrZXRlbXAoKSAtPiBgJworICAgICAgICAg bWFrZXRlbXAoWCkgLT4gYFgnCisgICAgICAgICBtYWtldGVtcChYWCkgLT4gYFhuJywgd2hlcmUg biBpcyBsYXN0IGRpZ2l0IG9mIHBpZAorICAgICAgICAgbWFrZXRlbXAoWFhYWFhYWFgpIC0+IGBY MDBubm5ubicsIHdoZXJlIG5ubm5uIGlzIDE2LWJpdCBwaWQKKyAgICAgICAqLwogICAgICAgY29u c3QgY2hhciAqc3RyID0gQVJHICgxKTsKICAgICAgIGludCBsZW4gPSBzdHJsZW4gKHN0cik7CiAg ICAgICBpbnQgaTsKQEAgLTE5MjMsOSArMTkyMSw5IEBAIG00X3RyYW5zbGl0IChzdHJ1Y3Qgb2Jz dGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgICAgIGhlbmNlIHRoZSBm b3VuZCBtYXAuICAqLwogICBtZW1zZXQgKG1hcCwgMCwgc2l6ZW9mIG1hcCk7CiAgIG1lbXNldCAo Zm91bmQsIDAsIHNpemVvZiBmb3VuZCk7Ci0gIGZvciAoIDsgKGNoID0gKmZyb20pICE9ICdcMCc7 IGZyb20rKykKKyAgZm9yICg7IChjaCA9ICpmcm9tKSAhPSAnXDAnOyBmcm9tKyspCiAgICAgewot ICAgICAgaWYgKCEgZm91bmRbY2hdKQorICAgICAgaWYgKCFmb3VuZFtjaF0pCiAgICAgICAgIHsK ICAgICAgICAgICBmb3VuZFtjaF0gPSAxOwogICAgICAgICAgIG1hcFtjaF0gPSAqdG87CkBAIC0x OTM2LDcgKzE5MzQsNyBAQCBtNF90cmFuc2xpdCAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFy Z2MsIHRva2VuX2RhdGEgKiphcmd2KQoKICAgZm9yIChkYXRhID0gQVJHICgxKTsgKGNoID0gKmRh dGEpICE9ICdcMCc7IGRhdGErKykKICAgICB7Ci0gICAgICBpZiAoISBmb3VuZFtjaF0pCisgICAg ICBpZiAoIWZvdW5kW2NoXSkKICAgICAgICAgb2JzdGFja18xZ3JvdyAob2JzLCBjaCk7CiAgICAg ICBlbHNlIGlmIChtYXBbY2hdKQogICAgICAgICBvYnN0YWNrXzFncm93IChvYnMsIG1hcFtjaF0p OwpAQCAtMjAwMCw4ICsxOTk4LDE1IEBAIFdhcm5pbmc6IFxcMCB3aWxsIGRpc2FwcGVhciwgdXNl IFxcJiBpbnN0ZWFkIGluIHJlcGxhY2VtZW50cyIpKSk7CiAgICAgICAgICAgcmVwbCsrOwogICAg ICAgICAgIGJyZWFrOwoKLSAgICAgICAgY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2Fz ZSAnNCc6IGNhc2UgJzUnOiBjYXNlICc2JzoKLSAgICAgICAgY2FzZSAnNyc6IGNhc2UgJzgnOiBj YXNlICc5JzoKKyAgICAgICAgY2FzZSAnMSc6CisgICAgICAgIGNhc2UgJzInOgorICAgICAgICBj YXNlICczJzoKKyAgICAgICAgY2FzZSAnNCc6CisgICAgICAgIGNhc2UgJzUnOgorICAgICAgICBj YXNlICc2JzoKKyAgICAgICAgY2FzZSAnNyc6CisgICAgICAgIGNhc2UgJzgnOgorICAgICAgICBj YXNlICc5JzoKICAgICAgICAgICBpbmQgPSBjaCAtPSAnMCc7CiAgICAgICAgICAgaWYgKHJlZ3Mt Pm51bV9yZWdzIC0gMSA8PSBpbmQpCiAgICAgICAgICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0 dXMsIDAsCkBAIC0yMjA2LDggKzIyMTEsNyBAQCBtNF9wYXRzdWJzdCAoc3RydWN0IG9ic3RhY2sg Km9icywgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQogYC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiB2b2lk Ci1tNF9wbGFjZWhvbGRlciAoc3RydWN0IG9ic3RhY2sgKm9icyBNQVlCRV9VTlVTRUQsIGludCBh cmdjLAotICAgICAgICAgICAgICAgIHRva2VuX2RhdGEgKiphcmd2KQorbTRfcGxhY2Vob2xkZXIg KHN0cnVjdCBvYnN0YWNrICpvYnMgTUFZQkVfVU5VU0VELCBpbnQgYXJnYywgdG9rZW5fZGF0YSAq KmFyZ3YpCiB7CiAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwgXygiXAogYnVpbHRpbiBg JXMnIHJlcXVlc3RlZCBieSBmcm96ZW4gZmlsZSBpcyBub3Qgc3VwcG9ydGVkIiksIEFSRyAoMCkp KTsKQEAgLTIyMzksOCArMjI0MywxNiBAQCBleHBhbmRfdXNlcl9tYWNybyAoc3RydWN0IG9ic3Rh Y2sgKm9icywgc3ltYm9sICpzeW0sCiAgICAgICB0ZXh0ID0gZG9sbGFyOwogICAgICAgc3dpdGNo ICgqKyt0ZXh0KQogICAgICAgICB7Ci0gICAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAn Mic6IGNhc2UgJzMnOiBjYXNlICc0JzoKLSAgICAgICAgY2FzZSAnNSc6IGNhc2UgJzYnOiBjYXNl ICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOgorICAgICAgICBjYXNlICcwJzoKKyAgICAgICAgY2Fz ZSAnMSc6CisgICAgICAgIGNhc2UgJzInOgorICAgICAgICBjYXNlICczJzoKKyAgICAgICAgY2Fz ZSAnNCc6CisgICAgICAgIGNhc2UgJzUnOgorICAgICAgICBjYXNlICc2JzoKKyAgICAgICAgY2Fz ZSAnNyc6CisgICAgICAgIGNhc2UgJzgnOgorICAgICAgICBjYXNlICc5JzoKICAgICAgICAgICBp ZiAobm9fZ251X2V4dGVuc2lvbnMpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGkgPSAq dGV4dCsrIC0gJzAnOwpAQCAtMjI0OCwyMCArMjI2MCwyMCBAQCBleHBhbmRfdXNlcl9tYWNybyAo c3RydWN0IG9ic3RhY2sgKm9icywgc3ltYm9sICpzeW0sCiAgICAgICAgICAgZWxzZQogICAgICAg ICAgICAgewogICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBjX2lzZGlnaXQgKCp0ZXh0KTsgdGV4 dCsrKQotICAgICAgICAgICAgICAgIGkgPSBpKjEwICsgKCp0ZXh0IC0gJzAnKTsKKyAgICAgICAg ICAgICAgICBpID0gaSAqIDEwICsgKCp0ZXh0IC0gJzAnKTsKICAgICAgICAgICAgIH0KICAgICAg ICAgICBpZiAoaSA8IGFyZ2MpCiAgICAgICAgICAgICBvYnN0YWNrX2dyb3cgKG9icywgVE9LRU5f REFUQV9URVhUIChhcmd2W2ldKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuIChU T0tFTl9EQVRBX1RFWFQgKGFyZ3ZbaV0pKSk7CiAgICAgICAgICAgYnJlYWs7CgotICAgICAgICBj YXNlICcjJzogLyogbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgICAgICBjYXNlICcjJzogICAg ICAgICAgICAgIC8qIG51bWJlciBvZiBhcmd1bWVudHMgKi8KICAgICAgICAgICBzaGlwb3V0X2lu dCAob2JzLCBhcmdjIC0gMSk7CiAgICAgICAgICAgdGV4dCsrOwogICAgICAgICAgIGJyZWFrOwoK LSAgICAgICAgY2FzZSAnKic6IC8qIGFsbCBhcmd1bWVudHMgKi8KLSAgICAgICAgY2FzZSAnQCc6 IC8qIC4uLiBzYW1lLCBidXQgcXVvdGVkICovCisgICAgICAgIGNhc2UgJyonOiAgICAgICAgICAg ICAgLyogYWxsIGFyZ3VtZW50cyAqLworICAgICAgICBjYXNlICdAJzogICAgICAgICAgICAgIC8q IC4uLiBzYW1lLCBidXQgcXVvdGVkICovCiAgICAgICAgICAgZHVtcF9hcmdzIChvYnMsIGFyZ2Ms IGFyZ3YsICIsIiwgKnRleHQgPT0gJ0AnKTsKICAgICAgICAgICB0ZXh0Kys7CiAgICAgICAgICAg YnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvZGVidWcuYyBiL3NyYy9kZWJ1Zy5jCmluZGV4IGE0MDE3 NjYwLi5hY2M4M2U1ZSAxMDA2NDQKLS0tIGEvc3JjL2RlYnVnLmMKKysrIGIvc3JjL2RlYnVnLmMK QEAgLTE4Niw4ICsxODYsNyBAQCBkZWJ1Z19mbHVzaF9maWxlcyAodm9pZCkKICAgICAgdGhpcyBh dHRlbXB0LiAgVGhlIHN0ZGlvLXNhZmVyIG1vZHVsZSBhbmQgZnJpZW5kcyBhcmUgZXNzZW50aWFs LAogICAgICBzbyB0aGF0IGlmIHN0ZGluIHdhcyBjbG9zZWQsIHRoaXMgbHNlZWsgaXMgbm90IG9u IHNvbWUgb3RoZXIgZmlsZQogICAgICB0aGF0IHdlIGhhdmUgc2luY2Ugb3BlbmVkLiAgKi8KLSAg aWYgKGxzZWVrIChTVERJTl9GSUxFTk8sIDAsIFNFRUtfQ1VSKSA+PSAwCi0gICAgICAmJiBmZmx1 c2ggKHN0ZGluKSA9PSAwKQorICBpZiAobHNlZWsgKFNURElOX0ZJTEVOTywgMCwgU0VFS19DVVIp ID49IDAgJiYgZmZsdXNoIChzdGRpbikgPT0gMCkKICAgICB7CiAgICAgICBmc2Vla28gKHN0ZGlu LCAwLCBTRUVLX0NVUik7CiAgICAgfQpAQCAtMjI4LDEyICsyMjcsMTIgQEAgZGVidWdfbWVzc2Fn ZV9wcmVmaXggKHZvaWQpCiB7CiAgIHhmcHJpbnRmIChkZWJ1ZywgIm00ZGVidWc6Iik7CiAgIGlm IChjdXJyZW50X2xpbmUpCi0gIHsKLSAgICBpZiAoZGVidWdfbGV2ZWwgJiBERUJVR19UUkFDRV9G SUxFKQotICAgICAgeGZwcmludGYgKGRlYnVnLCAiJXM6IiwgY3VycmVudF9maWxlKTsKLSAgICBp ZiAoZGVidWdfbGV2ZWwgJiBERUJVR19UUkFDRV9MSU5FKQotICAgICAgeGZwcmludGYgKGRlYnVn LCAiJWQ6IiwgY3VycmVudF9saW5lKTsKLSAgfQorICAgIHsKKyAgICAgIGlmIChkZWJ1Z19sZXZl bCAmIERFQlVHX1RSQUNFX0ZJTEUpCisgICAgICAgIHhmcHJpbnRmIChkZWJ1ZywgIiVzOiIsIGN1 cnJlbnRfZmlsZSk7CisgICAgICBpZiAoZGVidWdfbGV2ZWwgJiBERUJVR19UUkFDRV9MSU5FKQor ICAgICAgICB4ZnByaW50ZiAoZGVidWcsICIlZDoiLCBjdXJyZW50X2xpbmUpOworICAgIH0KICAg cHV0YyAoJyAnLCBkZWJ1Zyk7CiB9CiAMCmRpZmYgLS1naXQgYS9zcmMvZXZhbC5jIGIvc3JjL2V2 YWwuYwppbmRleCA5N2VlYjNlYi4uOTAzNjI5MTggMTAwNjQ0Ci0tLSBhL3NyYy9ldmFsLmMKKysr IGIvc3JjL2V2YWwuYwpAQCAtMjksMzcgKzI5LDM3IEBACiAvKiBFdmFsdWF0ZXMgdG9rZW4gdHlw ZXMuICAqLwoKIHR5cGVkZWYgZW51bSBldmFsX3Rva2VuCi0gIHsKLSAgICBFUlJPUiwgQkFET1As Ci0gICAgUExVUywgTUlOVVMsCi0gICAgRVhQT05FTlQsCi0gICAgVElNRVMsIERJVklERSwgTU9E VUxPLAotICAgIEFTU0lHTiwgRVEsIE5PVEVRLCBHVCwgR1RFUSwgTFMsIExTRVEsCi0gICAgTFNI SUZULCBSU0hJRlQsCi0gICAgTE5PVCwgTEFORCwgTE9SLAotICAgIE5PVCwgQU5ELCBPUiwgWE9S LAotICAgIExFRlRQLCBSSUdIVFAsCi0gICAgTlVNQkVSLCBFT1RFWFQKLSAgfQoreworICBFUlJP UiwgQkFET1AsCisgIFBMVVMsIE1JTlVTLAorICBFWFBPTkVOVCwKKyAgVElNRVMsIERJVklERSwg TU9EVUxPLAorICBBU1NJR04sIEVRLCBOT1RFUSwgR1QsIEdURVEsIExTLCBMU0VRLAorICBMU0hJ RlQsIFJTSElGVCwKKyAgTE5PVCwgTEFORCwgTE9SLAorICBOT1QsIEFORCwgT1IsIFhPUiwKKyAg TEVGVFAsIFJJR0hUUCwKKyAgTlVNQkVSLCBFT1RFWFQKK30KIGV2YWxfdG9rZW47CgogLyogRXJy b3IgdHlwZXMuICAqLwoKIHR5cGVkZWYgZW51bSBldmFsX2Vycm9yCi0gIHsKLSAgICBOT19FUlJP UiwKLSAgICBESVZJREVfWkVSTywKLSAgICBNT0RVTE9fWkVSTywKLSAgICBORUdBVElWRV9FWFBP TkVOVCwKLSAgICAvKiBBbGwgZXJyb3JzIHByaW9yIHRvIFNZTlRBWF9FUlJPUiBjYW4gYmUgaWdu b3JlZCBpbiBhIGRlYWQKLSAgICAgICBicmFuY2ggb2YgJiYgYW5kIHx8LiAgQWxsIGVycm9ycyBh ZnRlciBhcmUganVzdCBtb3JlIGRldGFpbHMKLSAgICAgICBhYm91dCBhIHN5bnRheCBlcnJvci4g ICovCi0gICAgU1lOVEFYX0VSUk9SLAotICAgIE1JU1NJTkdfUklHSFQsCi0gICAgVU5LTk9XTl9J TlBVVCwKLSAgICBFWENFU1NfSU5QVVQsCi0gICAgSU5WQUxJRF9PUEVSQVRPUgotICB9Cit7Cisg IE5PX0VSUk9SLAorICBESVZJREVfWkVSTywKKyAgTU9EVUxPX1pFUk8sCisgIE5FR0FUSVZFX0VY UE9ORU5ULAorICAvKiBBbGwgZXJyb3JzIHByaW9yIHRvIFNZTlRBWF9FUlJPUiBjYW4gYmUgaWdu b3JlZCBpbiBhIGRlYWQKKyAgICAgYnJhbmNoIG9mICYmIGFuZCB8fC4gIEFsbCBlcnJvcnMgYWZ0 ZXIgYXJlIGp1c3QgbW9yZSBkZXRhaWxzCisgICAgIGFib3V0IGEgc3ludGF4IGVycm9yLiAgKi8K KyAgU1lOVEFYX0VSUk9SLAorICBNSVNTSU5HX1JJR0hULAorICBVTktOT1dOX0lOUFVULAorICBF WENFU1NfSU5QVVQsCisgIElOVkFMSURfT1BFUkFUT1IKK30KIGV2YWxfZXJyb3I7Cgogc3RhdGlj IGV2YWxfZXJyb3IgbG9naWNhbF9vcl90ZXJtIChldmFsX3Rva2VuLCBpbnQzMl90ICopOwpAQCAt MzIwLDggKzMyMCw3IEBAIGV2YWx1YXRlIChjb25zdCBjaGFyICpleHByLCBpbnQzMl90ICp2YWwp CiAgICAgICBicmVhazsKCiAgICAgY2FzZSBTWU5UQVhfRVJST1I6Ci0gICAgICBNNEVSUk9SICgo d2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAgICAgICAgICAgXygiYmFkIGV4cHJlc3Npb24gaW4g ZXZhbDogJXMiKSwgZXhwcikpOworICAgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBf KCJiYWQgZXhwcmVzc2lvbiBpbiBldmFsOiAlcyIpLCBleHByKSk7CiAgICAgICBicmVhazsKCiAg ICAgY2FzZSBVTktOT1dOX0lOUFVUOgpAQCAtMzM1LDI0ICszMzQsMjAgQEAgZXZhbHVhdGUgKGNv bnN0IGNoYXIgKmV4cHIsIGludDMyX3QgKnZhbCkKICAgICAgIGJyZWFrOwoKICAgICBjYXNlIElO VkFMSURfT1BFUkFUT1I6Ci0gICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAg ICAgICAgICAgICAgXygiaW52YWxpZCBvcGVyYXRvciBpbiBldmFsOiAlcyIpLCBleHByKSk7Cisg ICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsIF8oImludmFsaWQgb3BlcmF0b3IgaW4g ZXZhbDogJXMiKSwgZXhwcikpOwogICAgICAgcmV0Y29kZSA9IEVYSVRfRkFJTFVSRTsKICAgICAg IGJyZWFrOwoKICAgICBjYXNlIERJVklERV9aRVJPOgotICAgICAgTTRFUlJPUiAoKHdhcm5pbmdf c3RhdHVzLCAwLAotICAgICAgICAgICAgICAgIF8oImRpdmlkZSBieSB6ZXJvIGluIGV2YWw6ICVz IiksIGV4cHIpKTsKKyAgICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwgXygiZGl2aWRl IGJ5IHplcm8gaW4gZXZhbDogJXMiKSwgZXhwcikpOwogICAgICAgYnJlYWs7CgogICAgIGNhc2Ug TU9EVUxPX1pFUk86Ci0gICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAg ICAgICAgICAgXygibW9kdWxvIGJ5IHplcm8gaW4gZXZhbDogJXMiKSwgZXhwcikpOworICAgICAg TTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBfKCJtb2R1bG8gYnkgemVybyBpbiBldmFsOiAl cyIpLCBleHByKSk7CiAgICAgICBicmVhazsKCiAgICAgY2FzZSBORUdBVElWRV9FWFBPTkVOVDoK LSAgICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwKLSAgICAgICAgICAgICAgICBfKCJu ZWdhdGl2ZSBleHBvbmVudCBpbiBldmFsOiAlcyIpLCBleHByKSk7CisgICAgICBNNEVSUk9SICgo d2FybmluZ19zdGF0dXMsIDAsIF8oIm5lZ2F0aXZlIGV4cG9uZW50IGluIGV2YWw6ICVzIiksIGV4 cHIpKTsKICAgICAgIGJyZWFrOwoKICAgICBkZWZhdWx0OgpAQCAtNDE5LDcgKzQxNCw3IEBAIGxv Z2ljYWxfYW5kX3Rlcm0gKGV2YWxfdG9rZW4gZXQsIGludDMyX3QgKnYxKQogICAgICAgaWYgKGVy ID09IE5PX0VSUk9SKQogICAgICAgICAqdjEgPSAqdjEgJiYgdjI7CiAgICAgICBlbHNlIGlmICgq djEgPT0gMCAmJiBlciA8IFNZTlRBWF9FUlJPUikKLSAgICAgICAgOyAvKiB2MSBpcyBhbHJlYWR5 IDAgKi8KKyAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgLyogdjEgaXMgYWxyZWFkeSAw ICovCiAgICAgICBlbHNlCiAgICAgICAgIHJldHVybiBlcjsKICAgICB9CkBAIC01MzQsMTEgKzUy OSwxMSBAQCBlcXVhbGl0eV90ZXJtIChldmFsX3Rva2VuIGV0LCBpbnQzMl90ICp2MSkKICAgICAg ICAgcmV0dXJuIGVyOwoKICAgICAgIGlmIChvcCA9PSBBU1NJR04pCi0gICAgICB7Ci0gICAgICAg IE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwgXygiXAorICAgICAgICB7CisgICAgICAgICAg TTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBfKCJcCiBXYXJuaW5nOiByZWNvbW1lbmQgPT0s IG5vdCA9LCBmb3IgZXF1YWxpdHkgb3BlcmF0b3IiKSkpOwotICAgICAgICBvcCA9IEVROwotICAg ICAgfQorICAgICAgICAgIG9wID0gRVE7CisgICAgICAgIH0KICAgICAgICp2MSA9IChvcCA9PSBF USkgPT0gKCp2MSA9PSB2Mik7CiAgICAgfQogICBpZiAob3AgPT0gRVJST1IpCkBAIC01NTgsOCAr NTUzLDcgQEAgY21wX3Rlcm0gKGV2YWxfdG9rZW4gZXQsIGludDMyX3QgKnYxKQogICBpZiAoKGVy ID0gc2hpZnRfdGVybSAoZXQsIHYxKSkgIT0gTk9fRVJST1IpCiAgICAgcmV0dXJuIGVyOwoKLSAg d2hpbGUgKChvcCA9IGV2YWxfbGV4ICgmdjIpKSA9PSBHVCB8fCBvcCA9PSBHVEVRCi0gICAgICAg ICB8fCBvcCA9PSBMUyB8fCBvcCA9PSBMU0VRKQorICB3aGlsZSAoKG9wID0gZXZhbF9sZXggKCZ2 MikpID09IEdUIHx8IG9wID09IEdURVEgfHwgb3AgPT0gTFMgfHwgb3AgPT0gTFNFUSkKICAgICB7 CgogICAgICAgZXQgPSBldmFsX2xleCAoJnYyKTsKQEAgLTY3OCw5ICs2NzIsOSBAQCBhZGRfdGVy bSAoZXZhbF90b2tlbiBldCwgaW50MzJfdCAqdjEpCiAgICAgICAgICB1bnNpZ25lZCB0byBzaWdu ZWQgaXMgYSBzaWxlbnQgdHdvcy1jb21wbGVtZW50CiAgICAgICAgICB3cmFwLWFyb3VuZC4gICov CiAgICAgICBpZiAob3AgPT0gUExVUykKLSAgICAgICAgKnYxID0gKGludDMyX3QpICgodWludDMy X3QpICp2MSArICh1aW50MzJfdCkgdjIpOworICAgICAgICAqdjEgPSAoaW50MzJfdCkgKCh1aW50 MzJfdCkgKiB2MSArICh1aW50MzJfdCkgdjIpOwogICAgICAgZWxzZQotICAgICAgICAqdjEgPSAo aW50MzJfdCkgKCh1aW50MzJfdCkgKnYxIC0gKHVpbnQzMl90KSB2Mik7CisgICAgICAgICp2MSA9 IChpbnQzMl90KSAoKHVpbnQzMl90KSAqIHYxIC0gKHVpbnQzMl90KSB2Mik7CiAgICAgfQogICBp ZiAob3AgPT0gRVJST1IpCiAgICAgcmV0dXJuIFVOS05PV05fSU5QVVQ7CkBAIC03MTUsNyArNzA5 LDcgQEAgbXVsdF90ZXJtIChldmFsX3Rva2VuIGV0LCBpbnQzMl90ICp2MSkKICAgICAgIHN3aXRj aCAob3ApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBUSU1FUzoKLSAgICAgICAgICAqdjEgPSAo aW50MzJfdCkgKCh1aW50MzJfdCkgKnYxICogKHVpbnQzMl90KSB2Mik7CisgICAgICAgICAgKnYx ID0gKGludDMyX3QpICgodWludDMyX3QpICogdjEgKiAodWludDMyX3QpIHYyKTsKICAgICAgICAg ICBicmVhazsKCiAgICAgICAgIGNhc2UgRElWSURFOgpAQCAtNzIzLDcgKzcxNyw3IEBAIG11bHRf dGVybSAoZXZhbF90b2tlbiBldCwgaW50MzJfdCAqdjEpCiAgICAgICAgICAgICByZXR1cm4gRElW SURFX1pFUk87CiAgICAgICAgICAgZWxzZSBpZiAodjIgPT0gLTEpCiAgICAgICAgICAgICAvKiBB dm9pZCBvdmVyZmxvdywgYW5kIHRoZSB4ODYgU0lHRlBFIG9uIElOVF9NSU4gLyAtMS4gICovCi0g ICAgICAgICAgICAqdjEgPSAoaW50MzJfdCkgLSh1aW50MzJfdCkgKnYxOworICAgICAgICAgICAg KnYxID0gKGludDMyX3QpIC0gKHVpbnQzMl90KSAqIHYxOwogICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICp2MSAvPSB2MjsKICAgICAgICAgICBicmVhazsKQEAgLTc4MCw3ICs3NzQsNyBAQCBl eHBfdGVybSAoZXZhbF90b2tlbiBldCwgaW50MzJfdCAqdjEpCiAgICAgICBpZiAoKnYxID09IDAg JiYgdjIgPT0gMCkKICAgICAgICAgcmV0dXJuIERJVklERV9aRVJPOwogICAgICAgd2hpbGUgKHYy LS0gPiAwKQotICAgICAgICByZXN1bHQgKj0gKHVpbnQzMl90KSAqdjE7CisgICAgICAgIHJlc3Vs dCAqPSAodWludDMyX3QpICogdjE7CiAgICAgICAqdjEgPSByZXN1bHQ7CiAgICAgfQogICBpZiAo ZXQgPT0gRVJST1IpCkBAIC04MDksNyArODAzLDcgQEAgdW5hcnlfdGVybSAoZXZhbF90b2tlbiBl dCwgaW50MzJfdCAqdjEpCiAgICAgICAgICB1bnNpZ25lZCB0byBzaWduZWQgaXMgYSBzaWxlbnQg dHdvcy1jb21wbGVtZW50CiAgICAgICAgICB3cmFwLWFyb3VuZC4gICovCiAgICAgICBpZiAoZXQg PT0gTUlOVVMpCi0gICAgICAgICp2MSA9IChpbnQzMl90KSAtKHVpbnQzMl90KSAqdjE7CisgICAg ICAgICp2MSA9IChpbnQzMl90KSAtICh1aW50MzJfdCkgKiB2MTsKICAgICAgIGVsc2UgaWYgKGV0 ID09IE5PVCkKICAgICAgICAgKnYxID0gfip2MTsKICAgICAgIGVsc2UgaWYgKGV0ID09IExOT1Qp CmRpZmYgLS1naXQgYS9zcmMvZm9ybWF0LmMgYi9zcmMvZm9ybWF0LmMKaW5kZXggNzRlNWQ2MTQu LjRiYTI5MmMzIDEwMDY0NAotLS0gYS9zcmMvZm9ybWF0LmMKKysrIGIvc3JjL2Zvcm1hdC5jCkBA IC0xMjYsMjIgKzEyNiwyMyBAQCBhcmdfZG91YmxlIChjb25zdCBjaGFyICpzdHIpCiB2b2lkCiBl eHBhbmRfZm9ybWF0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAq KmFyZ3YpCiB7Ci0gIGNvbnN0IGNoYXIgKmY7ICAgICAgICAgICAgICAgICAgICAgICAgLyogZm9y bWF0IGNvbnRyb2wgc3RyaW5nICovCi0gIGNvbnN0IGNoYXIgKmZtdDsgICAgICAgICAgICAgICAg ICAgICAgLyogcG9zaXRpb24gd2l0aGluIGYgKi8KKyAgY29uc3QgY2hhciAqZjsgICAgICAgICAg ICAgICAgLyogZm9ybWF0IGNvbnRyb2wgc3RyaW5nICovCisgIGNvbnN0IGNoYXIgKmZtdDsgICAg ICAgICAgICAgIC8qIHBvc2l0aW9uIHdpdGhpbiBmICovCiAgIGNoYXIgZnN0YXJ0W10gPSAiJScr LSAwIyouKmhoZCI7ICAgICAgLyogY3VycmVudCBmb3JtYXQgc3BlYyAqLwotICBjaGFyICpwOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBvc2l0aW9uIHdpdGhpbiBmc3RhcnQgKi8K LSAgdW5zaWduZWQgY2hhciBjOyAgICAgICAgICAgICAgICAgICAgICAvKiBhIHNpbXBsZSBjaGFy YWN0ZXIgKi8KKyAgY2hhciAqcDsgICAgICAgICAgICAgICAgICAgICAgLyogcG9zaXRpb24gd2l0 aGluIGZzdGFydCAqLworICB1bnNpZ25lZCBjaGFyIGM7ICAgICAgICAgICAgICAvKiBhIHNpbXBs ZSBjaGFyYWN0ZXIgKi8KCiAgIC8qIEZsYWdzLiAgKi8KLSAgY2hhciBmbGFnczsgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBmbGFncyB0byB1c2UgaW4gZnN0YXJ0ICovCi0gIGVudW0gewot ICAgIFRIT1VTQU5EUyAgID0gMHgwMSwgLyogJyAqLwotICAgIFBMVVMgICAgICAgID0gMHgwMiwg LyogKyAqLwotICAgIE1JTlVTICAgICAgID0gMHgwNCwgLyogLSAqLwotICAgIFNQQUNFICAgICAg ID0gMHgwOCwgLyogICAqLwotICAgIFpFUk8gICAgICAgID0gMHgxMCwgLyogMCAqLwotICAgIEFM VCAgICAgICAgID0gMHgyMCwgLyogIyAqLwotICAgIERPTkUgICAgICAgID0gMHg0MCAgLyogbm8g bW9yZSBmbGFncyAqLworICBjaGFyIGZsYWdzOyAgICAgICAgICAgICAgICAgICAvKiBmbGFncyB0 byB1c2UgaW4gZnN0YXJ0ICovCisgIGVudW0KKyAgeworICAgIFRIT1VTQU5EUyA9IDB4MDEsICAg ICAgICAgICAvKiAnICovCisgICAgUExVUyA9IDB4MDIsICAgICAgICAgICAgICAgIC8qICsgKi8K KyAgICBNSU5VUyA9IDB4MDQsICAgICAgICAgICAgICAgLyogLSAqLworICAgIFNQQUNFID0gMHgw OCwgICAgICAgICAgICAgICAvKiAgICovCisgICAgWkVSTyA9IDB4MTAsICAgICAgICAgICAgICAg IC8qIDAgKi8KKyAgICBBTFQgPSAweDIwLCAgICAgICAgICAgICAgICAgLyogIyAqLworICAgIERP TkUgPSAweDQwICAgICAgICAgICAgICAgICAvKiBubyBtb3JlIGZsYWdzICovCiAgIH07CgogICAv KiBQcmVjaXNpb24gc3BlY2lmaWVycy4gICovCkBAIC0xNTYsNyArMTU3LDggQEAgZXhwYW5kX2Zv cm1hdCAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQoK ICAgLyogQnVmZmVyIGFuZCBzdHVmZi4gICovCiAgIGNoYXIgKnN0cjsgICAgICAgICAgICAgICAg ICAgIC8qIG1hbGxvYydkIGJ1ZmZlciBvZiBmb3JtYXR0ZWQgdGV4dCAqLwotICBlbnVtIHtDSEFS LCBJTlQsIExPTkcsIERPVUJMRSwgU1RSfSBkYXRhdHlwZTsKKyAgZW51bQorICB7IENIQVIsIElO VCwgTE9ORywgRE9VQkxFLCBTVFIgfSBkYXRhdHlwZTsKCiAgIGYgPSBmbXQgPSBBUkdfU1RSIChh cmdjLCBhcmd2KTsKICAgbWVtc2V0IChvaywgMCwgc2l6ZW9mIG9rKTsKQEAgLTE3OCw3ICsxODAs NyBAQCBleHBhbmRfZm9ybWF0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5f ZGF0YSAqKmFyZ3YpCiAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KCi0gICAgICBwID0g ZnN0YXJ0ICsgMTsgLyogJSAqLworICAgICAgcCA9IGZzdGFydCArIDE7ICAgICAgICAgICAvKiAl ICovCiAgICAgICBsZmxhZyA9IDA7CiAgICAgICBva1snYSddID0gb2tbJ0EnXSA9IG9rWydjJ10g PSBva1snZCddID0gb2tbJ2UnXSA9IG9rWydFJ10KICAgICAgICAgPSBva1snZiddID0gb2tbJ0Yn XSA9IG9rWydnJ10gPSBva1snRyddID0gb2tbJ2knXSA9IG9rWydvJ10KQEAgLTE5MCwzMyArMTky LDMzIEBAIGV4cGFuZF9mb3JtYXQgKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tl bl9kYXRhICoqYXJndikKICAgICAgICAgewogICAgICAgICAgIHN3aXRjaCAoKmZtdCkKICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgIGNhc2UgJ1wnJzogLyogdGhvdXNhbmRzIHNlcGFyYXRvciAq LworICAgICAgICAgICAgY2FzZSAnXCcnOiAgICAgICAgIC8qIHRob3VzYW5kcyBzZXBhcmF0b3Ig Ki8KICAgICAgICAgICAgICAgb2tbJ2EnXSA9IG9rWydBJ10gPSBva1snYyddID0gb2tbJ2UnXSA9 IG9rWydFJ10KICAgICAgICAgICAgICAgICA9IG9rWydvJ10gPSBva1sncyddID0gb2tbJ3gnXSA9 IG9rWydYJ10gPSAwOwogICAgICAgICAgICAgICBmbGFncyB8PSBUSE9VU0FORFM7CiAgICAgICAg ICAgICAgIGJyZWFrOwoKLSAgICAgICAgICAgIGNhc2UgJysnOiAvKiBtYW5kYXRvcnkgc2lnbiAq LworICAgICAgICAgICAgY2FzZSAnKyc6ICAgICAgICAgIC8qIG1hbmRhdG9yeSBzaWduICovCiAg ICAgICAgICAgICAgIG9rWydjJ10gPSBva1snbyddID0gb2tbJ3MnXSA9IG9rWyd1J10gPSBva1sn eCddID0gb2tbJ1gnXSA9IDA7CiAgICAgICAgICAgICAgIGZsYWdzIHw9IFBMVVM7CiAgICAgICAg ICAgICAgIGJyZWFrOwoKLSAgICAgICAgICAgIGNhc2UgJyAnOiAvKiBzcGFjZSBpbnN0ZWFkIG9m IHBvc2l0aXZlIHNpZ24gKi8KKyAgICAgICAgICAgIGNhc2UgJyAnOiAgICAgICAgICAvKiBzcGFj ZSBpbnN0ZWFkIG9mIHBvc2l0aXZlIHNpZ24gKi8KICAgICAgICAgICAgICAgb2tbJ2MnXSA9IG9r WydvJ10gPSBva1sncyddID0gb2tbJ3UnXSA9IG9rWyd4J10gPSBva1snWCddID0gMDsKICAgICAg ICAgICAgICAgZmxhZ3MgfD0gU1BBQ0U7CiAgICAgICAgICAgICAgIGJyZWFrOwoKLSAgICAgICAg ICAgIGNhc2UgJzAnOiAvKiB6ZXJvIHBhZGRpbmcgKi8KKyAgICAgICAgICAgIGNhc2UgJzAnOiAg ICAgICAgICAvKiB6ZXJvIHBhZGRpbmcgKi8KICAgICAgICAgICAgICAgb2tbJ2MnXSA9IG9rWydz J10gPSAwOwogICAgICAgICAgICAgICBmbGFncyB8PSBaRVJPOwogICAgICAgICAgICAgICBicmVh azsKCi0gICAgICAgICAgICBjYXNlICcjJzogLyogYWx0ZXJuYXRlIG91dHB1dCAqLworICAgICAg ICAgICAgY2FzZSAnIyc6ICAgICAgICAgIC8qIGFsdGVybmF0ZSBvdXRwdXQgKi8KICAgICAgICAg ICAgICAgb2tbJ2MnXSA9IG9rWydkJ10gPSBva1snaSddID0gb2tbJ3MnXSA9IG9rWyd1J10gPSAw OwogICAgICAgICAgICAgICBmbGFncyB8PSBBTFQ7CiAgICAgICAgICAgICAgIGJyZWFrOwoKLSAg ICAgICAgICAgIGNhc2UgJy0nOiAvKiBsZWZ0IGp1c3RpZmljYXRpb24gKi8KKyAgICAgICAgICAg IGNhc2UgJy0nOiAgICAgICAgICAvKiBsZWZ0IGp1c3RpZmljYXRpb24gKi8KICAgICAgICAgICAg ICAgZmxhZ3MgfD0gTUlOVVM7CiAgICAgICAgICAgICAgIGJyZWFrOwoKQEAgLTMxNSw3ICszMTcs NyBAQCBleHBhbmRfZm9ybWF0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5f ZGF0YSAqKmFyZ3YpCiAgICAgICAgIHsKICAgICAgICAgY2FzZSAnYyc6CiAgICAgICAgICAgZGF0 YXR5cGUgPSBDSEFSOwotICAgICAgICAgIHAgLT0gMjsgLyogJS4qYyBpcyB1bmRlZmluZWQsIHNv IHVuZG8gdGhlICcuKicuICAqLworICAgICAgICAgIHAgLT0gMjsgICAgICAgICAgICAgICAvKiAl LipjIGlzIHVuZGVmaW5lZCwgc28gdW5kbyB0aGUgJy4qJy4gICovCiAgICAgICAgICAgYnJlYWs7 CgogICAgICAgICBjYXNlICdzJzoKQEAgLTM1NywyNyArMzU5LDI3IEBAIGV4cGFuZF9mb3JtYXQg KHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikKICAgICAg IHN3aXRjaCAoZGF0YXR5cGUpCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBDSEFSOgotICAgICAg ICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgQVJHX0lOVChhcmdjLCBhcmd2KSk7 CisgICAgICAgICAgc3RyID0geGFzcHJpbnRmIChmc3RhcnQsIHdpZHRoLCBBUkdfSU5UIChhcmdj LCBhcmd2KSk7CiAgICAgICAgICAgYnJlYWs7CgogICAgICAgICBjYXNlIElOVDoKLSAgICAgICAg ICBzdHIgPSB4YXNwcmludGYgKGZzdGFydCwgd2lkdGgsIHByZWMsIEFSR19JTlQoYXJnYywgYXJn dikpOworICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgcHJlYywgQVJH X0lOVCAoYXJnYywgYXJndikpOwogICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgY2FzZSBMT05H OgotICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgcHJlYywgQVJHX0xP TkcoYXJnYywgYXJndikpOworICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0 aCwgcHJlYywgQVJHX0xPTkcgKGFyZ2MsIGFyZ3YpKTsKICAgICAgICAgICBicmVhazsKCiAgICAg ICAgIGNhc2UgRE9VQkxFOgotICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0 aCwgcHJlYywgQVJHX0RPVUJMRShhcmdjLCBhcmd2KSk7CisgICAgICAgICAgc3RyID0geGFzcHJp bnRmIChmc3RhcnQsIHdpZHRoLCBwcmVjLCBBUkdfRE9VQkxFIChhcmdjLCBhcmd2KSk7CiAgICAg ICAgICAgYnJlYWs7CgogICAgICAgICBjYXNlIFNUUjoKLSAgICAgICAgICBzdHIgPSB4YXNwcmlu dGYgKGZzdGFydCwgd2lkdGgsIHByZWMsIEFSR19TVFIoYXJnYywgYXJndikpOworICAgICAgICAg IHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgcHJlYywgQVJHX1NUUiAoYXJnYywgYXJn dikpOwogICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICBhYm9y dCgpOworICAgICAgICAgIGFib3J0ICgpOwogICAgICAgICB9CiAjaWYgNCA8IF9fR05VQ19fICsg KDYgPD0gX19HTlVDX01JTk9SX18pCiAjIHByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKZGlmZiAt LWdpdCBhL3NyYy9mcmVlemUuYyBiL3NyYy9mcmVlemUuYwppbmRleCBkMGI1Y2VjZC4uNTBiMTk2 NmEgMTAwNjQ0Ci0tLSBhL3NyYy9mcmVlemUuYworKysgYi9zcmMvZnJlZXplLmMKQEAgLTExNywx MiArMTE3LDEzIEBAIHByb2R1Y2VfZnJvemVuX3N0YXRlIChjb25zdCBjaGFyICpuYW1lKQogICAv KiBXcml0ZSBhIHJlY29nbml6YWJsZSBoZWFkZXIuICAqLwoKICAgeGZwcmludGYgKGZpbGUsICIj IFRoaXMgaXMgYSBmcm96ZW4gc3RhdGUgZmlsZSBnZW5lcmF0ZWQgYnkgJXNcbiIsCi0gICAgICAg ICAgIFBBQ0tBR0VfU1RSSU5HKTsKKyAgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HKTsKICAgeGZw cmludGYgKGZpbGUsICJWMVxuIik7CgogICAvKiBEdW1wIHF1b3RlIGRlbGltaXRlcnMuICAqLwoK LSAgaWYgKHN0cmNtcCAobHF1b3RlLnN0cmluZywgREVGX0xRVU9URSkgfHwgc3RyY21wIChycXVv dGUuc3RyaW5nLCBERUZfUlFVT1RFKSkKKyAgaWYgKHN0cmNtcCAobHF1b3RlLnN0cmluZywgREVG X0xRVU9URSkKKyAgICAgIHx8IHN0cmNtcCAocnF1b3RlLnN0cmluZywgREVGX1JRVU9URSkpCiAg ICAgewogICAgICAgeGZwcmludGYgKGZpbGUsICJRJWQsJWRcbiIsIChpbnQpIGxxdW90ZS5sZW5n dGgsIChpbnQpIHJxdW90ZS5sZW5ndGgpOwogICAgICAgZnB1dHMgKGxxdW90ZS5zdHJpbmcsIGZp bGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2lucHV0LmMgYi9zcmMvaW5wdXQuYwppbmRleCBmOGQ1YzBi YS4uNzU0YmY0ZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbnB1dC5jCisrKyBiL3NyYy9pbnB1dC5jCkBA IC02MSwxNCArNjEsMTQgQEAKICAgIGFjY29yZGluZ2x5LiAgKi8KCiAjaWZkZWYgRU5BQkxFX0NI QU5HRVdPUkQKLSNpbmNsdWRlICJyZWdleC5oIgorIyBpbmNsdWRlICJyZWdleC5oIgogI2VuZGlm CgogZW51bSBpbnB1dF90eXBlCiB7Ci0gIElOUFVUX1NUUklORywgICAgICAgICAvKiBTdHJpbmcg cmVzdWx0aW5nIGZyb20gbWFjcm8gZXhwYW5zaW9uLiAgKi8KLSAgSU5QVVRfRklMRSwgICAgICAg ICAgIC8qIEZpbGUgZnJvbSBjb21tYW5kIGxpbmUgb3IgaW5jbHVkZS4gICovCi0gIElOUFVUX01B Q1JPICAgICAgICAgICAvKiBCdWlsdGluIHJlc3VsdGluZyBmcm9tIGRlZm4uICAqLworICBJTlBV VF9TVFJJTkcsICAgICAgICAgICAgICAgICAvKiBTdHJpbmcgcmVzdWx0aW5nIGZyb20gbWFjcm8g ZXhwYW5zaW9uLiAgKi8KKyAgSU5QVVRfRklMRSwgICAgICAgICAgICAgICAgICAgLyogRmlsZSBm cm9tIGNvbW1hbmQgbGluZSBvciBpbmNsdWRlLiAgKi8KKyAgSU5QVVRfTUFDUk8gICAgICAgICAg ICAgICAgICAgLyogQnVpbHRpbiByZXN1bHRpbmcgZnJvbSBkZWZuLiAgKi8KIH07CgogdHlwZWRl ZiBlbnVtIGlucHV0X3R5cGUgaW5wdXRfdHlwZTsKQEAgLTgwLDI5ICs4MCwyOSBAQCBzdHJ1Y3Qg aW5wdXRfYmxvY2sKICAgY29uc3QgY2hhciAqZmlsZTsgICAgICAgICAgICAgLyogZmlsZSB3aGVy ZSB0aGlzIGlucHV0IGlzIGZyb20gKi8KICAgaW50IGxpbmU7ICAgICAgICAgICAgICAgICAgICAg LyogbGluZSB3aGVyZSB0aGlzIGlucHV0IGlzIGZyb20gKi8KICAgdW5pb24KKyAgeworICAgIHN0 cnVjdAogICAgIHsKLSAgICAgIHN0cnVjdAotICAgICAgICB7Ci0gICAgICAgICAgY2hhciAqc3Ry aW5nOyAgICAgICAgIC8qIHJlbWFpbmluZyBzdHJpbmcgdmFsdWUgKi8KLSAgICAgICAgICBjaGFy ICplbmQ7ICAgICAgICAgICAgLyogdGVybWluYXRpbmcgTlVMIG9mIHN0cmluZyAqLwotICAgICAg ICB9Ci0gICAgICAgIHVfczsgICAgLyogSU5QVVRfU1RSSU5HICovCi0gICAgICBzdHJ1Y3QKLSAg ICAgICAgewotICAgICAgICAgIEZJTEUgKmZwOyAgICAgICAgICAgICAgICAgIC8qIGlucHV0IGZp bGUgaGFuZGxlICovCi0gICAgICAgICAgYm9vbF9iaXRmaWVsZCBlbmQgOiAxOyAgICAgLyogdHJ1 ZSBpZiBwZWVrIGhhcyBzZWVuIEVPRiAqLwotICAgICAgICAgIGJvb2xfYml0ZmllbGQgY2xvc2Ug OiAxOyAgIC8qIHRydWUgaWYgd2Ugc2hvdWxkIGNsb3NlIGZpbGUgb24gcG9wICovCi0gICAgICAg ICAgYm9vbF9iaXRmaWVsZCBhZHZhbmNlIDogMTsgLyogdHJhY2sgcHJldmlvdXMgc3RhcnRfb2Zf aW5wdXRfbGluZSAqLwotICAgICAgICB9Ci0gICAgICAgIHVfZjsgICAgLyogSU5QVVRfRklMRSAq LwotICAgICAgYnVpbHRpbl9mdW5jICpmdW5jOyAgICAgICAvKiBwb2ludGVyIHRvIG1hY3JvJ3Mg ZnVuY3Rpb24gKi8KKyAgICAgIGNoYXIgKnN0cmluZzsgICAgICAgICAgICAgLyogcmVtYWluaW5n IHN0cmluZyB2YWx1ZSAqLworICAgICAgY2hhciAqZW5kOyAgICAgICAgICAgICAgICAvKiB0ZXJt aW5hdGluZyBOVUwgb2Ygc3RyaW5nICovCiAgICAgfQorICAgIHVfczsgICAgICAgICAgICAgICAg ICAgICAgICAvKiBJTlBVVF9TVFJJTkcgKi8KKyAgICBzdHJ1Y3QKKyAgICB7CisgICAgICBGSUxF ICpmcDsgICAgICAgICAgICAgICAgIC8qIGlucHV0IGZpbGUgaGFuZGxlICovCisgICAgICBib29s X2JpdGZpZWxkIGVuZDoxOyAgICAgIC8qIHRydWUgaWYgcGVlayBoYXMgc2VlbiBFT0YgKi8KKyAg ICAgIGJvb2xfYml0ZmllbGQgY2xvc2U6MTsgICAgLyogdHJ1ZSBpZiB3ZSBzaG91bGQgY2xvc2Ug ZmlsZSBvbiBwb3AgKi8KKyAgICAgIGJvb2xfYml0ZmllbGQgYWR2YW5jZToxOyAgLyogdHJhY2sg cHJldmlvdXMgc3RhcnRfb2ZfaW5wdXRfbGluZSAqLworICAgIH0KKyAgICB1X2Y7ICAgICAgICAg ICAgICAgICAgICAgICAgLyogSU5QVVRfRklMRSAqLworICAgIGJ1aWx0aW5fZnVuYyAqZnVuYzsg ICAgICAgICAvKiBwb2ludGVyIHRvIG1hY3JvJ3MgZnVuY3Rpb24gKi8KKyAgfQogICB1OwogfTsK CiB0eXBlZGVmIHN0cnVjdCBpbnB1dF9ibG9jayBpbnB1dF9ibG9jazsKLQogDAorCiAvKiBDdXJy ZW50IGlucHV0IGZpbGUgbmFtZS4gICovCiBjb25zdCBjaGFyICpjdXJyZW50X2ZpbGU7CgpAQCAt MTY3LDkgKzE2Nyw5IEBAIHN0YXRpYyBjb25zdCBjaGFyICp0b2tlbl90eXBlX3N0cmluZyAodG9r ZW5fdHlwZSk7CiAjZW5kaWYKCiBzdGF0aWMgdm9pZCBwb3BfaW5wdXQgKHZvaWQpOwotCiAMCgor CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0uCiB8IHB1c2hfZmlsZSAoKSBwdXNoZXMgYW4gaW5wdXQgZmlsZSBvbiB0 aGUgaW5wdXQgc3RhY2ssIHNhdmluZyB0aGUgICB8CiB8IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBs aW5lIG51bWJlci4gIElmIG5leHQgaXMgbm9uLU5VTEwsIHRoaXMgcHVzaCB8CkBAIC0yNDgsOCAr MjQ4LDcgQEAgcHVzaF9zdHJpbmdfaW5pdCAodm9pZCkKIHsKICAgaWYgKG5leHQgIT0gTlVMTCkK ICAgICB7Ci0gICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAgICAgICAg ICAgIklOVEVSTkFMIEVSUk9SOiByZWN1cnNpdmUgcHVzaF9zdHJpbmchIikpOworICAgICAgTTRF UlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCAiSU5URVJOQUwgRVJST1I6IHJlY3Vyc2l2ZSBwdXNo X3N0cmluZyEiKSk7CiAgICAgICBhYm9ydCAoKTsKICAgICB9CgpAQCAtMjkxLDcgKzI5MCw3IEBA IHB1c2hfc3RyaW5nX2ZpbmlzaCAodm9pZCkKICAgICAgIG5leHQtPnUudV9zLmVuZCA9IG5leHQt PnUudV9zLnN0cmluZyArIGxlbjsKICAgICAgIG5leHQtPnByZXYgPSBpc3A7CiAgICAgICBpc3Ag PSBuZXh0OwotICAgICAgcmV0ID0gaXNwLT51LnVfcy5zdHJpbmc7IC8qIGZvciBpbW1lZGlhdGUg dXNlIG9ubHkgKi8KKyAgICAgIHJldCA9IGlzcC0+dS51X3Muc3RyaW5nOyAgLyogZm9yIGltbWVk aWF0ZSB1c2Ugb25seSAqLwogICAgICAgaW5wdXRfY2hhbmdlID0gdHJ1ZTsKICAgICB9CiAgIGVs c2UKQEAgLTM3Niw3ICszNzUsNyBAQCBwb3BfaW5wdXQgKHZvaWQpCiAgICAgICBhYm9ydCAoKTsK ICAgICB9CiAgIG9ic3RhY2tfZnJlZSAoY3VycmVudF9pbnB1dCwgaXNwKTsKLSAgbmV4dCA9IE5V TEw7IC8qIG1pZ2h0IGJlIHNldCBpbiBwdXNoX3N0cmluZ19pbml0ICgpICovCisgIG5leHQgPSBO VUxMOyAgICAgICAgICAgICAgICAgIC8qIG1pZ2h0IGJlIHNldCBpbiBwdXNoX3N0cmluZ19pbml0 ICgpICovCgogICBpc3AgPSB0bXA7CiAgIGlucHV0X2NoYW5nZSA9IHRydWU7CkBAIC01NTQsNyAr NTUzLDggQEAgbmV4dF9jaGFyXzEgKHZvaWQpCiAgICAgICAgICAgYnJlYWs7CgogICAgICAgICBj YXNlIElOUFVUX01BQ1JPOgotICAgICAgICAgIHBvcF9pbnB1dCAoKTsgLyogSU5QVVRfTUFDUk8g aW5wdXQgc291cmNlcyBoYXMgb25seSBvbmUgdG9rZW4gKi8KKyAgICAgICAgICAvKiBJTlBVVF9N QUNSTyBpbnB1dCBzb3VyY2VzIGhhcyBvbmx5IG9uZSB0b2tlbiAqLworICAgICAgICAgIHBvcF9p bnB1dCAoKTsKICAgICAgICAgICByZXR1cm4gQ0hBUl9NQUNSTzsKCiAgICAgICAgIGRlZmF1bHQ6 CkBAIC02MTUsMTcgKzYxNSwxNyBAQCBtYXRjaF9pbnB1dCAoY29uc3QgY2hhciAqcywgYm9vbCBj b25zdW1lKQoKICAgY2ggPSBwZWVrX2lucHV0ICgpOwogICBpZiAoY2ggIT0gdG9fdWNoYXIgKCpz KSkKLSAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAvKiBmYWlsICovCisg ICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgIC8qIGZhaWwgKi8KCiAgIGlmIChzWzFdID09 ICdcMCcpCiAgICAgewogICAgICAgaWYgKGNvbnN1bWUpCiAgICAgICAgIG5leHRfY2hhciAoKTsK LSAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAvKiBzaG9ydCBtYXRjaCAq LworICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAvKiBzaG9ydCBtYXRjaCAqLwogICAg IH0KCiAgIG5leHRfY2hhciAoKTsKLSAgZm9yIChuID0gMSwgdCA9IHMrKzsgcGVla19pbnB1dCAo KSA9PSB0b191Y2hhciAoKnMrKyk7ICkKKyAgZm9yIChuID0gMSwgdCA9IHMrKzsgcGVla19pbnB1 dCAoKSA9PSB0b191Y2hhciAoKnMrKyk7KQogICAgIHsKICAgICAgIG5leHRfY2hhciAoKTsKICAg ICAgIG4rKzsKQEAgLTg0Myw3ICs4NDMsNyBAQCBuZXh0X3Rva2VuICh0b2tlbl9kYXRhICp0ZCwg aW50ICpsaW5lKQogICBpZiAoIWxpbmUpCiAgICAgbGluZSA9ICZkdW1teTsKCi0gLyogQ2FuJ3Qg Y29uc3VtZSBjaGFyYWN0ZXIgdW50aWwgYWZ0ZXIgQ0hBUl9NQUNSTyBpcyBoYW5kbGVkLiAgKi8K KyAgLyogQ2FuJ3QgY29uc3VtZSBjaGFyYWN0ZXIgdW50aWwgYWZ0ZXIgQ0hBUl9NQUNSTyBpcyBo YW5kbGVkLiAgKi8KICAgY2ggPSBwZWVrX2lucHV0ICgpOwogICBpZiAoY2ggPT0gQ0hBUl9FT0Yp CiAgICAgewpAQCAtODY0LDcgKzg2NCw3IEBAIG5leHRfdG9rZW4gKHRva2VuX2RhdGEgKnRkLCBp bnQgKmxpbmUpCiAgICAgICByZXR1cm4gVE9LRU5fTUFDREVGOwogICAgIH0KCi0gIG5leHRfY2hh ciAoKTsgLyogQ29uc3VtZSBjaGFyYWN0ZXIgd2UgYWxyZWFkeSBwZWVrZWQgYXQuICAqLworICBu ZXh0X2NoYXIgKCk7ICAgICAgICAgICAgICAgICAvKiBDb25zdW1lIGNoYXJhY3RlciB3ZSBhbHJl YWR5IHBlZWtlZCBhdC4gICovCiAgIGZpbGUgPSBjdXJyZW50X2ZpbGU7CiAgICpsaW5lID0gY3Vy cmVudF9saW5lOwogICBpZiAoTUFUQ0ggKGNoLCBiY29tbS5zdHJpbmcsIHRydWUpKQpAQCAtODc4 LDE0ICs4NzgsMTYgQEAgbmV4dF90b2tlbiAodG9rZW5fZGF0YSAqdGQsIGludCAqbGluZSkKICAg ICAgIGVsc2UKICAgICAgICAgLyogY3VycmVudF9maWxlIGNoYW5nZWQgdG8gIiIgaWYgd2Ugc2Vl IENIQVJfRU9GLCB1c2UgdGhlCiAgICAgICAgICAgIHByZXZpb3VzIHZhbHVlIHdlIHN0b3JlZCBl YXJsaWVyLiAgKi8KLSAgICAgICAgbTRfZmFpbHVyZV9hdF9saW5lICgwLCBmaWxlLCAqbGluZSwg XygiRVJST1I6IGVuZCBvZiBmaWxlIGluIGNvbW1lbnQiKSk7CisgICAgICAgIG00X2ZhaWx1cmVf YXRfbGluZSAoMCwgZmlsZSwgKmxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi RVJST1I6IGVuZCBvZiBmaWxlIGluIGNvbW1lbnQiKSk7CgogICAgICAgdHlwZSA9IFRPS0VOX1NU UklORzsKICAgICB9CiAgIGVsc2UgaWYgKGRlZmF1bHRfd29yZF9yZWdleHAgJiYgKGNfaXNhbHBo YSAoY2gpIHx8IGNoID09ICdfJykpCiAgICAgewogICAgICAgb2JzdGFja18xZ3JvdyAoJnRva2Vu X3N0YWNrLCBjaCk7Ci0gICAgICB3aGlsZSAoKGNoID0gcGVla19pbnB1dCAoKSkgIT0gQ0hBUl9F T0YgJiYgKGNfaXNhbG51bSAoY2gpIHx8IGNoID09ICdfJykpCisgICAgICB3aGlsZSAoKGNoID0g cGVla19pbnB1dCAoKSkgIT0gQ0hBUl9FT0YKKyAgICAgICAgICAgICAmJiAoY19pc2FsbnVtIChj aCkgfHwgY2ggPT0gJ18nKSkKICAgICAgICAgewogICAgICAgICAgIG9ic3RhY2tfMWdyb3cgKCZ0 b2tlbl9zdGFjaywgY2gpOwogICAgICAgICAgIG5leHRfY2hhciAoKTsKQEAgLTkwOSw3ICs5MTEs NyBAQCBuZXh0X3Rva2VuICh0b2tlbl9kYXRhICp0ZCwgaW50ICpsaW5lKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvYnN0YWNrX29iamVjdF9zaXplICgmdG9rZW5fc3RhY2spLCAw LCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVncyk7CiAgICAgICAgICAg aWYgKHN0YXJ0cG9zIHx8Ci0gICAgICAgICAgICAgIHJlZ3MuZW5kIFswXSAhPSAocmVnb2ZmX3Qp IG9ic3RhY2tfb2JqZWN0X3NpemUgKCZ0b2tlbl9zdGFjaykpCisgICAgICAgICAgICAgIHJlZ3Mu ZW5kWzBdICE9IChyZWdvZmZfdCkgb2JzdGFja19vYmplY3Rfc2l6ZSAoJnRva2VuX3N0YWNrKSkK ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgKigoKGNoYXIgKikgb2JzdGFja19iYXNlICgm dG9rZW5fc3RhY2spCiAgICAgICAgICAgICAgICAgICsgb2JzdGFja19vYmplY3Rfc2l6ZSAoJnRv a2VuX3N0YWNrKSkgLSAxKSA9ICdcMCc7CkBAIC05MjIsMTAgKzkyNCwxMCBAQCBuZXh0X3Rva2Vu ICh0b2tlbl9kYXRhICp0ZCwgaW50ICpsaW5lKQogICAgICAgb3JpZ190ZXh0ID0gKGNoYXIgKikg b2JzdGFja19maW5pc2ggKCZ0b2tlbl9zdGFjayk7CgogICAgICAgaWYgKHJlZ3Muc3RhcnRbMV0g IT0gLTEpCi0gICAgICAgIG9ic3RhY2tfZ3JvdyAoJnRva2VuX3N0YWNrLG9yaWdfdGV4dCArIHJl Z3Muc3RhcnRbMV0sCisgICAgICAgIG9ic3RhY2tfZ3JvdyAoJnRva2VuX3N0YWNrLCBvcmlnX3Rl eHQgKyByZWdzLnN0YXJ0WzFdLAogICAgICAgICAgICAgICAgICAgICAgIHJlZ3MuZW5kWzFdIC0g cmVncy5zdGFydFsxXSk7CiAgICAgICBlbHNlCi0gICAgICAgIG9ic3RhY2tfZ3JvdyAoJnRva2Vu X3N0YWNrLCBvcmlnX3RleHQscmVncy5lbmRbMF0pOworICAgICAgICBvYnN0YWNrX2dyb3cgKCZ0 b2tlbl9zdGFjaywgb3JpZ190ZXh0LCByZWdzLmVuZFswXSk7CgogICAgICAgdHlwZSA9IFRPS0VO X1dPUkQ7CiAgICAgfQpAQCAtMTA1Nyw5ICsxMDU5LDkgQEAgcGVla190b2tlbiAodm9pZCkKICAg ICB9CiAgIGVsc2UgaWYgKChkZWZhdWx0X3dvcmRfcmVnZXhwICYmIChjX2lzYWxwaGEgKGNoKSB8 fCBjaCA9PSAnXycpKQogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECi0gICAgICAgICAgIHx8ICgh IGRlZmF1bHRfd29yZF9yZWdleHAgJiYgd29yZF9yZWdleHAuZmFzdG1hcFtjaF0pCisgICAgICAg ICAgIHx8ICghZGVmYXVsdF93b3JkX3JlZ2V4cCAmJiB3b3JkX3JlZ2V4cC5mYXN0bWFwW2NoXSkK ICNlbmRpZiAvKiBFTkFCTEVfQ0hBTkdFV09SRCAqLwotICAgICAgICAgICApCisgICAgKQogICAg IHsKICAgICAgIHJlc3VsdCA9IFRPS0VOX1dPUkQ7CiAgICAgfQpAQCAtMTA5NSw4ICsxMDk3LDgg QEAgcGVla190b2tlbiAodm9pZCkKIHN0YXRpYyBjb25zdCBjaGFyICoKIHRva2VuX3R5cGVfc3Ry aW5nICh0b2tlbl90eXBlIHQpCiB7Ci0gc3dpdGNoICh0KQotICAgIHsgLyogVE9LU1cgKi8KKyAg c3dpdGNoICh0KQorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUT0tTVyAqLwog ICAgIGNhc2UgVE9LRU5fRU9GOgogICAgICAgcmV0dXJuICJFT0YiOwogICAgIGNhc2UgVE9LRU5f U1RSSU5HOgpAQCAtMTExNiwxNCArMTExOCwxNCBAQCB0b2tlbl90eXBlX3N0cmluZyAodG9rZW5f dHlwZSB0KQogICAgIGRlZmF1bHQ6CiAgICAgICBhYm9ydCAoKTsKICAgICB9Ci0gfQorfQoKIHN0 YXRpYyB2b2lkCiBwcmludF90b2tlbiAoY29uc3QgY2hhciAqcywgdG9rZW5fdHlwZSB0LCB0b2tl bl9kYXRhICp0ZCkKIHsKICAgeGZwcmludGYgKHN0ZGVyciwgIiVzOiAiLCBzKTsKICAgc3dpdGNo ICh0KQotICAgIHsgLyogVE9LU1cgKi8KKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogVE9LU1cgKi8KICAgICBjYXNlIFRPS0VOX09QRU46CiAgICAgY2FzZSBUT0tFTl9DT01NQToK ICAgICBjYXNlIFRPS0VOX0NMT1NFOgpkaWZmIC0tZ2l0IGEvc3JjL200LmMgYi9zcmMvbTQuYwpp bmRleCBkYjY2ZDhkZi4uMTRmNGY3NTMgMTAwNjQ0Ci0tLSBhL3NyYy9tNC5jCisrKyBiL3NyYy9t NC5jCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAidmVyc2lvbi1ldGMuaCIKCiAjaWZkZWYg REVCVUdfU1RLT1ZGCi0jIGluY2x1ZGUgImFzc2VydC5oIgorIyBpbmNsdWRlIDxhc3NlcnQuaD4K ICNlbmRpZgoKIC8qIFRSQU5TTEFUT1JTOiBUaGlzIGlzIGEgbm9uLUFTQ0lJIG5hbWU6IFRoZSBm aXJzdCBuYW1lIGlzICh3aXRoCkBAIC04NCw3ICs4NCw3IEBAIGludCByZXRjb2RlOwogc3RydWN0 IG1hY3JvX2RlZmluaXRpb24KIHsKICAgc3RydWN0IG1hY3JvX2RlZmluaXRpb24gKm5leHQ7Ci0g IGludCBjb2RlOyAvKiBELCBVLCBzLCB0LCAnXDEnLCBvciBERUJVR0ZJTEVfT1BUSU9OLiAgKi8K KyAgaW50IGNvZGU7ICAgICAgICAgICAgICAgICAgICAgLyogRCwgVSwgcywgdCwgJ1wxJywgb3Ig REVCVUdGSUxFX09QVElPTi4gICovCiAgIGNvbnN0IGNoYXIgKmFyZzsKIH07CiB0eXBlZGVmIHN0 cnVjdCBtYWNyb19kZWZpbml0aW9uIG1hY3JvX2RlZmluaXRpb247CkBAIC0xMDIsNyArMTAyLDcg QEAgbTRfZXJyb3IgKGludCBzdGF0dXMsIGludCBlcnJudW0sIGNvbnN0IGNoYXIgKmZvcm1hdCwg Li4uKQogICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKICAgdmVycm9yX2F0X2xpbmUgKHN0YXR1 cywgZXJybnVtLCBjdXJyZW50X2xpbmUgPyBjdXJyZW50X2ZpbGUgOiBOVUxMLAogICAgICAgICAg ICAgICAgICAgY3VycmVudF9saW5lLCBmb3JtYXQsIGFyZ3MpOwotICBpZiAoZmF0YWxfd2Fybmlu Z3MgJiYgISByZXRjb2RlKQorICBpZiAoZmF0YWxfd2FybmluZ3MgJiYgIXJldGNvZGUpCiAgICAg cmV0Y29kZSA9IEVYSVRfRkFJTFVSRTsKICAgdmFfZW5kIChhcmdzKTsKIH0KQEAgLTEyOCw3ICsx MjgsNyBAQCBtNF9lcnJvcl9hdF9saW5lIChpbnQgc3RhdHVzLCBpbnQgZXJybnVtLCBjb25zdCBj aGFyICpmaWxlLCBpbnQgbGluZSwKICAgdmFfbGlzdCBhcmdzOwogICB2YV9zdGFydCAoYXJncywg Zm9ybWF0KTsKICAgdmVycm9yX2F0X2xpbmUgKHN0YXR1cywgZXJybnVtLCBsaW5lID8gZmlsZSA6 IE5VTEwsIGxpbmUsIGZvcm1hdCwgYXJncyk7Ci0gIGlmIChmYXRhbF93YXJuaW5ncyAmJiAhIHJl dGNvZGUpCisgIGlmIChmYXRhbF93YXJuaW5ncyAmJiAhcmV0Y29kZSkKICAgICByZXRjb2RlID0g RVhJVF9GQUlMVVJFOwogICB2YV9lbmQgKGFyZ3MpOwogfQpAQCAtMTU5LDggKzE1OSw4IEBAIG00 X2ZhaWx1cmVfYXRfbGluZSAoaW50IGVycm51bSwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUs CiAvKiBQcmUtdHJhbnNsYXRlZCBtZXNzYWdlcyBmb3IgcHJvZ3JhbSBlcnJvcnMuICBEbyBub3Qg dHJhbnNsYXRlIGluCiAgICB0aGUgc2lnbmFsIGhhbmRsZXIsIHNpbmNlIGdldHRleHQgYW5kIHN0 cnNpZ25hbCBhcmUgbm90CiAgICBhc3luYy1zaWduYWwtc2FmZS4gICovCi1zdGF0aWMgY29uc3Qg Y2hhciAqIHZvbGF0aWxlIHByb2dyYW1fZXJyb3JfbWVzc2FnZTsKLXN0YXRpYyBjb25zdCBjaGFy ICogdm9sYXRpbGUgc2lnbmFsX21lc3NhZ2VbTlNJR107CitzdGF0aWMgY29uc3QgY2hhciAqdm9s YXRpbGUgcHJvZ3JhbV9lcnJvcl9tZXNzYWdlOworc3RhdGljIGNvbnN0IGNoYXIgKnZvbGF0aWxl IHNpZ25hbF9tZXNzYWdlW05TSUddOwoKIC8qIFByaW50IGEgbmljZXIgbWVzc2FnZSBhYm91dCBh bnkgcHJvZ3JhbW1lciBlcnJvcnMsIHRoZW4gZXhpdC4gIFRoaXMKICAgIG11c3QgYmUgYXlzbmMt c2lnbmFsIHNhZmUsIHNpbmNlIGl0IGlzIGV4ZWN1dGVkIGFzIGEgc2lnbmFsCkBAIC0zMTUsMTkg KzMxNSwyMSBAQCBtaXNtYXRjaCwgb3Igd2hhdGV2ZXIgdmFsdWUgd2FzIHBhc3NlZCB0byB0aGUg bTRleGl0IG1hY3JvLlxuXAogZW51bQogewogICBERUJVR0ZJTEVfT1BUSU9OID0gQ0hBUl9NQVgg KyAxLCAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwotICBESVZFUlNJT05TX09QVElPTiwgICAgICAg ICAgICAgICAgICAgIC8qIG5vdCBxdWl0ZSAtTiwgYmVjYXVzZSBvZiBtZXNzYWdlICovCi0gIFdB Uk5fTUFDUk9fU0VRVUVOQ0VfT1BUSU9OLCAgICAgICAgICAgLyogbm8gc2hvcnQgb3B0ICovCisg IERJVkVSU0lPTlNfT1BUSU9OLCAgICAgICAgICAgIC8qIG5vdCBxdWl0ZSAtTiwgYmVjYXVzZSBv ZiBtZXNzYWdlICovCisgIFdBUk5fTUFDUk9fU0VRVUVOQ0VfT1BUSU9OLCAgIC8qIG5vIHNob3J0 IG9wdCAqLwoKLSAgSEVMUF9PUFRJT04sICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBz aG9ydCBvcHQgKi8KLSAgVkVSU0lPTl9PUFRJT04gICAgICAgICAgICAgICAgICAgICAgICAvKiBu byBzaG9ydCBvcHQgKi8KKyAgSEVMUF9PUFRJT04sICAgICAgICAgICAgICAgICAgLyogbm8gc2hv cnQgb3B0ICovCisgIFZFUlNJT05fT1BUSU9OICAgICAgICAgICAgICAgIC8qIG5vIHNob3J0IG9w dCAqLwogfTsKCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9Ci17 CitzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsKICAgeyJhcmds ZW5ndGgiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2wnfSwKICAgeyJkZWJ1ZyIsIG9wdGlv bmFsX2FyZ3VtZW50LCBOVUxMLCAnZCd9LAogICB7ImRlZmluZSIsIHJlcXVpcmVkX2FyZ3VtZW50 LCBOVUxMLCAnRCd9LAotICB7ImVycm9yLW91dHB1dCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxM LCAnbyd9LCAvKiBGSVhNRTogZGVwcmVjYXRlIGluIDIuMCAqLworCisgIC8qIEZJWE1FOiBkZXBy ZWNhdGUgaW4gMi4wICovCisgIHsiZXJyb3Itb3V0cHV0IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5V TEwsICdvJ30sCisKICAgeyJmYXRhbC13YXJuaW5ncyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnRSd9 LAogICB7ImZyZWV6ZS1zdGF0ZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnRid9LAogICB7 ImdudSIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnZyd9LApAQCAtMzQ5LDEyICszNTEsMTMgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPQoKICAgeyJkZWJ1Z2ZpbGUi LCBvcHRpb25hbF9hcmd1bWVudCwgTlVMTCwgREVCVUdGSUxFX09QVElPTn0sCiAgIHsiZGl2ZXJz aW9ucyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBESVZFUlNJT05TX09QVElPTn0sCi0gIHsi d2Fybi1tYWNyby1zZXF1ZW5jZSIsIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBXQVJOX01BQ1JP X1NFUVVFTkNFX09QVElPTn0sCisgIHsid2Fybi1tYWNyby1zZXF1ZW5jZSIsIG9wdGlvbmFsX2Fy Z3VtZW50LCBOVUxMLAorICAgV0FSTl9NQUNST19TRVFVRU5DRV9PUFRJT059LAoKICAgeyJoZWxw Iiwgbm9fYXJndW1lbnQsIE5VTEwsIEhFTFBfT1BUSU9OfSwKICAgeyJ2ZXJzaW9uIiwgbm9fYXJn dW1lbnQsIE5VTEwsIFZFUlNJT05fT1BUSU9OfSwKCi0gIHsgTlVMTCwgMCwgTlVMTCwgMCB9LAor ICB7TlVMTCwgMCwgTlVMTCwgMH0sCiB9OwoKIC8qIFByb2Nlc3MgYSBjb21tYW5kIGxpbmUgZmls ZSBOQU1FLCBhbmQgcmV0dXJuIHRydWUgb25seSBpZiBpdCB3YXMKQEAgLTM5NCw5ICszOTcsOSBA QCBwcm9jZXNzX2ZpbGUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICAnLScgZm9yY2VzIGdldG9wdF9s b25nIHRvIGhhbmQgYmFjayBmaWxlIG5hbWVzIGFzIGFyZ3VtZW50cyB0byBvcHQKICAgICdcMScs IHJhdGhlciB0aGFuIHJlb3JkZXJpbmcgdGhlIGNvbW1hbmQgbGluZS4gICovCiAjaWZkZWYgRU5B QkxFX0NIQU5HRVdPUkQKLSNkZWZpbmUgT1BUU1RSSU5HICItQjpEOkVGOkdIOkk6TDpOOlBRUjpT OlQ6VTpXOmQ6OmVnaWw6bzpzdDoiCisjIGRlZmluZSBPUFRTVFJJTkcgIi1COkQ6RUY6R0g6STpM Ok46UFFSOlM6VDpVOlc6ZDo6ZWdpbDpvOnN0OiIKICNlbHNlCi0jZGVmaW5lIE9QVFNUUklORyAi LUI6RDpFRjpHSDpJOkw6TjpQUVI6UzpUOlU6ZDo6ZWdpbDpvOnN0OiIKKyMgZGVmaW5lIE9QVFNU UklORyAiLUI6RDpFRjpHSDpJOkw6TjpQUVI6UzpUOlU6ZDo6ZWdpbDpvOnN0OiIKICNlbmRpZgoK IGludApAQCAtNDY3LDcgKzQ3MCw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJn dikKICAgICBpZiAoY3Jhc2gpCiAgICAgICB7CiAgICAgICAgIGlmICghc3RydG9sIChjcmFzaCwg TlVMTCwgMTApKQotICAgICAgICAgICsrKihpbnQgKikgODsKKyAgICAgICAgICArKyAqIChpbnQg KikgODsKICAgICAgICAgYXNzZXJ0IChmYWxzZSk7CiAgICAgICAgIGFib3J0ICgpOwogICAgICAg fQpAQCAtNDkwLDcgKzQ5Myw4IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJndikK ICAgICAgICAgLyogQ29tcGF0aWJpbGl0eSBqdW5rOiBvcHRpb25zIHRoYXQgb3RoZXIgaW1wbGVt ZW50YXRpb25zCiAgICAgICAgICAgIHN1cHBvcnQsIGJ1dCB3aGljaCB3ZSBpZ25vcmUgYXMgbm8t b3BzIGFuZCBkb24ndCBsaXN0IGluCiAgICAgICAgICAgIC0taGVscC4gICovCi0gICAgICAgIGVy cm9yICgwLCAwLCBfKCJ3YXJuaW5nOiBgbTQgLSVjJyBtYXkgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVy ZSByZWxlYXNlIiksCisgICAgICAgIGVycm9yICgwLCAwLAorICAgICAgICAgICAgICAgXygid2Fy bmluZzogYG00IC0lYycgbWF5IGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZSIpLAogICAg ICAgICAgICAgICAgb3B0Y2hhcik7CiAgICAgICAgIGJyZWFrOwoKQEAgLTUyMyw3ICs1MjcsNyBA QCBtYWluIChpbnQgYXJnYywgY2hhciAqY29uc3QgKmFyZ3YpCiAgICAgICAgIGJyZWFrOwoKICAg ICAgIGNhc2UgJ0UnOgotICAgICAgICBpZiAoISBmYXRhbF93YXJuaW5ncykKKyAgICAgICAgaWYg KCFmYXRhbF93YXJuaW5ncykKICAgICAgICAgICBmYXRhbF93YXJuaW5ncyA9IHRydWU7CiAgICAg ICAgIGVsc2UKICAgICAgICAgICB3YXJuaW5nX3N0YXR1cyA9IEVYSVRfRkFJTFVSRTsKQEAgLTYw NSwxMCArNjA5LDEwIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJndikKICAgICAg ICAgYnJlYWs7CgogICAgICAgY2FzZSBXQVJOX01BQ1JPX1NFUVVFTkNFX09QVElPTjoKLSAgICAg ICAgIC8qIERvbid0IGNhbGwgc2V0X21hY3JvX3NlcXVlbmNlIGhlcmUsIGFzIGl0IGNhbiBleGl0 LgotICAgICAgICAgICAgLS13YXJuLW1hY3JvLXNlcXVlbmNlIHNldHMgb3B0YXJnIHRvIE5VTEwg KHdoaWNoIHVzZXMgdGhlCi0gICAgICAgICAgICBkZWZhdWx0IHJlZ2V4cCk7IC0td2Fybi1tYWNy by1zZXF1ZW5jZT0gc2V0cyBvcHRhcmcgdG8gIiIKLSAgICAgICAgICAgICh3aGljaCBkaXNhYmxl cyB0aGVzZSB3YXJuaW5ncykuICAqLworICAgICAgICAvKiBEb24ndCBjYWxsIHNldF9tYWNyb19z ZXF1ZW5jZSBoZXJlLCBhcyBpdCBjYW4gZXhpdC4KKyAgICAgICAgICAgLS13YXJuLW1hY3JvLXNl cXVlbmNlIHNldHMgb3B0YXJnIHRvIE5VTEwgKHdoaWNoIHVzZXMgdGhlCisgICAgICAgICAgIGRl ZmF1bHQgcmVnZXhwKTsgLS13YXJuLW1hY3JvLXNlcXVlbmNlPSBzZXRzIG9wdGFyZyB0byAiIgor ICAgICAgICAgICAod2hpY2ggZGlzYWJsZXMgdGhlc2Ugd2FybmluZ3MpLiAgKi8KICAgICAgICAg bWFjcm9fc2VxdWVuY2UgPSBvcHRhcmc7CiAgICAgICAgIGJyZWFrOwoKZGlmZiAtLWdpdCBhL3Ny Yy9tNC5oIGIvc3JjL200LmgKaW5kZXggYzFmYjgwNmIuLjE2ODAyM2FiIDEwMDY0NAotLS0gYS9z cmMvbTQuaAorKysgYi9zcmMvbTQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGFzc2Vy dC5oPgogI2luY2x1ZGUgPGMtY3R5cGUuaD4KICNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg PGVycm9yLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+CiAjaW5j bHVkZSA8c3RkYm9vbC5oPgpAQCAtNDMsNyArNDQsNiBAQAogI2luY2x1ZGUgImNsb3NlLXN0cmVh bS5oIgogI2luY2x1ZGUgImNsb3NlaW4uaCIKICNpbmNsdWRlICJkaXJuYW1lLmgiCi0jaW5jbHVk ZSAiZXJyb3IuaCIKICNpbmNsdWRlICJleGl0ZmFpbC5oIgogI2luY2x1ZGUgImZpbGVuYW1lY2F0 LmgiCiAjaW5jbHVkZSAiaW50cHJvcHMuaCIKQEAgLTg4LDcgKzg4LDcgQEAKICMgdW5kZWYgdGV4 dGRvbWFpbgogIyBkZWZpbmUgdGV4dGRvbWFpbihEb21haW5uYW1lKSAvKiBlbXB0eSAqLwogIyB1 bmRlZiBiaW5kdGV4dGRvbWFpbgotIyBkZWZpbmUgYmluZHRleHRkb21haW4oRG9tYWlubmFtZSwg RGlybmFtZSkgLyogZW1wdHkgKi8KKyMgZGVmaW5lIGJpbmR0ZXh0ZG9tYWluKERvbWFpbm5hbWUs IERpcm5hbWUpICAgIC8qIGVtcHR5ICovCiAjZW5kaWYKCiAjZGVmaW5lIF8obXNnaWQpIGdldHRl eHQgKG1zZ2lkKQpAQCAtOTYsMTAgKzk2LDEwIEBACiAvKiBWYXJpb3VzIGRlY2xhcmF0aW9ucy4g ICovCgogc3RydWN0IHN0cmluZwotICB7Ci0gICAgY2hhciAqc3RyaW5nOyAgICAgICAgICAgICAg IC8qIGNoYXJhY3RlcnMgb2YgdGhlIHN0cmluZyAqLwotICAgIHNpemVfdCBsZW5ndGg7ICAgICAg ICAgICAgICAvKiBsZW5ndGggb2YgdGhlIHN0cmluZyAqLwotICB9OworeworICBjaGFyICpzdHJp bmc7ICAgICAgICAgICAgICAgICAvKiBjaGFyYWN0ZXJzIG9mIHRoZSBzdHJpbmcgKi8KKyAgc2l6 ZV90IGxlbmd0aDsgICAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIHRoZSBzdHJpbmcgKi8KK307 CiB0eXBlZGVmIHN0cnVjdCBzdHJpbmcgU1RSSU5HOwoKIC8qIE1lbW9yeSBhbGxvY2F0aW9uLiAg Ki8KQEAgLTEyMiwxNSArMTIyLDE1IEBAIHR5cGVkZWYgdW5zaWduZWQgaW50IGJvb2xfYml0Zmll bGQ7CiAvKiBGaWxlOiBtNC5jICAtLS0gZ2xvYmFsIGRlZmluaXRpb25zLiAgKi8KCiAvKiBPcHRp b24gZmxhZ3MuICAqLwotZXh0ZXJuIGludCBzeW5jX291dHB1dDsgICAgICAgICAgICAgICAgIC8q IC1zICovCi1leHRlcm4gaW50IGRlYnVnX2xldmVsOyAgICAgICAgICAgICAgICAgLyogLWQgKi8K LWV4dGVybiBzaXplX3QgaGFzaF90YWJsZV9zaXplOyAgICAgICAgICAvKiAtSCAqLwotZXh0ZXJu IGludCBub19nbnVfZXh0ZW5zaW9uczsgICAgICAgICAgIC8qIC1HICovCi1leHRlcm4gaW50IHBy ZWZpeF9hbGxfYnVpbHRpbnM7ICAgICAgICAgLyogLVAgKi8KK2V4dGVybiBpbnQgc3luY19vdXRw dXQ7ICAgICAgICAgLyogLXMgKi8KK2V4dGVybiBpbnQgZGVidWdfbGV2ZWw7ICAgICAgICAgLyog LWQgKi8KK2V4dGVybiBzaXplX3QgaGFzaF90YWJsZV9zaXplOyAgLyogLUggKi8KK2V4dGVybiBp bnQgbm9fZ251X2V4dGVuc2lvbnM7ICAgLyogLUcgKi8KK2V4dGVybiBpbnQgcHJlZml4X2FsbF9i dWlsdGluczsgLyogLVAgKi8KIGV4dGVybiBpbnQgbWF4X2RlYnVnX2FyZ3VtZW50X2xlbmd0aDsg ICAvKiAtbCAqLwotZXh0ZXJuIGludCBzdXBwcmVzc193YXJuaW5nczsgICAgICAgICAgIC8qIC1R ICovCi1leHRlcm4gaW50IHdhcm5pbmdfc3RhdHVzOyAgICAgICAgICAgICAgLyogLUUgKi8KLWV4 dGVybiBpbnQgbmVzdGluZ19saW1pdDsgICAgICAgICAgICAgICAvKiAtTCAqLworZXh0ZXJuIGlu dCBzdXBwcmVzc193YXJuaW5nczsgICAvKiAtUSAqLworZXh0ZXJuIGludCB3YXJuaW5nX3N0YXR1 czsgICAgICAvKiAtRSAqLworZXh0ZXJuIGludCBuZXN0aW5nX2xpbWl0OyAgICAgICAvKiAtTCAq LwogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECiBleHRlcm4gY29uc3QgY2hhciAqdXNlcl93b3Jk X3JlZ2V4cDsgICAgLyogLVcgKi8KICNlbmRpZgpAQCAtMTM4LDYgKzEzOCw4IEBAIGV4dGVybiBj b25zdCBjaGFyICp1c2VyX3dvcmRfcmVnZXhwOyAgICAvKiAtVyAqLwogLyogRXJyb3IgaGFuZGxp bmcuICAqLwogZXh0ZXJuIGludCByZXRjb2RlOwoKKworLyogKklOREVOVC1PRkYqICovCiBleHRl cm4gdm9pZCBtNF9lcnJvciAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgLi4uKQogICBBVFRSSUJV VEVfQ09MRCBBVFRSSUJVVEVfRk9STUFUICgoX19wcmludGZfXywgMywgNCkpOwogZXh0ZXJuIHZv aWQgbTRfZXJyb3JfYXRfbGluZSAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgaW50LCBjb25zdCBj aGFyICosIC4uLikKQEAgLTE0NywxMSArMTQ5LDEyIEBAIGV4dGVybiBfTm9yZXR1cm4gdm9pZCBt NF9mYWlsdXJlIChpbnQsIGNvbnN0IGNoYXIgKiwgLi4uKQogZXh0ZXJuIF9Ob3JldHVybiB2b2lk IG00X2ZhaWx1cmVfYXRfbGluZSAoaW50LCBjb25zdCBjaGFyICosIGludCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgLi4uKQogICBBVFRS SUJVVEVfRk9STUFUICgoX19wcmludGZfXywgNCwgNSkpOworLyogKklOREVOVC1PTiogKi8KCiAj ZGVmaW5lIE00RVJST1IoQXJnbGlzdCkgKG00X2Vycm9yIEFyZ2xpc3QpCiAjZGVmaW5lIE00RVJS T1JfQVRfTElORShBcmdsaXN0KSAobTRfZXJyb3JfYXRfbGluZSBBcmdsaXN0KQotCiAMCisKIC8q IEZpbGU6IGRlYnVnLmMgIC0tLSBkZWJ1Z2dpbmcgYW5kIHRyYWNpbmcgZnVuY3Rpb24uICAqLwoK IGV4dGVybiBGSUxFICpkZWJ1ZzsKQEAgLTI3MywxNyArMjc2LDE3IEBAIHN0cnVjdCB0b2tlbl9k YXRhCiB7CiAgIGVudW0gdG9rZW5fZGF0YV90eXBlIHR5cGU7CiAgIHVuaW9uCisgIHsKKyAgICBz dHJ1Y3QKICAgICB7Ci0gICAgICBzdHJ1Y3QKLSAgICAgICAgewotICAgICAgICAgIGNoYXIgKnRl eHQ7CisgICAgICBjaGFyICp0ZXh0OwogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECi0gICAgICAg ICAgY2hhciAqb3JpZ2luYWxfdGV4dDsKKyAgICAgIGNoYXIgKm9yaWdpbmFsX3RleHQ7CiAjZW5k aWYKLSAgICAgICAgfQotICAgICAgdV90OwotICAgICAgYnVpbHRpbl9mdW5jICpmdW5jOwogICAg IH0KKyAgICB1X3Q7CisgICAgYnVpbHRpbl9mdW5jICpmdW5jOworICB9CiAgIHU7CiB9OwoKQEAg LTM1OSwxMiArMzYyLDEyIEBAIGVudW0gc3ltYm9sX2xvb2t1cAogLyogU3ltYm9sIHRhYmxlIGVu dHJ5LiAgKi8KIHN0cnVjdCBzeW1ib2wKIHsKLSAgc3RydWN0IHN5bWJvbCAqc3RhY2s7IC8qIHB1 c2hkZWYgc3RhY2sgKi8KLSAgc3RydWN0IHN5bWJvbCAqbmV4dDsgLyogaGFzaCBidWNrZXQgY2hh aW4gKi8KLSAgYm9vbF9iaXRmaWVsZCB0cmFjZWQgOiAxOwotICBib29sX2JpdGZpZWxkIG1hY3Jv X2FyZ3MgOiAxOwotICBib29sX2JpdGZpZWxkIGJsaW5kX25vX2FyZ3MgOiAxOwotICBib29sX2Jp dGZpZWxkIGRlbGV0ZWQgOiAxOworICBzdHJ1Y3Qgc3ltYm9sICpzdGFjazsgICAgICAgICAvKiBw dXNoZGVmIHN0YWNrICovCisgIHN0cnVjdCBzeW1ib2wgKm5leHQ7ICAgICAgICAgIC8qIGhhc2gg YnVja2V0IGNoYWluICovCisgIGJvb2xfYml0ZmllbGQgdHJhY2VkOjE7CisgIGJvb2xfYml0Zmll bGQgbWFjcm9fYXJnczoxOworICBib29sX2JpdGZpZWxkIGJsaW5kX25vX2FyZ3M6MTsKKyAgYm9v bF9iaXRmaWVsZCBkZWxldGVkOjE7CiAgIGludCBwZW5kaW5nX2V4cGFuc2lvbnM7CgogICBzaXpl X3QgaGFzaDsKQEAgLTM4Nyw5ICszOTAsOSBAQCB0eXBlZGVmIGVudW0gc3ltYm9sX2xvb2t1cCBz eW1ib2xfbG9va3VwOwogdHlwZWRlZiBzdHJ1Y3Qgc3ltYm9sIHN5bWJvbDsKIHR5cGVkZWYgdm9p ZCBoYWNrX3N5bWJvbCAoc3ltYm9sICosIHZvaWQgKik7CgotI2RlZmluZSBIQVNITUFYIDY1NTM3 ICAgICAgICAgICAgIC8qIGRlZmF1bHQsIG92ZXJyaWRkZW4gYnkgLUhzaXplICovCisjZGVmaW5l IEhBU0hNQVggNjU1MzcgICAgICAgICAgIC8qIGRlZmF1bHQsIG92ZXJyaWRkZW4gYnkgLUhzaXpl ICovCgotZXh0ZXJuIHZvaWQgZnJlZV9zeW1ib2wgKHN5bWJvbCAqc3ltKTsKK2V4dGVybiB2b2lk IGZyZWVfc3ltYm9sIChzeW1ib2wgKiBzeW0pOwogZXh0ZXJuIHZvaWQgc3ltdGFiX2luaXQgKHZv aWQpOwogZXh0ZXJuIHN5bWJvbCAqbG9va3VwX3N5bWJvbCAoY29uc3QgY2hhciAqLCBzeW1ib2xf bG9va3VwKTsKIGV4dGVybiB2b2lkIGhhY2tfYWxsX3N5bWJvbHMgKGhhY2tfc3ltYm9sICosIHZv aWQgKik7CkBAIC00MDYsOSArNDA5LDkgQEAgZXh0ZXJuIHZvaWQgY2FsbF9tYWNybyAoc3ltYm9s ICosIGludCwgdG9rZW5fZGF0YSAqKiwgc3RydWN0IG9ic3RhY2sgKik7CiBzdHJ1Y3QgYnVpbHRp bgogewogICBjb25zdCBjaGFyICpuYW1lOwotICBib29sX2JpdGZpZWxkIGdudV9leHRlbnNpb24g OiAxOwotICBib29sX2JpdGZpZWxkIGdyb2tzX21hY3JvX2FyZ3MgOiAxOwotICBib29sX2JpdGZp ZWxkIGJsaW5kX2lmX25vX2FyZ3MgOiAxOworICBib29sX2JpdGZpZWxkIGdudV9leHRlbnNpb246 MTsKKyAgYm9vbF9iaXRmaWVsZCBncm9rc19tYWNyb19hcmdzOjE7CisgIGJvb2xfYml0ZmllbGQg YmxpbmRfaWZfbm9fYXJnczoxOwogICBidWlsdGluX2Z1bmMgKmZ1bmM7CiB9OwoKQEAgLTQzNSw5 ICs0MzgsMTQgQEAgZXh0ZXJuIHZvaWQgc2V0X21hY3JvX3NlcXVlbmNlIChjb25zdCBjaGFyICop OwogZXh0ZXJuIHZvaWQgZnJlZV9tYWNyb19zZXF1ZW5jZSAodm9pZCk7CiBleHRlcm4gdm9pZCBk ZWZpbmVfdXNlcl9tYWNybyAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHN5bWJvbF9sb29r dXApOwogZXh0ZXJuIHZvaWQgdW5kaXZlcnRfYWxsICh2b2lkKTsKLWV4dGVybiB2b2lkIGV4cGFu ZF91c2VyX21hY3JvIChzdHJ1Y3Qgb2JzdGFjayAqLCBzeW1ib2wgKiwgaW50LCB0b2tlbl9kYXRh ICoqKTsKK2V4dGVybiB2b2lkIGV4cGFuZF91c2VyX21hY3JvIChzdHJ1Y3Qgb2JzdGFjayAqLCBz eW1ib2wgKiwgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuX2RhdGEg KiopOworCisvKiAqSU5ERU5ULU9GRiogKi8KIGV4dGVybiB2b2lkIG00X3BsYWNlaG9sZGVyIChz dHJ1Y3Qgb2JzdGFjayAqLCBpbnQsIHRva2VuX2RhdGEgKiopCiAgIEFUVFJJQlVURV9DT0xEOwor LyogKklOREVOVC1PTiogKi8KKwogZXh0ZXJuIHZvaWQgaW5pdF9wYXR0ZXJuX2J1ZmZlciAoc3Ry dWN0IHJlX3BhdHRlcm5fYnVmZmVyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgcmVfcmVnaXN0ZXJzICopOwogZXh0ZXJuIGNvbnN0IGNoYXIgKm50b2EgKGludDMy X3QsIGludCk7CkBAIC00ODcsNyArNDk1LDExIEBAIGV4dGVybiB2b2lkIHJlbG9hZF9mcm96ZW5f c3RhdGUgKGNvbnN0IGNoYXIgKik7CiAgICBhIGJpdCBzYWZlciB0aGFuIGNhc3RpbmcgdG8gdW5z aWduZWQgY2hhciwgc2luY2UgaXQgY2F0Y2hlcyBzb21lIHR5cGUKICAgIGVycm9ycyB0aGF0IHRo ZSBjYXN0IGRvZXNuJ3QuICAqLwogI2lmIEhBVkVfSU5MSU5FCi1zdGF0aWMgaW5saW5lIHVuc2ln bmVkIGNoYXIgdG9fdWNoYXIgKGNoYXIgY2gpIHsgcmV0dXJuIGNoOyB9CitzdGF0aWMgaW5saW5l IHVuc2lnbmVkIGNoYXIKK3RvX3VjaGFyIChjaGFyIGNoKQoreworICByZXR1cm4gY2g7Cit9CiAj ZWxzZQogIyBkZWZpbmUgdG9fdWNoYXIoQykgKCh1bnNpZ25lZCBjaGFyKSAoQykpCiAjZW5kaWYK ZGlmZiAtLWdpdCBhL3NyYy9tYWNyby5jIGIvc3JjL21hY3JvLmMKaW5kZXggMGUwMmI0M2MuLmVh ODFhMzMwIDEwMDY0NAotLS0gYS9zcmMvbWFjcm8uYworKysgYi9zcmMvbWFjcm8uYwpAQCAtODUs NyArODUsNyBAQCBleHBhbmRfdG9rZW4gKHN0cnVjdCBvYnN0YWNrICpvYnMsIHRva2VuX3R5cGUg dCwgdG9rZW5fZGF0YSAqdGQsIGludCBsaW5lKQogICBzeW1ib2wgKnN5bTsKCiAgIHN3aXRjaCAo dCkKLSAgICB7IC8qIFRPS1NXICovCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IFRPS1NXICovCiAgICAgY2FzZSBUT0tFTl9FT0Y6CiAgICAgY2FzZSBUT0tFTl9NQUNERUY6CiAg ICAgICBicmVhazsKQEAgLTEwMyw4ICsxMDMsNyBAQCBleHBhbmRfdG9rZW4gKHN0cnVjdCBvYnN0 YWNrICpvYnMsIHRva2VuX3R5cGUgdCwgdG9rZW5fZGF0YSAqdGQsIGludCBsaW5lKQogICAgICAg c3ltID0gbG9va3VwX3N5bWJvbCAoVE9LRU5fREFUQV9URVhUICh0ZCksIFNZTUJPTF9MT09LVVAp OwogICAgICAgaWYgKHN5bSA9PSBOVUxMIHx8IFNZTUJPTF9UWVBFIChzeW0pID09IFRPS0VOX1ZP SUQKICAgICAgICAgICB8fCAoU1lNQk9MX1RZUEUgKHN5bSkgPT0gVE9LRU5fRlVOQwotICAgICAg ICAgICAgICAmJiBTWU1CT0xfQkxJTkRfTk9fQVJHUyAoc3ltKQotICAgICAgICAgICAgICAmJiBw ZWVrX3Rva2VuICgpICE9IFRPS0VOX09QRU4pKQorICAgICAgICAgICAgICAmJiBTWU1CT0xfQkxJ TkRfTk9fQVJHUyAoc3ltKSAmJiBwZWVrX3Rva2VuICgpICE9IFRPS0VOX09QRU4pKQogICAgICAg ICB7CiAjaWZkZWYgRU5BQkxFX0NIQU5HRVdPUkQKICAgICAgICAgICBzaGlwb3V0X3RleHQgKG9i cywgVE9LRU5fREFUQV9PUklHX1RFWFQgKHRkKSwKQEAgLTE2MSw3ICsxNjAsNyBAQCBleHBhbmRf YXJndW1lbnQgKHN0cnVjdCBvYnN0YWNrICpvYnMsIHRva2VuX2RhdGEgKmFyZ3ApCiAgICAgewoK ICAgICAgIHN3aXRjaCAodCkKLSAgICAgICAgeyAvKiBUT0tTVyAqLworICAgICAgICB7ICAgICAg ICAgICAgICAgICAgICAgICAvKiBUT0tTVyAqLwogICAgICAgICBjYXNlIFRPS0VOX0NPTU1BOgog ICAgICAgICBjYXNlIFRPS0VOX0NMT1NFOgogICAgICAgICAgIGlmIChwYXJlbl9sZXZlbCA9PSAw KQpAQCAtMjQwLDcgKzIzOSw3IEBAIGNvbGxlY3RfYXJndW1lbnRzIChzeW1ib2wgKnN5bSwgc3Ry dWN0IG9ic3RhY2sgKmFyZ3B0ciwKCiAgIGlmIChwZWVrX3Rva2VuICgpID09IFRPS0VOX09QRU4p CiAgICAgewotICAgICAgbmV4dF90b2tlbiAoJnRkLCBOVUxMKTsgLyogZ29iYmxlIHBhcmVudGhl c2lzICovCisgICAgICBuZXh0X3Rva2VuICgmdGQsIE5VTEwpOyAgIC8qIGdvYmJsZSBwYXJlbnRo ZXNpcyAqLwogICAgICAgZG8KICAgICAgICAgewogICAgICAgICAgIG1vcmVfYXJncyA9IGV4cGFu ZF9hcmd1bWVudCAoYXJndW1lbnRzLCAmdGQpOwpAQCAtMjcwLDcgKzI2OSw3IEBAIGNvbGxlY3Rf YXJndW1lbnRzIChzeW1ib2wgKnN5bSwgc3RydWN0IG9ic3RhY2sgKmFyZ3B0ciwKCiB2b2lkCiBj YWxsX21hY3JvIChzeW1ib2wgKnN5bSwgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2LAotICAg ICAgICAgICAgICAgICBzdHJ1Y3Qgb2JzdGFjayAqZXhwYW5zaW9uKQorICAgICAgICAgICAgc3Ry dWN0IG9ic3RhY2sgKmV4cGFuc2lvbikKIHsKICAgc3dpdGNoIChTWU1CT0xfVFlQRSAoc3ltKSkK ICAgICB7CkBAIC0zMjksNyArMzI4LDggQEAgZXhwYW5kX21hY3JvIChzeW1ib2wgKnN5bSkKICAg U1lNQk9MX1BFTkRJTkdfRVhQQU5TSU9OUyAoc3ltKSsrOwogICBleHBhbnNpb25fbGV2ZWwrKzsK ICAgaWYgKG5lc3RpbmdfbGltaXQgPiAwICYmIGV4cGFuc2lvbl9sZXZlbCA+IG5lc3RpbmdfbGlt aXQpCi0gICAgbTRfZmFpbHVyZSAoMCwgXygicmVjdXJzaW9uIGxpbWl0IG9mICVkIGV4Y2VlZGVk LCB1c2UgLUw8Tj4gdG8gY2hhbmdlIGl0IiksCisgICAgbTRfZmFpbHVyZSAoMCwKKyAgICAgICAg ICAgICAgICBfKCJyZWN1cnNpb24gbGltaXQgb2YgJWQgZXhjZWVkZWQsIHVzZSAtTDxOPiB0byBj aGFuZ2UgaXQiKSwKICAgICAgICAgICAgICAgICBuZXN0aW5nX2xpbWl0KTsKCiAgIG1hY3JvX2Nh bGxfaWQrKzsKZGlmZiAtLWdpdCBhL3NyYy9vdXRwdXQuYyBiL3NyYy9vdXRwdXQuYwppbmRleCA4 NGYxNTEzZS4uMzgxZWY2ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9vdXRwdXQuYworKysgYi9zcmMvb3V0 cHV0LmMKQEAgLTYyLDE3ICs2MiwxNyBAQCB0eXBlZGVmIHN0cnVjdCB0ZW1wX2RpciBtNF90ZW1w X2RpcjsKIHR5cGVkZWYgc3RydWN0IG00X2RpdmVyc2lvbiBtNF9kaXZlcnNpb247Cgogc3RydWN0 IG00X2RpdmVyc2lvbgoreworICB1bmlvbgogICB7Ci0gICAgdW5pb24KLSAgICAgIHsKLSAgICAg ICAgRklMRSAqZmlsZTsgICAgICAgICAgICAgLyogRGl2ZXJzaW9uIGZpbGUgb24gZGlzay4gICov Ci0gICAgICAgIGNoYXIgKmJ1ZmZlcjsgICAgICAgICAgIC8qIE1hbGxvYydkIGRpdmVyc2lvbiBi dWZmZXIuICAqLwotICAgICAgICBtNF9kaXZlcnNpb24gKm5leHQ7ICAgICAvKiBGcmVlLWxpc3Qg cG9pbnRlciAqLwotICAgICAgfSB1OwotICAgIGludCBkaXZudW07ICAgICAgICAgICAgICAgICAv KiBXaGljaCBkaXZlcnNpb24gdGhpcyByZXByZXNlbnRzLiAgKi8KLSAgICBpbnQgc2l6ZTsgICAg ICAgICAgICAgICAgICAgLyogVXNhYmxlIHNpemUgYmVmb3JlIHJlYWxsb2NhdGlvbi4gICovCi0g ICAgaW50IHVzZWQ7ICAgICAgICAgICAgICAgICAgIC8qIFVzZWQgYnVmZmVyIGxlbmd0aCwgb3Ig dG1wIGZpbGUgZXhpc3RzLiAgKi8KLSAgfTsKKyAgICBGSUxFICpmaWxlOyAgICAgICAgICAgICAg ICAgLyogRGl2ZXJzaW9uIGZpbGUgb24gZGlzay4gICovCisgICAgY2hhciAqYnVmZmVyOyAgICAg ICAgICAgICAgIC8qIE1hbGxvYydkIGRpdmVyc2lvbiBidWZmZXIuICAqLworICAgIG00X2RpdmVy c2lvbiAqbmV4dDsgICAgICAgICAvKiBGcmVlLWxpc3QgcG9pbnRlciAqLworICB9IHU7CisgIGlu dCBkaXZudW07ICAgICAgICAgICAgICAgICAgIC8qIFdoaWNoIGRpdmVyc2lvbiB0aGlzIHJlcHJl c2VudHMuICAqLworICBpbnQgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAvKiBVc2FibGUgc2l6 ZSBiZWZvcmUgcmVhbGxvY2F0aW9uLiAgKi8KKyAgaW50IHVzZWQ7ICAgICAgICAgICAgICAgICAg ICAgLyogVXNlZCBidWZmZXIgbGVuZ3RoLCBvciB0bXAgZmlsZSBleGlzdHMuICAqLworfTsKCiAv KiBUYWJsZSBvZiBkaXZlcnNpb25zIDEgdGhyb3VnaCBJTlRfTUFYLiAgKi8KIHN0YXRpYyBnbF9v c2V0X3QgZGl2ZXJzaW9uX3RhYmxlOwpAQCAtMTI5LDggKzEyOSw4IEBAIHN0YXRpYyBpbnQgdG1w X2ZpbGUyX293bmVyOwoKIC8qIFRydWUgaWYgdG1wX2ZpbGUyIGlzIG1vcmUgcmVjZW50bHkgdXNl ZC4gICovCiBzdGF0aWMgYm9vbCB0bXBfZmlsZTJfcmVjZW50OwotCiAMCisKIC8qIEludGVybmFs IHJvdXRpbmVzLiAgKi8KCiAvKiBDYWxsYmFjayBmb3IgY29tcGFyaW5nIGxpc3QgZWxlbWVudHMg RUxUMSBhbmQgRUxUMiBmb3Igb3JkZXIgaW4KQEAgLTMzMSw3ICszMzEsNyBAQCBtNF90bXByZW1v dmUgKGludCBkaXZudW0pCiAvKiBUcmFuc2ZlciB0aGUgdGVtcG9yYXJ5IGZpbGUgZm9yIGRpdmVy c2lvbiBPTEROVU0gdG8gdGhlIHByZXZpb3VzbHkKICAgIHVudXNlZCBkaXZlcnNpb24gTkVXTlVN LiAgUmV0dXJuIGFuIG9wZW4gc3RyZWFtIHZpc2l0aW5nIHRoZSBuZXcKICAgIHRlbXBvcmFyeSBm aWxlLCBwb3NpdGlvbmVkIGF0IHRoZSBlbmQsIG9yIGV4aXQgb24gZmFpbHVyZS4gICovCi1zdGF0 aWMgRklMRSoKK3N0YXRpYyBGSUxFICoKIG00X3RtcHJlbmFtZSAoaW50IG9sZG51bSwgaW50IG5l d251bSkKIHsKICAgLyogbTRfdG1wbmFtZSByZXVzZXMgaXRzIHJldHVybiBidWZmZXIuICAqLwpA QCAtMzQ2LDcgKzM0Niw4IEBAIG00X3RtcHJlbmFtZSAoaW50IG9sZG51bSwgaW50IG5ld251bSkK ICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgIGlmIChjbG9zZV9zdHJlYW1fdGVtcCAo dG1wX2ZpbGUxKSkKLSAgICAgICAgICAgIG00X2ZhaWx1cmUgKGVycm5vLCBfKCJjYW5ub3QgY2xv c2UgdGVtcG9yYXJ5IGZpbGUgZm9yIGRpdmVyc2lvbiIpKTsKKyAgICAgICAgICAgIG00X2ZhaWx1 cmUgKGVycm5vLAorICAgICAgICAgICAgICAgICAgICAgICAgXygiY2Fubm90IGNsb3NlIHRlbXBv cmFyeSBmaWxlIGZvciBkaXZlcnNpb24iKSk7CiAgICAgICAgICAgdG1wX2ZpbGUxX293bmVyID0g MDsKICAgICAgICAgfQogICAgIH0KQEAgLTM1OCw3ICszNTksOCBAQCBtNF90bXByZW5hbWUgKGlu dCBvbGRudW0sIGludCBuZXdudW0pCiAgICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgICBp ZiAoY2xvc2Vfc3RyZWFtX3RlbXAgKHRtcF9maWxlMikpCi0gICAgICAgICAgICBtNF9mYWlsdXJl IChlcnJubywgXygiY2Fubm90IGNsb3NlIHRlbXBvcmFyeSBmaWxlIGZvciBkaXZlcnNpb24iKSk7 CisgICAgICAgICAgICBtNF9mYWlsdXJlIChlcnJubywKKyAgICAgICAgICAgICAgICAgICAgICAg IF8oImNhbm5vdCBjbG9zZSB0ZW1wb3JhcnkgZmlsZSBmb3IgZGl2ZXJzaW9uIikpOwogICAgICAg ICAgIHRtcF9maWxlMl9vd25lciA9IDA7CiAgICAgICAgIH0KICAgICB9CkBAIC0zNzAsOCArMzcy LDggQEAgbTRfdG1wcmVuYW1lIChpbnQgb2xkbnVtLCBpbnQgbmV3bnVtKQogICBmcmVlIChvbGRu YW1lKTsKICAgcmV0dXJuIG00X3RtcG9wZW4gKG5ld251bSwgZmFsc2UpOwogfQotCiAMCisKIC8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgogfCBPdXRwdXQgaW5pdGlhbGl6YXRpb24uICB8CiBg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTYyNywxNCArNjI5LDM3IEBAIHNoaXBvdXRf dGV4dCAoc3RydWN0IG9ic3RhY2sgKm9icywgY29uc3QgY2hhciAqdGV4dCwgaW50IGxlbmd0aCwg aW50IGxpbmUpCgogICAgICAgICAvKiBJbi1saW5lIHNob3J0IHRleHRzLiAgKi8KCi0gICAgICBj YXNlIDg6IE9VVFBVVF9DSEFSQUNURVIgKCp0ZXh0KTsgdGV4dCsrOyBGQUxMVEhST1VHSDsKLSAg ICAgIGNhc2UgNzogT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOyB0ZXh0Kys7IEZBTExUSFJPVUdI OwotICAgICAgY2FzZSA2OiBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7IHRleHQrKzsgRkFMTFRI Uk9VR0g7Ci0gICAgICBjYXNlIDU6IE9VVFBVVF9DSEFSQUNURVIgKCp0ZXh0KTsgdGV4dCsrOyBG QUxMVEhST1VHSDsKLSAgICAgIGNhc2UgNDogT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOyB0ZXh0 Kys7IEZBTExUSFJPVUdIOwotICAgICAgY2FzZSAzOiBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7 IHRleHQrKzsgRkFMTFRIUk9VR0g7Ci0gICAgICBjYXNlIDI6IE9VVFBVVF9DSEFSQUNURVIgKCp0 ZXh0KTsgdGV4dCsrOyBGQUxMVEhST1VHSDsKLSAgICAgIGNhc2UgMTogT1VUUFVUX0NIQVJBQ1RF UiAoKnRleHQpOyBGQUxMVEhST1VHSDsKKyAgICAgIGNhc2UgODoKKyAgICAgICAgT1VUUFVUX0NI QVJBQ1RFUiAoKnRleHQpOworICAgICAgICB0ZXh0Kys7CisgICAgICAgIEZBTExUSFJPVUdIOwor ICAgICAgY2FzZSA3OgorICAgICAgICBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7CisgICAgICAg IHRleHQrKzsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgICBjYXNlIDY6CisgICAgICAgIE9V VFBVVF9DSEFSQUNURVIgKCp0ZXh0KTsKKyAgICAgICAgdGV4dCsrOworICAgICAgICBGQUxMVEhS T1VHSDsKKyAgICAgIGNhc2UgNToKKyAgICAgICAgT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOwor ICAgICAgICB0ZXh0Kys7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgICAgY2FzZSA0OgorICAg ICAgICBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7CisgICAgICAgIHRleHQrKzsKKyAgICAgICAg RkFMTFRIUk9VR0g7CisgICAgICBjYXNlIDM6CisgICAgICAgIE9VVFBVVF9DSEFSQUNURVIgKCp0 ZXh0KTsKKyAgICAgICAgdGV4dCsrOworICAgICAgICBGQUxMVEhST1VHSDsKKyAgICAgIGNhc2Ug MjoKKyAgICAgICAgT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOworICAgICAgICB0ZXh0Kys7Cisg ICAgICAgIEZBTExUSFJPVUdIOworICAgICAgY2FzZSAxOgorICAgICAgICBPVVRQVVRfQ0hBUkFD VEVSICgqdGV4dCk7CisgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgY2FzZSAwOgogICAgICAg ICByZXR1cm47CgpAQCAtNjU1LDcgKzY4MCw3IEBAIHNoaXBvdXRfdGV4dCAoc3RydWN0IG9ic3Rh Y2sgKm9icywgY29uc3QgY2hhciAqdGV4dCwgaW50IGxlbmd0aCwgaW50IGxpbmUpCiAgICAgICAg ICAgb3V0cHV0X2N1cnJlbnRfbGluZSsrOwogI2lmZGVmIERFQlVHX09VVFBVVAogICAgICAgICAg IHhmcHJpbnRmIChzdGRlcnIsICJERUJVRzogbGluZSAlZCwgY3VyICVkLCBjdXIgb3V0ICVkXG4i LAotICAgICAgICAgICAgICAgICAgIGxpbmUsIGN1cnJlbnRfbGluZSwgb3V0cHV0X2N1cnJlbnRf bGluZSk7CisgICAgICAgICAgICAgICAgICAgIGxpbmUsIGN1cnJlbnRfbGluZSwgb3V0cHV0X2N1 cnJlbnRfbGluZSk7CiAjZW5kaWYKCiAgICAgICAgICAgLyogT3V0cHV0IGEgYCNsaW5lIE5VTScg c3luY2hyb25pemF0aW9uIGRpcmVjdGl2ZSBpZiBuZWVkZWQuCkBAIC02OTQsNyArNzE5LDcgQEAg c2hpcG91dF90ZXh0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBjb25zdCBjaGFyICp0ZXh0LCBpbnQg bGVuZ3RoLCBpbnQgbGluZSkKICAgICAgICAgICAgICAgb3V0cHV0X2N1cnJlbnRfbGluZSsrOwog I2lmZGVmIERFQlVHX09VVFBVVAogICAgICAgICAgICAgICB4ZnByaW50ZiAoc3RkZXJyLCAiREVC VUc6IGxpbmUgJWQsIGN1ciAlZCwgY3VyIG91dCAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAg ICAgbGluZSwgY3VycmVudF9saW5lLCBvdXRwdXRfY3VycmVudF9saW5lKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGxpbmUsIGN1cnJlbnRfbGluZSwgb3V0cHV0X2N1cnJlbnRfbGluZSk7CiAj ZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7 CkBAIC05NzUsNyArMTAwMCw3IEBAIGZyZWV6ZV9kaXZlcnNpb25zIChGSUxFICpmaWxlKQogICBz YXZlZF9udW1iZXIgPSBjdXJyZW50X2RpdmVyc2lvbjsKICAgbGFzdF9pbnNlcnRlZCA9IDA7CiAg IG1ha2VfZGl2ZXJzaW9uICgwKTsKLSAgb3V0cHV0X2ZpbGUgPSBmaWxlOyAvKiBrbHVkZ2UgaW4g dGhlIGZyb3plbiBmaWxlICovCisgIG91dHB1dF9maWxlID0gZmlsZTsgICAgICAgICAgIC8qIGts dWRnZSBpbiB0aGUgZnJvemVuIGZpbGUgKi8KCiAgIGl0ZXIgPSBnbF9vc2V0X2l0ZXJhdG9yIChk aXZlcnNpb25fdGFibGUpOwogICB3aGlsZSAoZ2xfb3NldF9pdGVyYXRvcl9uZXh0ICgmaXRlciwg JmVsdCkpCmRpZmYgLS1naXQgYS9zcmMvcGF0aC5jIGIvc3JjL3BhdGguYwppbmRleCAzMzUyNGE1 Zi4uNGZmNTFmNDEgMTAwNjQ0Ci0tLSBhL3NyYy9wYXRoLmMKKysrIGIvc3JjL3BhdGguYwpAQCAt MzMsMTEgKzMzLDExIEBAIHN0cnVjdCBpbmNsdWRlcwoKIHR5cGVkZWYgc3RydWN0IGluY2x1ZGVz IGluY2x1ZGVzOwoKLXN0YXRpYyBpbmNsdWRlcyAqZGlyX2xpc3Q7ICAgICAgICAgICAgICAvKiB0 aGUgbGlzdCBvZiBwYXRoIGRpcmVjdG9yaWVzICovCi1zdGF0aWMgaW5jbHVkZXMgKmRpcl9saXN0 X2VuZDsgICAgICAgICAgLyogdGhlIGVuZCBvZiBzYW1lICovCi1zdGF0aWMgaW50IGRpcl9tYXhf bGVuZ3RoOyAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIGxvbmdlc3QgZGlyZWN0b3J5IG5hbWUg Ki8KLQorc3RhdGljIGluY2x1ZGVzICpkaXJfbGlzdDsgICAgICAvKiB0aGUgbGlzdCBvZiBwYXRo IGRpcmVjdG9yaWVzICovCitzdGF0aWMgaW5jbHVkZXMgKmRpcl9saXN0X2VuZDsgIC8qIHRoZSBl bmQgb2Ygc2FtZSAqLworc3RhdGljIGludCBkaXJfbWF4X2xlbmd0aDsgICAgICAvKiBsZW5ndGgg b2YgbG9uZ2VzdCBkaXJlY3RvcnkgbmFtZSAqLwogDAorCiB2b2lkCiBpbmNsdWRlX2luaXQgKHZv aWQpCiB7CkBAIC05MSw3ICs5MSw3IEBAIGFkZF9pbmNsdWRlX2RpcmVjdG9yeSAoY29uc3QgY2hh ciAqZGlyKQogICBpbmNsLT5sZW4gPSBzdHJsZW4gKGRpcik7CiAgIGluY2wtPmRpciA9IHhzdHJk dXAgKGRpcik7CgotICBpZiAoaW5jbC0+bGVuID4gZGlyX21heF9sZW5ndGgpIC8qIHJlbWVtYmVy IGxlbiBvZiBsb25nZXN0IGRpcmVjdG9yeSAqLworICBpZiAoaW5jbC0+bGVuID4gZGlyX21heF9s ZW5ndGgpICAgICAgIC8qIHJlbWVtYmVyIGxlbiBvZiBsb25nZXN0IGRpcmVjdG9yeSAqLwogICAg IGRpcl9tYXhfbGVuZ3RoID0gaW5jbC0+bGVuOwoKICAgaWYgKGRpcl9saXN0X2VuZCA9PSBOVUxM KQpkaWZmIC0tZ2l0IGEvc3JjL3N5bXRhYi5jIGIvc3JjL3N5bXRhYi5jCmluZGV4IGVjM2JhMmEz Li5mNGE1MTk3YiAxMDA2NDQKLS0tIGEvc3JjL3N5bXRhYi5jCisrKyBiL3NyYy9zeW10YWIuYwpA QCAtNDAsMTAgKzQwLDExIEBACgogc3RydWN0IHByb2ZpbGUKIHsKLSAgaW50IGVudHJ5OyAvKiBO dW1iZXIgb2YgdGltZXMgbG9va3VwX3N5bWJvbCBjYWxsZWQgd2l0aCB0aGlzIG1vZGUuICAqLwot ICBpbnQgY29tcGFyaXNvbnM7IC8qIE51bWJlciBvZiB0aW1lcyBzdHJjbXAgd2FzIGNhbGxlZC4g ICovCi0gIGludCBtaXNzZXM7IC8qIE51bWJlciBvZiB0aW1lcyBzdHJjbXAgZGlkIG5vdCByZXR1 cm4gMC4gICovCi0gIGxvbmcgbG9uZyBieXRlczsgLyogTnVtYmVyIG9mIGJ5dGVzIGNvbXBhcmVk LiAgKi8KKyAgaW50IGVudHJ5OyAgICAgICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHRpbWVz IGxvb2t1cF9zeW1ib2wgY2FsbGVkIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGhpcyBtb2RlLiAgKi8KKyAgaW50IGNvbXBhcmlzb25zOyAgICAgICAgICAgICAgLyog TnVtYmVyIG9mIHRpbWVzIHN0cmNtcCB3YXMgY2FsbGVkLiAgKi8KKyAgaW50IG1pc3NlczsgICAg ICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHRpbWVzIHN0cmNtcCBkaWQgbm90IHJldHVybiAw LiAgKi8KKyAgbG9uZyBsb25nIGJ5dGVzOyAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIGJ5dGVz IGNvbXBhcmVkLiAgKi8KIH07Cgogc3RhdGljIHN0cnVjdCBwcm9maWxlIHByb2ZpbGVzWzVdOwpA QCAtNTYsMTAgKzU3LDEwIEBAIHNob3dfcHJvZmlsZSAodm9pZCkKICAgaW50IGk7CiAgIGZvciAo aSA9IDA7IGkgPCA1OyBpKyspCiAgICAgewotICAgICAgeGZwcmludGYoc3RkZXJyLCAibTQ6IGxv b2t1cCBtb2RlICVkIGNhbGxlZCAlZCB0aW1lcywgJWQgY29tcGFyZXMsICIKLSAgICAgICAgICAg ICAgICIlZCBtaXNzZXMsICVsbGQgYnl0ZXNcbiIsCi0gICAgICAgICAgICAgICBpLCBwcm9maWxl c1tpXS5lbnRyeSwgcHJvZmlsZXNbaV0uY29tcGFyaXNvbnMsCi0gICAgICAgICAgICAgICBwcm9m aWxlc1tpXS5taXNzZXMsIHByb2ZpbGVzW2ldLmJ5dGVzKTsKKyAgICAgIHhmcHJpbnRmIChzdGRl cnIsICJtNDogbG9va3VwIG1vZGUgJWQgY2FsbGVkICVkIHRpbWVzLCAlZCBjb21wYXJlcywgIgor ICAgICAgICAgICAgICAgICIlZCBtaXNzZXMsICVsbGQgYnl0ZXNcbiIsCisgICAgICAgICAgICAg ICAgaSwgcHJvZmlsZXNbaV0uZW50cnksIHByb2ZpbGVzW2ldLmNvbXBhcmlzb25zLAorICAgICAg ICAgICAgICAgIHByb2ZpbGVzW2ldLm1pc3NlcywgcHJvZmlsZXNbaV0uYnl0ZXMpOwogICAgIH0K IH0KCkBAIC04NSw4ICs4Niw4IEBAIHByb2ZpbGVfc3RyY21wIChjb25zdCBjaGFyICpzMSwgY29u c3QgY2hhciAqczIpCgogIyBkZWZpbmUgc3RyY21wIHByb2ZpbGVfc3RyY21wCiAjZW5kaWYgLyog REVCVUdfU1lNICovCi0KIAwKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCiB8IEluaXRpYWxpc2UgdGhlIHN5bWJv bCB0YWJsZSwgYnkgYWxsb2NhdGluZyB0aGUgbmVjZXNzYXJ5IHN0b3JhZ2UsIHwKIHwgYW5kIHpl cm9pbmcgYWxsIHRoZSBlbnRyaWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfApAQCAtMTA4LDcgKzEwOSw3IEBAIHN5bXRhYl9pbml0ICh2b2lkKQoKICNpZmRlZiBERUJV R19TWU0KICAgewotICAgIGludCBlID0gYXRleGl0KHNob3dfcHJvZmlsZSk7CisgICAgaW50IGUg PSBhdGV4aXQgKHNob3dfcHJvZmlsZSk7CiAgICAgaWYgKGUgIT0gMCkKICAgICAgIE00RVJST1Ig KCh3YXJuaW5nX3N0YXR1cywgMCwKICAgICAgICAgICAgICAgICAiSU5URVJOQUwgRVJST1I6IHVu YWJsZSB0byBzaG93IHN5bXRhYiBwcm9maWxlIikpOwpAQCAtMTQzLDEwICsxNDQsMTEgQEAgZnJl ZV9zeW1ib2wgKHN5bWJvbCAqc3ltKQogICBpZiAoU1lNQk9MX1BFTkRJTkdfRVhQQU5TSU9OUyAo c3ltKSA+IDApCiAgICAgewogICAgICAgU1lNQk9MX0RFTEVURUQgKHN5bSkgPSB0cnVlOwotICAg ICAgaWYgKFNZTUJPTF9TVEFDSyAoc3ltKSkgewotICAgICAgICBTWU1CT0xfTkFNRSAoc3ltKSA9 IHhzdHJkdXAgKFNZTUJPTF9OQU1FIChzeW0pKTsKLSAgICAgICAgU1lNQk9MX1NUQUNLIChzeW0p ID0gTlVMTDsKLSAgICAgIH0KKyAgICAgIGlmIChTWU1CT0xfU1RBQ0sgKHN5bSkpCisgICAgICAg IHsKKyAgICAgICAgICBTWU1CT0xfTkFNRSAoc3ltKSA9IHhzdHJkdXAgKFNZTUJPTF9OQU1FIChz eW0pKTsKKyAgICAgICAgICBTWU1CT0xfU1RBQ0sgKHN5bSkgPSBOVUxMOworICAgICAgICB9CiAg ICAgfQogICBlbHNlCiAgICAgewpAQCAtMjAzLDcgKzIwNSw3IEBAIGxvb2t1cF9zeW1ib2wgKGNv bnN0IGNoYXIgKm5hbWUsIHN5bWJvbF9sb29rdXAgbW9kZSkKCiAgIC8qIFN5bWJvbCBub3QgZm91 bmQuICAqLwoKLSAgc3BwID0gKHByZXYgIT0gTlVMTCkgPyAgJnByZXYtPm5leHQgOiAmc3ltdGFi W2ggJSBoYXNoX3RhYmxlX3NpemVdOworICBzcHAgPSAocHJldiAhPSBOVUxMKSA/ICZwcmV2LT5u ZXh0IDogJnN5bXRhYltoICUgaGFzaF90YWJsZV9zaXplXTsKCiAgIHN3aXRjaCAobW9kZSkKICAg ICB7CkBAIC0yODUsMTIgKzI4NywxMSBAQCBsb29rdXBfc3ltYm9sIChjb25zdCBjaGFyICpuYW1l LCBzeW1ib2xfbG9va3VwIG1vZGUpCiAgICAgICBpZiAoY21wICE9IDApCiAgICAgICAgIHJldHVy biBOVUxMOwogICAgICAgaWYgKHN5bSA9PSBOVUxMKQotCXJldHVybiBOVUxMOworICAgICAgICBy ZXR1cm4gTlVMTDsKICAgICAgIHsKICAgICAgICAgYm9vbCB0cmFjZWQgPSBmYWxzZTsKICAgICAg ICAgc3ltYm9sICpuZXh0OwotICAgICAgICBpZiAoU1lNQk9MX1NUQUNLIChzeW0pICE9IE5VTEwK LSAgICAgICAgICAgICYmIG1vZGUgPT0gU1lNQk9MX1BPUERFRikKKyAgICAgICAgaWYgKFNZTUJP TF9TVEFDSyAoc3ltKSAhPSBOVUxMICYmIG1vZGUgPT0gU1lNQk9MX1BPUERFRikKICAgICAgICAg ICB7CiAgICAgICAgICAgICBTWU1CT0xfVFJBQ0VEIChTWU1CT0xfU1RBQ0sgKHN5bSkpID0gU1lN Qk9MX1RSQUNFRCAoc3ltKTsKICAgICAgICAgICAgIFNZTUJPTF9TVEFDSyAoc3ltKS0+bmV4dCA9 IHN5bS0+bmV4dDsKLS0gCjIuNDguMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGluZyBsaXN0Ck00LXBhdGNoZXNAZ251Lm9y ZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9tNC1wYXRjaGVzCg==