From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 29/34] x86emul: support AVX512{F, BW} integer shuffle insns Date: Tue, 18 Sep 2018 06:11:50 -0600 Message-ID: <5BA0EB8602000078001E965D@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BA0E58F02000078001E94CE@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g2ErC-0002EJ-Sc for xen-devel@lists.xenproject.org; Tue, 18 Sep 2018 12:11:54 +0000 In-Reply-To: <5BA0E58F02000078001E94CE@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 QWxzbyBpbmNsdWRlIHNodWZmezMyeDQsNjR4Mn0gYXMgYmVpbmcgdmVyeSBzaW1pbGFyIHRvIHNo dWZpezMyeDQsNjR4Mn0uCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Ci0tLQp2MzogTmV3LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgt ZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCkBAIC0y MDAsNiArMjAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmZfYWxsW10gPQog ICAgIElOU04ocHJvbHYsICAgICAgICA2NiwgMGYzOCwgMTUsICAgIHZsLCAgICAgZHEsIHZsKSwK ICAgICBJTlNOWChwcm9yLCAgICAgICAgNjYsICAgMGYsIDcyLCAwLCB2bCwgICAgIGRxLCB2bCks CiAgICAgSU5TTihwcm9ydiwgICAgICAgIDY2LCAwZjM4LCAxNCwgICAgdmwsICAgICBkcSwgdmwp LAorICAgIElOU04ocHNodWZkLCAgICAgICA2NiwgICAwZiwgNzAsICAgIHZsLCAgICAgIGQsIHZs KSwKICAgICBJTlNOKHBzbGxkLCAgICAgICAgNjYsICAgMGYsIGYyLCAgICBlbF80LCAgICBkLCB2 bCksCiAgICAgSU5TTlgocHNsbGQsICAgICAgIDY2LCAgIDBmLCA3MiwgNiwgdmwsICAgICAgZCwg dmwpLAogICAgIElOU04ocHNsbHEsICAgICAgICA2NiwgICAwZiwgZjMsICAgIGVsXzIsICAgIHEs IHZsKSwKQEAgLTI1MCw2ICsyNTEsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUx MmZfbm8xMjhbXQogICAgIElOU04oZXh0cmFjdGkzMng0LCAgIDY2LCAwZjNhLCAzOSwgZWxfNCwg IGQsIHZsKSwKICAgICBJTlNOKGluc2VydGYzMng0LCAgICA2NiwgMGYzYSwgMTgsIGVsXzQsICBk LCB2bCksCiAgICAgSU5TTihpbnNlcnRpMzJ4NCwgICAgNjYsIDBmM2EsIDM4LCBlbF80LCAgZCwg dmwpLAorICAgIElOU04oc2h1ZmYzMng0LCAgICAgIDY2LCAwZjNhLCAyMywgdmwsICAgIGQsIHZs KSwKKyAgICBJTlNOKHNodWZmNjR4MiwgICAgICA2NiwgMGYzYSwgMjMsIHZsLCAgICBxLCB2bCks CisgICAgSU5TTihzaHVmaTMyeDQsICAgICAgNjYsIDBmM2EsIDQzLCB2bCwgICAgZCwgdmwpLAor ICAgIElOU04oc2h1Zmk2NHgyLCAgICAgIDY2LCAwZjNhLCA0MywgdmwsICAgIHEsIHZsKSwKIH07 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmXzUxMltdID0gewpAQCAtMzA0LDYg KzMwOSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJid19hbGxbXQogICAgIElO U04ocG11bGh3LCAgICAgIDY2LCAgIDBmLCBlNSwgICAgdmwsICAgdywgdmwpLAogICAgIElOU04o cG11bGx3LCAgICAgIDY2LCAgIDBmLCBkNSwgICAgdmwsICAgdywgdmwpLAogICAgIElOU04ocHNh ZGJ3LCAgICAgIDY2LCAgIDBmLCBmNiwgICAgdmwsICAgYiwgdmwpLAorICAgIElOU04ocHNodWZi LCAgICAgIDY2LCAwZjM4LCAwMCwgICAgdmwsICAgYiwgdmwpLAorICAgIElOU04ocHNodWZodywg ICAgIGYzLCAgIDBmLCA3MCwgICAgdmwsICAgdywgdmwpLAorICAgIElOU04ocHNodWZsdywgICAg IGYyLCAgIDBmLCA3MCwgICAgdmwsICAgdywgdmwpLAogICAgIElOU05YKHBzbGxkcSwgICAgIDY2 LCAgIDBmLCA3MywgNywgdmwsICAgYiwgdmwpLAogICAgIElOU04ocHNsbHZ3LCAgICAgIDY2LCAw ZjM4LCAxMiwgICAgdmwsICAgdywgdmwpLAogICAgIElOU04ocHNsbHcsICAgICAgIDY2LCAgIDBm LCBmMSwgICAgZWxfOCwgdywgdmwpLAotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2lt ZC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTE0Nyw2ICsxNDcs MTAgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyAgIGVsc2UK ICMgICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgQih2cGVybWkydmFycHMsIF9tYXNrLCB4 LCBpbnRlcmxlYXZlX2hpLCB5LCB+MCkKICMgICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkg Qih2cGVybXQydmFycHMsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCB4LCB5LCB+MCkKKyMgICAgZGVm aW5lIHN3YXAoeCkgKHsgXAorICAgIHZlY190IHRfID0gQihzaHVmX2YzMng0XywgX21hc2ssIHgs IHgsIFZFQ19TSVpFID09IDMyID8gMGIwMSA6IDBiMDAwMTEwMTEsIHVuZGVmKCksIH4wKTsgXAor ICAgIEIoc2h1ZnBzLCBfbWFzaywgdF8sIHRfLCAwYjAwMDExMDExLCB1bmRlZigpLCB+MCk7IFwK K30pCiAjICAgZW5kaWYKICMgIGVsaWYgRkxPQVRfU0laRSA9PSA4CiAjICAgaWYgVkVDX1NJWkUg Pj0gMzIKQEAgLTE3NCw2ICsxNzgsMTAgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5 dGVfdmVjX3QgYgogIyAgIGVsc2UKICMgICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgQih2 cGVybWkydmFycGQsIF9tYXNrLCB4LCBpbnRlcmxlYXZlX2hpLCB5LCB+MCkKICMgICAgZGVmaW5l IGludGVybGVhdmVfbG8oeCwgeSkgQih2cGVybXQydmFycGQsIF9tYXNrLCBpbnRlcmxlYXZlX2xv LCB4LCB5LCB+MCkKKyMgICAgZGVmaW5lIHN3YXAoeCkgKHsgXAorICAgIHZlY190IHRfID0gQihz aHVmX2Y2NHgyXywgX21hc2ssIHgsIHgsIFZFQ19TSVpFID09IDMyID8gMGIwMSA6IDBiMDAwMTEw MTEsIHVuZGVmKCksIH4wKTsgXAorICAgIEIoc2h1ZnBkLCBfbWFzaywgdF8sIHRfLCAwYjAxMDEw MTAxLCB1bmRlZigpLCB+MCk7IFwKK30pCiAjICAgZW5kaWYKICMgIGVuZGlmCiAjIGVuZGlmCkBA IC0zMDMsOSArMzExLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190 IGIKICMgIGlmIFZFQ19TSVpFID09IDE2CiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkg KCh2ZWNfdClCKHB1bnBja2hkcSwgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksICh2c2lf dCl1bmRlZigpLCB+MCkpCiAjICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClC KHB1bnBja2xkcSwgX21hc2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksICh2c2lfdCl1bmRlZigp LCB+MCkpCisjICAgZGVmaW5lIHN3YXAoeCkgKCh2ZWNfdClCKHBzaHVmZCwgX21hc2ssICh2c2lf dCkoeCksIDBiMDAwMTEwMTEsICh2c2lfdCl1bmRlZigpLCB+MCkpCiAjICBlbHNlCiAjICAgZGVm aW5lIGludGVybGVhdmVfaGkoeCwgeSkgKCh2ZWNfdClCKHZwZXJtaTJ2YXJkLCBfbWFzaywgKHZz aV90KSh4KSwgaW50ZXJsZWF2ZV9oaSwgKHZzaV90KSh5KSwgfjApKQogIyAgIGRlZmluZSBpbnRl cmxlYXZlX2xvKHgsIHkpICgodmVjX3QpQih2cGVybXQydmFyZCwgX21hc2ssIGludGVybGVhdmVf bG8sICh2c2lfdCkoeCksICh2c2lfdCkoeSksIH4wKSkKKyMgICBkZWZpbmUgc3dhcCh4KSAoKHZl Y190KUIocHNodWZkLCBfbWFzaywgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCKHNo dWZfaTMyeDRfLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh4KSwgXAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZFQ19TSVpFID09IDMyID8gMGIwMSA6IDBiMDAwMTEwMTEsICh2 c2lfdCl1bmRlZigpLCB+MCksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGIwMDAx MTAxMSwgKHZzaV90KXVuZGVmKCksIH4wKSkKICMgIGVuZGlmCiAjICBkZWZpbmUgbWl4KHgsIHkp ICgodmVjX3QpQihtb3ZkcWEzMl8sIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMGIwMTAxMDEwMTAxMDEwMTAxICYgKCgxIDw8 IEVMRU1fQ09VTlQpIC0gMSkpKSkKQEAgLTMyNyw5ICszNDAsMTQgQEAgc3RhdGljIGlubGluZSBi b29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyAgaWYgVkVDX1NJWkUgPT0gMTYKICMgICBkZWZp bmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KUIocHVucGNraHFkcSwgX21hc2ssICh2ZGlf dCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCl1bmRlZigpLCB+MCkpCiAjICAgZGVmaW5lIGludGVy bGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHB1bnBja2xxZHEsIF9tYXNrLCAodmRpX3QpKHgpLCAo dmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwgfjApKQorIyAgIGRlZmluZSBzd2FwKHgpICgodmVj X3QpQihwc2h1ZmQsIF9tYXNrLCAodnNpX3QpKHgpLCAwYjAxMDAxMTEwLCAodnNpX3QpdW5kZWYo KSwgfjApKQogIyAgZWxzZQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgodmVjX3Qp Qih2cGVybWkydmFycSwgX21hc2ssICh2ZGlfdCkoeCksIGludGVybGVhdmVfaGksICh2ZGlfdCko eSksIH4wKSkKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSAoKHZlY190KUIodnBlcm10 MnZhcnEsIF9tYXNrLCBpbnRlcmxlYXZlX2xvLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCB+MCkp CisjICAgZGVmaW5lIHN3YXAoeCkgKCh2ZWNfdClCKHBzaHVmZCwgX21hc2ssIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHZzaV90KUIoc2h1Zl9pNjR4Ml8sIF9tYXNrLCAodmRpX3Qp KHgpLCAodmRpX3QpKHgpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFZFQ19TSVpFID09IDMyID8gMGIwMSA6IDBiMDAwMTEwMTEsICh2ZGlfdCl1bmRlZigpLCB+MCks IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGIwMTAwMTExMCwgKHZzaV90KXVuZGVm KCksIH4wKSkKICMgIGVuZGlmCiAjICBkZWZpbmUgbWl4KHgsIHkpICgodmVjX3QpQihtb3ZkcWE2 NF8sIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3QpKHkpLCAwYjAxMDEwMTAxKSkKICMgZW5kaWYK LS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuaAorKysgYi90b29scy90ZXN0cy94 ODZfZW11bGF0b3Ivc2ltZC5oCkBAIC0xMTksNiArMTE5LDEyIEBAIHR5cGVkZWYgbG9uZyBsb25n IF9fYXR0cmlidXRlX18oKHZlY3Rvcl8KIAogI2lmZGVmIF9fQVZYNTEyRl9fCiAKKy8qIFNhZGx5 IHRoZXJlIGFyZSBhIGZldyBleGNlcHRpb25zIHRvIHRoZSBnZW5lcmFsIG5hbWluZyBydWxlcy4g Ki8KKyNkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9mMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5f aWEzMl9zaHVmX2YzMng0X21hc2sKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9mNjR4Ml81 MTJfbWFzayBfX2J1aWx0aW5faWEzMl9zaHVmX2Y2NHgyX21hc2sKKyNkZWZpbmUgX19idWlsdGlu X2lhMzJfc2h1Zl9pMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9zaHVmX2kzMng0X21hc2sK KyNkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9pNjR4Ml81MTJfbWFzayBfX2J1aWx0aW5faWEz Ml9zaHVmX2k2NHgyX21hc2sKKwogI2lmIFZFQ19TSVpFIDwgNjQKICMgcHJhZ21hIEdDQyB0YXJn ZXQgKCAiYXZ4NTEydmwiICkKICNlbmRpZgpAQCAtMjA4LDYgKzIxNCw3IEBAIE9WUihwbW92enhi cSk7CiBPVlIocG1vdnp4ZHEpOwogT1ZSKHBtb3Z6eHdkKTsKIE9WUihwbW92enh3cSk7CitPVlIo cHNodWZkKTsKIE9WUihwdW5wY2toZHEpOwogT1ZSKHB1bnBja2hxZHEpOwogT1ZSKHB1bnBja2xk cSk7Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hl bi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC0zMTYsNyArMzE2LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB0d29ieXRlX3RhYmxlIHsKICAgICBbMHg2YiAuLi4gMHg2ZF0g PSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwK ICAgICBbMHg2ZV0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfbm9uZSwg ZDhzX2RxIH0sCiAgICAgWzB4NmZdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk18TW92LCBz aW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LAotICAgIFsweDcwXSA9IHsgU3JjSW1tQnl0ZXxNb2RS TXxUd29PcCwgc2ltZF9vdGhlciB9LAorICAgIFsweDcwXSA9IHsgU3JjSW1tQnl0ZXxNb2RSTXxU d29PcCwgc2ltZF9vdGhlciwgZDhzX3ZsIH0sCiAgICAgWzB4NzEgLi4uIDB4NzNdID0geyBEc3RJ bXBsaWNpdHxTcmNJbW1CeXRlfE1vZFJNLCBzaW1kX25vbmUsIGQ4c192bCB9LAogICAgIFsweDc0 IC4uLiAweDc2XSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNLCBzaW1kX3BhY2tlZF9pbnQs IGQ4c192bCB9LAogICAgIFsweDc3XSA9IHsgRHN0SW1wbGljaXR8U3JjTm9uZSB9LApAQCAtNDMw LDcgKzQzMCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzOF90YWJsZSB7CiAgICAgdWlu dDhfdCB2c2liOjE7CiAgICAgZGlzcDhzY2FsZV90IGQ4czo0OwogfSBleHQwZjM4X3RhYmxlWzI1 Nl0gPSB7Ci0gICAgWzB4MDAgLi4uIDB4MGJdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf aW50IH0sCisgICAgWzB4MDBdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhz ID0gZDhzX3ZsIH0sCisgICAgWzB4MDEgLi4uIDB4MGJdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfaW50IH0sCiAgICAgWzB4MGMgLi4uIDB4MGZdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfZnAgfSwKICAgICBbMHgxMCAuLi4gMHgxMl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3Bh Y2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHgxM10gPSB7IC5zaW1kX3NpemUgPSBz aW1kX290aGVyLCAudHdvX29wID0gMSB9LApAQCAtNTQxLDYgKzU0Miw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZXh0MGYzYV90YWJsZSB7CiAgICAgWzB4MjBdID0geyAuc2ltZF9zaXplID0gc2lt ZF9ub25lLCAuZDhzID0gMCB9LAogICAgIFsweDIxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3Ro ZXIsIC5kOHMgPSAyIH0sCiAgICAgWzB4MjJdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAu ZDhzID0gZDhzX2RxIH0sCisgICAgWzB4MjNdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf aW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4MjVdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4MzAgLi4uIDB4MzNdID0geyAuc2lt ZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEgfSwKICAgICBbMHgzOF0gPSB7IC5zaW1k X3NpemUgPSBzaW1kXzEyOCwgLmQ4cyA9IDQgfSwKQEAgLTU1MCw2ICs1NTIsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGV4dDBmM2FfdGFibGUgewogICAgIFsweDNlIC4uLiAweDNmXSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDQwIC4u LiAweDQxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwIH0sCiAgICAgWzB4NDJdID0g eyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4NDNdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4NDRdID0geyAu c2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiAgICAgWzB4NDZdID0geyAuc2ltZF9zaXpl ID0gc2ltZF9wYWNrZWRfaW50IH0sCiAgICAgWzB4NDggLi4uIDB4NDldID0geyAuc2ltZF9zaXpl ID0gc2ltZF9wYWNrZWRfZnAsIC5mb3VyX29wID0gMSB9LApAQCAtNjY1Myw2ICs2NjU2LDcgQEAg eDg2X2VtdWxhdGUoCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZjEpOiAv KiB2cHNsbHcgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVM X09QQ19FVkVYXzY2KDB4MGYsIDB4ZjUpOiAvKiB2cG1hZGR3ZCBbeHl6XW1tL21lbSxbeHl6XW1t LFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmNik6 IC8qIHZwc2FkYncgW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBY ODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHgwMCk6IC8qIHZwc2h1ZmIgW3h5el1tbS9tZW0s W3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgICAgIGZhdWx0X3N1cHByZXNzaW9uID0gZmFsc2U7 CiAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82 NigweDBmLCAweGQ1KTogLyogdnBtdWxsdyBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30g Ki8KQEAgLTY5MjQsNiArNjkyOCwyMCBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgaW5zbl9ieXRl cyA9IFBGWF9CWVRFUyArIDM7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYsIDB4NzApOiAvKiB2cHNodWZkICRpbW04LFt4eXpdbW0vbWVtLFt4eXpd bW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZiwgMHg3MCk6IC8qIHZw c2h1Zmh3ICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxf T1BDX0VWRVhfRjIoMHgwZiwgMHg3MCk6IC8qIHZwc2h1Zmx3ICRpbW04LFt4eXpdbW0vbWVtLFt4 eXpdbW17a30gKi8KKyAgICAgICAgaWYgKCBldmV4LnBmeCA9PSB2ZXhfNjYgKQorICAgICAgICAg ICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgudywgRVhDX1VEKTsKKyAgICAgICAgZWxzZQor ICAgICAgICB7CisgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJidyk7 CisgICAgICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5iciwgRVhDX1VEKTsKKyAg ICAgICAgfQorICAgICAgICBkID0gKGQgJiB+U3JjTWFzaykgfCBTcmNNZW0gfCBUd29PcDsKKyAg ICAgICAgb3BfYnl0ZXMgPSAxNiA8PCBldmV4LmxyOworICAgICAgICBnb3RvIGF2eDUxMmZfaW1t X25vX3NhZTsKKwogICAgIENBU0VfU0lNRF9QQUNLRURfSU5UKDB4MGYsIDB4NzEpOiAgICAvKiBH cnAxMiAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYsIDB4NzEpOgogICAgIENB U0VfU0lNRF9QQUNLRURfSU5UKDB4MGYsIDB4NzIpOiAgICAvKiBHcnAxMyAqLwpAQCAtOTA5Myw3 ICs5MTExLDEzIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiB2ZXh0cmFjdGk2NHgyICRpbW04LHt5LHp9bW0seG1tL20xMjh7a30g Ki8KICAgICAgICAgaWYgKCBldmV4LncgKQogICAgICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0 X2hhdmUoYXZ4NTEyZHEpOwotICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWV2ZXgubHIg fHwgZXZleC5iciwgRVhDX1VEKTsKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgu YnIsIEVYQ19VRCk7CisgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgIGNhc2UgWDg2RU1V TF9PUENfRVZFWF82NigweDBmM2EsIDB4MjMpOiAvKiB2c2h1ZmYzMng0ICRpbW04LFt4eXpdbW0v bWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiB2c2h1ZmY2NHgyICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5 el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4NDMpOiAv KiB2c2h1ZmkzMng0ICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2c2h1Zmk2NHgyICRp bW04LFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgICAgICBnZW5lcmF0ZV9l eGNlcHRpb25faWYoIWV2ZXgubHIsIEVYQ19VRCk7CiAgICAgICAgIGZhdWx0X3N1cHByZXNzaW9u ID0gZmFsc2U7CiAgICAgICAgIGdvdG8gYXZ4NTEyZl9pbW1fbm9fc2FlOwogCgoKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy b2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs