From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 20/34] x86emul: support AVX512{F, BW} shift/rotate insns Date: Tue, 18 Sep 2018 06:05:57 -0600 Message-ID: <5BA0EA2502000078001E95EC@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BA0E58F02000078001E94CE@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]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g2ElW-0000SV-U2 for xen-devel@lists.xenproject.org; Tue, 18 Sep 2018 12:06:02 +0000 In-Reply-To: <5BA0E58F02000078001E94CE@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 List-Id: xen-devel@lists.xenproject.org Tm90ZSB0aGF0IHNpbWRfcGFja2VkX2ZwIGZvciB0aGUgb3Bjb2RlIHNwYWNlIDBmMzggbWFqb3Ig b3Bjb2RlcyAxNCBhbmQKMTUgaXMgbm90IHJlYWxseSBjb3JyZWN0LCBidXQgc3VmZmljaWVudCBm b3IgdGhlIHB1cnBvc2VzIGhlcmUuIEZ1cnRoZXIKYWRqdXN0bWVudHMgbWF5IGxhdGVyIGJlIG5l ZWRlZCBmb3IgdGhlIGRvd24gY29udmVyc2lvbiB1bnNpZ25lZApzYXR1cmF0aW5nIFZQTU9WKiBp bnNucywgZmlyc3QgYW5kIGZvcmVtb3N0IGZvciB0aGUgZGlmZmVyZW50IERpc3A4CnNjYWxpbmcg dGhvc2Ugb25lcyB1c2UuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+Ci0tLQp2MzogTmV3LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgt ZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCkBAIC0x NjQsNiArMTY0LDI0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJmX2FsbFtdID0K ICAgICBJTlNOKHBtdWxsZCwgICAgICAgNjYsIDBmMzgsIDQwLCAgICB2bCwgICAgICBkLCB2bCks CiAgICAgSU5TTihwbXVsdWRxLCAgICAgIDY2LCAgIDBmLCBmNCwgICAgdmwsICAgICAgcSwgdmwp LAogICAgIElOU04ocG9yLCAgICAgICAgICA2NiwgICAwZiwgZWIsICAgIHZsLCAgICAgZHEsIHZs KSwKKyAgICBJTlNOWChwcm9sLCAgICAgICAgNjYsICAgMGYsIDcyLCAxLCB2bCwgICAgIGRxLCB2 bCksCisgICAgSU5TTihwcm9sdiwgICAgICAgIDY2LCAwZjM4LCAxNSwgICAgdmwsICAgICBkcSwg dmwpLAorICAgIElOU05YKHByb3IsICAgICAgICA2NiwgICAwZiwgNzIsIDAsIHZsLCAgICAgZHEs IHZsKSwKKyAgICBJTlNOKHByb3J2LCAgICAgICAgNjYsIDBmMzgsIDE0LCAgICB2bCwgICAgIGRx LCB2bCksCisgICAgSU5TTihwc2xsZCwgICAgICAgIDY2LCAgIDBmLCBmMiwgICAgZWxfNCwgICAg ZCwgdmwpLAorICAgIElOU05YKHBzbGxkLCAgICAgICA2NiwgICAwZiwgNzIsIDYsIHZsLCAgICAg IGQsIHZsKSwKKyAgICBJTlNOKHBzbGxxLCAgICAgICAgNjYsICAgMGYsIGYzLCAgICBlbF8yLCAg ICBxLCB2bCksCisgICAgSU5TTlgocHNsbHEsICAgICAgIDY2LCAgIDBmLCA3MywgNiwgdmwsICAg ICAgcSwgdmwpLAorICAgIElOU04ocHNsbHYsICAgICAgICA2NiwgMGYzOCwgNDcsICAgIHZsLCAg ICAgZHEsIHZsKSwKKyAgICBJTlNOWChwc3JhLCAgICAgICAgNjYsICAgMGYsIDcyLCA0LCB2bCwg ICAgIGRxLCB2bCksCisgICAgSU5TTihwc3JhZCwgICAgICAgIDY2LCAgIDBmLCBlMiwgICAgZWxf NCwgICAgZCwgdmwpLAorICAgIElOU04ocHNyYXEsICAgICAgICA2NiwgICAwZiwgZTIsICAgIGVs XzIsICAgIHEsIHZsKSwKKyAgICBJTlNOKHBzcmF2LCAgICAgICAgNjYsIDBmMzgsIDQ2LCAgICB2 bCwgICAgIGRxLCB2bCksCisgICAgSU5TTihwc3JsZCwgICAgICAgIDY2LCAgIDBmLCBkMiwgICAg ZWxfNCwgICAgZCwgdmwpLAorICAgIElOU05YKHBzcmxkLCAgICAgICA2NiwgICAwZiwgNzIsIDIs IHZsLCAgICAgIGQsIHZsKSwKKyAgICBJTlNOKHBzcmxxLCAgICAgICAgNjYsICAgMGYsIGQzLCAg ICBlbF8yLCAgICBxLCB2bCksCisgICAgSU5TTlgocHNybHEsICAgICAgIDY2LCAgIDBmLCA3Mywg MiwgdmwsICAgICAgcSwgdmwpLAorICAgIElOU04ocHNybHYsICAgICAgICA2NiwgMGYzOCwgNDUs ICAgIHZsLCAgICAgZHEsIHZsKSwKICAgICBJTlNOKHBzdWJkLCAgICAgICAgNjYsICAgMGYsIGZh LCAgICB2bCwgICAgICBkLCB2bCksCiAgICAgSU5TTihwc3VicSwgICAgICAgIDY2LCAgIDBmLCBm YiwgICAgdmwsICAgICAgcSwgdmwpLAogICAgIElOU04ocHRlcm5sb2csICAgICA2NiwgMGYzYSwg MjUsICAgIHZsLCAgICAgZHEsIHZsKSwKQEAgLTIyNyw2ICsyNDUsMTcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCB0ZXN0IGF2eDUxMmJ3X2FsbFtdCiAgICAgSU5TTihwbXVsaHcsICAgICAgNjYsICAg MGYsIGU1LCAgICB2bCwgICB3LCB2bCksCiAgICAgSU5TTihwbXVsbHcsICAgICAgNjYsICAgMGYs IGQ1LCAgICB2bCwgICB3LCB2bCksCiAgICAgSU5TTihwc2FkYncsICAgICAgNjYsICAgMGYsIGY2 LCAgICB2bCwgICBiLCB2bCksCisgICAgSU5TTlgocHNsbGRxLCAgICAgNjYsICAgMGYsIDczLCA3 LCB2bCwgICBiLCB2bCksCisgICAgSU5TTihwc2xsdncsICAgICAgNjYsIDBmMzgsIDEyLCAgICB2 bCwgICB3LCB2bCksCisgICAgSU5TTihwc2xsdywgICAgICAgNjYsICAgMGYsIGYxLCAgICBlbF84 LCB3LCB2bCksCisgICAgSU5TTlgocHNsbHcsICAgICAgNjYsICAgMGYsIDcxLCA2LCB2bCwgICB3 LCB2bCksCisgICAgSU5TTihwc3JhdncsICAgICAgNjYsIDBmMzgsIDExLCAgICB2bCwgICB3LCB2 bCksCisgICAgSU5TTihwc3JhdywgICAgICAgNjYsICAgMGYsIGUxLCAgICBlbF84LCB3LCB2bCks CisgICAgSU5TTlgocHNyYXcsICAgICAgNjYsICAgMGYsIDcxLCA0LCB2bCwgICB3LCB2bCksCisg ICAgSU5TTlgocHNybGRxLCAgICAgNjYsICAgMGYsIDczLCAzLCB2bCwgICBiLCB2bCksCisgICAg SU5TTihwc3JsdncsICAgICAgNjYsIDBmMzgsIDEwLCAgICB2bCwgICB3LCB2bCksCisgICAgSU5T Tihwc3JsdywgICAgICAgNjYsICAgMGYsIGQxLCAgICBlbF84LCB3LCB2bCksCisgICAgSU5TTlgo cHNybHcsICAgICAgNjYsICAgMGYsIDcxLCAyLCB2bCwgICB3LCB2bCksCiAgICAgSU5TTihwc3Vi YiwgICAgICAgNjYsICAgMGYsIGY4LCAgICB2bCwgICBiLCB2bCksCiAgICAgSU5TTihwc3Vic2Is ICAgICAgNjYsICAgMGYsIGU4LCAgICB2bCwgICBiLCB2bCksCiAgICAgSU5TTihwc3Vic3csICAg ICAgNjYsICAgMGYsIGU5LCAgICB2bCwgICB3LCB2bCksCi0tLSBhL3hlbi9hcmNoL3g4Ni94ODZf ZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZf ZW11bGF0ZS5jCkBAIC0zMTcsNyArMzE3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0d29ieXRl X3RhYmxlIHsKICAgICBbMHg2ZV0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNp bWRfbm9uZSwgZDhzX2RxIH0sCiAgICAgWzB4NmZdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9k Uk18TW92LCBzaW1kX3BhY2tlZF9pbnQsIGQ4c192bCB9LAogICAgIFsweDcwXSA9IHsgU3JjSW1t Qnl0ZXxNb2RSTXxUd29PcCwgc2ltZF9vdGhlciB9LAotICAgIFsweDcxIC4uLiAweDczXSA9IHsg RHN0SW1wbGljaXR8U3JjSW1tQnl0ZXxNb2RSTSB9LAorICAgIFsweDcxIC4uLiAweDczXSA9IHsg RHN0SW1wbGljaXR8U3JjSW1tQnl0ZXxNb2RSTSwgc2ltZF9ub25lLCBkOHNfdmwgfSwKICAgICBb MHg3NCAuLi4gMHg3Nl0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNrZWRf aW50LCBkOHNfdmwgfSwKICAgICBbMHg3N10gPSB7IERzdEltcGxpY2l0fFNyY05vbmUgfSwKICAg ICBbMHg3OF0gPSB7IEltcGxpY2l0T3BzfE1vZFJNIH0sCkBAIC0zNjQsMTkgKzM2NCwxOSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHR3b2J5dGVfdGFibGUgewogICAgIFsweGM3XSA9IHsgSW1wbGlj aXRPcHN8TW9kUk0gfSwKICAgICBbMHhjOCAuLi4gMHhjZl0gPSB7IEltcGxpY2l0T3BzIH0sCiAg ICAgWzB4ZDBdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfb3RoZXIgfSwKLSAg ICBbMHhkMSAuLi4gMHhkM10gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF8xMjgg fSwKKyAgICBbMHhkMSAuLi4gMHhkM10gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2lt ZF8xMjgsIDQgfSwKICAgICBbMHhkNCAuLi4gMHhkNV0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxN b2RSTSwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwKICAgICBbMHhkNl0gPSB7IERzdE1lbXxT cmNJbXBsaWNpdHxNb2RSTXxNb3YsIHNpbWRfb3RoZXIsIDMgfSwKICAgICBbMHhkN10gPSB7IERz dFJlZ3xTcmNJbXBsaWNpdHxNb2RSTXxNb3YgfSwKICAgICBbMHhkOCAuLi4gMHhkZl0gPSB7IERz dEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwKICAgICBb MHhlMF0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50LCBkOHNf dmwgfSwKLSAgICBbMHhlMSAuLi4gMHhlMl0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwg c2ltZF8xMjggfSwKKyAgICBbMHhlMSAuLi4gMHhlMl0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxN b2RSTSwgc2ltZF8xMjgsIDQgfSwKICAgICBbMHhlMyAuLi4gMHhlNV0gPSB7IERzdEltcGxpY2l0 fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwKICAgICBbMHhlNl0gPSB7 IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfb3RoZXIgfSwKICAgICBbMHhlN10g PSB7IERzdE1lbXxTcmNJbXBsaWNpdHxNb2RSTXxNb3YsIHNpbWRfcGFja2VkX2ludCwgZDhzX3Zs IH0sCiAgICAgWzB4ZTggLi4uIDB4ZWZdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNp bWRfcGFja2VkX2ludCwgZDhzX3ZsIH0sCiAgICAgWzB4ZjBdID0geyBEc3RJbXBsaWNpdHxTcmNN ZW18TW9kUk18TW92LCBzaW1kX290aGVyIH0sCi0gICAgWzB4ZjEgLi4uIDB4ZjNdID0geyBEc3RJ bXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfMTI4IH0sCisgICAgWzB4ZjEgLi4uIDB4ZjNdID0g eyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfMTI4LCA0IH0sCiAgICAgWzB4ZjQgLi4u IDB4ZjZdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9kUk0sIHNpbWRfcGFja2VkX2ludCwgZDhz X3ZsIH0sCiAgICAgWzB4ZjddID0geyBEc3RNZW18U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9wYWNr ZWRfaW50IH0sCiAgICAgWzB4ZjggLi4uIDB4ZmVdID0geyBEc3RJbXBsaWNpdHxTcmNNZW18TW9k Uk0sIHNpbWRfcGFja2VkX2ludCwgZDhzX3ZsIH0sCkBAIC00MzIsOSArNDMyLDkgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBleHQwZjM4X3RhYmxlIHsKIH0gZXh0MGYzOF90YWJsZVsyNTZdID0gewog ICAgIFsweDAwIC4uLiAweDBiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCB9LAog ICAgIFsweDBjIC4uLiAweDBmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwIH0sCi0g ICAgWzB4MTBdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4MTAg Li4uIDB4MTJdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3Zs IH0sCiAgICAgWzB4MTNdID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnR3b19vcCA9IDEg fSwKLSAgICBbMHgxNCAuLi4gMHgxNl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCB9 LAorICAgIFsweDE0IC4uLiAweDE2XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAu ZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4MTddID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRf aW50LCAudHdvX29wID0gMSB9LAogICAgIFsweDE4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2Nh bGFyX29wYywgLnR3b19vcCA9IDEsIC5kOHMgPSAyIH0sCiAgICAgWzB4MTldID0geyAuc2ltZF9z aXplID0gc2ltZF9zY2FsYXJfb3BjLCAudHdvX29wID0gMSwgLmQ4cyA9IDMgfSwKQEAgLTQ1MSw3 ICs0NTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmMzhfdGFibGUgewogICAgIFsweDM2 IC4uLiAweDNmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192 bCB9LAogICAgIFsweDQwXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9 IGQ4c192bCB9LAogICAgIFsweDQxXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwg LnR3b19vcCA9IDEgfSwKLSAgICBbMHg0NSAuLi4gMHg0N10gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9pbnQgfSwKKyAgICBbMHg0NSAuLi4gMHg0N10gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHg1OCAuLi4gMHg1OV0gPSB7IC5z aW1kX3NpemUgPSBzaW1kX290aGVyLCAudHdvX29wID0gMSB9LAogICAgIFsweDVhXSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfMTI4LCAudHdvX29wID0gMSB9LAogICAgIFsweDc4IC4uLiAweDc5XSA9 IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIsIC50d29fb3AgPSAxIH0sCkBAIC01OTYxLDEwICs1 OTYxLDE1IEBAIHg4Nl9lbXVsYXRlKAogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBm LCAweGRmKTogLyogdnBhbmRue2QscX0gW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICov CiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZWIpOiAvKiB2cG9ye2QscX0g W3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19F VkVYXzY2KDB4MGYsIDB4ZWYpOiAvKiB2cHhvcntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5 el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MTQpOiAv KiB2cHJvcnZ7ZCxxfSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNl IFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDE1KTogLyogdnByb2x2e2QscX0gW3h5el1t bS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2 KDB4MGYzOCwgMHgzOSk6IC8qIHZwbWluc3tkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1t bXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4M2IpOiAvKiB2 cG1pbnV7ZCxxfSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDNkKTogLyogdnBtYXhze2QscX0gW3h5el1tbS9t ZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4 MGYzOCwgMHgzZik6IC8qIHZwbWF4dXtkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtr fSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4NDUpOiAvKiB2cHNy bHZ7ZCxxfSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVN VUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDQ2KTogLyogdnBzcmF2e2QscX0gW3h5el1tbS9tZW0s W3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYz OCwgMHg0Nyk6IC8qIHZwc2xsdntkLHF9IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAq LwogICAgIGF2eDUxMmZfbm9fc2FlOgogICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShh dng1MTJmKTsKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGVhLnR5cGUgIT0gT1BfTUVN ICYmIGV2ZXguYnIsIEVYQ19VRCk7CkBAIC02NTgxLDYgKzY1ODYsOSBAQCB4ODZfZW11bGF0ZSgK ICAgICAgICAgZ2V0X2ZwdShYODZFTVVMX0ZQVV9tbXgpOwogICAgICAgICBnb3RvIHNpbWRfMGZf Y29tbW9uOwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZDEpOiAvKiB2 cHNybHcgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYsIDB4ZTEpOiAvKiB2cHNyYXcgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1t e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZjEpOiAvKiB2cHNs bHcgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19F VkVYXzY2KDB4MGYsIDB4ZjUpOiAvKiB2cG1hZGR3ZCBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpd bW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmNik6IC8qIHZw c2FkYncgW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCiAgICAgICAgIGZhdWx0X3N1 cHByZXNzaW9uID0gZmFsc2U7CkBAIC02NjA2LDYgKzY2MTQsMTYgQEAgeDg2X2VtdWxhdGUoCiAg ICAgICAgIGVsZW1fYnl0ZXMgPSAxIDw8IChiICYgMSk7CiAgICAgICAgIGdvdG8gYXZ4NTEyZl9u b19zYWU7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhkMik6IC8qIHZw c3JsZCB4bW0vbTEyOCxbeHl6XW1tLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZiwgMHhkMyk6IC8qIHZwc3JscSB4bW0vbTEyOCxbeHl6XW1tLFt4eXpdbW17 a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhlMik6IC8qIHZwc3Jh e2QscX0geG1tL20xMjgsW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09Q Q19FVkVYXzY2KDB4MGYsIDB4ZjIpOiAvKiB2cHNsbGQgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1t e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4ZjMpOiAvKiB2cHNs bHEgeG1tL20xMjgsW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgICAgIGdlbmVyYXRlX2V4Y2Vw dGlvbl9pZihldmV4LmJyLCBFWENfVUQpOworICAgICAgICBmYXVsdF9zdXBwcmVzc2lvbiA9IGZh bHNlOworICAgICAgICBpZiAoIGIgPT0gMHhlMiApCisgICAgICAgICAgICBnb3RvIGF2eDUxMmZf bm9fc2FlOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZiwgMHhmYSk6IC8qIHZwc3ViZCBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpd bW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHhmYik6IC8qIHZw c3VicSBbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxf T1BDX0VWRVhfNjYoMHgwZiwgMHhmZSk6IC8qIHZwYWRkZCBbeHl6XW1tL21lbSxbeHl6XW1tLFt4 eXpdbW17a30gKi8KQEAgLTY4ODYsNiArNjkwNCwzNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAg QVNTRVJUKCFzdGF0ZS0+c2ltZF9zaXplKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFg4 NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHg3MSk6IC8qIEdycDEyICovCisgICAgICAgIHN3aXRj aCAoIG1vZHJtX3JlZyAmIDcgKQorICAgICAgICB7CisgICAgICAgIGNhc2UgMjogLyogdnBzcmx3 ICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgY2FzZSA0OiAvKiB2cHNy YXcgJGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgICAgICBjYXNlIDY6IC8qIHZw c2xsdyAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1te2t9ICovCisgICAgICAgIGF2eDUxMmJ3X3No aWZ0X2ltbToKKyAgICAgICAgICAgIGZhdWx0X3N1cHByZXNzaW9uID0gZmFsc2U7CisgICAgICAg ICAgICBvcF9ieXRlcyA9IDE2IDw8IGV2ZXgubHI7CisgICAgICAgICAgICBzdGF0ZS0+c2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50OworICAgICAgICAgICAgZ290byBhdng1MTJid19pbW07Cisg ICAgICAgIH0KKyAgICAgICAgZ290byB1bnJlY29nbml6ZWRfaW5zbjsKKworICAgIGNhc2UgWDg2 RU1VTF9PUENfRVZFWF82NigweDBmLCAweDcyKTogLyogR3JwMTMgKi8KKyAgICAgICAgc3dpdGNo ICggbW9kcm1fcmVnICYgNyApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSAyOiAvKiB2cHNybGQg JGltbTgsW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLworICAgICAgICBjYXNlIDY6IC8qIHZwc2xs ZCAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1te2t9ICovCisgICAgICAgICAgICBnZW5lcmF0ZV9l eGNlcHRpb25faWYoZXZleC53LCBFWENfVUQpOworICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdo ICovCisgICAgICAgIGNhc2UgMDogLyogdnByb3J7ZCxxfSAkaW1tOCxbeHl6XW1tL21lbSxbeHl6 XW1te2t9ICovCisgICAgICAgIGNhc2UgMTogLyogdnByb2x7ZCxxfSAkaW1tOCxbeHl6XW1tL21l bSxbeHl6XW1te2t9ICovCisgICAgICAgIGNhc2UgNDogLyogdnBzcmF7ZCxxfSAkaW1tOCxbeHl6 XW1tL21lbSxbeHl6XW1te2t9ICovCisgICAgICAgIGF2eDUxMmZfc2hpZnRfaW1tOgorICAgICAg ICAgICAgb3BfYnl0ZXMgPSAxNiA8PCBldmV4LmxyOworICAgICAgICAgICAgc3RhdGUtPnNpbWRf c2l6ZSA9IHNpbWRfcGFja2VkX2ludDsKKyAgICAgICAgICAgIGdvdG8gYXZ4NTEyZl9pbW1fbm9f c2FlOworICAgICAgICB9CisgICAgICAgIGdvdG8gdW5yZWNvZ25pemVkX2luc247CisKICAgICBj YXNlIFg4NkVNVUxfT1BDKDB4MGYsIDB4NzMpOiAgICAgICAgLyogR3JwMTQgKi8KICAgICAgICAg c3dpdGNoICggbW9kcm1fcmVnICYgNyApCiAgICAgICAgIHsKQEAgLTY5MTEsNiArNjk2MCwxOSBA QCB4ODZfZW11bGF0ZSgKICAgICAgICAgfQogICAgICAgICBnb3RvIHVucmVjb2duaXplZF9pbnNu OwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4NzMpOiAvKiBHcnAxNCAq LworICAgICAgICBzd2l0Y2ggKCBtb2RybV9yZWcgJiA3ICkKKyAgICAgICAgeworICAgICAgICBj YXNlIDI6IC8qIHZwc3JscSAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1te2t9ICovCisgICAgICAg IGNhc2UgNjogLyogdnBzbGxxICRpbW04LFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAg ICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZighZXZleC53LCBFWENfVUQpOworICAgICAgICAg ICAgZ290byBhdng1MTJmX3NoaWZ0X2ltbTsKKyAgICAgICAgY2FzZSAzOiAvKiB2cHNybGRxICRp bW04LHt4LHl9bW0se3gseX1tbSAqLworICAgICAgICBjYXNlIDc6IC8qIHZwc2xsZHEgJGltbTgs e3gseX1tbSx7eCx5fW1tICovCisgICAgICAgICAgICBnb3RvIGF2eDUxMmJ3X3NoaWZ0X2ltbTsK KyAgICAgICAgfQorICAgICAgICBnb3RvIHVucmVjb2duaXplZF9pbnNuOworCiAgICAgY2FzZSBY ODZFTVVMX09QQygweDBmLCAweDc3KTogICAgICAgIC8qIGVtbXMgKi8KICAgICBjYXNlIFg4NkVN VUxfT1BDX1ZFWCgweDBmLCAweDc3KTogICAgLyogdnplcm97YWxsLHVwcGVyfSAqLwogICAgICAg ICBpZiAoIHZleC5vcGN4ICE9IHZleF9ub25lICkKQEAgLTgwODIsNiArODE0NCwxNCBAQCB4ODZf ZW11bGF0ZSgKICAgICAgICAgZHN0LnR5cGUgPSBPUF9OT05FOwogICAgICAgICBicmVhazsKIAor ICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MTApOiAvKiB2cHNybHZ3IFt4 eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZF WF82NigweDBmMzgsIDB4MTEpOiAvKiB2cHNyYXZ3IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1t bXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4MTIpOiAvKiB2 cHNsbHZ3IFt4eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgICAgICBob3N0X2Fu ZF92Y3B1X211c3RfaGF2ZShhdng1MTJidyk7CisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9p ZihldmV4LmJyLCBFWENfVUQpOworICAgICAgICBlbGVtX2J5dGVzID0gMSA8PCBldmV4Lnc7Cisg ICAgICAgIGdvdG8gYXZ4NTEyZl9ub19zYWU7CisKICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZjM4LCAweDE4KTogLyogdmJyb2FkY2FzdHNzIHhtbS9tMzIsW3h5el1tbXtrfSAqLwog ICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC53IHx8IGV2ZXguYnIsIEVYQ19VRCk7 CiAgICAgYXZ4NTEyX2Jyb2FkY2FzdDoKQEAgLTg4MzgsNiArODkwOCw3IEBAIHg4Nl9lbXVsYXRl KAogICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIWV2ZXguciB8fCAhZXZleC5SIHx8IGV2 ZXgueiwgRVhDX1VEKTsKICAgICAgICAgaWYgKCAhKGIgJiAweDIwKSApCiAgICAgICAgICAgICBn b3RvIGF2eDUxMmZfaW1tX25vX3NhZTsKKyAgICBhdng1MTJid19pbW06CiAgICAgICAgIGhvc3Rf YW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmJ3KTsKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9u X2lmKGV2ZXguYnIsIEVYQ19VRCk7CiAgICAgICAgIGVsZW1fYnl0ZXMgPSAxIDw8IGV2ZXgudzsK CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=