From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v5 30/47] x86emul: basic AVX512DQ testing Date: Mon, 19 Nov 2018 03:31:02 -0700 Message-ID: <5BF290E602000078001FD56C@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BF289D802000078001FD3DF@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 1gOgpf-0002TD-CA for xen-devel@lists.xenproject.org; Mon, 19 Nov 2018 10:31:07 +0000 In-Reply-To: <5BF289D802000078001FD3DF@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 VGVzdCB2YXJpb3VzIG9mIHRoZSBpbnNucyB3aGljaCBoYXZlIGJlZW4gaW1wbGVtZW50ZWQgYWxy ZWFkeS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0t CnY1OiBSZS1iYXNlIG92ZXIgY2hhbmdlcyBlYXJsaWVyIGluIHRoZSBzZXJpZXMuCnY0OiBXcmFw IE9WUihwbXVsbHEpIGluIF9fQVZYNTEyVkxfXyBjb25kaXRpb25hbC4KdjM6IE5ldy4KCi0tLSBh L3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZQorKysgYi90b29scy90ZXN0cy94ODZf ZW11bGF0b3IvTWFrZWZpbGUKQEAgLTE2LDcgKzE2LDcgQEAgdnBhdGggJS5jICQoWEVOX1JPT1Qp L3hlbi9saWIveDg2CiAKIENGTEFHUyArPSAkKENGTEFHU194ZW5pbmNsdWRlKQogCi1TSU1EIDo9 IDNkbm93IHNzZSBzc2UyIHNzZTQgYXZ4IGF2eDIgeG9wIGF2eDUxMmYgYXZ4NTEyYncKK1NJTUQg Oj0gM2Rub3cgc3NlIHNzZTIgc3NlNCBhdnggYXZ4MiB4b3AgYXZ4NTEyZiBhdng1MTJidyBhdng1 MTJkcQogRk1BIDo9IGZtYTQgZm1hCiBTRyA6PSBhdngyLXNnCiBURVNUQ0FTRVMgOj0gYmxvd2Zp c2ggJChTSU1EKSAkKEZNQSkgJChTRykKQEAgLTY5LDkgKzY5LDEyIEBAIGF2eDUxMmYtZmx0cyA6 PSA0IDgKIGF2eDUxMmJ3LXZlY3MgOj0gJChhdng1MTJmLXZlY3MpCiBhdng1MTJidy1pbnRzIDo9 IDEgMgogYXZ4NTEyYnctZmx0cyA6PQorYXZ4NTEyZHEtdmVjcyA6PSAkKGF2eDUxMmYtdmVjcykK K2F2eDUxMmRxLWludHMgOj0gJChhdng1MTJmLWludHMpCithdng1MTJkcS1mbHRzIDo9ICQoYXZ4 NTEyZi1mbHRzKQogCiBhdng1MTJmLW9wbWFzay12ZWNzIDo9IDIKLWF2eDUxMmRxLW9wbWFzay12 ZWNzIDo9IDEKK2F2eDUxMmRxLW9wbWFzay12ZWNzIDo9IDEgMgogYXZ4NTEyYnctb3BtYXNrLXZl Y3MgOj0gNCA4CiAKICMgRm9yIEFWWCBhbmQgbGF0ZXIsIGhhdmUgdGhlIGNvbXBpbGVyIGF2b2lk IFhNTTAgdG8gd2lkZW4gY292ZXJhZ2Ugb2YKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y L3NpbWQuaAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5oCkBAIC0xMjEsNiAr MTIxLDM0IEBAIHR5cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKEUKIHR5cGVk ZWYgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKEVJR0hUSF9TSVpFKSkpIHZk aV9laWdodGhfdDsKICMgZW5kaWYKIAorIyBkZWZpbmUgREVDTF9QQUlSKHcpIFwKK3R5cGVkZWYg dyAjIyBfdCBwYWlyX3Q7IFwKK3R5cGVkZWYgdnNpXyAjIyB3ICMjIF90IHZzaV9wYWlyX3Q7IFwK K3R5cGVkZWYgdmRpXyAjIyB3ICMjIF90IHZkaV9wYWlyX3QKKyMgZGVmaW5lIERFQ0xfUVVBUlRF VCh3KSBcCit0eXBlZGVmIHcgIyMgX3QgcXVhcnRldF90OyBcCit0eXBlZGVmIHZzaV8gIyMgdyAj IyBfdCB2c2lfcXVhcnRldF90OyBcCit0eXBlZGVmIHZkaV8gIyMgdyAjIyBfdCB2ZGlfcXVhcnRl dF90CisjIGRlZmluZSBERUNMX09DVEVUKHcpIFwKK3R5cGVkZWYgdyAjIyBfdCBvY3RldF90OyBc Cit0eXBlZGVmIHZzaV8gIyMgdyAjIyBfdCB2c2lfb2N0ZXRfdDsgXAordHlwZWRlZiB2ZGlfICMj IHcgIyMgX3QgdmRpX29jdGV0X3QKKworIyBpZiBFTEVNX0NPVU5UID09IDQKK0RFQ0xfUEFJUiho YWxmKTsKKyMgZWxpZiBFTEVNX0NPVU5UID09IDgKK0RFQ0xfUEFJUihxdWFydGVyKTsKK0RFQ0xf UVVBUlRFVChoYWxmKTsKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CitERUNMX1BBSVIoZWlnaHRo KTsKK0RFQ0xfUVVBUlRFVChxdWFydGVyKTsKK0RFQ0xfT0NURVQoaGFsZik7CisjIGVuZGlmCisK KyMgdW5kZWYgREVDTF9PQ1RFVAorIyB1bmRlZiBERUNMX1FVQVJURVQKKyMgdW5kZWYgREVDTF9Q QUlSCisKICNlbmRpZgogCiAjaWYgVkVDX1NJWkUgPT0gMTYKQEAgLTE0Niw2ICsxNzQsMTQgQEAg dHlwZWRlZiBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygodmVjdG9yXwogI2lmZGVmIF9fQVZYNTEy Rl9fCiAKIC8qIFNhZGx5IHRoZXJlIGFyZSBhIGZldyBleGNlcHRpb25zIHRvIHRoZSBnZW5lcmFs IG5hbWluZyBydWxlcy4gKi8KKyNkZWZpbmUgX19idWlsdGluX2lhMzJfYnJvYWRjYXN0ZjMyeDRf NTEyX21hc2sgX19idWlsdGluX2lhMzJfYnJvYWRjYXN0ZjMyeDRfNTEyCisjZGVmaW5lIF9fYnVp bHRpbl9pYTMyX2Jyb2FkY2FzdGkzMng0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2Jyb2FkY2Fz dGkzMng0XzUxMgorI2RlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4NF81MTJfbWFzayBf X2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4NF9tYXNrCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX2lu c2VydGYzMng4XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2luc2VydGYzMng4X21hc2sKKyNkZWZp bmUgX19idWlsdGluX2lhMzJfaW5zZXJ0ZjY0eDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJfaW5z ZXJ0ZjY0eDRfbWFzaworI2RlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4NF81MTJfbWFz ayBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4NF9tYXNrCisjZGVmaW5lIF9fYnVpbHRpbl9pYTMy X2luc2VydGkzMng4XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2luc2VydGkzMng4X21hc2sKKyNk ZWZpbmUgX19idWlsdGluX2lhMzJfaW5zZXJ0aTY0eDRfNTEyX21hc2sgX19idWlsdGluX2lhMzJf aW5zZXJ0aTY0eDRfbWFzawogI2RlZmluZSBfX2J1aWx0aW5faWEzMl9zaHVmX2YzMng0XzUxMl9t YXNrIF9fYnVpbHRpbl9pYTMyX3NodWZfZjMyeDRfbWFzawogI2RlZmluZSBfX2J1aWx0aW5faWEz Ml9zaHVmX2Y2NHgyXzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3NodWZfZjY0eDJfbWFzawogI2Rl ZmluZSBfX2J1aWx0aW5faWEzMl9zaHVmX2kzMng0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3No dWZfaTMyeDRfbWFzawpAQCAtMzMxLDYgKzM2NywyMCBAQCBPVlIoc3JsZHEpOwogIyBlbmRpZgog I2VuZGlmCiAKKyNpZmRlZiBfX0FWWDUxMkRRX18KK09WUl9WRlAoYW5kKTsKK09WUl9WRlAoYW5k bik7CitPVlJfVkZQKG9yKTsKK09WUihwZXh0cmQpOworT1ZSKHBleHRycSk7CitPVlIocGluc3Jk KTsKK09WUihwaW5zcnEpOworIyBpZmRlZiBfX0FWWDUxMlZMX18KK09WUihwbXVsbHEpOworIyBl bmRpZgorT1ZSX1ZGUCh4b3IpOworI2VuZGlmCisKICN1bmRlZiBPVlJfVkZQCiAjdW5kZWYgT1ZS X1NGUAogI3VuZGVmIE9WUl9JTlQKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQu YworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCkBAIC0xMzksNiArMTM5LDI3 IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgZW5kaWYKICNl bGlmIGRlZmluZWQoRkxPQVRfU0laRSkgJiYgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgXAogICAg ICAgKFZFQ19TSVpFID09IDY0IHx8IGRlZmluZWQoX19BVlg1MTJWTF9fKSkKKyMgaWYgRUxFTV9D T1VOVCA9PSA4IC8qIHZleHRyYWN0ZnszMiw2NH14NCAqLyB8fCBcCisgICAgIChFTEVNX0NPVU5U ID09IDE2ICYmIEVMRU1fU0laRSA9PSA0ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKSkgLyogdmV4 dHJhY3RmMzJ4OCAqLyB8fCBcCisgICAgIChFTEVNX0NPVU5UID09IDQgJiYgRUxFTV9TSVpFID09 IDggJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pKSAvKiB2ZXh0cmFjdGY2NHgyICovCisjICBkZWZp bmUgbG93X2hhbGYoeCkgKHsgXAorICAgIGhhbGZfdCB0XzsgXAorICAgIGFzbSAoICJ2ZXh0cmFj dGYlY1t3XXglY1tuXSAkMCwgJVtzXSwgJVtkXSIgXAorICAgICAgICAgIDogW2RdICI9bSIgKHRf KSBcCisgICAgICAgICAgOiBbc10gInYiICh4KSwgW3ddICJpIiAoRUxFTV9TSVpFICogOCksIFtu XSAiaSIgKEVMRU1fQ09VTlQgLyAyKSApOyBcCisgICAgdF87IFwKK30pCisjIGVuZGlmCisjIGlm IChFTEVNX0NPVU5UID09IDE2ICYmIEVMRU1fU0laRSA9PSA0KSAvKiB2ZXh0cmFjdGYzMng0ICov IHx8IFwKKyAgICAgKEVMRU1fQ09VTlQgPT0gOCAmJiBFTEVNX1NJWkUgPT0gOCAmJiBkZWZpbmVk KF9fQVZYNTEyRFFfXykpIC8qIHZleHRyYWN0ZjY0eDIgKi8KKyMgIGRlZmluZSBsb3dfcXVhcnRl cih4KSAoeyBcCisgICAgcXVhcnRlcl90IHRfOyBcCisgICAgYXNtICggInZleHRyYWN0ZiVjW3dd eCVjW25dICQwLCAlW3NdLCAlW2RdIiBcCisgICAgICAgICAgOiBbZF0gIj1tIiAodF8pIFwKKyAg ICAgICAgICA6IFtzXSAidiIgKHgpLCBbd10gImkiIChFTEVNX1NJWkUgKiA4KSwgW25dICJpIiAo RUxFTV9DT1VOVCAvIDQpICk7IFwKKyAgICB0XzsgXAorfSkKKyMgZW5kaWYKICMgaWYgRkxPQVRf U0laRSA9PSA0CiAjICBkZWZpbmUgYnJvYWRjYXN0KHgpICh7IFwKICAgICB2ZWNfdCB0XzsgXApA QCAtMTQ2LDYgKzE2NywxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNf dCBiCiAgICAgICAgICAgOiAiPXYiICh0XykgOiAibSIgKCooZmxvYXRbMV0peyB4IH0pICk7IFwK ICAgICB0XzsgXAogfSkKKyMgIGlmIFZFQ19TSVpFID49IDMyICYmIGRlZmluZWQoX19BVlg1MTJE UV9fKQorIyAgIGRlZmluZSBicm9hZGNhc3RfcGFpcih4KSAoeyBcCisgICAgdmVjX3QgdF87IFwK KyAgICBhc20gKCAidmJyb2FkY2FzdGYzMngyICUxLCAlMCIgOiAiPXYiICh0XykgOiAibSIgKHgp ICk7IFwKKyAgICB0XzsgXAorfSkKKyMgIGVuZGlmCisjICBpZiBWRUNfU0laRSA9PSA2NCAmJiBk ZWZpbmVkKF9fQVZYNTEyRFFfXykKKyMgICBkZWZpbmUgYnJvYWRjYXN0X29jdGV0KHgpIEIoYnJv YWRjYXN0ZjMyeDhfLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIGluc2VydF9v Y3RldCh4LCB5LCBwKSBCKGluc2VydGYzMng4XywgX21hc2ssIHgsIHksIHAsIHVuZGVmKCksIH4w KQorIyAgZW5kaWYKICMgIGRlZmluZSBtYXgoeCwgeSkgQlJfKG1heHBzLCBfbWFzaywgeCwgeSwg dW5kZWYoKSwgfjApCiAjICBkZWZpbmUgbWluKHgsIHkpIEJSXyhtaW5wcywgX21hc2ssIHgsIHks IHVuZGVmKCksIH4wKQogIyAgZGVmaW5lIG1peCh4LCB5KSBCKG1vdmFwcywgX21hc2ssIHgsIHks ICgwYjAxMDEwMTAxMDEwMTAxMDEgJiBBTExfVFJVRSkpCkBAIC0xNTUsNiArMTg3LDEzIEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgICBkZWZpbmUgaW50ZXJs ZWF2ZV9sbyh4LCB5KSBCKHVucGNrbHBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICAg ZGVmaW5lIHN3YXAoeCkgQihzaHVmcHMsIF9tYXNrLCB4LCB4LCAwYjAwMDExMDExLCB1bmRlZigp LCB+MCkKICMgIGVsc2UKKyMgICBkZWZpbmUgYnJvYWRjYXN0X3F1YXJ0ZXQoeCkgQihicm9hZGNh c3RmMzJ4NF8sIF9tYXNrLCB4LCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgaW5zZXJ0X3BhaXIo eCwgeSwgcCkgXAorICAgIEIoaW5zZXJ0ZjMyeDRfLCBfbWFzaywgeCwgXAorICAgICAgLyogQ2Fz dCBuZWVkZWQgYmVsb3cgdG8gd29yayBhcm91bmQgZ2NjIDcueCBxdWlyay4gKi8gXAorICAgICAg KHApICYgMSA/ICh0eXBlb2YoeSkpX19idWlsdGluX2lhMzJfc2h1ZnBzKHksIHksIDBiMDEwMDAx MDApIDogKHkpLCBcCisgICAgICAocCkgPj4gMSwgeCwgMyA8PCAoKHApICogMikpCisjICAgZGVm aW5lIGluc2VydF9xdWFydGV0KHgsIHksIHApIEIoaW5zZXJ0ZjMyeDRfLCBfbWFzaywgeCwgeSwg cCwgdW5kZWYoKSwgfjApCiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgQih2cGVybWky dmFycHMsIF9tYXNrLCB4LCBpbnRlcmxlYXZlX2hpLCB5LCB+MCkKICMgICBkZWZpbmUgaW50ZXJs ZWF2ZV9sbyh4LCB5KSBCKHZwZXJtdDJ2YXJwcywgX21hc2ssIGludGVybGVhdmVfbG8sIHgsIHks IH4wKQogIyAgIGRlZmluZSBzd2FwKHgpICh7IFwKQEAgLTE3OCw2ICsyMTcsMTQgQEAgc3RhdGlj IGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogICAgIHRfOyBcCiB9KQogIyAgZW5k aWYKKyMgIGlmIFZFQ19TSVpFID49IDMyICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKQorIyAgIGRl ZmluZSBicm9hZGNhc3RfcGFpcih4KSBCKGJyb2FkY2FzdGY2NHgyXywgX21hc2ssIHgsIHVuZGVm KCksIH4wKQorIyAgIGRlZmluZSBpbnNlcnRfcGFpcih4LCB5LCBwKSBCKGluc2VydGY2NHgyXywg X21hc2ssIHgsIHksIHAsIHVuZGVmKCksIH4wKQorIyAgZW5kaWYKKyMgIGlmIFZFQ19TSVpFID09 IDY0CisjICAgZGVmaW5lIGJyb2FkY2FzdF9xdWFydGV0KHgpIEIoYnJvYWRjYXN0ZjY0eDRfLCAs IHgsIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSBpbnNlcnRfcXVhcnRldCh4LCB5LCBwKSBCKGlu c2VydGY2NHg0XywgX21hc2ssIHgsIHksIHAsIHVuZGVmKCksIH4wKQorIyAgZW5kaWYKICMgIGRl ZmluZSBtYXgoeCwgeSkgQlJfKG1heHBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBk ZWZpbmUgbWluKHgsIHkpIEJSXyhtaW5wZCwgX21hc2ssIHgsIHksIHVuZGVmKCksIH4wKQogIyAg ZGVmaW5lIG1peCh4LCB5KSBCKG1vdmFwZCwgX21hc2ssIHgsIHksIDBiMDEwMTAxMDEpCkBAIC0z MDYsNiArMzUzLDE2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIK ICAgICB0XzsgXAogfSkKICMgZW5kaWYKKyMgaWYgKEVMRU1fQ09VTlQgPT0gMTYgJiYgRUxFTV9T SVpFID09IDQpIC8qIHZleHRyYWN0aTMyeDQgKi8gfHwgXAorICAgICAgIChFTEVNX0NPVU5UID09 IDggJiYgRUxFTV9TSVpFID09IDggJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pKSAvKiB2ZXh0cmFj dGk2NHgyICovCisjICBkZWZpbmUgbG93X3F1YXJ0ZXIoeCkgKHsgXAorICAgIHF1YXJ0ZXJfdCB0 XzsgXAorICAgIGFzbSAoICJ2ZXh0cmFjdGklY1t3XXglY1tuXSAkMCwgJVtzXSwgJVtkXSIgXAor ICAgICAgICAgIDogW2RdICI9bSIgKHRfKSBcCisgICAgICAgICAgOiBbc10gInYiICh4KSwgW3dd ICJpIiAoRUxFTV9TSVpFICogOCksIFtuXSAiaSIgKEVMRU1fQ09VTlQgLyA0KSApOyBcCisgICAg dF87IFwKK30pCisjIGVuZGlmCiAjIGlmIElOVF9TSVpFID09IDQgfHwgVUlOVF9TSVpFID09IDQK ICMgIGRlZmluZSBicm9hZGNhc3QoeCkgKHsgXAogICAgIHZlY190IHRfOyBcCkBAIC0zMTgsMTEg KzM3NSwzMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAgICAg YXNtICggInZwYnJvYWRjYXN0ZCAlazEsICUwIiA6ICI9diIgKHRfKSA6ICJyIiAoeCkgKTsgXAog ICAgIHRfOyBcCiB9KQorIyAgaWZkZWYgX19BVlg1MTJEUV9fCisjICAgZGVmaW5lIGJyb2FkY2Fz dF9wYWlyKHgpICh7IFwKKyAgICB2ZWNfdCB0XzsgXAorICAgIGFzbSAoICJ2YnJvYWRjYXN0aTMy eDIgJTEsICUwIiA6ICI9diIgKHRfKSA6ICJtIiAoeCkgKTsgXAorICAgIHRfOyBcCit9KQorIyAg ZW5kaWYKKyMgIGlmIFZFQ19TSVpFID09IDY0ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKQorIyAg IGRlZmluZSBicm9hZGNhc3Rfb2N0ZXQoeCkgKCh2ZWNfdClCKGJyb2FkY2FzdGkzMng4XywgX21h c2ssICh2c2lfb2N0ZXRfdCkoeCksICh2c2lfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5lIGlu c2VydF9vY3RldCh4LCB5LCBwKSAoKHZlY190KUIoaW5zZXJ0aTMyeDhfLCBfbWFzaywgKHZzaV90 KSh4KSwgKHZzaV9vY3RldF90KSh5KSwgcCwgKHZzaV90KXVuZGVmKCksIH4wKSkKKyMgIGVuZGlm CiAjICBpZiBWRUNfU0laRSA9PSAxNgogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkpICgo dmVjX3QpQihwdW5wY2toZHEsIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3Qp dW5kZWYoKSwgfjApKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3QpQihw dW5wY2tsZHEsIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCAodnNpX3QpdW5kZWYoKSwg fjApKQogIyAgIGRlZmluZSBzd2FwKHgpICgodmVjX3QpQihwc2h1ZmQsIF9tYXNrLCAodnNpX3Qp KHgpLCAwYjAwMDExMDExLCAodnNpX3QpdW5kZWYoKSwgfjApKQogIyAgZWxzZQorIyAgIGRlZmlu ZSBicm9hZGNhc3RfcXVhcnRldCh4KSAoKHZlY190KUIoYnJvYWRjYXN0aTMyeDRfLCBfbWFzaywg KHZzaV9xdWFydGV0X3QpKHgpLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgIGRlZmluZSBpbnNl cnRfcGFpcih4LCB5LCBwKSBcCisgICAgKHZlY190KShCKGluc2VydGkzMng0XywgX21hc2ssICh2 c2lfdCkoeCksIFwKKyAgICAgICAgICAgICAgLyogRmlyc3QgY2FzdCBuZWVkZWQgYmVsb3cgdG8g d29yayBhcm91bmQgZ2NjIDcueCBxdWlyay4gKi8gXAorICAgICAgICAgICAgICAocCkgJiAxID8g KHZzaV9wYWlyX3QpX19idWlsdGluX2lhMzJfcHNodWZkKCh2c2lfcGFpcl90KSh5KSwgMGIwMTAw MDEwMCkgXAorICAgICAgICAgICAgICAgICAgICAgIDogKHZzaV9wYWlyX3QpKHkpLCBcCisgICAg ICAgICAgICAgIChwKSA+PiAxLCAodnNpX3QpKHgpLCAzIDw8ICgocCkgKiAyKSkpCisjICAgZGVm aW5lIGluc2VydF9xdWFydGV0KHgsIHksIHApICgodmVjX3QpQihpbnNlcnRpMzJ4NF8sIF9tYXNr LCAodnNpX3QpKHgpLCAodnNpX3F1YXJ0ZXRfdCkoeSksIHAsICh2c2lfdCl1bmRlZigpLCB+MCkp CiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgKCh2ZWNfdClCKHZwZXJtaTJ2YXJkLCBf bWFzaywgKHZzaV90KSh4KSwgaW50ZXJsZWF2ZV9oaSwgKHZzaV90KSh5KSwgfjApKQogIyAgIGRl ZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpICgodmVjX3QpQih2cGVybXQydmFyZCwgX21hc2ssIGlu dGVybGVhdmVfbG8sICh2c2lfdCkoeCksICh2c2lfdCkoeSksIH4wKSkKICMgICBkZWZpbmUgc3dh cCh4KSAoKHZlY190KUIocHNodWZkLCBfbWFzaywgXApAQCAtMzQ3LDYgKzQyMywxNCBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAgICAgdF87IFwKIH0pCiAjICBl bmRpZgorIyAgaWYgVkVDX1NJWkUgPj0gMzIgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pCisjICAg ZGVmaW5lIGJyb2FkY2FzdF9wYWlyKHgpICgodmVjX3QpQihicm9hZGNhc3RpNjR4Ml8sIF9tYXNr LCAodmRpX3BhaXJfdCkoeCksICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5lIGluc2Vy dF9wYWlyKHgsIHksIHApICgodmVjX3QpQihpbnNlcnRpNjR4Ml8sIF9tYXNrLCAodmRpX3QpKHgp LCAodmRpX3BhaXJfdCkoeSksIHAsICh2ZGlfdCl1bmRlZigpLCB+MCkpCisjICBlbmRpZgorIyAg aWYgVkVDX1NJWkUgPT0gNjQKKyMgICBkZWZpbmUgYnJvYWRjYXN0X3F1YXJ0ZXQoeCkgKCh2ZWNf dClCKGJyb2FkY2FzdGk2NHg0XywgLCAodmRpX3F1YXJ0ZXRfdCkoeCksICh2ZGlfdCl1bmRlZigp LCB+MCkpCisjICAgZGVmaW5lIGluc2VydF9xdWFydGV0KHgsIHksIHApICgodmVjX3QpQihpbnNl cnRpNjR4NF8sIF9tYXNrLCAodmRpX3QpKHgpLCAodmRpX3F1YXJ0ZXRfdCkoeSksIHAsICh2ZGlf dCl1bmRlZigpLCB+MCkpCisjICBlbmRpZgogIyAgaWYgVkVDX1NJWkUgPT0gMTYKICMgICBkZWZp bmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSAoKHZlY190KUIocHVucGNraHFkcSwgX21hc2ssICh2ZGlf dCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCl1bmRlZigpLCB+MCkpCiAjICAgZGVmaW5lIGludGVy bGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHB1bnBja2xxZHEsIF9tYXNrLCAodmRpX3QpKHgpLCAo dmRpX3QpKHkpLCAodmRpX3QpdW5kZWYoKSwgfjApKQpAQCAtODk4LDcgKzk4Miw3IEBAIHN0YXRp YyBpbmxpbmUgZWlnaHRoX3QgbG93X2VpZ2h0aCh2ZWNfdAogICAgIGVpZ2h0aF90IHk7CiAgICAg dW5zaWduZWQgaW50IGk7CiAKLSAgICBmb3IgKCBpID0gMDsgaSA8IEVMRU1fQ09VTlQgLyA0OyAr K2kgKQorICAgIGZvciAoIGkgPSAwOyBpIDwgRUxFTV9DT1VOVCAvIDg7ICsraSApCiAgICAgICAg IHlbaV0gPSB4W2ldOwogCiAgICAgcmV0dXJuIHk7CkBAIC05MTAsNiArOTk0LDUwIEBAIHN0YXRp YyBpbmxpbmUgZWlnaHRoX3QgbG93X2VpZ2h0aCh2ZWNfdAogCiAjZW5kaWYKIAorI2lmZGVmIGJy b2FkY2FzdF9wYWlyCisjIGlmIEVMRU1fQ09VTlQgPT0gNAorIyAgZGVmaW5lIGJyb2FkY2FzdF9o YWxmIGJyb2FkY2FzdF9wYWlyCisjIGVsaWYgRUxFTV9DT1VOVCA9PSA4CisjICBkZWZpbmUgYnJv YWRjYXN0X3F1YXJ0ZXIgYnJvYWRjYXN0X3BhaXIKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2Cisj ICBkZWZpbmUgYnJvYWRjYXN0X2VpZ2h0aCBicm9hZGNhc3RfcGFpcgorIyBlbmRpZgorI2VuZGlm CisKKyNpZmRlZiBpbnNlcnRfcGFpcgorIyBpZiBFTEVNX0NPVU5UID09IDQKKyMgIGRlZmluZSBp bnNlcnRfaGFsZiBpbnNlcnRfcGFpcgorIyBlbGlmIEVMRU1fQ09VTlQgPT0gOAorIyAgZGVmaW5l IGluc2VydF9xdWFydGVyIGluc2VydF9wYWlyCisjIGVsaWYgRUxFTV9DT1VOVCA9PSAxNgorIyAg ZGVmaW5lIGluc2VydF9laWdodGggaW5zZXJ0X3BhaXIKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZk ZWYgYnJvYWRjYXN0X3F1YXJ0ZXQKKyMgaWYgRUxFTV9DT1VOVCA9PSA4CisjICBkZWZpbmUgYnJv YWRjYXN0X2hhbGYgYnJvYWRjYXN0X3F1YXJ0ZXQKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2Cisj ICBkZWZpbmUgYnJvYWRjYXN0X3F1YXJ0ZXIgYnJvYWRjYXN0X3F1YXJ0ZXQKKyMgZW5kaWYKKyNl bmRpZgorCisjaWZkZWYgaW5zZXJ0X3F1YXJ0ZXQKKyMgaWYgRUxFTV9DT1VOVCA9PSA4CisjICBk ZWZpbmUgaW5zZXJ0X2hhbGYgaW5zZXJ0X3F1YXJ0ZXQKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2 CisjICBkZWZpbmUgaW5zZXJ0X3F1YXJ0ZXIgaW5zZXJ0X3F1YXJ0ZXQKKyMgZW5kaWYKKyNlbmRp ZgorCisjaWYgZGVmaW5lZChicm9hZGNhc3Rfb2N0ZXQpICYmIEVMRU1fQ09VTlQgPT0gMTYKKyMg ZGVmaW5lIGJyb2FkY2FzdF9oYWxmIGJyb2FkY2FzdF9vY3RldAorI2VuZGlmCisKKyNpZiBkZWZp bmVkKGluc2VydF9vY3RldCkgJiYgRUxFTV9DT1VOVCA9PSAxNgorIyBkZWZpbmUgaW5zZXJ0X2hh bGYgaW5zZXJ0X29jdGV0CisjZW5kaWYKKwogI2lmIGRlZmluZWQoX19BVlg1MTJGX18pICYmIGRl ZmluZWQoRkxPQVRfU0laRSkKICMgaW5jbHVkZSAic2ltZC1mbWEuYyIKICNlbmRpZgpAQCAtMTIw NSw2ICsxMzMzLDYwIEBAIGludCBzaW1kX3Rlc3Qodm9pZCkKICAgICBpZiAoICFlcShicm9hZGNh c3QyKEVMRU1fQ09VTlQgKyAxKSwgc3JjICsgaW52KSApIHJldHVybiBfX0xJTkVfXzsKICNlbmRp ZgogCisjaWYgZGVmaW5lZChicm9hZGNhc3RfaGFsZikgJiYgZGVmaW5lZChpbnNlcnRfaGFsZikK KyAgICB7CisgICAgICAgIGhhbGZfdCBhdXggPSBsb3dfaGFsZihzcmMpOworCisgICAgICAgIHRv dWNoKGF1eCk7CisgICAgICAgIHggPSBicm9hZGNhc3RfaGFsZihhdXgpOworICAgICAgICB0b3Vj aChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2hhbGYoc3JjLCBhdXgsIDEpOworICAgICAgICBp ZiAoICFlcSh4LCB5KSApIHJldHVybiBfX0xJTkVfXzsKKyAgICB9CisjZW5kaWYKKworI2lmIGRl ZmluZWQoYnJvYWRjYXN0X3F1YXJ0ZXIpICYmIGRlZmluZWQoaW5zZXJ0X3F1YXJ0ZXIpCisgICAg eworICAgICAgICBxdWFydGVyX3QgYXV4ID0gbG93X3F1YXJ0ZXIoc3JjKTsKKworICAgICAgICB0 b3VjaChhdXgpOworICAgICAgICB4ID0gYnJvYWRjYXN0X3F1YXJ0ZXIoYXV4KTsKKyAgICAgICAg dG91Y2goYXV4KTsKKyAgICAgICAgeSA9IGluc2VydF9xdWFydGVyKHNyYywgYXV4LCAxKTsKKyAg ICAgICAgdG91Y2goYXV4KTsKKyAgICAgICAgeSA9IGluc2VydF9xdWFydGVyKHksIGF1eCwgMik7 CisgICAgICAgIHRvdWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfcXVhcnRlcih5LCBhdXgs IDMpOworICAgICAgICBpZiAoICFlcSh4LCB5KSApIHJldHVybiBfX0xJTkVfXzsKKyAgICB9Cisj ZW5kaWYKKworI2lmIGRlZmluZWQoYnJvYWRjYXN0X2VpZ2h0aCkgJiYgZGVmaW5lZChpbnNlcnRf ZWlnaHRoKSAmJiBcCisgICAgLyogQXQgbGVhc3QgZ2NjIDcuMyAib3B0aW1pemVzIiBhd2F5IGFs bCBpbnNlcnRfZWlnaHRoKCkgY2FsbHMgYmVsb3cuICovIFwKKyAgICBfX0dOVUNfXyA+PSA4Cisg ICAgeworICAgICAgICBlaWdodGhfdCBhdXggPSBsb3dfZWlnaHRoKHNyYyk7CisKKyAgICAgICAg dG91Y2goYXV4KTsKKyAgICAgICAgeCA9IGJyb2FkY2FzdF9laWdodGgoYXV4KTsKKyAgICAgICAg dG91Y2goYXV4KTsKKyAgICAgICAgeSA9IGluc2VydF9laWdodGgoc3JjLCBhdXgsIDEpOworICAg ICAgICB0b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDIpOwor ICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgsIDMp OworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBhdXgs IDQpOworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5LCBh dXgsIDUpOworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0aCh5 LCBhdXgsIDYpOworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5ID0gaW5zZXJ0X2VpZ2h0 aCh5LCBhdXgsIDcpOworICAgICAgICBpZiAoICFlcSh4LCB5KSApIHJldHVybiBfX0xJTkVfXzsK KyAgICB9CisjZW5kaWYKKwogI2lmIGRlZmluZWQoaW50ZXJsZWF2ZV9sbykgJiYgZGVmaW5lZChp bnRlcmxlYXZlX2hpKQogICAgIHRvdWNoKHNyYyk7CiAgICAgeCA9IGludGVybGVhdmVfbG8oaW52 LCBzcmMpOwotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3Iu YworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYwpAQCAt MjMsNiArMjMsNyBAQCBhc20gKCAiLnB1c2hzZWN0aW9uIC50ZXN0LCBcImF4XCIsIEBwcm9nCiAj aW5jbHVkZSAiYXZ4NTEyYnctb3BtYXNrLmgiCiAjaW5jbHVkZSAiYXZ4NTEyZi5oIgogI2luY2x1 ZGUgImF2eDUxMmJ3LmgiCisjaW5jbHVkZSAiYXZ4NTEyZHEuaCIKIAogI2RlZmluZSB2ZXJib3Nl IGZhbHNlIC8qIFN3aXRjaCB0byB0cnVlIGZvciBmYXIgbW9yZSBsb2dnaW5nLiAqLwogCkBAIC0x MDAsNiArMTAxLDExIEBAIHN0YXRpYyBib29sIHNpbWRfY2hlY2tfYXZ4NTEyZHEodm9pZCkKIH0K ICNkZWZpbmUgc2ltZF9jaGVja19hdng1MTJkcV9vcG1hc2sgc2ltZF9jaGVja19hdng1MTJkcQog CitzdGF0aWMgYm9vbCBzaW1kX2NoZWNrX2F2eDUxMmRxX3ZsKHZvaWQpCit7CisgICAgcmV0dXJu IGNwdV9oYXNfYXZ4NTEyZHEgJiYgY3B1X2hhc19hdng1MTJ2bDsKK30KKwogc3RhdGljIGJvb2wg c2ltZF9jaGVja19hdng1MTJidyh2b2lkKQogewogICAgIHJldHVybiBjcHVfaGFzX2F2eDUxMmJ3 OwpAQCAtMjY3LDkgKzI3MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICBTSU1EKFhP UCBpMzJ4OCwgICAgICAgICAgICAgICB4b3AsICAgICAgMzJpNCksCiAgICAgU0lNRChYT1AgaTY0 eDQsICAgICAgICAgICAgICAgeG9wLCAgICAgIDMyaTgpLAogICAgIFNJTUQoT1BNQVNLL3csICAg ICBhdng1MTJmX29wbWFzaywgICAgICAgICAyKSwKLSAgICBTSU1EKE9QTUFTSy9iLCAgICBhdng1 MTJkcV9vcG1hc2ssICAgICAgICAgMSksCi0gICAgU0lNRChPUE1BU0svZCwgICAgYXZ4NTEyYndf b3BtYXNrLCAgICAgICAgIDQpLAotICAgIFNJTUQoT1BNQVNLL3EsICAgIGF2eDUxMmJ3X29wbWFz aywgICAgICAgICA4KSwKKyAgICBTSU1EKE9QTUFTSytEUS9iLCBhdng1MTJkcV9vcG1hc2ssICAg ICAgICAgMSksCisgICAgU0lNRChPUE1BU0srRFEvdywgYXZ4NTEyZHFfb3BtYXNrLCAgICAgICAg IDIpLAorICAgIFNJTUQoT1BNQVNLK0JXL2QsIGF2eDUxMmJ3X29wbWFzaywgICAgICAgICA0KSwK KyAgICBTSU1EKE9QTUFTSytCVy9xLCBhdng1MTJid19vcG1hc2ssICAgICAgICAgOCksCiAgICAg U0lNRChBVlg1MTJGIGYzMiBzY2FsYXIsICBhdng1MTJmLCAgICAgICAgZjQpLAogICAgIFNJTUQo QVZYNTEyRiBmMzJ4MTYsICAgICAgYXZ4NTEyZiwgICAgICA2NGY0KSwKICAgICBTSU1EKEFWWDUx MkYgZjY0IHNjYWxhciwgIGF2eDUxMmYsICAgICAgICBmOCksCkBAIC0zMDIsNiArMzA5LDI0IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIEFWWDUxMlZMKEJXK1ZMIHUxNng4LCAgICBhdng1 MTJidywgICAgICAxNnUyKSwKICAgICBBVlg1MTJWTChCVytWTCBzMTZ4MTYsICAgYXZ4NTEyYncs ICAgICAgMzJpMiksCiAgICAgQVZYNTEyVkwoQlcrVkwgdTE2eDE2LCAgIGF2eDUxMmJ3LCAgICAg IDMydTIpLAorICAgIFNJTUQoQVZYNTEyRFEgZjMyeDE2LCAgICBhdng1MTJkcSwgICAgICA2NGY0 KSwKKyAgICBTSU1EKEFWWDUxMkRRIGY2NHg4LCAgICAgYXZ4NTEyZHEsICAgICAgNjRmOCksCisg ICAgU0lNRChBVlg1MTJEUSBzMzJ4MTYsICAgIGF2eDUxMmRxLCAgICAgIDY0aTQpLAorICAgIFNJ TUQoQVZYNTEyRFEgdTMyeDE2LCAgICBhdng1MTJkcSwgICAgICA2NHU0KSwKKyAgICBTSU1EKEFW WDUxMkRRIHM2NHg4LCAgICAgYXZ4NTEyZHEsICAgICAgNjRpOCksCisgICAgU0lNRChBVlg1MTJE USB1NjR4OCwgICAgIGF2eDUxMmRxLCAgICAgIDY0dTgpLAorICAgIEFWWDUxMlZMKERRK1ZMIGYz Mng0LCAgICBhdng1MTJkcSwgICAgICAxNmY0KSwKKyAgICBBVlg1MTJWTChEUStWTCBmNjR4Miwg ICAgYXZ4NTEyZHEsICAgICAgMTZmOCksCisgICAgQVZYNTEyVkwoRFErVkwgZjMyeDgsICAgIGF2 eDUxMmRxLCAgICAgIDMyZjQpLAorICAgIEFWWDUxMlZMKERRK1ZMIGY2NHg0LCAgICBhdng1MTJk cSwgICAgICAzMmY4KSwKKyAgICBBVlg1MTJWTChEUStWTCBzMzJ4NCwgICAgYXZ4NTEyZHEsICAg ICAgMTZpNCksCisgICAgQVZYNTEyVkwoRFErVkwgdTMyeDQsICAgIGF2eDUxMmRxLCAgICAgIDE2 dTQpLAorICAgIEFWWDUxMlZMKERRK1ZMIHMzMng4LCAgICBhdng1MTJkcSwgICAgICAzMmk0KSwK KyAgICBBVlg1MTJWTChEUStWTCB1MzJ4OCwgICAgYXZ4NTEyZHEsICAgICAgMzJ1NCksCisgICAg QVZYNTEyVkwoRFErVkwgczY0eDIsICAgIGF2eDUxMmRxLCAgICAgIDE2aTgpLAorICAgIEFWWDUx MlZMKERRK1ZMIHU2NHgyLCAgICBhdng1MTJkcSwgICAgICAxNnU4KSwKKyAgICBBVlg1MTJWTChE UStWTCBzNjR4NCwgICAgYXZ4NTEyZHEsICAgICAgMzJpOCksCisgICAgQVZYNTEyVkwoRFErVkwg dTY0eDQsICAgIGF2eDUxMmRxLCAgICAgIDMydTgpLAogI3VuZGVmIEFWWDUxMlZMXwogI3VuZGVm IEFWWDUxMlZMCiAjdW5kZWYgU0lNRF8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=