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 2DEC0385783F; Tue, 18 Jul 2023 12:11:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2DEC0385783F 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="6.01,214,1684828800"; d="diff'?scan'208";a="12140050" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 18 Jul 2023 04:11:17 -0800 IronPort-SDR: 3eCi4vo1FO4RMCnj4lrWS/YFA03zJnZ1vuRMH0uP4ugD4HkI2oJoFDmPy42SOEhlKO5tpo+Zqb RR6nJTeGouIL8eTBzMdySsbkDtVwh+z/aCx4upbJtyaKqEgZba4zcYotwToIwDRleCO4ksumo9 /GZepmAA51V3FWhs/RpjJC9uNZuuu9/CTwMkfTGjoT85vKtgncB1PKM8QI7374IaZ7Nf1aOqEn jzLV2aItt2unaliWHpG4JoLERVSMwLHJRyqoKavhiKLl5lFjZKZpdPuhieFsYfcKhuHQRZN1H6 IeA= Content-Type: multipart/mixed; boundary="------------fbRIisUznYTWZJ6hEOA5Kk6N" Message-ID: Date: Tue, 18 Jul 2023 14:11:13 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Content-Language: en-US To: gcc-patches , fortran , Jakub Jelinek From: Tobias Burnus Subject: [patch] OpenMP/Fortran: Non-rectangular loops with constant steps other than 1 or -1 [PR107424] X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-8.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,KAM_SHORT,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: --------------fbRIisUznYTWZJ6hEOA5Kk6N Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Comments regarding the validity of the Fortran assumptions are welcome! This patch now uses a 'simple' loop for OpenMP loops with a constant loop-step size. Before, it only did so for step =3D =C2=B11. (Otherwise, a count variable is used from which the original loop index variable is calculated from.) For details, see the attached patch or https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107424#c12 (comment 12 + 14 plus the email linked in comment 12). Comments? Remarks? If there are none, I will relatively soonish commit the attached patch to mainline, only. Tobias ----------------- 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 --------------fbRIisUznYTWZJ6hEOA5Kk6N Content-Type: text/x-patch; charset="UTF-8"; name="non-rect-nonunit-step.diff" Content-Disposition: attachment; filename="non-rect-nonunit-step.diff" Content-Transfer-Encoding: base64 T3Blbk1QL0ZvcnRyYW46IE5vbi1yZWN0YW5ndWxhciBsb29wcyB3aXRoIGNvbnN0YW50IHN0 ZXBzIG90aGVyIHRoYW4gMSBvciAtMSBbUFIxMDc0MjRdCgpCZWZvcmUgdGhpcyBjb21taXQs IGdmb3J0cmFuIHByb2R1Y2VkIHdpdGggT3Blbk1QIGZvciAnZG8gaSA9IDEsMTAsMicKdGhl IGNvZGUKICBmb3IgKGNvdW50LjAgPSAwOyBjb3VudC4wIDwgNTsgY291bnQuMCA9IGNvdW50 LjAgKyAxKQogICAgaSA9IGNvdW50LjAgKiAyICsgMTsKCldoaWxlIHN1Y2ggYW4gaW5uZXIg bG9vcCBjYW4gYmUgY29sbGFwc2VkLCBhIG5vbi1yZWN0YW5ndWxhciBjb3VsZCBub3QuCldp dGggdGhpcyBjb21taXQgYW5kIGZvciBhbGwgY29uc3RhbnQgbG9vcCBzdGVwcywgYSBzaW1w bGUgbG9vcCBzdWNoCmFzICdmb3IgKGkgPSAxOyBpIDw9IDEwOyBpID0gaSArIDIpJyBpcyBj cmVhdGVkLiAoQmVmb3JlIG9ubHkgZm9yIHRoZQpjb25zdGFudCBzdGVwcyBvZiAxIGFuZCAt MS4pCgpUaGUgY29uc3RhbnQgc3RlcCBwZXJtaXRzIHRvIGtub3cgdGhlIGRpcmVjdGlvbiAo aW5jcmVhc2luZy9kZWNyZWFzaW5nKQp0aGF0IGlzIHJlcXVpcmVkIGZvciB0aGUgbG9vcCBj b25kaXRpb24uCgpUaGUgbmV3IGNvZGUgaXMgb25seSB2YWxpZCBpZiBvbmUgYXNzdW1lcyBu byBvdmVyZmxvdyBvZiB0aGUgbG9vcCB2YXJpYWJsZS4KSG93ZXZlciwgdGhlIEZvcnRyYW4g c3RhbmRhcmQgY2FuIGJlIHJlYWQgdGhhdCB0aGlzIG11c3QgYmUgZW5zdXJlZCBieQp0aGUg dXNlci4gTmFtZWx5LCB0aGUgRm9ydHJhbiBzdGFuZGFyZCByZXF1aXJlcyAoRjIwMjMsIDEw LjEuNS4yLjQpOgoiVGhlIGV4ZWN1dGlvbiBvZiBhbnkgbnVtZXJpYyBvcGVyYXRpb24gd2hv c2UgcmVzdWx0IGlzIG5vdCBkZWZpbmVkIGJ5CnRoZSBhcml0aG1ldGljIHVzZWQgYnkgdGhl IHByb2Nlc3NvciBpcyBwcm9oaWJpdGVkLiIKCkFuZCwgZm9yIERPIGxvb3BzLCBGMjAyMydz ICIxMS4xLjcuNC4zIFRoZSBleGVjdXRpb24gY3ljbGUiIGhhcyB0aGUKZm9sbG93aW5nOiBU aGUgbnVtYmVyIG9mIGxvb3AgaXRlcmF0aW9ucyBoYW5kbGVkIGJ5IGFuIGl0ZXJhdGlvbiBj b3VudCwKd2hpY2ggd291bGQgcGVybWl0IGNvZGUgbGlrZSAnZG8gaSA9IGh1Z2UoaSktNSwg aHVnZShpKSw0Jy4gSG93ZXZlciwKaW4gc3RlcCAoMyksIHRoaXMgY291bnQgaXMgbm90IG9u bHkgZGVjcmVtZW50ZWQgYnkgb25lIGJ1dCBhbHNvOgogICIuLi4gVGhlIERPIHZhcmlhYmxl LCBpZiBhbnksIGlzIGluY3JlbWVudGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKICBpbmNyZW1l bnRhdGlvbiBwYXJhbWV0ZXIgbTMuIgpBbmQgZm9yIHRoZSBleGFtcGxlIGFib3ZlLCAnaScg d291bGQgYmUgJ2h1Z2UoaSkrMycgaW4gdGhlIGxhc3QKZXhlY3V0aW9uIGN5Y2xlLCB3aGlj aCBleGNlZWRzIHRoZSBsYXJnZXN0IG1vZGVsIG51bWJlciBhbmQgc2hvdWxkCnJlbmRlciB0 aGUgZXhhbXBsZSBhcyBpbnZhbGlkLgoKCVBSIGZvcnRyYW4vMTA3NDI0CgpnY2MvZm9ydHJh bi9DaGFuZ2VMb2c6CgoJKiB0cmFucy1vcGVubXAuY2MgKGdmY19ub25yZWN0X2xvb3BfZXhw cik6IEFjY2VwdCBhbGwKCWNvbnN0YW50IGxvb3Agc3RlcHMuCgkoZ2ZjX3RyYW5zX29tcF9k byk6IExpa2V3aXNlOyB1c2Ugc2lnbiB0byBkZXRlcm1pbmUKCWxvb3AgZGlyZWN0aW9uLgoK bGliZ29tcC9DaGFuZ2VMb2c6CgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL25vbi1y ZWN0YW5ndWxhci1sb29wLTEuZjkwOiBFbmFibGVkCgljb21tZW50ZWQgdGVzdHMuCgkqIHRl c3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtMWEuZjkwOiBS ZW1vdmVkLgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1s b29wLTUuZjkwOiBDaGFuZ2UKCXRlc3RjYXNlIHRvIHVzZSBhIG5vbi1jb25zdGFudCBzdGVw IHRvIHJldGFpbiB0aGUgJ3NvcnJ5JyB0ZXN0LgogICAgICAgICogdGVzdHN1aXRlL2xpYmdv bXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC02LmY5MDogTmV3IHRlc3QuCgpnY2Mv dGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGdmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTIuZjkw OiBVcGRhdGUgZHVtcCB0byByZW1vdmUKCXRoZSBhZGRpdGlvbmFsIGNvdW50IHZhcmlhYmxl LgoKIGdjYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYyAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEyICstCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTIuZjkw ICAgICAgICB8ICAgNCArLQogLi4uL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXIt bG9vcC0xLmY5MCAgICAgfCA1MzcgKysrKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vbGliZ29t cC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1sb29wLTFhLmY5MCAgICB8IDM3NCAtLS0tLS0t LS0tLS0tLQogLi4uL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC01LmY5 MCAgICAgfCAgMTAgKy0KIC4uLi9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxv b3AtNi5mOTAgICAgIHwgMTk2ICsrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDQ3NyBpbnNl cnRpb25zKCspLCA2NTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v dHJhbnMtb3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjCmluZGV4IGM4 OGVlM2M3NjU2Li5lMzNiMThmZGFkYSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMt b3Blbm1wLmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwpAQCAtNTM3NCwx MCArNTM3NCwxMCBAQCBnZmNfbm9ucmVjdF9sb29wX2V4cHIgKHN0bXRibG9ja190ICpwYmxv Y2ssIGdmY19zZSAqc2VwLCBpbnQgbG9vcF9uLAogCiAgIGlmICghc2ltcGxlKQogICAgIHsK LSAgICAgIC8qIEZJWE1FOiBIYW5kbGUgbm9uLXVuaXQgaXRlciBzdGVwcywgY2YuIFBSIGZv cnRyYW4vMTA3NDI0LiAgKi8KKyAgICAgIC8qIEZJWE1FOiBIYW5kbGUgbm9uLWNvbnN0IGl0 ZXIgc3RlcHMsIGNmLiBQUiBmb3J0cmFuLzEwNzQyNC4gICovCiAgICAgICBzb3JyeV9hdCAo Z2ZjX2dldF9sb2NhdGlvbiAoJmN1cnJfbG9vcF92YXItPndoZXJlKSwKLQkJIm5vbi1yZWN0 YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQgMSAiCi0J CSJvciAtMSBmb3IgJXFzIiwgY3Vycl9sb29wX3Zhci0+c3ltdHJlZS0+bi5zeW0tPm5hbWUp OworCQkibm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIG5vbi1jb25zdGFudCBzdGVw IGZvciAlcXMiLAorCQljdXJyX2xvb3BfdmFyLT5zeW10cmVlLT5uLnN5bS0+bmFtZSk7CiAg ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01NTc4LDEwICs1NTc4LDggQEAgZ2Zj X3RyYW5zX29tcF9kbyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19leGVjX29wIG9wLCBzdG10Ymxv Y2tfdCAqcGJsb2NrLAogICAgICAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAocGJsb2NrLCAm c2UucHJlKTsKICAgICAgIHN0ZXAgPSBnZmNfZXZhbHVhdGVfbm93IChzZS5leHByLCBwYmxv Y2spOwogCi0gICAgICBpZiAoaW50ZWdlcl9vbmVwIChzdGVwKSkKLQlzaW1wbGUgPSAxOwot ICAgICAgZWxzZSBpZiAodHJlZV9pbnRfY3N0X2VxdWFsIChzdGVwLCBpbnRlZ2VyX21pbnVz X29uZV9ub2RlKSkKLQlzaW1wbGUgPSAtMTsKKyAgICAgIGlmIChUUkVFX0NPREUgKHN0ZXAp ID09IElOVEVHRVJfQ1NUKQorCXNpbXBsZSA9IHRyZWVfaW50X2NzdF9zZ24gKHN0ZXApOwog CiAgICAgICBnZmNfaW5pdF9zZSAoJnNlLCBOVUxMKTsKICAgICAgIGlmICghY2xhdXNlcy0+ bm9uX3JlY3Rhbmd1bGFyCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2dvbXAvbGluZWFyLTIuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xp bmVhci0yLmY5MAppbmRleCAwNWYwMDdmZDVjMi4uODhkZjk2ZTliOGYgMTAwNjQ0Ci0tLSBh L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9saW5lYXItMi5mOTAKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVhci0yLmY5MApAQCAtMTA1LDggKzEw NSw4IEBAIGVuZCBtb2R1bGUKICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICIjcHJhZ21hIG9tcCBmb3Igbm93YWl0IiA2ICJvcmlnaW5hbCIgfSB9CiAhIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgZm9yIGxpbmVhclxcKHg6 RFxcLlxbMC05XF0rXFwpIG5vd2FpdCIgMSAib3JpZ2luYWwiIH0gfQogISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIGZvciBsaW5lYXJcXCh4OnZh bCxzdGVwXFwoRFxcLlxbMC05XF0rXFwpXFwpIG5vd2FpdCIgMSAib3JpZ2luYWwiIH0gfQot ISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHNpbWQg bGluZWFyXFwoY291bnRcXC5cWzAtOVxdOjFcXCkgbGluZWFyXFwoaTozXFwpIiAyICJvcmln aW5hbCIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdt YSBvbXAgc2ltZCBsaW5lYXJcXChjb3VudFxcLlxbMC05XF06MVxcKSBsaW5lYXJcXChpOnZh bCxzdGVwXFwoM1xcKVxcKSIgMiAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHNpbWQgbGluZWFyXFwoaTozXFwpIiAy ICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi I3ByYWdtYSBvbXAgc2ltZCBsaW5lYXJcXChpOnZhbCxzdGVwXFwoM1xcKVxcKSIgMiAib3Jp Z2luYWwiIH0gfQogISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFn bWEgb21wIHNpbWQgbGluZWFyXFwoaToxXFwpIGxpbmVhclxcKHg6RFxcLlxbMC05XF0rXFwp IiAyICJvcmlnaW5hbCIgfSB9CiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiI3ByYWdtYSBvbXAgc2ltZCBsaW5lYXJcXChpOjFcXCkgbGluZWFyXFwoeDp2YWwsc3Rl cFxcKERcXC5cWzAtOVxdK1xcKVxcKSIgMiAib3JpZ2luYWwiIH0gfQogISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHNpbWQgbGluZWFyXFwoaTpE XFwuXFswLTlcXStcXCkiIDIgIm9yaWdpbmFsIiB9IH0KZGlmZiAtLWdpdCBhL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC0xLmY5MCBi L2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9v cC0xLmY5MAppbmRleCBkYmJkMThhMTQ0NC4uZDA3NGQ0ZGU1YTAgMTAwNjQ0Ci0tLSBhL2xp YmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC0x LmY5MAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rh bmd1bGFyLWxvb3AtMS5mOTAKQEAgLTYsOSArNiw2IEBACiAKICEgTm9ucmVjdGFuZ3VsYXIg bG9vcCBuZXN0cyBjaGVja3MKIAotISBTZWUgUFIgb3Igbm9uLXJlY3Rhbmd1bGFyLWxvb3At MWEuZjkwIGZvciB0aGUgY29tbWVudGVkIHRlc3RzCi0hIEhpbnQ6IFRob3NlIHVzZSBzdGVw IGZvciBsb29wIHZhcnMgcGFydCBvZiBub25yZWN0YW5ndWxhciBsb29wIG5lc3RzCi0KIG1v ZHVsZSBtCiAgIGltcGxpY2l0IG5vbmUgKHR5cGUsIGV4dGVybmFsKQogY29udGFpbnMKQEAg LTI2LDMyICsyMywzMiBAQCBzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrX3NpbWRfMQog ICAhIFVzZSAnaScgb3IgJ2onLCB1bml0IHN0ZXAgb24gJ2knIG9yIG9uICdqJyAtPiA0IGxv b3BzCiAgICEgVGhlbiBzYW1lLCBleGNlcHQgdXNlIG5vbi11bml0IHN0ZXAgZm9yICdrJwog Ci0hICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCi0hICBkbyBpID0g MSwgbgotISAgICBkbyBqID0gMSwgbSwgMgotISAgICAgIGRvIGsgPSBqIC0gNDEsIHAKLSEg ICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKLSEgICAgICBl bmQgZG8KLSEgICAgZW5kIGRvCi0hICBlbmQgZG8KLSEgIGlmIChrIC89IHAgKyAxKSBlcnJv ciBzdG9wCi0KLSEgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKLSEg IGRvIGkgPSAxLCBuLCAyCi0hICAgIGRvIGogPSAxLCBtCi0hICAgICAgZG8gayA9IGkgLSA0 MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAot ISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVuZCBkbwotISAgaWYgKGsgLz0gcCAr IDEpIGVycm9yIHN0b3AKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShr KQorICBkbyBpID0gMSwgbgorICAgIGRvIGogPSAxLCBtLCAyCisgICAgICBkbyBrID0gaiAt IDQxLCBwCisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AK KyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEp IGVycm9yIHN0b3AKKworICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGsp CisgIGRvIGkgPSAxLCBuLCAyCisgICAgZG8gaiA9IDEsIG0KKyAgICAgIGRvIGsgPSBpIC0g NDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAor ICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkg ZXJyb3Igc3RvcAogCiAgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykK ICAgZG8gaSA9IDEsIG4sIDIKICAgICBkbyBqID0gMSwgbQogICAgICAgZG8gayA9IGogLSA0 MSwgcAogICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSB0aGVuCi0gICAgICAg ICAgcHJpbnQgKiwgaSwgaiwgayxwLCAiIC0+IGksIGosIGssIHAgICAoayA8IDEgLSA0MSAu b3IuIGsgPiBwKSIKKyAgICAgICAgICAhIHByaW50ICosIGksIGosIGsscCwgIiAtPiBpLCBq LCBrLCBwICAgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkiCiAgICAgICAgICAgZXJyb3Igc3Rv cAogICAgICAgICBlbmQgaWYKICAgICAgIGVuZCBkbwpAQCAtNjYsNyArNjMsNyBAQCBzdWJy b3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrX3NpbWRfMQogICAgIGRvIGogPSAxLCBtCiAgICAg ICBkbyBrID0gaiAtIDQxLCBwCiAgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHAp IHRoZW4KLSAgICAgICAgICBwcmludCAqLCBpLCBqLCBrLHAsICIgLT4gaSwgaiwgaywgcCAg IChrIDwgMSAtIDQxIC5vci4gayA+IHApIgorICAgICAgICAgICEgcHJpbnQgKiwgaSwgaiwg ayxwLCAiIC0+IGksIGosIGssIHAgICAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSIKICAgICAg ICAgICBlcnJvciBzdG9wCiAgICAgICAgIGVuZCBpZgogICAgICAgZW5kIGRvCkBAIC0xMDIs MjUgKzk5LDI1IEBAIHN1YnJvdXRpbmUgbGFzdHByaXZhdGVfY2hlY2tfc2ltZF8xCiAKICAg ISBTYW1lIGJ1dCAncHJpdmF0ZScgZm9yIGFsbCAoaSxqKSB2YXJzCiAKLSEgICEkb21wIHNp bWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0ZShpLGopCi0hICBkbyBpID0g MSwgbgotISAgICBkbyBqID0gMSwgbSwgMgotISAgICAgIGRvIGsgPSBqIC0gNDEsIHAKLSEg ICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKLSEgICAgICBl bmQgZG8KLSEgICAgZW5kIGRvCi0hICBlbmQgZG8KLSEgIGlmIChrIC89IHAgKyAxKSBlcnJv ciBzdG9wCi0hCi0hICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHBy aXZhdGUoaSxqKQotISAgZG8gaSA9IDEsIG4sIDIKLSEgICAgZG8gaiA9IDEsIG0KLSEgICAg ICBkbyBrID0gaSAtIDQxLCBwCi0hICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBw KSBlcnJvciBzdG9wCi0hICAgICAgZW5kIGRvCi0hICAgIGVuZCBkbwotISAgZW5kIGRvCi0h ICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMp IGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwgbgorICAgIGRvIGog PSAxLCBtLCAyCisgICAgICBkbyBrID0gaiAtIDQxLCBwCisgICAgICAgIGlmIChrIDwgMSAt IDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbwor ICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKworICAhJG9tcCBzaW1k IGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwg biwgMgorICAgIGRvIGogPSAxLCBtCisgICAgICBkbyBrID0gaSAtIDQxLCBwCisgICAgICAg IGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbwor ICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKIAog ICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZhdGUoaSxqKQog ICBkbyBpID0gMSwgbiwgMgpAQCAtMTQ0LDI3ICsxNDEsMjcgQEAgc3Vicm91dGluZSBsYXN0 cHJpdmF0ZV9jaGVja19zaW1kXzEKIAogICAhIFNhbWUgLSBidXQgd2l0aCBsYXN0cHJpdmF0 ZShpLGopCiAKLSEgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFz dHByaXZhdGUoaSxqKQotISAgZG8gaSA9IDEsIG4KLSEgICAgZG8gaiA9IDEsIG0sIDIKLSEg ICAgICBkbyBrID0gaiAtIDQxLCBwCi0hICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsg PiBwKSBlcnJvciBzdG9wCi0hICAgICAgZW5kIGRvCi0hICAgIGVuZCBkbwotISAgZW5kIGRv Ci0hICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAotISAgaWYgKGkgLz0gbiArIDEgLm9y LiBqIC89IG0gKyAyKSBlcnJvciBzdG9wCi0KLSEgICEkb21wIHNpbWQgY29sbGFwc2UoMykg bGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSxqKQotISAgZG8gaSA9IDEsIG4sIDIKLSEg ICAgZG8gaiA9IDEsIG0KLSEgICAgICBkbyBrID0gaSAtIDQxLCBwCi0hICAgICAgICBpZiAo ayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCi0hICAgICAgZW5kIGRvCi0hICAg IGVuZCBkbwotISAgZW5kIGRvCi0hICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAotISAg aWYgKGkgLz0gbiArIDIgLm9yLiBqIC89IG0gKyAxKSBlcnJvciBzdG9wCisgICEkb21wIHNp bWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSxqKQorICBkbyBp ID0gMSwgbgorICAgIGRvIGogPSAxLCBtLCAyCisgICAgICBkbyBrID0gaiAtIDQxLCBwCisg ICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVu ZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0 b3AKKyAgaWYgKGkgLz0gbiArIDEgLm9yLiBqIC89IG0gKyAyKSBlcnJvciBzdG9wCisKKyAg ISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGop CisgIGRvIGkgPSAxLCBuLCAyCisgICAgZG8gaiA9IDEsIG0KKyAgICAgIGRvIGsgPSBpIC0g NDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAor ICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsgMSkg ZXJyb3Igc3RvcAorICBpZiAoaSAvPSBuICsgMiAub3IuIGogLz0gbSArIDEpIGVycm9yIHN0 b3AKIAogICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2 YXRlKGksaikKICAgZG8gaSA9IDEsIG4sIDIKQEAgLTIwMSwyNSArMTk4LDI1IEBAIHN1YnJv dXRpbmUgbGFzdHByaXZhdGVfY2hlY2tfZG9fc2ltZF8xCiAgICEgVXNlICdpJyBvciAnaics IHVuaXQgc3RlcCBvbiAnaScgb3Igb24gJ2onIC0+IDQgbG9vcHMKICAgISBUaGVuIHNhbWUs IGV4Y2VwdCB1c2Ugbm9uLXVuaXQgc3RlcCBmb3IgJ2snCiAKLSEgICEkb21wIHBhcmFsbGVs IGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKLSEgIGRvIGkgPSAxLCBuCi0h ICAgIGRvIGogPSAxLCBtLCAyCi0hICAgICAgZG8gayA9IGogLSA0MSwgcAotISAgICAgICAg aWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotISAgICAgIGVuZCBkbwot ISAgICBlbmQgZG8KLSEgIGVuZCBkbwotISAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AK LQotISAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShr KQotISAgZG8gaSA9IDEsIG4sIDIKLSEgICAgZG8gaiA9IDEsIG0KLSEgICAgICBkbyBrID0g aSAtIDQxLCBwCi0hICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBz dG9wCi0hICAgICAgZW5kIGRvCi0hICAgIGVuZCBkbwotISAgZW5kIGRvCi0hICBpZiAoayAv PSBwICsgMSkgZXJyb3Igc3RvcAorICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNl KDMpIGxhc3Rwcml2YXRlKGspCisgIGRvIGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0sIDIK KyAgICAgIGRvIGsgPSBqIC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBr ID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbwor ICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorCisgICEkb21wIHBhcmFsbGVsIGRvIHNp bWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKKyAgZG8gaSA9IDEsIG4sIDIKKyAgICBk byBqID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwgcAorICAgICAgICBpZiAoayA8IDEg LSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8K KyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCiAKICAgISRvbXAgcGFy YWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQogICBkbyBpID0gMSwg biwgMgpAQCAtMjQzLDI1ICsyNDAsMjUgQEAgc3Vicm91dGluZSBsYXN0cHJpdmF0ZV9jaGVj a19kb19zaW1kXzEKIAogICAhIFNhbWUgYnV0ICdwcml2YXRlJyBmb3IgYWxsIChpLGopIHZh cnMKIAotISAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0 ZShrKSBwcml2YXRlKGksaikKLSEgIGRvIGkgPSAxLCBuCi0hICAgIGRvIGogPSAxLCBtLCAy Ci0hICAgICAgZG8gayA9IGogLSA0MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9y LiBrID4gcCkgZXJyb3Igc3RvcAotISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVu ZCBkbwotISAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKLQotISAgISRvbXAgcGFyYWxs ZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKLSEg IGRvIGkgPSAxLCBuLCAyCi0hICAgIGRvIGogPSAxLCBtCi0hICAgICAgZG8gayA9IGkgLSA0 MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAot ISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVuZCBkbwotISAgaWYgKGsgLz0gcCAr IDEpIGVycm9yIHN0b3AKKyAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBs YXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAgZG8gaSA9IDEsIG4KKyAgICBkbyBqID0g MSwgbSwgMgorICAgICAgZG8gayA9IGogLSA0MSwgcAorICAgICAgICBpZiAoayA8IDEgLSA0 MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAg ZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgcGFyYWxs ZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAg ZG8gaSA9IDEsIG4sIDIKKyAgICBkbyBqID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwg cAorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAg ICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJv ciBzdG9wCiAKICAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJp dmF0ZShrKSBwcml2YXRlKGksaikKICAgZG8gaSA9IDEsIG4sIDIKQEAgLTI4NSwyNyArMjgy LDI3IEBAIHN1YnJvdXRpbmUgbGFzdHByaXZhdGVfY2hlY2tfZG9fc2ltZF8xCiAKICAgISBT YW1lIC0gYnV0IHdpdGggbGFzdHByaXZhdGUoaSxqKQogCi0hICAhJG9tcCBwYXJhbGxlbCBk byBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGksaikKLSEg IGRvIGkgPSAxLCBuCi0hICAgIGRvIGogPSAxLCBtLCAyCi0hICAgICAgZG8gayA9IGogLSA0 MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAot ISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVuZCBkbwotISAgaWYgKGsgLz0gcCAr IDEpIGVycm9yIHN0b3AKLSEgIGlmIChpIC89IG4gKyAxIC5vci4gaiAvPSBtICsgMikgZXJy b3Igc3RvcAotCi0hICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rw cml2YXRlKGspIGxhc3Rwcml2YXRlKGksaikKLSEgIGRvIGkgPSAxLCBuLCAyCi0hICAgIGRv IGogPSAxLCBtCi0hICAgICAgZG8gayA9IGkgLSA0MSwgcAotISAgICAgICAgaWYgKGsgPCAx IC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotISAgICAgIGVuZCBkbwotISAgICBlbmQg ZG8KLSEgIGVuZCBkbwotISAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKLSEgIGlmIChp IC89IG4gKyAyIC5vci4gaiAvPSBtICsgMSkgZXJyb3Igc3RvcAorICAhJG9tcCBwYXJhbGxl bCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGksaikK KyAgZG8gaSA9IDEsIG4KKyAgICBkbyBqID0gMSwgbSwgMgorICAgICAgZG8gayA9IGogLSA0 MSwgcAorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisg ICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBl cnJvciBzdG9wCisgIGlmIChpIC89IG4gKyAxIC5vci4gaiAvPSBtICsgMikgZXJyb3Igc3Rv cAorCisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUo aykgbGFzdHByaXZhdGUoaSxqKQorICBkbyBpID0gMSwgbiwgMgorICAgIGRvIGogPSAxLCBt CisgICAgICBkbyBrID0gaSAtIDQxLCBwCisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4g ayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8K KyAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKyAgaWYgKGkgLz0gbiArIDIgLm9yLiBq IC89IG0gKyAxKSBlcnJvciBzdG9wCiAKICAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xs YXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCiAgIGRvIGkgPSAxLCBu LCAyCkBAIC0zNDMsMjUgKzM0MCwyNSBAQCBzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNr X2RvXzEKICAgISBVc2UgJ2knIG9yICdqJywgdW5pdCBzdGVwIG9uICdpJyBvciBvbiAnaicg LT4gNCBsb29wcwogICAhIFRoZW4gc2FtZSwgZXhjZXB0IHVzZSBub24tdW5pdCBzdGVwIGZv ciAnaycKIAotISAgISRvbXAgcGFyYWxsZWwgZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUo aykKLSEgIGRvIGkgPSAxLCBuCi0hICAgIGRvIGogPSAxLCBtLCAyCi0hICAgICAgZG8gayA9 IGogLSA0MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Ig c3RvcAotISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVuZCBkbwotISAgaWYgKGsg Lz0gcCArIDEpIGVycm9yIHN0b3AKLQotISAgISRvbXAgcGFyYWxsZWwgZG8gY29sbGFwc2Uo MykgbGFzdHByaXZhdGUoaykKLSEgIGRvIGkgPSAxLCBuLCAyCi0hICAgIGRvIGogPSAxLCBt Ci0hICAgICAgZG8gayA9IGkgLSA0MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9y LiBrID4gcCkgZXJyb3Igc3RvcAotISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVu ZCBkbwotISAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKKyAgISRvbXAgcGFyYWxsZWwg ZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKKyAgZG8gaSA9IDEsIG4KKyAgICBkbyBq ID0gMSwgbSwgMgorICAgICAgZG8gayA9IGogLSA0MSwgcAorICAgICAgICBpZiAoayA8IDEg LSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8K KyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgcGFy YWxsZWwgZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKKyAgZG8gaSA9IDEsIG4sIDIK KyAgICBkbyBqID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwgcAorICAgICAgICBpZiAo ayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBl bmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCiAKICAgISRv bXAgcGFyYWxsZWwgZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKICAgZG8gaSA9IDEs IG4sIDIKQEAgLTM4NSwyNSArMzgyLDI1IEBAIHN1YnJvdXRpbmUgbGFzdHByaXZhdGVfY2hl Y2tfZG9fMQogCiAgICEgU2FtZSBidXQgJ3ByaXZhdGUnIGZvciBhbGwgKGksaikgdmFycwog Ci0hICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2 YXRlKGksaikKLSEgIGRvIGkgPSAxLCBuCi0hICAgIGRvIGogPSAxLCBtLCAyCi0hICAgICAg ZG8gayA9IGogLSA0MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkg ZXJyb3Igc3RvcAotISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVuZCBkbwotISAg aWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKLQotISAgISRvbXAgcGFyYWxsZWwgZG8gY29s bGFwc2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0ZShpLGopCi0hICBkbyBpID0gMSwgbiwg MgotISAgICBkbyBqID0gMSwgbQotISAgICAgIGRvIGsgPSBpIC0gNDEsIHAKLSEgICAgICAg IGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKLSEgICAgICBlbmQgZG8K LSEgICAgZW5kIGRvCi0hICBlbmQgZG8KLSEgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9w CisgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHByaXZh dGUoaSxqKQorICBkbyBpID0gMSwgbgorICAgIGRvIGogPSAxLCBtLCAyCisgICAgICBkbyBr ID0gaiAtIDQxLCBwCisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9y IHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0g cCArIDEpIGVycm9yIHN0b3AKKworICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBs YXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAgZG8gaSA9IDEsIG4sIDIKKyAgICBkbyBq ID0gMSwgbQorICAgICAgZG8gayA9IGkgLSA0MSwgcAorICAgICAgICBpZiAoayA8IDEgLSA0 MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAg ZW5kIGRvCisgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCiAKICAgISRvbXAgcGFyYWxs ZWwgZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0ZShpLGopCiAgIGRvIGkg PSAxLCBuLCAyCkBAIC00MjcsMjcgKzQyNCwyNyBAQCBzdWJyb3V0aW5lIGxhc3Rwcml2YXRl X2NoZWNrX2RvXzEKIAogICAhIFNhbWUgLSBidXQgd2l0aCBsYXN0cHJpdmF0ZShpLGopCiAK LSEgICEkb21wIHBhcmFsbGVsIGRvIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rw cml2YXRlKGksaikKLSEgIGRvIGkgPSAxLCBuCi0hICAgIGRvIGogPSAxLCBtLCAyCi0hICAg ICAgZG8gayA9IGogLSA0MSwgcAotISAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4g cCkgZXJyb3Igc3RvcAotISAgICAgIGVuZCBkbwotISAgICBlbmQgZG8KLSEgIGVuZCBkbwot ISAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKLSEgIGlmIChpIC89IG4gKyAxIC5vci4g aiAvPSBtICsgMikgZXJyb3Igc3RvcAotCi0hICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBz ZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCi0hICBkbyBpID0gMSwgbiwg MgotISAgICBkbyBqID0gMSwgbQotISAgICAgIGRvIGsgPSBpIC0gNDEsIHAKLSEgICAgICAg IGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKLSEgICAgICBlbmQgZG8K LSEgICAgZW5kIGRvCi0hICBlbmQgZG8KLSEgIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9w Ci0hICBpZiAoaSAvPSBuICsgMiAub3IuIGogLz0gbSArIDEpIGVycm9yIHN0b3AKKyAgISRv bXAgcGFyYWxsZWwgZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUo aSxqKQorICBkbyBpID0gMSwgbgorICAgIGRvIGogPSAxLCBtLCAyCisgICAgIGRvIGsgPSBq IC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3Rv cAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBwICsg MSkgZXJyb3Igc3RvcAorICBpZiAoaSAvPSBuICsgMSAub3IuIGogLz0gbSArIDIpIGVycm9y IHN0b3AKKworICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShr KSBsYXN0cHJpdmF0ZShpLGopCisgIGRvIGkgPSAxLCBuLCAyCisgICAgZG8gaiA9IDEsIG0K KyAgICAgIGRvIGsgPSBpIC0gNDEsIHAKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBr ID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbwor ICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAorICBpZiAoaSAvPSBuICsgMiAub3IuIGog Lz0gbSArIDEpIGVycm9yIHN0b3AKIAogICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgz KSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCiAgIGRvIGkgPSAxLCBuLCAyCkBA IC00ODEsNDIgKzQ3OCw0MiBAQCBzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrXzIKICAg bSA9IDIzCiAgIHAgPSAyNwogCi0hICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNl KDMpIGxhc3Rwcml2YXRlKHApCi0hICBkbyBpID0gMSwgbgotISAgICBkbyBqID0gMSwgbSwy Ci0hICAgICAgZG8gayA9IDEsIGogKyA0MQotISAgICAgICAgZG8gbGwgPSAxLCBwLCAyCi0h ICAgICAgICAgIGlmIChrID4gMjMgKyA0MSAub3IuIGsgPCAxKSBlcnJvciBzdG9wCi0hICAg ICAgICBlbmQgZG8KLSEgICAgICBlbmQgZG8KLSEgICAgZW5kIGRvCi0hICBlbmQgZG8KLSEg IGlmIChsbCAvPSAyOSkgZXJyb3Igc3RvcAotCi0hICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMp IGxhc3Rwcml2YXRlKHApCi0hICBkbyBpID0gMSwgbgotISAgICBkbyBqID0gMSwgbSwyCi0h ICAgICAgZG8gayA9IDEsIGogKyA0MQotISAgICAgICAgZG8gbGwgPSAxLCBwLCAyCi0hICAg ICAgICAgIGlmIChrID4gMjMgKyA0MSAub3IuIGsgPCAxKSBlcnJvciBzdG9wCi0hICAgICAg ICBlbmQgZG8KLSEgICAgICBlbmQgZG8KLSEgICAgZW5kIGRvCi0hICBlbmQgZG8KLSEgIGlm IChsbCAvPSAyOSkgZXJyb3Igc3RvcAotCi0hICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxh c3Rwcml2YXRlKGspCi0hICBkbyBpID0gMSwgbiwyCi0hICAgIGRvIGogPSAxLCBtCi0hICAg ICAgZG8gayA9IDEsIGkgKyA0MQotISAgICAgICAgaWYgKGsgPiAxMSArIDQxIC5vci4gayA8 IDEpIGVycm9yIHN0b3AKLSEgICAgICBlbmQgZG8KLSEgICAgZW5kIGRvCi0hICBlbmQgZG8K LSFpZiAoayAvPSA1MykgdGhlbgotISAgcHJpbnQgKiwgaywgNTMKLSEgIGVycm9yIHN0b3AK LSFlbmRpZgorICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2 YXRlKGxsKQorICBkbyBpID0gMSwgbgorICAgIGRvIGogPSAxLCBtLDIKKyAgICAgIGRvIGsg PSAxLCBqICsgNDEKKyAgICAgICAgZG8gbGwgPSAxLCBwLCAyCisgICAgICAgICAgaWYgKGsg PiAyMyArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyAgICAgICAgZW5kIGRvCisgICAg ICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChsbCAvPSAyOSkgZXJyb3Ig c3RvcAorCisgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUobGwpCisgIGRv IGkgPSAxLCBuCisgICAgZG8gaiA9IDEsIG0sMgorICAgICAgZG8gayA9IDEsIGogKyA0MQor ICAgICAgICBkbyBsbCA9IDEsIHAsIDIKKyAgICAgICAgICBpZiAoayA+IDIzICsgNDEgLm9y LiBrIDwgMSkgZXJyb3Igc3RvcAorICAgICAgICBlbmQgZG8KKyAgICAgIGVuZCBkbworICAg IGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGxsIC89IDI5KSBlcnJvciBzdG9wCisKKyAgISRv bXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorICBkbyBpID0gMSwgbiwyCisg ICAgZG8gaiA9IDEsIG0KKyAgICAgIGRvIGsgPSAxLCBpICsgNDEKKyAgICAgICAgaWYgKGsg PiAxMSArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVu ZCBkbworICBlbmQgZG8KK2lmIChrIC89IDUzKSB0aGVuCisgIHByaW50ICosIGssIDUzCisg IGVycm9yIHN0b3AKK2VuZGlmCiAKICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZh dGUoaykKIGRvIGkgPSAxLCBuLDIKQEAgLTU0NiwzMiArNTQzLDMyIEBAIGlmIChrIC89IDUz KSB0aGVuCiBlbmRpZgogCiAhIC0gU2FtZSBidXQgd2l0aG91dCAncHJpdmF0ZSc6Ci0hISRv bXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQotIWRvIGkgPSAxLCBuCi0hICBk byBqID0gMSwgbSwyCi0hICAgIGRvIGsgPSAxLCBqICsgNDEKLSEgICAgICBpZiAoayA+IDIz ICsgNDEgLm9yLiBrIDwgMSkgZXJyb3Igc3RvcAotISAgICBlbmQgZG8KLSEgIGVuZCBkbwot IWVuZCBkbwotIWlmIChrIC89IDY1KSB0aGVuCi0hICBwcmludCAqLCBrLCA2NQotISAgZXJy b3Igc3RvcAotIWVuZGlmCi0KLQotISEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZh dGUoaykKLSFkbyBpID0gMSwgbiwyCi0hICBkbyBqID0gMSwgbQotISAgICBkbyBrID0gMSwg aSArIDQxCi0hICAgICAgaWYgKGsgPiAxMSArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AK LSEgICAgZW5kIGRvCi0hICBlbmQgZG8KLSFlbmQgZG8KLSFpZiAoayAvPSA1MykgdGhlbgot ISAgcHJpbnQgKiwgaywgNTMKLSEgIGVycm9yIHN0b3AKLSFlbmRpZgorISRvbXAgc2ltZCBj b2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorZG8gaSA9IDEsIG4KKyAgZG8gaiA9IDEsIG0s MgorICAgIGRvIGsgPSAxLCBqICsgNDEKKyAgICAgIGlmIChrID4gMjMgKyA0MSAub3IuIGsg PCAxKSBlcnJvciBzdG9wCisgICAgZW5kIGRvCisgIGVuZCBkbworZW5kIGRvCitpZiAoayAv PSA2NSkgdGhlbgorICBwcmludCAqLCBrLCA2NQorICBlcnJvciBzdG9wCitlbmRpZgorCisK KyEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKK2RvIGkgPSAxLCBuLDIK KyAgZG8gaiA9IDEsIG0KKyAgICBkbyBrID0gMSwgaSArIDQxCisgICAgICBpZiAoayA+IDEx ICsgNDEgLm9yLiBrIDwgMSkgZXJyb3Igc3RvcAorICAgIGVuZCBkbworICBlbmQgZG8KK2Vu ZCBkbworaWYgKGsgLz0gNTMpIHRoZW4KKyAgcHJpbnQgKiwgaywgNTMKKyAgZXJyb3Igc3Rv cAorZW5kaWYKIAogISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQogZG8g aSA9IDEsIG4sMgpAQCAtNjAxLDMyICs1OTgsMzIgQEAgaWYgKGsgLz0gNTMpIHRoZW4KIGVu ZGlmCiAKICEgLSBhbGwgd2l0aCBsYXN0cHJpdmF0ZQotISEkb21wIHNpbWQgY29sbGFwc2Uo MykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSwgaikKLSFkbyBpID0gMSwgbgotISAg ZG8gaiA9IDEsIG0sMgotISAgICBkbyBrID0gMSwgaiArIDQxCi0hICAgICAgaWYgKGsgPiAy MyArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKLSEgICAgZW5kIGRvCi0hICBlbmQgZG8K LSFlbmQgZG8KLSFpZiAoayAvPSA2NSkgdGhlbgotISAgcHJpbnQgKiwgaywgNjUKLSEgIGVy cm9yIHN0b3AKLSFlbmRpZgotCi0KLSEhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2 YXRlKGspIGxhc3Rwcml2YXRlKGksIGopCi0hZG8gaSA9IDEsIG4sMgotISAgZG8gaiA9IDEs IG0KLSEgICAgZG8gayA9IDEsIGkgKyA0MQotISAgICAgIGlmIChrID4gMTEgKyA0MSAub3Iu IGsgPCAxKSBlcnJvciBzdG9wCi0hICAgIGVuZCBkbwotISAgZW5kIGRvCi0hZW5kIGRvCi0h aWYgKGsgLz0gNTMpIHRoZW4KLSEgIHByaW50ICosIGssIDUzCi0hICBlcnJvciBzdG9wCi0h ZW5kaWYKKyEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZh dGUoaSwgaikKK2RvIGkgPSAxLCBuCisgIGRvIGogPSAxLCBtLDIKKyAgICBkbyBrID0gMSwg aiArIDQxCisgICAgICBpZiAoayA+IDIzICsgNDEgLm9yLiBrIDwgMSkgZXJyb3Igc3RvcAor ICAgIGVuZCBkbworICBlbmQgZG8KK2VuZCBkbworaWYgKGsgLz0gNjUpIHRoZW4KKyAgcHJp bnQgKiwgaywgNjUKKyAgZXJyb3Igc3RvcAorZW5kaWYKKworCishJG9tcCBzaW1kIGNvbGxh cHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGksIGopCitkbyBpID0gMSwgbiwy CisgIGRvIGogPSAxLCBtCisgICAgZG8gayA9IDEsIGkgKyA0MQorICAgICAgaWYgKGsgPiAx MSArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKKyAgICBlbmQgZG8KKyAgZW5kIGRvCitl bmQgZG8KK2lmIChrIC89IDUzKSB0aGVuCisgIHByaW50ICosIGssIDUzCisgIGVycm9yIHN0 b3AKK2VuZGlmCiAKICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFz dHByaXZhdGUoaSwgaikKIGRvIGkgPSAxLCBuLDIKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVz dHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9ub24tcmVjdGFuZ3VsYXItbG9vcC0xYS5mOTAgYi9s aWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3At MWEuZjkwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3N2FhODg3OTQyZS4uMDAw MDAwMDAwMDAKLS0tIGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL25vbi1y ZWN0YW5ndWxhci1sb29wLTFhLmY5MAorKysgL2Rldi9udWxsCkBAIC0xLDM3NCArMCwwIEBA Ci0hIHsgZGctZG8gY29tcGlsZSB9Ci0hIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbXNz ZTIiIHsgdGFyZ2V0IHNzZTJfcnVudGltZSB9IH0KLSEgeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi1tYXZ4IiB7IHRhcmdldCBhdnhfcnVudGltZSB9IH0KLQotISBQUiBmb3J0cmFuLzEw NzQyNAotCi0hIE5vbnJlY3Rhbmd1bGFyIGxvb3AgbmVzdHMgY2hlY2tzCi0KLSEgPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSEg Tk9URTogVGhlIHRlc3RjYXNlcyBhcmUgZnJvbSBub24tcmVjdGFuZ3VsYXItbG9vcC0xLmY5 MCwKLSEgYnV0IGNvbW1lbnRlZCB0aGVyZS4gRmVlbCBmcmVlIHRvIHJlbW92ZSB0aGlzCi0h IGZpbGUgKyB1bmNvbW1lbnQgdGhlbSBpbiBub24tcmVjdGFuZ3VsYXItbG9vcC0xLmY5MAot ISBPdGhlcndpc2UsIHlvdSBuZWVkIHRvIGNoYW5nZSBpdCB0byAnZGctZG8gcnVuJyEKLSEg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLQotbW9kdWxlIG0KLSAgaW1wbGljaXQgbm9uZSAodHlwZSwgZXh0ZXJuYWwpCi1jb250 YWlucwotCi0hIFRoZSAnaycgbG9vcCB1c2VzIGkgb3IgaiBhcyBzdGFydCB2YWx1ZQotISBi dXQgYSBjb25zdGFudCBlbmQgdmFsdWUgc3VjaCB0aGF0ICdsYXN0cHJpdmF0ZScKLSEgc2hv dWxkIGJlIHdlbGwtZGVmaW5lZAotc3Vicm91dGluZSBsYXN0cHJpdmF0ZV9jaGVja19zaW1k XzEKLSAgaW50ZWdlciA6OiBuLG0scCwgaSxqLGsKLQotICBuID0gMTEKLSAgbSA9IDIzCi0g IHAgPSAyNwotCi0gICEgVXNlICdpJyBvciAnaicsIHVuaXQgc3RlcCBvbiAnaScgb3Igb24g J2onIC0+IDQgbG9vcHMKLSAgISBUaGVuIHNhbWUsIGV4Y2VwdCB1c2Ugbm9uLXVuaXQgc3Rl cCBmb3IgJ2snCi0KLSAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQot ICBkbyBpID0gMSwgbgotICAgIGRvIGogPSAxLCBtLCAyICAhIHsgZGctbWVzc2FnZSAic29y cnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVw IG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAtMSBmb3IgJ2onIiB9Ci0gICAgICBkbyBrID0g aiAtIDQxLCBwICAhIHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9Ci0gICAgICAgIGlmIChrIDwg MSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKLSAgICAgIGVuZCBkbwotICAgIGVuZCBk bwotICBlbmQgZG8KLSAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKLQotICAhJG9tcCBz aW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCi0gIGRvIGkgPSAxLCBuLCAyICAhIHsg ZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29w IG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAtMSBmb3IgJ2knIiB9 Ci0gICAgZG8gaiA9IDEsIG0KLSAgICAgIGRvIGsgPSBpIC0gNDEsIHAgICEgeyBkZy1ub3Rl ICJVc2VkIGhlcmUiIH0KLSAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJy b3Igc3RvcAotICAgICAgZW5kIGRvCi0gICAgZW5kIGRvCi0gIGVuZCBkbwotICBpZiAoayAv PSBwICsgMSkgZXJyb3Igc3RvcAotCi0gICEgU2FtZSBidXQgJ3ByaXZhdGUnIGZvciBhbGwg KGksaikgdmFycwotCi0gICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykg cHJpdmF0ZShpLGopCi0gIGRvIGkgPSAxLCBuCi0gICAgZG8gaiA9IDEsIG0sIDIgICEgeyBk Zy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3Ag bmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaiciIH0K LSAgICAgIGRvIGsgPSBqIC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KLSAg ICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotICAgICAgZW5k IGRvCi0gICAgZW5kIGRvCi0gIGVuZCBkbwotICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3Rv cAotCi0gICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0ZShp LGopCi0gIGRvIGkgPSAxLCBuLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVt ZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4g Y29uc3RhbnQgMSBvciAtMSBmb3IgJ2knIiB9Ci0gICAgZG8gaiA9IDEsIG0KLSAgICAgIGRv IGsgPSBpIC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KLSAgICAgICAgaWYg KGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotICAgICAgZW5kIGRvCi0gICAg ZW5kIGRvCi0gIGVuZCBkbwotICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAotCi0gICEg U2FtZSAtIGJ1dCB3aXRoIGxhc3Rwcml2YXRlKGksaikKLQotICAhJG9tcCBzaW1kIGNvbGxh cHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2YXRlKGksaikKLSAgZG8gaSA9IDEsIG4K LSAgICBkbyBqID0gMSwgbSwgMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVu dGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBvdGhlciB0aGFuIGNv bnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQotICAgICAgZG8gayA9IGogLSA0MSwgcCAgISB7 IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQotICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsg PiBwKSBlcnJvciBzdG9wCi0gICAgICBlbmQgZG8KLSAgICBlbmQgZG8KLSAgZW5kIGRvCi0g IGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCi0gIGlmIChpIC89IG4gKyAxIC5vci4gaiAv PSBtICsgMikgZXJyb3Igc3RvcAotCi0gICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHBy aXZhdGUoaykgbGFzdHByaXZhdGUoaSxqKQotICBkbyBpID0gMSwgbiwgMiAgISB7IGRnLW1l c3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0 IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdpJyIgfQotICAg IGRvIGogPSAxLCBtCi0gICAgICBkbyBrID0gaSAtIDQxLCBwICAhIHsgZGctbm90ZSAiVXNl ZCBoZXJlIiB9Ci0gICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0 b3AKLSAgICAgIGVuZCBkbwotICAgIGVuZCBkbwotICBlbmQgZG8KLSAgaWYgKGsgLz0gcCAr IDEpIGVycm9yIHN0b3AKLSAgaWYgKGkgLz0gbiArIDIgLm9yLiBqIC89IG0gKyAxKSBlcnJv ciBzdG9wCi0KLWVuZCBzdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNrX3NpbWRfMQotCi0K LSEgU2FtZSBidXQgd2l0aCBkbyBzaW1kCi1zdWJyb3V0aW5lIGxhc3Rwcml2YXRlX2NoZWNr X2RvX3NpbWRfMQotICBpbnRlZ2VyIDo6IG4sbSxwLCBpLGosawotCi0gIG4gPSAxMQotICBt ID0gMjMKLSAgcCA9IDI3Ci0KLSAgISBVc2UgJ2knIG9yICdqJywgdW5pdCBzdGVwIG9uICdp JyBvciBvbiAnaicgLT4gNCBsb29wcwotICAhIFRoZW4gc2FtZSwgZXhjZXB0IHVzZSBub24t dW5pdCBzdGVwIGZvciAnaycKLQotICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNl KDMpIGxhc3Rwcml2YXRlKGspCi0gIGRvIGkgPSAxLCBuCi0gICAgZG8gaiA9IDEsIG0sIDIg ICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFy IGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAn aiciIH0KLSAgICAgIGRvIGsgPSBqIC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUi IH0KLSAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotICAg ICAgZW5kIGRvCi0gICAgZW5kIGRvCi0gIGVuZCBkbwotICBpZiAoayAvPSBwICsgMSkgZXJy b3Igc3RvcAotCi0gICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHBy aXZhdGUoaykKLSAgZG8gaSA9IDEsIG4sIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5p bXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIg dGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaSciIH0KLSAgICBkbyBqID0gMSwgbQotICAg ICAgZG8gayA9IGkgLSA0MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQotICAgICAg ICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCi0gICAgICBlbmQgZG8K LSAgICBlbmQgZG8KLSAgZW5kIGRvCi0gIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCi0K LSAgISBTYW1lIGJ1dCAncHJpdmF0ZScgZm9yIGFsbCAoaSxqKSB2YXJzCi0KLSAgISRvbXAg cGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGks aikKLSAgZG8gaSA9IDEsIG4KLSAgICBkbyBqID0gMSwgbSwgMiAgISB7IGRnLW1lc3NhZ2Ug InNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGgg c3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQotICAgICAgZG8g ayA9IGogLSA0MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQotICAgICAgICBpZiAo ayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCi0gICAgICBlbmQgZG8KLSAgICBl bmQgZG8KLSAgZW5kIGRvCi0gIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCi0KLSAgISRv bXAgcGFyYWxsZWwgZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRl KGksaikKLSAgZG8gaSA9IDEsIG4sIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBs ZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhh biBjb25zdGFudCAxIG9yIC0xIGZvciAnaSciIH0KLSAgICBkbyBqID0gMSwgbQotICAgICAg ZG8gayA9IGkgLSA0MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQotICAgICAgICBp ZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCi0gICAgICBlbmQgZG8KLSAg ICBlbmQgZG8KLSAgZW5kIGRvCi0gIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCi0KLSAg ISBTYW1lIC0gYnV0IHdpdGggbGFzdHByaXZhdGUoaSxqKQotCi0gICEkb21wIHBhcmFsbGVs IGRvIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSxqKQot ICBkbyBpID0gMSwgbgotICAgIGRvIGogPSAxLCBtLCAyICAhIHsgZGctbWVzc2FnZSAic29y cnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVw IG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAtMSBmb3IgJ2onIiB9Ci0gICAgICBkbyBrID0g aiAtIDQxLCBwICAhIHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9Ci0gICAgICAgIGlmIChrIDwg MSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKLSAgICAgIGVuZCBkbwotICAgIGVuZCBk bwotICBlbmQgZG8KLSAgaWYgKGsgLz0gcCArIDEpIGVycm9yIHN0b3AKLSAgaWYgKGkgLz0g biArIDEgLm9yLiBqIC89IG0gKyAyKSBlcnJvciBzdG9wCi0KLSAgISRvbXAgcGFyYWxsZWwg ZG8gc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCi0g IGRvIGkgPSAxLCBuLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6 IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3Rh bnQgMSBvciAtMSBmb3IgJ2knIiB9Ci0gICAgZG8gaiA9IDEsIG0KLSAgICAgIGRvIGsgPSBp IC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KLSAgICAgICAgaWYgKGsgPCAx IC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotICAgICAgZW5kIGRvCi0gICAgZW5kIGRv Ci0gIGVuZCBkbwotICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAotICBpZiAoaSAvPSBu ICsgMiAub3IuIGogLz0gbSArIDEpIGVycm9yIHN0b3AKLQotZW5kIHN1YnJvdXRpbmUgbGFz dHByaXZhdGVfY2hlY2tfZG9fc2ltZF8xCi0KLQotCi0hIFNhbWUgYnV0IHdpdGggZG8KLXN1 YnJvdXRpbmUgbGFzdHByaXZhdGVfY2hlY2tfZG9fMQotICBpbnRlZ2VyIDo6IG4sbSxwLCBp LGosawotCi0gIG4gPSAxMQotICBtID0gMjMKLSAgcCA9IDI3Ci0KLSAgISBVc2UgJ2knIG9y ICdqJywgdW5pdCBzdGVwIG9uICdpJyBvciBvbiAnaicgLT4gNCBsb29wcwotICAhIFRoZW4g c2FtZSwgZXhjZXB0IHVzZSBub24tdW5pdCBzdGVwIGZvciAnaycKLQotICAhJG9tcCBwYXJh bGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQotICBkbyBpID0gMSwgbgotICAg IGRvIGogPSAxLCBtLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6 IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3Rh bnQgMSBvciAtMSBmb3IgJ2onIiB9Ci0gICAgICBkbyBrID0gaiAtIDQxLCBwICAhIHsgZGct bm90ZSAiVXNlZCBoZXJlIiB9Ci0gICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHAp IGVycm9yIHN0b3AKLSAgICAgIGVuZCBkbwotICAgIGVuZCBkbwotICBlbmQgZG8KLSAgaWYg KGsgLz0gcCArIDEpIGVycm9yIHN0b3AKLQotICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBz ZSgzKSBsYXN0cHJpdmF0ZShrKQotICBkbyBpID0gMSwgbiwgMiAgISB7IGRnLW1lc3NhZ2Ug InNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGgg c3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdpJyIgfQotICAgIGRvIGog PSAxLCBtCi0gICAgICBkbyBrID0gaSAtIDQxLCBwICAhIHsgZGctbm90ZSAiVXNlZCBoZXJl IiB9Ci0gICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKLSAg ICAgIGVuZCBkbwotICAgIGVuZCBkbwotICBlbmQgZG8KLSAgaWYgKGsgLz0gcCArIDEpIGVy cm9yIHN0b3AKLQotICAhIFNhbWUgYnV0ICdwcml2YXRlJyBmb3IgYWxsIChpLGopIHZhcnMK LQotICAhJG9tcCBwYXJhbGxlbCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2 YXRlKGksaikKLSAgZG8gaSA9IDEsIG4KLSAgICBkbyBqID0gMSwgbSwgMiAgISB7IGRnLW1l c3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0 IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQotICAg ICAgZG8gayA9IGogLSA0MSwgcCAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQotICAgICAg ICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCi0gICAgICBlbmQgZG8K LSAgICBlbmQgZG8KLSAgZW5kIGRvCi0gIGlmIChrIC89IHAgKyAxKSBlcnJvciBzdG9wCi0K LSAgISRvbXAgcGFyYWxsZWwgZG8gY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0 ZShpLGopCi0gIGRvIGkgPSAxLCBuLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1w bGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRo YW4gY29uc3RhbnQgMSBvciAtMSBmb3IgJ2knIiB9Ci0gICAgZG8gaiA9IDEsIG0KLSAgICAg IGRvIGsgPSBpIC0gNDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KLSAgICAgICAg aWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotICAgICAgZW5kIGRvCi0g ICAgZW5kIGRvCi0gIGVuZCBkbwotICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAotCi0g ICEgU2FtZSAtIGJ1dCB3aXRoIGxhc3Rwcml2YXRlKGksaikKLQotICAhJG9tcCBwYXJhbGxl bCBkbyBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCi0gIGRv IGkgPSAxLCBuCi0gICAgZG8gaiA9IDEsIG0sIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwg dW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3Ro ZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaiciIH0KLSAgICAgIGRvIGsgPSBqIC0g NDEsIHAgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KLSAgICAgICAgaWYgKGsgPCAxIC0g NDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAotICAgICAgZW5kIGRvCi0gICAgZW5kIGRvCi0g IGVuZCBkbwotICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAotICBpZiAoaSAvPSBuICsg MSAub3IuIGogLz0gbSArIDIpIGVycm9yIHN0b3AKLQotICAhJG9tcCBwYXJhbGxlbCBkbyBj b2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBsYXN0cHJpdmF0ZShpLGopCi0gIGRvIGkgPSAx LCBuLCAyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0 YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAt MSBmb3IgJ2knIiB9Ci0gICAgZG8gaiA9IDEsIG0KLSAgICAgIGRvIGsgPSBpIC0gNDEsIHAg ICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KLSAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9y LiBrID4gcCkgZXJyb3Igc3RvcAotICAgICAgZW5kIGRvCi0gICAgZW5kIGRvCi0gIGVuZCBk bwotICBpZiAoayAvPSBwICsgMSkgZXJyb3Igc3RvcAotICBpZiAoaSAvPSBuICsgMiAub3Iu IGogLz0gbSArIDEpIGVycm9yIHN0b3AKLQotZW5kIHN1YnJvdXRpbmUgbGFzdHByaXZhdGVf Y2hlY2tfZG9fMQotCi0KLQotc3Vicm91dGluZSBsYXN0cHJpdmF0ZV9jaGVja18yCi0gIGlu dGVnZXIgOjogbixtLHAsIGksaixrLGxsCi0KLSAgbiA9IDExCi0gIG0gPSAyMwotICBwID0g MjcKLQotICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRl KHApCi0gIGRvIGkgPSAxLCBuCi0gICAgZG8gaiA9IDEsIG0sMiAgISB7IGRnLW1lc3NhZ2Ug InNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGgg c3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdqJyIgfQotICAgICAgZG8g ayA9IDEsIGogKyA0MSAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQotICAgICAgICBkbyBs bCA9IDEsIHAsIDIKLSAgICAgICAgICBpZiAoayA+IDIzICsgNDEgLm9yLiBrIDwgMSkgZXJy b3Igc3RvcAotICAgICAgICBlbmQgZG8KLSAgICAgIGVuZCBkbwotICAgIGVuZCBkbwotICBl bmQgZG8KLSAgaWYgKGxsIC89IDI5KSBlcnJvciBzdG9wCi0KLSAgISRvbXAgc2ltZCBjb2xs YXBzZSgzKSBsYXN0cHJpdmF0ZShwKQotICBkbyBpID0gMSwgbgotICAgIGRvIGogPSAxLCBt LDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1 bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZv ciAnaiciIH0KLSAgICAgIGRvIGsgPSAxLCBqICsgNDEgICEgeyBkZy1ub3RlICJVc2VkIGhl cmUiIH0KLSAgICAgICAgZG8gbGwgPSAxLCBwLCAyCi0gICAgICAgICAgaWYgKGsgPiAyMyAr IDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKLSAgICAgICAgZW5kIGRvCi0gICAgICBlbmQg ZG8KLSAgICBlbmQgZG8KLSAgZW5kIGRvCi0gIGlmIChsbCAvPSAyOSkgZXJyb3Igc3RvcAot Ci0gICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKLSAgZG8gaSA9IDEs IG4sMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFu Z3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBvdGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEg Zm9yICdpJyIgfQotICAgIGRvIGogPSAxLCBtCi0gICAgICBkbyBrID0gMSwgaSArIDQxICAh IHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9Ci0gICAgICAgIGlmIChrID4gMTEgKyA0MSAub3Iu IGsgPCAxKSBlcnJvciBzdG9wCi0gICAgICBlbmQgZG8KLSAgICBlbmQgZG8KLSAgZW5kIGRv Ci1pZiAoayAvPSA1MykgdGhlbgotICBwcmludCAqLCBrLCA1MwotICBlcnJvciBzdG9wCi1l bmRpZgotCi0hIC0gU2FtZSBidXQgd2l0aG91dCAncHJpdmF0ZSc6Ci0hJG9tcCBzaW1kIGNv bGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspCi1kbyBpID0gMSwgbgotICBkbyBqID0gMSwgbSwy ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxh ciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAtMSBmb3Ig J2onIiB9Ci0gICAgZG8gayA9IDEsIGogKyA0MSAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIg fQotICAgICAgaWYgKGsgPiAyMyArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKLSAgICBl bmQgZG8KLSAgZW5kIGRvCi1lbmQgZG8KLWlmIChrIC89IDY1KSB0aGVuCi0gIHByaW50ICos IGssIDY1Ci0gIGVycm9yIHN0b3AKLWVuZGlmCi0KLQotISRvbXAgc2ltZCBjb2xsYXBzZSgz KSBsYXN0cHJpdmF0ZShrKQotZG8gaSA9IDEsIG4sMiAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5 LCB1bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggc3RlcCBv dGhlciB0aGFuIGNvbnN0YW50IDEgb3IgLTEgZm9yICdpJyIgfQotICBkbyBqID0gMSwgbQot ICAgIGRvIGsgPSAxLCBpICsgNDEgICEgeyBkZy1ub3RlICJVc2VkIGhlcmUiIH0KLSAgICAg IGlmIChrID4gMTEgKyA0MSAub3IuIGsgPCAxKSBlcnJvciBzdG9wCi0gICAgZW5kIGRvCi0g IGVuZCBkbwotZW5kIGRvCi1pZiAoayAvPSA1MykgdGhlbgotICBwcmludCAqLCBrLCA1Mwot ICBlcnJvciBzdG9wCi1lbmRpZgotCi0hIC0gYWxsIHdpdGggbGFzdHByaXZhdGUKLSEkb21w IHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSwgaikKLWRv IGkgPSAxLCBuCi0gIGRvIGogPSAxLCBtLDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5p bXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIg dGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaiciIH0KLSAgICBkbyBrID0gMSwgaiArIDQx ICAhIHsgZGctbm90ZSAiVXNlZCBoZXJlIiB9Ci0gICAgICBpZiAoayA+IDIzICsgNDEgLm9y LiBrIDwgMSkgZXJyb3Igc3RvcAotICAgIGVuZCBkbwotICBlbmQgZG8KLWVuZCBkbwotaWYg KGsgLz0gNjUpIHRoZW4KLSAgcHJpbnQgKiwgaywgNjUKLSAgZXJyb3Igc3RvcAotZW5kaWYK LQotCi0hJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxhc3Rwcml2YXRl KGksIGopCi1kbyBpID0gMSwgbiwyICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVt ZW50ZWQ6IG5vbi1yZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4g Y29uc3RhbnQgMSBvciAtMSBmb3IgJ2knIiB9Ci0gIGRvIGogPSAxLCBtCi0gICAgZG8gayA9 IDEsIGkgKyA0MSAgISB7IGRnLW5vdGUgIlVzZWQgaGVyZSIgfQotICAgICAgaWYgKGsgPiAx MSArIDQxIC5vci4gayA8IDEpIGVycm9yIHN0b3AKLSAgICBlbmQgZG8KLSAgZW5kIGRvCi1l bmQgZG8KLWlmIChrIC89IDUzKSB0aGVuCi0gIHByaW50ICosIGssIDUzCi0gIGVycm9yIHN0 b3AKLWVuZGlmCi0KLWVuZAotZW5kIG1vZHVsZSBtCi0KLXByb2dyYW0gbWFpbgotICB1c2Ug bQotICBpbXBsaWNpdCBub25lICh0eXBlLCBleHRlcm5hbCkKLSAgY2FsbCBsYXN0cHJpdmF0 ZV9jaGVja19zaW1kXzEKLSAgY2FsbCBsYXN0cHJpdmF0ZV9jaGVja19kb19zaW1kXzEKLSAg Y2FsbCBsYXN0cHJpdmF0ZV9jaGVja19kb18xCi0gIGNhbGwgbGFzdHByaXZhdGVfY2hlY2tf MgotZW5kCmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4v bm9uLXJlY3Rhbmd1bGFyLWxvb3AtNS5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21w LmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtNS5mOTAKaW5kZXggNjQzYWI3OTZhODQu LjgyYmMwYjBhMGM0IDEwMDY0NAotLS0gYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZv cnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3AtNS5mOTAKKysrIGIvbGliZ29tcC90ZXN0c3Vp dGUvbGliZ29tcC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1sb29wLTUuZjkwCkBAIC02LDIy ICs2LDI2IEBACiAKICEgTm9ucmVjdGFuZ3VsYXIgbG9vcCBuZXN0cyBjaGVja3MKIAoraW50 ZWdlciA6OiBzdGVwCitzdGVwID0gLTEKICEkb21wIHNpbWQgY29sbGFwc2UoMikKIGRvIGkg PSAxLCAxMAotICBkbyBqID0gaSwgMTAsIDIgICEgeyBkZy1tZXNzYWdlICJzb3JyeSwgdW5p bXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0ZXAgb3RoZXIg dGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaiciIH0KKyAgZG8gaiA9IGksIDEwLCBzdGVw ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxh ciBsb29wIG5lc3Qgd2l0aCBub24tY29uc3RhbnQgc3RlcCBmb3IgJ2onIiB9CiAgIGVuZCBk bwogZW5kIGRvCiAKK3N0ZXAgPSAzCiAhJG9tcCBkbyBjb2xsYXBzZSgyKSBsYXN0cHJpdmF0 ZShqKSAgISB7IGRnLWVycm9yICJsYXN0cHJpdmF0ZSB2YXJpYWJsZSAnaicgaXMgcHJpdmF0 ZSBpbiBvdXRlciBjb250ZXh0IiB9CiBkbyBpID0gMSwgMTAKLSAgZG8gaiA9IGksIDEwLCAy ICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1yZWN0YW5ndWxh ciBsb29wIG5lc3Qgd2l0aCBzdGVwIG90aGVyIHRoYW4gY29uc3RhbnQgMSBvciAtMSBmb3Ig J2onIiB9CisgIGRvIGogPSBpLCAxMCwgc3RlcCAgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1 bmltcGxlbWVudGVkOiBub24tcmVjdGFuZ3VsYXIgbG9vcCBuZXN0IHdpdGggbm9uLWNvbnN0 YW50IHN0ZXAgZm9yICdqJyIgfQogICBlbmQgZG8KIGVuZCBkbwogaWYgKGkgLz0gMTEpIHN0 b3AgMQogCitzdGVwID0gLTUKICEkb21wIHNpbWQgY29sbGFwc2UoMikgbGFzdHByaXZhdGUo aikKIGRvIGkgPSAxLCAxMAotICBkbyBqID0gaSwgMTAsIDIgICEgeyBkZy1tZXNzYWdlICJz b3JyeSwgdW5pbXBsZW1lbnRlZDogbm9uLXJlY3Rhbmd1bGFyIGxvb3AgbmVzdCB3aXRoIHN0 ZXAgb3RoZXIgdGhhbiBjb25zdGFudCAxIG9yIC0xIGZvciAnaiciIH0KKyAgZG8gaiA9IGks IDEwLCBzdGVwICAhIHsgZGctbWVzc2FnZSAic29ycnksIHVuaW1wbGVtZW50ZWQ6IG5vbi1y ZWN0YW5ndWxhciBsb29wIG5lc3Qgd2l0aCBub24tY29uc3RhbnQgc3RlcCBmb3IgJ2onIiB9 CiAgIGVuZCBkbwogZW5kIGRvCiBpZiAoaSAvPSAxMSkgc3RvcCAxCmRpZmYgLS1naXQgYS9s aWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1bGFyLWxvb3At Ni5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vbm9uLXJlY3Rhbmd1 bGFyLWxvb3AtNi5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmFlODg1YWY5NjIzCi0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGli Z29tcC5mb3J0cmFuL25vbi1yZWN0YW5ndWxhci1sb29wLTYuZjkwCkBAIC0wLDAgKzEsMTk2 IEBACishIHsgZGctZG8gcnVuIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tc3Nl MiIgeyB0YXJnZXQgc3NlMl9ydW50aW1lIH0gfQorISB7IGRnLWFkZGl0aW9uYWwtb3B0aW9u cyAiLW1hdngiIHsgdGFyZ2V0IGF2eF9ydW50aW1lIH0gfQorCishIFBSIGZvcnRyYW4vMTA3 NDI0CisKKyEgTm9ucmVjdGFuZ3VsYXIgbG9vcCBuZXN0cyBjaGVja3MKKyEgVGhpcyB0ZXN0 Y2FzZSB1c2VzIG5lZ2F0aXZlIHN0ZXAgc2l6ZXMKKworbW9kdWxlIG0KKyAgaW1wbGljaXQg bm9uZSAodHlwZSwgZXh0ZXJuYWwpCitjb250YWlucworCishIFRoZSAnaycgbG9vcCB1c2Vz IGkgb3IgaiBhcyBzdGFydCB2YWx1ZQorISBidXQgYSBjb25zdGFudCBlbmQgdmFsdWUgc3Vj aCB0aGF0ICdsYXN0cHJpdmF0ZScKKyEgc2hvdWxkIGJlIHdlbGwtZGVmaW5lZAorc3Vicm91 dGluZSBsYXN0cHJpdmF0ZV9jaGVja19zaW1kXzEKKyAgaW50ZWdlciA6OiBuLG0scCwgaSxq LGssIG9uZQorCisgIG4gPSAxMQorICBtID0gMjMKKyAgcCA9IDI3CisgIG9uZSA9IDEKKwor ICAhIFVzZSAnaScgb3IgJ2onLCB1bml0IHN0ZXAgb24gJ2knIG9yIG9uICdqJyAtPiA0IGxv b3BzCisgICEgVGhlbiBzYW1lLCBleGNlcHQgdXNlIG5vbi11bml0IHN0ZXAgZm9yICdrJwor CisgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykKKyAgZG8gaSA9IG4s IG9uZSwgLTEKKyAgICBkbyBqID0gbSwgb25lLCAtMgorICAgICAgZG8gayA9IHAgKyBqLCBw IC0gNDEsIC0xCisgICAgICAgIGlmIChrIDwgcCAtIDQxIC5vci4gayA+IHArbSkgZXJyb3Ig c3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSBw IC0gNDEgLSAxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0 cHJpdmF0ZShrKQorICBkbyBpID0gbiwgMSwgLTIKKyAgICBkbyBqID0gbSwgMSwgLTEKKyAg ICAgIGRvIGsgPSBwLCBpIC0gNDEsIC0xCisgICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4g ayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBkbworICBlbmQgZG8K KyAgaWYgKGsgLz0gLTQxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgz KSBsYXN0cHJpdmF0ZShrKQorICBkbyBpID0gbiwgb25lLCAtMgorICAgIGRvIGogPSBtLCBv bmUsIC0xCisgICAgICBkbyBrID0gcCwgaiAtIDQxLCAtMQorICAgICAgICBpZiAoayA8IDEg LSA0MSAub3IuIGsgPiBwKSB0aGVuCisgICAgICAgICAgISBwcmludCAqLCBpLCBqLCBrLHAs ICIgLT4gaSwgaiwgaywgcCAgIChrIDwgMSAtIDQxIC5vci4gayA+IHApIgorICAgICAgICAg IGVycm9yIHN0b3AKKyAgICAgICAgZW5kIGlmCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8K KyAgZW5kIGRvCisgIGlmIChrIC89IC00MSkgZXJyb3Igc3RvcAorCisgIGsgPSAtNDMKKyAg bSA9IDAKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorICBkbyBp ID0gbSwgb25lLCAtMgorICAgIGRvIGogPSBtLCBvbmUsIC0xCisgICAgICBkbyBrID0gcCwg aiAtIDQxLCAtMQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSB0aGVuCisg ICAgICAgICAgISBwcmludCAqLCBpLCBqLCBrLHAsICIgLT4gaSwgaiwgaywgcCAgIChrIDwg MSAtIDQxIC5vci4gayA+IHApIgorICAgICAgICAgIGVycm9yIHN0b3AKKyAgICAgICAgZW5k IGlmCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IC00 MykgZXJyb3Igc3RvcAorCisgIG0gPSAyMworCisgICEkb21wIHNpbWQgY29sbGFwc2UoMykg bGFzdHByaXZhdGUoaykKKyAgZG8gaSA9IG4sIG9uZSwgLTEKKyAgICBkbyBqID0gbSwgb25l LCAtMgorICAgICAgZG8gayA9IHAsIGkgLSA0MSwgLTEKKyAgICAgICAgaWYgKGsgPCAxIC0g NDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisg IGVuZCBkbworICBpZiAoayAvPSAtNDEpIGVycm9yIHN0b3AKKworICBuID0gLTUKKyAgayA9 IC0gNzAKKyAgISRvbXAgc2ltZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKQorICBkbyBp ID0gbiwgb25lLCAtMQorICAgIGRvIGogPSBtLCBvbmUsIC0yCisgICAgICBkbyBrID0gcCwg aSAtIDQxLCAtMQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBz dG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IC03 MCkgZXJyb3Igc3RvcAorCisgIG4gPSAxMQorCisgICEgU2FtZSBidXQgJ3ByaXZhdGUnIGZv ciBhbGwgKGksaikgdmFycworCisgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZh dGUoaykgcHJpdmF0ZShpLGopCisgIGRvIGkgPSBuLCBvbmUsIC0xCisgICAgZG8gaiA9IG0s IG9uZSwgLTIKKyAgICAgIGRvIGsgPSBwLCBqIC0gNDEsIC0xCisgICAgICAgIGlmIChrIDwg MSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVuZCBkbworICAgIGVuZCBk bworICBlbmQgZG8KKyAgaWYgKGsgLz0gLTQxKSBlcnJvciBzdG9wCisKKyAgISRvbXAgc2lt ZCBjb2xsYXBzZSgzKSBsYXN0cHJpdmF0ZShrKSBwcml2YXRlKGksaikKKyAgZG8gaSA9IG4s IG9uZSwgLTIKKyAgICBkbyBqID0gbSwgb25lLCAtMQorICAgICAgZG8gayA9IHAsIGkgLSA0 MSwgLTEKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4gcCkgZXJyb3Igc3RvcAor ICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBpZiAoayAvPSAtNDEpIGVy cm9yIHN0b3AKKworICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIHBy aXZhdGUoaSxqKQorICBkbyBpID0gbiwgb25lLCAtMgorICAgIGRvIGogPSBtLCBvbmUsIC0x CisgICAgICBkbyBrID0gcCwgaiAtIDQxLCAtMQorICAgICAgICBpZiAoayA8IDEgLSA0MSAu b3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5k IGRvCisgIGlmIChrIC89IC00MSkgZXJyb3Igc3RvcAorCisgICEkb21wIHNpbWQgY29sbGFw c2UoMykgbGFzdHByaXZhdGUoaykgcHJpdmF0ZShpLGopCisgIGRvIGkgPSBuLCBvbmUsIC0x CisgICAgZG8gaiA9IG0sIG9uZSwgLTIKKyAgICAgIGRvIGsgPSBwLCBpIC0gNDEsIC0xCisg ICAgICAgIGlmIChrIDwgMSAtIDQxIC5vci4gayA+IHApIGVycm9yIHN0b3AKKyAgICAgIGVu ZCBkbworICAgIGVuZCBkbworICBlbmQgZG8KKyAgaWYgKGsgLz0gLTQxKSBlcnJvciBzdG9w CisKKyAgISBTYW1lIC0gYnV0IHdpdGggbGFzdHByaXZhdGUoaSxqKQorCisgICEkb21wIHNp bWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUoaSxqKQorICBkbyBp ID0gbiwgb25lLCAtMQorICAgIGRvIGogPSBtLCBvbmUsIC0yCisgICAgICBkbyBrID0gcCwg aiAtIDQxLCAtMQorICAgICAgICBpZiAoayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBz dG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IC00 MSkgZXJyb3Igc3RvcAorICBpZiAoaSAvPSAwIC5vci4gaiAvPSAtMSkgZXJyb3Igc3RvcAor CisgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZhdGUoaykgbGFzdHByaXZhdGUo aSxqKQorICBkbyBpID0gbiwgMSwgLTIKKyAgICBkbyBqID0gbSwgb25lLCAtMQorICAgICAg ZG8gayA9IHAsIGkgLSA0MSwgLTEKKyAgICAgICAgaWYgKGsgPCAxIC0gNDEgLm9yLiBrID4g cCkgZXJyb3Igc3RvcAorICAgICAgZW5kIGRvCisgICAgZW5kIGRvCisgIGVuZCBkbworICBp ZiAoayAvPSAtNDEpIGVycm9yIHN0b3AKKyAgaWYgKGkgLz0gLTEgLm9yLiBqIC89IDApIGVy cm9yIHN0b3AKKworICAhJG9tcCBzaW1kIGNvbGxhcHNlKDMpIGxhc3Rwcml2YXRlKGspIGxh c3Rwcml2YXRlKGksaikKKyAgZG8gaSA9IG4sIDEsIC0yCisgICAgZG8gaiA9IG0sIDEsIC0x CisgICAgICBkbyBrID0gcCwgaiAtIDQxLCAtMQorICAgICAgICBpZiAoayA8IDEgLSA0MSAu b3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBlbmQgZG8KKyAgZW5k IGRvCisgIGlmIChrIC89IC00MSkgZXJyb3Igc3RvcAorICBpZiAoaSAvPSAtMSAub3IuIGog Lz0gMCkgZXJyb3Igc3RvcAorCisgICEkb21wIHNpbWQgY29sbGFwc2UoMykgbGFzdHByaXZh dGUoaykgbGFzdHByaXZhdGUoaSxqKQorICBkbyBpID0gbiwgb25lLCAtMQorICAgIGRvIGog PSBtLCBvbmUsIC0yCisgICAgICBkbyBrID0gcCwgaSAtIDQxLCAtMQorICAgICAgICBpZiAo ayA8IDEgLSA0MSAub3IuIGsgPiBwKSBlcnJvciBzdG9wCisgICAgICBlbmQgZG8KKyAgICBl bmQgZG8KKyAgZW5kIGRvCisgIGlmIChrIC89IC00MSkgZXJyb3Igc3RvcAorICBpZiAoaSAv PSAwIC5vci4gaiAvPSAtMSkgZXJyb3Igc3RvcAorZW5kIHN1YnJvdXRpbmUgbGFzdHByaXZh dGVfY2hlY2tfc2ltZF8xCitlbmQgbW9kdWxlIG0KKworcHJvZ3JhbSBtYWluCisgIHVzZSBt CisgIGltcGxpY2l0IG5vbmUgKHR5cGUsIGV4dGVybmFsKQorICBjYWxsIGxhc3Rwcml2YXRl X2NoZWNrX3NpbWRfMQorZW5kCg== --------------fbRIisUznYTWZJ6hEOA5Kk6N--