From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 09/25] x86emul: support XOP insns Date: Thu, 07 Dec 2017 07:04:52 -0700 Message-ID: <5A29589402000078001958F4@prv-mh.provo.novell.com> References: <5A29550C020000780019585B@prv-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.84_2) (envelope-from ) id 1eMwnP-0005fb-Eh for xen-devel@lists.xenproject.org; Thu, 07 Dec 2017 14:05:03 +0000 In-Reply-To: <5A29550C020000780019585B@prv-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 List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoKLS0tIGEvLmdp dGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0yMzAsNiArMjMwLDcgQEAKIHRvb2xzL3Rlc3Rz L3g4Nl9lbXVsYXRvci9zc2UqLltjaF0KIHRvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4 Nl9lbXVsYXRvcgogdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlCit0b29scy90 ZXN0cy94ODZfZW11bGF0b3IveG9wKi5bY2hdCiB0b29scy90ZXN0cy94ZW4tYWNjZXNzL3hlbi1h Y2Nlc3MKIHRvb2xzL3Rlc3RzL3hlbnN0b3JlL3hzLXRlc3QKIHRvb2xzL3Rlc3RzL3JlZ3Jlc3Np b24vaW5zdGFsbGVkLyoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL01ha2VmaWxlCisr KyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZQpAQCAtMTEsNyArMTEsNyBAQCBh bGw6ICQoVEFSR0VUKQogcnVuOiAkKFRBUkdFVCkKIAkuLyQoVEFSR0VUKQogCi1TSU1EIDo9IHNz ZSBzc2UyIHNzZTQgYXZ4IGF2eDIKK1NJTUQgOj0gc3NlIHNzZTIgc3NlNCBhdnggYXZ4MiB4b3AK IEZNQSA6PSBmbWE0IGZtYQogU0cgOj0gYXZ4Mi1zZwogVEVTVENBU0VTIDo9IGJsb3dmaXNoICQo U0lNRCkgJChGTUEpICQoU0cpCkBAIC00NCw2ICs0NCw5IEBAIGF2eDItc2ctdmVjcyA6PSAkKGF2 eDItdmVjcykKIGF2eDItc2ctaWR4cyA6PSA0IDgKIGF2eDItc2ctaW50cyA6PSA0IDgKIGF2eDIt c2ctZmx0cyA6PSA0IDgKK3hvcC12ZWNzIDo9ICQoYXZ4LXZlY3MpCit4b3AtaW50cyA6PSAxIDIg NCA4Cit4b3AtZmx0cyA6PSAkKGF2eC1mbHRzKQogCiAjIEZvciBBVlggYW5kIGxhdGVyLCBoYXZl IHRoZSBjb21waWxlciBhdm9pZCBYTU0wIHRvIHdpZGVuIGNvdmVyYWdlIG9mCiAjIHRoZSBWRVgu dnZ2diBjaGVja3MgaW4gdGhlIGVtdWxhdG9yLgpAQCAtOTgsNiArMTAxLDggQEAgJChhZGRzdWZm aXggLmMsJChTRykpOgogCiAkKGFkZHN1ZmZpeCAubywkKFNJTUQpICQoRk1BKSAkKFNHKSk6IHNp bWQuaAogCit4b3Aubzogc2ltZC1mbWEuYworCiAkKFRBUkdFVCk6IHg4Ni1lbXVsYXRlLm8gdGVz dF94ODZfZW11bGF0b3IubwogCSQoSE9TVENDKSAkKEhPU1RDRkxBR1MpIC1vICRAICReCiAKLS0t IGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYworKysgYi90b29scy90ZXN0cy94ODZf ZW11bGF0b3Ivc2ltZC5jCkBAIC00ODMsNiArNDgzLDg2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBf dG9fYm9vbChieXRlX3ZlY190IGIKICMgIGVuZGlmCiAjIGVuZGlmCiAjZW5kaWYKKyNpZmRlZiBf X1hPUF9fCisjIHVuZGVmIHNlbGVjdAorIyBpZiBWRUNfU0laRSA9PSAxNgorIyAgaWYgSU5UX1NJ WkUgPT0gMiB8fCBJTlRfU0laRSA9PSA0CisjICAgaW5jbHVkZSAic2ltZC1mbWEuYyIKKyMgIGVu ZGlmCisjICBkZWZpbmUgc2VsZWN0KGQsIHgsIHksIG0pIFwKKyAgICAoKihkKSA9ICh2ZWNfdClf X2J1aWx0aW5faWEzMl92cGNtb3YoKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZkaV90KShtKSkp CisjICBpZiBJTlRfU0laRSA9PSAxIHx8IFVJTlRfU0laRSA9PSAxCisjICAgZGVmaW5lIHN3YXAy KHgpICgodmVjX3QpX19idWlsdGluX2lhMzJfdnBwZXJtKCh2cWlfdCkoeCksICh2cWlfdCkoeCks ICh2cWlfdClpbnYgLSAxKSkKKyMgIGVsaWYgSU5UX1NJWkUgPT0gMiB8fCBVSU5UX1NJWkUgPT0g MgorIyAgIGRlZmluZSBzd2FwMih4KSBcCisgICAgKCh2ZWNfdClfX2J1aWx0aW5faWEzMl92cHBl cm0oKHZxaV90KSh4KSwgKHZxaV90KSh4KSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh2cWlfdCkoX19idWlsdGluX2lhMzJfdnByb3R3aSgyICogKHZoaV90KWludiAtIDEs IDgpIHwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDIgKiBp bnYgLSAyKSkpKQorIyAgZWxpZiBGTE9BVF9TSVpFID09IDQKKyMgICBkZWZpbmUgZnJhYyh4KSBf X2J1aWx0aW5faWEzMl92ZnJjenBzKHgpCisjICAgdW5kZWYgc3dhcDIKKyMgICBkZWZpbmUgc3dh cDIoeCkgKHsgXAorICAgIC8qIEJ1Z2d5IGluIGdjYyA3LjEuMCBhbmQgZWFybGllci4gKi8gXAor ICAgIC8qIF9fYnVpbHRpbl9pYTMyX3ZwZXJtaWwycHMoKHZlY190KXt9LCB4LCBfX2J1aWx0aW5f aWEzMl9jdnRwczJkcShpbnYpICsgMywgMCkgKi8gXAorICAgIHZlY190IHRfOyBcCisgICAgYXNt ICggInZwZXJtaWwycHMgJDAsICUzLCAlMiwgJTEsICUwIiA6IFwKKyAgICAgICAgICAiPXgiICh0 XykgOiBcCisgICAgICAgICAgIngiICgodmVjX3Qpe30pLCAibSIgKHgpLCAieCIgKF9fYnVpbHRp bl9pYTMyX2N2dHBzMmRxKGludikgKyAzKSApOyBcCisgICAgdF87IFwKK30pCisjICBlbGlmIEZM T0FUX1NJWkUgPT0gOAorIyAgIGRlZmluZSBmcmFjKHgpIF9fYnVpbHRpbl9pYTMyX3ZmcmN6cGQo eCkKKyMgICB1bmRlZiBzd2FwMgorIyAgIGRlZmluZSBzd2FwMih4KSAoeyBcCisgICAgLyogQnVn Z3kgaW4gZ2NjIDcuMS4wIGFuZCBlYXJsaWVyLiAqLyBcCisgICAgLyogX19idWlsdGluX2lhMzJf dnBlcm1pbDJwZCgodmVjX3Qpe30sIHgsICovIFwKKyAgICAvKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBfX2J1aWx0aW5faWEzMl9wbW92c3hkcTEyOCggKi8gXAorICAgIC8qICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl9jdnRwZDJkcShpbnYpICsgMSkg PDwgMSwgMCkgKi8gXAorICAgIHZkaV90IHNfID0gX19idWlsdGluX2lhMzJfcG1vdnN4ZHExMjgo IFwKKyAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl9jdnRwZDJkcShpbnYpICsgMSkg PDwgMTsgXAorICAgIHZlY190IHRfOyBcCisgICAgYXNtICggInZwZXJtaWwycGQgJDAsICUzLCAl MiwgJTEsICUwIiA6IFwKKyAgICAgICAgICAiPXgiICh0XykgOiAieCIgKCh2ZWNfdCl7fSksICJ4 IiAoeCksICJtIiAoc18pICk7IFwKKyAgICB0XzsgXAorfSkKKyMgIGVuZGlmCisjICBpZiBJTlRf U0laRSA9PSAxCisjICAgZGVmaW5lIGhhZGQoeCwgeSkgKCh2ZWNfdClfX2J1aWx0aW5faWEzMl9w YWNrc3N3YjEyOChfX2J1aWx0aW5faWEzMl92cGhhZGRidygodnFpX3QpKHgpKSwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19idWls dGluX2lhMzJfdnBoYWRkYncoKHZxaV90KSh5KSkpKQorIyAgIGRlZmluZSBoc3ViKHgsIHkpICgo dmVjX3QpX19idWlsdGluX2lhMzJfcGFja3Nzd2IxMjgoX19idWlsdGluX2lhMzJfdnBoc3ViYnco KHZxaV90KSh4KSksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZwaHN1YmJ3KCh2cWlfdCkoeSkpKSkKKyMg IGVsaWYgVUlOVF9TSVpFID09IDEKKyMgICBkZWZpbmUgaGFkZCh4LCB5KSAoKHZlY190KV9fYnVp bHRpbl9pYTMyX3BhY2t1c3diMTI4KF9fYnVpbHRpbl9pYTMyX3ZwaGFkZHVidygodnFpX3QpKHgp KSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX19idWlsdGluX2lhMzJfdnBoYWRkdWJ3KCh2cWlfdCkoeSkpKSkKKyMgIGVsaWYgSU5U X1NJWkUgPT0gMgorIyAgIHVuZGVmIGhhZGQKKyMgICBkZWZpbmUgaGFkZCh4LCB5KSBfX2J1aWx0 aW5faWEzMl9wYWNrc3NkdzEyOChfX2J1aWx0aW5faWEzMl92cGhhZGR3ZCh4KSwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMy X3ZwaGFkZHdkKHkpKQorIyAgIHVuZGVmIGhzdWIKKyMgICBkZWZpbmUgaHN1Yih4LCB5KSBfX2J1 aWx0aW5faWEzMl9wYWNrc3NkdzEyOChfX2J1aWx0aW5faWEzMl92cGhzdWJ3ZCh4KSwgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9p YTMyX3ZwaHN1YndkKHkpKQorIyAgZWxpZiBVSU5UX1NJWkUgPT0gMgorIyAgIHVuZGVmIGhhZGQK KyMgICBkZWZpbmUgaGFkZCh4LCB5KSAoKHZlY190KV9fYnVpbHRpbl9pYTMyX3BhY2t1c2R3MTI4 KF9fYnVpbHRpbl9pYTMyX3ZwaGFkZHV3ZCgodmhpX3QpKHgpKSwgXAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJf dnBoYWRkdXdkKCh2aGlfdCkoeSkpKSkKKyMgICB1bmRlZiBoc3ViCisjICBlbmRpZgorIyBlbGlm IFZFQ19TSVpFID09IDMyCisjICBkZWZpbmUgc2VsZWN0KGQsIHgsIHksIG0pIFwKKyAgICAoKihk KSA9ICh2ZWNfdClfX2J1aWx0aW5faWEzMl92cGNtb3YyNTYoKHZkaV90KSh4KSwgKHZkaV90KSh5 KSwgKHZkaV90KShtKSkpCisjICBpZiBGTE9BVF9TSVpFID09IDQKKyMgICBkZWZpbmUgZnJhYyh4 KSBfX2J1aWx0aW5faWEzMl92ZnJjenBzMjU2KHgpCisjICBlbGlmIEZMT0FUX1NJWkUgPT0gOAor IyAgIGRlZmluZSBmcmFjKHgpIF9fYnVpbHRpbl9pYTMyX3ZmcmN6cGQyNTYoeCkKKyMgIGVuZGlm CisjIGVsaWYgVkVDX1NJWkUgPT0gRkxPQVRfU0laRQorIyAgaWYgVkVDX1NJWkUgPT0gNAorIyAg IGRlZmluZSBmcmFjKHgpIHNjYWxhcl8xb3AoeCwgInZmcmN6c3MgJVtpbl0sICVbb3V0XSIpCisj ICBlbGlmIFZFQ19TSVpFID09IDgKKyMgICBkZWZpbmUgZnJhYyh4KSBzY2FsYXJfMW9wKHgsICJ2 ZnJjenNkICVbaW5dLCAlW291dF0iKQorIyAgZW5kaWYKKyMgZW5kaWYKKyNlbmRpZgogCiBpbnQg c2ltZF90ZXN0KHZvaWQpCiB7CkBAIC01ODgsNiArNjY4LDI5IEBAIGludCBzaW1kX3Rlc3Qodm9p ZCkKICAgICBpZiAoICF0b19ib29sKHkgPT0geikgKSByZXR1cm4gX19MSU5FX187CiAjIGVuZGlm CiAKKyMgaWZkZWYgZnJhYworICAgIHRvdWNoKHNyYyk7CisgICAgeCA9IGZyYWMoc3JjKTsKKyAg ICB0b3VjaChzcmMpOworICAgIGlmICggIXRvX2Jvb2woeCA9PSAwKSApIHJldHVybiBfX0xJTkVf XzsKKworICAgIHggPSAxIC8gKHNyYyArIDEpOworICAgIHRvdWNoKHgpOworICAgIHkgPSBmcmFj KHgpOworICAgIHRvdWNoKHgpOworICAgIGlmICggIXRvX2Jvb2woeCA9PSB5KSApIHJldHVybiBf X0xJTkVfXzsKKyMgZW5kaWYKKworIyBpZiBkZWZpbmVkKHRydW5jKSAmJiBkZWZpbmVkKGZyYWMp CisgICAgeCA9IHNyYyAvIDQ7CisgICAgdG91Y2goeCk7CisgICAgeSA9IHRydW5jKHgpOworICAg IHRvdWNoKHgpOworICAgIHogPSBmcmFjKHgpOworICAgIHRvdWNoKHgpOworICAgIGlmICggIXRv X2Jvb2woeCA9PSB5ICsgeikgKSByZXR1cm4gX19MSU5FX187CisjIGVuZGlmCisKICNlbHNlCiAK ICMgaWYgRUxFTV9TSVpFID4gMQpAQCAtNjg5LDcgKzc5Miw3IEBAIGludCBzaW1kX3Rlc3Qodm9p ZCkKICAgICB5ID0geiA8PCBzaDsKICAgICBpZiAoICF0b19ib29sKHggPT0geSArIHkpICkgcmV0 dXJuIF9fTElORV9fOwogCi0jICBpZiBkZWZpbmVkKF9fQVZYMl9fKSAmJiBFTEVNX1NJWkUgPj0g NAorIyAgaWYgKGRlZmluZWQoX19BVlgyX18pICYmIEVMRU1fU0laRSA+PSA0KSB8fCBkZWZpbmVk KF9fWE9QX18pCiAgICAgdG91Y2goc2gpOwogICAgIHggPSB5ID4+IHNoOwogICAgIGlmICggIXRv X2Jvb2woeCA9PSB6KSApIHJldHVybiBfX0xJTkVfXzsKQEAgLTg4Myw2ICs5ODYsOCBAQCBpbnQg c2ltZF90ZXN0KHZvaWQpCiAjZW5kaWYKIAogI2lmZGVmIGhhZGQKKyMgaWYgKCFkZWZpbmVkKElO VF9TSVpFKSB8fCBJTlRfU0laRSA+IDEgfHwgRUxFTV9DT1VOVCA8IDE2KSAmJiBcCisgICAgICgh ZGVmaW5lZChVSU5UX1NJWkUpIHx8IFVJTlRfU0laRSA+IDEgfHwgRUxFTV9DT1VOVCA8PSAxNikK ICAgICB4ID0gc3JjOwogICAgIGZvciAoIGkgPSBFTEVNX0NPVU5UOyBpID4+PSAxOyApCiAgICAg ewpAQCAtODkwLDYgKzk5NSw3IEBAIGludCBzaW1kX3Rlc3Qodm9pZCkKICAgICAgICAgeCA9IGhh ZGQoKHZlY190KXt9LCB4KTsKICAgICB9CiAgICAgaWYgKCB4W0VMRU1fQ09VTlQgLSAxXSAhPSAo RUxFTV9DT1VOVCAqIChFTEVNX0NPVU5UICsgMSkpIC8gMiApIHJldHVybiBfX0xJTkVfXzsKKyMg ZW5kaWYKIAogIyBpZmRlZiBoc3ViCiAgICAgdG91Y2goc3JjKTsKQEAgLTkwMSw2ICsxMDA3LDkg QEAgaW50IHNpbWRfdGVzdCh2b2lkKQogIyBlbmRpZgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKF9f WE9QX18pICYmIFZFQ19TSVpFID09IDE2ICYmIChJTlRfU0laRSA9PSAyIHx8IElOVF9TSVpFID09 IDQpCisgICAgcmV0dXJuIC1mbWFfdGVzdCgpOworI2VuZGlmCiAKICAgICByZXR1cm4gMDsKIH0K LS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQtZm1hLmMKKysrIGIvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3NpbWQtZm1hLmMKQEAgLTEsNiArMSw4IEBACiAjaW5jbHVkZSAic2lt ZC5oIgogCisjaWZuZGVmIF9fWE9QX18KIEVOVFJZKGZtYV90ZXN0KTsKKyNlbmRpZgogCiAjaWYg VkVDX1NJWkUgPCAxNgogIyBkZWZpbmUgdG9fYm9vbChjbXApICghfihjbXApWzBdKQotLS0gYS90 b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYworKysgYi90b29scy90 ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYwpAQCAtMTMsNiArMTMsNyBAQAog I2luY2x1ZGUgImZtYS5oIgogI2luY2x1ZGUgImF2eDIuaCIKICNpbmNsdWRlICJhdngyLXNnLmgi CisjaW5jbHVkZSAieG9wLmgiCiAKICNkZWZpbmUgdmVyYm9zZSBmYWxzZSAvKiBTd2l0Y2ggdG8g dHJ1ZSBmb3IgZmFyIG1vcmUgbG9nZ2luZy4gKi8KIApAQCAtNjMsNiArNjQsMTEgQEAgc3RhdGlj IGJvb2wgc2ltZF9jaGVja19hdngyKHZvaWQpCiB9CiAjZGVmaW5lIHNpbWRfY2hlY2tfYXZ4Ml9z ZyBzaW1kX2NoZWNrX2F2eDIKIAorc3RhdGljIGJvb2wgc2ltZF9jaGVja194b3Aodm9pZCkKK3sK KyAgICByZXR1cm4gY3B1X2hhc194b3A7Cit9CisKIHN0YXRpYyB2b2lkIHNpbWRfc2V0X3JlZ3Mo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7CiAgICAgaWYgKCBjcHVfaGFzX21teCApCkBA IC0xOTEsNiArMTk3LDIyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIFNJTUQoQVZYMiBT L0cgaTY0WzR4MzJdLCAgYXZ4Ml9zZywgICAgMzJ4NGk4KSwKICAgICBTSU1EKEFWWDIgUy9HIGkz Mls0eDY0XSwgIGF2eDJfc2csICAgIDMyeDhpNCksCiAgICAgU0lNRChBVlgyIFMvRyBpNjRbNHg2 NF0sICBhdngyX3NnLCAgICAzMng4aTgpLAorICAgIFNJTUQoWE9QIDEyOGJpdCBzaW5nbGUsICAg ICAgIHhvcCwgICAgICAxNmY0KSwKKyAgICBTSU1EKFhPUCAyNTZiaXQgc2luZ2xlLCAgICAgICB4 b3AsICAgICAgMzJmNCksCisgICAgU0lNRChYT1AgMTI4Yml0IGRvdWJsZSwgICAgICAgeG9wLCAg ICAgIDE2ZjgpLAorICAgIFNJTUQoWE9QIDI1NmJpdCBkb3VibGUsICAgICAgIHhvcCwgICAgICAz MmY4KSwKKyAgICBTSU1EKFhPUCBzOHgxNiwgICAgICAgICAgICAgICB4b3AsICAgICAgMTZpMSks CisgICAgU0lNRChYT1AgdTh4MTYsICAgICAgICAgICAgICAgeG9wLCAgICAgIDE2dTEpLAorICAg IFNJTUQoWE9QIHMxNng4LCAgICAgICAgICAgICAgIHhvcCwgICAgICAxNmkyKSwKKyAgICBTSU1E KFhPUCB1MTZ4OCwgICAgICAgICAgICAgICB4b3AsICAgICAgMTZ1MiksCisgICAgU0lNRChYT1Ag czMyeDQsICAgICAgICAgICAgICAgeG9wLCAgICAgIDE2aTQpLAorICAgIFNJTUQoWE9QIHUzMng0 LCAgICAgICAgICAgICAgIHhvcCwgICAgICAxNnU0KSwKKyAgICBTSU1EKFhPUCBzNjR4MiwgICAg ICAgICAgICAgICB4b3AsICAgICAgMTZpOCksCisgICAgU0lNRChYT1AgdTY0eDIsICAgICAgICAg ICAgICAgeG9wLCAgICAgIDE2dTgpLAorICAgIFNJTUQoWE9QIGk4eDMyLCAgICAgICAgICAgICAg IHhvcCwgICAgICAzMmkxKSwKKyAgICBTSU1EKFhPUCBpMTZ4MTYsICAgICAgICAgICAgICB4b3As ICAgICAgMzJpMiksCisgICAgU0lNRChYT1AgaTMyeDgsICAgICAgICAgICAgICAgeG9wLCAgICAg IDMyaTQpLAorICAgIFNJTUQoWE9QIGk2NHg0LCAgICAgICAgICAgICAgIHhvcCwgICAgICAzMmk4 KSwKICN1bmRlZiBTSU1EXwogI3VuZGVmIFNJTUQKIH07Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9l bXVsYXRvci94ODYtZW11bGF0ZS5oCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODYt ZW11bGF0ZS5oCkBAIC0xNzcsNiArMTc3LDE2IEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3QgeGdl dGJ2KHVpbnQzMl90IHgKICAgICAocmVzLmMgJiAoMVUgPDwgNikpICE9IDA7IFwKIH0pCiAKKyNk ZWZpbmUgY3B1X2hhc194b3AgKHsgXAorICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJlczsgXAorICAg IGVtdWxfdGVzdF9jcHVpZCgxLCAwLCAmcmVzLCBOVUxMKTsgXAorICAgIGlmICggIShyZXMuYyAm ICgxVSA8PCAyNykpIHx8ICgoeGdldGJ2KDApICYgNikgIT0gNikgKSBcCisgICAgICAgIHJlcy5j ID0gMDsgXAorICAgIGVsc2UgXAorICAgICAgICBlbXVsX3Rlc3RfY3B1aWQoMHg4MDAwMDAwMSwg MCwgJnJlcywgTlVMTCk7IFwKKyAgICAocmVzLmMgJiAoMVUgPDwgMTEpKSAhPSAwOyBcCit9KQor CiAjZGVmaW5lIGNwdV9oYXNfZm1hNCAoeyBcCiAgICAgc3RydWN0IGNwdWlkX2xlYWYgcmVzOyBc CiAgICAgZW11bF90ZXN0X2NwdWlkKDEsIDAsICZyZXMsIE5VTEwpOyBcCi0tLSBhL3hlbi9hcmNo L3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC00MzUsNiArNDM1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCB7CiAgICAgWzB4NDJdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiAgICAg WzB4NDRdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiAgICAgWzB4NDZdID0g eyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4NDggLi4uIDB4NDldID0g eyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfZnAsIC5mb3VyX29wID0gMSB9LAogICAgIFsweDRh IC4uLiAweDRiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZm91cl9vcCA9IDEg fSwKICAgICBbMHg0Y10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5mb3VyX29w ID0gMSB9LAogICAgIFsweDVjIC4uLiAweDVmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2Vk X2ZwLCAuZm91cl9vcCA9IDEgfSwKQEAgLTQ2Myw2ICs0NjQsMTcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCB7CiAgICAgdWludDhfdCB0d29fb3A6MTsKICAgICB1aW50OF90IGZvdXJfb3A6MTsKIH0g ZXh0OGYwOF90YWJsZVsyNTZdID0geworICAgIFsweGEyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf cGFja2VkX2ludCwgLmZvdXJfb3AgPSAxIH0sCisgICAgWzB4ODUgLi4uIDB4ODddID0geyAuc2lt ZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZm91cl9vcCA9IDEgfSwKKyAgICBbMHg4ZSAuLi4g MHg4Zl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5mb3VyX29wID0gMSB9LAor ICAgIFsweDk1IC4uLiAweDk3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmZv dXJfb3AgPSAxIH0sCisgICAgWzB4OWUgLi4uIDB4OWZdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfaW50LCAuZm91cl9vcCA9IDEgfSwKKyAgICBbMHhhM10gPSB7IC5zaW1kX3NpemUgPSBz aW1kX3BhY2tlZF9pbnQsIC5mb3VyX29wID0gMSB9LAorICAgIFsweGE2XSA9IHsgLnNpbWRfc2l6 ZSA9IHNpbWRfcGFja2VkX2ludCwgLmZvdXJfb3AgPSAxIH0sCisgICAgWzB4YjZdID0geyAuc2lt ZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZm91cl9vcCA9IDEgfSwKKyAgICBbMHhjMCAuLi4g MHhjM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCisg ICAgWzB4Y2MgLi4uIDB4Y2ZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisg ICAgWzB4ZWMgLi4uIDB4ZWZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiB9 OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHsKQEAgLTQ3MCw2ICs0ODIsMTYgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB7CiAgICAgdWludDhfdCB0d29fb3A6MTsKIH0gZXh0OGYwOV90YWJsZVsyNTZd ID0gewogICAgIFsweDAxIC4uLiAweDAyXSA9IHsgLnR3b19vcCA9IDEgfSwKKyAgICBbMHg4MCAu Li4gMHg4MV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEgfSwK KyAgICBbMHg4MiAuLi4gMHg4M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl9mcCwgLnR3 b19vcCA9IDEgfSwKKyAgICBbMHg5MCAuLi4gMHg5Yl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3Bh Y2tlZF9pbnQgfSwKKyAgICBbMHhjMSAuLi4gMHhjM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3Bh Y2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCisgICAgWzB4YzYgLi4uIDB4YzddID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50LCAudHdvX29wID0gMSB9LAorICAgIFsweGNiXSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKKyAgICBbMHhkMSAuLi4g MHhkM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCisg ICAgWzB4ZDYgLi4uIDB4ZDddID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAudHdv X29wID0gMSB9LAorICAgIFsweGRiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwg LnR3b19vcCA9IDEgfSwKKyAgICBbMHhlMSAuLi4gMHhlM10gPSB7IC5zaW1kX3NpemUgPSBzaW1k X3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCiB9OwogCiAjZGVmaW5lIFJFWF9QUkVGSVggMHg0 MApAQCAtNTI4LDcgKzU1MCw3IEBAIHVuaW9uIHZleCB7CiAjZGVmaW5lIGNvcHlfVkVYKHB0ciwg dmV4KSAoeyBcCiAgICAgaWYgKCAhbW9kZV82NGJpdCgpICkgXAogICAgICAgICAodmV4KS5yZWcg fD0gODsgXAotICAgIChwdHIpWzAgLSBQRlhfQllURVNdID0gMHhjNDsgXAorICAgIChwdHIpWzAg LSBQRlhfQllURVNdID0gZXh0IDwgZXh0XzhmMDggPyAweGM0IDogMHg4ZjsgXAogICAgIChwdHIp WzEgLSBQRlhfQllURVNdID0gKHZleCkucmF3WzBdOyBcCiAgICAgKHB0cilbMiAtIFBGWF9CWVRF U10gPSAodmV4KS5yYXdbMV07IFwKICAgICBjb250YWluZXJfb2YoKHB0cikgKyAxIC0gUEZYX0JZ VEVTLCB0eXBlb2YodmV4KSwgcmF3WzBdKTsgXApAQCAtMTY1NCw2ICsxNjc2LDcgQEAgc3RhdGlj IGJvb2wgdmNwdV9oYXMoCiAjZGVmaW5lIHZjcHVfaGFzX2x6Y250KCkgICAgICAgdmNwdV9oYXMo MHg4MDAwMDAwMSwgRUNYLCAgNSwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19zc2U0YSgp ICAgICAgIHZjcHVfaGFzKDB4ODAwMDAwMDEsIEVDWCwgIDYsIGN0eHQsIG9wcykKICNkZWZpbmUg dmNwdV9oYXNfbWlzYWxpZ25zc2UoKSB2Y3B1X2hhcygweDgwMDAwMDAxLCBFQ1gsICA3LCBjdHh0 LCBvcHMpCisjZGVmaW5lIHZjcHVfaGFzX3hvcCgpICAgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAw MSwgRUNYLCAxMiwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19mbWE0KCkgICAgICAgIHZj cHVfaGFzKDB4ODAwMDAwMDEsIEVDWCwgMTYsIGN0eHQsIG9wcykKICNkZWZpbmUgdmNwdV9oYXNf dGJtKCkgICAgICAgICB2Y3B1X2hhcygweDgwMDAwMDAxLCBFQ1gsIDIxLCBjdHh0LCBvcHMpCiAj ZGVmaW5lIHZjcHVfaGFzX2JtaTEoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAg MywgY3R4dCwgb3BzKQpAQCAtMjk5NCw5ICszMDE3LDE5IEBAIHg4Nl9kZWNvZGUoCiAgICAgY2Fz ZSBzaW1kX3BhY2tlZF9pbnQ6CiAgICAgICAgIHN3aXRjaCAoIHZleC5wZnggKQogICAgICAgICB7 Ci0gICAgICAgIGNhc2UgdmV4X25vbmU6IG9wX2J5dGVzID0gODsgICAgICAgICAgIGJyZWFrOwot ICAgICAgICBjYXNlIHZleF82NjogICBvcF9ieXRlcyA9IDE2IDw8IHZleC5sOyBicmVhazsKLSAg ICAgICAgZGVmYXVsdDogICAgICAgb3BfYnl0ZXMgPSAwOyAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIGNhc2UgdmV4X25vbmU6CisgICAgICAgICAgICBpZiAoICF2ZXgub3BjeCApCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgb3BfYnl0ZXMgPSA4OworICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAg ICAgIGNhc2UgdmV4XzY2OgorICAgICAgICAgICAgb3BfYnl0ZXMgPSAxNiA8PCB2ZXgubDsKKyAg ICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgb3BfYnl0ZXMg PSAwOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKQEAg LTgwMjcsNiArODA2MCwxMyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0 aW9uX2lmKHZleC53LCBFWENfVUQpOwogICAgICAgICBnb3RvIHNpbWRfMGZfaW1tOF9hdng7CiAK KyAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4NDgpOiAvKiB2cGVybWlsMnBz ICRpbW0se3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2cGVybWlsMnBzICRpbW0se3gseX1t bSx7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1ZF WF82NigweDBmM2EsIDB4NDkpOiAvKiB2cGVybWlsMnBkICRpbW0se3gseX1tbS9tZW0se3gseX1t bSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiB2cGVybWlsMnBkICRpbW0se3gseX1tbSx7eCx5fW1tL21lbSx7eCx5fW1tLHt4 LHl9bW0gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoeG9wKTsKKyAgICAgICAg Z290byBzaW1kXzBmX2ltbThfeW1tOworCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgw ZjNhLCAweDRjKTogLyogdnBibGVuZHZiIHt4LHl9bW0se3gseX1tbS9tZW0se3gseX1tbSx7eCx5 fW1tICovCiAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgudywgRVhDX1VEKTsKICAg ICAgICAgZ290byBzaW1kXzBmX2ludF9pbW04OwpAQCAtODE2NCw2ICs4MjA0LDQxIEBAIHg4Nl9l bXVsYXRlKAogICAgICAgICAgICAgYXNtICggInJvcmwgJWIxLCVrMCIgOiAiPWciIChkc3QudmFs KSA6ICJjIiAoaW1tMSksICIwIiAoc3JjLnZhbCkgKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBj YXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwgMHg4NSk6IC8qIHZwbWFjc3N3dyB4bW0seG1tL20xMjgs eG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweDg2KTogLyogdnBtYWNz c3dkIHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDgs IDB4ODcpOiAvKiB2cG1hY3NzZHFsIHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2FzZSBY ODZFTVVMX09QQ19YT1AoMDgsIDB4OGUpOiAvKiB2cG1hY3NzZGQgeG1tLHhtbS9tMTI4LHhtbSx4 bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwgMHg4Zik6IC8qIHZwbWFjc3NkcWgg eG1tLHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwgMHg5 NSk6IC8qIHZwbWFjc3d3IHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVM X09QQ19YT1AoMDgsIDB4OTYpOiAvKiB2cG1hY3N3ZCB4bW0seG1tL20xMjgseG1tLHhtbSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweDk3KTogLyogdnBtYWNzZHFsIHhtbSx4bW0v bTEyOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4OWUpOiAvKiB2 cG1hY3NkZCB4bW0seG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9Q KDA4LCAweDlmKTogLyogdnBtYWNzZHFoIHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2Fz ZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4YTYpOiAvKiB2cG1hZGNzc3dkIHhtbSx4bW0vbTEyOCx4 bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4YjYpOiAvKiB2cG1hZGNz d2QgeG1tLHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwg MHhjMCk6IC8qIHZwcm90YiAkaW1tLHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9P UENfWE9QKDA4LCAweGMxKTogLyogdnByb3R3ICRpbW0seG1tL20xMjgseG1tICovCisgICAgY2Fz ZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4YzIpOiAvKiB2cHJvdGQgJGltbSx4bW0vbTEyOCx4bW0g Ki8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwgMHhjMyk6IC8qIHZwcm90cSAkaW1tLHht bS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGNjKTogLyogdnBj b21iICRpbW0seG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4 LCAweGNkKTogLyogdnBjb213ICRpbW0seG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2 RU1VTF9PUENfWE9QKDA4LCAweGNlKTogLyogdnBjb21kICRpbW0seG1tL20xMjgseG1tLHhtbSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGNmKTogLyogdnBjb21xICRpbW0seG1t L20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGVjKTogLyog dnBjb211YiAkaW1tLHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hP UCgwOCwgMHhlZCk6IC8qIHZwY29tdXcgJGltbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2Fz ZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4ZWUpOiAvKiB2cGNvbXVkICRpbW0seG1tL20xMjgseG1t LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGVmKTogLyogdnBjb211cSAk aW1tLHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZl eC53LCBFWENfVUQpOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFg4NkVN VUxfT1BDX1hPUCgwOCwgMHhhMyk6IC8qIHZwcGVybSB4bW0vbTEyOCx4bW0seG1tLHhtbSAqLwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdnBwZXJtIHhtbSx4bW0vbTEy OCx4bW0seG1tICovCisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgubCwgRVhDX1VE KTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1Ao MDgsIDB4YTIpOiAvKiB2cGNtb3Yge3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tLHt4LHl9bW0g Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwY21vdiB7eCx5fW1t LHt4LHl9bW0vbWVtLHt4LHl9bW0se3gseX1tbSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211 c3RfaGF2ZSh4b3ApOworICAgICAgICBnb3RvIHNpbWRfMGZfaW1tOF95bW07CisKICAgICBjYXNl IFg4NkVNVUxfT1BDX1hPUCgwOSwgMHgwMSk6IC8qIFhPUCBHcnAxICovCiAgICAgICAgIHN3aXRj aCAoIG1vZHJtX3JlZyAmIDcgKQogICAgICAgICB7CkBAIC04MjEzLDYgKzgyODgsNjEgQEAgeDg2 X2VtdWxhdGUoCiAgICAgICAgIH0KICAgICAgICAgZ290byB1bnJlY29nbml6ZWRfaW5zbjsKIAor ICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweDgyKTogLyogdmZyY3pzcyB4bW0vbTEyOCx4 bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHg4Myk6IC8qIHZmcmN6c2QgeG1t L20xMjgseG1tICovCisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgubCwgRVhDX1VE KTsKKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1Ao MDksIDB4ODApOiAvKiB2ZnJjenBzIHt4LHl9bW0vbWVtLHt4LHl9bW0gKi8KKyAgICBjYXNlIFg4 NkVNVUxfT1BDX1hPUCgwOSwgMHg4MSk6IC8qIHZmcmN6cGQge3gseX1tbS9tZW0se3gseX1tbSAq LworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZSh4b3ApOworICAgICAgICBnZW5lcmF0 ZV9leGNlcHRpb25faWYodmV4LncsIEVYQ19VRCk7CisgICAgICAgIGdvdG8gc2ltZF8wZl95bW07 CisKKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhjMSk6IC8qIHZwaGFkZGJ3IHhtbS9t MTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweGMyKTogLyogdnBoYWRk YmQgeG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4YzMpOiAv KiB2cGhhZGRicSB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwg MHhjNik6IC8qIHZwaGFkZHdkIHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENf WE9QKDA5LCAweGM3KTogLyogdnBoYWRkd3EgeG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZF TVVMX09QQ19YT1AoMDksIDB4Y2IpOiAvKiB2cGhhZGRkcSB4bW0vbTEyOCx4bW0gKi8KKyAgICBj YXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkMSk6IC8qIHZwaGFkZHVidyB4bW0vbTEyOCx4bW0g Ki8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkMik6IC8qIHZwaGFkZHViZCB4bW0v bTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkMyk6IC8qIHZwaGFk ZHVicSB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkNik6 IC8qIHZwaGFkZHV3ZCB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgw OSwgMHhkNyk6IC8qIHZwaGFkZHV3cSB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxf T1BDX1hPUCgwOSwgMHhkYik6IC8qIHZwaGFkZHVkcSB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNl IFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhlMik6IC8qIHZwaHN1YndkIHhtbS9tMTI4LHhtbSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweGUzKTogLyogdnBoc3ViZHEgeG1tL20xMjgs eG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4ZTEpOiAvKiB2cGhzdWJidyB4 bW0vbTEyOCx4bW0gKi8KKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC53LCBFWENf VUQpOworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hP UCgwOSwgMHg5MCk6IC8qIHZwcm90YiB4bW0vbTEyOCx4bW0seG1tICovCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiB2cHJvdGIgeG1tLHhtbS9tMTI4LHhtbSAqLworICAg IGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweDkxKTogLyogdnByb3R3IHhtbS9tMTI4LHhtbSx4 bW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwcm90dyB4bW0s eG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4OTIpOiAvKiB2 cHJvdGQgeG1tL20xMjgseG1tLHhtbSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogdnByb3RkIHhtbSx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BD X1hPUCgwOSwgMHg5Myk6IC8qIHZwcm90cSB4bW0vbTEyOCx4bW0seG1tICovCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2cHJvdHEgeG1tLHhtbS9tMTI4LHhtbSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweDk0KTogLyogdnBzaGxiIHhtbS9tMTI4LHht bSx4bW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwc2hsYiB4 bW0seG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4OTUpOiAv KiB2cHNobHcgeG1tL20xMjgseG1tLHhtbSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogdnBzaGx3IHhtbSx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxf T1BDX1hPUCgwOSwgMHg5Nik6IC8qIHZwc2hsZCB4bW0vbTEyOCx4bW0seG1tICovCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2cHNobGQgeG1tLHhtbS9tMTI4LHhtbSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweDk3KTogLyogdnBzaGxxIHhtbS9tMTI4 LHhtbSx4bW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwc2hs cSB4bW0seG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4OTgp OiAvKiB2cHNoYWIgeG1tL20xMjgseG1tLHhtbSAqLworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogdnBzaGFiIHhtbSx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVN VUxfT1BDX1hPUCgwOSwgMHg5OSk6IC8qIHZwc2hhdyB4bW0vbTEyOCx4bW0seG1tICovCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2cHNoYXcgeG1tLHhtbS9tMTI4LHht bSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweDlhKTogLyogdnBzaGFkIHhtbS9t MTI4LHhtbSx4bW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZw c2hhZCB4bW0seG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4 OWIpOiAvKiB2cHNoYXEgeG1tL20xMjgseG1tLHhtbSAqLworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogdnBzaGFxIHhtbSx4bW0vbTEyOCx4bW0gKi8KKyAgICAgICAgZ2Vu ZXJhdGVfZXhjZXB0aW9uX2lmKHZleC5sLCBFWENfVUQpOworICAgICAgICBob3N0X2FuZF92Y3B1 X211c3RfaGF2ZSh4b3ApOworICAgICAgICBnb3RvIHNpbWRfMGZfeW1tOworCiAgICAgY2FzZSBY ODZFTVVMX09QQ19YT1AoMGEsIDB4MTApOiAvKiBiZXh0ciBpbW0sci9tLHIgKi8KICAgICB7CiAg ICAgICAgIHVpbnQ4X3QgKmJ1ZiA9IGdldF9zdHViKHN0dWIpOwotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2NwdWZlYXR1cmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUu aApAQCAtNzYsNiArNzYsNyBAQAogI2RlZmluZSBjcHVfaGFzX2NtcF9sZWdhY3kgICAgICBib290 X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ01QX0xFR0FDWSkKICNkZWZpbmUgY3B1X2hhc19zdm0gICAg ICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NWTSkKICNkZWZpbmUgY3B1X2hhc19z c2U0YSAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NTRTRBKQorI2RlZmluZSBj cHVfaGFzX3hvcCAgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfWE9QKQogI2Rl ZmluZSBjcHVfaGFzX2x3cCAgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTFdQ KQogI2RlZmluZSBjcHVfaGFzX2ZtYTQgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRV UkVfRk1BNCkKICNkZWZpbmUgY3B1X2hhc190Ym0gICAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4 Nl9GRUFUVVJFX1RCTSkKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVj dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1k ZXZlbA==