From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa1.mentor.iphmx.com (esa1.mentor.iphmx.com [68.232.129.153]) by sourceware.org (Postfix) with ESMTPS id 5F45B3858419; Thu, 7 Oct 2021 13:59:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5F45B3858419 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: X3TkVk9b3UsDrlP5IFTew+hnnqryNf991Z8chsVUtGAEplfuicC0KHOfe3hIocwUc3BX0y5fH3 Jyuc7wketKCH8SyPtVrCOcRbuNBGINabZPfp+ub0rUQac0ST1Rckf9R89+KDP1umZRPwfMcHxO 3VO9hN0K1oqyW+t2fmr0dnx2r8LWUwHPNj9yG7+zI474POwOWOtTNjeBqab7WyCQhkHi1zqHsF 0BEDNG3dPma0Zq1EZ4Bw7VQwkyCnepYdONzo/Gtb8VOHUC4nW8Aag/SHZJNTBGH4NN9QYSTmwz g8308kNpaIc1uhvOf4PWjUa9 X-IronPort-AV: E=Sophos;i="5.85,354,1624348800"; d="scan'208";a="69342059" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa1.mentor.iphmx.com with ESMTP; 07 Oct 2021 05:59:19 -0800 IronPort-SDR: aHKrQOAYhsBijZ7pTdO1werqA1Nn4fvMcpBUiX6LzD8w5Sgw49EvJPMznE5vNoEUbjqkMkGj0d W4VkNK5QVfXmAK6QUOkRkvGSsoBxX+FTYbK7ipw5QxruZIH3xs8phDmz+oJbeJOAPDnzwSjYHZ vL+Bfd+8Jt5aSx9LuscUQChuSor9KjE2EeHBadLn7/Bpw4tosjqs/dM6yP7Ghyt7cNFg3/tudD pt8IF5dSj77LwxqAaJdVC+TdQKo0V7UU0Yz+qcMhWibTmbMXRW5LlR44b4kCTpypQl7WM0XWFl WP8= From: Chung-Lin Tang Subject: [PATCH, OpenMP 5.1, Fortran] Strictly-structured block support for OpenMP directives To: gcc-patches , Fortran List , Tobias Burnus , Catherine Moore , Jakub Jelinek Message-ID: <8d20877d-d52e-d90c-8a4e-a38f43921df1@codesourcery.com> Date: Thu, 7 Oct 2021 21:59:00 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------7D715FCD792CF5EA7EB6D1A8" Content-Language: en-US X-ClientProxiedBy: svr-orw-mbx-08.mgc.mentorg.com (147.34.90.208) To svr-orw-mbx-02.mgc.mentorg.com (147.34.90.202) X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Oct 2021 13:59:21 -0000 --------------7D715FCD792CF5EA7EB6D1A8 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Hi all, this patch add support for "strictly-structured blocks" introduced in OpenMP 5.1, basically allowing BLOCK constructs to serve as the body for directives: !$omp target block ... end block [!$omp end target] !! end directive is optional !$omp parallel block ... end block ... !$omp end parallel !! error, considered as not match to above parallel directive The parsing loop in parse_omp_structured_block() has been modified to allow a BLOCK construct after the first statement has been detected to be ST_BLOCK. This is done by a hard modification of the state into (the new) COMP_OMP_STRICTLY_STRUCTURED_BLOCK after the statement is known (I'm not sure if there's a way to 'peek' the next statement/token in the Fortran FE, open to suggestions on how to better write this) Tested with no regressions on trunk, is this okay to commit? Thanks, Chung-Lin 2021-10-07 Chung-Lin Tang gcc/fortran/ChangeLog: * decl.c (gfc_match_end): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK case together with COMP_BLOCK. * parse.c (parse_omp_structured_block): Adjust declaration, add 'bool strictly_structured_block' default true parameter, add handling for strictly-structured block case, adjust recursive calls to parse_omp_structured_block. (parse_executable): Adjust calls to parse_omp_structured_block. * parse.h (enum gfc_compile_state): Add COMP_OMP_STRICTLY_STRUCTURED_BLOCK. * trans-openmp.c (gfc_trans_omp_workshare): Add EXEC_BLOCK case handling. gcc/testsuite/ChangeLog: * gfortran.dg/gomp/strictly-structured-block-1.f90: New test. --------------7D715FCD792CF5EA7EB6D1A8 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="fortran-omp51-strictly-structured-block.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fortran-omp51-strictly-structured-block.patch" ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2RlY2wuYyBiL2djYy9mb3J0cmFuL2RlY2wuYwpp bmRleCBiM2M2NWI3MTc1Yi4uZmY2NmQxZjk0NzUgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFu L2RlY2wuYworKysgYi9nY2MvZm9ydHJhbi9kZWNsLmMKQEAgLTg0NDUsNiArODQ0NSw3IEBA IGdmY19tYXRjaF9lbmQgKGdmY19zdGF0ZW1lbnQgKnN0KQogICAgICAgYnJlYWs7CiAKICAg ICBjYXNlIENPTVBfQkxPQ0s6CisgICAgY2FzZSBDT01QX09NUF9TVFJJQ1RMWV9TVFJVQ1RV UkVEX0JMT0NLOgogICAgICAgKnN0ID0gU1RfRU5EX0JMT0NLOwogICAgICAgdGFyZ2V0ID0g IiBibG9jayI7CiAgICAgICBlb3Nfb2sgPSAwOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v cGFyc2UuYyBiL2djYy9mb3J0cmFuL3BhcnNlLmMKaW5kZXggN2Q3NjVhMDg2NmQuLmQ3OGJm OWI4ZmE1IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9wYXJzZS5jCisrKyBiL2djYy9mb3J0 cmFuL3BhcnNlLmMKQEAgLTU0NTEsOCArNTQ1MSw5IEBAIHBhcnNlX29hY2NfbG9vcCAoZ2Zj X3N0YXRlbWVudCBhY2Nfc3QpCiAKIC8qIFBhcnNlIHRoZSBzdGF0ZW1lbnRzIG9mIGFuIE9w ZW5NUCBzdHJ1Y3R1cmVkIGJsb2NrLiAgKi8KIAotc3RhdGljIHZvaWQKLXBhcnNlX29tcF9z dHJ1Y3R1cmVkX2Jsb2NrIChnZmNfc3RhdGVtZW50IG9tcF9zdCwgYm9vbCB3b3Jrc2hhcmVf c3RtdHNfb25seSkKK3N0YXRpYyBnZmNfc3RhdGVtZW50CitwYXJzZV9vbXBfc3RydWN0dXJl ZF9ibG9jayAoZ2ZjX3N0YXRlbWVudCBvbXBfc3QsIGJvb2wgd29ya3NoYXJlX3N0bXRzX29u bHksCisJCQkgICAgYm9vbCBzdHJpY3RseV9zdHJ1Y3R1cmVkX2Jsb2NrID0gdHJ1ZSkKIHsK ICAgZ2ZjX3N0YXRlbWVudCBzdCwgb21wX2VuZF9zdDsKICAgZ2ZjX2NvZGUgKmNwLCAqbnA7 CkBAIC01NTM4LDYgKzU1MzksMzIgQEAgcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKGdm Y19zdGF0ZW1lbnQgb21wX3N0LCBib29sIHdvcmtzaGFyZV9zdG10c19vbmx5KQogICAgICAg Z2NjX3VucmVhY2hhYmxlICgpOwogICAgIH0KIAorICBib29sIGJsb2NrX2NvbnN0cnVjdCA9 IGZhbHNlOworICBnZmNfbmFtZXNwYWNlKiBteV9ucyA9IE5VTEw7CisgIGdmY19uYW1lc3Bh Y2UqIG15X3BhcmVudCA9IE5VTEw7CisKKyAgc3QgPSBuZXh0X3N0YXRlbWVudCAoKTsKKwor ICBpZiAoc3RyaWN0bHlfc3RydWN0dXJlZF9ibG9jayAmJiBzdCA9PSBTVF9CTE9DSykKKyAg ICB7CisgICAgICAvKiBBZGp1c3Qgc3RhdGUgdG8gYSBzdHJpY3RseS1zdHJ1Y3R1cmVkIGJs b2NrLCBub3cgdGhhdCB3ZSBmb3VuZCB0aGF0CisJIHRoZSBib2R5IHN0YXJ0cyB3aXRoIGEg QkxPQ0sgY29uc3RydWN0LiAgKi8KKyAgICAgIHMuc3RhdGUgPSBDT01QX09NUF9TVFJJQ1RM WV9TVFJVQ1RVUkVEX0JMT0NLOworCisgICAgICBibG9ja19jb25zdHJ1Y3QgPSB0cnVlOwor ICAgICAgZ2ZjX25vdGlmeV9zdGQgKEdGQ19TVERfRjIwMDgsICJCTE9DSyBjb25zdHJ1Y3Qg YXQgJUMiKTsKKworICAgICAgbXlfbnMgPSBnZmNfYnVpbGRfYmxvY2tfbnMgKGdmY19jdXJy ZW50X25zKTsKKyAgICAgIGdmY19jdXJyZW50X25zID0gbXlfbnM7CisgICAgICBteV9wYXJl bnQgPSBteV9ucy0+cGFyZW50OworCisgICAgICBuZXdfc3Qub3AgPSBFWEVDX0JMT0NLOwor ICAgICAgbmV3X3N0LmV4dC5ibG9jay5ucyA9IG15X25zOworICAgICAgbmV3X3N0LmV4dC5i bG9jay5hc3NvYyA9IE5VTEw7CisgICAgICBhY2NlcHRfc3RhdGVtZW50IChTVF9CTE9DSyk7 CisgICAgICBzdCA9IHBhcnNlX3NwZWMgKFNUX05PTkUpOworICAgIH0KKwogICBkbwogICAg IHsKICAgICAgIGlmICh3b3Jrc2hhcmVfc3RtdHNfb25seSkKQEAgLTU1NTQsNyArNTU4MSw2 IEBAIHBhcnNlX29tcF9zdHJ1Y3R1cmVkX2Jsb2NrIChnZmNfc3RhdGVtZW50IG9tcF9zdCwg Ym9vbCB3b3Jrc2hhcmVfc3RtdHNfb25seSkKIAkgICAgIHJlc3RyaWN0aW9ucyBhcHBseSBy ZWN1cnNpdmVseS4gICovCiAJICBib29sIGN5Y2xlID0gdHJ1ZTsKIAotCSAgc3QgPSBuZXh0 X3N0YXRlbWVudCAoKTsKIAkgIGZvciAoOzspCiAJICAgIHsKIAkgICAgICBzd2l0Y2ggKHN0 KQpAQCAtNTU3NiwxNyArNTYwMiwyMCBAQCBwYXJzZV9vbXBfc3RydWN0dXJlZF9ibG9jayAo Z2ZjX3N0YXRlbWVudCBvbXBfc3QsIGJvb2wgd29ya3NoYXJlX3N0bXRzX29ubHkpCiAJCSAg cGFyc2VfZm9yYWxsX2Jsb2NrICgpOwogCQkgIGJyZWFrOwogCisJCWNhc2UgU1RfT01QX1BB UkFMTEVMX1NFQ1RJT05TOgorCQkgIHN0ID0gcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sg KHN0LCBmYWxzZSwgZmFsc2UpOworCQkgIGNvbnRpbnVlOworCiAJCWNhc2UgU1RfT01QX1BB UkFMTEVMOgogCQljYXNlIFNUX09NUF9QQVJBTExFTF9NQVNLRUQ6CiAJCWNhc2UgU1RfT01Q X1BBUkFMTEVMX01BU1RFUjoKLQkJY2FzZSBTVF9PTVBfUEFSQUxMRUxfU0VDVElPTlM6Ci0J CSAgcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKHN0LCBmYWxzZSk7Ci0JCSAgYnJlYWs7 CisJCSAgc3QgPSBwYXJzZV9vbXBfc3RydWN0dXJlZF9ibG9jayAoc3QsIGZhbHNlKTsKKwkJ ICBjb250aW51ZTsKIAogCQljYXNlIFNUX09NUF9QQVJBTExFTF9XT1JLU0hBUkU6CiAJCWNh c2UgU1RfT01QX0NSSVRJQ0FMOgotCQkgIHBhcnNlX29tcF9zdHJ1Y3R1cmVkX2Jsb2NrIChz dCwgdHJ1ZSk7Ci0JCSAgYnJlYWs7CisJCSAgc3QgPSBwYXJzZV9vbXBfc3RydWN0dXJlZF9i bG9jayAoc3QsIHRydWUpOworCQkgIGNvbnRpbnVlOwogCiAJCWNhc2UgU1RfT01QX1BBUkFM TEVMX0RPOgogCQljYXNlIFNUX09NUF9QQVJBTExFTF9ET19TSU1EOgpAQCAtNTYwOSw3ICs1 NjM4LDcgQEAgcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKGdmY19zdGF0ZW1lbnQgb21w X3N0LCBib29sIHdvcmtzaGFyZV9zdG10c19vbmx5KQogCSAgICB9CiAJfQogICAgICAgZWxz ZQotCXN0ID0gcGFyc2VfZXhlY3V0YWJsZSAoU1RfTk9ORSk7CisJc3QgPSBwYXJzZV9leGVj dXRhYmxlIChzdCk7CiAgICAgICBpZiAoc3QgPT0gU1RfTk9ORSkKIAl1bmV4cGVjdGVkX2Vv ZiAoKTsKICAgICAgIGVsc2UgaWYgKHN0ID09IFNUX09NUF9TRUNUSU9OCkBAIC01NjE5LDkg KzU2NDgsMjcgQEAgcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKGdmY19zdGF0ZW1lbnQg b21wX3N0LCBib29sIHdvcmtzaGFyZV9zdG10c19vbmx5KQogCSAgbnAgPSBuZXdfbGV2ZWwg KG5wKTsKIAkgIG5wLT5vcCA9IGNwLT5vcDsKIAkgIG5wLT5ibG9jayA9IE5VTEw7CisJICBz dCA9IG5leHRfc3RhdGVtZW50ICgpOworCX0KKyAgICAgIGVsc2UgaWYgKGJsb2NrX2NvbnN0 cnVjdCAmJiBzdCA9PSBTVF9FTkRfQkxPQ0spCisJeworCSAgYWNjZXB0X3N0YXRlbWVudCAo c3QpOworCSAgZ2ZjX2N1cnJlbnRfbnMgPSBteV9wYXJlbnQ7CisJICBwb3Bfc3RhdGUgKCk7 CisKKwkgIHN0ID0gbmV4dF9zdGF0ZW1lbnQgKCk7CisJICBpZiAoc3QgPT0gb21wX2VuZF9z dCkKKwkgICAgeworCSAgICAgIGFjY2VwdF9zdGF0ZW1lbnQgKHN0KTsKKwkgICAgICBzdCA9 IG5leHRfc3RhdGVtZW50ICgpOworCSAgICB9CisJICByZXR1cm4gc3Q7CiAJfQogICAgICAg ZWxzZSBpZiAoc3QgIT0gb21wX2VuZF9zdCkKLQl1bmV4cGVjdGVkX3N0YXRlbWVudCAoc3Qp OworCXsKKwkgIHVuZXhwZWN0ZWRfc3RhdGVtZW50IChzdCk7CisJICBzdCA9IG5leHRfc3Rh dGVtZW50ICgpOworCX0KICAgICB9CiAgIHdoaWxlIChzdCAhPSBvbXBfZW5kX3N0KTsKIApA QCAtNTY1Nyw2ICs1NzA0LDggQEAgcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKGdmY19z dGF0ZW1lbnQgb21wX3N0LCBib29sIHdvcmtzaGFyZV9zdG10c19vbmx5KQogICBnZmNfY29t bWl0X3N5bWJvbHMgKCk7CiAgIGdmY193YXJuaW5nX2NoZWNrICgpOwogICBwb3Bfc3RhdGUg KCk7CisgIHN0ID0gbmV4dF9zdGF0ZW1lbnQgKCk7CisgIHJldHVybiBzdDsKIH0KIAogCkBA IC01Nzc5LDE2ICs1ODI4LDE5IEBAIHBhcnNlX2V4ZWN1dGFibGUgKGdmY19zdGF0ZW1lbnQg c3QpCiAJICBwYXJzZV9vYWNjX3N0cnVjdHVyZWRfYmxvY2sgKHN0KTsKIAkgIGJyZWFrOwog CisJY2FzZSBTVF9PTVBfUEFSQUxMRUxfU0VDVElPTlM6CisJY2FzZSBTVF9PTVBfU0VDVElP TlM6CisJICBzdCA9IHBhcnNlX29tcF9zdHJ1Y3R1cmVkX2Jsb2NrIChzdCwgZmFsc2UsIGZh bHNlKTsKKwkgIGNvbnRpbnVlOworCiAJY2FzZSBTVF9PTVBfUEFSQUxMRUw6CiAJY2FzZSBT VF9PTVBfUEFSQUxMRUxfTUFTS0VEOgogCWNhc2UgU1RfT01QX1BBUkFMTEVMX01BU1RFUjoK LQljYXNlIFNUX09NUF9QQVJBTExFTF9TRUNUSU9OUzoKIAljYXNlIFNUX09NUF9PUkRFUkVE OgogCWNhc2UgU1RfT01QX0NSSVRJQ0FMOgogCWNhc2UgU1RfT01QX01BU0tFRDoKIAljYXNl IFNUX09NUF9NQVNURVI6CiAJY2FzZSBTVF9PTVBfU0NPUEU6Ci0JY2FzZSBTVF9PTVBfU0VD VElPTlM6CiAJY2FzZSBTVF9PTVBfU0lOR0xFOgogCWNhc2UgU1RfT01QX1RBUkdFVDoKIAlj YXNlIFNUX09NUF9UQVJHRVRfREFUQToKQEAgLTU3OTcsMTMgKzU4NDksMTMgQEAgcGFyc2Vf ZXhlY3V0YWJsZSAoZ2ZjX3N0YXRlbWVudCBzdCkKIAljYXNlIFNUX09NUF9URUFNUzoKIAlj YXNlIFNUX09NUF9UQVNLOgogCWNhc2UgU1RfT01QX1RBU0tHUk9VUDoKLQkgIHBhcnNlX29t cF9zdHJ1Y3R1cmVkX2Jsb2NrIChzdCwgZmFsc2UpOwotCSAgYnJlYWs7CisJICBzdCA9IHBh cnNlX29tcF9zdHJ1Y3R1cmVkX2Jsb2NrIChzdCwgZmFsc2UpOworCSAgY29udGludWU7CiAK IAljYXNlIFNUX09NUF9XT1JLU0hBUkU6CiAJY2FzZSBTVF9PTVBfUEFSQUxMRUxfV09SS1NI QVJFOgotCSAgcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKHN0LCB0cnVlKTsKLQkgIGJy ZWFrOworCSAgc3QgPSBwYXJzZV9vbXBfc3RydWN0dXJlZF9ibG9jayAoc3QsIHRydWUpOwor CSAgY29udGludWU7CiAKIAljYXNlIFNUX09NUF9ESVNUUklCVVRFOgogCWNhc2UgU1RfT01Q X0RJU1RSSUJVVEVfUEFSQUxMRUxfRE86CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9wYXJz ZS5oIGIvZ2NjL2ZvcnRyYW4vcGFyc2UuaAppbmRleCA1NWYwMjI5OTMwNC4uNjZiMjc1ZGU4 OWIgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3BhcnNlLmgKKysrIGIvZ2NjL2ZvcnRyYW4v cGFyc2UuaApAQCAtMzEsNyArMzEsNyBAQCBlbnVtIGdmY19jb21waWxlX3N0YXRlCiAgIENP TVBfU1RSVUNUVVJFLCBDT01QX1VOSU9OLCBDT01QX01BUCwKICAgQ09NUF9ETywgQ09NUF9T RUxFQ1QsIENPTVBfRk9SQUxMLCBDT01QX1dIRVJFLCBDT01QX0NPTlRBSU5TLCBDT01QX0VO VU0sCiAgIENPTVBfU0VMRUNUX1RZUEUsIENPTVBfU0VMRUNUX1JBTkssIENPTVBfT01QX1NU UlVDVFVSRURfQkxPQ0ssIENPTVBfQ1JJVElDQUwsCi0gIENPTVBfRE9fQ09OQ1VSUkVOVAor ICBDT01QX0RPX0NPTkNVUlJFTlQsIENPTVBfT01QX1NUUklDVExZX1NUUlVDVFVSRURfQkxP Q0sKIH07CiAKIC8qIFN0YWNrIGVsZW1lbnQgZm9yIHRoZSBjdXJyZW50IGNvbXBpbGF0aW9u IHN0YXRlLiAgVGhlc2Ugc3RydWN0dXJlcwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJh bnMtb3Blbm1wLmMgYi9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuYwppbmRleCBkMjM0ZDFi MDcwZi4uOWZkZWE4YzY3ZmQgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5t cC5jCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jCkBAIC02OTkzLDcgKzY5OTMs MTEgQEAgZ2ZjX3RyYW5zX29tcF93b3Jrc2hhcmUgKGdmY19jb2RlICpjb2RlLCBnZmNfb21w X2NsYXVzZXMgKmNsYXVzZXMpCiAJICByZXMgPSBnZmNfdHJhbnNfb21wX2RpcmVjdGl2ZSAo Y29kZSk7CiAJICBvbXB3c19mbGFncyA9IHNhdmVkX29tcHdzX2ZsYWdzOwogCSAgYnJlYWs7 Ci0JCisKKwljYXNlIEVYRUNfQkxPQ0s6CisJICByZXMgPSBnZmNfdHJhbnNfYmxvY2tfY29u c3RydWN0IChjb2RlKTsKKwkgIGJyZWFrOworCiAJZGVmYXVsdDoKIAkgIGdmY19pbnRlcm5h bF9lcnJvciAoImdmY190cmFuc19vbXBfd29ya3NoYXJlKCk6IEJhZCBzdGF0ZW1lbnQgY29k ZSIpOwogCX0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9z dHJpY3RseS1zdHJ1Y3R1cmVkLWJsb2NrLTEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL3N0cmljdGx5LXN0cnVjdHVyZWQtYmxvY2stMS5mOTAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJjNzk4YzFjMjE4Ci0tLSAvZGV2L251bGwK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3N0cmljdGx5LXN0cnVjdHVy ZWQtYmxvY2stMS5mOTAKQEAgLTAsMCArMSwyOTUgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0K KyEgeyBkZy1vcHRpb25zICItZm9wZW5tcCIgfQorCitwcm9ncmFtIG1haW4KKyAgaW50ZWdl ciA6OiB4CisKKyAgISRvbXAgcGFyYWxsZWwKKyAgYmxvY2sKKyAgICB4ID0geCArIDEKKyAg ZW5kIGJsb2NrCisKKyAgISRvbXAgcGFyYWxsZWwKKyAgYmxvY2sKKyAgICB4ID0geCArIDEK KyAgZW5kIGJsb2NrCisgICEkb21wIGVuZCBwYXJhbGxlbAorCisgICEkb21wIHBhcmFsbGVs CisgIGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworICB4ID0geCArIDEKKyAg ISRvbXAgZW5kIHBhcmFsbGVsICEgeyBkZy1lcnJvciAiVW5leHBlY3RlZCAhLk9NUCBFTkQg UEFSQUxMRUwgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgdGVhbXMKKyAgYmxvY2sKKyAgICB4 ID0geCArIDEKKyAgZW5kIGJsb2NrCisKKyAgISRvbXAgdGVhbXMKKyAgYmxvY2sKKyAgICB4 ID0geCArIDEKKyAgZW5kIGJsb2NrCisgICEkb21wIGVuZCB0ZWFtcworCisgICEkb21wIHRl YW1zCisgIGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworICB4ID0geCArIDEK KyAgISRvbXAgZW5kIHRlYW1zICEgeyBkZy1lcnJvciAiVW5leHBlY3RlZCAhLk9NUCBFTkQg VEVBTVMgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgbWFza2VkCisgIGJsb2NrCisgICAgeCA9 IHggKyAxCisgIGVuZCBibG9jaworCisgICEkb21wIG1hc2tlZAorICBibG9jaworICAgIHgg PSB4ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIG1hc2tlZAorCisgICEkb21wIG1h c2tlZAorICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgeCA9IHggKyAx CisgICEkb21wIGVuZCBtYXNrZWQgISB7IGRnLWVycm9yICJVbmV4cGVjdGVkICEuT01QIEVO RCBNQVNLRUQgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgc2NvcGUKKyAgYmxvY2sKKyAgICB4 ID0geCArIDEKKyAgZW5kIGJsb2NrCisKKyAgISRvbXAgc2NvcGUKKyAgYmxvY2sKKyAgICB4 ID0geCArIDEKKyAgZW5kIGJsb2NrCisgICEkb21wIGVuZCBzY29wZQorCisgICEkb21wIHNj b3BlCisgIGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworICB4ID0geCArIDEK KyAgISRvbXAgZW5kIHNjb3BlICEgeyBkZy1lcnJvciAiVW5leHBlY3RlZCAhLk9NUCBFTkQg U0NPUEUgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgc2luZ2xlCisgIGJsb2NrCisgICAgeCA9 IHggKyAxCisgIGVuZCBibG9jaworCisgICEkb21wIHNpbmdsZQorICBibG9jaworICAgIHgg PSB4ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHNpbmdsZQorCisgICEkb21wIHNp bmdsZQorICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgeCA9IHggKyAx CisgICEkb21wIGVuZCBzaW5nbGUgISB7IGRnLWVycm9yICJVbmV4cGVjdGVkICEuT01QIEVO RCBTSU5HTEUgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgd29ya3NoYXJlCisgIGJsb2NrCisg ICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworCisgICEkb21wIHdvcmtzaGFyZQorICBibG9j aworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHdvcmtzaGFyZQor CisgICEkb21wIHdvcmtzaGFyZQorICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxv Y2sKKyAgeCA9IHggKyAxCisgICEkb21wIGVuZCB3b3Jrc2hhcmUgISB7IGRnLWVycm9yICJV bmV4cGVjdGVkICEuT01QIEVORCBXT1JLU0hBUkUgc3RhdGVtZW50IiB9CisKKyAgISRvbXAg dGFzaworICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKworICAhJG9tcCB0 YXNrCisgIGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworICAhJG9tcCBlbmQg dGFzaworCisgICEkb21wIHRhc2sKKyAgYmxvY2sKKyAgICB4ID0geCArIDEKKyAgZW5kIGJs b2NrCisgIHggPSB4ICsgMQorICAhJG9tcCBlbmQgdGFzayAhIHsgZGctZXJyb3IgIlVuZXhw ZWN0ZWQgIS5PTVAgRU5EIFRBU0sgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgdGFyZ2V0IGRh dGEgbWFwKHgpCisgIGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworCisgICEk b21wIHRhcmdldCBkYXRhIG1hcCh4KQorICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQg YmxvY2sKKyAgISRvbXAgZW5kIHRhcmdldCBkYXRhCisKKyAgISRvbXAgdGFyZ2V0IGRhdGEg bWFwKHgpCisgIGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworICB4ID0geCAr IDEKKyAgISRvbXAgZW5kIHRhcmdldCBkYXRhICEgeyBkZy1lcnJvciAiVW5leHBlY3RlZCAh Lk9NUCBFTkQgVEFSR0VUIERBVEEgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgdGFyZ2V0Cisg IGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworCisgICEkb21wIHRhcmdldAor ICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHRhcmdl dAorCisgICEkb21wIHRhcmdldAorICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxv Y2sKKyAgeCA9IHggKyAxCisgICEkb21wIGVuZCB0YXJnZXQgISB7IGRnLWVycm9yICJVbmV4 cGVjdGVkICEuT01QIEVORCBUQVJHRVQgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgcGFyYWxs ZWwgd29ya3NoYXJlCisgIGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworCisg ICEkb21wIHBhcmFsbGVsIHdvcmtzaGFyZQorICBibG9jaworICAgIHggPSB4ICsgMQorICBl bmQgYmxvY2sKKyAgISRvbXAgZW5kIHBhcmFsbGVsIHdvcmtzaGFyZQorCisgICEkb21wIHBh cmFsbGVsIHdvcmtzaGFyZQorICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sK KyAgeCA9IHggKyAxCisgICEkb21wIGVuZCBwYXJhbGxlbCB3b3Jrc2hhcmUgISB7IGRnLWVy cm9yICJVbmV4cGVjdGVkICEuT01QIEVORCBQQVJBTExFTCBXT1JLU0hBUkUgc3RhdGVtZW50 IiB9CisKKyAgISRvbXAgcGFyYWxsZWwgbWFza2VkCisgIGJsb2NrCisgICAgeCA9IHggKyAx CisgIGVuZCBibG9jaworCisgICEkb21wIHBhcmFsbGVsIG1hc2tlZAorICBibG9jaworICAg IHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHBhcmFsbGVsIG1hc2tlZAor CisgICEkb21wIHBhcmFsbGVsIG1hc2tlZAorICBibG9jaworICAgIHggPSB4ICsgMQorICBl bmQgYmxvY2sKKyAgeCA9IHggKyAxCisgICEkb21wIGVuZCBwYXJhbGxlbCBtYXNrZWQgISB7 IGRnLWVycm9yICJVbmV4cGVjdGVkICEuT01QIEVORCBQQVJBTExFTCBNQVNLRUQgc3RhdGVt ZW50IiB9CisKKyAgISRvbXAgdGFyZ2V0IHBhcmFsbGVsCisgIGJsb2NrCisgICAgeCA9IHgg KyAxCisgIGVuZCBibG9jaworCisgICEkb21wIHRhcmdldCBwYXJhbGxlbAorICBibG9jawor ICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHRhcmdldCBwYXJhbGxl bAorCisgICEkb21wIHRhcmdldCBwYXJhbGxlbAorICBibG9jaworICAgIHggPSB4ICsgMQor ICBlbmQgYmxvY2sKKyAgeCA9IHggKyAxCisgICEkb21wIGVuZCB0YXJnZXQgcGFyYWxsZWwg ISB7IGRnLWVycm9yICJVbmV4cGVjdGVkICEuT01QIEVORCBUQVJHRVQgUEFSQUxMRUwgc3Rh dGVtZW50IiB9CisKKyAgISRvbXAgdGFyZ2V0IHRlYW1zCisgIGJsb2NrCisgICAgeCA9IHgg KyAxCisgIGVuZCBibG9jaworCisgICEkb21wIHRhcmdldCB0ZWFtcworICBibG9jaworICAg IHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHRhcmdldCB0ZWFtcworCisg ICEkb21wIHRhcmdldCB0ZWFtcworICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxv Y2sKKyAgeCA9IHggKyAxCisgICEkb21wIGVuZCB0YXJnZXQgdGVhbXMgISB7IGRnLWVycm9y ICJVbmV4cGVjdGVkICEuT01QIEVORCBUQVJHRVQgVEVBTVMgc3RhdGVtZW50IiB9CisKKyAg ISRvbXAgY3JpdGljYWwKKyAgYmxvY2sKKyAgICB4ID0geCArIDEKKyAgZW5kIGJsb2NrCisK KyAgISRvbXAgY3JpdGljYWwKKyAgYmxvY2sKKyAgICB4ID0geCArIDEKKyAgZW5kIGJsb2Nr CisgICEkb21wIGVuZCBjcml0aWNhbAorCisgICEkb21wIGNyaXRpY2FsCisgIGJsb2NrCisg ICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworICB4ID0geCArIDEKKyAgISRvbXAgZW5kIGNy aXRpY2FsICEgeyBkZy1lcnJvciAiVW5leHBlY3RlZCAhLk9NUCBFTkQgQ1JJVElDQUwgc3Rh dGVtZW50IiB9CisKKyAgISRvbXAgdGFza2dyb3VwCisgIGJsb2NrCisgICAgeCA9IHggKyAx CisgIGVuZCBibG9jaworCisgICEkb21wIHRhc2tncm91cAorICBibG9jaworICAgIHggPSB4 ICsgMQorICBlbmQgYmxvY2sKKyAgISRvbXAgZW5kIHRhc2tncm91cAorCisgICEkb21wIHRh c2tncm91cAorICBibG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKyAgeCA9IHgg KyAxCisgICEkb21wIGVuZCB0YXNrZ3JvdXAgISB7IGRnLWVycm9yICJVbmV4cGVjdGVkICEu T01QIEVORCBUQVNLR1JPVVAgc3RhdGVtZW50IiB9CisKKyAgISRvbXAgb3JkZXJlZAorICBi bG9jaworICAgIHggPSB4ICsgMQorICBlbmQgYmxvY2sKKworICAhJG9tcCBvcmRlcmVkCisg IGJsb2NrCisgICAgeCA9IHggKyAxCisgIGVuZCBibG9jaworICAhJG9tcCBlbmQgb3JkZXJl ZAorCisgICEkb21wIG9yZGVyZWQKKyAgYmxvY2sKKyAgICB4ID0geCArIDEKKyAgZW5kIGJs b2NrCisgIHggPSB4ICsgMQorICAhJG9tcCBlbmQgb3JkZXJlZCAhIHsgZGctZXJyb3IgIlVu ZXhwZWN0ZWQgIS5PTVAgRU5EIE9SREVSRUQgc3RhdGVtZW50IiB9CisKK2VuZCBwcm9ncmFt Cg== --------------7D715FCD792CF5EA7EB6D1A8--