From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 28/50] x86emul: support AVX512F floating point manipulation insns Date: Fri, 15 Mar 2019 04:56:05 -0600 Message-ID: <5C8B84C5020000780021F242@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C8B7EC0020000780021F10B@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 1h4kVU-0007If-4i for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 10:56:08 +0000 In-Reply-To: <5C8B7EC0020000780021F10B@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 U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0Kdjc6IEZp eCB2ZWN0b3IgbGVuZ3RoIGNoZWNrIGZvciBzY2FsYXIgaW5zbnMuIGVhLnR5cGUgPT0gT1BfKiAt PgogICAgZWEudHlwZSAhPSBPUF8qLiBSZS1iYXNlLgp2NTogTmV3LgoKLS0tIGEvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0 b3IvZXZleC1kaXNwOC5jCkBAIC0xNDAsNiArMTQwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0 ZXN0IGF2eDUxMmZfYWxsW10gPQogICAgIElOU04oY3Z0dXNpMnNkLCAgICBmMiwgICAwZiwgN2Is ICAgIGVsLCAgIGRxNjQsIGVsKSwKICAgICBJTlNOKGN2dHVzaTJzcywgICAgZjMsICAgMGYsIDdi LCAgICBlbCwgICBkcTY0LCBlbCksCiAgICAgSU5TTl9GUChkaXYsICAgICAgICAgICAgIDBmLCA1 ZSksCisgICAgSU5TTihmaXh1cGltbSwgICAgIDY2LCAwZjNhLCA1NCwgICAgdmwsICAgICBzZCwg dmwpLAorICAgIElOU04oZml4dXBpbW0sICAgICA2NiwgMGYzYSwgNTUsICAgIGVsLCAgICAgc2Qs IGVsKSwKICAgICBJTlNOKGZtYWRkMTMyLCAgICAgNjYsIDBmMzgsIDk4LCAgICB2bCwgICAgIHNk LCB2bCksCiAgICAgSU5TTihmbWFkZDEzMiwgICAgIDY2LCAwZjM4LCA5OSwgICAgZWwsICAgICBz ZCwgZWwpLAogICAgIElOU04oZm1hZGQyMTMsICAgICA2NiwgMGYzOCwgYTgsICAgIHZsLCAgICAg c2QsIHZsKSwKQEAgLTE3MCw2ICsxNzIsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2 eDUxMmZfYWxsW10gPQogICAgIElOU04oZm5tc3ViMjEzLCAgICA2NiwgMGYzOCwgYWYsICAgIGVs LCAgICAgc2QsIGVsKSwKICAgICBJTlNOKGZubXN1YjIzMSwgICAgNjYsIDBmMzgsIGJlLCAgICB2 bCwgICAgIHNkLCB2bCksCiAgICAgSU5TTihmbm1zdWIyMzEsICAgIDY2LCAwZjM4LCBiZiwgICAg ZWwsICAgICBzZCwgZWwpLAorICAgIElOU04oZ2V0ZXhwLCAgICAgICA2NiwgMGYzOCwgNDIsICAg IHZsLCAgICAgc2QsIHZsKSwKKyAgICBJTlNOKGdldGV4cCwgICAgICAgNjYsIDBmMzgsIDQzLCAg ICBlbCwgICAgIHNkLCBlbCksCisgICAgSU5TTihnZXRtYW50LCAgICAgIDY2LCAwZjNhLCAyNiwg ICAgdmwsICAgICBzZCwgdmwpLAorICAgIElOU04oZ2V0bWFudCwgICAgICA2NiwgMGYzYSwgMjcs ICAgIGVsLCAgICAgc2QsIGVsKSwKICAgICBJTlNOX0ZQKG1heCwgICAgICAgICAgICAgMGYsIDVm KSwKICAgICBJTlNOX0ZQKG1pbiwgICAgICAgICAgICAgMGYsIDVkKSwKICAgICBJTlNOX1NGUCht b3YsICAgICAgICAgICAgMGYsIDEwKSwKQEAgLTI4Niw2ICsyOTIsOCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHRlc3QgYXZ4NTEyZl9hbGxbXSA9CiAgICAgSU5TTihybmRzY2FsZXNzLCAgIDY2LCAw ZjNhLCAwYSwgICAgZWwsICAgICAgZCwgZWwpLAogICAgIElOU04ocnNxcnQxNCwgICAgICA2Niwg MGYzOCwgNGUsICAgIHZsLCAgICAgc2QsIHZsKSwKICAgICBJTlNOKHJzcXJ0MTQsICAgICAgNjYs IDBmMzgsIDRmLCAgICBlbCwgICAgIHNkLCBlbCksCisgICAgSU5TTihzY2FsZWYsICAgICAgIDY2 LCAwZjM4LCAyYywgICAgdmwsICAgICBzZCwgdmwpLAorICAgIElOU04oc2NhbGVmLCAgICAgICA2 NiwgMGYzOCwgMmQsICAgIGVsLCAgICAgc2QsIGVsKSwKICAgICBJTlNOX1BGUChzaHVmLCAgICAg ICAgICAgMGYsIGM2KSwKICAgICBJTlNOX0ZQKHNxcnQsICAgICAgICAgICAgMGYsIDUxKSwKICAg ICBJTlNOX0ZQKHN1YiwgICAgICAgICAgICAgMGYsIDVjKSwKLS0tIGEvdG9vbHMvdGVzdHMveDg2 X2VtdWxhdG9yL3NpbWQuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCkBA IC0xNzQsNiArMTc0LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190 IGIKICAgICBhc20gKCBvcCA6IFtvdXRdICI9JngiIChyXykgOiBbaW5dICJtIiAoeCkgKTsgXAog ICAgICh2ZWNfdCl7IHJfWzBdIH07IFwKIH0pCisjIGRlZmluZSBzY2FsYXJfMm9wKHgsIHksIG9w KSAoeyBcCisgICAgdHlwZW9mKCh4KVswXSkgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYp KSkgcl8gPSB7IHhbMF0gfTsgXAorICAgIGFzbSAoIG9wIDogW291dF0gIj0meCIgKHJfKSA6IFtp bjFdICJbb3V0XSIgKHJfKSwgW2luMl0gIm0iICh5KSApOyBcCisgICAgKHZlY190KXsgcl9bMF0g fTsgXAorfSkKICNlbmRpZgogCiAjaWYgVkVDX1NJWkUgPT0gMTYgJiYgRkxPQVRfU0laRSA9PSA0 ICYmIGRlZmluZWQoX19TU0VfXykKQEAgLTIxMCw2ICsyMTUsOCBAQCBzdGF0aWMgaW5saW5lIHZl Y190IG1vdmxocHModmVjX3QgeCwgdmVjCiB9KQogI2VsaWYgZGVmaW5lZChGTE9BVF9TSVpFKSAm JiBWRUNfU0laRSA9PSBGTE9BVF9TSVpFICYmIGRlZmluZWQoX19BVlg1MTJGX18pCiAjIGlmIEZM T0FUX1NJWkUgPT0gNAorIyAgZGVmaW5lIGdldGV4cCh4KSBzY2FsYXJfMW9wKHgsICJ2Z2V0ZXhw c3MgJVtpbl0sICVbb3V0XSwgJVtvdXRdIikKKyMgIGRlZmluZSBnZXRtYW50KHgpIHNjYWxhcl8x b3AoeCwgInZnZXRtYW50c3MgJDAsICVbaW5dLCAlW291dF0sICVbb3V0XSIpCiAjICBpZmRlZiBf X0FWWDUxMkVSX18KICMgICBkZWZpbmUgcmVjaXAoeCkgc2NhbGFyXzFvcCh4LCAidnJjcDI4c3Mg JVtpbl0sICVbb3V0XSwgJVtvdXRdIikKICMgICBkZWZpbmUgcnNxcnQoeCkgc2NhbGFyXzFvcCh4 LCAidnJzcXJ0MjhzcyAlW2luXSwgJVtvdXRdLCAlW291dF0iKQpAQCAtMjE3LDkgKzIyNCwxMiBA QCBzdGF0aWMgaW5saW5lIHZlY190IG1vdmxocHModmVjX3QgeCwgdmVjCiAjICAgZGVmaW5lIHJl Y2lwKHgpIHNjYWxhcl8xb3AoeCwgInZyY3AxNHNzICVbaW5dLCAlW291dF0sICVbb3V0XSIpCiAj ICAgZGVmaW5lIHJzcXJ0KHgpIHNjYWxhcl8xb3AoeCwgInZyc3FydDE0c3MgJVtpbl0sICVbb3V0 XSwgJVtvdXRdIikKICMgIGVuZGlmCisjICBkZWZpbmUgc2NhbGUoeCwgeSkgc2NhbGFyXzJvcCh4 LCB5LCAidnNjYWxlZnNzICVbaW4yXSwgJVtpbjFdLCAlW291dF0iKQogIyAgZGVmaW5lIHNxcnQo eCkgc2NhbGFyXzFvcCh4LCAidnNxcnRzcyAlW2luXSwgJVtvdXRdLCAlW291dF0iKQogIyAgZGVm aW5lIHRydW5jKHgpIHNjYWxhcl8xb3AoeCwgInZybmRzY2FsZXNzICQwYjEwMTEsICVbaW5dLCAl W291dF0sICVbb3V0XSIpCiAjIGVsaWYgRkxPQVRfU0laRSA9PSA4CisjICBkZWZpbmUgZ2V0ZXhw KHgpIHNjYWxhcl8xb3AoeCwgInZnZXRleHBzZCAlW2luXSwgJVtvdXRdLCAlW291dF0iKQorIyAg ZGVmaW5lIGdldG1hbnQoeCkgc2NhbGFyXzFvcCh4LCAidmdldG1hbnRzZCAkMCwgJVtpbl0sICVb b3V0XSwgJVtvdXRdIikKICMgIGlmZGVmIF9fQVZYNTEyRVJfXwogIyAgIGRlZmluZSByZWNpcCh4 KSBzY2FsYXJfMW9wKHgsICJ2cmNwMjhzZCAlW2luXSwgJVtvdXRdLCAlW291dF0iKQogIyAgIGRl ZmluZSByc3FydCh4KSBzY2FsYXJfMW9wKHgsICJ2cnNxcnQyOHNkICVbaW5dLCAlW291dF0sICVb b3V0XSIpCkBAIC0yMjcsNiArMjM3LDcgQEAgc3RhdGljIGlubGluZSB2ZWNfdCBtb3ZsaHBzKHZl Y190IHgsIHZlYwogIyAgIGRlZmluZSByZWNpcCh4KSBzY2FsYXJfMW9wKHgsICJ2cmNwMTRzZCAl W2luXSwgJVtvdXRdLCAlW291dF0iKQogIyAgIGRlZmluZSByc3FydCh4KSBzY2FsYXJfMW9wKHgs ICJ2cnNxcnQxNHNkICVbaW5dLCAlW291dF0sICVbb3V0XSIpCiAjICBlbmRpZgorIyAgZGVmaW5l IHNjYWxlKHgsIHkpIHNjYWxhcl8yb3AoeCwgeSwgInZzY2FsZWZzZCAlW2luMl0sICVbaW4xXSwg JVtvdXRdIikKICMgIGRlZmluZSBzcXJ0KHgpIHNjYWxhcl8xb3AoeCwgInZzcXJ0c2QgJVtpbl0s ICVbb3V0XSwgJVtvdXRdIikKICMgIGRlZmluZSB0cnVuYyh4KSBzY2FsYXJfMW9wKHgsICJ2cm5k c2NhbGVzZCAkMGIxMDExLCAlW2luXSwgJVtvdXRdLCAlW291dF0iKQogIyBlbmRpZgpAQCAtMjc0 LDkgKzI4NSwxMiBAQCBzdGF0aWMgaW5saW5lIHZlY190IG1vdmxocHModmVjX3QgeCwgdmVjCiAj ICAgZGVmaW5lIGJyb2FkY2FzdF9vY3RldCh4KSBCKGJyb2FkY2FzdGYzMng4XywgX21hc2ssIHgs IHVuZGVmKCksIH4wKQogIyAgIGRlZmluZSBpbnNlcnRfb2N0ZXQoeCwgeSwgcCkgQihpbnNlcnRm MzJ4OF8sIF9tYXNrLCB4LCB5LCBwLCB1bmRlZigpLCB+MCkKICMgIGVuZGlmCisjICBkZWZpbmUg Z2V0ZXhwKHgpIEJSKGdldGV4cHBzLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICBkZWZpbmUg Z2V0bWFudCh4KSBCUihnZXRtYW50cHMsIF9tYXNrLCB4LCAwLCB1bmRlZigpLCB+MCkKICMgIGRl ZmluZSBtYXgoeCwgeSkgQlJfKG1heHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBk ZWZpbmUgbWluKHgsIHkpIEJSXyhtaW5wcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAg ZGVmaW5lIG1peCh4LCB5KSBCKG1vdmFwcywgX21hc2ssIHgsIHksICgwYjAxMDEwMTAxMDEwMTAx MDEgJiBBTExfVFJVRSkpCisjICBkZWZpbmUgc2NhbGUoeCwgeSkgQlIoc2NhbGVmcHMsIF9tYXNr LCB4LCB5LCB1bmRlZigpLCB+MCkKICMgIGlmIFZFQ19TSVpFID09IDY0ICYmIGRlZmluZWQoX19B Vlg1MTJFUl9fKQogIyAgIGRlZmluZSByZWNpcCh4KSBCUihyY3AyOHBzLCBfbWFzaywgeCwgdW5k ZWYoKSwgfjApCiAjICAgZGVmaW5lIHJzcXJ0KHgpIEJSKHJzcXJ0MjhwcywgX21hc2ssIHgsIHVu ZGVmKCksIH4wKQpAQCAtMzM2LDkgKzM1MCwxMiBAQCBzdGF0aWMgaW5saW5lIHZlY190IG1vdmxo cHModmVjX3QgeCwgdmVjCiAjICAgZGVmaW5lIGJyb2FkY2FzdF9xdWFydGV0KHgpIEIoYnJvYWRj YXN0ZjY0eDRfLCAsIHgsIHVuZGVmKCksIH4wKQogIyAgIGRlZmluZSBpbnNlcnRfcXVhcnRldCh4 LCB5LCBwKSBCKGluc2VydGY2NHg0XywgX21hc2ssIHgsIHksIHAsIHVuZGVmKCksIH4wKQogIyAg ZW5kaWYKKyMgIGRlZmluZSBnZXRleHAoeCkgQlIoZ2V0ZXhwcGQsIF9tYXNrLCB4LCB1bmRlZigp LCB+MCkKKyMgIGRlZmluZSBnZXRtYW50KHgpIEJSKGdldG1hbnRwZCwgX21hc2ssIHgsIDAsIHVu ZGVmKCksIH4wKQogIyAgZGVmaW5lIG1heCh4LCB5KSBCUl8obWF4cGQsIF9tYXNrLCB4LCB5LCB1 bmRlZigpLCB+MCkKICMgIGRlZmluZSBtaW4oeCwgeSkgQlJfKG1pbnBkLCBfbWFzaywgeCwgeSwg dW5kZWYoKSwgfjApCiAjICBkZWZpbmUgbWl4KHgsIHkpIEIobW92YXBkLCBfbWFzaywgeCwgeSwg MGIwMTAxMDEwMSkKKyMgIGRlZmluZSBzY2FsZSh4LCB5KSBCUihzY2FsZWZwZCwgX21hc2ssIHgs IHksIHVuZGVmKCksIH4wKQogIyAgaWYgVkVDX1NJWkUgPT0gNjQgJiYgZGVmaW5lZChfX0FWWDUx MkVSX18pCiAjICAgZGVmaW5lIHJlY2lwKHgpIEJSKHJjcDI4cGQsIF9tYXNrLCB4LCB1bmRlZigp LCB+MCkKICMgICBkZWZpbmUgcnNxcnQoeCkgQlIocnNxcnQyOHBkLCBfbWFzaywgeCwgdW5kZWYo KSwgfjApCkBAIC0xNzY2LDYgKzE3ODMsMjggQEAgaW50IHNpbWRfdGVzdCh2b2lkKQogIyBlbmRp ZgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKGdldGV4cCkgJiYgZGVmaW5lZChnZXRtYW50KQorICAg IHRvdWNoKHNyYyk7CisgICAgeCA9IGdldG1hbnQoc3JjKTsKKyAgICB0b3VjaChzcmMpOworICAg IHkgPSBnZXRleHAoc3JjKTsKKyAgICB0b3VjaChzcmMpOworICAgIGZvciAoIGogPSBpID0gMDsg aSA8IEVMRU1fQ09VTlQ7ICsraSApCisgICAgeworICAgICAgICBpZiAoIHlbaV0gIT0gaiApIHJl dHVybiBfX0xJTkVfXzsKKworICAgICAgICBpZiAoICEoKGkgKyAxKSAmIChpICsgMikpICkKKyAg ICAgICAgICAgICsrajsKKworICAgICAgICBpZiAoICEoaSAmIChpICsgMSkpICYmIHhbaV0gIT0g MSApIHJldHVybiBfX0xJTkVfXzsKKyAgICB9CisjIGlmZGVmIHNjYWxlCisgICAgdG91Y2goeSk7 CisgICAgeiA9IHNjYWxlKHgsIHkpOworICAgIGlmICggIWVxKHNyYywgeikgKSByZXR1cm4gX19M SU5FX187CisjIGVuZGlmCisjZW5kaWYKKwogI2lmIChkZWZpbmVkKF9fWE9QX18pICYmIFZFQ19T SVpFID09IDE2ICYmIChJTlRfU0laRSA9PSAyIHx8IElOVF9TSVpFID09IDQpKSB8fCBcCiAgICAg KGRlZmluZWQoX19BVlg1MTJGX18pICYmIGRlZmluZWQoRkxPQVRfU0laRSkpCiAgICAgcmV0dXJu IC1mbWFfdGVzdCgpOwotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11 bGF0b3IuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3Iu YwpAQCAtMzkyNCw2ICszOTI0LDQ0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK ICAgICBlbHNlCiAgICAgICAgIHByaW50Zigic2tpcHBlZFxuIik7CiAKKyAgICBwcmludGYoIiUt NDBzIiwgIlRlc3RpbmcgdmZpeHVwaW1tcGQgJDAsOCglZWR4KXsxdG84fSwlem1tMywlem1tNC4u LiIpOworICAgIGlmICggc3RhY2tfZXhlYyAmJiBjcHVfaGFzX2F2eDUxMmYgKQorICAgIHsKKyAg ICAgICAgZGVjbF9pbnNuKHZmaXh1cGltbXBkKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHN0cnVj dCB7CisgICAgICAgICAgICBkb3VibGUgZFs0XTsKKyAgICAgICAgfQorICAgICAgICBzcmMgPSB7 IHsgLTEsIDAsIDEsIDIgfSB9LAorICAgICAgICBkc3QgPSB7IHsgMywgNCwgNSwgNiB9IH0sCisg ICAgICAgIG91dCA9IHsgeyAuNSwgLTEsIDkwLCAyIH0gfTsKKworICAgICAgICBhc20gdm9sYXRp bGUgKCAidmJyb2FkY2FzdGY2NHg0ICUxLCAlJXptbTNcblx0IgorICAgICAgICAgICAgICAgICAg ICAgICAidmJyb2FkY2FzdGY2NHg0ICUyLCAlJXptbTRcbiIKKyAgICAgICAgICAgICAgICAgICAg ICAgcHV0X2luc24odmZpeHVwaW1tcGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ2Zml4dXBpbW1wZCAkMCwgOCglMCklezF0bzglfSwgJSV6bW0zLCAlJXptbTQiKQorICAgICAg ICAgICAgICAgICAgICAgICA6OiAiZCIgKE5VTEwpLCAibSIgKHNyYyksICJtIiAoZHN0KSApOwor CisgICAgICAgIHNldF9pbnNuKHZmaXh1cGltbXBkKTsKKyAgICAgICAgLyoKKyAgICAgICAgICog TmliYmxlICh0b2tlbikgbWFwcGluZyAodW51c2VkIG9uZXMgc2ltcGx5IHNldCB0byB6ZXJvKToK KyAgICAgICAgICogMiAoWkVSTykgICAgLT4gIC0xICgweDkpCisgICAgICAgICAqIDMgKFBPU19P TkUpIC0+ICA5MCAoMHhjKQorICAgICAgICAgKiA2IChORUcpICAgICAtPiAxLzIgKDB4YikKKyAg ICAgICAgICogNyAoUE9TKSAgICAgLT4gc3JjICgweDEpCisgICAgICAgICAqLworICAgICAgICBy ZXNbMl0gPSAweDFiMDBjOTAwOworICAgICAgICByZWdzLmVkeCA9ICh1bnNpZ25lZCBsb25nKXJl czsKKyAgICAgICAgcmMgPSB4ODZfZW11bGF0ZSgmY3R4dCwgJmVtdWxvcHMpOworICAgICAgICBh c20gdm9sYXRpbGUgKCAidm1vdnVwZCAlJXptbTQsICUwIiA6ICI9bSIgKHJlc1swXSkgKTsKKyAg ICAgICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgfHwgIWNoZWNrX2VpcCh2Zml4dXBpbW1wZCkg fHwKKyAgICAgICAgICAgICBtZW1jbXAocmVzICsgMCwgJm91dCwgc2l6ZW9mKG91dCkpIHx8Cisg ICAgICAgICAgICAgbWVtY21wKHJlcyArIDgsICZvdXQsIHNpemVvZihvdXQpKSApCisgICAgICAg ICAgICBnb3RvIGZhaWw7CisgICAgICAgIHByaW50Zigib2theVxuIik7CisgICAgfQorICAgIGVs c2UKKyAgICAgICAgcHJpbnRmKCJza2lwcGVkXG4iKTsKKwogI3VuZGVmIGRlY2xfaW5zbgogI3Vu ZGVmIHB1dF9pbnNuCiAjdW5kZWYgc2V0X2luc24KLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmMKQEAgLTQ1OSw3ICs0NTksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmMzhfdGFi bGUgewogICAgIFsweDI2IC4uLiAweDI5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2lu dCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDJhXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFj a2VkX2ludCwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHgyYl0gPSB7IC5z aW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKLSAgICBbMHgyYyAu Li4gMHgyZF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCB9LAorICAgIFsweDJjXSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZDhzID0gZDhzX3ZsIH0sCisgICAgWzB4 MmRdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC5kOHMgPSBkOHNfZHEgfSwKICAg ICBbMHgyZSAuLi4gMHgyZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLnRvX21l bSA9IDEgfSwKICAgICBbMHgzMF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdvX29w ID0gMSwgLmQ4cyA9IGQ4c192bF9ieV8yIH0sCiAgICAgWzB4MzFdID0geyAuc2ltZF9zaXplID0g c2ltZF9vdGhlciwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmxfYnlfNCB9LApAQCAtNDcwLDYg KzQ3MSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzOF90YWJsZSB7CiAgICAgWzB4MzYg Li4uIDB4M2ZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3Zs IH0sCiAgICAgWzB4NDBdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0g ZDhzX3ZsIH0sCiAgICAgWzB4NDFdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAu dHdvX29wID0gMSB9LAorICAgIFsweDQyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2Zw LCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bCB9LAorICAgIFsweDQzXSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfc2NhbGFyX3ZleHcsIC5kOHMgPSBkOHNfZHEgfSwKICAgICBbMHg0NSAuLi4gMHg0 N10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAg ICBbMHg0Y10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEsIC5k OHMgPSBkOHNfdmwgfSwKICAgICBbMHg0ZF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl92 ZXh3LCAuZDhzID0gZDhzX2RxIH0sCkBAIC01NjMsNiArNTY2LDggQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBleHQwZjNhX3RhYmxlIHsKICAgICBbMHgyMl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX25v bmUsIC5kOHMgPSBkOHNfZHE2NCB9LAogICAgIFsweDIzXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf cGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDI1XSA9IHsgLnNpbWRfc2l6ZSA9 IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAorICAgIFsweDI2XSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bCB9LAorICAg IFsweDI3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX3ZleHcsIC5kOHMgPSBkOHNfZHEg fSwKICAgICBbMHgzMCAuLi4gMHgzM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdv X29wID0gMSB9LAogICAgIFsweDM4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAuZDhzID0g NCB9LAogICAgIFsweDNhXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMjU2LCAuZDhzID0gZDhzX3Zs X2J5XzIgfSwKQEAgLTU3Nyw2ICs1ODIsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmM2Ff dGFibGUgewogICAgIFsweDQ4IC4uLiAweDQ5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2Vk X2ZwLCAuZm91cl9vcCA9IDEgfSwKICAgICBbMHg0YSAuLi4gMHg0Yl0gPSB7IC5zaW1kX3NpemUg PSBzaW1kX3BhY2tlZF9mcCwgLmZvdXJfb3AgPSAxIH0sCiAgICAgWzB4NGNdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50LCAuZm91cl9vcCA9IDEgfSwKKyAgICBbMHg1NF0gPSB7IC5z aW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLmQ4cyA9IGQ4c192bCB9LAorICAgIFsweDU1XSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX3ZleHcsIC5kOHMgPSBkOHNfZHEgfSwKICAgICBb MHg1YyAuLi4gMHg1Zl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLmZvdXJfb3Ag PSAxIH0sCiAgICAgWzB4NjAgLi4uIDB4NjNdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf aW50LCAudHdvX29wID0gMSB9LAogICAgIFsweDY4IC4uLiAweDY5XSA9IHsgLnNpbWRfc2l6ZSA9 IHNpbWRfcGFja2VkX2ZwLCAuZm91cl9vcCA9IDEgfSwKQEAgLTI2ODQsNiArMjY5MSwxMCBAQCB4 ODZfZGVjb2RlXzBmMzgoCiAgICAgICAgIGN0eHQtPm9wY29kZSB8PSBNQVNLX0lOU1IodmV4LnBm eCwgWDg2RU1VTF9PUENfUEZYX01BU0spOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgWDg2 RU1VTF9PUENfRVZFWF82NigwLCAweDJkKTogLyogdnNjYWxlZnN7cyxkfSAqLworICAgICAgICBz dGF0ZS0+c2ltZF9zaXplID0gc2ltZF9zY2FsYXJfdmV4dzsKKyAgICAgICAgYnJlYWs7CisKICAg ICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMCwgMHg3YSk6IC8qIHZwYnJvYWRjYXN0YiAqLwog ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigwLCAweDdiKTogLyogdnBicm9hZGNhc3R3ICov CiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDAsIDB4N2MpOiAvKiB2cGJyb2FkY2FzdHtk LHF9ICovCkBAIC05MDk1LDYgKzkxMDYsOCBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgaG9zdF9h bmRfdmNwdV9tdXN0X2hhdmUoZm1hKTsKICAgICAgICAgZ290byBzaW1kXzBmX3ltbTsKIAorICAg IGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MmMpOiAvKiB2c2NhbGVmcHtzLGR9 IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF82NigweDBmMzgsIDB4NDIpOiAvKiB2Z2V0ZXhwcHtzLGR9IFt4eXpdbW0vbWVtLFt4eXpd bW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDk2KTogLyog dmZtYWRkc3ViMTMycHtzLGR9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLwogICAg IGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4OTcpOiAvKiB2Zm1zdWJhZGQxMzJw e3MsZH0gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVM X09QQ19FVkVYXzY2KDB4MGYzOCwgMHg5OCk6IC8qIHZmbWFkZDEzMnB7cyxkfSBbeHl6XW1tL21l bSxbeHl6XW1tLFt4eXpdbW17a30gKi8KQEAgLTkxMTgsNiArOTEzMSw4IEBAIHg4Nl9lbXVsYXRl KAogICAgICAgICAgICAgYXZ4NTEyX3ZsZW5fY2hlY2soZmFsc2UpOwogICAgICAgICBnb3RvIHNp bWRfem1tOwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHgyZCk6IC8q IHZzY2FsZWZze3MsZH0geG1tL21lbSx4bW0seG1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYzOCwgMHg0Myk6IC8qIHZnZXRleHBze3MsZH0geG1tL21lbSx4bW0seG1t e2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHg5OSk6IC8qIHZm bWFkZDEzMnN7cyxkfSB4bW0vbWVtLHhtbSx4bW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZjM4LCAweDliKTogLyogdmZtc3ViMTMyc3tzLGR9IHhtbS9tZW0seG1tLHht bXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4OWQpOiAvKiB2 Zm5tYWRkMTMyc3tzLGR9IHhtbS9tZW0seG1tLHhtbXtrfSAqLwpAQCAtOTY4MSw2ICs5Njk2LDIx IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBvcF9ieXRlcyA9IDQ7CiAgICAgICAgIGdvdG8gc2lt ZF9pbW04X3ptbTsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MjYp OiAvKiB2Z2V0bWFudHB7cyxkfSAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1te2t9ICovCisgICAg Y2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHg1NCk6IC8qIHZmaXh1cGltbXB7cyxk fSAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICAgICAgaG9zdF9h bmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7CisgICAgICAgIGlmICggZWEudHlwZSAhPSBPUF9S RUcgfHwgIWV2ZXguYnJzICkKKyAgICAgICAgICAgIGF2eDUxMl92bGVuX2NoZWNrKGZhbHNlKTsK KyAgICAgICAgZ290byBzaW1kX2ltbThfem1tOworCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVY XzY2KDB4MGYzYSwgMHgyNyk6IC8qIHZnZXRtYW50c3tzLGR9ICRpbW04LHhtbS9tZW0seG1tLHht bXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4NTUpOiAvKiB2 Zml4dXBpbW1ze3MsZH0gJGltbTgseG1tL21lbSx4bW0seG1te2t9ICovCisgICAgICAgIGhvc3Rf YW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmYpOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25f aWYoZWEudHlwZSAhPSBPUF9SRUcgJiYgZXZleC5icnMsIEVYQ19VRCk7CisgICAgICAgIGlmICgg IWV2ZXguYnJzICkKKyAgICAgICAgICAgIGF2eDUxMl92bGVuX2NoZWNrKHRydWUpOworICAgICAg ICBnb3RvIHNpbWRfaW1tOF96bW07CisKICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBm M2EsIDB4MzApOiAvKiBrc2hpZnRye2Isd30gJGltbTgsayxrICovCiAgICAgY2FzZSBYODZFTVVM X09QQ19WRVhfNjYoMHgwZjNhLCAweDMyKTogLyoga3NoaWZ0bHtiLHd9ICRpbW04LGssayAqLwog ICAgICAgICBpZiAoICF2ZXgudyApCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs