From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id 53E2B384D6F3 for ; Tue, 13 Dec 2022 16:12:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 53E2B384D6F3 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.96,241,1665475200"; d="diff'?scan'208";a="89539052" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 13 Dec 2022 08:12:29 -0800 IronPort-SDR: 2U9kbGP1HWGst5fd4uyXV01n/CnXGmLv00C/TCGPdudtHu2FZgsX8B1Df8uWSep6AVB7cj48jI Mq0XO2Y9j2cijFPBHPqepvLNu6mlrULWSOrgqR8FIP9LWH4m6cIqngkgIaqfVmkca0C29kQ5Q0 9NW7A7tf1RBtUrKepOXPAtg1W1gTirvoqhDkWBnWAIk64UETYHNQ3O5wfchiISBBwoYHyprP2A UMwMHs+gx6daJr5icDu/IrEKszr+GEXH+WzrHG0kw5BbVJR1ZVt1BleK7rWNDtPdRU3jbzDrtl 0To= Content-Type: multipart/mixed; boundary="------------UBpZo8NPWDTq03rnpr6byGw3" Message-ID: <0ff30ea1-ee5f-7f10-dcbc-bea85e2bfa81@codesourcery.com> Date: Tue, 13 Dec 2022 17:12:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 From: Marcel Vollweiler Subject: [OG12][committed] OpenMP, libgomp: Handle unified shared memory in omp_target_is_accessible. To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------UBpZo8NPWDTq03rnpr6byGw3 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This patch handles Unified Shared Memory (USM) in the OpenMP runtime routin= e omp_target_is_accessible implementation. A previous patch was submitted some months ago (https://gcc.gnu.org/pipermail/gcc-patches/2022-May/594187.html) but not ye= t reviewed due to dependencies on the Unified Shared Memory implementation. Although USM is not yet in mainline, the corresponding patches were already committed to OG12. I rebased, updated, and committed my patch to OG12 (devel/omp/gcc-12 branch). I tested the patch with nvptx offloading (x86_64-linux and PowerPC) without regressions. Since USM is not supported for all gcn targets, I tested gcn w= ith offloading for x86_64-linux on various targets (gfx90a, gfx908, gfx906, gfx= 803) - also without regressions. Marcel ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------UBpZo8NPWDTq03rnpr6byGw3 Content-Type: text/plain; charset="UTF-8"; name="target-is-accessible-with-usm.diff" Content-Disposition: attachment; filename="target-is-accessible-with-usm.diff" Content-Transfer-Encoding: base64 Y29tbWl0IDkwNDRiN2VmYjM1MThkZTE4MGE1YjMxNjg2MTViN2UxMmQ5M2VlYTgKQXV0aG9y OiBNYXJjZWwgVm9sbHdlaWxlciA8bWFyY2VsQGNvZGVzb3VyY2VyeS5jb20+CkRhdGU6ICAg VHVlIERlYyAxMyAxMjowNDo0OCAyMDIyICswMDAwCgogICAgT3Blbk1QLCBsaWJnb21wOiBI YW5kbGUgdW5pZmllZCBzaGFyZWQgbWVtb3J5IGluIG9tcF90YXJnZXRfaXNfYWNjZXNzaWJs ZQogICAgCiAgICBUaGlzIHBhdGNoIGhhbmRsZXMgVW5pZmllZCBTaGFyZWQgTWVtb3J5IChV U00pIGluIHRoZSBPcGVuTVAgcnVudGltZSByb3V0aW5lCiAgICBvbXBfdGFyZ2V0X2lzX2Fj Y2Vzc2libGUuCiAgICAKICAgIGxpYmdvbXAvQ2hhbmdlTG9nOgogICAgCiAgICAJKiB0YXJn ZXQuYyAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlKTogSGFuZGxlIHVuaWZpZWQgc2hhcmVk IG1lbW9yeS4KICAgIAkqIHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQt aXMtYWNjZXNzaWJsZS0xLmM6IFVwZGF0ZWQuCiAgICAJKiB0ZXN0c3VpdGUvbGliZ29tcC5m b3J0cmFuL3RhcmdldC1pcy1hY2Nlc3NpYmxlLTEuZjkwOiBVcGRhdGVkLgogICAgCSogdGVz dHN1aXRlL2xpYmdvbXAuYy1jKystY29tbW9uL3RhcmdldC1pcy1hY2Nlc3NpYmxlLTIuYzog TmV3IHRlc3QuCiAgICAJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1pcy1h Y2Nlc3NpYmxlLTIuZjkwOiBOZXcgdGVzdC4KCmRpZmYgLS1naXQgYS9saWJnb21wL0NoYW5n ZUxvZy5vbXAgYi9saWJnb21wL0NoYW5nZUxvZy5vbXAKaW5kZXggMzJiY2M4NC4uYTBkMDI3 MSAxMDA2NDQKLS0tIGEvbGliZ29tcC9DaGFuZ2VMb2cub21wCisrKyBiL2xpYmdvbXAvQ2hh bmdlTG9nLm9tcApAQCAtMSwzICsxLDExIEBACisyMDIyLTEyLTEzICBNYXJjZWwgVm9sbHdl aWxlciAgPG1hcmNlbEBjb2Rlc291cmNlcnkuY29tPgorCisJKiB0YXJnZXQuYyAob21wX3Rh cmdldF9pc19hY2Nlc3NpYmxlKTogSGFuZGxlIHVuaWZpZWQgc2hhcmVkIG1lbW9yeS4KKwkq IHRlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtaXMtYWNjZXNzaWJsZS0x LmM6IFVwZGF0ZWQuCisJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1pcy1h Y2Nlc3NpYmxlLTEuZjkwOiBVcGRhdGVkLgorCSogdGVzdHN1aXRlL2xpYmdvbXAuYy1jKyst Y29tbW9uL3RhcmdldC1pcy1hY2Nlc3NpYmxlLTIuYzogTmV3IHRlc3QuCisJKiB0ZXN0c3Vp dGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1pcy1hY2Nlc3NpYmxlLTIuZjkwOiBOZXcgdGVz dC4KKwogMjAyMi0xMi0xMiAgVG9iaWFzIEJ1cm51cyAgPHRvYmlhc0Bjb2Rlc291cmNlcnku Y29tPgogCiAJQmFja3BvcnRlZCBmcm9tIG1hc3RlcjoKZGlmZiAtLWdpdCBhL2xpYmdvbXAv dGFyZ2V0LmMgYi9saWJnb21wL3RhcmdldC5jCmluZGV4IDUwNzA5ZjAuLjJjZDhlMmEgMTAw NjQ0Ci0tLSBhL2xpYmdvbXAvdGFyZ2V0LmMKKysrIGIvbGliZ29tcC90YXJnZXQuYwpAQCAt NTA2Nyw5ICs1MDY3LDEzIEBAIG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZSAoY29uc3Qgdm9p ZCAqcHRyLCBzaXplX3Qgc2l6ZSwgaW50IGRldmljZV9udW0pCiAgIGlmIChkZXZpY2VwID09 IE5VTEwpCiAgICAgcmV0dXJuIGZhbHNlOwogCi0gIC8qIFRPRE86IFVuaWZpZWQgc2hhcmVk IG1lbW9yeSBtdXN0IGJlIGhhbmRsZWQgd2hlbiBhdmFpbGFibGUuICAqLworICBpZiAoZGV2 aWNlcC0+Y2FwYWJpbGl0aWVzICYgR09NUF9PRkZMT0FEX0NBUF9TSEFSRURfTUVNKQorICAg IHJldHVybiB0cnVlOwogCi0gIHJldHVybiBkZXZpY2VwLT5jYXBhYmlsaXRpZXMgJiBHT01Q X09GRkxPQURfQ0FQX1NIQVJFRF9NRU07CisgIGlmIChkZXZpY2VwLT5pc191c21fcHRyX2Z1 bmMgJiYgZGV2aWNlcC0+aXNfdXNtX3B0cl9mdW5jICgodm9pZCAqKSBwdHIpKQorICAgIHJl dHVybiB0cnVlOworCisgIHJldHVybiBmYWxzZTsKIH0KIAogaW50CmRpZmYgLS1naXQgYS9s aWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJnZXQtaXMtYWNjZXNz aWJsZS0xLmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysrLWNvbW1vbi90YXJn ZXQtaXMtYWNjZXNzaWJsZS0xLmMKaW5kZXggMmU3NWM2My4uZTdmOWNmMiAxMDA2NDQKLS0t IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LWlzLWFj Y2Vzc2libGUtMS5jCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy1jKystY29t bW9uL3RhcmdldC1pcy1hY2Nlc3NpYmxlLTEuYwpAQCAtMSwzICsxLDUgQEAKKy8qIHsgZGct ZG8gcnVuIH0gKi8KKwogI2luY2x1ZGUgPG9tcC5oPgogCiBpbnQKQEAgLTYsNyArOCw4IEBA IG1haW4gKCkKICAgaW50IGQgPSBvbXBfZ2V0X2RlZmF1bHRfZGV2aWNlICgpOwogICBpbnQg aWQgPSBvbXBfZ2V0X2luaXRpYWxfZGV2aWNlICgpOwogICBpbnQgbiA9IG9tcF9nZXRfbnVt X2RldmljZXMgKCk7Ci0gIHZvaWQgKnA7CisgIGludCBpID0gNDI7CisgIHZvaWQgKnAgPSAm aTsKIAogICBpZiAoZCA8IDAgfHwgZCA+PSBuKQogICAgIGQgPSBpZDsKQEAgLTI2LDIzICsy OSwyOCBAQCBtYWluICgpCiAgIGlmIChvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKHAsIHNp emVvZiAoaW50KSwgbiArIDEpKQogICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKIAotICAvKiBD dXJyZW50bHksIGEgaG9zdCBwb2ludGVyIGlzIGFjY2Vzc2libGUgaWYgdGhlIGRldmljZSBz dXBwb3J0cyBzaGFyZWQKLSAgICAgbWVtb3J5IG9yIG9tcF90YXJnZXRfaXNfYWNjZXNzaWJs ZSBpcyBleGVjdXRlZCBvbiB0aGUgaG9zdC4gVGhpcwotICAgICB0ZXN0IGNhc2UgbXVzdCBi ZSBhZGFwdGVkIHdoZW4gdW5pZmllZCBzaGFyZWQgbWVtb3J5IGlzIGF2aWFsYWJsZS4gICov CiAgIGludCBhWzEyOF07CiAgIGZvciAoaW50IGQgPSAwOyBkIDw9IG9tcF9nZXRfbnVtX2Rl dmljZXMgKCk7IGQrKykKICAgICB7CisgICAgICAvKiBTSEFSRURfTUVNIGlzIDEgaWYgYW5k IG9ubHkgaWYgaG9zdCBhbmQgZGV2aWNlIHNoYXJlIHRoZSBzYW1lIG1lbW9yeS4KKwkgT01Q X1RBUkdFVF9JU19BQ0NFU1NJQkxFIHNob3VsZCBub3QgcmV0dXJuIDAgZm9yIHNoYXJlZCBt ZW1vcnkuICAqLwogICAgICAgaW50IHNoYXJlZF9tZW0gPSAwOwogICAgICAgI3ByYWdtYSBv bXAgdGFyZ2V0IG1hcCAoYWxsb2M6IHNoYXJlZF9tZW0pIGRldmljZSAoZCkKIAlzaGFyZWRf bWVtID0gMTsKLSAgICAgIGlmIChvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKHAsIHNpemVv ZiAoaW50KSwgZCkgIT0gc2hhcmVkX21lbSkKKworICAgICAgaWYgKHNoYXJlZF9tZW0gJiYg IW9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZSAocCwgc2l6ZW9mIChpbnQpLCBkKSkKKwlfX2J1 aWx0aW5fYWJvcnQgKCk7CisKKyAgICAgIC8qIFVTTSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0 LiAgSGVuY2UgT01QX1RBUkdFVF9JU19BQ0NFU1NJQkxFIHNob3VsZAorCSByZXR1cm4gMCBp ZiBzaGFyZWRfbWVtIGlzIGZhbHNlLiAgKi8KKyAgICAgIGlmICghc2hhcmVkX21lbSAmJiBv bXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKHAsIHNpemVvZiAoaW50KSwgZCkpCiAJX19idWls dGluX2Fib3J0ICgpOwogCi0gICAgICBpZiAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChh LCAxMjggKiBzaXplb2YgKGludCksIGQpICE9IHNoYXJlZF9tZW0pCisgICAgICBpZiAoc2hh cmVkX21lbSAmJiAhb21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChhLCAxMjggKiBzaXplb2Yg KGludCksIGQpKQogCV9fYnVpbHRpbl9hYm9ydCAoKTsKIAogICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCAxMjg7IGkrKykKLQlpZiAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlICgmYVtp XSwgc2l6ZW9mIChpbnQpLCBkKSAhPSBzaGFyZWRfbWVtKQorCWlmIChzaGFyZWRfbWVtICYm ICFvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKCZhW2ldLCBzaXplb2YgKGludCksIGQpKQog CSAgX19idWlsdGluX2Fib3J0ICgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvbGliZ29tcC90 ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LWlzLWFjY2Vzc2libGUtMi5j IGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jLWMrKy1jb21tb24vdGFyZ2V0LWlzLWFj Y2Vzc2libGUtMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MTcz NjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMtYysr LWNvbW1vbi90YXJnZXQtaXMtYWNjZXNzaWJsZS0yLmMKQEAgLTAsMCArMSwyMSBAQAorLyog eyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgb21w X3VzbSB9ICovCisKKyNpbmNsdWRlIDxvbXAuaD4KKworI3ByYWdtYSBvbXAgcmVxdWlyZXMg dW5pZmllZF9zaGFyZWRfbWVtb3J5CisKK2ludAorbWFpbiAoKQoreworICBpbnQgKmEgPSAo aW50ICopIG9tcF9hbGxvYyAoc2l6ZW9mIChpbnQpLCBvbXB4X3VuaWZpZWRfc2hhcmVkX21l bV9hbGxvYyk7CisgIGlmICghYSkKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisKKyAgZm9y IChpbnQgZCA9IDA7IGQgPD0gb21wX2dldF9udW1fZGV2aWNlcyAoKTsgZCsrKQorICAgIGlm ICghb21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChhLCBzaXplb2YgKGludCksIGQpKQorICAg ICAgX19idWlsdGluX2Fib3J0ICgpOworCisgIG9tcF9mcmVlKGEsIG9tcHhfdW5pZmllZF9z aGFyZWRfbWVtX2FsbG9jKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9saWJnb21w L3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LWlzLWFjY2Vzc2libGUtMS5mOTAg Yi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LWlzLWFjY2Vzc2li bGUtMS5mOTAKaW5kZXggMTUwZGY2Zi4uMGRmNDNhYWUgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtaXMtYWNjZXNzaWJsZS0xLmY5MAor KysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vdGFyZ2V0LWlzLWFjY2Vz c2libGUtMS5mOTAKQEAgLTEsMyArMSw1IEBACishIHsgZGctZG8gcnVuIH0KKwogcHJvZ3Jh bSBtYWluCiAgIHVzZSBvbXBfbGliCiAgIHVzZSBpc29fY19iaW5kaW5nCkBAIC0yOCwyNCAr MzAsMjggQEAgcHJvZ3JhbSBtYWluCiAgIGlmIChvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUg KHAsIGNfc2l6ZW9mIChkKSwgbiArIDEpIC89IDApICYKICAgICBzdG9wIDUKIAotICAhIEN1 cnJlbnRseSwgYSBob3N0IHBvaW50ZXIgaXMgYWNjZXNzaWJsZSBpZiB0aGUgZGV2aWNlIHN1 cHBvcnRzIHNoYXJlZAotICAhIG1lbW9yeSBvciBvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUg aXMgZXhlY3V0ZWQgb24gdGhlIGhvc3QuIFRoaXMKLSAgISB0ZXN0IGNhc2UgbXVzdCBiZSBh ZGFwdGVkIHdoZW4gdW5pZmllZCBzaGFyZWQgbWVtb3J5IGlzIGF2aWFsYWJsZS4KICAgZG8g ZCA9IDAsIG9tcF9nZXRfbnVtX2RldmljZXMgKCkKKyAgICAhIFNIQVJFRF9NRU0gaXMgMSBp ZiBhbmQgb25seSBpZiBob3N0IGFuZCBkZXZpY2Ugc2hhcmUgdGhlIHNhbWUgbWVtb3J5Lgor ICAgICEgT01QX1RBUkdFVF9JU19BQ0NFU1NJQkxFIHNob3VsZCBub3QgcmV0dXJuIDAgZm9y IHNoYXJlZCBtZW1vcnkuCiAgICAgc2hhcmVkX21lbSA9IDA7CiAgICAgISRvbXAgdGFyZ2V0 IG1hcCAoYWxsb2M6IHNoYXJlZF9tZW0pIGRldmljZSAoZCkKICAgICAgIHNoYXJlZF9tZW0g PSAxOwogICAgICEkb21wIGVuZCB0YXJnZXQKIAotICAgIGlmIChvbXBfdGFyZ2V0X2lzX2Fj Y2Vzc2libGUgKHAsIGNfc2l6ZW9mIChkKSwgZCkgLz0gc2hhcmVkX21lbSkgJgorICAgIGlm IChzaGFyZWRfbWVtID09IDEgLmFuZC4gb21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChwLCBj X3NpemVvZiAoZCksIGQpID09IDApICYKICAgICAgIHN0b3AgNjsKIAotICAgIGlmIChvbXBf dGFyZ2V0X2lzX2FjY2Vzc2libGUgKGNfbG9jIChhKSwgMTI4ICogc2l6ZW9mIChhKDEpKSwg ZCkgLz0gc2hhcmVkX21lbSkgJgorICAgICEgVVNNIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQu ICBIZW5jZSBPTVBfVEFSR0VUX0lTX0FDQ0VTU0lCTEUgc2hvdWxkCisgICAgISByZXR1cm4g MCBpZiBzaGFyZWRfbWVtIGlzIGZhbHNlLgorICAgIGlmIChzaGFyZWRfbWVtID09IDAgLmFu ZC4gb21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChwLCBjX3NpemVvZiAoZCksIGQpIC89IDAp ICYKICAgICAgIHN0b3AgNzsKIAorICAgIGlmIChzaGFyZWRfbWVtID09IDEgLmFuZC4gb21w X3RhcmdldF9pc19hY2Nlc3NpYmxlIChjX2xvYyAoYSksIDEyOCAqIHNpemVvZiAoYSgxKSks IGQpID09IDApICYKKyAgICAgIHN0b3AgODsKKwogICAgIGRvIGkgPSAxLCAxMjgKLSAgICAg IGlmIChvbXBfdGFyZ2V0X2lzX2FjY2Vzc2libGUgKGNfbG9jIChhKGkpKSwgc2l6ZW9mIChh KGkpKSwgZCkgLz0gc2hhcmVkX21lbSkgJgotICAgICAgICBzdG9wIDg7CisgICAgICBpZiAo c2hhcmVkX21lbSA9PSAxIC5hbmQuIG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZSAoY19sb2Mg KGEoaSkpLCBzaXplb2YgKGEoaSkpLCBkKSA9PSAwKSAmCisgICAgICAgIHN0b3AgOTsKICAg ICBlbmQgZG8KIAogICBlbmQgZG8KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xp YmdvbXAuZm9ydHJhbi90YXJnZXQtaXMtYWNjZXNzaWJsZS0yLmY5MCBiL2xpYmdvbXAvdGVz dHN1aXRlL2xpYmdvbXAuZm9ydHJhbi90YXJnZXQtaXMtYWNjZXNzaWJsZS0yLmY5MApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjRkMWVmCi0tLSAvZGV2L251bGwK KysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL3RhcmdldC1pcy1hY2Nl c3NpYmxlLTIuZjkwCkBAIC0wLDAgKzEsMjIgQEAKKyEgeyBkZy1kbyBydW4gfQorISB7IGRn LXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBvbXBfdXNtIH0KKworcHJvZ3JhbSBtYWluCisg IHVzZSBvbXBfbGliCisgIHVzZSBpc29fY19iaW5kaW5nCisgIGltcGxpY2l0IG5vbmUgKGV4 dGVybmFsLCB0eXBlKQorICBpbnRlZ2VyIDo6IGQKKyAgdHlwZShjX3B0cikgOjogcAorCisg ICEkb21wIHJlcXVpcmVzIHVuaWZpZWRfc2hhcmVkX21lbW9yeQorCisgIHAgPSBvbXBfYWxs b2MgKHNpemVvZiAoZCksIG9tcHhfdW5pZmllZF9zaGFyZWRfbWVtX2FsbG9jKQorICBpZiAo Lm5vdC4gY19hc3NvY2lhdGVkIChwKSkgc3RvcCAxCisKKyAgZG8gZCA9IDAsIG9tcF9nZXRf bnVtX2RldmljZXMgKCkKKyAgICBpZiAob21wX3RhcmdldF9pc19hY2Nlc3NpYmxlIChwLCBj X3NpemVvZiAoZCksIGQpID09IDApICYKKyAgICAgIHN0b3AgMjsKKyAgZW5kIGRvCisKKyAg Y2FsbCBvbXBfZnJlZSAocCwgb21weF91bmlmaWVkX3NoYXJlZF9tZW1fYWxsb2MpOworZW5k IHByb2dyYW0gbWFpbgo= --------------UBpZo8NPWDTq03rnpr6byGw3--