From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 109483 invoked by alias); 30 May 2017 14:29:50 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 109459 invoked by uid 89); 30 May 2017 14:29:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=H*c:HHH X-HELO: mga06.intel.com Received: from mga06.intel.com (HELO mga06.intel.com) (134.134.136.31) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 30 May 2017 14:29:48 +0000 Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP; 30 May 2017 07:29:50 -0700 X-ExtLoop1: 1 Received: from irsmsx154.ger.corp.intel.com ([163.33.192.96]) by fmsmga002.fm.intel.com with ESMTP; 30 May 2017 07:29:49 -0700 Received: from irsmsx111.ger.corp.intel.com ([169.254.2.25]) by IRSMSX154.ger.corp.intel.com ([169.254.12.76]) with mapi id 14.03.0319.002; Tue, 30 May 2017 15:29:48 +0100 From: "Peryt, Sebastian" To: "gcc-patches@gcc.gnu.org" CC: Uros Bizjak Subject: [PATCH][x86] Add missing mask intrinsics for MAX[SD,SS] and MIN[SD,SS] Date: Tue, 30 May 2017 14:30:00 -0000 Message-ID: <17623B198193D741876BD81A6E3AE5AD3C54DE85@irsmsx111.ger.corp.intel.com> dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action Content-Type: multipart/mixed; boundary="_002_17623B198193D741876BD81A6E3AE5AD3C54DE85irsmsx111gercor_" MIME-Version: 1.0 X-SW-Source: 2017-05/txt/msg02275.txt.bz2 --_002_17623B198193D741876BD81A6E3AE5AD3C54DE85irsmsx111gercor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1276 Hi, This patch adds missing intrinsics for MAX[SD,SS] and MIN[SD,SS] listed bel= ow: - _mm_mask_max_sd, - _mm_maskz_max_sd, - _mm_mask_max_ss, - _mm_maskz_max_ss, =20 - _mm_mask_min_sd, - _mm_maskz_min_sd, - _mm_mask_min_ss, - _mm_maskz_min_ss. gcc/ * config/i386/avx512fintrin.h (_mm_mask_max_sd, _mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss, _mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss, _mm_maskz_min_ss): New intrinsics. gcc/testsuite/ * gcc.target/i386/avx512f-vmaxsd-1.c (_mm_mask_max_sd, _mm_maskz_max_sd): Test new intrinsics. * gcc.target/i386/avx512f-vmaxsd-2.c (_mm_mask_max_sd, _mm_maskz_max_sd): Test new intrinsics. * gcc.target/i386/avx512f-vmaxss-1.c (_mm_mask_max_ss, _mm_maskz_max_ss): Test new intrinsics. * gcc.target/i386/avx512f-vmaxss-2.c (_mm_mask_max_ss, _mm_maskz_max_ss): Test new intrinsics. * gcc.target/i386/avx512f-vminsd-1.c (_mm_mask_min_sd, _mm_maskz_min_sd): Test new intrinsics. * gcc.target/i386/avx512f-vminsd-2.c (_mm_mask_min_sd, _mm_maskz_min_sd): Test new intrinsics. * gcc.target/i386/avx512f-vminss-1.c (_mm_mask_min_ss, _mm_maskz_min_ss): Test new intrinsics. * gcc.target/i386/avx512f-vminss-2.c (_mm_mask_min_ss, _mm_maskz_min_ss): Test new intrinsics. Is it ok for trunk? Thanks, Sebastian --_002_17623B198193D741876BD81A6E3AE5AD3C54DE85irsmsx111gercor_ Content-Type: application/octet-stream; name="MASK_MAX[SD,SS]_MIN[SD,SS].patch" Content-Description: MASK_MAX[SD,SS]_MIN[SD,SS].patch Content-Disposition: attachment; filename="MASK_MAX[SD,SS]_MIN[SD,SS].patch"; size=16419; creation-date="Tue, 30 May 2017 14:02:03 GMT"; modification-date="Tue, 30 May 2017 12:54:02 GMT" Content-Transfer-Encoding: base64 Content-length: 22257 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9hdng1MTJmaW50cmluLmgg Yi9nY2MvY29uZmlnL2kzODYvYXZ4NTEyZmludHJpbi5oCmluZGV4IGFjYmYz NGYuLjI4N2M4YjggMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9hdng1 MTJmaW50cmluLmgKKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2F2eDUxMmZpbnRy aW4uaApAQCAtMTE4MjMsNiArMTE4MjMsNTIgQEAgX21tNTEyX21hc2t6X21h eF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikK IAkJCQkJCV9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7CiB9CiAKK2V4dGVy biBfX2lubGluZSBfX20xMjhkCitfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitf bW1fbWFza19tYXhfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9f bTEyOGQgX19BLCBfX20xMjhkIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhk KSBfX2J1aWx0aW5faWEzMl9tYXhzZF9tYXNrX3JvdW5kICgoX192MmRmKSBf X0EsCisJCQkJCQkgKF9fdjJkZikgX19CLAorCQkJCQkJIChfX3YyZGYpIF9f VywKKwkJCQkJCSAoX19tbWFzazgpIF9fVSwKKwkJCQkJCSBfTU1fRlJPVU5E X0NVUl9ESVJFQ1RJT04pOworfQorCitleHRlcm4gX19pbmxpbmUgX19tMTI4 ZAorX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX21hc2t6X21heF9zZCAo X19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCit7Cisg IHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfbWF4c2RfbWFza19y b3VuZCAoKF9fdjJkZikgX19BLAorCQkJCQkJIChfX3YyZGYpIF9fQiwKKwkJ CQkJCSAoX192MmRmKQorCQkJCQkJIF9tbV9zZXR6ZXJvX3BkICgpLAorCQkJ CQkJIChfX21tYXNrOCkgX19VLAorCQkJCQkJIF9NTV9GUk9VTkRfQ1VSX0RJ UkVDVElPTik7Cit9CisKK2V4dGVybiBfX2lubGluZSBfX20xMjgKK19fYXR0 cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKK19tbV9tYXNrX21heF9zcyAoX19tMTI4IF9f VywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQorewor ICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfbWF4c3NfbWFza19y b3VuZCAoKF9fdjRzZikgX19BLAorCQkJCQkJKF9fdjRzZikgX19CLAorCQkJ CQkJKF9fdjRzZikgX19XLAorCQkJCQkJKF9fbW1hc2s4KSBfX1UsCisJCQkJ CQlfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOworfQorCitleHRlcm4gX19p bmxpbmUgX19tMTI4CitfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18s IF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1fbWFz a3pfbWF4X3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBf X0IpCit7CisgIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9tYXhz c19tYXNrX3JvdW5kICgoX192NHNmKSBfX0EsCisJCQkJCQkoX192NHNmKSBf X0IsCisJCQkJCQkoX192NHNmKQorCQkJCQkJX21tX3NldHplcm9fcHMgKCks CisJCQkJCQkoX19tbWFzazgpIF9fVSwKKwkJCQkJCV9NTV9GUk9VTkRfQ1VS X0RJUkVDVElPTik7Cit9CisKIGV4dGVybiBfX2lubGluZSBfX201MTJkCiBf X2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCiBfbW01MTJfbWluX3BkIChfX201MTJk IF9fQSwgX19tNTEyZCBfX0IpCkBAIC0xMTg5Myw2ICsxMTkzOSw1MiBAQCBf bW01MTJfbWFza3pfbWluX3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19B LCBfX201MTIgX19CKQogCQkJCQkJX01NX0ZST1VORF9DVVJfRElSRUNUSU9O KTsKIH0KIAorZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQKK19fYXR0cmlidXRl X18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0 aWZpY2lhbF9fKSkKK19tbV9tYXNrX21pbl9zZCAoX19tMTI4ZCBfX1csIF9f bW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQoreworICBy ZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX21pbnNkX21hc2tfcm91 bmQgKChfX3YyZGYpIF9fQSwKKwkJCQkJCSAoX192MmRmKSBfX0IsCisJCQkJ CQkgKF9fdjJkZikgX19XLAorCQkJCQkJIChfX21tYXNrOCkgX19VLAorCQkJ CQkJIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cit9CisKK2V4dGVybiBf X2lubGluZSBfX20xMjhkCitfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5l X18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCitfbW1f bWFza3pfbWluX3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20x MjhkIF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEz Ml9taW5zZF9tYXNrX3JvdW5kICgoX192MmRmKSBfX0EsCisJCQkJCQkgKF9f djJkZikgX19CLAorCQkJCQkJIChfX3YyZGYpCisJCQkJCQkgX21tX3NldHpl cm9fcGQgKCksCisJCQkJCQkgKF9fbW1hc2s4KSBfX1UsCisJCQkJCQkgX01N X0ZST1VORF9DVVJfRElSRUNUSU9OKTsKK30KKworZXh0ZXJuIF9faW5saW5l IF9fbTEyOAorX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQorX21tX21hc2tfbWlu X3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9f bTEyOCBfX0IpCit7CisgIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEz Ml9taW5zc19tYXNrX3JvdW5kICgoX192NHNmKSBfX0EsCisJCQkJCQkoX192 NHNmKSBfX0IsCisJCQkJCQkoX192NHNmKSBfX1csCisJCQkJCQkoX19tbWFz azgpIF9fVSwKKwkJCQkJCV9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cit9 CisKK2V4dGVybiBfX2lubGluZSBfX20xMjgKK19fYXR0cmlidXRlX18gKChf X2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lh bF9fKSkKK19tbV9tYXNrel9taW5fc3MgKF9fbW1hc2s4IF9fVSwgX19tMTI4 IF9fQSwgX19tMTI4IF9fQikKK3sKKyAgcmV0dXJuIChfX20xMjgpIF9fYnVp bHRpbl9pYTMyX21pbnNzX21hc2tfcm91bmQgKChfX3Y0c2YpIF9fQSwKKwkJ CQkJCShfX3Y0c2YpIF9fQiwKKwkJCQkJCShfX3Y0c2YpCisJCQkJCQlfbW1f c2V0emVyb19wcyAoKSwKKwkJCQkJCShfX21tYXNrOCkgX19VLAorCQkJCQkJ X01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKK30KKwogZXh0ZXJuIF9faW5s aW5lIF9fbTUxMmQKIF9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywg X19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIF9tbTUxMl9z Y2FsZWZfcGQgKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYtdm1h eHNkLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUx MmYtdm1heHNkLTEuYwppbmRleCBjMWM4ZjhkLi4xNjFkZTM0IDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZt YXhzZC0xLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv YXZ4NTEyZi12bWF4c2QtMS5jCkBAIC0xLDUgKzEsNyBAQAogLyogeyBkZy1k byBjb21waWxlIH0gKi8KIC8qIHsgZGctb3B0aW9ucyAiLW1hdng1MTJmIC1P MiIgfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz ICJ2bWF4c2RcWyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXHsla1xb MS03XF1cfSg/OlxufFxbIFxcdFxdKyMpIiAgMSB9IH0gKi8KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAidm1heHNkXFsgXFx0XF0r XFteXHtcblxdKiV4bW1cWzAtOVxdK1x7JWtcWzEtN1xdXH1ce3pcfSg/Olxu fFxbIFxcdFxdKyMpIiAgMSB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAidm1heHNkXFsgXFx0XF0rXFteXHtcblxdKlx7 c2FlXH1cW15cblxdKiV4bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAx IH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz ICJ2bWF4c2RcWyBcXHRcXStcW15cblxdKlx7c2FlXH1cW15ce1xuXF0qJXht bVxbMC05XF0rXHsla1xbMS03XF1cfSg/OlxufFxbIFxcdFxdKyMpIiAxIH0g fSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2 bWF4c2RcWyBcXHRcXStcW15cblxdKlx7c2FlXH1cW15ce1xuXF0qJXhtbVxb MC05XF0rXHsla1xbMS03XF1cfVx7elx9KD86XG58XFsgXFx0XF0rIykiIDEg fSB9ICovCkBAIC0xMiw2ICsxNCw4IEBAIHZvbGF0aWxlIF9fbW1hc2s4IG07 CiB2b2lkIGV4dGVybgogYXZ4NTEyZl90ZXN0ICh2b2lkKQogeworICB4MSA9 IF9tbV9tYXNrX21heF9zZCAoeDEsIG0sIHgyLCB4Myk7CisgIHgxID0gX21t X21hc2t6X21heF9zZCAobSwgeDEsIHgyKTsKICAgeDEgPSBfbW1fbWF4X3Jv dW5kX3NkICh4MSwgeDIsIF9NTV9GUk9VTkRfTk9fRVhDKTsKICAgeDEgPSBf bW1fbWFza19tYXhfcm91bmRfc2QgKHgxLCBtLCB4MiwgeDMsICBfTU1fRlJP VU5EX05PX0VYQyk7CiAgIHgxID0gX21tX21hc2t6X21heF9yb3VuZF9zZCAo bSwgeDEsIHgyLCBfTU1fRlJPVU5EX05PX0VYQyk7CmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZtYXhzZC0y LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZt YXhzZC0yLmMKaW5kZXggMjlkYjc3Ny4uZTczMmQ0NCAxMDA2NDQKLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi12bWF4c2Qt Mi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUx MmYtdm1heHNkLTIuYwpAQCAtMjAsNyArMjAsNyBAQCB2b2lkCiBhdng1MTJm X3Rlc3QgKHZvaWQpCiB7CiAgIGludCBpLCBzaWduOwotICB1bmlvbjEyOGQg cmVzMSwgcmVzMiwgcmVzMywgc3JjMSwgc3JjMjsKKyAgdW5pb24xMjhkIHJl czEsIHJlczIsIHJlczMsIHJlczQsIHJlczUsIHNyYzEsIHNyYzI7CiAgIE1B U0tfVFlQRSBtYXNrID0gTUFTS19WQUxVRTsKICAgZG91YmxlIHJlc19yZWZb U0laRV07CiAKQEAgLTI5LDI2ICsyOSwzOCBAQCBhdng1MTJmX3Rlc3QgKHZv aWQpCiAgICAgewogICAgICAgc3JjMS5hW2ldID0gMS41ICsgMzQuNjcgKiBp ICogc2lnbjsKICAgICAgIHNyYzIuYVtpXSA9IC0yMi4xNyAqIGkgKiBzaWdu ICsgMS4wOworICAgICAgcmVzMS5hW2ldID0gREVGQVVMVF9WQUxVRTsKKyAg ICAgIHJlczQuYVtpXSA9IERFRkFVTFRfVkFMVUU7CiAgICAgICBzaWduID0g c2lnbiAqIC0xOwogICAgIH0KLSAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkr KykKLSAgICAgIHJlczIuYVtpXSA9IERFRkFVTFRfVkFMVUU7CiAKLSAgcmVz MS54ID0gX21tX21heF9yb3VuZF9zZCAoc3JjMS54LCBzcmMyLngsIF9NTV9G Uk9VTkRfTk9fRVhDKTsKLSAgcmVzMi54ID0gX21tX21hc2tfbWF4X3JvdW5k X3NkIChyZXMyLngsIG1hc2ssIHNyYzEueCwgc3JjMi54LCBfTU1fRlJPVU5E X05PX0VYQyk7Ci0gIHJlczMueCA9IF9tbV9tYXNrel9tYXhfcm91bmRfc2Qg KG1hc2ssIHNyYzEueCwgc3JjMi54LCBfTU1fRlJPVU5EX05PX0VYQyk7Cisg IHJlczEueCA9IF9tbV9tYXNrX21heF9zZCAocmVzMS54LCBtYXNrLCBzcmMx LngsIHNyYzIueCk7CisgIHJlczIueCA9IF9tbV9tYXNrel9tYXhfc2QgKG1h c2ssIHNyYzEueCwgc3JjMi54KTsKKyAgcmVzMy54ID0gX21tX21heF9yb3Vu ZF9zZCAoc3JjMS54LCBzcmMyLngsIF9NTV9GUk9VTkRfTk9fRVhDKTsKKyAg cmVzNC54ID0gX21tX21hc2tfbWF4X3JvdW5kX3NkIChyZXM0LngsIG1hc2ss IHNyYzEueCwgc3JjMi54LCBfTU1fRlJPVU5EX05PX0VYQyk7CisgIHJlczUu eCA9IF9tbV9tYXNrel9tYXhfcm91bmRfc2QgKG1hc2ssIHNyYzEueCwgc3Jj Mi54LCBfTU1fRlJPVU5EX05PX0VYQyk7CiAKICAgY2FsY19tYXggKHJlc19y ZWYsIHNyYzEuYSwgc3JjMi5hKTsKIAorICBNQVNLX01FUkdFIChkKSAocmVz X3JlZiwgbWFzaywgMSk7CiAgIGlmIChjaGVja191bmlvbjEyOGQgKHJlczEs IHJlc19yZWYpKQorICAgIGFib3J0ICgpOworCisgIE1BU0tfWkVSTyAoZCkg KHJlc19yZWYsIG1hc2ssIDEpOworICBpZiAoY2hlY2tfdW5pb24xMjhkIChy ZXMyLCByZXNfcmVmKSkKKyAgICBhYm9ydCAoKTsKKworICBjYWxjX21heCAo cmVzX3JlZiwgc3JjMS5hLCBzcmMyLmEpOworCisgIGlmIChjaGVja191bmlv bjEyOGQgKHJlczMsIHJlc19yZWYpKQogICAgIGFib3J0KCk7CiAgIAogICBN QVNLX01FUkdFIChkKSAocmVzX3JlZiwgbWFzaywgMSk7Ci0gIGlmIChjaGVj a191bmlvbjEyOGQgKHJlczIsIHJlc19yZWYpKQorICBpZiAoY2hlY2tfdW5p b24xMjhkIChyZXM0LCByZXNfcmVmKSkKICAgICBhYm9ydCAoKTsKIAogICBN QVNLX1pFUk8gKGQpIChyZXNfcmVmLCBtYXNrLCAxKTsKLSAgaWYgKGNoZWNr X3VuaW9uMTI4ZCAocmVzMywgcmVzX3JlZikpCisgIGlmIChjaGVja191bmlv bjEyOGQgKHJlczUsIHJlc19yZWYpKQogICAgIGFib3J0ICgpOwogfQogCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1 MTJmLXZtYXhzcy0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9hdng1MTJmLXZtYXhzcy0xLmMKaW5kZXggZWNkODc1Ny4uNjY4YWZhZCAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4 NTEyZi12bWF4c3MtMS5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L2F2eDUxMmYtdm1heHNzLTEuYwpAQCAtMSw1ICsxLDcgQEAKIC8q IHsgZGctZG8gY29tcGlsZSB9ICovCiAvKiB7IGRnLW9wdGlvbnMgIi1tYXZ4 NTEyZiAtTzIiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyAidm1heHNzXFsgXFx0XF0rXFteXHtcblxdKiV4bW1cWzAtOVxd K1x7JWtcWzEtN1xdXH0oPzpcbnxcWyBcXHRcXSsjKSIgIDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZtYXhzc1xb IFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStceyVrXFsxLTdcXVx9XHt6 XH0oPzpcbnxcWyBcXHRcXSsjKSIgIDEgfSB9ICovCiAvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZtYXhzc1xbIFxcdFxdK1xbXlx7 XG5cXSpce3NhZVx9XFteXG5cXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRc XSsjKSIgMSB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyAidm1heHNzXFsgXFx0XF0rXFteXG5cXSpce3NhZVx9XFteXHtc blxdKiV4bW1cWzAtOVxdK1x7JWtcWzEtN1xdXH0oPzpcbnxcWyBcXHRcXSsj KSIgMSB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyAidm1heHNzXFsgXFx0XF0rXFteXG5cXSpce3NhZVx9XFteXHtcblxd KiV4bW1cWzAtOVxdK1x7JWtcWzEtN1xdXH1ce3pcfSg/OlxufFxbIFxcdFxd KyMpIiAxIH0gfSAqLwpAQCAtMTIsNiArMTQsOCBAQCB2b2xhdGlsZSBfX21t YXNrOCBtOwogdm9pZCBleHRlcm4KIGF2eDUxMmZfdGVzdCAodm9pZCkKIHsK KyAgeDEgPSBfbW1fbWFza19tYXhfc3MgKHgxLCBtLCB4MiwgeDMpOworICB4 MSA9IF9tbV9tYXNrel9tYXhfc3MgKG0sIHgxLCB4Mik7CiAgIHgxID0gX21t X21heF9yb3VuZF9zcyAoeDEsIHgyLCBfTU1fRlJPVU5EX05PX0VYQyk7CiAg IHgxID0gX21tX21hc2tfbWF4X3JvdW5kX3NzICh4MSwgbSwgeDIsIHgzLCBf TU1fRlJPVU5EX05PX0VYQyk7CiAgIHgxID0gX21tX21hc2t6X21heF9yb3Vu ZF9zcyAobSwgeDEsIHgyLCBfTU1fRlJPVU5EX05PX0VYQyk7CmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXZt YXhzcy0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1 MTJmLXZtYXhzcy0yLmMKaW5kZXggMTkzMmE2ZS4uYzYzYTQ1OSAxMDA2NDQK LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi12 bWF4c3MtMi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMmYtdm1heHNzLTIuYwpAQCAtMjQsNyArMjQsNyBAQCB2b2lkCiBh dng1MTJmX3Rlc3QgKHZvaWQpCiB7CiAgIGludCBpLCBzaWduOwotICB1bmlv bjEyOCByZXMxLCByZXMyLCByZXMzLCBzcmMxLCBzcmMyOworICB1bmlvbjEy OCByZXMxLCByZXMyLCByZXMzLCByZXM0LCByZXM1LCBzcmMxLCBzcmMyOwog ICBNQVNLX1RZUEUgbWFzayA9IE1BU0tfVkFMVUU7CiAgIGZsb2F0IHJlc19y ZWZbU0laRV07CiAKQEAgLTMzLDI2ICszMywzOCBAQCBhdng1MTJmX3Rlc3Qg KHZvaWQpCiAgICAgewogICAgICAgc3JjMS5hW2ldID0gMS41ICsgMzQuNjcg KiBpICogc2lnbjsKICAgICAgIHNyYzIuYVtpXSA9IC0yMi4xNyAqIGkgKiBz aWduICsgMS4wOworICAgICAgcmVzMS5hW2ldID0gREVGQVVMVF9WQUxVRTsK KyAgICAgIHJlczQuYVtpXSA9IERFRkFVTFRfVkFMVUU7CiAgICAgICBzaWdu ID0gc2lnbiAqIC0xOwogICAgIH0KLSAgZm9yIChpID0gMDsgaSA8IFNJWkU7 IGkrKykKLSAgICAgIHJlczIuYVtpXSA9IERFRkFVTFRfVkFMVUU7CiAKLSAg cmVzMS54ID0gX21tX21heF9yb3VuZF9zcyAoc3JjMS54LCBzcmMyLngsIF9N TV9GUk9VTkRfTk9fRVhDKTsKLSAgcmVzMi54ID0gX21tX21hc2tfbWF4X3Jv dW5kX3NzIChyZXMyLngsIG1hc2ssIHNyYzEueCwgc3JjMi54LCBfTU1fRlJP VU5EX05PX0VYQyk7Ci0gIHJlczMueCA9IF9tbV9tYXNrel9tYXhfcm91bmRf c3MgKG1hc2ssIHNyYzEueCwgc3JjMi54LCBfTU1fRlJPVU5EX05PX0VYQyk7 CisgIHJlczEueCA9IF9tbV9tYXNrX21heF9zcyAocmVzMS54LCBtYXNrLCBz cmMxLngsIHNyYzIueCk7CisgIHJlczIueCA9IF9tbV9tYXNrel9tYXhfc3Mg KG1hc2ssIHNyYzEueCwgc3JjMi54KTsKKyAgcmVzMy54ID0gX21tX21heF9y b3VuZF9zcyAoc3JjMS54LCBzcmMyLngsIF9NTV9GUk9VTkRfTk9fRVhDKTsK KyAgcmVzNC54ID0gX21tX21hc2tfbWF4X3JvdW5kX3NzIChyZXM0LngsIG1h c2ssIHNyYzEueCwgc3JjMi54LCBfTU1fRlJPVU5EX05PX0VYQyk7CisgIHJl czUueCA9IF9tbV9tYXNrel9tYXhfcm91bmRfc3MgKG1hc2ssIHNyYzEueCwg c3JjMi54LCBfTU1fRlJPVU5EX05PX0VYQyk7CiAKICAgY2FsY19tYXggKHJl c19yZWYsIHNyYzEuYSwgc3JjMi5hKTsKIAorICBNQVNLX01FUkdFICgpIChy ZXNfcmVmLCBtYXNrLCAxKTsKICAgaWYgKGNoZWNrX3VuaW9uMTI4IChyZXMx LCByZXNfcmVmKSkKKyAgICBhYm9ydCAoKTsKKworICBNQVNLX1pFUk8gKCkg KHJlc19yZWYsIG1hc2ssIDEpOworICBpZiAoY2hlY2tfdW5pb24xMjggKHJl czIsIHJlc19yZWYpKQorICAgIGFib3J0ICgpOworCisgIGNhbGNfbWF4IChy ZXNfcmVmLCBzcmMxLmEsIHNyYzIuYSk7CisKKyAgaWYgKGNoZWNrX3VuaW9u MTI4IChyZXMzLCByZXNfcmVmKSkKICAgICBhYm9ydCgpOwogICAKICAgTUFT S19NRVJHRSAoKSAocmVzX3JlZiwgbWFzaywgMSk7Ci0gIGlmIChjaGVja191 bmlvbjEyOCAocmVzMiwgcmVzX3JlZikpCisgIGlmIChjaGVja191bmlvbjEy OCAocmVzNCwgcmVzX3JlZikpCiAgICAgYWJvcnQgKCk7CiAKICAgTUFTS19a RVJPICgpIChyZXNfcmVmLCBtYXNrLCAxKTsKLSAgaWYgKGNoZWNrX3VuaW9u MTI4IChyZXMzLCByZXNfcmVmKSkKKyAgaWYgKGNoZWNrX3VuaW9uMTI4IChy ZXM1LCByZXNfcmVmKSkKICAgICBhYm9ydCAoKTsKIH0KIApkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi12bWlu c2QtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEy Zi12bWluc2QtMS5jCmluZGV4IDIyYWRhODcuLjU4YjIxM2QgMTAwNjQ0Ci0t LSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYtdm1p bnNkLTEuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9h dng1MTJmLXZtaW5zZC0xLmMKQEAgLTEsNSArMSw3IEBACiAvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLwogLyogeyBkZy1vcHRpb25zICItbWF2eDUxMmYgLU8y IiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg InZtaW5zZFxbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStceyVrXFsx LTdcXVx9KD86XG58XFsgXFx0XF0rIykiICAxIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2bWluc2RcWyBcXHRcXStc W15ce1xuXF0qJXhtbVxbMC05XF0rXHsla1xbMS03XF1cfVx7elx9KD86XG58 XFsgXFx0XF0rIykiICAxIH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJ2bWluc2RcWyBcXHRcXStcW15ce1xuXF0qXHtz YWVcfVxbXlxuXF0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEg fSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg InZtaW5zZFxbIFxcdFxdK1xbXlxuXF0qXHtzYWVcfVxbXlx7XG5cXSoleG1t XFswLTlcXStceyVrXFsxLTdcXVx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9 ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZt aW5zZFxbIFxcdFxdK1xbXlxuXF0qXHtzYWVcfVxbXlx7XG5cXSoleG1tXFsw LTlcXStceyVrXFsxLTdcXVx9XHt6XH0oPzpcbnxcWyBcXHRcXSsjKSIgMSB9 IH0gKi8KQEAgLTEyLDYgKzE0LDggQEAgdm9sYXRpbGUgX19tbWFzazggbTsK IHZvaWQgZXh0ZXJuCiBhdng1MTJmX3Rlc3QgKHZvaWQpCiB7CisgIHgxID0g X21tX21hc2tfbWluX3NkICh4MSwgbSwgeDIsIHgzKTsKKyAgeDEgPSBfbW1f bWFza3pfbWluX3NkIChtLCB4MSwgeDIpOwogICB4MSA9IF9tbV9taW5fcm91 bmRfc2QgKHgxLCB4MiwgX01NX0ZST1VORF9OT19FWEMpOwogICB4MSA9IF9t bV9tYXNrX21pbl9yb3VuZF9zZCAoeDEsIG0sIHgyLCB4MywgX01NX0ZST1VO RF9OT19FWEMpOwogICB4MSA9IF9tbV9tYXNrel9taW5fcm91bmRfc2QgKG0s IHgxLCB4MiwgX01NX0ZST1VORF9OT19FWEMpOwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi12bWluc2QtMi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi12bWlu c2QtMi5jCmluZGV4IDc5YTA1MWYuLjQ2NGNlOTYgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYtdm1pbnNkLTIu YworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJm LXZtaW5zZC0yLmMKQEAgLTIwLDcgKzIwLDcgQEAgdm9pZAogYXZ4NTEyZl90 ZXN0ICh2b2lkKQogewogICBpbnQgaSwgc2lnbjsKLSAgdW5pb24xMjhkIHJl czEsIHJlczIsIHJlczMsIHNyYzEsIHNyYzI7CisgIHVuaW9uMTI4ZCByZXMx LCByZXMyLCByZXMzLCByZXM0LCByZXM1LCBzcmMxLCBzcmMyOwogICBNQVNL X1RZUEUgbWFzayA9IE1BU0tfVkFMVUU7CiAgIGRvdWJsZSByZXNfcmVmW1NJ WkVdOwogCkBAIC0yOSwyNiArMjksMzggQEAgYXZ4NTEyZl90ZXN0ICh2b2lk KQogICAgIHsKICAgICAgIHNyYzEuYVtpXSA9IDEuNSArIDM0LjY3ICogaSAq IHNpZ247CiAgICAgICBzcmMyLmFbaV0gPSAtMjIuMTcgKiBpICogc2lnbiAr IDEuMDsKKyAgICAgIHJlczEuYVtpXSA9IERFRkFVTFRfVkFMVUU7CisgICAg ICByZXM0LmFbaV0gPSBERUZBVUxUX1ZBTFVFOwogICAgICAgc2lnbiA9IHNp Z24gKiAtMTsKICAgICB9Ci0gIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKysp Ci0gICAgICByZXMyLmFbaV0gPSBERUZBVUxUX1ZBTFVFOwotCi0gIHJlczEu eCA9IF9tbV9taW5fcm91bmRfc2QgKHNyYzEueCwgc3JjMi54LCBfTU1fRlJP VU5EX05PX0VYQyk7Ci0gIHJlczIueCA9IF9tbV9tYXNrX21pbl9yb3VuZF9z ZCAocmVzMi54LCBtYXNrLCBzcmMxLngsIHNyYzIueCwgX01NX0ZST1VORF9O T19FWEMpOwotICByZXMzLnggPSBfbW1fbWFza3pfbWluX3JvdW5kX3NkICht YXNrLCBzcmMxLngsIHNyYzIueCwgX01NX0ZST1VORF9OT19FWEMpOworIAor ICByZXMxLnggPSBfbW1fbWFza19taW5fc2QgKHJlczEueCwgbWFzaywgc3Jj MS54LCBzcmMyLngpOworICByZXMyLnggPSBfbW1fbWFza3pfbWluX3NkICht YXNrLCBzcmMxLngsIHNyYzIueCk7CisgIHJlczMueCA9IF9tbV9taW5fcm91 bmRfc2QgKHNyYzEueCwgc3JjMi54LCBfTU1fRlJPVU5EX05PX0VYQyk7Cisg IHJlczQueCA9IF9tbV9tYXNrX21pbl9yb3VuZF9zZCAocmVzNC54LCBtYXNr LCBzcmMxLngsIHNyYzIueCwgX01NX0ZST1VORF9OT19FWEMpOworICByZXM1 LnggPSBfbW1fbWFza3pfbWluX3JvdW5kX3NkIChtYXNrLCBzcmMxLngsIHNy YzIueCwgX01NX0ZST1VORF9OT19FWEMpOwogCiAgIGNhbGNfbWluIChyZXNf cmVmLCBzcmMxLmEsIHNyYzIuYSk7CiAKKyAgTUFTS19NRVJHRSAoZCkgKHJl c19yZWYsIG1hc2ssIDEpOwogICBpZiAoY2hlY2tfdW5pb24xMjhkIChyZXMx LCByZXNfcmVmKSkKKyAgICBhYm9ydCAoKTsKKworICBNQVNLX1pFUk8gKGQp IChyZXNfcmVmLCBtYXNrLCAxKTsKKyAgaWYgKGNoZWNrX3VuaW9uMTI4ZCAo cmVzMiwgcmVzX3JlZikpCisgICAgYWJvcnQgKCk7CisKKyAgY2FsY19taW4g KHJlc19yZWYsIHNyYzEuYSwgc3JjMi5hKTsKKworICBpZiAoY2hlY2tfdW5p b24xMjhkIChyZXMzLCByZXNfcmVmKSkKICAgICBhYm9ydCgpOwogICAKICAg TUFTS19NRVJHRSAoZCkgKHJlc19yZWYsIG1hc2ssIDEpOwotICBpZiAoY2hl Y2tfdW5pb24xMjhkIChyZXMyLCByZXNfcmVmKSkKKyAgaWYgKGNoZWNrX3Vu aW9uMTI4ZCAocmVzNCwgcmVzX3JlZikpCiAgICAgYWJvcnQgKCk7CiAKICAg TUFTS19aRVJPIChkKSAocmVzX3JlZiwgbWFzaywgMSk7Ci0gIGlmIChjaGVj a191bmlvbjEyOGQgKHJlczMsIHJlc19yZWYpKQorICBpZiAoY2hlY2tfdW5p b24xMjhkIChyZXM1LCByZXNfcmVmKSkKICAgICBhYm9ydCAoKTsKIH0KIApk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4 NTEyZi12bWluc3MtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYXZ4NTEyZi12bWluc3MtMS5jCmluZGV4IDU3MDNhODguLjdkMjE3NWUg MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2 eDUxMmYtdm1pbnNzLTEuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hdng1MTJmLXZtaW5zcy0xLmMKQEAgLTEsNSArMSw3IEBACiAv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLwogLyogeyBkZy1vcHRpb25zICItbWF2 eDUxMmYgLU8yIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgInZtaW5zc1xbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlc XStceyVrXFsxLTdcXVx9KD86XG58XFsgXFx0XF0rIykiICAxIH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2bWluc3Nc WyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXHsla1xbMS03XF1cfVx7 elx9KD86XG58XFsgXFx0XF0rIykiICAxIH0gfSAqLwogLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2bWluc3NcWyBcXHRcXStcW15c e1xuXF0qXHtzYWVcfVxbXlxuXF0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0 XF0rIykiIDEgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgInZtaW5zc1xbIFxcdFxdK1xbXlxuXF0qXHtzYWVcfVxbXlx7 XG5cXSoleG1tXFswLTlcXStceyVrXFsxLTdcXVx9KD86XG58XFsgXFx0XF0r IykiIDEgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgInZtaW5zc1xbIFxcdFxdK1xbXlxuXF0qXHtzYWVcfVxbXlx7XG5c XSoleG1tXFswLTlcXStceyVrXFsxLTdcXVx9XHt6XH0oPzpcbnxcWyBcXHRc XSsjKSIgMSB9IH0gKi8KQEAgLTEyLDYgKzE0LDggQEAgdm9sYXRpbGUgX19t bWFzazggbTsKIHZvaWQgZXh0ZXJuCiBhdng1MTJmX3Rlc3QgKHZvaWQpCiB7 CisgIHgxID0gX21tX21hc2tfbWluX3NzICh4MSwgbSwgeDIsIHgzKTsKKyAg eDEgPSBfbW1fbWFza3pfbWluX3NzIChtLCB4MSwgeDIpOwogICB4MSA9IF9t bV9taW5fcm91bmRfc3MgKHgxLCB4MiwgX01NX0ZST1VORF9OT19FWEMpOwog ICB4MSA9IF9tbV9tYXNrX21pbl9yb3VuZF9zcyAoeDEsIG0sIHgyLCB4Mywg X01NX0ZST1VORF9OT19FWEMpOwogICB4MSA9IF9tbV9tYXNrel9taW5fcm91 bmRfc3MgKG0sIHgxLCB4MiwgX01NX0ZST1VORF9OT19FWEMpOwpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEyZi12 bWluc3MtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4 NTEyZi12bWluc3MtMi5jCmluZGV4IGFkMWZjYjkuLjM1MWMyNzMgMTAwNjQ0 Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYt dm1pbnNzLTIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9hdng1MTJmLXZtaW5zcy0yLmMKQEAgLTI0LDcgKzI0LDcgQEAgdm9pZAog YXZ4NTEyZl90ZXN0ICh2b2lkKQogewogICBpbnQgaSwgc2lnbjsKLSAgdW5p b24xMjggcmVzMSwgcmVzMiwgcmVzMywgc3JjMSwgc3JjMjsKKyAgdW5pb24x MjggcmVzMSwgcmVzMiwgcmVzMywgcmVzNCwgcmVzNSwgc3JjMSwgc3JjMjsK ICAgTUFTS19UWVBFIG1hc2sgPSBNQVNLX1ZBTFVFOwogICBmbG9hdCByZXNf cmVmW1NJWkVdOwogCkBAIC0zMywyNiArMzMsMzggQEAgYXZ4NTEyZl90ZXN0 ICh2b2lkKQogICAgIHsKICAgICAgIHNyYzEuYVtpXSA9IDEuNSArIDM0LjY3 ICogaSAqIHNpZ247CiAgICAgICBzcmMyLmFbaV0gPSAtMjIuMTcgKiBpICog c2lnbiArIDEuMDsKKyAgICAgIHJlczEuYVtpXSA9IERFRkFVTFRfVkFMVUU7 CisgICAgICByZXM0LmFbaV0gPSBERUZBVUxUX1ZBTFVFOwogICAgICAgc2ln biA9IHNpZ24gKiAtMTsKICAgICB9Ci0gIGZvciAoaSA9IDA7IGkgPCBTSVpF OyBpKyspCi0gICAgICByZXMyLmFbaV0gPSBERUZBVUxUX1ZBTFVFOwogCi0g IHJlczEueCA9IF9tbV9taW5fcm91bmRfc3MgKHNyYzEueCwgc3JjMi54LCBf TU1fRlJPVU5EX05PX0VYQyk7Ci0gIHJlczIueCA9IF9tbV9tYXNrX21pbl9y b3VuZF9zcyAocmVzMi54LCBtYXNrLCBzcmMxLngsIHNyYzIueCwgX01NX0ZS T1VORF9OT19FWEMpOwotICByZXMzLnggPSBfbW1fbWFza3pfbWluX3JvdW5k X3NzIChtYXNrLCBzcmMxLngsIHNyYzIueCwgX01NX0ZST1VORF9OT19FWEMp OworICByZXMxLnggPSBfbW1fbWFza19taW5fc3MgKHJlczEueCwgbWFzaywg c3JjMS54LCBzcmMyLngpOworICByZXMyLnggPSBfbW1fbWFza3pfbWluX3Nz IChtYXNrLCBzcmMxLngsIHNyYzIueCk7CisgIHJlczMueCA9IF9tbV9taW5f cm91bmRfc3MgKHNyYzEueCwgc3JjMi54LCBfTU1fRlJPVU5EX05PX0VYQyk7 CisgIHJlczQueCA9IF9tbV9tYXNrX21pbl9yb3VuZF9zcyAocmVzNC54LCBt YXNrLCBzcmMxLngsIHNyYzIueCwgX01NX0ZST1VORF9OT19FWEMpOworICBy ZXM1LnggPSBfbW1fbWFza3pfbWluX3JvdW5kX3NzIChtYXNrLCBzcmMxLngs IHNyYzIueCwgX01NX0ZST1VORF9OT19FWEMpOwogCiAgIGNhbGNfbWluIChy ZXNfcmVmLCBzcmMxLmEsIHNyYzIuYSk7Ci0KKyAKKyAgTUFTS19NRVJHRSAo KSAocmVzX3JlZiwgbWFzaywgMSk7CiAgIGlmIChjaGVja191bmlvbjEyOCAo cmVzMSwgcmVzX3JlZikpCisgICAgYWJvcnQgKCk7CisKKyAgTUFTS19aRVJP ICgpIChyZXNfcmVmLCBtYXNrLCAxKTsKKyAgaWYgKGNoZWNrX3VuaW9uMTI4 IChyZXMyLCByZXNfcmVmKSkKKyAgICBhYm9ydCAoKTsKKworICBjYWxjX21p biAocmVzX3JlZiwgc3JjMS5hLCBzcmMyLmEpOworCisgIGlmIChjaGVja191 bmlvbjEyOCAocmVzMywgcmVzX3JlZikpCiAgICAgYWJvcnQoKTsKICAgCiAg IE1BU0tfTUVSR0UgKCkgKHJlc19yZWYsIG1hc2ssIDEpOwotICBpZiAoY2hl Y2tfdW5pb24xMjggKHJlczIsIHJlc19yZWYpKQorICBpZiAoY2hlY2tfdW5p b24xMjggKHJlczQsIHJlc19yZWYpKQogICAgIGFib3J0ICgpOwogCiAgIE1B U0tfWkVSTyAoKSAocmVzX3JlZiwgbWFzaywgMSk7Ci0gIGlmIChjaGVja191 bmlvbjEyOCAocmVzMywgcmVzX3JlZikpCisgIGlmIChjaGVja191bmlvbjEy OCAocmVzNSwgcmVzX3JlZikpCiAgICAgYWJvcnQgKCk7CiB9CiAK --_002_17623B198193D741876BD81A6E3AE5AD3C54DE85irsmsx111gercor_--