From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 03/50] x86emul: support AVX512{F, BW, DQ} insert insns Date: Fri, 15 Mar 2019 04:37:20 -0600 Message-ID: <5C8B8060020000780021F11C@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 1h4kDL-00032X-1l for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 10:37:23 +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 QWxzbyBjb3JyZWN0IHRoZSBjb21tZW50IG9mIHRoZSBBVlggZm9ybSBvZiBWSU5TRVJUUFMuCgpT aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkFja2VkLWJ5OiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0Kdjc6IFJlLWJhc2Uu CnY2OiBEb24ndCByZWZ1c2UgdG8gZW11bGF0ZSBWSU5TRVJUUFMgd2l0aG91dCBBVlg1MTJWTC4K djQ6IE1ha2UgdXNlIG9mIGQ4c19kcTY0Lgp2MzogTmV3LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2 X2VtdWxhdG9yL2V2ZXgtZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZl eC1kaXNwOC5jCkBAIC0yMTMsNiArMjEzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2 eDUxMmZfYWxsW10gPQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl8xMjhbXSA9 IHsKICAgICBJTlNOKGV4dHJhY3RwcywgNjYsIDBmM2EsIDE3LCBlbCwgICAgZCwgZWwpLAorICAg IElOU04oaW5zZXJ0cHMsICA2NiwgMGYzYSwgMjEsIGVsLCAgICBkLCBlbCksCiAgICAgSU5TTiht b3YsICAgICAgIDY2LCAgIDBmLCA2ZSwgZWwsIGRxNjQsIGVsKSwKICAgICBJTlNOKG1vdiwgICAg ICAgNjYsICAgMGYsIDdlLCBlbCwgZHE2NCwgZWwpLAogICAgIElOU04obW92cSwgICAgICBmMywg ICAwZiwgN2UsIGVsLCAgICBxLCBlbCksCkBAIC0yMjQsMTIgKzIyNSwxNiBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9ubzEyOFtdCiAgICAgSU5TTihicm9hZGNhc3RzZCwgICAg NjYsIDBmMzgsIDE5LCBlbCwgICAgcSwgZWwpLAogICAgIElOU04oZXh0cmFjdGYzMng0LCAgIDY2 LCAwZjNhLCAxOSwgZWxfNCwgIGQsIHZsKSwKICAgICBJTlNOKGV4dHJhY3RpMzJ4NCwgICA2Niwg MGYzYSwgMzksIGVsXzQsICBkLCB2bCksCisgICAgSU5TTihpbnNlcnRmMzJ4NCwgICAgNjYsIDBm M2EsIDE4LCBlbF80LCAgZCwgdmwpLAorICAgIElOU04oaW5zZXJ0aTMyeDQsICAgIDY2LCAwZjNh LCAzOCwgZWxfNCwgIGQsIHZsKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1 MTJmXzUxMltdID0gewogICAgIElOU04oYnJvYWRjYXN0ZjY0eDQsIDY2LCAwZjM4LCAxYiwgZWxf NCwgcSwgdmwpLAogICAgIElOU04oZXh0cmFjdGY2NHg0LCAgIDY2LCAwZjNhLCAxYiwgZWxfNCwg cSwgdmwpLAogICAgIElOU04oZXh0cmFjdGk2NHg0LCAgIDY2LCAwZjNhLCAzYiwgZWxfNCwgcSwg dmwpLAorICAgIElOU04oaW5zZXJ0ZjY0eDQsICAgIDY2LCAwZjNhLCAxYSwgZWxfNCwgcSwgdmwp LAorICAgIElOU04oaW5zZXJ0aTY0eDQsICAgIDY2LCAwZjNhLCAzYSwgZWxfNCwgcSwgdmwpLAog fTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmJ3X2FsbFtdID0gewpAQCAtMjg5 LDYgKzI5NCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJid18xMjhbXQogICAg IElOU04ocGV4dHJiLCA2NiwgMGYzYSwgMTQsIGVsLCBiLCBlbCksCiAvLyAgICAgICBwZXh0cncs IDY2LCAgIDBmLCBjNSwgICAgIHcKICAgICBJTlNOKHBleHRydywgNjYsIDBmM2EsIDE1LCBlbCwg dywgZWwpLAorICAgIElOU04ocGluc3JiLCA2NiwgMGYzYSwgMjAsIGVsLCBiLCBlbCksCisgICAg SU5TTihwaW5zcncsIDY2LCAgIDBmLCBjNCwgZWwsIHcsIGVsKSwKIH07CiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV9hbGxbXSA9IHsKQEAgLTMwMSw2ICszMDgsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfYWxsW10KIAogc3RhdGljIGNvbnN0IHN0cnVj dCB0ZXN0IGF2eDUxMmRxXzEyOFtdID0gewogICAgIElOU04ocGV4dHIsIDY2LCAwZjNhLCAxNiwg ZWwsIGRxNjQsIGVsKSwKKyAgICBJTlNOKHBpbnNyLCA2NiwgMGYzYSwgMjIsIGVsLCBkcTY0LCBl bCksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfbm8xMjhbXSA9IHsK QEAgLTMwOCwxMiArMzE2LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV9u bzEyOFsKICAgICBJTlNOKGJyb2FkY2FzdGY2NHgyLCA2NiwgMGYzOCwgMWEsIGVsXzIsIHEsIHZs KSwKICAgICBJTlNOKGV4dHJhY3RmNjR4MiwgICA2NiwgMGYzYSwgMTksIGVsXzIsIHEsIHZsKSwK ICAgICBJTlNOKGV4dHJhY3RpNjR4MiwgICA2NiwgMGYzYSwgMzksIGVsXzIsIHEsIHZsKSwKKyAg ICBJTlNOKGluc2VydGY2NHgyLCAgICA2NiwgMGYzYSwgMTgsIGVsXzIsIHEsIHZsKSwKKyAgICBJ TlNOKGluc2VydGk2NHgyLCAgICA2NiwgMGYzYSwgMzgsIGVsXzIsIHEsIHZsKSwKIH07CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV81MTJbXSA9IHsKICAgICBJTlNOKGJyb2Fk Y2FzdGYzMng4LCA2NiwgMGYzOCwgMWIsIGVsXzgsIGQsIHZsKSwKICAgICBJTlNOKGV4dHJhY3Rm MzJ4OCwgICA2NiwgMGYzYSwgMWIsIGVsXzgsIGQsIHZsKSwKICAgICBJTlNOKGV4dHJhY3RpMzJ4 OCwgICA2NiwgMGYzYSwgM2IsIGVsXzgsIGQsIHZsKSwKKyAgICBJTlNOKGluc2VydGYzMng4LCAg ICA2NiwgMGYzYSwgMWEsIGVsXzgsIGQsIHZsKSwKKyAgICBJTlNOKGluc2VydGkzMng4LCAgICA2 NiwgMGYzYSwgM2EsIGVsXzgsIGQsIHZsKSwKIH07CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBj aGFyIHZsX2FsbFtdID0geyBWTF81MTIsIFZMXzEyOCwgVkxfMjU2IH07Ci0tLSBhL3hlbi9hcmNo L3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC0zNjAsNyArMzYwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCB0d29ieXRlX3RhYmxlIHsKICAgICBbMHhjMV0gPSB7IERzdE1lbXxTcmNSZWd8TW9kUk0gfSwK ICAgICBbMHhjMl0gPSB7IERzdEltcGxpY2l0fFNyY0ltbUJ5dGV8TW9kUk0sIHNpbWRfYW55X2Zw LCBkOHNfdmwgfSwKICAgICBbMHhjM10gPSB7IERzdE1lbXxTcmNSZWd8TW9kUk18TW92IH0sCi0g ICAgWzB4YzRdID0geyBEc3RSZWd8U3JjSW1tQnl0ZXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50IH0s CisgICAgWzB4YzRdID0geyBEc3RSZWd8U3JjSW1tQnl0ZXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50 LCAxIH0sCiAgICAgWzB4YzVdID0geyBEc3RSZWd8U3JjSW1tQnl0ZXxNb2RSTXxNb3YgfSwKICAg ICBbMHhjNl0gPSB7IERzdEltcGxpY2l0fFNyY0ltbUJ5dGV8TW9kUk0sIHNpbWRfcGFja2VkX2Zw LCBkOHNfdmwgfSwKICAgICBbMHhjN10gPSB7IEltcGxpY2l0T3BzfE1vZFJNIH0sCkBAIC01MTYs MTcgKzUxNiwxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmM2FfdGFibGUgewogICAgIFsw eDE1XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAx LCAuZDhzID0gMSB9LAogICAgIFsweDE2XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSwgLnRv X21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX2RxNjQgfSwKICAgICBbMHgxN10gPSB7 IC5zaW1kX3NpemUgPSBzaW1kX25vbmUsIC50b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9 IDIgfSwKLSAgICBbMHgxOF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCB9LAorICAgIFsweDE4 XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAuZDhzID0gNCB9LAogICAgIFsweDE5XSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEsIC5kOHMgPSA0 IH0sCisgICAgWzB4MWFdID0geyAuc2ltZF9zaXplID0gc2ltZF8yNTYsIC5kOHMgPSBkOHNfdmxf YnlfMiB9LAogICAgIFsweDFiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMjU2LCAudG9fbWVtID0g MSwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmxfYnlfMiB9LAogICAgIFsweDFkXSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50b19tZW0gPSAxLCAudHdvX29wID0gMSB9LAogICAgIFsw eDFlIC4uLiAweDFmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4 c192bCB9LAotICAgIFsweDIwXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSB9LAotICAgIFsw eDIxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIgfSwKLSAgICBbMHgyMl0gPSB7IC5zaW1k X3NpemUgPSBzaW1kX25vbmUgfSwKKyAgICBbMHgyMF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX25v bmUsIC5kOHMgPSAwIH0sCisgICAgWzB4MjFdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwg LmQ4cyA9IDIgfSwKKyAgICBbMHgyMl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX25vbmUsIC5kOHMg PSBkOHNfZHE2NCB9LAogICAgIFsweDI1XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2lu dCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweDMwIC4uLiAweDMzXSA9IHsgLnNpbWRfc2l6ZSA9 IHNpbWRfb3RoZXIsIC50d29fb3AgPSAxIH0sCi0gICAgWzB4MzhdID0geyAuc2ltZF9zaXplID0g c2ltZF8xMjggfSwKKyAgICBbMHgzOF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCwgLmQ4cyA9 IDQgfSwKKyAgICBbMHgzYV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzI1NiwgLmQ4cyA9IGQ4c192 bF9ieV8yIH0sCiAgICAgWzB4MzldID0geyAuc2ltZF9zaXplID0gc2ltZF8xMjgsIC50b19tZW0g PSAxLCAudHdvX29wID0gMSwgLmQ4cyA9IDQgfSwKICAgICBbMHgzYl0gPSB7IC5zaW1kX3NpemUg PSBzaW1kXzI1NiwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gZDhzX3ZsX2J5XzIg fSwKICAgICBbMHgzZSAuLi4gMHgzZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQs IC5kOHMgPSBkOHNfdmwgfSwKQEAgLTI1ODYsNiArMjU4OCw3IEBAIHg4Nl9kZWNvZGVfdHdvYnl0 ZSgKICAgICAgICAgY3R4dC0+b3Bjb2RlIHw9IE1BU0tfSU5TUih2ZXgucGZ4LCBYODZFTVVMX09Q Q19QRlhfTUFTSyk7CiAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgIGNhc2UgWDg2RU1V TF9PUENfVkVYXzY2KDAsIDB4YzQpOiAvKiB2cGluc3J3ICovCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDAsIDB4YzQpOiAvKiB2cGluc3J3ICovCiAgICAgICAgIHN0YXRlLT5kZXNjID0g RHN0UmVnIHwgU3JjTWVtMTY7CiAgICAgICAgIGJyZWFrOwogCkBAIC0yNjg4LDYgKzI2OTEsNyBA QCB4ODZfZGVjb2RlXzBmM2EoCiAKICAgICBjYXNlIFg4NkVNVUxfT1BDXzY2KDAsIDB4MjApOiAg ICAgLyogcGluc3JiICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMCwgMHgyMCk6IC8q IHZwaW5zcmIgKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMCwgMHgyMCk6IC8qIHZw aW5zcmIgKi8KICAgICAgICAgc3RhdGUtPmRlc2MgPSBEc3RJbXBsaWNpdCB8IFNyY01lbTsKICAg ICAgICAgaWYgKCBtb2RybV9tb2QgIT0gMyApCiAgICAgICAgICAgICBzdGF0ZS0+ZGVzYyB8PSBC eXRlT3A7CkBAIC0yNjk1LDYgKzI2OTksNyBAQCB4ODZfZGVjb2RlXzBmM2EoCiAKICAgICBjYXNl IFg4NkVNVUxfT1BDXzY2KDAsIDB4MjIpOiAgICAgLyogcGluc3J7ZCxxfSAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfVkVYXzY2KDAsIDB4MjIpOiAvKiB2cGluc3J7ZCxxfSAqLworICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigwLCAweDIyKTogLyogdnBpbnNye2QscX0gKi8KICAgICAgICAg c3RhdGUtPmRlc2MgPSBEc3RJbXBsaWNpdCB8IFNyY01lbTsKICAgICAgICAgYnJlYWs7CiAKQEAg LTc3MzUsNiArNzc0MCwyMyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZWEudHlwZSA9IE9QX01F TTsKICAgICAgICAgZ290byBzaW1kXzBmX2ludF9pbW04OwogCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYsIDB4YzQpOiAgIC8qIHZwaW5zcncgJGltbTgscjMyL20xNix4bW0seG1t ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgyMCk6IC8qIHZwaW5z cmIgJGltbTgscjMyL204LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYo MHgwZjNhLCAweDIyKTogLyogdnBpbnNye2QscX0gJGltbTgsci9tLHhtbSx4bW0gKi8KKyAgICAg ICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgubHIgfHwgZXZleC5vcG1zayB8fCBldmV4LmJy cywgRVhDX1VEKTsKKyAgICAgICAgaWYgKCBiICYgMiApCisgICAgICAgICAgICBob3N0X2FuZF92 Y3B1X211c3RfaGF2ZShhdng1MTJkcSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGhvc3Rf YW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmJ3KTsKKyAgICAgICAgaWYgKCAhbW9kZV82NGJpdCgp ICkKKyAgICAgICAgICAgIGV2ZXgudyA9IDA7CisgICAgICAgIG1lbWNweShtbXZhbHAsICZzcmMu dmFsLCBvcF9ieXRlcyk7CisgICAgICAgIGVhLnR5cGUgPSBPUF9NRU07CisgICAgICAgIG9wX2J5 dGVzID0gc3JjLmJ5dGVzOworICAgICAgICBkID0gU3JjTWVtMTY7IC8qIEZha2UgZm9yIHRoZSBj b21tb24gU0lNRCBjb2RlIGJlbG93LiAqLworICAgICAgICBzdGF0ZS0+c2ltZF9zaXplID0gc2lt ZF9vdGhlcjsKKyAgICAgICAgZ290byBhdng1MTJmX2ltbThfbm9fc2FlOworCiAgICAgQ0FTRV9T SU1EX1BBQ0tFRF9JTlQoMHgwZiwgMHhjNSk6ICAgICAgLyogcGV4dHJ3ICRpbW04LHsseH1tbSxy ZWcgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmLCAweGM1KTogICAvKiB2cGV4 dHJ3ICRpbW04LHhtbSxyZWcgKi8KICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC5s LCBFWENfVUQpOwpAQCAtODk1MSw4ICs4OTczLDEyIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBv cGMgPSBpbml0X2V2ZXgoc3R1Yik7CiAgICAgICAgIGdvdG8gcGV4dHI7CiAKKyAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDE4KTogLyogdmluc2VydGYzMng0ICRpbW04LHht bS9tMTI4LHt5LHp9bW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogdmluc2VydGY2NHgyICRpbW04LHhtbS9tMTI4LHt5LHp9bW17a30gKi8KICAg ICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDE5KTogLyogdmV4dHJhY3RmMzJ4 NCAkaW1tOCx7eSx6fW1tLHhtbS9tMTI4e2t9ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIHZleHRyYWN0ZjY0eDIgJGltbTgse3ksen1tbSx4bW0vbTEy OHtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MzgpOiAvKiB2 aW5zZXJ0aTMyeDQgJGltbTgseG1tL20xMjgse3ksen1tbXtrfSAqLworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2aW5zZXJ0aTY0eDIgJGltbTgseG1tL20x Mjgse3ksen1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4 MzkpOiAvKiB2ZXh0cmFjdGkzMng0ICRpbW04LHt5LHp9bW0seG1tL20xMjh7a30gKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdmV4dHJhY3RpNjR4MiAk aW1tOCx7eSx6fW1tLHhtbS9tMTI4e2t9ICovCiAgICAgICAgIGlmICggZXZleC53ICkKQEAgLTg5 NjEsOCArODk4NywxMiBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZmF1bHRfc3VwcHJlc3Npb24g PSBmYWxzZTsKICAgICAgICAgZ290byBhdng1MTJmX2ltbThfbm9fc2FlOwogCisgICAgY2FzZSBY ODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgxYSk6IC8qIHZpbnNlcnRmMzJ4NCAkaW1tOCx5 bW0vbTI1Nix6bW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogdmluc2VydGY2NHgyICRpbW04LHltbS9tMjU2LHptbXtrfSAqLwogICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MWIpOiAvKiB2ZXh0cmFjdGYzMng4ICRpbW04 LHptbSx5bW0vbTI1NntrfSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiB2ZXh0cmFjdGY2NHg0ICRpbW04LHptbSx5bW0vbTI1NntrfSAqLworICAgIGNh c2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4M2EpOiAvKiB2aW5zZXJ0aTMyeDQgJGlt bTgseW1tL20yNTYsem1te2t9ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIHZpbnNlcnRpNjR4MiAkaW1tOCx5bW0vbTI1Nix6bW17a30gKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDNiKTogLyogdmV4dHJhY3RpMzJ4OCAk aW1tOCx6bW0seW1tL20yNTZ7a30gKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogdmV4dHJhY3RpNjR4NCAkaW1tOCx6bW0seW1tL20yNTZ7a30gKi8KICAg ICAgICAgaWYgKCAhZXZleC53ICkKQEAgLTkwNTUsMTMgKzkwODUsMjAgQEAgeDg2X2VtdWxhdGUo CiAgICAgICAgIG9wX2J5dGVzID0gNDsKICAgICAgICAgZ290byBzaW1kXzBmM2FfY29tbW9uOwog Ci0gICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjNhLCAweDIxKTogLyogdmluc2VydHBz ICRpbW04LHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82Nigw eDBmM2EsIDB4MjEpOiAvKiB2aW5zZXJ0cHMgJGltbTgseG1tL20zMix4bW0seG1tICovCiAgICAg ICAgIG9wX2J5dGVzID0gNDsKICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAgY2FzZSBY ODZFTVVMX09QQ19WRVhfNjYoMHgwZjNhLCAweDQxKTogLyogdmRwcGQgJGltbTgse3gseX1tbS9t ZW0se3gseX1tbSx7eCx5fW1tICovCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgu bCwgRVhDX1VEKTsKICAgICAgICAgZ290byBzaW1kXzBmX2ltbThfYXZ4OwogCisgICAgY2FzZSBY ODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgyMSk6IC8qIHZpbnNlcnRwcyAkaW1tOCx4bW0v bTMyLHhtbSx4bW0gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7 CisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LmxyIHx8IGV2ZXgudyB8fCBldmV4 Lm9wbXNrIHx8IGV2ZXguYnJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhDX1VE KTsKKyAgICAgICAgb3BfYnl0ZXMgPSA0OworICAgICAgICBnb3RvIHNpbWRfaW1tOF96bW07CisK ICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4MzApOiAvKiBrc2hpZnRye2Is d30gJGltbTgsayxrICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjNhLCAweDMy KTogLyoga3NoaWZ0bHtiLHd9ICRpbW04LGssayAqLwogICAgICAgICBpZiAoICF2ZXgudyApCgoK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs