From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v6 29/42] x86emul: support AVX512DQ floating point manipulation insns Date: Thu, 06 Dec 2018 03:05:56 -0700 Message-ID: <5C08F484020000780020389F@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C08EFAE020000780020373E@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 1gUqXh-0006WO-71 for xen-devel@lists.xenproject.org; Thu, 06 Dec 2018 10:06:01 +0000 In-Reply-To: <5C08EFAE020000780020373E@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 VGhpcyBjb21wbGV0ZXMgc3VwcG9ydCBvZiBBVlg1MTJEUSBpbiB0aGUgaW5zbiBlbXVsYXRvci4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCnY1OiBO ZXcuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCisrKyBiL3Rv b2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4LmMKQEAgLTQ1NywxMSArNDU3LDE3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV9hbGxbXQogICAgIElOU04oY3Z0dHBz MnVxcSwgICAgIDY2LCAgIDBmLCA3OCwgdmxfMiwgIGQsIHZsKSwKICAgICBJTlNOKGN2dHVxcTJw ZCwgICAgICBmMywgICAwZiwgN2EsICAgdmwsICBxLCB2bCksCiAgICAgSU5TTihjdnR1cXEycHMs ICAgICAgZjIsICAgMGYsIDdhLCAgIHZsLCAgcSwgdmwpLAorICAgIElOU04oZnBjbGFzcywgICAg ICAgIDY2LCAwZjNhLCA2NiwgICB2bCwgc2QsIHZsKSwKKyAgICBJTlNOKGZwY2xhc3MsICAgICAg ICA2NiwgMGYzYSwgNjcsICAgZWwsIHNkLCBlbCksCiAgICAgSU5TTl9QRlAob3IsICAgICAgICAg ICAgICAgMGYsIDU2KSwKIC8vICAgICAgIHBtb3ZkMm0sICAgICAgICBmMywgMGYzOCwgMzksICAg ICAgICBkCiAvLyAgICAgICBwbW92bTIsICAgICAgICAgZjMsIDBmMzgsIDM4LCAgICAgICBkcQog Ly8gICAgICAgcG1vdnEybSwgICAgICAgIGYzLCAwZjM4LCAzOSwgICAgICAgIHEKICAgICBJTlNO KHBtdWxscSwgICAgICAgICA2NiwgMGYzOCwgNDAsICAgdmwsICBxLCB2bCksCisgICAgSU5TTihy YW5nZSwgICAgICAgICAgNjYsIDBmM2EsIDUwLCAgIHZsLCBzZCwgdmwpLAorICAgIElOU04ocmFu Z2UsICAgICAgICAgIDY2LCAwZjNhLCA1MSwgICBlbCwgc2QsIGVsKSwKKyAgICBJTlNOKHJlZHVj ZSwgICAgICAgICA2NiwgMGYzYSwgNTYsICAgdmwsIHNkLCB2bCksCisgICAgSU5TTihyZWR1Y2Us ICAgICAgICAgNjYsIDBmM2EsIDU3LCAgIGVsLCBzZCwgZWwpLAogICAgIElOU05fUEZQKHhvciwg ICAgICAgICAgICAgIDBmLCA1NyksCiB9OwogCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRv ci9zaW1kLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAtMjg1LDEw ICsyODUsMTggQEAgc3RhdGljIGlubGluZSB2ZWNfdCBtb3ZsaHBzKHZlY190IHgsIHZlYwogIyAg IGRlZmluZSBicm9hZGNhc3Rfb2N0ZXQoeCkgQihicm9hZGNhc3RmMzJ4OF8sIF9tYXNrLCB4LCB1 bmRlZigpLCB+MCkKICMgICBkZWZpbmUgaW5zZXJ0X29jdGV0KHgsIHksIHApIEIoaW5zZXJ0ZjMy eDhfLCBfbWFzaywgeCwgeSwgcCwgdW5kZWYoKSwgfjApCiAjICBlbmRpZgorIyAgaWZkZWYgX19B Vlg1MTJEUV9fCisjICAgZGVmaW5lIGZyYWMoeCkgQihyZWR1Y2VwcywgX21hc2ssIHgsIDBiMDAw MDEwMTEsIHVuZGVmKCksIH4wKQorIyAgZW5kaWYKICMgIGRlZmluZSBnZXRleHAoeCkgQlIoZ2V0 ZXhwcHMsIF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKICMgIGRlZmluZSBnZXRtYW50KHgpIEJSKGdl dG1hbnRwcywgX21hc2ssIHgsIDAsIHVuZGVmKCksIH4wKQotIyAgZGVmaW5lIG1heCh4LCB5KSBC Ul8obWF4cHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKLSMgIGRlZmluZSBtaW4oeCwgeSkg QlJfKG1pbnBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICBpZmRlZiBfX0FWWDUxMkRR X18KKyMgICBkZWZpbmUgbWF4KHgsIHkpIEJSKHJhbmdlcHMsIF9tYXNrLCB4LCB5LCAwYjAxMDEs IHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSBtaW4oeCwgeSkgQlIocmFuZ2VwcywgX21hc2ssIHgs IHksIDBiMDEwMCwgdW5kZWYoKSwgfjApCisjICBlbHNlCisjICAgZGVmaW5lIG1heCh4LCB5KSBC Ul8obWF4cHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgbWluKHgsIHkp IEJSXyhtaW5wcywgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQorIyAgZW5kaWYKICMgIGRlZmlu ZSBtaXgoeCwgeSkgQihtb3ZhcHMsIF9tYXNrLCB4LCB5LCAoMGIwMTAxMDEwMTAxMDEwMTAxICYg QUxMX1RSVUUpKQogIyAgZGVmaW5lIHNjYWxlKHgsIHkpIEJSKHNjYWxlZnBzLCBfbWFzaywgeCwg eSwgdW5kZWYoKSwgfjApCiAjICBpZiBWRUNfU0laRSA9PSA2NCAmJiBkZWZpbmVkKF9fQVZYNTEy RVJfXykKQEAgLTM1MCwxMCArMzU4LDE4IEBAIHN0YXRpYyBpbmxpbmUgdmVjX3QgbW92bGhwcyh2 ZWNfdCB4LCB2ZWMKICMgICBkZWZpbmUgYnJvYWRjYXN0X3F1YXJ0ZXQoeCkgQihicm9hZGNhc3Rm NjR4NF8sICwgeCwgdW5kZWYoKSwgfjApCiAjICAgZGVmaW5lIGluc2VydF9xdWFydGV0KHgsIHks IHApIEIoaW5zZXJ0ZjY0eDRfLCBfbWFzaywgeCwgeSwgcCwgdW5kZWYoKSwgfjApCiAjICBlbmRp ZgorIyAgaWZkZWYgX19BVlg1MTJEUV9fCisjICAgZGVmaW5lIGZyYWMoeCkgQihyZWR1Y2VwZCwg X21hc2ssIHgsIDBiMDAwMDEwMTEsIHVuZGVmKCksIH4wKQorIyAgZW5kaWYKICMgIGRlZmluZSBn ZXRleHAoeCkgQlIoZ2V0ZXhwcGQsIF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKICMgIGRlZmluZSBn ZXRtYW50KHgpIEJSKGdldG1hbnRwZCwgX21hc2ssIHgsIDAsIHVuZGVmKCksIH4wKQotIyAgZGVm aW5lIG1heCh4LCB5KSBCUl8obWF4cGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKLSMgIGRl ZmluZSBtaW4oeCwgeSkgQlJfKG1pbnBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCisjICBp ZmRlZiBfX0FWWDUxMkRRX18KKyMgICBkZWZpbmUgbWF4KHgsIHkpIEJSKHJhbmdlcGQsIF9tYXNr LCB4LCB5LCAwYjAxMDEsIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSBtaW4oeCwgeSkgQlIocmFu Z2VwZCwgX21hc2ssIHgsIHksIDBiMDEwMCwgdW5kZWYoKSwgfjApCisjICBlbHNlCisjICAgZGVm aW5lIG1heCh4LCB5KSBCUl8obWF4cGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKKyMgICBk ZWZpbmUgbWluKHgsIHkpIEJSXyhtaW5wZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQorIyAg ZW5kaWYKICMgIGRlZmluZSBtaXgoeCwgeSkgQihtb3ZhcGQsIF9tYXNrLCB4LCB5LCAwYjAxMDEw MTAxKQogIyAgZGVmaW5lIHNjYWxlKHgsIHkpIEJSKHNjYWxlZnBkLCBfbWFzaywgeCwgeSwgdW5k ZWYoKSwgfjApCiAjICBpZiBWRUNfU0laRSA9PSA2NCAmJiBkZWZpbmVkKF9fQVZYNTEyRVJfXykK LS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKKysrIGIv dG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKQEAgLTM5MzMsNiAr MzkzMywzOSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgZWxzZQogICAg ICAgICBwcmludGYoInNraXBwZWRcbiIpOwogCisKKyAgICBwcmludGYoIiUtNDBzIiwgIlRlc3Rp bmcgdmZwY2xhc3Nwc3ogJDB4NDYsNjQoJWVkeCksJWsyLi4uIik7CisgICAgaWYgKCBzdGFja19l eGVjICYmIGNwdV9oYXNfYXZ4NTEyZHEgKQorICAgIHsKKyAgICAgICAgZGVjbF9pbnNuKHZmcGNs YXNzcHMpOworCisgICAgICAgIGFzbSB2b2xhdGlsZSAoIHB1dF9pbnNuKHZmcGNsYXNzcHMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDB4NDY6IGNoZWNrIGZvciArLy0gMCBh bmQgbmVnLiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmZwY2xhc3Nwc3og JDB4NDYsIDY0KCUwKSwgJSVrMiIpCisgICAgICAgICAgICAgICAgICAgICAgIDo6ICJkIiAoTlVM TCkgKTsKKworICAgICAgICBzZXRfaW5zbih2ZnBjbGFzc3BzKTsKKyAgICAgICAgZm9yICggaSA9 IDA7IGkgPCAzOyArK2kgKQorICAgICAgICB7CisgICAgICAgICAgICByZXNbMTYgKyBpICogNSAr IDBdID0gMHgwMDAwMDAwMDsgLyogKzAgKi8KKyAgICAgICAgICAgIHJlc1sxNiArIGkgKiA1ICsg MV0gPSAweDgwMDAwMDAwOyAvKiAtMCAqLworICAgICAgICAgICAgcmVzWzE2ICsgaSAqIDUgKyAy XSA9IDB4ODAwMDAwMDE7IC8qIC1ERU4gKi8KKyAgICAgICAgICAgIHJlc1sxNiArIGkgKiA1ICsg M10gPSAweGZmMDAwMDAwOyAvKiAtRklOICovCisgICAgICAgICAgICByZXNbMTYgKyBpICogNSAr IDRdID0gMHg3ZjAwMDAwMDsgLyogK0ZJTiAqLworICAgICAgICB9CisgICAgICAgIHJlc1szMV0g PSAwOworICAgICAgICByZWdzLmVkeCA9ICh1bnNpZ25lZCBsb25nKXJlczsKKyAgICAgICAgcmMg PSB4ODZfZW11bGF0ZSgmY3R4dCwgJmVtdWxvcHMpOworICAgICAgICBpZiAoIHJjICE9IFg4NkVN VUxfT0tBWSB8fCAhY2hlY2tfZWlwKHZmcGNsYXNzcHMpICkKKyAgICAgICAgICAgIGdvdG8gZmFp bDsKKyAgICAgICAgYXNtIHZvbGF0aWxlICggImttb3Z3ICUlazIsICUwIiA6ICI9ZyIgKHJjKSAp OworICAgICAgICBpZiAoIHJjICE9IDB4YmRlZiApCisgICAgICAgICAgICBnb3RvIGZhaWw7Cisg ICAgICAgIHByaW50Zigib2theVxuIik7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgcHJpbnRm KCJza2lwcGVkXG4iKTsKKwogI3VuZGVmIGRlY2xfaW5zbgogI3VuZGVmIHB1dF9pbnNuCiAjdW5k ZWYgc2V0X2luc24KLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMK KysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTU4MiwxMCAr NTgyLDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzYV90YWJsZSB7CiAgICAgWzB4NDgg Li4uIDB4NDldID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC5mb3VyX29wID0gMSB9 LAogICAgIFsweDRhIC4uLiAweDRiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAu Zm91cl9vcCA9IDEgfSwKICAgICBbMHg0Y10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9p bnQsIC5mb3VyX29wID0gMSB9LAorICAgIFsweDUwXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFj a2VkX2ZwLCAuZDhzID0gZDhzX3ZsIH0sCisgICAgWzB4NTFdID0geyAuc2ltZF9zaXplID0gc2lt ZF9zY2FsYXJfdmV4dywgLmQ4cyA9IGQ4c19kcSB9LAogICAgIFsweDU0XSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4NTVdID0geyAuc2lt ZF9zaXplID0gc2ltZF9zY2FsYXJfdmV4dywgLmQ4cyA9IGQ4c19kcSB9LAorICAgIFsweDU2XSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192 bCB9LAorICAgIFsweDU3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX3ZleHcsIC5kOHMg PSBkOHNfZHEgfSwKICAgICBbMHg1YyAuLi4gMHg1Zl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3Bh Y2tlZF9mcCwgLmZvdXJfb3AgPSAxIH0sCiAgICAgWzB4NjAgLi4uIDB4NjNdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50LCAudHdvX29wID0gMSB9LAorICAgIFsweDY2XSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bCB9LAor ICAgIFsweDY3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX3ZleHcsIC50d29fb3AgPSAx LCAuZDhzID0gZDhzX2RxIH0sCiAgICAgWzB4NjggLi4uIDB4NjldID0geyAuc2ltZF9zaXplID0g c2ltZF9wYWNrZWRfZnAsIC5mb3VyX29wID0gMSB9LAogICAgIFsweDZhIC4uLiAweDZiXSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX29wYywgLmZvdXJfb3AgPSAxIH0sCiAgICAgWzB4NmMg Li4uIDB4NmRdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC5mb3VyX29wID0gMSB9 LApAQCAtOTY0Miw2ICs5NjQ4LDEwIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBvcF9ieXRlcyA9 IDQ7CiAgICAgICAgIGdvdG8gc2ltZF9pbW04X3ptbTsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF82NigweDBmM2EsIDB4NTApOiAvKiB2cmFuZ2Vwe3MsZH0gJGltbTgsW3h5el1tbS9tZW0s W3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYz YSwgMHg1Nik6IC8qIHZyZWR1Y2Vwe3MsZH0gJGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAq LworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJkcSk7CisgICAgICAgIC8q IGZhbGwgdGhyb3VnaCAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4 MjYpOiAvKiB2Z2V0bWFudHB7cyxkfSAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1te2t9ICovCiAg ICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHg1NCk6IC8qIHZmaXh1cGltbXB7 cyxkfSAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAgICAgICAgaG9z dF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7CkBAIC05NjQ5LDExICs5NjU5LDE2IEBAIHg4 Nl9lbXVsYXRlKAogICAgICAgICAgICAgYXZ4NTEyX3ZsZW5fY2hlY2soZmFsc2UpOwogICAgICAg ICBnb3RvIHNpbWRfaW1tOF96bW07CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjNhLCAweDUxKTogLyogdnJhbmdlc3tzLGR9ICRpbW04LHhtbS9tZW0seG1tLHhtbXtrfSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4NTcpOiAvKiB2cmVkdWNlc3tz LGR9ICRpbW04LHhtbS9tZW0seG1tLHhtbXtrfSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211 c3RfaGF2ZShhdng1MTJkcSk7CisgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MjcpOiAvKiB2Z2V0bWFudHN7cyxkfSAkaW1t OCx4bW0vbWVtLHhtbSx4bW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjNhLCAweDU1KTogLyogdmZpeHVwaW1tc3tzLGR9ICRpbW04LHhtbS9tZW0seG1tLHhtbXtrfSAq LwogICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJmKTsKICAgICAgICAgaWYg KCBlYS50eXBlID09IE9QX01FTSApCiAgICAgICAgIHsKKyAgICBzaW1kX2ltbThfem1tX3NjYWxh cjoKICAgICAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LmJyLCBFWENfVUQpOwog ICAgICAgICAgICAgYXZ4NTEyX3ZsZW5fY2hlY2sodHJ1ZSk7CiAgICAgICAgIH0KQEAgLTk4MDYs NiArOTgyMSwxNCBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZHN0LnR5cGUgPSBPUF9OT05FOwog ICAgICAgICBicmVhazsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4 NjYpOiAvKiB2ZnBjbGFzc3B7ZCxzfSAkaW1tOCxbeHl6XW1tL21lbSxre2t9ICovCisgICAgY2Fz ZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHg2Nyk6IC8qIHZmcGNsYXNzc3tkLHN9ICRp bW04LFt4eXpdbW0vbWVtLGt7a30gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUo YXZ4NTEyZHEpOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWV2ZXguciB8fCAhZXZl eC5SIHx8IGV2ZXgueiwgRVhDX1VEKTsKKyAgICAgICAgaWYgKCBiICYgMSApCisgICAgICAgICAg ICBnb3RvIHNpbWRfaW1tOF96bW1fc2NhbGFyOworICAgICAgICBnb3RvIGF2eDUxMmZfaW1tOF9u b19zYWU7CisKICAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYzYSwgMHhjYyk6ICAgICAvKiBzaGEx cm5kczQgJGltbTgseG1tL20xMjgseG1tICovCiAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9o YXZlKHNoYSk7CiAgICAgICAgIG9wX2J5dGVzID0gMTY7CgoKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs