From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v4 30/44] x86emul: support AVX512{F, BW, _VBMI} full permute insns Date: Tue, 25 Sep 2018 07:44:51 -0600 Message-ID: <5BAA3BD302000078001EBB10@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BAA34B502000078001EB9B6@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g4ne9-0000Dw-Rk for xen-devel@lists.xenproject.org; Tue, 25 Sep 2018 13:45:01 +0000 In-Reply-To: <5BAA34B502000078001EB9B6@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu List-Id: xen-devel@lists.xenproject.org VGFrZSB0aGUgbGliZXJ0eSBhbmQgYWxzbyBjb3JyZWN0IHRoZSAocHVibGljIGludGVyZmFjZSkg bmFtZSBvZiB0aGUKQVZYNTEyX1ZCTUkgZmVhdHVyZSBmbGFnLCBvbiB0aGUgYXNzdW1wdGlvbiB0 aGF0IG5vIGV4dGVybmFsIGNvbnN1bWVyCmhhcyBhY3R1YWxseSBiZWVuIHVzaW5nIHRoYXQgZmxh ZyBzbyBmYXIuIEZ1cnRoZXJtb3JlIG1ha2UgaXQgaGF2ZQpBVlg1MTJCVyBpbnN0ZWFkIG9mIEFW WDUxMkYgYXMgYSBwcmVyZXF1aXNpdGUsIGZvciByZXF1aXJpbmcgZnVsbAo2NC1iaXQgbWFzayBy ZWdpc3RlcnMgKHRoZSB1cHBlciA0OCBiaXRzIG9mIHdoaWNoIGNhbid0IGJlIGFjY2Vzc2VkCm90 aGVyIHRoYW4gdGhyb3VnaCBYU0FWRS9YUlNUT1Igd2l0aG91dCBBVlg1MTJCVyBzdXBwb3J0KS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCnYzOiBO ZXcuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCisrKyBiL3Rv b2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4LmMKQEAgLTE2Miw2ICsxNjIsMTAgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmZfYWxsW10gPQogICAgIElOU04ocGNtcGd0 ZCwgICAgICA2NiwgICAwZiwgNjYsICAgIHZsLCAgICAgIGQsIHZsKSwKICAgICBJTlNOKHBjbXBn dHEsICAgICAgNjYsIDBmMzgsIDM3LCAgICB2bCwgICAgICBxLCB2bCksCiAgICAgSU5TTihwY21w dSwgICAgICAgIDY2LCAwZjNhLCAxZSwgICAgdmwsICAgICBkcSwgdmwpLAorICAgIElOU04ocGVy bWkyLCAgICAgICA2NiwgMGYzOCwgNzYsICAgIHZsLCAgICAgZHEsIHZsKSwKKyAgICBJTlNOKHBl cm1pMiwgICAgICAgNjYsIDBmMzgsIDc3LCAgICB2bCwgICAgIHNkLCB2bCksCisgICAgSU5TTihw ZXJtdDIsICAgICAgIDY2LCAwZjM4LCA3ZSwgICAgdmwsICAgICBkcSwgdmwpLAorICAgIElOU04o cGVybXQyLCAgICAgICA2NiwgMGYzOCwgN2YsICAgIHZsLCAgICAgc2QsIHZsKSwKICAgICBJTlNO KHBtYXhzLCAgICAgICAgNjYsIDBmMzgsIDNkLCAgICB2bCwgICAgIGRxLCB2bCksCiAgICAgSU5T TihwbWF4dSwgICAgICAgIDY2LCAwZjM4LCAzZiwgICAgdmwsICAgICBkcSwgdmwpLAogICAgIElO U04ocG1pbnMsICAgICAgICA2NiwgMGYzOCwgMzksICAgIHZsLCAgICAgZHEsIHZsKSwKQEAgLTI4 Myw2ICsyODcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyYndfYWxsW10KICAg ICBJTlNOKHBjbXBndGIsICAgICA2NiwgICAwZiwgNjQsICAgIHZsLCAgICBiLCB2bCksCiAgICAg SU5TTihwY21wZ3R3LCAgICAgNjYsICAgMGYsIDY1LCAgICB2bCwgICAgdywgdmwpLAogICAgIElO U04ocGNtcHUsICAgICAgIDY2LCAwZjNhLCAzZSwgICAgdmwsICAgYncsIHZsKSwKKyAgICBJTlNO KHBlcm1pMncsICAgICA2NiwgMGYzOCwgNzUsICAgIHZsLCAgICB3LCB2bCksCisgICAgSU5TTihw ZXJtdDJ3LCAgICAgNjYsIDBmMzgsIDdkLCAgICB2bCwgICAgdywgdmwpLAogICAgIElOU04ocG1h ZGR3ZCwgICAgIDY2LCAgIDBmLCBmNSwgICAgdmwsICAgIHcsIHZsKSwKICAgICBJTlNOKHBtYXhz YiwgICAgICA2NiwgMGYzOCwgM2MsICAgIHZsLCAgICBiLCB2bCksCiAgICAgSU5TTihwbWF4c3cs ICAgICAgNjYsICAgMGYsIGVlLCAgICB2bCwgICAgdywgdmwpLApAQCAtMzY3LDYgKzM3MywxMSBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfNTEyW10KICAgICBJTlNOKGluc2Vy dGkzMng4LCAgICA2NiwgMGYzYSwgM2EsIGVsXzgsIGQsIHZsKSwKIH07CiAKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgdGVzdCBhdng1MTJfdmJtaV9hbGxbXSA9IHsKKyAgICBJTlNOKHBlcm1pMmIsICAg ICAgIDY2LCAwZjM4LCA3NSwgdmwsIGIsIHZsKSwKKyAgICBJTlNOKHBlcm10MmIsICAgICAgIDY2 LCAwZjM4LCA3ZCwgdmwsIGIsIHZsKSwKK307CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy IHZsX2FsbFtdID0geyBWTF81MTIsIFZMXzEyOCwgVkxfMjU2IH07CiBzdGF0aWMgY29uc3QgdW5z aWduZWQgY2hhciB2bF8xMjhbXSA9IHsgVkxfMTI4IH07CiBzdGF0aWMgY29uc3QgdW5zaWduZWQg Y2hhciB2bF9ubzEyOFtdID0geyBWTF81MTIsIFZMXzI1NiB9OwpAQCAtNjk5LDQgKzcxMCw1IEBA IHZvaWQgZXZleF9kaXNwOF90ZXN0KHZvaWQgKmluc3RyLCBzdHJ1Y3QKICAgICBSVU4oYXZ4NTEy ZHEsIDEyOCk7CiAgICAgUlVOKGF2eDUxMmRxLCBubzEyOCk7CiAgICAgUlVOKGF2eDUxMmRxLCA1 MTIpOworICAgIFJVTihhdng1MTJfdmJtaSwgYWxsKTsKIH0KLS0tIGEvdG9vbHMvdGVzdHMveDg2 X2VtdWxhdG9yL3NpbWQuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCkBA IC0xNDQsNiArMTQ0LDkgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3Qg YgogIyAgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBCKHVucGNraHBzLCBfbWFzaywgeCwg eSwgdW5kZWYoKSwgfjApCiAjICAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpIEIodW5wY2ts cHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgICAgZGVmaW5lIHN3YXAoeCkgQihzaHVm cHMsIF9tYXNrLCB4LCB4LCAwYjAwMDExMDExLCB1bmRlZigpLCB+MCkKKyMgICBlbHNlCisjICAg IGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodnBlcm1pMnZhcnBzLCBfbWFzaywgeCwgaW50 ZXJsZWF2ZV9oaSwgeSwgfjApCisjICAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpIEIodnBl cm10MnZhcnBzLCBfbWFzaywgaW50ZXJsZWF2ZV9sbywgeCwgeSwgfjApCiAjICAgZW5kaWYKICMg IGVsaWYgRkxPQVRfU0laRSA9PSA4CiAjICAgaWYgVkVDX1NJWkUgPj0gMzIKQEAgLTE2OCw2ICsx NzEsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjICAgIGRl ZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodW5wY2tocGQsIF9tYXNrLCB4LCB5LCB1bmRlZigp LCB+MCkKICMgICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgQih1bnBja2xwZCwgX21hc2ss IHgsIHksIHVuZGVmKCksIH4wKQogIyAgICBkZWZpbmUgc3dhcCh4KSBCKHNodWZwZCwgX21hc2ss IHgsIHgsIDBiMDEsIHVuZGVmKCksIH4wKQorIyAgIGVsc2UKKyMgICAgZGVmaW5lIGludGVybGVh dmVfaGkoeCwgeSkgQih2cGVybWkydmFycGQsIF9tYXNrLCB4LCBpbnRlcmxlYXZlX2hpLCB5LCB+ MCkKKyMgICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgQih2cGVybXQydmFycGQsIF9tYXNr LCBpbnRlcmxlYXZlX2xvLCB4LCB5LCB+MCkKICMgICBlbmRpZgogIyAgZW5kaWYKICMgZW5kaWYK QEAgLTI5Nyw2ICszMDMsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNf dCBiCiAjICBpZiBWRUNfU0laRSA9PSAxNgogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkp ICgodmVjX3QpQihwdW5wY2toZHEsIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNp X3QpdW5kZWYoKSwgfjApKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3Qp QihwdW5wY2tsZHEsIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYo KSwgfjApKQorIyAgZWxzZQorIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgodmVjX3Qp Qih2cGVybWkydmFyZCwgX21hc2ssICh2c2lfdCkoeCksIGludGVybGVhdmVfaGksICh2c2lfdCko eSksIH4wKSkKKyMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSAoKHZlY190KUIodnBlcm10 MnZhcmQsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCB+MCkp CiAjICBlbmRpZgogIyAgZGVmaW5lIG1peCh4LCB5KSAoKHZlY190KUIobW92ZHFhMzJfLCBfbWFz aywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKDBiMDEwMTAxMDEwMTAxMDEwMSAmICgoMSA8PCBFTEVNX0NPVU5UKSAtIDEpKSkpCkBAIC0z MTgsNiArMzI3LDkgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgog IyAgaWYgVkVDX1NJWkUgPT0gMTYKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZl Y190KUIocHVucGNraHFkcSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCl1 bmRlZigpLCB+MCkpCiAjICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHB1 bnBja2xxZHEsIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwg fjApKQorIyAgZWxzZQorIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgodmVjX3QpQih2 cGVybWkydmFycSwgX21hc2ssICh2ZGlfdCkoeCksIGludGVybGVhdmVfaGksICh2ZGlfdCkoeSks IH4wKSkKKyMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSAoKHZlY190KUIodnBlcm10MnZh cnEsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCB+MCkpCiAj ICBlbmRpZgogIyAgZGVmaW5lIG1peCh4LCB5KSAoKHZlY190KUIobW92ZHFhNjRfLCBfbWFzaywg KHZkaV90KSh4KSwgKHZkaV90KSh5KSwgMGIwMTAxMDEwMSkpCiAjIGVuZGlmCkBAIC03NjMsNiAr Nzc1LDcgQEAgaW50IHNpbWRfdGVzdCh2b2lkKQogewogICAgIHVuc2lnbmVkIGludCBpLCBqOwog ICAgIHZlY190IHgsIHksIHosIHNyYywgaW52LCBhbHQsIHNoOworICAgIHZpbnRfdCBpbnRlcmxl YXZlX2xvLCBpbnRlcmxlYXZlX2hpOwogCiAgICAgZm9yICggaSA9IDAsIGogPSBFTEVNX1NJWkUg PDwgMzsgaSA8IEVMRU1fQ09VTlQ7ICsraSApCiAgICAgewpAQCAtNzc2LDYgKzc4OSw5IEBAIGlu dCBzaW1kX3Rlc3Qodm9pZCkKICAgICAgICAgaWYgKCAhKGkgJiAoaSArIDEpKSApCiAgICAgICAg ICAgICAtLWo7CiAgICAgICAgIHNoW2ldID0gajsKKworICAgICAgICBpbnRlcmxlYXZlX2xvW2ld ID0gKChpICYgMSkgKiBFTEVNX0NPVU5UKSB8IChpID4+IDEpOworICAgICAgICBpbnRlcmxlYXZl X2hpW2ldID0gaW50ZXJsZWF2ZV9sb1tpXSArIChFTEVNX0NPVU5UIC8gMik7CiAgICAgfQogCiAg ICAgdG91Y2goc3JjKTsKQEAgLTEwNjksNyArMTA4NSw3IEBAIGludCBzaW1kX3Rlc3Qodm9pZCkK ICAgICB4ID0gc3JjICogYWx0OwogICAgIHkgPSBpbnRlcmxlYXZlX2xvKHgsIGFsdCA8IDApOwog ICAgIHRvdWNoKHgpOwotICAgIHogPSB3aWRlbjEoeCk7CisgICAgeiA9IHdpZGVuMShsb3dfaGFs Zih4KSk7CiAgICAgdG91Y2goeCk7CiAgICAgaWYgKCAhZXEoeiwgeSkgKSByZXR1cm4gX19MSU5F X187CiAKQEAgLTExMDEsNyArMTExNyw3IEBAIGludCBzaW1kX3Rlc3Qodm9pZCkKIAogIyBpZmRl ZiB3aWRlbjEKICAgICB0b3VjaChzcmMpOwotICAgIHggPSB3aWRlbjEoc3JjKTsKKyAgICB4ID0g d2lkZW4xKGxvd19oYWxmKHNyYykpOwogICAgIHRvdWNoKHNyYyk7CiAgICAgaWYgKCAhZXEoeCwg eSkgKSByZXR1cm4gX19MSU5FX187CiAjIGVuZGlmCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVs YXRvci9zaW1kLmgKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaApAQCAtNzAs NiArNzAsMTYgQEAgdHlwZWRlZiBpbnQgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoVgogdHlw ZWRlZiBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoVkVDX1NJWkUpKSkgdmRp X3Q7CiAjZW5kaWYKIAorI2lmIEVMRU1fU0laRSA9PSAxCit0eXBlZGVmIHZxaV90IHZpbnRfdDsK KyNlbGlmIEVMRU1fU0laRSA9PSAyCit0eXBlZGVmIHZoaV90IHZpbnRfdDsKKyNlbGlmIEVMRU1f U0laRSA9PSA0Cit0eXBlZGVmIHZzaV90IHZpbnRfdDsKKyNlbGlmIEVMRU1fU0laRSA9PSA4Cit0 eXBlZGVmIHZkaV90IHZpbnRfdDsKKyNlbmRpZgorCiAjaWYgVkVDX1NJWkUgPj0gMTYKIAogIyBp ZiBFTEVNX0NPVU5UID49IDIKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Ni1lbXVs YXRlLmgKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Ni1lbXVsYXRlLmgKQEAgLTI3 OSw2ICsyNzksMTYgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCB4Z2V0YnYodWludDMyX3QgeAog ICAgIChyZXMuYiAmICgxVSA8PCAzMSkpICE9IDA7IFwKIH0pCiAKKyNkZWZpbmUgY3B1X2hhc19h dng1MTJfdmJtaSAoeyBcCisgICAgc3RydWN0IGNwdWlkX2xlYWYgcmVzOyBcCisgICAgZW11bF90 ZXN0X2NwdWlkKDEsIDAsICZyZXMsIE5VTEwpOyBcCisgICAgaWYgKCAhKHJlcy5jICYgKDFVIDw8 IDI3KSkgfHwgKCh4Z2V0YnYoMCkgJiAweGU2KSAhPSAweGU2KSApIFwKKyAgICAgICAgcmVzLmMg PSAwOyBcCisgICAgZWxzZSBcCisgICAgICAgIGVtdWxfdGVzdF9jcHVpZCg3LCAwLCAmcmVzLCBO VUxMKTsgXAorICAgIChyZXMuYyAmICgxVSA8PCAxKSkgIT0gMDsgXAorfSkKKwogaW50IGVtdWxf dGVzdF9jcHVpZCgKICAgICB1aW50MzJfdCBsZWFmLAogICAgIHVpbnQzMl90IHN1YmxlYWYsCi0t LSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNo L3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC00NjgsOSArNDY4LDEzIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZXh0MGYzOF90YWJsZSB7CiAgICAgWzB4NTldID0geyAuc2ltZF9zaXpl ID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEsIC5kOHMgPSAzIH0sCiAgICAgWzB4NWFdID0geyAu c2ltZF9zaXplID0gc2ltZF8xMjgsIC50d29fb3AgPSAxLCAuZDhzID0gNCB9LAogICAgIFsweDVi XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMjU2LCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bF9i eV8yIH0sCisgICAgWzB4NzUgLi4uIDB4NzZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf aW50LCAuZDhzID0gZDhzX3ZsIH0sCisgICAgWzB4NzddID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfZnAsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHg3OF0gPSB7IC5zaW1kX3NpemUgPSBz aW1kX290aGVyLCAudHdvX29wID0gMSB9LAogICAgIFsweDc5XSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfb3RoZXIsIC50d29fb3AgPSAxLCAuZDhzID0gMSB9LAogICAgIFsweDdhIC4uLiAweDdjXSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSwgLnR3b19vcCA9IDEgfSwKKyAgICBbMHg3ZCAuLi4g MHg3ZV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwK KyAgICBbMHg3Zl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLmQ4cyA9IGQ4c192 bCB9LAogICAgIFsweDhjXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCB9LAogICAg IFsweDhlXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnRvX21lbSA9IDEgfSwK ICAgICBbMHg5MCAuLi4gMHg5M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudnNpYiA9 IDEgfSwKQEAgLTE4NTIsNiArMTg1Niw3IEBAIHN0YXRpYyBib29sIHZjcHVfaGFzKAogI2RlZmlu ZSB2Y3B1X2hhc19zaGEoKSAgICAgICAgIHZjcHVfaGFzKCAgICAgICAgIDcsIEVCWCwgMjksIGN0 eHQsIG9wcykKICNkZWZpbmUgdmNwdV9oYXNfYXZ4NTEyYncoKSAgICB2Y3B1X2hhcyggICAgICAg ICA3LCBFQlgsIDMwLCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFzX2F2eDUxMnZsKCkgICAg dmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAzMSwgY3R4dCwgb3BzKQorI2RlZmluZSB2Y3B1X2hh c19hdng1MTJfdmJtaSgpIHZjcHVfaGFzKCAgICAgICAgIDcsIEVDWCwgIDEsIGN0eHQsIG9wcykK ICNkZWZpbmUgdmNwdV9oYXNfcmRwaWQoKSAgICAgICB2Y3B1X2hhcyggICAgICAgICA3LCBFQ1gs IDIyLCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFzX2NsemVybygpICAgICAgdmNwdV9oYXMo MHg4MDAwMDAwOCwgRUJYLCAgMCwgY3R4dCwgb3BzKQogCkBAIC02MDExLDYgKzYwMTYsMTEgQEAg eDg2X2VtdWxhdGUoCiAgICAgQ0FTRV9TSU1EX1BBQ0tFRF9GUChfRVZFWCwgMHgwZiwgMHgxNSk6 IC8qIHZ1bnBja2hwe3MsZH0gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAg ICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LncgIT0gKGV2ZXgucGZ4ICYgVkVYX1BSRUZJ WF9ET1VCTEVfTUFTSyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENfVUQpOwor ICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYo MHgwZjM4LCAweDc2KTogLyogdnBlcm1pMntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1t bXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4NzcpOiAvKiB2 cGVybWkycHtzLGR9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4N2UpOiAvKiB2cGVybXQye2QscX0gW3h5el1t bS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2 KDB4MGYzOCwgMHg3Zik6IC8qIHZwZXJtdDJwe3MsZH0gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6 XW1te2t9ICovCiAgICAgICAgIGZhdWx0X3N1cHByZXNzaW9uID0gZmFsc2U7CiAgICAgICAgIC8q IGZhbGwgdGhyb3VnaCAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGRi KTogLyogdnBhbmR7ZCxxfSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KQEAgLTg1 MjIsNiArODUzMiwxNiBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9u X2lmKGVhLnR5cGUgIT0gT1BfTUVNIHx8ICF2ZXgubCB8fCB2ZXgudywgRVhDX1VEKTsKICAgICAg ICAgZ290byBzaW1kXzBmX2F2eDI7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjM4LCAweDc1KTogLyogdnBlcm1pMntiLHd9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtr fSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4N2QpOiAvKiB2cGVy bXQye2Isd30gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgICAgIGlmICgg IWV2ZXgudyApCisgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJfdmJt aSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2 eDUxMmJ3KTsKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXguYnIsIEVYQ19VRCk7 CisgICAgICAgIGZhdWx0X3N1cHByZXNzaW9uID0gZmFsc2U7CisgICAgICAgIGdvdG8gYXZ4NTEy Zl9ub19zYWU7CisKICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDc4KTog LyogdnBicm9hZGNhc3RiIHhtbS9tOCxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYzOCwgMHg3OSk6IC8qIHZwYnJvYWRjYXN0dyB4bW0vbTE2LFt4eXpdbW17 a30gKi8KICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyYncpOwotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2 L2NwdWZlYXR1cmUuaApAQCAtMTA3LDYgKzEwNyw5IEBACiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEy YncgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlg1MTJCVykKICNkZWZpbmUgY3B1 X2hhc19hdng1MTJ2bCAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FWWDUxMlZMKQog CisvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjAuZWN4ICovCisjZGVmaW5lIGNwdV9oYXNfYXZ4 NTEyX3ZibWkgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9BVlg1MTJfVkJNSSkKKwogLyog Q1BVSUQgbGV2ZWwgMHg4MDAwMDAwNy5lZHggKi8KICNkZWZpbmUgY3B1X2hhc19pdHNjICAgICAg ICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0lUU0MpCiAKLS0tIGEveGVuL2luY2x1ZGUv cHVibGljL2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv YXJjaC14ODYvY3B1ZmVhdHVyZXNldC5oCkBAIC0yMjQsNyArMjI0LDcgQEAgWEVOX0NQVUZFQVRV UkUoQVZYNTEyVkwsICAgICAgNSozMiszMSkgLwogCiAvKiBJbnRlbC1kZWZpbmVkIENQVSBmZWF0 dXJlcywgQ1BVSUQgbGV2ZWwgMHgwMDAwMDAwNzowLmVjeCwgd29yZCA2ICovCiBYRU5fQ1BVRkVB VFVSRShQUkVGRVRDSFdUMSwgICA2KjMyKyAwKSAvKkEgIFBSRUZFVENIV1QxIGluc3RydWN0aW9u ICovCi1YRU5fQ1BVRkVBVFVSRShBVlg1MTJWQk1JLCAgICA2KjMyKyAxKSAvKkEgIEFWWC01MTIg VmVjdG9yIEJ5dGUgTWFuaXB1bGF0aW9uIEluc3RycyAqLworWEVOX0NQVUZFQVRVUkUoQVZYNTEy X1ZCTUksICAgNiozMisgMSkgLypBICBBVlgtNTEyIFZlY3RvciBCeXRlIE1hbmlwdWxhdGlvbiBJ bnN0cnMgKi8KIFhFTl9DUFVGRUFUVVJFKFVNSVAsICAgICAgICAgIDYqMzIrIDIpIC8qUyAgVXNl ciBNb2RlIEluc3RydWN0aW9uIFByZXZlbnRpb24gKi8KIFhFTl9DUFVGRUFUVVJFKFBLVSwgICAg ICAgICAgIDYqMzIrIDMpIC8qSCAgUHJvdGVjdGlvbiBLZXlzIGZvciBVc2Vyc3BhY2UgKi8KIFhF Tl9DUFVGRUFUVVJFKE9TUEtFLCAgICAgICAgIDYqMzIrIDQpIC8qISAgT1MgUHJvdGVjdGlvbiBL ZXlzIEVuYWJsZSAqLwotLS0gYS94ZW4vdG9vbHMvZ2VuLWNwdWlkLnB5CisrKyBiL3hlbi90b29s cy9nZW4tY3B1aWQucHkKQEAgLTI1NCwxMiArMjU0LDE3IEBAIGRlZiBjcnVuY2hfbnVtYmVycyhz dGF0ZSk6CiAgICAgICAgIEFWWDI6IFtBVlg1MTJGXSwKIAogICAgICAgICAjIEFWWDUxMkYgaXMg dGFrZW4gdG8gbWVhbiBoYXJkd2FyZSBzdXBwb3J0IGZvciA1MTJiaXQgcmVnaXN0ZXJzCi0gICAg ICAgICMgKHdoaWNoIGluIHByYWN0aWNlIGRlcGVuZHMgb24gdGhlIEVWRVggcHJlZml4IHRvIGVu Y29kZSksIGFuZCB0aGUKLSAgICAgICAgIyBpbnN0cnVjdGlvbnMgdGhlbXNlbHZlcy4gQWxsIGZ1 cnRoZXIgQVZYNTEyIGZlYXR1cmVzIGFyZSBidWlsdCBvbgotICAgICAgICAjIHRvcCBvZiBBVlg1 MTJGCisgICAgICAgICMgKHdoaWNoIGluIHByYWN0aWNlIGRlcGVuZHMgb24gdGhlIEVWRVggcHJl Zml4IHRvIGVuY29kZSkgYXMgd2VsbAorICAgICAgICAjIGFzIG1hc2sgcmVnaXN0ZXJzLCBhbmQg dGhlIGluc3RydWN0aW9ucyB0aGVtc2VsdmVzLiBBbGwgZnVydGhlcgorICAgICAgICAjIEFWWDUx MiBmZWF0dXJlcyBhcmUgYnVpbHQgb24gdG9wIG9mIEFWWDUxMkYKICAgICAgICAgQVZYNTEyRjog W0FWWDUxMkRRLCBBVlg1MTJJRk1BLCBBVlg1MTJQRiwgQVZYNTEyRVIsIEFWWDUxMkNELAotICAg ICAgICAgICAgICAgICAgQVZYNTEyQlcsIEFWWDUxMlZMLCBBVlg1MTJWQk1JLCBBVlg1MTJfNFZO TklXLAotICAgICAgICAgICAgICAgICAgQVZYNTEyXzRGTUFQUywgQVZYNTEyX1ZQT1BDTlREUV0s CisgICAgICAgICAgICAgICAgICBBVlg1MTJCVywgQVZYNTEyVkwsIEFWWDUxMl80Vk5OSVcsIEFW WDUxMl80Rk1BUFMsCisgICAgICAgICAgICAgICAgICBBVlg1MTJfVlBPUENOVERRXSwKKworICAg ICAgICAjIEFWWDUxMiBleHRlbnNpb25zIGFjdGluZyBzb2xlbHkgb24gdmVjdG9ycyBvZiBieXRl cy93b3JkcyBhcmUgbWFkZQorICAgICAgICAjIGRlcGVuZGVudHMgb2YgQVZYNTEyQlcgKGFzIHRv IHJlcXVpcmluZyB3aWRlciB0aGFuIDE2LWJpdCBtYXNrCisgICAgICAgICMgcmVnaXN0ZXJzKSwg ZGVzcGl0ZSB0aGUgU0RNIG5vdCBmb3JtYWxseSBtYWtpbmcgdGhpcyBjb25uZWN0aW9uLgorICAg ICAgICBBVlg1MTJCVzogW0FWWDUxMl9WQk1JXSwKIAogICAgICAgICAjIFRoZSBmZWF0dXJlczoK ICAgICAgICAgIyAgICogU2luZ2xlIFRocmVhZCBJbmRpcmVjdCBCcmFuY2ggUHJlZGljdG9ycwoK CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==