From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by sourceware.org (Postfix) with ESMTPS id F31B13858413; Fri, 23 Feb 2024 21:15:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F31B13858413 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine 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 F31B13858413 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708722922; cv=none; b=pe4J0t5pJt58EC8OuFV8qB9b29ksvSv3gEzU5u07R+HfdW84Qtmkf62HTObZQb5y2BRGyejQkxaT0ycrV41qipfSS32vaPeCrTW6AOPJMYQTt+OmUl9nTHIeyuXYU+aAD3JjjGu1/piTX0triXBMNAje9MlvW5Q076FF7O9rME8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708722922; c=relaxed/simple; bh=cPO/ZjID/O9/OUXydlb46S1c5x6c+iQ/9gwqiACBPpE=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=XWaX8gG1nCry4sdJg44ofKN5fGl660yh9VL4p9Tp15mKxvUuNedesV5ajR7lOmvuVjx/zejz1SZC2L+eEhxotcsgKobntp1TQlo6pNP72QFoAx+8fe1ynQoFgKH25+vbe9Xa1KSZNFqVUB1r2xkWYSwXaHGQC0em9k3uM2q7MVM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1708722918; x=1709327718; i=anlauf@gmx.de; bh=cPO/ZjID/O9/OUXydlb46S1c5x6c+iQ/9gwqiACBPpE=; h=X-UI-Sender-Class:Date:Subject:From:To:Cc:References: In-Reply-To; b=ndHcJbZSna8i3ECFjd3CdufZHsdfMyXQqDs7+SPXlmcQAf3Kj8MtKEAH/BwttARs CjWm4ceYrQJCqV/9CuCdDLnp5ohQsVKiQXYzfv7ardtYLgjXBjlgZt3A6JnOLPc3N KrwasFzO4+e/5dSdlT3shqtiR0r7b71iIJKnwvAyg16OXbtWg7Wyxv9oZ3m27CFn+ GCvq1w/jLfPB34Elz9hSfpZxVAlIivBLppabhxVybG3g/lf1fyxdyj+4J6oYae6JK Hzc45Xl5j/6L6jLPs5+/kNt7w8E2nLcF6EgsDjebCRFXuXH2lc/IVIvbkhEZobv4q 5Fn+918V93Lex+0H8A== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([93.207.92.3]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MtfJd-1qmCkr2agZ-00v9nd; Fri, 23 Feb 2024 22:15:18 +0100 Content-Type: multipart/mixed; boundary="------------h8zfXkW2SffyjjHoGEKSI0se" Message-ID: <204319dc-e3ce-47f3-9a95-676f03649aad@gmx.de> Date: Fri, 23 Feb 2024 22:15:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH, v2] Fix fortran/PR114024 From: Harald Anlauf To: gcc-patches@gcc.gnu.org Cc: fortran@gcc.gnu.org Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <29ba08a7-8218-4591-8c3f-36c17090e497@gmail.com> <3444d912-2e79-4e16-a425-79810d161ebb@gmx.de> <406c0c3a-f9a4-4f40-a44d-2db284060a59@gmx.de> <36c5afe2-07d5-41b2-8410-721f2a54dd51@gmx.de> Content-Language: en-US In-Reply-To: <36c5afe2-07d5-41b2-8410-721f2a54dd51@gmx.de> X-Provags-ID: V03:K1:/piHHhqtk/NJyGG2VHmI94GcO5F4I0XCwtZMvdp4wLNbWSM+8UP Eg8Z3wMPV42WEzC01Ib4Sz6jrj7TkOGfcKH84lUU3ZoOYwCpChSQwvhUoU1u5yx5y98ZOMS sYs1bMsTQDBC8C4eHAlGoXiIDh6qNiEViouP3LV6RrQjwAubVWJKe6EEuIrRRAY70UtlbbJ k9G8c2vuFj2Ou19GErklQ== UI-OutboundReport: notjunk:1;M01:P0:hOewkxj2UMo=;tkQtew29NmTJI+syLFQhWfDuNUy zIqm6JbzRGqZbvzHGwkR2xhKvRXGbUjYoEUMhsoZLcg4/DKldcuKK00EhkVG86QrVFfUmMcqd eQEQaZ1GshCG4vDuKodXuH1QlNmRfpXiCwMohRF1E+pdDneQg4lv7DtY8HvnolTBlXFAgQEab THW8tCmPbClrure9X6Vlb3m2CEuYelwr2EpFVNOH37mOqmKyxfD/oaBx85cROymP1ibgT9BGo k4rbgkbzQX/NbYMLfTeElGhMqrtBXnIfJ1wd+OUsaUENxvjpCS8yPN9j1pWUFkvwN1BYkaTAQ BTX31XuXa8HDZzUHIJ4S7xt4ACW7GErplRpvXvHX0v850h3aM116gO8iYD/SiIvx26h6eTjIy swiwGCRLjKYqPJWcqvxlyYBTerIXO8zPSVPoeIKTylOkvw2EKnh/u2px2aSL4blp6j8W+68GJ R8/da0a2H1R0Qhxmoef9pYAdsOmONEe+D9GY4YHX7y43c3sdak9eDp6H+g82pZ9U/84SFdlS3 3Hv3aZDrzKoSr0W45Nx8esNvilM7tyvTEg3AOKYw2oSGpm86aXtNun3lK3YeXqEO030PIlHq2 awYuApIyxoPutvwjit2GA8xXKCMe7aZnQelxHjMh7957nS9ErwoN0tQHEvr+skNphYZi6ZgWG f42ZrNc1fNjdbLXumEkb3Yfm0Mt/YjRkK+DHNWVWv+iQbmNeLAh88XWIeFEHFg8cHU3rfKW/M xVNyHojiTRkkCVwSt9amNIeVfXM7KLborYl2Se2lCWPnLn4Gg1o2eluQWx1Rj699y1TL1M9KY /u9BqFgi5IGi+F/u5a3ji2nqHshyNbSgeTjJKJdvlzB6U= X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_NUMSUBJECT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,WEIRD_PORT 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. --------------h8zfXkW2SffyjjHoGEKSI0se Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Steve, all, here's an updated patch with an enhanced testcase that also checks MOLD=3D besides SOURCE=3D. Regtested on x86_64-pc-linux-gnu. Is it OK for mainline? Cheers, Harald On 2/22/24 22:32, Harald Anlauf wrote: > On 2/22/24 22:01, Steve Kargl wrote: >> BTW, my patch and I suspect your improved patch also >> fixes 'allocate(x,mold=3Dz%re)'.=C2=A0 Consider, >> >> =C2=A0=C2=A0=C2=A0 complex z(3) >> =C2=A0=C2=A0=C2=A0 real, allocatable :: x(:) >> =C2=A0=C2=A0=C2=A0 z =3D 42ha >> =C2=A0=C2=A0=C2=A0 allocate(x, mold=3Dz%re) >> =C2=A0=C2=A0=C2=A0 print *, size(x) >> =C2=A0=C2=A0=C2=A0 end >> >> % gfortran13 -o z a.f90 >> a.f90:9:25: >> >> =C2=A0=C2=A0=C2=A0=C2=A0 9 |=C2=A0=C2=A0=C2=A0 allocate(x, mold=3Dz%re) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 1 >> internal compiler error: in retrieve_last_ref, at >> fortran/trans-array.cc:6070 >> 0x247d7a679 __libc_start1 >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /usr/src/lib/libc/csu/= libc_start1.c:157 >> >> % gfcx -o z a.f90 && ./z >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 3 >> > > Nice!=C2=A0 I completely forgot about MOLD... > > So the only missing pieces are a really comprehensive testcase > and successful regtests... --------------h8zfXkW2SffyjjHoGEKSI0se Content-Type: text/x-patch; charset=UTF-8; name="pr114024-v2.diff" Content-Disposition: attachment; filename="pr114024-v2.diff" Content-Transfer-Encoding: base64 RnJvbSBhMTc2YzJmNDRmODEyZDgyYWViNDMwZmFkZjIzYWI0YjZkZDViZDY1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGV2ZSBLYXJnbCA8a2FyZ2xAZ2NjLmdudS5vcmc+ CkRhdGU6IEZyaSwgMjMgRmViIDIwMjQgMjI6MDU6MDQgKzAxMDAKU3ViamVjdDogW1BBVENI XSBGb3J0cmFuOiBBTExPQ0FURSBzdGF0ZW1lbnQsIFNPVVJDRS9NT0xEIGV4cHJlc3Npb25z IHdpdGgKIHN1YnJlZnMgW1BSMTE0MDI0XQoKCVBSIGZvcnRyYW4vMTE0MDI0CgpnY2MvZm9y dHJhbi9DaGFuZ2VMb2c6CgoJKiB0cmFucy1zdG10LmNjIChnZmNfdHJhbnNfYWxsb2NhdGUp OiBXaGVuIGEgc291cmNlIGV4cHJlc3Npb24gaGFzCglzdWJzdHJpbmcgcmVmZXJlbmNlcywg cGFydC1yZWZzLCBvciAlcmUvJWltIGlucXVpcmllcywgd3JhcCB0aGUKCWVudGl0eSBpbiBw YXJlbnRoZXNlcyB0byBmb3JjZSBldmFsdWF0aW9uIG9mIHRoZSBleHByZXNzaW9uLgoKZ2Nj L3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBnZm9ydHJhbi5kZy9hbGxvY2F0ZV93aXRoX3Nv dXJjZV8yNy5mOTA6IE5ldyB0ZXN0LgoJKiBnZm9ydHJhbi5kZy9hbGxvY2F0ZV93aXRoX3Nv dXJjZV8yOC5mOTA6IE5ldyB0ZXN0LgoKQ28tQXV0aG9yZWQtQnk6IEhhcmFsZCBBbmxhdWYg PGFubGF1ZkBnbXguZGU+Ci0tLQogZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5jYyAgICAgICAg ICAgICAgICAgICAgIHwgMTAgKystCiAuLi4vZ2ZvcnRyYW4uZGcvYWxsb2NhdGVfd2l0aF9z b3VyY2VfMjcuZjkwICAgfCAyMCArKysrKwogLi4uL2dmb3J0cmFuLmRnL2FsbG9jYXRlX3dp dGhfc291cmNlXzI4LmY5MCAgIHwgOTAgKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj aGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FsbG9jYXRlX3dpdGhfc291cmNl XzI3LmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv YWxsb2NhdGVfd2l0aF9zb3VyY2VfMjguZjkwCgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v dHJhbnMtc3RtdC5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuY2MKaW5kZXggNTI0N2Qz ZDM5ZDcuLmUwOTgyOGUyMThiIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1zdG10 LmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuY2MKQEAgLTYzNTUsOCArNjM1NSwx NCBAQCBnZmNfdHJhbnNfYWxsb2NhdGUgKGdmY19jb2RlICogY29kZSwgZ2ZjX29tcF9uYW1l bGlzdCAqb21wX2FsbG9jYXRlKQogCXZ0YWJfbmVlZGVkID0gKGFsLT5leHByLT50cy50eXBl ID09IEJUX0NMQVNTKTsKIAogICAgICAgZ2ZjX2luaXRfc2UgKCZzZSwgTlVMTCk7Ci0gICAg ICAvKiBXaGVuIGV4cHIzIGlzIGEgdmFyaWFibGUsIGkuZS4sIGEgdmVyeSBzaW1wbGUgZXhw cmVzc2lvbiwKLQkgICAgIHRoZW4gY29udmVydCBpdCBvbmNlIGhlcmUuICAqLworICAgICAg LyogV2hlbiBleHByMyBpcyBhIHZhcmlhYmxlLCBpLmUuLCBhIHZlcnkgc2ltcGxlIGV4cHJl c3Npb24sIHRoZW4KKwkgY29udmVydCBpdCBvbmNlIGhlcmUuICBJZiBvbmUgaGFzIGEgc291 cmNlIGV4cHJlc3Npb24gdGhhdCBoYXMKKwkgc3Vic3RyaW5nIHJlZmVyZW5jZXMsIHBhcnQt cmVmcywgb3IgJXJlLyVpbSBpbnF1aXJpZXMsIHdyYXAgdGhlCisJIGVudGl0eSBpbiBwYXJl bnRoZXNlcyB0byBmb3JjZSBldmFsdWF0aW9uIG9mIHRoZSBleHByZXNzaW9uLiAgKi8KKyAg ICAgIGlmIChjb2RlLT5leHByMy0+ZXhwcl90eXBlID09IEVYUFJfVkFSSUFCTEUKKwkgICYm IGlzX3N1YnJlZl9hcnJheSAoY29kZS0+ZXhwcjMpKQorCWNvZGUtPmV4cHIzID0gZ2ZjX2dl dF9wYXJlbnRoZXNlcyAoY29kZS0+ZXhwcjMpOworCiAgICAgICBpZiAoY29kZS0+ZXhwcjMt PmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFCiAJICB8fCBjb2RlLT5leHByMy0+ZXhwcl90 eXBlID09IEVYUFJfQVJSQVkKIAkgIHx8IGNvZGUtPmV4cHIzLT5leHByX3R5cGUgPT0gRVhQ Ul9DT05TVEFOVCkKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYWxs b2NhdGVfd2l0aF9zb3VyY2VfMjcuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9h bGxvY2F0ZV93aXRoX3NvdXJjZV8yNy5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmQwZjBmM2M0YTg0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9hbGxvY2F0ZV93aXRoX3NvdXJjZV8yNy5mOTAKQEAgLTAsMCAr MSwyMCBAQAorIQorISB7IGRnLWRvIHJ1biB9CishCishIGZvcnRyYW4vUFIxMTQwMjQKKyEg aHR0cHM6Ly9naXRodWIuY29tL2Z1aml0c3UvY29tcGlsZXItdGVzdC1zdWl0ZQorISBNb2Rp ZmllZCBmcm9tIEZvcnRyYW4vMDA5My8wMDkzXzAxMzAuZjkwCishCitwcm9ncmFtIGZvbwor ICAgaW1wbGljaXQgbm9uZQorICAgY29tcGxleCA6OiBjbXAoMykKKyAgIHJlYWwsIGFsbG9j YXRhYmxlIDo6IHh4KDopLCB5eSg6KSwgenooOikKKyAgIGNtcCA9ICgzLiwgNi43OCkKKyAg IGFsbG9jYXRlKHh4LCBzb3VyY2UgPSBjbXAlcmUpICAgICAgICAgICEgVGhpcyBjYXVzZWQg YW4gSUNFLgorICAgYWxsb2NhdGUoeXksIHNvdXJjZSA9IGNtcCgxOjMpJXJlKSAgICAgISBU aGlzIGNhdXNlZCBhbiBJQ0UuCisgICBhbGxvY2F0ZSh6eiwgc291cmNlID0gKGNtcCVyZSkp CisgICBpZiAoYW55KHh4IC89IFszLiwgMy4sIDMuXSkpIHN0b3AgMQorICAgaWYgKGFueSh5 eSAvPSBbMy4sIDMuLCAzLl0pKSBzdG9wIDIKKyAgIGlmIChhbnkoenogLz0gWzMuLCAzLiwg My5dKSkgc3RvcCAzCitlbmQgcHJvZ3JhbSBmb28KKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9hbGxvY2F0ZV93aXRoX3NvdXJjZV8yOC5mOTAgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2FsbG9jYXRlX3dpdGhfc291cmNlXzI4LmY5MApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTc2YzU2N2NmMjIKLS0tIC9kZXYv bnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FsbG9jYXRlX3dpdGhfc291 cmNlXzI4LmY5MApAQCAtMCwwICsxLDkwIEBACishIHsgZGctZG8gcnVuIH0KKyEKKyEgUFIg Zm9ydHJhbi8xMTQwMjQKKworcHJvZ3JhbSBmb28KKyAgaW1wbGljaXQgbm9uZQorICBjb21w bGV4IDo6IGNtcCgzKSA9ICgzLiw0LikKKyAgdHlwZSBjaSAgICAgICAgICAgISBwc2V1ZG8g ImNvbXBsZXggaW50ZWdlciIgdHlwZQorICAgICBpbnRlZ2VyIDo6IHJlCisgICAgIGludGVn ZXIgOjogaW0KKyAgZW5kIHR5cGUgY2kKKyAgdHlwZSBjciAgICAgICAgICAgISBwc2V1ZG8g ImNvbXBsZXgiIHR5cGUKKyAgICAgcmVhbCA6OiByZQorICAgICByZWFsIDo6IGltCisgIGVu ZCB0eXBlIGNyCisgIHR5cGUgdQorICAgICB0eXBlKGNpKSA6OiBpaSgzKQorICAgICB0eXBl KGNyKSA6OiBycigzKQorICBlbmQgdHlwZSB1CisgIHR5cGUodSkgOjogY2MKKworICBjYyUg aWklIHJlID0gbmludCAoY21wJSByZSkKKyAgY2MlIGlpJSBpbSA9IG5pbnQgKGNtcCUgaW0p CisgIGNjJSByciUgcmUgPSBjbXAlIHJlCisgIGNjJSByciUgaW0gPSBjbXAlIGltCisgCisg Y2FsbCB0ZXN0X3N1YnN0cmluZyAoKQorICBjYWxsIHRlc3RfaW50X3JlYWwgKCkKKyAgY2Fs bCB0ZXN0X3BvbHkgKCkKKworY29udGFpbnMKKworICBzdWJyb3V0aW5lIHRlc3Rfc3Vic3Ry aW5nICgpCisgICAgY2hhcmFjdGVyKDQpICAgICAgICAgICAgICA6OiBzdHIoMykgPSBbImFi Y2QiLCJlZmdoIiwiaWprbCJdCisgICAgY2hhcmFjdGVyKDopLCBhbGxvY2F0YWJsZSA6OiBh Yyg6KQorICAgIGFsbG9jYXRlIChhYywgc291cmNlPXN0cigxOjoyKSgyOjQpKQorICAgIGlm IChzaXplIChhYykgLz0gMiAub3IuIGxlbiAoYWMpIC89IDMpIHN0b3AgMTEKKyAgICBpZiAo YWMoMikgLz0gImprbCIpICAgICAgICAgICAgICAgICAgICBzdG9wIDEyCisgICAgZGVhbGxv Y2F0ZSAoYWMpCisgICAgYWxsb2NhdGUgKGFjLCBtb2xkPXN0cigxOjoyKSgyOjQpKQorICAg IGlmIChzaXplIChhYykgLz0gMiAub3IuIGxlbiAoYWMpIC89IDMpIHN0b3AgMTMKKyAgICBk ZWFsbG9jYXRlIChhYykKKyAgZW5kCisKKyAgc3Vicm91dGluZSB0ZXN0X2ludF9yZWFsICgp CisgICAgaW50ZWdlciwgYWxsb2NhdGFibGUgIDo6IGFhKDopCisgICAgcmVhbCwgcG9pbnRl ciAgICAgICAgIDo6IHBwKDopCisgICAgYWxsb2NhdGUgKGFhLCBzb3VyY2UgPSBjYyUgaWkl IGltKQorICAgIGlmIChzaXplIChhYSkgLz0gMykgICAgICBzdG9wIDIxCisgICAgaWYgKGFu eSAoYWEgLz0gY21wJSBpbSkpIHN0b3AgMjIKKyAgICBhbGxvY2F0ZSAocHAsIHNvdXJjZSA9 IGNjJSByciUgcmUpCisgICAgaWYgKHNpemUgKHBwKSAvPSAzKSAgICAgIHN0b3AgMjMKKyAg ICBpZiAoYW55IChwcCAvPSBjbXAlIHJlKSkgc3RvcCAyNAorICAgIGRlYWxsb2NhdGUgKGFh LCBwcCkKKyAgZW5kCisKKyAgc3Vicm91dGluZSB0ZXN0X3BvbHkgKCkKKyAgICBjbGFzcygq KSwgYWxsb2NhdGFibGUgOjogdXUoOiksIHZ2KDopCisgICAgYWxsb2NhdGUgKHV1LCBzb3Vy Y2UgPSBjYyUgaWklIGltKQorICAgIGFsbG9jYXRlICh2diwgc291cmNlID0gY2MlIHJyJSBy ZSkKKyAgICBpZiAoc2l6ZSAodXUpIC89IDMpIHN0b3AgMzEKKyAgICBpZiAoc2l6ZSAodnYp IC89IDMpIHN0b3AgMzIKKyAgICBjYWxsIGNoZWNrICh1dSkKKyAgICBjYWxsIGNoZWNrICh2 dikKKyAgICBkZWFsbG9jYXRlICh1dSwgdnYpCisgICAgYWxsb2NhdGUgKHV1LCBtb2xkID0g Y2MlIGlpJSBpbSkKKyAgICBhbGxvY2F0ZSAodnYsIG1vbGQgPSBjYyUgcnIlIHJlKQorICAg IGlmIChzaXplICh1dSkgLz0gMykgc3RvcCAzMworICAgIGlmIChzaXplICh2dikgLz0gMykg c3RvcCAzNAorICAgIGRlYWxsb2NhdGUgKHV1LCB2dikKKyAgZW5kCisKKyAgc3Vicm91dGlu ZSBjaGVjayAoeCkKKyAgICBjbGFzcygqKSwgaW50ZW50KGluKSA6OiB4KDopCisgICAgc2Vs ZWN0IHR5cGUgKHgpCisgICAgdHlwZSBpcyAoaW50ZWdlcikKKyAgICAgICBpZiAoYW55ICh4 IC89IGNtcCUgaW0pKSB0aGVuCisgICAgICAgICAgcHJpbnQgKiwgIidpbnRlZ2VyJzoiLCB4 CisgICAgICAgICAgc3RvcCA0MQorICAgICAgIGVuZCBpZgorICAgIHR5cGUgaXMgKHJlYWwp CisgICAgICAgaWYgKGFueSAoeCAvPSBjbXAlIHJlKSkgdGhlbgorICAgICAgICAgIHByaW50 ICosICIncmVhbCc6IiwgeAorICAgICAgICAgIHN0b3AgNDIKKyAgICAgICBlbmQgaWYKKyAg ICB0eXBlIGlzIChjaGFyYWN0ZXIoKikpCisgICAgICAgcHJpbnQgKiwgIidjaGFyYWN0ZXIn OiIsIHgKKyAgICBlbmQgc2VsZWN0CisgIGVuZAorZW5kCi0tIAoyLjM1LjMKCg== --------------h8zfXkW2SffyjjHoGEKSI0se--