From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v5 41/47] x86emul: support remaining AVX512F legacy-equivalent insns Date: Mon, 19 Nov 2018 03:38:26 -0700 Message-ID: <5BF292A202000078001FD5D6@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BF289D802000078001FD3DF@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 1gOgwq-0003qS-9w for xen-devel@lists.xenproject.org; Mon, 19 Nov 2018 10:38:32 +0000 In-Reply-To: <5BF289D802000078001FD3DF@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 , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org UGx1cyB0aGVpciBBVlg1MTJCVyBjb3VudGVycGFydHMuCgpUYWtlIHRoZSBvcHBvcnR1bml0eSBh bmQgYWxzbyBlbGltaW5hdGUgYSBwYWlyIG9mIG9wZW4gY29kZWQgaW5zdGFuY2VzCm9mIHNjYWxh cl8xb3AoKS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K LS0tCnY1OiBOZXcuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5j CisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4LmMKQEAgLTE5Miw2ICsx OTIsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9hbGxbXSA9CiAgICAgSU5T Tl9QRlBfTkIobW92dSwgICAgICAgIDBmLCAxMCksCiAgICAgSU5TTl9QRlBfTkIobW92dSwgICAg ICAgIDBmLCAxMSksCiAgICAgSU5TTl9GUChtdWwsICAgICAgICAgICAgIDBmLCA1OSksCisgICAg SU5TTihwYWJzZCwgICAgICAgIDY2LCAwZjM4LCAxZSwgICAgdmwsICAgICAgZCwgdmwpLAorICAg IElOU04ocGFic3EsICAgICAgICA2NiwgMGYzOCwgMWYsICAgIHZsLCAgICAgIHEsIHZsKSwKICAg ICBJTlNOKHBhZGRkLCAgICAgICAgNjYsICAgMGYsIGZlLCAgICB2bCwgICAgICBkLCB2bCksCiAg ICAgSU5TTihwYWRkcSwgICAgICAgIDY2LCAgIDBmLCBkNCwgICAgdmwsICAgICAgcSwgdmwpLAog ICAgIElOU04ocGFuZCwgICAgICAgICA2NiwgICAwZiwgZGIsICAgIHZsLCAgICAgZHEsIHZsKSwK QEAgLTI3NSw2ICsyNzcsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmZfYWxs W10gPQogICAgIElOU04ocHVucGNrbGRxLCAgICA2NiwgICAwZiwgNjIsICAgIHZsLCAgICAgIGQs IHZsKSwKICAgICBJTlNOKHB1bnBja2xxZHEsICAgNjYsICAgMGYsIDZjLCAgICB2bCwgICAgICBx LCB2bCksCiAgICAgSU5TTihweG9yLCAgICAgICAgIDY2LCAgIDBmLCBlZiwgICAgdmwsICAgICBk cSwgdmwpLAorICAgIElOU04ocm5kc2NhbGVwZCwgICA2NiwgMGYzYSwgMDksICAgIHZsLCAgICAg IHEsIHZsKSwKKyAgICBJTlNOKHJuZHNjYWxlcHMsICAgNjYsIDBmM2EsIDA4LCAgICB2bCwgICAg ICBkLCB2bCksCisgICAgSU5TTihybmRzY2FsZXNkLCAgIDY2LCAwZjNhLCAwYiwgICAgZWwsICAg ICAgcSwgZWwpLAorICAgIElOU04ocm5kc2NhbGVzcywgICA2NiwgMGYzYSwgMGEsICAgIGVsLCAg ICAgIGQsIGVsKSwKICAgICBJTlNOX1BGUChzaHVmLCAgICAgICAgICAgMGYsIGM2KSwKICAgICBJ TlNOX0ZQKHNxcnQsICAgICAgICAgICAgMGYsIDUxKSwKICAgICBJTlNOX0ZQKHN1YiwgICAgICAg ICAgICAgMGYsIDVjKSwKQEAgLTMzNyw2ICszNDMsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRl c3QgYXZ4NTEyYndfYWxsW10KICAgICBJTlNOKG1vdmRxdTgsICAgICBmMiwgICAwZiwgN2YsICAg IHZsLCAgICBiLCB2bCksCiAgICAgSU5TTihtb3ZkcXUxNiwgICAgZjIsICAgMGYsIDZmLCAgICB2 bCwgICAgdywgdmwpLAogICAgIElOU04obW92ZHF1MTYsICAgIGYyLCAgIDBmLCA3ZiwgICAgdmws ICAgIHcsIHZsKSwKKyAgICBJTlNOKHBhYnNiLCAgICAgICA2NiwgMGYzOCwgMWMsICAgIHZsLCAg ICBiLCB2bCksCisgICAgSU5TTihwYWJzdywgICAgICAgNjYsIDBmMzgsIDFkLCAgICB2bCwgICAg dywgdmwpLAogICAgIElOU04ocGFja3NzZHcsICAgIDY2LCAgIDBmLCA2YiwgICAgdmwsIGRfbmIs IHZsKSwKICAgICBJTlNOKHBhY2tzc3diLCAgICA2NiwgICAwZiwgNjMsICAgIHZsLCAgICB3LCB2 bCksCiAgICAgSU5TTihwYWNrdXNkdywgICAgNjYsIDBmMzgsIDJiLCAgICB2bCwgZF9uYiwgdmwp LAotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCisrKyBiL3Rvb2xzL3Rlc3Rz L3g4Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTIwNCw4ICsyMDQsMTAgQEAgc3RhdGljIGlubGluZSBi b29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogI2VsaWYgZGVmaW5lZChGTE9BVF9TSVpFKSAmJiBW RUNfU0laRSA9PSBGTE9BVF9TSVpFICYmIGRlZmluZWQoX19BVlg1MTJGX18pCiAjIGlmIEZMT0FU X1NJWkUgPT0gNAogIyAgZGVmaW5lIHNxcnQoeCkgc2NhbGFyXzFvcCh4LCAidnNxcnRzcyAlW2lu XSwgJVtvdXRdLCAlW291dF0iKQorIyAgZGVmaW5lIHRydW5jKHgpIHNjYWxhcl8xb3AoeCwgInZy bmRzY2FsZXNzICQwYjEwMTEsICVbaW5dLCAlW291dF0sICVbb3V0XSIpCiAjIGVsaWYgRkxPQVRf U0laRSA9PSA4CiAjICBkZWZpbmUgc3FydCh4KSBzY2FsYXJfMW9wKHgsICJ2c3FydHNkICVbaW5d LCAlW291dF0sICVbb3V0XSIpCisjICBkZWZpbmUgdHJ1bmMoeCkgc2NhbGFyXzFvcCh4LCAidnJu ZHNjYWxlc2QgJDBiMTAxMSwgJVtpbl0sICVbb3V0XSwgJVtvdXRdIikKICMgZW5kaWYKICNlbGlm IGRlZmluZWQoRkxPQVRfU0laRSkgJiYgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgXAogICAgICAg KFZFQ19TSVpFID09IDY0IHx8IGRlZmluZWQoX19BVlg1MTJWTF9fKSkKQEAgLTI1Niw2ICsyNTgs NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjICBkZWZpbmUg bWl4KHgsIHkpIEIobW92YXBzLCBfbWFzaywgeCwgeSwgKDBiMDEwMTAxMDEwMTAxMDEwMSAmIEFM TF9UUlVFKSkKICMgIGRlZmluZSBzaHJpbmsxKHgpIEJSXyhjdnRwZDJwcywgX21hc2ssICh2ZGZf dCkoeCksICh2c2ZfaGFsZl90KXt9LCB+MCkKICMgIGRlZmluZSBzcXJ0KHgpIEJSKHNxcnRwcywg X21hc2ssIHgsIHVuZGVmKCksIH4wKQorIyAgZGVmaW5lIHRydW5jKHgpIEJSKHJuZHNjYWxlcHNf LCBfbWFzaywgeCwgMGIxMDExLCB1bmRlZigpLCB+MCkKICMgIGRlZmluZSB3aWRlbjEoeCkgKCh2 ZWNfdClCUihjdnRwczJwZCwgX21hc2ssIHgsICh2ZGZfdCl1bmRlZigpLCB+MCkpCiAjICBpZiBW RUNfU0laRSA9PSAxNgogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodW5wY2tocHMs IF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKQEAgLTMwOSw2ICszMTIsNyBAQCBzdGF0aWMgaW5s aW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjICBkZWZpbmUgbWluKHgsIHkpIEJSXyht aW5wZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAgZGVmaW5lIG1peCh4LCB5KSBCKG1v dmFwZCwgX21hc2ssIHgsIHksIDBiMDEwMTAxMDEpCiAjICBkZWZpbmUgc3FydCh4KSBCUihzcXJ0 cGQsIF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKKyMgIGRlZmluZSB0cnVuYyh4KSBCUihybmRzY2Fs ZXBkXywgX21hc2ssIHgsIDBiMTAxMSwgdW5kZWYoKSwgfjApCiAjICBpZiBWRUNfU0laRSA9PSAx NgogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpIEIodW5wY2tocGQsIF9tYXNrLCB4LCB5 LCB1bmRlZigpLCB+MCkKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBk LCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCkBAIC01NDEsNiArNTQ1LDcgQEAgc3RhdGljIGlu bGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyAgZW5kaWYKICMgZW5kaWYKICMgaWYg SU5UX1NJWkUgPT0gNAorIyAgZGVmaW5lIGFicyh4KSBCKHBhYnNkLCBfbWFzaywgeCwgdW5kZWYo KSwgfjApCiAjICBkZWZpbmUgbWF4KHgsIHkpIEIocG1heHNkLCBfbWFzaywgeCwgeSwgdW5kZWYo KSwgfjApCiAjICBkZWZpbmUgbWluKHgsIHkpIEIocG1pbnNkLCBfbWFzaywgeCwgeSwgdW5kZWYo KSwgfjApCiAjICBkZWZpbmUgbXVsX2Z1bGwoeCwgeSkgKCh2ZWNfdClCKHBtdWxkcSwgX21hc2ss IHgsIHksICh2ZGlfdCl1bmRlZigpLCB+MCkpCkBAIC01NTEsNiArNTU2LDcgQEAgc3RhdGljIGlu bGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyAgZGVmaW5lIG11bF9mdWxsKHgsIHkp ICgodmVjX3QpQihwbXVsdWRxLCBfbWFzaywgKHZzaV90KSh4KSwgKHZzaV90KSh5KSwgKHZkaV90 KXVuZGVmKCksIH4wKSkKICMgIGRlZmluZSB3aWRlbjEoeCkgKCh2ZWNfdClCKHBtb3Z6eGRxLCBf bWFzaywgKHZzaV9oYWxmX3QpKHgpLCAodmRpX3QpdW5kZWYoKSwgfjApKQogIyBlbGlmIElOVF9T SVpFID09IDgKKyMgIGRlZmluZSBhYnMoeCkgKCh2ZWNfdClCKHBhYnNxLCBfbWFzaywgKHZkaV90 KSh4KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKICMgIGRlZmluZSBtYXgoeCwgeSkgKCh2ZWNfdClC KHBtYXhzcSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCl1bmRlZigpLCB+ MCkpCiAjICBkZWZpbmUgbWluKHgsIHkpICgodmVjX3QpQihwbWluc3EsIF9tYXNrLCAodmRpX3Qp KHgpLCAodmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwgfjApKQogIyBlbGlmIFVJTlRfU0laRSA9 PSA4CkBAIC02MTgsNiArNjI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIF90b19ib29sKGJ5dGVf dmVjX3QgYgogIyAgZGVmaW5lIHN3YXAyKHgpICgodmVjX3QpQihwZXJtdmFyaGksIF9tYXNrLCAo dmhpX3QpKHgpLCAodmhpX3QpKGludiAtIDEpLCAodmhpX3QpdW5kZWYoKSwgfjApKQogIyBlbmRp ZgogIyBpZiBJTlRfU0laRSA9PSAxCisjICBkZWZpbmUgYWJzKHgpICgodmVjX3QpQihwYWJzYiwg X21hc2ssICh2cWlfdCkoeCksICh2cWlfdCl1bmRlZigpLCB+MCkpCiAjICBkZWZpbmUgbWF4KHgs IHkpICgodmVjX3QpQihwbWF4c2IsIF9tYXNrLCAodnFpX3QpKHgpLCAodnFpX3QpKHkpLCAodnFp X3QpdW5kZWYoKSwgfjApKQogIyAgZGVmaW5lIG1pbih4LCB5KSAoKHZlY190KUIocG1pbnNiLCBf bWFzaywgKHZxaV90KSh4KSwgKHZxaV90KSh5KSwgKHZxaV90KXVuZGVmKCksIH4wKSkKICMgIGRl ZmluZSB3aWRlbjEoeCkgKCh2ZWNfdClCKHBtb3ZzeGJ3LCBfbWFzaywgKHZxaV9oYWxmX3QpKHgp LCAodmhpX3QpdW5kZWYoKSwgfjApKQpAQCAtNjMwLDYgKzYzNyw3IEBAIHN0YXRpYyBpbmxpbmUg Ym9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgIGRlZmluZSB3aWRlbjIoeCkgKCh2ZWNfdClC KHBtb3Z6eGJkLCBfbWFzaywgKHZxaV9xdWFydGVyX3QpKHgpLCAodnNpX3QpdW5kZWYoKSwgfjAp KQogIyAgZGVmaW5lIHdpZGVuMyh4KSAoKHZlY190KUIocG1vdnp4YnEsIF9tYXNrLCAodnFpX2Vp Z2h0aF90KSh4KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKICMgZWxpZiBJTlRfU0laRSA9PSAyCisj ICBkZWZpbmUgYWJzKHgpIEIocGFic3csIF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKICMgIGRlZmlu ZSBtYXgoeCwgeSkgQihwbWF4c3csIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgIGRlZmlu ZSBtaW4oeCwgeSkgQihwbWluc3csIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgIGRlZmlu ZSBtdWxfaGkoeCwgeSkgQihwbXVsaHcsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKQEAgLTk0 MSwxOSArOTQ5LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIK ICNpZiBWRUNfU0laRSA9PSBGTE9BVF9TSVpFCiAjIGRlZmluZSBtYXgoeCwgeSkgKCh2ZWNfdCl7 KHsgdHlwZW9mKHhbMF0pIHhfID0gKHgpWzBdLCB5XyA9ICh5KVswXTsgeF8gPiB5XyA/IHhfIDog eV87IH0pfSkKICMgZGVmaW5lIG1pbih4LCB5KSAoKHZlY190KXsoeyB0eXBlb2YoeFswXSkgeF8g PSAoeClbMF0sIHlfID0gKHkpWzBdOyB4XyA8IHlfID8geF8gOiB5XzsgfSl9KQotIyBpZmRlZiBf X1NTRTRfMV9fCisjIGlmIGRlZmluZWQoX19TU0U0XzFfXykgJiYgIWRlZmluZWQoX19BVlg1MTJG X18pCiAjICBpZiBGTE9BVF9TSVpFID09IDQKLSMgICBkZWZpbmUgdHJ1bmMoeCkgKHsgXAotICAg IGZsb2F0IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSkpIHJfOyBcCi0gICAgYXNtICgg InJvdW5kc3MgJDBiMTAxMSwlMSwlMCIgOiAiPXgiIChyXykgOiAibSIgKHgpICk7IFwKLSAgICAo dmVjX3QpeyByX1swXSB9OyBcCi19KQorIyAgIGRlZmluZSB0cnVuYyh4KSBzY2FsYXJfMW9wKHgs ICJyb3VuZHNzICQwYjEwMTEsICVbaW5dLCAlW291dF0iKQogIyAgZWxpZiBGTE9BVF9TSVpFID09 IDgKLSMgICBkZWZpbmUgdHJ1bmMoeCkgKHsgXAotICAgIGRvdWJsZSBfX2F0dHJpYnV0ZV9fKCh2 ZWN0b3Jfc2l6ZSgxNikpKSByXzsgXAotICAgIGFzbSAoICJyb3VuZHNkICQwYjEwMTEsJTEsJTAi IDogIj14IiAocl8pIDogIm0iICh4KSApOyBcCi0gICAgKHZlY190KXsgcl9bMF0gfTsgXAotfSkK KyMgICBkZWZpbmUgdHJ1bmMoeCkgc2NhbGFyXzFvcCh4LCAicm91bmRzZCAkMGIxMDExLCAlW2lu XSwgJVtvdXRdIikKICMgIGVuZGlmCiAjIGVuZGlmCiAjZW5kaWYKLS0tIGEvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL3NpbWQuaAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5o CkBAIC0xODQsNiArMTg0LDggQEAgREVDTF9PQ1RFVChoYWxmKTsKICNkZWZpbmUgX19idWlsdGlu X2lhMzJfaW5zZXJ0aTMyeDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDRfbWFz awogI2RlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4OF81MTJfbWFzayBfX2J1aWx0aW5f aWEzMl9pbnNlcnRpMzJ4OF9tYXNrCiAjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX2luc2VydGk2NHg0 XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2luc2VydGk2NHg0X21hc2sKKyNkZWZpbmUgX19idWls dGluX2lhMzJfcm5kc2NhbGVwZF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkX21h c2sKKyNkZWZpbmUgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc181MTJfbWFzayBfX2J1aWx0aW5f aWEzMl9ybmRzY2FsZXBzX21hc2sKICNkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9mMzJ4NF81 MTJfbWFzayBfX2J1aWx0aW5faWEzMl9zaHVmX2YzMng0X21hc2sKICNkZWZpbmUgX19idWlsdGlu X2lhMzJfc2h1Zl9mNjR4Ml81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9zaHVmX2Y2NHgyX21hc2sK ICNkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9pMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEz Ml9zaHVmX2kzMng0X21hc2sKQEAgLTI0NSw2ICsyNDcsNyBAQCBPVlJfSU5UKGJyb2FkY2FzdCk7 CiBPVlJfU0ZQKGJyb2FkY2FzdCk7CiBPVlJfU0ZQKGNvbWkpOwogT1ZSX1ZGUChjdnRkcTIpOwor T1ZSX0lOVChhYnMpOwogT1ZSX0ZQKGFkZCk7CiBPVlJfSU5UKGFkZCk7CiBPVlJfQlcoYWRkcyk7 Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9h cmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC00NDYsNyArNDQ2LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBleHQwZjM4X3RhYmxlIHsKICAgICBbMHgxOV0gPSB7IC5zaW1kX3Np emUgPSBzaW1kX3NjYWxhcl9vcGMsIC50d29fb3AgPSAxLCAuZDhzID0gMyB9LAogICAgIFsweDFh XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAudHdvX29wID0gMSwgLmQ4cyA9IDQgfSwKICAg ICBbMHgxYl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzI1NiwgLnR3b19vcCA9IDEsIC5kOHMgPSBk OHNfdmxfYnlfMiB9LAotICAgIFsweDFjIC4uLiAweDFlXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf cGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKKyAgICBbMHgxYyAuLi4gMHgxZl0gPSB7IC5zaW1k X3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsIH0sCiAg ICAgWzB4MjBdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEsIC5kOHMg PSBkOHNfdmxfYnlfMiB9LAogICAgIFsweDIxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIs IC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsX2J5XzQgfSwKICAgICBbMHgyMl0gPSB7IC5zaW1k X3NpemUgPSBzaW1kX290aGVyLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bF9ieV84IH0sCkBA IC01MzEsOCArNTMxLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjNhX3RhYmxlIHsKICAg ICBbMHgwMl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKICAgICBbMHgwNCAu Li4gMHgwNV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEsIC5k OHMgPSBkOHNfdmwgfSwKICAgICBbMHgwNl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9m cCB9LAotICAgIFsweDA4IC4uLiAweDA5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2Zw LCAudHdvX29wID0gMSB9LAotICAgIFsweDBhIC4uLiAweDBiXSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfc2NhbGFyX29wYyB9LAorICAgIFsweDA4IC4uLiAweDA5XSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bCB9LAorICAgIFsweDBhIC4u LiAweDBiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX29wYywgLmQ4cyA9IGQ4c19kcSB9 LAogICAgIFsweDBjIC4uLiAweDBkXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwIH0s CiAgICAgWzB4MGUgLi4uIDB4MGZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0s CiAgICAgWzB4MTRdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAudG9fbWVtID0gMSwgLnR3 b19vcCA9IDEsIC5kOHMgPSAwIH0sCkBAIC02ODY1LDYgKzY4NjUsOCBAQCB4ODZfZW11bGF0ZSgK ICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmOSk6IC8qIHZwc3VidyBbeHl6 XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZiwgMHhmYyk6IC8qIHZwYWRkYiBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30g Ki8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmZCk6IC8qIHZwYWRkdyBb eHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VW RVhfNjYoMHgwZjM4LCAweDFjKTogLyogdnBhYnNiIFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8K KyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDFkKTogLyogdnBhYnN3IFt4 eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUo YXZ4NTEyYncpOwogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5iciwgRVhDX1VE KTsKICAgICAgICAgZWxlbV9ieXRlcyA9IDEgPDwgKGIgJiAxKTsKQEAgLTgyNDYsNiArODI0OCw4 IEBAIHg4Nl9lbXVsYXRlKAogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGZh KTogLyogdnBzdWJkIFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweGZiKTogLyogdnBzdWJxIFt4eXpdbW0vbWVtLFt4 eXpdbW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAw eGZlKTogLyogdnBhZGRkIFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgIGNh c2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MWUpOiAvKiB2cGFic2QgW3h5el1tbS9t ZW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4 MWYpOiAvKiB2cGFic3EgW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLwogICAgICAgICBnZW5lcmF0 ZV9leGNlcHRpb25faWYoZXZleC53ICE9IChiICYgMSksIEVYQ19VRCk7CiAgICAgICAgIGdvdG8g YXZ4NTEyZl9ub19zYWU7CiAKQEAgLTkyNzQsNiArOTI3OCwxNyBAQCB4ODZfZW11bGF0ZSgKICAg ICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoc3NlNF8xKTsKICAgICAgICAgZ290byBzaW1k XzBmM2FfY29tbW9uOwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgw YSk6IC8qIHZybmRzY2FsZXNzICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MGIpOiAvKiB2cm5kc2Nh bGVzZCAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICAgICAgZ2Vu ZXJhdGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfUkVHICYmIGV2ZXguYnIsIEVYQ19VRCk7 CisgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82 NigweDBmM2EsIDB4MDgpOiAvKiB2cm5kc2NhbGVwcyAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1t e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgwOSk6IC8qIHZy bmRzY2FsZXBkICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgaG9zdF9h bmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7CisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9p ZihldmV4LncgIT0gKGIgJiAxKSwgRVhDX1VEKTsKKyAgICAgICAgYXZ4NTEyX3ZsZW5fY2hlY2so YiAmIDIpOworICAgICAgICBnb3RvIHNpbWRfaW1tOF96bW07CisKICAgICBjYXNlIFg4NkVNVUxf T1BDKDB4MGYzYSwgMHgwZik6ICAgIC8qIHBhbGlnbnIgJGltbTgsbW0vbTY0LG1tICovCiAgICAg Y2FzZSBYODZFTVVMX09QQ182NigweDBmM2EsIDB4MGYpOiAvKiBwYWxpZ25yICRpbW04LHhtbS9t MTI4LHhtbSAqLwogICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShzc3NlMyk7CgoKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs