From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 46/50] x86emul: support GFNI insns Date: Fri, 15 Mar 2019 05:06:27 -0600 Message-ID: <5C8B8733020000780021F323@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 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 1h4kfb-0001pE-G5 for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 11:06:35 +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 Tm90ZSB0aGF0IHRoZSBJU0EgZXh0ZW5zaW9ucyBkb2N1bWVudCByZXZpc2lvbiAwMzUgaXMgYW1i aWd1b3VzCnJlZ2FyZGluZyBmYXVsdCBzdXBwcmVzc2lvbiBmb3IgVkdGMlA4TVVMQjogVGV4dCBz YXlzIGl0J3Mgc3VwcG9ydGVkLAp3aGlsZSB0aGUgZXhjZXB0aW9uIHNwZWNpZmljYXRpb24gbGlz dGVkIGlzIEU0TkYuIEdpdmVuIHRoZSB3b3JkaW5nIGhlcmUKYW5kIGZvciB0aGUgb3RoZXIgdHdv IGluc25zIEknbSBpbmNsaW5lZCB0byB0cnVzdCB0aGUgdGV4dCBtb3JlIHRoYW4gdGhlCmV4Y2Vw dGlvbiByZWZlcmVuY2UsIHdoaWNoIHdhcyBhbHNvIGNvbmZpcm1lZCBpbmZvcm1hbGx5LgoKQXMg dG8gdGhlIGZlYXR1cmUgZGVwZW5kZW5jeSBhZGp1c3RtZW50LCB3aGlsZSBzdHJpY3RseSBzcGVh a2luZyBTU0UgaXMKYSBzdWZmaWNpZW50IHByZXJlcSAodG8gaGF2ZSBYTU0gcmVnaXN0ZXJzKSwg dmVjdG9ycyBvZiBieXRlcyBhbmQgcXdvcmRzCmhhdmUgZ290IGludHJvZHVjZWQgb25seSB3aXRo IFNTRTIuIGdjYywgZm9yIGV4YW1wbGUsIHVzZXMgYSBzaW1pbGFyCmNvbm5lY3Rpb24gaW4gaXRz IHJlc3BlY3RpdmUgaW50cmluc2ljcyBoZWFkZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2ODogQWRkIHtldmV4fS1wcm9kdWNpbmcgdmdmMnA4 bXVsYiBhbGlhcyB0byBzaW1kLmguIEFkZCBtaXNzaW5nIHNpbWQuaAogICAgZGVwZW5kZW5jeS4g UmUtYmFzZS4Kdjc6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmls ZQorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKQEAgLTE5LDcgKzE5LDgg QEAgQ0ZMQUdTICs9ICQoQ0ZMQUdTX3hlbmluY2x1ZGUpCiBTSU1EIDo9IDNkbm93IHNzZSBzc2Uy IHNzZTQgYXZ4IGF2eDIgeG9wIGF2eDUxMmYgYXZ4NTEyYncgYXZ4NTEyZHEgYXZ4NTEyZXIgYXZ4 NTEydmJtaQogRk1BIDo9IGZtYTQgZm1hCiBTRyA6PSBhdngyLXNnIGF2eDUxMmYtc2cgYXZ4NTEy dmwtc2cKLVRFU1RDQVNFUyA6PSBibG93ZmlzaCAkKFNJTUQpICQoRk1BKSAkKFNHKQorR0YgOj0g c3NlMi1nZiBhdngyLWdmIGF2eDUxMmJ3LWdmCitURVNUQ0FTRVMgOj0gYmxvd2Zpc2ggJChTSU1E KSAkKEZNQSkgJChTRykgJChHRikKIAogT1BNQVNLIDo9IGF2eDUxMmYgYXZ4NTEyZHEgYXZ4NTEy YncKIApAQCAtMTQyLDEyICsxNDMsMTcgQEAgJCgxKS1jZmxhZ3MgOj0gXAogCSAgICQoZm9yZWFj aCBmbHQsJCgkKDEpLWZsdHMpLCBcCiAJICAgICAiLURfJCh2ZWMpeCQoaWR4KWYkKGZsdCkgLW0k KDE6LXNnPSkgJChjYWxsIG5vbi1zc2UsJCgxKSkgLU9zIC1EVkVDX01BWD0kKHZlYykgLURJRFhf U0laRT0kKGlkeCkgLURGTE9BVF9TSVpFPSQoZmx0KSIpKSkKIGVuZGVmCitkZWZpbmUgc2ltZC1n Zi1kZWZzCiskKDEpLWNmbGFncyA6PSAkKGZvcmVhY2ggdmVjLCQoJCgxOi1nZj0pLXZlY3MpLCBc CisJICAgICAgICAgIi1EXyQodmVjKSAtbWdmbmkgLW0kKDE6LWdmPSkgJChjYWxsIG5vbi1zc2Us JCgxKSkgLU9zIC1EVkVDX1NJWkU9JCh2ZWMpIikKK2VuZGVmCiBkZWZpbmUgb3BtYXNrLWRlZnMK ICQoMSktb3BtYXNrLWNmbGFncyA6PSAkKGZvcmVhY2ggdmVjLCQoJCgxKS1vcG1hc2stdmVjcyks ICItRF8kKHZlYykgLW0kKDEpIC1PcyAtRFNJWkU9JCh2ZWMpIikKIGVuZGVmCiAKICQoZm9yZWFj aCBmbGF2b3IsJChTSU1EKSAkKEZNQSksJChldmFsICQoY2FsbCBzaW1kLWRlZnMsJChmbGF2b3Ip KSkpCiAkKGZvcmVhY2ggZmxhdm9yLCQoU0cpLCQoZXZhbCAkKGNhbGwgc2ltZC1zZy1kZWZzLCQo Zmxhdm9yKSkpKQorJChmb3JlYWNoIGZsYXZvciwkKEdGKSwkKGV2YWwgJChjYWxsIHNpbWQtZ2Yt ZGVmcywkKGZsYXZvcikpKSkKICQoZm9yZWFjaCBmbGF2b3IsJChPUE1BU0spLCQoZXZhbCAkKGNh bGwgb3BtYXNrLWRlZnMsJChmbGF2b3IpKSkpCiAKIGZpcnN0LXN0cmluZyA9ICQoc2hlbGwgZm9y IHMgaW4gJCgxKTsgZG8gZWNobyAiJCRzIjsgYnJlYWs7IGRvbmUpCkBAIC0xOTcsNyArMjAzLDEw IEBAICQoYWRkc3VmZml4IC5jLCQoRk1BKSk6CiAkKGFkZHN1ZmZpeCAuYywkKFNHKSk6CiAJbG4g LXNmIHNpbWQtc2cuYyAkQAogCi0kKGFkZHN1ZmZpeCAuaCwkKFNJTUQpICQoRk1BKSAkKFNHKSk6 IHNpbWQuaAorJChhZGRzdWZmaXggLmMsJChHRikpOgorCWxuIC1zZiBzaW1kLWdmLmMgJEAKKwor JChhZGRzdWZmaXggLmgsJChTSU1EKSAkKEZNQSkgJChTRykgJChHRikpOiBzaW1kLmgKIAogeG9w LmggYXZ4NTEyZi5oOiBzaW1kLWZtYS5jCiAKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y L2V2ZXgtZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5j CkBAIC01OTEsNiArNTkxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJfdnBv cGNudGQKICAgICBJTlNOKHBvcGNudCwgNjYsIDBmMzgsIDU1LCB2bCwgZHEsIHZsKQogfTsKIAor c3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGdmbmlfYWxsW10gPSB7CisgICAgSU5TTihnZjJwOGFm ZmluZWludnFiLCA2NiwgMGYzYSwgY2YsIHZsLCBxLCB2bCksCisgICAgSU5TTihnZjJwOGFmZmlu ZXFiLCAgICA2NiwgMGYzYSwgY2UsIHZsLCBxLCB2bCksCisgICAgSU5TTihnZjJwOG11bGIsICAg ICAgICA2NiwgMGYzOCwgY2YsIHZsLCBiLCB2bCksCit9OworCiAvKgogICogVGhlIHVzZXMgb2Yg YiBpbiB0aGlzIHRhYmxlIGFyZSBzaW1wbHkgKG9uZSBvZikgdGhlIHNob3J0ZXN0IGZvcm0ocykg b2YKICAqIHNheWluZyAibm8gYnJvYWRjYXN0IiB3aXRob3V0IGludHJvZHVjaW5nIGEgMTI4LWJp dCBncmFudWxhcml0eSBlbnVtZXJhdG9yLgpAQCAtOTg3LDYgKzk5Myw3IEBAIHZvaWQgZXZleF9k aXNwOF90ZXN0KHZvaWQgKmluc3RyLCBzdHJ1Y3QKIAogICAgIGlmICggY3B1X2hhc19hdng1MTJm ICkKICAgICB7CisgICAgICAgIFJVTihnZm5pLCBhbGwpOwogICAgICAgICBSVU4odmFlcywgYWxs KTsKICAgICAgICAgUlVOKHZwY2xtdWxxZHEsIGFsbCk7CiAgICAgfQotLS0gYS90b29scy90ZXN0 cy94ODZfZW11bGF0b3Ivc2ltZC5oCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1k LmgKQEAgLTM3MSw2ICszNzEsNyBAQCBPVlIoY3Z0dHNkMnNpcSk7CiBPVlIoY3Z0dHNzMnNpKTsK IE9WUihjdnR0c3Myc2lsKTsKIE9WUihjdnR0c3Myc2lxKTsKK09WUihnZjJwOG11bGIpOwogT1ZS KG1vdmRkdXApOwogT1ZSKG1vdm50ZHEpOwogT1ZSKG1vdm50ZHFhKTsKLS0tIC9kZXYvbnVsbAor KysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC1nZi5jCkBAIC0wLDAgKzEsODAgQEAK KyNkZWZpbmUgVUlOVF9TSVpFIDEKKworI2luY2x1ZGUgInNpbWQuaCIKK0VOVFJZKGdmX3Rlc3Qp OworCisjaWYgVkVDX1NJWkUgPT0gMTYKKyMgZGVmaW5lIEdGKG9wLCBzLCBhLi4uKSBfX2J1aWx0 aW5faWEzMl92Z2YycDggIyMgb3AgIyMgX3YxNnFpICMjIHMoYSkKKyNlbGlmIFZFQ19TSVpFID09 IDMyCisjIGRlZmluZSBHRihvcCwgcywgYS4uLikgX19idWlsdGluX2lhMzJfdmdmMnA4ICMjIG9w ICMjIF92MzJxaSAjIyBzKGEpCisjZWxpZiBWRUNfU0laRSA9PSA2NAorIyBkZWZpbmUgR0Yob3As IHMsIGEuLi4pIF9fYnVpbHRpbl9pYTMyX3ZnZjJwOCAjIyBvcCAjIyBfdjY0cWkgIyMgcyhhKQor I2VuZGlmCisKKyNpZmRlZiBfX0FWWDUxMkJXX18KKyMgZGVmaW5lIEFMTF9UUlVFICh+MFVMTCA+ PiAoNjQgLSBFTEVNX0NPVU5UKSkKKyMgZGVmaW5lIGVxKHgsIHkpIChCKHBjbXBlcWIsIF9tYXNr LCAodnFpX3QpKHgpLCAodnFpX3QpKHkpLCAtMSkgPT0gQUxMX1RSVUUpCisjIGRlZmluZSBtdWwo eCwgeSkgR0YobXVsYiwgX21hc2ssICh2cWlfdCkoeCksICh2cWlfdCkoeSksICh2cWlfdCl1bmRl ZigpLCB+MCkKKyMgZGVmaW5lIHRyYW5zZm9ybShtLCBkaXIsIHgsIGMpICh7IFwKKyAgICB2ZWNf dCB0XzsgXAorICAgIGFzbSAoICJ2Z2YycDhhZmZpbmUiICNkaXIgInFiICVbaW1tXSwgJVttYXRy aXhdJXsxdG8lY1tuXSV9LCAlW3NyY10sICVbZHN0XSIgXAorICAgICAgICAgIDogW2RzdF0gIj12 IiAodF8pIFwKKyAgICAgICAgICA6IFttYXRyaXhdICJtIiAobSksIFtzcmNdICJ2IiAoeCksIFtp bW1dICJpIiAoYyksIFtuXSAiaSIgKFZFQ19TSVpFIC8gOCkgKTsgXAorICAgIHRfOyBcCit9KQor I2Vsc2UKKyMgaWYgZGVmaW5lZChfX0FWWDJfXykKKyMgIGRlZmluZSBiY3N0cSh4KSAoeyBcCisg ICAgdmRpX3QgdF87IFwKKyAgICBhc20gKCAidnBicm9hZGNhc3RxICUxLCAlMCIgOiAiPXgiICh0 XykgOiAibSIgKHgpICk7IFwKKyAgICB0XzsgXAorfSkKKyMgIGRlZmluZSB0b19ib29sKGNtcCkg QihwdGVzdGMsICwgY21wLCAodmRpX3Qpe30gPT0gMCkKKyMgZWxzZQorIyAgZGVmaW5lIGJjc3Rx KHgpICgodmRpX3Qpe3gsIHh9KQorIyAgZGVmaW5lIHRvX2Jvb2woY21wKSAoX19idWlsdGluX2lh MzJfcG1vdm1za2IxMjgoY21wKSA9PSAweGZmZmYpCisjIGVuZGlmCisjIGRlZmluZSBlcSh4LCB5 KSB0b19ib29sKCh4KSA9PSAoeSkpCisjIGRlZmluZSBtdWwoeCwgeSkgR0YobXVsYiwgLCAodnFp X3QpKHgpLCAodnFpX3QpKHkpKQorIyBkZWZpbmUgdHJhbnNmb3JtKG0sIGRpciwgeCwgYykgKHsg XAorICAgIHZkaV90IG1fID0gYmNzdHEobSk7IFwKKyAgICB0b3VjaChtXyk7IFwKKyAgICAoKHZl Y190KUdGKGFmZmluZSAjIyBkaXIgIyMgcWIsICwgKHZxaV90KSh4KSwgKHZxaV90KW1fLCBjKSk7 IFwKK30pCisjZW5kaWYKKworY29uc3QgdW5zaWduZWQgX19hdHRyaWJ1dGVfXygobW9kZShESSkp KSBpZGVudCA9IDB4MDEwMjA0MDgxMDIwNDA4MFVMTDsKKworaW50IGdmX3Rlc3Qodm9pZCkKK3sK KyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICB2ZWNfdCBzcmMsIG9uZTsKKworICAgIGZvciAoIGkg PSAwOyBpIDwgRUxFTV9DT1VOVDsgKytpICkKKyAgICB7CisgICAgICAgIHNyY1tpXSA9IGk7Cisg ICAgICAgIG9uZVtpXSA9IDE7CisgICAgfQorCisgICAgLyogU3BlY2lhbCBjYXNlIGZvciBmaXJz dCBpdGVyYXRpb24uICovCisgICAgb25lWzBdID0gMDsKKworICAgIGRvIHsKKyAgICAgICAgdmVj X3QgaW52ID0gdHJhbnNmb3JtKGlkZW50LCBpbnYsIHNyYywgMCk7CisKKyAgICAgICAgdG91Y2go c3JjKTsKKyAgICAgICAgdG91Y2goaW52KTsKKyAgICAgICAgaWYgKCAhZXEobXVsKHNyYywgaW52 KSwgb25lKSApIHJldHVybiBfX0xJTkVfXzsKKworICAgICAgICB0b3VjaChzcmMpOworICAgICAg ICB0b3VjaChpbnYpOworICAgICAgICBpZiAoICFlcShtdWwoaW52LCBzcmMpLCBvbmUpICkgcmV0 dXJuIF9fTElORV9fOworCisgICAgICAgIG9uZVswXSA9IDE7CisKKyAgICAgICAgc3JjICs9IEVM RU1fQ09VTlQ7CisgICAgICAgIGkgKz0gRUxFTV9DT1VOVDsKKyAgICB9IHdoaWxlICggaSA8IDI1 NiApOworCisgICAgcmV0dXJuIDA7Cit9Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90 ZXN0X3g4Nl9lbXVsYXRvci5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4 Nl9lbXVsYXRvci5jCkBAIC0xMSwxMiArMTEsMTQgQEAgYXNtICggIi5wdXNoc2VjdGlvbiAudGVz dCwgXCJheFwiLCBAcHJvZwogI2luY2x1ZGUgIjNkbm93LmgiCiAjaW5jbHVkZSAic3NlLmgiCiAj aW5jbHVkZSAic3NlMi5oIgorI2luY2x1ZGUgInNzZTItZ2YuaCIKICNpbmNsdWRlICJzc2U0Lmgi CiAjaW5jbHVkZSAiYXZ4LmgiCiAjaW5jbHVkZSAiZm1hNC5oIgogI2luY2x1ZGUgImZtYS5oIgog I2luY2x1ZGUgImF2eDIuaCIKICNpbmNsdWRlICJhdngyLXNnLmgiCisjaW5jbHVkZSAiYXZ4Mi1n Zi5oIgogI2luY2x1ZGUgInhvcC5oIgogI2luY2x1ZGUgImF2eDUxMmYtb3BtYXNrLmgiCiAjaW5j bHVkZSAiYXZ4NTEyZHEtb3BtYXNrLmgiCkBAIC0yNSw2ICsyNyw3IEBAIGFzbSAoICIucHVzaHNl Y3Rpb24gLnRlc3QsIFwiYXhcIiwgQHByb2cKICNpbmNsdWRlICJhdng1MTJmLXNnLmgiCiAjaW5j bHVkZSAiYXZ4NTEydmwtc2cuaCIKICNpbmNsdWRlICJhdng1MTJidy5oIgorI2luY2x1ZGUgImF2 eDUxMmJ3LWdmLmgiCiAjaW5jbHVkZSAiYXZ4NTEyZHEuaCIKICNpbmNsdWRlICJhdng1MTJlci5o IgogI2luY2x1ZGUgImF2eDUxMnZibWkuaCIKQEAgLTEzOCw2ICsxNDEsMjYgQEAgc3RhdGljIGJv b2wgc2ltZF9jaGVja19hdng1MTJ2Ym1pX3ZsKHZvaQogICAgIHJldHVybiBjcHVfaGFzX2F2eDUx Ml92Ym1pICYmIGNwdV9oYXNfYXZ4NTEydmw7CiB9CiAKK3N0YXRpYyBib29sIHNpbWRfY2hlY2tf c3NlMl9nZih2b2lkKQoreworICAgIHJldHVybiBjcHVfaGFzX2dmbmkgJiYgY3B1X2hhc19zc2Uy OworfQorCitzdGF0aWMgYm9vbCBzaW1kX2NoZWNrX2F2eDJfZ2Yodm9pZCkKK3sKKyAgICByZXR1 cm4gY3B1X2hhc19nZm5pICYmIGNwdV9oYXNfYXZ4MjsKK30KKworc3RhdGljIGJvb2wgc2ltZF9j aGVja19hdng1MTJid19nZih2b2lkKQoreworICAgIHJldHVybiBjcHVfaGFzX2dmbmkgJiYgY3B1 X2hhc19hdng1MTJidzsKK30KKworc3RhdGljIGJvb2wgc2ltZF9jaGVja19hdng1MTJid19nZl92 bCh2b2lkKQoreworICAgIHJldHVybiBjcHVfaGFzX2dmbmkgJiYgY3B1X2hhc19hdng1MTJ2bDsK K30KKwogc3RhdGljIHZvaWQgc2ltZF9zZXRfcmVncyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKIHsKICAgICBpZiAoIGNwdV9oYXNfbW14ICkKQEAgLTM5NSw2ICs0MTgsMTIgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB7CiAgICAgQVZYNTEyVkwoX1ZCTUkrVkwgdTE2eDgsIGF2eDUxMnZibWks ICAgIDE2dTIpLAogICAgIEFWWDUxMlZMKF9WQk1JK1ZMIHMxNngxNiwgYXZ4NTEydmJtaSwgICAz MmkyKSwKICAgICBBVlg1MTJWTChfVkJNSStWTCB1MTZ4MTYsIGF2eDUxMnZibWksICAgMzJ1Miks CisgICAgU0lNRChHRk5JIChsZWdhY3kpLCAgICAgICBzc2UyX2dmLCAgICAgICAgMTYpLAorICAg IFNJTUQoR0ZOSSAoVkVYL3gxNiksICAgICAgYXZ4Ml9nZiwgICAgICAgIDE2KSwKKyAgICBTSU1E KEdGTkkgKFZFWC94MzIpLCAgICAgIGF2eDJfZ2YsICAgICAgICAzMiksCisgICAgU0lNRChHRk5J IChFVkVYL3g2NCksIGF2eDUxMmJ3X2dmLCAgICAgICAgNjQpLAorICAgIEFWWDUxMlZMKFZMK0dG TkkgKHgxNiksIGF2eDUxMmJ3X2dmLCAgICAgIDE2KSwKKyAgICBBVlg1MTJWTChWTCtHRk5JICh4 MzIpLCBhdng1MTJid19nZiwgICAgICAzMiksCiAjdW5kZWYgQVZYNTEyVkxfCiAjdW5kZWYgQVZY NTEyVkwKICN1bmRlZiBTSU1EXwotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IveDg2LWVt dWxhdGUuaAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IveDg2LWVtdWxhdGUuaApAQCAt MTQ0LDYgKzE0NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB4Y3IwX21hc2sodWludDY0X3QgbWEK ICNkZWZpbmUgY3B1X2hhc19hdng1MTJ2bCAgKGNwLmZlYXQuYXZ4NTEydmwgJiYgeGNyMF9tYXNr KDB4ZTYpKQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMl92Ym1pIChjcC5mZWF0LmF2eDUxMl92Ym1p ICYmIHhjcjBfbWFzaygweGU2KSkKICNkZWZpbmUgY3B1X2hhc19hdng1MTJfdmJtaTIgKGNwLmZl YXQuYXZ4NTEyX3ZibWkyICYmIHhjcjBfbWFzaygweGU2KSkKKyNkZWZpbmUgY3B1X2hhc19nZm5p ICAgICAgIGNwLmZlYXQuZ2ZuaQogI2RlZmluZSBjcHVfaGFzX3ZhZXMgICAgICAoY3AuZmVhdC52 YWVzICYmIHhjcjBfbWFzayg2KSkKICNkZWZpbmUgY3B1X2hhc192cGNsbXVscWRxIChjcC5mZWF0 LnZwY2xtdWxxZHEgJiYgeGNyMF9tYXNrKDYpKQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMl92bm5p IChjcC5mZWF0LmF2eDUxMl92bm5pICYmIHhjcjBfbWFzaygweGU2KSkKLS0tIGEveGVuL2FyY2gv eDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlL3g4Nl9lbXVsYXRlLmMKQEAgLTU0MCw2ICs1NDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGV4dDBmMzhfdGFibGUgewogICAgIFsweGNiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFy X3ZleHcsIC5kOHMgPSBkOHNfZHEgfSwKICAgICBbMHhjY10gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9mcCwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHhjZF0gPSB7 IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl92ZXh3LCAuZDhzID0gZDhzX2RxIH0sCisgICAgWzB4 Y2ZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAg ICAgWzB4ZGJdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAudHdvX29wID0gMSB9 LAogICAgIFsweGRjIC4uLiAweGRmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwg LmQ4cyA9IGQ4c192bCB9LAogICAgIFsweGYwXSA9IHsgLnR3b19vcCA9IDEgfSwKQEAgLTYxOSw2 ICs2MjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4dDBmM2FfdGFibGUgewogICAgIFsweDdj IC4uLiAweDdkXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZm91cl9vcCA9IDEg fSwKICAgICBbMHg3ZSAuLi4gMHg3Zl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl9vcGMs IC5mb3VyX29wID0gMSB9LAogICAgIFsweGNjXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfb3RoZXIg fSwKKyAgICBbMHhjZSAuLi4gMHhjZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQs IC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHhkZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tl ZF9pbnQsIC50d29fb3AgPSAxIH0sCiAgICAgWzB4ZjBdID0ge30sCiB9OwpAQCAtMTkyMiw2ICsx OTI0LDcgQEAgc3RhdGljIGJvb2wgdmNwdV9oYXMoCiAjZGVmaW5lIHZjcHVfaGFzX2F2eDUxMnZs KCkgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAzMSwgY3R4dCwgb3BzKQogI2RlZmluZSB2 Y3B1X2hhc19hdng1MTJfdmJtaSgpIHZjcHVfaGFzKCAgICAgICAgIDcsIEVDWCwgIDEsIGN0eHQs IG9wcykKICNkZWZpbmUgdmNwdV9oYXNfYXZ4NTEyX3ZibWkyKCkgdmNwdV9oYXMoICAgICAgICA3 LCBFQ1gsICA2LCBjdHh0LCBvcHMpCisjZGVmaW5lIHZjcHVfaGFzX2dmbmkoKSAgICAgICAgdmNw dV9oYXMoICAgICAgICAgNywgRUNYLCAgOCwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc192 YWVzKCkgICAgICAgIHZjcHVfaGFzKCAgICAgICAgIDcsIEVDWCwgIDksIGN0eHQsIG9wcykKICNk ZWZpbmUgdmNwdV9oYXNfdnBjbG11bHFkcSgpICB2Y3B1X2hhcyggICAgICAgICA3LCBFQ1gsIDEw LCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFzX2F2eDUxMl92bm5pKCkgdmNwdV9oYXMoICAg ICAgICAgNywgRUNYLCAxMSwgY3R4dCwgb3BzKQpAQCAtOTY1Miw2ICs5NjU1LDIxIEBAIHg4Nl9l bXVsYXRlKAogICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJlcik7CiAgICAg ICAgIGdvdG8gc2ltZF96bW1fc2NhbGFyX3NhZTsKIAorICAgIGNhc2UgWDg2RU1VTF9PUENfNjYo MHgwZjM4LCAweGNmKTogICAgICAvKiBnZjJwOG11bGIgeG1tL20xMjgseG1tICovCisgICAgICAg IGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGdmbmkpOworICAgICAgICBnb3RvIHNpbWRfMGYzOF9j b21tb247CisKKyAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmMzgsIDB4Y2YpOiAgLyog dmdmMnA4bXVsYiB7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICAgICAgaG9zdF9h bmRfdmNwdV9tdXN0X2hhdmUoZ2ZuaSk7CisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2 ZXgudywgRVhDX1VEKTsKKyAgICAgICAgZ290byBzaW1kXzBmX2F2eDsKKworICAgIGNhc2UgWDg2 RU1VTF9PUENfRVZFWF82NigweDBmMzgsIDB4Y2YpOiAvKiB2Z2YycDhtdWxiIFt4eXpdbW0vbWVt LFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShn Zm5pKTsKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgudyB8fCBldmV4LmJycywg RVhDX1VEKTsKKyAgICAgICAgZWxlbV9ieXRlcyA9IDE7CisgICAgICAgIGdvdG8gYXZ4NTEyZl9u b19zYWU7CisKICAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmMzgsIDB4ZGMpOiAgLyog dmFlc2VuYyB7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KICAgICBjYXNlIFg4NkVNVUxf T1BDX1ZFWF82NigweDBmMzgsIDB4ZGQpOiAgLyogdmFlc2VuY2xhc3Qge3gseX1tbS9tZW0se3gs eX1tbSx7eCx5fW1tICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjM4LCAweGRl KTogIC8qIHZhZXNkZWMge3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tICovCkBAIC0xMDM5NSw2 ICsxMDQxMywyNCBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgb3BfYnl0ZXMgPSAxNjsKICAgICAg ICAgZ290byBzaW1kXzBmM2FfY29tbW9uOwogCisgICAgY2FzZSBYODZFTVVMX09QQ182NigweDBm M2EsIDB4Y2UpOiAgICAgIC8qIGdmMnA4YWZmaW5lcWIgJGltbTgseG1tL20xMjgseG1tICovCisg ICAgY2FzZSBYODZFTVVMX09QQ182NigweDBmM2EsIDB4Y2YpOiAgICAgIC8qIGdmMnA4YWZmaW5l aW52cWIgJGltbTgseG1tL20xMjgseG1tICovCisgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9o YXZlKGdmbmkpOworICAgICAgICBnb3RvIHNpbWRfMGYzYV9jb21tb247CisKKyAgICBjYXNlIFg4 NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4Y2UpOiAgLyogdmdmMnA4YWZmaW5lcWIgJGltbTgs e3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19WRVhf NjYoMHgwZjNhLCAweGNmKTogIC8qIHZnZjJwOGFmZmluZWludnFiICRpbW04LHt4LHl9bW0vbWVt LHt4LHl9bW0se3gseX1tbSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShnZm5p KTsKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCF2ZXgudywgRVhDX1VEKTsKKyAgICAg ICAgZ290byBzaW1kXzBmX2ltbThfYXZ4OworCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2 KDB4MGYzYSwgMHhjZSk6IC8qIHZnZjJwOGFmZmluZXFiICRpbW04LFt4eXpdbW0vbWVtLFt4eXpd bW0sW3h5el1tbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmM2EsIDB4 Y2YpOiAvKiB2Z2YycDhhZmZpbmVpbnZxYiAkaW1tOCxbeHl6XW1tL21lbSxbeHl6XW1tLFt4eXpd bW17a30gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoZ2ZuaSk7CisgICAgICAg IGdlbmVyYXRlX2V4Y2VwdGlvbl9pZighZXZleC53LCBFWENfVUQpOworICAgICAgICBmYXVsdF9z dXBwcmVzc2lvbiA9IGZhbHNlOworICAgICAgICBnb3RvIGF2eDUxMmZfaW1tOF9ub19zYWU7CisK ICAgICBjYXNlIFg4NkVNVUxfT1BDXzY2KDB4MGYzYSwgMHhkZik6ICAgICAvKiBhZXNrZXlnZW5h c3Npc3QgJGltbTgseG1tL20xMjgseG1tICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYo MHgwZjNhLCAweGRmKTogLyogdmFlc2tleWdlbmFzc2lzdCAkaW1tOCx4bW0vbTEyOCx4bW0gKi8K ICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYWVzbmkpOwotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L2NwdWZlYXR1cmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1 cmUuaApAQCAtMTEyLDYgKzExMiw3IEBACiAvKiBDUFVJRCBsZXZlbCAweDAwMDAwMDA3OjAuZWN4 ICovCiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX3ZibWkgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVB VFVSRV9BVlg1MTJfVkJNSSkKICNkZWZpbmUgY3B1X2hhc19hdng1MTJfdmJtaTIgICAgYm9vdF9j cHVfaGFzKFg4Nl9GRUFUVVJFX0FWWDUxMl9WQk1JMikKKyNkZWZpbmUgY3B1X2hhc19nZm5pICAg ICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0dGTkkpCiAjZGVmaW5lIGNwdV9oYXNf dmFlcyAgICAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9WQUVTKQogI2RlZmluZSBj cHVfaGFzX3ZwY2xtdWxxZHEgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfVlBDTE1VTFFE USkKICNkZWZpbmUgY3B1X2hhc19hdng1MTJfdm5uaSAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFU VVJFX0FWWDUxMl9WTk5JKQotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC14ODYvY3B1ZmVh dHVyZXNldC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0 LmgKQEAgLTIyOSw2ICsyMjksNyBAQCBYRU5fQ1BVRkVBVFVSRShVTUlQLCAgICAgICAgICA2KjMy KyAyKSAvCiBYRU5fQ1BVRkVBVFVSRShQS1UsICAgICAgICAgICA2KjMyKyAzKSAvKkggIFByb3Rl Y3Rpb24gS2V5cyBmb3IgVXNlcnNwYWNlICovCiBYRU5fQ1BVRkVBVFVSRShPU1BLRSwgICAgICAg ICA2KjMyKyA0KSAvKiEgIE9TIFByb3RlY3Rpb24gS2V5cyBFbmFibGUgKi8KIFhFTl9DUFVGRUFU VVJFKEFWWDUxMl9WQk1JMiwgIDYqMzIrIDYpIC8qQSAgQWRkaXRpb25hbCBBVlgtNTEyIFZlY3Rv ciBCeXRlIE1hbmlwdWxhdGlvbiBJbnN0cnMgKi8KK1hFTl9DUFVGRUFUVVJFKEdGTkksICAgICAg ICAgIDYqMzIrIDgpIC8qQSAgR2Fsb2lzIEZpZWxkIEluc3RycyAqLwogWEVOX0NQVUZFQVRVUkUo VkFFUywgICAgICAgICAgNiozMisgOSkgLypBICBWZWN0b3IgQUVTIEluc3RycyAqLwogWEVOX0NQ VUZFQVRVUkUoVlBDTE1VTFFEUSwgICAgNiozMisxMCkgLypBICBWZWN0b3IgQ2FycnktbGVzcyBN dWx0aXBsaWNhdGlvbiBJbnN0cnMgKi8KIFhFTl9DUFVGRUFUVVJFKEFWWDUxMl9WTk5JLCAgIDYq MzIrMTEpIC8qQSAgVmVjdG9yIE5ldXJhbCBOZXR3b3JrIEluc3RycyAqLwotLS0gYS94ZW4vdG9v bHMvZ2VuLWNwdWlkLnB5CisrKyBiL3hlbi90b29scy9nZW4tY3B1aWQucHkKQEAgLTE5Nyw3ICsx OTcsNyBAQCBkZWYgY3J1bmNoX251bWJlcnMoc3RhdGUpOgogICAgICAgICAjICVYTU0gc3VwcG9y dCwgd2l0aG91dCBzcGVjaWZpYyBpbnRlci1kZXBlbmRlbmNpZXMuICBBZGRpdGlvbmFsbHkKICAg ICAgICAgIyBBTUQgaGFzIGEgc3BlY2lhbCBtaXMtYWxpZ25tZW50IHN1Yi1tb2RlLgogICAgICAg ICBTU0U6IFtTU0UyLCBTU0UzLCBTU1NFMywgU1NFNEEsIE1JU0FMSUdOU1NFLAotICAgICAgICAg ICAgICBBRVNOSSwgUENMTVVMUURRLCBTSEFdLAorICAgICAgICAgICAgICBBRVNOSSwgUENMTVVM UURRLCBTSEEsIEdGTkldLAogCiAgICAgICAgICMgU1NFMiB3YXMgcmUtc3BlY2lmaWVkIGFzIGNv cmUgaW5zdHJ1Y3Rpb25zIGZvciA2NGJpdC4KICAgICAgICAgU1NFMjogW0xNXSwKCgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=