From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v4 09/12] fuzz/x86_emulate: Make input more compact Date: Wed, 11 Oct 2017 18:52:40 +0100 Message-ID: <20171011175243.19871-9-george.dunlap@citrix.com> References: <20171011175243.19871-1-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2LBf-0000Z7-8H for xen-devel@lists.xenproject.org; Wed, 11 Oct 2017 17:52:55 +0000 In-Reply-To: <20171011175243.19871-1-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian Jackson , Wei Liu , George Dunlap , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org QXQgdGhlIG1vbWVudCwgQUZMIHJlY2tvbnMgdGhhdCBmb3IgYW55IGdpdmVuIGlucHV0LCA4NyUg b2YgaXQgaXMKY29tcGxldGVseSBpcnJlbGV2YW50OiB0aGF0IGlzLCBpdCBjYW4gY2hhbmdlIGl0 IGFzIG11Y2ggYXMgaXQgd2FudHMKYnV0IGhhdmUgbm8gaW1wYWN0IG9uIHRoZSByZXN1bHQgb2Yg dGhlIHRlc3Q7IGFuZCB5ZXQgaXQgY2FuJ3QgcmVtb3ZlCml0LgoKVGhpcyBpcyBsYXJnZWx5IGJl Y2F1c2Ugd2UgaW50ZXJwcmV0IHRoZSBibG9iIGhhbmRlZCB0byB1cyBhcyBhIGxhcmdlCnN0cnVj dCwgaW5jbHVkaW5nIENSIHZhbHVlcywgTVNSIHZhbHVlcywgc2VnbWVudCByZWdpc3RlcnMsIGFu ZCBhIGZ1bGwKY3B1X3VzZXJfcmVncy4KCkluc3RlYWQsIG1vZGlmeSBvdXIgaW50ZXJwcmV0YXRp b24gdG8gaGF2ZSBhICJzZXQgc3RhdGUiIHN0YW56YSBhdCB0aGUKZnJvbnQuICBCZWdpbiBieSBy ZWFkaW5nIGEgMTYtYml0IHZhbHVlOyBpZiBpdCBpcyBsb3dlciB0aGFuIGEgY2VydGFpbgp0aHJl c2hvbGQsIHNldCBzb21lIHN0YXRlIGFjY29yZGluZyB0byB3aGF0IGJ5dGUgaXQgaXMsIGFuZCBy ZXBlYXQuCkNvbnRpbnVlIHVudGlsIHRoZSBieXRlIGlzIGFib3ZlIGEgY2VydGFpbiB0aHJlc2hv bGQuCgpUaGlzIGFsbG93cyBBRkwgdG8gY29tcGFjdCBhbnkgZ2l2ZW4gdGVzdCBjYXNlIG11Y2gg c21hbGxlcjsgdG8gdGhlCnBvaW50IHdoZXJlIG5vdyBpdCByZWNrb25zIHRoZXJlIGlzIG5vdCBh IHNpbmdsZSBieXRlIG9mIHRoZSB0ZXN0IGZpbGUKd2hpY2ggYmVjb21lcyBpcnJlbGV2YW50LiAg VGVzdGluZyBoYXZlIHNob3duIHRoYXQgdGhpcyBvcHRpb24gYm90aAphbGxvd3MgQUZMIHRvIHJl YWNoIGNvdmVyYWdlIG11Y2ggZmFzdGVyLCBhbmQgdG8gaGF2ZSBhIHRvdGFsIGNvdmVyYWdlCmhp Z2hlciB0aGFuIHdpdGggdGhlIG9sZCBmb3JtYXQuCgpNYWtlIHRoaXMgYW4gb3B0aW9uIChyYXRo ZXIgdGhhbiBhIHVuaWxhdGVyYWwgY2hhbmdlKSB0byBlbmFibGUKc2lkZS1ieS1zaWRlIHBlcmZv cm1hbmNlIGNvbXBhcmlzb24gb2YgdGhlIG9sZCBhbmQgbmV3IGZvcm1hdHMuCgpTaWduZWQtb2Zm LWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+CkFja2VkLWJ5OiBJ YW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQWNrZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCnY0OgogLSBSZWJhc2Ugb3ZlciBwcmV2aW91cyBj aGFuZ2VzCnYzOgogLSBTZXQgZGVmYXVsdCBmb3Igb3B0X2NvbXBhY3Qgc3RhdGljYWxseSBpbiBm dXp6LWVtdWwuYyByYXRoZXIgdGhhbiBhZmwtaGFybmVzcwogLSBNYWtlIGlucHV0IHNpemUgLyB1 bmNvbmRpdGlvbmFsIGlucHV0IHJlYWRpbmcgbW9yZSBjb25zaXN0ZW50CiAtIFJlcXVpcmUgb25s eSBtaW5pbXVtIGlucHV0IHJlYWQsIG5vdCBmaXJzdCBpbnN0cnVjdGlvbiBieXRlCiAtIFVzZSBB UlJBWV9TSVpFKCkgZm9yIGhhcmRjb2RlZCB2YWx1ZXMKIC0gVXNlIGBmb3IgKCA7IDsgKWAgcmF0 aGVyIHRoYW4gYHdoaWxlKDEpYAogLSBTb21lIHN0eWxlIGlzc3VlcwogLSBNb3ZlIG9wdF9jb21w YWN0IGRlY2xhcmF0aW9uIGludG8gZnV6ei1lbXVsLmgKdjI6IFBvcnQgb3ZlciBwcmV2aW91cyBj aGFuZ2VzCgpDQzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGNpdHJpeC5jb20+CkNDOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCiB0 b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9hZmwtaGFybmVzcy5jIHwgICA5ICst CiB0b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYyAgIHwgMTAz ICsrKysrKysrKysrKysrKysrKystLS0KIHRvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxh dG9yL2Z1enotZW11bC5oICAgfCAgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25z KCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mdXp6L3g4Nl9pbnN0cnVj dGlvbl9lbXVsYXRvci9hZmwtaGFybmVzcy5jIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25f ZW11bGF0b3IvYWZsLWhhcm5lc3MuYwppbmRleCBkNTE0NDY4ZGQyLi4yM2E3N2E3M2MwIDEwMDY0 NAotLS0gYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9hZmwtaGFybmVzcy5j CisrKyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2FmbC1oYXJuZXNzLmMK QEAgLTQsNiArNCw3IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+ CiAjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgogI2luY2x1ZGUgImZ1 enotZW11bC5oIgogCiBzdGF0aWMgdWludDhfdCBpbnB1dFtJTlBVVF9TSVpFXTsKQEAgLTIxLDkg KzIyLDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICB7CiAgICAgICAg IGVudW0gewogICAgICAgICAgICAgT1BUX01JTl9TSVpFLAorICAgICAgICAgICAgT1BUX0NPTVBB Q1QsCiAgICAgICAgIH07CiAgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIGxvcHRz W10gPSB7CiAgICAgICAgICAgICB7ICJtaW4taW5wdXQtc2l6ZSIsIG5vX2FyZ3VtZW50LCBOVUxM LCBPUFRfTUlOX1NJWkUgfSwKKyAgICAgICAgICAgIHsgImNvbXBhY3QiLCByZXF1aXJlZF9hcmd1 bWVudCwgTlVMTCwgT1BUX0NPTVBBQ1QgfSwKICAgICAgICAgICAgIHsgMCwgMCwgMCwgMCB9CiAg ICAgICAgIH07CiAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmdfb25seShhcmdjLCBhcmd2LCAi IiwgbG9wdHMsIE5VTEwpOwpAQCAtMzgsOCArNDEsMTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogICAgICAgICAgICAgZXhpdCgwKTsKICAgICAgICAgICAgIGJyZWFrOwogCisg ICAgICAgIGNhc2UgT1BUX0NPTVBBQ1Q6CisgICAgICAgICAgICBvcHRfY29tcGFjdCA9IGF0b2ko b3B0YXJnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ug Jz8nOgotICAgICAgICAgICAgcHJpbnRmKCJVc2FnZTogJXMgJEZJTEUgWyRGSUxFLi4uXSB8IFst LW1pbi1pbnB1dC1zaXplXVxuIiwgYXJndlswXSk7CisgICAgICAgICAgICBwcmludGYoIlVzYWdl OiAlcyBbLS1jb21wYWN0PTB8MV0gJEZJTEUgWyRGSUxFLi4uXSB8IFstLW1pbi1pbnB1dC1zaXpl XVxuIiwgYXJndlswXSk7CiAgICAgICAgICAgICBleGl0KC0xKTsKICAgICAgICAgICAgIGJyZWFr OwogCmRpZmYgLS1naXQgYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6 LWVtdWwuYyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5j CmluZGV4IDRlMzc1MWNlNTAuLjNlYThhOGI3MjYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Z1enoveDg2 X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCisrKyBiL3Rvb2xzL2Z1enoveDg2X2lu c3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCkBAIC0zMSwxNCArMzEsMTUgQEAgc3RydWN0 IGZ1enpfc3RhdGUKIHsKICAgICAvKiBFbXVsYXRlZCBDUFUgc3RhdGUgKi8KICAgICB1bnNpZ25l ZCBsb25nIG9wdGlvbnM7CisjZGVmaW5lIERBVEFfU0laRV9DT01QQUNUIG9mZnNldG9mKHN0cnVj dCBmdXp6X3N0YXRlLCBjcikKICAgICB1bnNpZ25lZCBsb25nIGNyWzVdOwogICAgIHVpbnQ2NF90 IG1zcltNU1JfSU5ERVhfTUFYXTsKICAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciBzZWdtZW50 c1tTRUdfTlVNXTsKICAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyByZWdzOwogCiAgICAgLyogRnV6 emVyJ3MgaW5wdXQgZGF0YS4gKi8KLSNkZWZpbmUgREFUQV9PRkZTRVQgb2Zmc2V0b2Yoc3RydWN0 IGZ1enpfc3RhdGUsIGNvcnB1cykKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICogY29ycHVzOwor I2RlZmluZSBEQVRBX1NJWkVfRlVMTCBvZmZzZXRvZihzdHJ1Y3QgZnV6el9zdGF0ZSwgY29ycHVz KQorICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvcnB1czsKIAogICAgIC8qIFJlYWwgYW1vdW50 IG9mIGRhdGEgYmFja2luZyBjb3JwdXNbXS4gKi8KICAgICBzaXplX3QgZGF0YV9udW07CkBAIC01 MCw2ICs1MSwxNSBAQCBzdHJ1Y3QgZnV6el9zdGF0ZQogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9v cHMgb3BzOwogfTsKIAorYm9vbCBvcHRfY29tcGFjdCA9IHRydWU7CisKK3Vuc2lnbmVkIGludCBm dXp6X21pbmltYWxfaW5wdXRfc2l6ZSh2b2lkKQoreworICAgIEJVSUxEX0JVR19PTihEQVRBX1NJ WkVfRlVMTCA+IElOUFVUX1NJWkUpOworCisgICAgcmV0dXJuIG9wdF9jb21wYWN0ID8gREFUQV9T SVpFX0NPTVBBQ1QgOiBEQVRBX1NJWkVfRlVMTDsKK30KKwogc3RhdGljIGlubGluZSBib29sIGlu cHV0X2F2YWlsKGNvbnN0IHN0cnVjdCBmdXp6X3N0YXRlICpzLCBzaXplX3Qgc2l6ZSkKIHsKICAg ICByZXR1cm4gcy0+ZGF0YV9pbmRleCArIHNpemUgPD0gcy0+ZGF0YV9udW07CkBAIC02NDMsOSAr NjUzLDgyIEBAIHN0YXRpYyB2b2lkIHNldHVwX3N0YXRlKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0 ICpjdHh0KQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKIAotICAg IC8qIEZ1enogYWxsIG9mIHRoZSBlbXVsYXRlZCBzdGF0ZSBpbiBvbmUgZ28gKi8KLSAgICBpZiAo IWlucHV0X3JlYWQocywgcywgREFUQV9PRkZTRVQpKQotICAgICAgICBleGl0KC0xKTsKKyAgICBp ZiAoICFvcHRfY29tcGFjdCApCisgICAgeworICAgICAgICAvKiBGdXp6IGFsbCBvZiB0aGUgZW11 bGF0ZWQgc3RhdGUgaW4gb25lIGdvICovCisgICAgICAgIGlmICggIWlucHV0X3JlYWQocywgcywg REFUQV9TSVpFX0ZVTEwpICkKKyAgICAgICAgICAgIGV4aXQoLTEpOworICAgICAgICByZXR1cm47 CisgICAgfQorCisgICAgLyogTW9kaWZ5IG9ubHkgc2VsZWN0IGJpdHMgb2Ygc3RhdGUgKi8KKwor ICAgIC8qIEFsd2F5cyByZWFkICdvcHRpb25zJyAqLworICAgIGlmICggIWlucHV0X3JlYWQocywg cywgREFUQV9TSVpFX0NPTVBBQ1QpICkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGZvciAo IDsgOyApCisgICAgeworICAgICAgICB1aW50MTZfdCBvZmZzZXQ7CisKKyAgICAgICAgLyogUmVh ZCAxNiBiaXRzIHRvIGRlY2lkZSB3aGF0IGJpdCBvZiBzdGF0ZSB0byBtb2RpZnkgKi8KKyAgICAg ICAgaWYgKCAhaW5wdXRfcmVhZChzLCAmb2Zmc2V0LCBzaXplb2Yob2Zmc2V0KSkgKQorICAgICAg ICAgICAgcmV0dXJuOworCisgICAgICAgIC8qIAorICAgICAgICAgKiBUaGVuIGRlY2lkZSBpZiBp dCdzICJwb2ludGluZyB0byIgZGlmZmVyZW50IGJpdHMgb2YgdGhlCisgICAgICAgICAqIHN0YXRl IAorICAgICAgICAgKi8KKworICAgICAgICAvKiBjcltdPyAqLworICAgICAgICBpZiAoIG9mZnNl dCA8IEFSUkFZX1NJWkUocy0+Y3IpICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhaW5w dXRfcmVhZChzLCBzLT5jciArIG9mZnNldCwgc2l6ZW9mKCpzLT5jcikpICkKKyAgICAgICAgICAg ICAgICByZXR1cm47CisgICAgICAgICAgICBwcmludGYoIlNldHRpbmcgQ1IgJWQgdG8gJWx4XG4i LCBvZmZzZXQsIHMtPmNyW29mZnNldF0pOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg IH0KKyAgICAgICAgCisgICAgICAgIG9mZnNldCAtPSBBUlJBWV9TSVpFKHMtPmNyKTsKKworICAg ICAgICAvKiBtc3JbXT8gKi8KKyAgICAgICAgaWYgKCBvZmZzZXQgPCBBUlJBWV9TSVpFKHMtPm1z cikgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoICFpbnB1dF9yZWFkKHMsIHMtPm1zciAr IG9mZnNldCwgc2l6ZW9mKCpzLT5tc3IpKSApCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg ICAgICAgICAgcHJpbnRmKCJTZXR0aW5nIE1TUiBpJWQgKCV4KSB0byAlbHhcbiIsIG9mZnNldCwK KyAgICAgICAgICAgICAgICAgICBtc3JfaW5kZXhbb2Zmc2V0XSwgcy0+bXNyW29mZnNldF0pOwor ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBvZmZzZXQgLT0gQVJS QVlfU0laRShzLT5tc3IpOworCisgICAgICAgIC8qIHNlZ21lbnRzW10/ICovCisgICAgICAgIGlm ICggb2Zmc2V0IDwgQVJSQVlfU0laRShzLT5zZWdtZW50cykgKQorICAgICAgICB7CisgICAgICAg ICAgICBpZiAoICFpbnB1dF9yZWFkKHMsIHMtPnNlZ21lbnRzICsgb2Zmc2V0LCBzaXplb2YoKnMt PnNlZ21lbnRzKSkgKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHByaW50 ZigiU2V0dGluZyBTZWdtZW50ICVkXG4iLCBvZmZzZXQpOworICAgICAgICAgICAgY29udGludWU7 CisgICAgICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIG9mZnNldCAtPSBBUlJBWV9TSVpF KHMtPnNlZ21lbnRzKTsKKworICAgICAgICAvKiByZWdzPyAqLworICAgICAgICBpZiAoIG9mZnNl dCA8IHNpemVvZihzdHJ1Y3QgY3B1X3VzZXJfcmVncykKKyAgICAgICAgICAgICAmJiBvZmZzZXQg KyBzaXplb2YodWludDY0X3QpIDw9IHNpemVvZihzdHJ1Y3QgY3B1X3VzZXJfcmVncykgKQorICAg ICAgICB7CisgICAgICAgICAgICBpZiAoICFpbnB1dF9yZWFkKHMsICgoY2hhciAqKWN0eHQtPnJl Z3MpICsgb2Zmc2V0LCBzaXplb2YodWludDY0X3QpKSApCisgICAgICAgICAgICAgICAgcmV0dXJu OworICAgICAgICAgICAgcHJpbnRmKCJTZXR0aW5nIGNwdV91c2VyX3JlZ3Mgb2Zmc2V0ICV4XG4i LCBvZmZzZXQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAv KiBOb25lIG9mIHRoZSBhYm92ZSAtLSB0YWtlIHRoYXQgYXMgInN0YXJ0IGVtdWxhdGluZyIgKi8K KyAgICAgICAgCisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKICNkZWZpbmUgQ0FOT05JQ0FM SVpFKHgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC04MTQsNyArODk3 LDcgQEAgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCAqZGF0YV9wLCBz aXplX3Qgc2l6ZSkKICAgICB9OwogICAgIGludCByYzsKIAotICAgIGlmICggc2l6ZSA8PSBEQVRB X09GRlNFVCApCisgICAgaWYgKCBzaXplIDw9IGZ1enpfbWluaW1hbF9pbnB1dF9zaXplKCkgKQog ICAgIHsKICAgICAgICAgcHJpbnRmKCJJbnB1dCB0b28gc21hbGxcbiIpOwogICAgICAgICByZXR1 cm4gMTsKQEAgLTg0OCwxNCArOTMxLDYgQEAgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29u c3QgdWludDhfdCAqZGF0YV9wLCBzaXplX3Qgc2l6ZSkKIAogICAgIHJldHVybiAwOwogfQotCi11 bnNpZ25lZCBpbnQgZnV6el9taW5pbWFsX2lucHV0X3NpemUodm9pZCkKLXsKLSAgICBCVUlMRF9C VUdfT04oREFUQV9PRkZTRVQgPiBJTlBVVF9TSVpFKTsKLQotICAgIHJldHVybiBEQVRBX09GRlNF VCArIDE7Ci19Ci0KIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1n aXQgYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuaCBiL3Rv b2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5oCmluZGV4IDMwZGQ4 ZGUyMWUuLjg1ZDIxY2JmMGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9u X2VtdWxhdG9yL2Z1enotZW11bC5oCisrKyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2Vt dWxhdG9yL2Z1enotZW11bC5oCkBAIC01LDYgKzUsOCBAQCBleHRlcm4gaW50IExMVk1GdXp6ZXJJ bml0aWFsaXplKGludCAqYXJnYywgY2hhciAqKiphcmd2KTsKIGV4dGVybiBpbnQgTExWTUZ1enpl clRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90ICpkYXRhX3AsIHNpemVfdCBzaXplKTsKIGV4dGVy biB1bnNpZ25lZCBpbnQgZnV6el9taW5pbWFsX2lucHV0X3NpemUodm9pZCk7CiAKK2V4dGVybiBi b29sIG9wdF9jb21wYWN0OworCiAjZGVmaW5lIElOUFVUX1NJWkUgIDQwOTYKIAogI2VuZGlmIC8q IGlmZGVmIEZVWlpfRU1VTF9IICovCi0tIAoyLjE0LjIKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK