From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 04/49] x86emul: support AVX512{F, BW, DQ} insert insns Date: Wed, 19 Dec 2018 07:37:10 -0700 Message-ID: <5C1A579602000078002078A7@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C1A52ED0200007800207865@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] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gZcyL-0001ri-G9 for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 14:37:17 +0000 In-Reply-To: <5C1A52ED0200007800207865@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+Ci0tLQp2NzogUmUt YmFzZS4KdjY6IERvbid0IHJlZnVzZSB0byBlbXVsYXRlIFZJTlNFUlRQUyB3aXRob3V0IEFWWDUx MlZMLgp2NDogTWFrZSB1c2Ugb2YgZDhzX2RxNjQuCnYzOiBOZXcuCgotLS0gYS90b29scy90ZXN0 cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRv ci9ldmV4LWRpc3A4LmMKQEAgLTIxMyw2ICsyMTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRl c3QgYXZ4NTEyZl9hbGxbXSA9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmXzEy OFtdID0gewogICAgIElOU04oZXh0cmFjdHBzLCA2NiwgMGYzYSwgMTcsIGVsLCAgICBkLCBlbCks CisgICAgSU5TTihpbnNlcnRwcywgIDY2LCAwZjNhLCAyMSwgZWwsICAgIGQsIGVsKSwKICAgICBJ TlNOKG1vdiwgICAgICAgNjYsICAgMGYsIDZlLCBlbCwgZHE2NCwgZWwpLAogICAgIElOU04obW92 LCAgICAgICA2NiwgICAwZiwgN2UsIGVsLCBkcTY0LCBlbCksCiAgICAgSU5TTihtb3ZxLCAgICAg IGYzLCAgIDBmLCA3ZSwgZWwsICAgIHEsIGVsKSwKQEAgLTIyNCwxMiArMjI1LDE2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX25vMTI4W10KICAgICBJTlNOKGJyb2FkY2FzdHNk LCAgICA2NiwgMGYzOCwgMTksIGVsLCAgICBxLCBlbCksCiAgICAgSU5TTihleHRyYWN0ZjMyeDQs ICAgNjYsIDBmM2EsIDE5LCBlbF80LCAgZCwgdmwpLAogICAgIElOU04oZXh0cmFjdGkzMng0LCAg IDY2LCAwZjNhLCAzOSwgZWxfNCwgIGQsIHZsKSwKKyAgICBJTlNOKGluc2VydGYzMng0LCAgICA2 NiwgMGYzYSwgMTgsIGVsXzQsICBkLCB2bCksCisgICAgSU5TTihpbnNlcnRpMzJ4NCwgICAgNjYs IDBmM2EsIDM4LCBlbF80LCAgZCwgdmwpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0 IGF2eDUxMmZfNTEyW10gPSB7CiAgICAgSU5TTihicm9hZGNhc3RmNjR4NCwgNjYsIDBmMzgsIDFi LCBlbF80LCBxLCB2bCksCiAgICAgSU5TTihleHRyYWN0ZjY0eDQsICAgNjYsIDBmM2EsIDFiLCBl bF80LCBxLCB2bCksCiAgICAgSU5TTihleHRyYWN0aTY0eDQsICAgNjYsIDBmM2EsIDNiLCBlbF80 LCBxLCB2bCksCisgICAgSU5TTihpbnNlcnRmNjR4NCwgICAgNjYsIDBmM2EsIDFhLCBlbF80LCBx LCB2bCksCisgICAgSU5TTihpbnNlcnRpNjR4NCwgICAgNjYsIDBmM2EsIDNhLCBlbF80LCBxLCB2 bCksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyYndfYWxsW10gPSB7CkBA IC0yODksNiArMjk0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmJ3XzEyOFtd CiAgICAgSU5TTihwZXh0cmIsIDY2LCAwZjNhLCAxNCwgZWwsIGIsIGVsKSwKIC8vICAgICAgIHBl eHRydywgNjYsICAgMGYsIGM1LCAgICAgdwogICAgIElOU04ocGV4dHJ3LCA2NiwgMGYzYSwgMTUs IGVsLCB3LCBlbCksCisgICAgSU5TTihwaW5zcmIsIDY2LCAwZjNhLCAyMCwgZWwsIGIsIGVsKSwK KyAgICBJTlNOKHBpbnNydywgNjYsICAgMGYsIGM0LCBlbCwgdywgZWwpLAogfTsKIAogc3RhdGlj IGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmRxX2FsbFtdID0gewpAQCAtMzAxLDYgKzMwOCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV9hbGxbXQogCiBzdGF0aWMgY29uc3Qg c3RydWN0IHRlc3QgYXZ4NTEyZHFfMTI4W10gPSB7CiAgICAgSU5TTihwZXh0ciwgNjYsIDBmM2Es IDE2LCBlbCwgZHE2NCwgZWwpLAorICAgIElOU04ocGluc3IsIDY2LCAwZjNhLCAyMiwgZWwsIGRx NjQsIGVsKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV9ubzEyOFtd ID0gewpAQCAtMzA4LDEyICszMTYsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUx MmRxX25vMTI4WwogICAgIElOU04oYnJvYWRjYXN0ZjY0eDIsIDY2LCAwZjM4LCAxYSwgZWxfMiwg cSwgdmwpLAogICAgIElOU04oZXh0cmFjdGY2NHgyLCAgIDY2LCAwZjNhLCAxOSwgZWxfMiwgcSwg dmwpLAogICAgIElOU04oZXh0cmFjdGk2NHgyLCAgIDY2LCAwZjNhLCAzOSwgZWxfMiwgcSwgdmwp LAorICAgIElOU04oaW5zZXJ0ZjY0eDIsICAgIDY2LCAwZjNhLCAxOCwgZWxfMiwgcSwgdmwpLAor ICAgIElOU04oaW5zZXJ0aTY0eDIsICAgIDY2LCAwZjNhLCAzOCwgZWxfMiwgcSwgdmwpLAogfTsK IAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmRxXzUxMltdID0gewogICAgIElOU04o YnJvYWRjYXN0ZjMyeDgsIDY2LCAwZjM4LCAxYiwgZWxfOCwgZCwgdmwpLAogICAgIElOU04oZXh0 cmFjdGYzMng4LCAgIDY2LCAwZjNhLCAxYiwgZWxfOCwgZCwgdmwpLAogICAgIElOU04oZXh0cmFj dGkzMng4LCAgIDY2LCAwZjNhLCAzYiwgZWxfOCwgZCwgdmwpLAorICAgIElOU04oaW5zZXJ0ZjMy eDgsICAgIDY2LCAwZjNhLCAxYSwgZWxfOCwgZCwgdmwpLAorICAgIElOU04oaW5zZXJ0aTMyeDgs ICAgIDY2LCAwZjNhLCAzYSwgZWxfOCwgZCwgdmwpLAogfTsKIAogc3RhdGljIGNvbnN0IHVuc2ln bmVkIGNoYXIgdmxfYWxsW10gPSB7IFZMXzUxMiwgVkxfMTI4LCBWTF8yNTYgfTsKLS0tIGEveGVu L2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4 Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHR3b2J5dGVfdGFibGUgewogICAgIFsweGMxXSA9IHsgRHN0TWVtfFNyY1JlZ3xNb2RS TSB9LAogICAgIFsweGMyXSA9IHsgRHN0SW1wbGljaXR8U3JjSW1tQnl0ZXxNb2RSTSwgc2ltZF9h bnlfZnAsIGQ4c192bCB9LAogICAgIFsweGMzXSA9IHsgRHN0TWVtfFNyY1JlZ3xNb2RSTXxNb3Yg fSwKLSAgICBbMHhjNF0gPSB7IERzdFJlZ3xTcmNJbW1CeXRlfE1vZFJNLCBzaW1kX3BhY2tlZF9p bnQgfSwKKyAgICBbMHhjNF0gPSB7IERzdFJlZ3xTcmNJbW1CeXRlfE1vZFJNLCBzaW1kX3BhY2tl ZF9pbnQsIDEgfSwKICAgICBbMHhjNV0gPSB7IERzdFJlZ3xTcmNJbW1CeXRlfE1vZFJNfE1vdiB9 LAogICAgIFsweGM2XSA9IHsgRHN0SW1wbGljaXR8U3JjSW1tQnl0ZXxNb2RSTSwgc2ltZF9wYWNr ZWRfZnAsIGQ4c192bCB9LAogICAgIFsweGM3XSA9IHsgSW1wbGljaXRPcHN8TW9kUk0gfSwKQEAg LTUxNiwxNyArNTE2LDE5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzYV90YWJsZSB7CiAg ICAgWzB4MTVdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAudG9fbWVtID0gMSwgLnR3b19v cCA9IDEsIC5kOHMgPSAxIH0sCiAgICAgWzB4MTZdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25l LCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfZHE2NCB9LAogICAgIFsweDE3 XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAu ZDhzID0gMiB9LAotICAgIFsweDE4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4IH0sCisgICAg WzB4MThdID0geyAuc2ltZF9zaXplID0gc2ltZF8xMjgsIC5kOHMgPSA0IH0sCiAgICAgWzB4MTld ID0geyAuc2ltZF9zaXplID0gc2ltZF8xMjgsIC50b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4 cyA9IDQgfSwKKyAgICBbMHgxYV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzI1NiwgLmQ4cyA9IGQ4 c192bF9ieV8yIH0sCiAgICAgWzB4MWJdID0geyAuc2ltZF9zaXplID0gc2ltZF8yNTYsIC50b19t ZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bF9ieV8yIH0sCiAgICAgWzB4MWRdID0g eyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxIH0sCiAg ICAgWzB4MWUgLi4uIDB4MWZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhz ID0gZDhzX3ZsIH0sCi0gICAgWzB4MjBdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lIH0sCi0g ICAgWzB4MjFdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciB9LAotICAgIFsweDIyXSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSB9LAorICAgIFsweDIwXSA9IHsgLnNpbWRfc2l6ZSA9IHNp bWRfbm9uZSwgLmQ4cyA9IDAgfSwKKyAgICBbMHgyMV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290 aGVyLCAuZDhzID0gMiB9LAorICAgIFsweDIyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSwg LmQ4cyA9IGQ4c19kcTY0IH0sCiAgICAgWzB4MjVdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNr ZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4MzAgLi4uIDB4MzNdID0geyAuc2ltZF9z aXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEgfSwKLSAgICBbMHgzOF0gPSB7IC5zaW1kX3Np emUgPSBzaW1kXzEyOCB9LAorICAgIFsweDM4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAu ZDhzID0gNCB9LAorICAgIFsweDNhXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMjU2LCAuZDhzID0g ZDhzX3ZsX2J5XzIgfSwKICAgICBbMHgzOV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kXzEyOCwgLnRv X21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gNCB9LAogICAgIFsweDNiXSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfMjU2LCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmxf YnlfMiB9LAogICAgIFsweDNlIC4uLiAweDNmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2Vk X2ludCwgLmQ4cyA9IGQ4c192bCB9LApAQCAtMjU4Niw2ICsyNTg4LDcgQEAgeDg2X2RlY29kZV90 d29ieXRlKAogICAgICAgICBjdHh0LT5vcGNvZGUgfD0gTUFTS19JTlNSKHZleC5wZngsIFg4NkVN VUxfT1BDX1BGWF9NQVNLKTsKICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAgY2FzZSBY ODZFTVVMX09QQ19WRVhfNjYoMCwgMHhjNCk6IC8qIHZwaW5zcncgKi8KKyAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMCwgMHhjNCk6IC8qIHZwaW5zcncgKi8KICAgICAgICAgc3RhdGUtPmRl c2MgPSBEc3RSZWcgfCBTcmNNZW0xNjsKICAgICAgICAgYnJlYWs7CiAKQEAgLTI2ODgsNiArMjY5 MSw3IEBAIHg4Nl9kZWNvZGVfMGYzYSgKIAogICAgIGNhc2UgWDg2RU1VTF9PUENfNjYoMCwgMHgy MCk6ICAgICAvKiBwaW5zcmIgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigwLCAweDIw KTogLyogdnBpbnNyYiAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigwLCAweDIwKTog LyogdnBpbnNyYiAqLwogICAgICAgICBzdGF0ZS0+ZGVzYyA9IERzdEltcGxpY2l0IHwgU3JjTWVt OwogICAgICAgICBpZiAoIG1vZHJtX21vZCAhPSAzICkKICAgICAgICAgICAgIHN0YXRlLT5kZXNj IHw9IEJ5dGVPcDsKQEAgLTI2OTUsNiArMjY5OSw3IEBAIHg4Nl9kZWNvZGVfMGYzYSgKIAogICAg IGNhc2UgWDg2RU1VTF9PUENfNjYoMCwgMHgyMik6ICAgICAvKiBwaW5zcntkLHF9ICovCiAgICAg Y2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMCwgMHgyMik6IC8qIHZwaW5zcntkLHF9ICovCisgICAg Y2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDAsIDB4MjIpOiAvKiB2cGluc3J7ZCxxfSAqLwogICAg ICAgICBzdGF0ZS0+ZGVzYyA9IERzdEltcGxpY2l0IHwgU3JjTWVtOwogICAgICAgICBicmVhazsK IApAQCAtNzcyMyw2ICs3NzI4LDIzIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBlYS50eXBlID0g T1BfTUVNOwogICAgICAgICBnb3RvIHNpbWRfMGZfaW50X2ltbTg7CiAKKyAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhjNCk6ICAgLyogdnBpbnNydyAkaW1tOCxyMzIvbTE2LHht bSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDIwKTogLyog dnBpbnNyYiAkaW1tOCxyMzIvbTgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZF WF82NigweDBmM2EsIDB4MjIpOiAvKiB2cGluc3J7ZCxxfSAkaW1tOCxyL20seG1tLHhtbSAqLwor ICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5sciB8fCBldmV4Lm9wbXNrIHx8IGV2 ZXguYnJzLCBFWENfVUQpOworICAgICAgICBpZiAoIGIgJiAyICkKKyAgICAgICAgICAgIGhvc3Rf YW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmRxKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg aG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyYncpOworICAgICAgICBpZiAoICFtb2RlXzY0 Yml0KCkgKQorICAgICAgICAgICAgZXZleC53ID0gMDsKKyAgICAgICAgbWVtY3B5KG1tdmFscCwg JnNyYy52YWwsIG9wX2J5dGVzKTsKKyAgICAgICAgZWEudHlwZSA9IE9QX01FTTsKKyAgICAgICAg b3BfYnl0ZXMgPSBzcmMuYnl0ZXM7CisgICAgICAgIGQgPSBTcmNNZW0xNjsgLyogRmFrZSBmb3Ig dGhlIGNvbW1vbiBTSU1EIGNvZGUgYmVsb3cuICovCisgICAgICAgIHN0YXRlLT5zaW1kX3NpemUg PSBzaW1kX290aGVyOworICAgICAgICBnb3RvIGF2eDUxMmZfaW1tOF9ub19zYWU7CisKICAgICBD QVNFX1NJTURfUEFDS0VEX0lOVCgweDBmLCAweGM1KTogICAgICAvKiBwZXh0cncgJGltbTgseyx4 fW1tLHJlZyAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYsIDB4YzUpOiAgIC8q IHZwZXh0cncgJGltbTgseG1tLHJlZyAqLwogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYo dmV4LmwsIEVYQ19VRCk7CkBAIC04OTM5LDggKzg5NjEsMTIgQEAgeDg2X2VtdWxhdGUoCiAgICAg ICAgIG9wYyA9IGluaXRfZXZleChzdHViKTsKICAgICAgICAgZ290byBwZXh0cjsKIAorICAgIGNh c2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MTgpOiAvKiB2aW5zZXJ0ZjMyeDQgJGlt bTgseG1tL20xMjgse3ksen1tbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiB2aW5zZXJ0ZjY0eDIgJGltbTgseG1tL20xMjgse3ksen1tbXtrfSAq LwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4MTkpOiAvKiB2ZXh0cmFj dGYzMng0ICRpbW04LHt5LHp9bW0seG1tL20xMjh7a30gKi8KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogdmV4dHJhY3RmNjR4MiAkaW1tOCx7eSx6fW1tLHht bS9tMTI4e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgzOCk6 IC8qIHZpbnNlcnRpMzJ4NCAkaW1tOCx4bW0vbTEyOCx7eSx6fW1te2t9ICovCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZpbnNlcnRpNjR4MiAkaW1tOCx4 bW0vbTEyOCx7eSx6fW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYz YSwgMHgzOSk6IC8qIHZleHRyYWN0aTMyeDQgJGltbTgse3ksen1tbSx4bW0vbTEyOHtrfSAqLwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2ZXh0cmFjdGk2 NHgyICRpbW04LHt5LHp9bW0seG1tL20xMjh7a30gKi8KICAgICAgICAgaWYgKCBldmV4LncgKQpA QCAtODk0OSw4ICs4OTc1LDEyIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBmYXVsdF9zdXBwcmVz c2lvbiA9IGZhbHNlOwogICAgICAgICBnb3RvIGF2eDUxMmZfaW1tOF9ub19zYWU7CiAKKyAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDFhKTogLyogdmluc2VydGYzMng0ICRp bW04LHltbS9tMjU2LHptbXtrfSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiB2aW5zZXJ0ZjY0eDIgJGltbTgseW1tL20yNTYsem1te2t9ICovCiAgICAg Y2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgxYik6IC8qIHZleHRyYWN0ZjMyeDgg JGltbTgsem1tLHltbS9tMjU2e2t9ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIHZleHRyYWN0ZjY0eDQgJGltbTgsem1tLHltbS9tMjU2e2t9ICovCisg ICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgzYSk6IC8qIHZpbnNlcnRpMzJ4 NCAkaW1tOCx5bW0vbTI1Nix6bW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogdmluc2VydGk2NHgyICRpbW04LHltbS9tMjU2LHptbXtrfSAqLwog ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4M2IpOiAvKiB2ZXh0cmFjdGkz Mng4ICRpbW04LHptbSx5bW0vbTI1NntrfSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiB2ZXh0cmFjdGk2NHg0ICRpbW04LHptbSx5bW0vbTI1NntrfSAq LwogICAgICAgICBpZiAoICFldmV4LncgKQpAQCAtOTA0MywxMyArOTA3MywyMCBAQCB4ODZfZW11 bGF0ZSgKICAgICAgICAgb3BfYnl0ZXMgPSA0OwogICAgICAgICBnb3RvIHNpbWRfMGYzYV9jb21t b247CiAKLSAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4MjEpOiAvKiB2aW5z ZXJ0cHMgJGltbTgseG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfVkVY XzY2KDB4MGYzYSwgMHgyMSk6IC8qIHZpbnNlcnRwcyAkaW1tOCx4bW0vbTMyLHhtbSx4bW0gKi8K ICAgICAgICAgb3BfYnl0ZXMgPSA0OwogICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4NDEpOiAvKiB2ZHBwZCAkaW1tOCx7eCx5 fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lm KHZleC5sLCBFWENfVUQpOwogICAgICAgICBnb3RvIHNpbWRfMGZfaW1tOF9hdng7CiAKKyAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDIxKTogLyogdmluc2VydHBzICRpbW04 LHhtbS9tMzIseG1tLHhtbSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1 MTJmKTsKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgubHIgfHwgZXZleC53IHx8 IGV2ZXgub3Btc2sgfHwgZXZleC5icnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF WENfVUQpOworICAgICAgICBvcF9ieXRlcyA9IDQ7CisgICAgICAgIGdvdG8gc2ltZF9pbW04X3pt bTsKKwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzYSwgMHgzMCk6IC8qIGtzaGlm dHJ7Yix3fSAkaW1tOCxrLGsgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2Es IDB4MzIpOiAvKiBrc2hpZnRse2Isd30gJGltbTgsayxrICovCiAgICAgICAgIGlmICggIXZleC53 ICkKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=