From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by sourceware.org (Postfix) with ESMTPS id 373AD3858C54; Tue, 28 Nov 2023 19:56:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 373AD3858C54 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 373AD3858C54 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.17.20 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701201414; cv=none; b=DhOlGgJJhFFk4EMOjXjW+gCwWPX5cc+TNJ+ajsj2FO+rvX78dY8pWc7MUPxbQEL4vfi4LhwbfJzvxcS+rLeIvT3OjUHgZov2GC8IuONZH8iBfxHw+s3XeC3CP5Uc0wrTviqGD/5eKq7kRfreMCN/P6M41xwc7iDd+tkIILJ3YC8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701201414; c=relaxed/simple; bh=zTmnsaHBq0Pfd9LPLJSvMUsKJON/BaajaLGomwrJdmo=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=nd4NmZx58TeoK2hJLu2Lwy9GNf5YmyFQgEjAqe/1p8qc1jpOc/W/dRwsEJps39IxOaO4kYKJfUTn+1ovrH98QxgPbPPmDomPO0J4f2BmY2XAcMDn2J9P/SPuHBITMMekBEbL8i08JA2QLJuMLY2Kxl696vfwpxfLC/SzKQKxMUU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1701201409; x=1701806209; i=anlauf@gmx.de; bh=zTmnsaHBq0Pfd9LPLJSvMUsKJON/BaajaLGomwrJdmo=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From: In-Reply-To; b=GQ7/00U9FOsZaeCIL4jZs2chWce0poFtFP0D00xxG1qPABd9Rf8MtapBePO9tLx+ CTbeHjDKn3vkhUs5YOLpd/TuZba46Q2YhF5Dhij6Qoyy8cN0CeyeEEzqZi3ezq2al 64nx4HHTyG3tkgy6FetquCm9U7QFqBkQx7WieFbDrn668c3ohLGdafadOoIZZXTxk QSDm4HinlZ+Vn7m6qaeF270Hs66b74xAbhA2rStD7XHM5PpSCz1/+YSMLR202AdxG yrJ8OwKLyLC/6RfHkrpDBHlYyH4aEdko2MC1oyeSyMgdMmgtdjoDY28hJrTRvJM20 VJC2n9z+wUte/vFXFw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([93.207.85.37]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MvbG2-1rO4wx0Dpu-00siaD; Tue, 28 Nov 2023 20:56:49 +0100 Content-Type: multipart/mixed; boundary="------------87BmqhHCOb5LK8hFLm026J4a" Message-ID: Date: Tue, 28 Nov 2023 20:56:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] Fortran: deferred-length character optional dummy arguments [PR93762,PR100651] To: FX Coudert , GCC Patches Cc: fortran@gcc.gnu.org Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <7CB303BC-D730-4B62-B3D6-FAD3DD0027EA@gmail.com> Content-Language: en-US From: Harald Anlauf In-Reply-To: <7CB303BC-D730-4B62-B3D6-FAD3DD0027EA@gmail.com> X-Provags-ID: V03:K1:zIfUXQeDv/AHxtaWvm4AZEQl46UQBECwQ4B5VMnZdCeXsG+YfyX l0v/BQvDAda42mtrUxVtJt9kSLbNAVYV4w6t7bMDWJNk82wKolTUf8i4BYGtU5tBAPNNny5 bM0IA2Ul8yFBtBuLDKuZ0nN8bIzpkZPhMH9x6tZEgAlNm3ehtDI/CT9BWMEtHpN63eHKvXF QWtCE31J0/9B7Cv/nlClw== UI-OutboundReport: notjunk:1;M01:P0:WEbIukLuxpo=;22qFfu5995VOvexmOucji+w3M/5 LTgZsWUnF25IUhCSlYwl8RjbBTRflpgrmjfPBS2XzbDG9jAtVRniOO84MvNNe9Z3aKP+Nk1io 5HF4pGmX8rcZVqO6seRqwpdr2YdInFerp/nhst+kztrwpoJi6K+RU1YYvS0VoKss8nMdp5tQh mjwBRN1KGJYWrEcA+C0hsc/N9LR4RFHiD6hdoKhy5dtB5vWpLojxTMDt5A1EQUqFhlniykl3a FhiJqtDJNsWRoGAxlbrlk6wHbGWuXOYVWJ3fm+Q15Hqtvq8+4QwTOkA7L0ya6pjxinKyUymNe mwHMg/gaAEHYyX7D2VxYc+Q3o1ssMOvpBIPYQ+wvbcX09PkRPkNWX6K3EtJC4NBzrnwghBrO0 8XIeI9CiT6rvJ/srr/k5o+AzKBaiVtGOBegoW5AweQxinpJXpUd+jEIXlVXzIocE+AZkq4yVG ECrm0eFDvyqvB7GXnBDhy+myQXvFKgIDJE+zsALYCJKrQNfunVMwn0h9ynlBOhMzDISmxDvAH wI4JbauVUhpoSewX4wR10euq6uwUL/N1Cj8bx3nA6ZrBBTiPKGx4oRI2OOjwZWogUUxQdYqnM fOJQgJeUE/lO4dPvB7NC8M2d4VzNTJXW7UuAZU8fVQFWldACzGEwvFvz6+FHiDLogM62CHIms 2+CSE34r0wITeNojhvOpMEzmW0cPGH1e9LyrtRVrWxSeQ5h9Vmaq/flQtJumnPpKZpXX5TAoF zIkwEBkpFhjfagvnq4S7+gIC7L/cGnqVMCRPJFSGvT5/Jr2pgfLL0nwY+doQw3w9SX6hLdBOX eU8NZ0yPI+O5/VmkhSXSBIAscM2+ftrS2DiLbKq9ZMIMwuEDrkG+vIuKFqczUfFfXJGOak0iV 20wJOjPl2YuEIxHOWTmi09oN946evT+wNTdybXD6ub5YsmVXfj6JSU/7mELo8zPVAY+bJOTGj mcoMfTbxT6/hMt/BuUjF/aaoqJ8= X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,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: This is a multi-part message in MIME format. --------------87BmqhHCOb5LK8hFLm026J4a Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi FX, On 11/28/23 18:07, FX Coudert wrote: > Hi Harald, > > The patch looks OK to me. Probably wait a bit for another opinion, since= I=E2=80=99m not that active and I may have missed something. > > Thanks, > FX thanks for having a look. In the meantime I got an automated mail from the Linaro testers. According to it there is a runtime failure of the testcase on aarch64. I couldn't see any useful traceback or else. I tried the testcase on x86 with different options and found an unexpected result only with -fsanitize=3Dundefined and only for the case of a rank-1 dummy when there is no actual argument and the passed to another subroutine. (valgrind is happy.) Reduced reproducer: ! this fails with -fsanitize=3Dundefined program main call test_rank1 () contains subroutine test_rank1 (msg1) character(:), optional, allocatable :: msg1(:) if (present (msg1)) stop 77 call assert_rank1 () ! <- no problem here call assert_rank1 (msg1) ! <- problematic code path end subroutine assert_rank1 (msg2) character(:), optional, allocatable :: msg2(:) if (present (msg2)) stop 99 ! <- no problem if commented end end As far as I can tell, this could be a pre-existing (latent) issue. By looking at the tree-dump, the only thing that appears fishy has been there before. But then I am only guessing that this is the problem observed on aarch64. I have disabled the related call in the testcase of the attached revised version. As I do not see anything else, I wonder if one could proceed with the current version but open a PR for the reduced case above, unless someone can pinpoint the place that is responsible for the above failure. (Is it the caller, or rather the function entry code in the callee?) Cheers, Harald --------------87BmqhHCOb5LK8hFLm026J4a Content-Type: text/x-patch; charset=UTF-8; name="pr100651-v2.diff" Content-Disposition: attachment; filename="pr100651-v2.diff" Content-Transfer-Encoding: base64 RnJvbSA2Mzg3OTk0MmI0OTFlMjNlZWZjNmRhNGQ4MGM1NDkyNDM0ZTQyZWM4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBUdWUsIDI4IE5vdiAyMDIzIDIwOjE5OjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogZGVmZXJyZWQtbGVuZ3RoIGNoYXJhY3RlciBvcHRpb25hbCBkdW1teSBhcmd1 bWVudHMKIFtQUjkzNzYyLFBSMTAwNjUxXQoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCVBS IGZvcnRyYW4vOTM3NjIKCVBSIGZvcnRyYW4vMTAwNjUxCgkqIHRyYW5zLWV4cHIuY2MgKGdm Y19jb252X21pc3NpbmdfZHVtbXkpOiBUaGUgY2hhcmFjdGVyIGxlbmd0aCBmb3IKCWRlZmVy cmVkLWxlbmd0aCBkdW1teSBhcmd1bWVudHMgaXMgcGFzc2VkIGJ5IHJlZmVyZW5jZSwgc28g dGhhdCBpdHMKCXZhbHVlIGNhbiBiZSByZXR1cm5lZC4gIEFkanVzdCBoYW5kbGluZyBmb3Ig b3B0aW9uYWwgZHVtbWllcy4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCVBSIGZvcnRy YW4vOTM3NjIKCVBSIGZvcnRyYW4vMTAwNjUxCgkqIGdmb3J0cmFuLmRnL29wdGlvbmFsX2Rl ZmVycmVkX2NoYXJfMS5mOTA6IE5ldyB0ZXN0LgotLS0KIGdjYy9mb3J0cmFuL3RyYW5zLWV4 cHIuY2MgICAgICAgICAgICAgICAgICAgICB8ICAyMiArKystCiAuLi4vZ2ZvcnRyYW4uZGcv b3B0aW9uYWxfZGVmZXJyZWRfY2hhcl8xLmY5MCAgfCAxMDAgKysrKysrKysrKysrKysrKysr CiAyIGZpbGVzIGNoYW5nZWQsIDExOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvb3B0aW9uYWxf ZGVmZXJyZWRfY2hhcl8xLmY5MAoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWV4 cHIuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCmluZGV4IGJmZTk5OTZjZWQ2Li5j OTBjN2JiZjkzNiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jYworKysg Yi9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCkBAIC0yMTE2LDEwICsyMTE2LDI0IEBAIGdm Y19jb252X21pc3NpbmdfZHVtbXkgKGdmY19zZSAqIHNlLCBnZmNfZXhwciAqIGFyZywgZ2Zj X3R5cGVzcGVjIHRzLCBpbnQga2luZCkKIAogICBpZiAodHMudHlwZSA9PSBCVF9DSEFSQUNU RVIpCiAgICAgewotICAgICAgdG1wID0gYnVpbGRfaW50X2NzdCAoZ2ZjX2NoYXJsZW5fdHlw ZV9ub2RlLCAwKTsKLSAgICAgIHRtcCA9IGZvbGRfYnVpbGQzX2xvYyAoaW5wdXRfbG9jYXRp b24sIENPTkRfRVhQUiwgZ2ZjX2NoYXJsZW5fdHlwZV9ub2RlLAotCQkJICAgICBwcmVzZW50 LCBzZS0+c3RyaW5nX2xlbmd0aCwgdG1wKTsKLSAgICAgIHRtcCA9IGdmY19ldmFsdWF0ZV9u b3cgKHRtcCwgJnNlLT5wcmUpOworICAgICAgLyogSGFuZGxlIGRlZmVycmVkLWxlbmd0aCBk dW1taWVzIHRoYXQgcGFzcyB0aGUgY2hhcmFjdGVyIGxlbmd0aCBieQorCSByZWZlcmVuY2Ug c28gdGhhdCB0aGUgdmFsdWUgY2FuIGJlIHJldHVybmVkLiAgKi8KKyAgICAgIGlmICh0cy5k ZWZlcnJlZCAmJiBJTkRJUkVDVF9SRUZfUCAoc2UtPnN0cmluZ19sZW5ndGgpKQorCXsKKwkg IHRtcCA9IGdmY19idWlsZF9hZGRyX2V4cHIgKE5VTExfVFJFRSwgc2UtPnN0cmluZ19sZW5n dGgpOworCSAgdG1wID0gZm9sZF9idWlsZDNfbG9jIChpbnB1dF9sb2NhdGlvbiwgQ09ORF9F WFBSLCBUUkVFX1RZUEUgKHRtcCksCisJCQkJIHByZXNlbnQsIHRtcCwgbnVsbF9wb2ludGVy X25vZGUpOworCSAgdG1wID0gZ2ZjX2V2YWx1YXRlX25vdyAodG1wLCAmc2UtPnByZSk7CisJ ICB0bXAgPSBidWlsZF9mb2xkX2luZGlyZWN0X3JlZl9sb2MgKGlucHV0X2xvY2F0aW9uLCB0 bXApOworCX0KKyAgICAgIGVsc2UKKwl7CisJICB0bXAgPSBidWlsZF9pbnRfY3N0IChnZmNf Y2hhcmxlbl90eXBlX25vZGUsIDApOworCSAgdG1wID0gZm9sZF9idWlsZDNfbG9jIChpbnB1 dF9sb2NhdGlvbiwgQ09ORF9FWFBSLAorCQkJCSBnZmNfY2hhcmxlbl90eXBlX25vZGUsCisJ CQkJIHByZXNlbnQsIHNlLT5zdHJpbmdfbGVuZ3RoLCB0bXApOworCSAgdG1wID0gZ2ZjX2V2 YWx1YXRlX25vdyAodG1wLCAmc2UtPnByZSk7CisJfQogICAgICAgc2UtPnN0cmluZ19sZW5n dGggPSB0bXA7CiAgICAgfQogICByZXR1cm47CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL29wdGlvbmFsX2RlZmVycmVkX2NoYXJfMS5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL29wdGlvbmFsX2RlZmVycmVkX2NoYXJfMS5mOTAKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBmYjBmYjVmZWExCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9vcHRpb25hbF9kZWZlcnJlZF9j aGFyXzEuZjkwCkBAIC0wLDAgKzEsMTAwIEBACishIHsgZGctZG8gcnVuIH0KKyEgUFIgZm9y dHJhbi85Mzc2MgorISBQUiBmb3J0cmFuLzEwMDY1MSAtIGRlZmVycmVkLWxlbmd0aCBjaGFy YWN0ZXIgYXMgb3B0aW9uYWwgZHVtbXkgYXJndW1lbnQKKworcHJvZ3JhbSBtYWluCisgIGlt cGxpY2l0IG5vbmUKKyAgY2hhcmFjdGVyKDopLCBhbGxvY2F0YWJsZSA6OiBlcnJfbXNnLCBt c2czKDopCisgIGNoYXJhY3Rlcig6KSwgcG9pbnRlciAgICAgOjogZXJyX21zZzIgPT4gTlVM TCgpCisKKyAgISBTdWJyb3V0aW5lcyB3aXRoIG9wdGlvbmFsIGFyZ3VtZW50cworICBjYWxs IHRvX2ludCAoKQorICBjYWxsIHRvX2ludF9wICgpCishIGNhbGwgdGVzdF9yYW5rMSAoKSAg ICAhIHRoaXMgZmFpbHMgd2l0aCAtZnNhbml0aXplPXVuZGVmaW5lZAorICBjYWxsIGFzc2Vy dF9jb2RlICgpCisgIGNhbGwgYXNzZXJ0X3AgKCkKKyAgY2FsbCBhc3NlcnRfcmFuazEgKCkK KworICAhIFRlc3QgcGFzc2luZyBvZiBvcHRpb25hbCBhcmd1bWVudHMKKyAgY2FsbCB0b19p bnQgKGVycl9tc2cpCisgIGlmICgubm90LiBhbGxvY2F0ZWQgKGVycl9tc2cpKSBzdG9wIDEK KyAgaWYgKGxlbiAoZXJyX21zZykgLz0gNykgICAgICAgIHN0b3AgMgorICBpZiAoZXJyX21z ZygxOjcpIC89ICJmb28gYmFyIikgc3RvcCAzCisKKyAgY2FsbCB0b19pbnQyIChlcnJfbXNn KQorICBpZiAoLm5vdC4gYWxsb2NhdGVkIChlcnJfbXNnKSkgc3RvcCA0CisgIGlmIChsZW4g KGVycl9tc2cpIC89IDcpICAgICAgICBzdG9wIDUKKyAgaWYgKGVycl9tc2coMTo3KSAvPSAi Zm9vIGJhciIpIHN0b3AgNgorICBkZWFsbG9jYXRlIChlcnJfbXNnKQorCisgIGNhbGwgdG9f aW50X3AgKGVycl9tc2cyKQorICBpZiAoLm5vdC4gYXNzb2NpYXRlZCAoZXJyX21zZzIpKSBz dG9wIDExCisgIGlmIChsZW4gKGVycl9tc2cyKSAvPSA4KSAgICAgICAgIHN0b3AgMTIKKyAg aWYgKGVycl9tc2cyKDE6OCkgLz0gInBvbyBibGEgIikgc3RvcCAxMworICBkZWFsbG9jYXRl IChlcnJfbXNnMikKKworICBjYWxsIHRvX2ludDJfcCAoZXJyX21zZzIpCisgIGlmICgubm90 LiBhc3NvY2lhdGVkIChlcnJfbXNnMikpIHN0b3AgMTQKKyAgaWYgKGxlbiAoZXJyX21zZzIp IC89IDgpICAgICAgICAgc3RvcCAxNQorICBpZiAoZXJyX21zZzIoMTo4KSAvPSAicG9vIGJs YSAiKSBzdG9wIDE2CisgIGRlYWxsb2NhdGUgKGVycl9tc2cyKQorCisgIGNhbGwgdGVzdF9y YW5rMSAobXNnMykKKyAgaWYgKC5ub3QuIGFsbG9jYXRlZCAobXNnMykpIHN0b3AgMjEKKyAg aWYgKGxlbiAobXNnMykgLz0gMikgICAgICAgIHN0b3AgMjIKKyAgaWYgKHNpemUgKG1zZzMp IC89IDQyKSAgICAgIHN0b3AgMjMKKyAgaWYgKGFueSAobXNnMyAvPSAib2siKSkgICAgIHN0 b3AgMjQKKyAgZGVhbGxvY2F0ZSAobXNnMykKKworY29udGFpbnMKKworICAhIERlZmVycmVk LWxlbmd0aCBjaGFyYWN0ZXIsIGFsbG9jYXRhYmxlOgorICBzdWJyb3V0aW5lIGFzc2VydF9j b2RlIChlcnJfbXNnMCkKKyAgICBjaGFyYWN0ZXIoOiksIG9wdGlvbmFsLCBhbGxvY2F0YWJs ZSA6OiBlcnJfbXNnMAorICAgIGlmIChwcmVzZW50IChlcnJfbXNnMCkpIGVycl9tc2cwID0g J2ZvbyBiYXInCisgIGVuZAorICAhIFRlc3Q6IG9wdGlvbmFsIGFyZ3VtZW50CisgIHN1YnJv dXRpbmUgdG9faW50IChlcnJfbXNnMSkKKyAgICBjaGFyYWN0ZXIoOiksIG9wdGlvbmFsLCBh bGxvY2F0YWJsZSA6OiBlcnJfbXNnMQorICAgIGNhbGwgYXNzZXJ0X2NvZGUgKGVycl9tc2cx KQorICBlbmQKKyAgISBDb250cm9sOiBub24tb3B0aW9uYWwgYXJndW1lbnQKKyAgc3Vicm91 dGluZSB0b19pbnQyIChlcnJfbXNnMikKKyAgICBjaGFyYWN0ZXIoOiksIGFsbG9jYXRhYmxl IDo6IGVycl9tc2cyCisgICAgY2FsbCBhc3NlcnRfY29kZSAoZXJyX21zZzIpCisgIGVuZAor CisgICEgUmFuay0xOgorICBzdWJyb3V0aW5lIGFzc2VydF9yYW5rMSAobXNnKQorICAgIGNo YXJhY3Rlcig6KSwgb3B0aW9uYWwsIGFsbG9jYXRhYmxlLCBpbnRlbnQob3V0KSA6OiBtc2co OikKKyAgICBpZiAocHJlc2VudCAobXNnKSkgdGhlbgorICAgICAgIGFsbG9jYXRlIChjaGFy YWN0ZXIoMikgOjogbXNnKDQyKSkKKyAgICAgICBtc2coOikgPSAib2siCisgICAgZW5kIGlm CisgIGVuZAorCisgIHN1YnJvdXRpbmUgdGVzdF9yYW5rMSAobXNnMSkKKyAgICBjaGFyYWN0 ZXIoOiksIG9wdGlvbmFsLCBhbGxvY2F0YWJsZSwgaW50ZW50KG91dCkgOjogbXNnMSg6KQor ICAgIGNhbGwgYXNzZXJ0X3JhbmsxIChtc2cxKQorICBlbmQKKworICAhIERlZmVycmVkLWxl bmd0aCBjaGFyYWN0ZXIsIHBvaW50ZXI6CisgIHN1YnJvdXRpbmUgYXNzZXJ0X3AgKGVycl9t c2cwKQorICAgIGNoYXJhY3Rlcig6KSwgb3B0aW9uYWwsIHBvaW50ZXIgOjogZXJyX21zZzAK KyAgICBpZiAocHJlc2VudCAoZXJyX21zZzApKSB0aGVuCisgICAgICAgaWYgKGFzc29jaWF0 ZWQgKGVycl9tc2cwKSkgZGVhbGxvY2F0ZSAoZXJyX21zZzApCisgICAgICAgYWxsb2NhdGUg KGNoYXJhY3Rlcig4KSA6OiBlcnJfbXNnMCkKKyAgICAgICBlcnJfbXNnMCA9ICdwb28gYmxh JworICAgIGVuZCBpZgorICBlbmQKKworICBzdWJyb3V0aW5lIHRvX2ludF9wIChlcnJfbXNn MSkKKyAgICBjaGFyYWN0ZXIoOiksIG9wdGlvbmFsLCBwb2ludGVyIDo6IGVycl9tc2cxCisg ICAgY2FsbCBhc3NlcnRfcCAoZXJyX21zZzEpCisgIGVuZAorCisgIHN1YnJvdXRpbmUgdG9f aW50Ml9wIChlcnJfbXNnMikKKyAgICBjaGFyYWN0ZXIoOiksIHBvaW50ZXIgOjogZXJyX21z ZzIKKyAgICBjYWxsIGFzc2VydF9wIChlcnJfbXNnMikKKyAgZW5kCitlbmQKLS0gCjIuMzUu MwoK --------------87BmqhHCOb5LK8hFLm026J4a--