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 5EA313858C56; Sun, 6 Nov 2022 22:15:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5EA313858C56 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.96,142,1665475200"; d="diff'?scan'208";a="89103270" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa1.mentor.iphmx.com with ESMTP; 06 Nov 2022 14:15:45 -0800 IronPort-SDR: 7MA8ygmCa4ZwrUxeef5jNhwRPq7+SQ/DfqgX4L7dvKAFMj1f4L0QaqthA848gdK95JzGJRr9h0 0vn5sdC5m4Hl9QwVE459GKiTEvVA/o17QDXS3MqxaAuqN4AlFHplPtuXVaW+3isPc9fYafM8w5 xEnMZ7IS+QBaWoaKYUVUqjFkjn6TUuGIjB3UwqpgnAp81u0jmjipFKVPrUBbGgefIdTTTPALgi Hc76BjxzWsMs7Ss7kXZUsLH2kknvUcdHZaZXnCGMeZRz9x0zkJ3pfUIk+T1/ivRgBbnjNO8muP ipE= Content-Type: multipart/mixed; boundary="------------fHWHzUAbaRtbQMQGo6fom9rB" Message-ID: <2c0c89c2-cdfd-ee31-a993-3e40bce61fee@codesourcery.com> Date: Sun, 6 Nov 2022 23:15:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [Patch] Fortran: Fix reallocation on assignment for kind=4 strings [PR107508] Content-Language: en-US To: Mikael Morin , Tobias Burnus , gcc-patches , fortran References: <2163ce95-3e4f-b887-eb35-50134bc381de@orange.fr> From: Tobias Burnus In-Reply-To: <2163ce95-3e4f-b887-eb35-50134bc381de@orange.fr> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-07.mgc.mentorg.com (139.181.222.7) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,NICE_REPLY_A,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------fHWHzUAbaRtbQMQGo6fom9rB Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Hello, On 06.11.22 21:32, Mikael Morin wrote: > Le 05/11/2022 =C3=A0 23:28, Tobias Burnus a =C3=A9crit : >> OK for mainline? > The trans-array.c part looks good. > A couple of nits for the trans-expr.cc part: > >> - /* Use the rhs string length and the lhs element size. */ >> - size =3D string_length; >> - tmp =3D TREE_TYPE (gfc_typenode_for_spec (&expr1->ts)); >> - tmp =3D TYPE_SIZE_UNIT (tmp); >> + /* Use the rhs string length and the lhs element size. Note >> that 'size' is >> + used below for the string-length comparison, only. */ >> + size =3D string_length, > s/,/;/ ? >> + tmp =3D TYPE_SIZE_UNIT (gfc_get_char_type (expr2->ts.kind)); > Here you are using the rhs element size, which contradicts the > comment, so there is certainly something to fix here (either the > comment or the code). I did remove it in between for testing =E2=80=93 but obviously completely m= essed up when re-adding it :-/ However, testing indicates that expr1 vs. expr2 does not make a difference = for the kind calculation: character(len=3D:,kind=3D1), allocatable :: c1l character(len=3D:,kind=3D4), allocatable :: c4l c1l =3D c4l c4l =3D c1l as the code path is different and the result is in either case: c1l =3D (character(kind=3D1)[1:.c1l] *) __builtin_realloc ((void *) c1= l, MAX_EXPR <(sizetype) .c4l, 1>); c4l =3D (character(kind=3D4)[1:.c4l] *) __builtin_realloc ((void *) c4= l, MAX_EXPR <(sizetype) .c1l * 4, 1>); Still, matching the comment makes sense. > As for the testcase, do you keep the code commented on purpose? I think it happened when I did 'git add' after adding the PR to the testcase, missing the commented lines I added for the explaining dumps :-/ > Can some of it be removed or uncommented? It should be all uncommented, except for the 'print' line. Updated patch attached; passed quick testing + I will fully regtest it. =E2=80=94 I will commit it, unless more comments come up. Tobias PS: Writing patches while being tired works, but writing clean patches obvious does not. ----------------- 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 --------------fHWHzUAbaRtbQMQGo6fom9rB Content-Type: text/x-patch; charset="UTF-8"; name="realloc-wide-char-v2.diff" Content-Disposition: attachment; filename="realloc-wide-char-v2.diff" Content-Transfer-Encoding: base64 Rm9ydHJhbjogRml4IHJlYWxsb2NhdGlvbiBvbiBhc3NpZ25tZW50IGZvciBraW5kPTQgc3Ry aW5ncyBbUFIxMDc1MDhdCgpUaGUgY2hlY2sgd2hldGhlciByZWFsbG9jYXRpb24gb24gYXNz aWdubWVudCB3YXMgcmVxdWlyZWQgZGlkIG5vdCBoYW5kbGUKa2luZD00IGNoYXJhY3RlcnMg Y29ycmVjdGx5IHN1Y2ggdGhhdCB0aGVyZSB3YXMgYWx3YXlzIGEgcmVhbGxvY2F0aW9uLApp bXBseWluZyBpc3N1ZXMgd2l0aCBwb2ludGVyIGFkZHJlc3NlcyBhbmQgbG93ZXIgYm91bmRz LiAgQWRkaXRpb25hbGx5LAp3aXRoIGFsbCBkZWZlcnJlZCBzdHJpbmdzLCB0aGUgb2xkIG1l bW9yeSB3YXMgbm90IGZyZWVkIG9uIHJlYWxsb2NhdGlvbi4KQW5kLCBmaW5hbGx5LCBpbnNp ZGUgdGhlIGJsb2NrIHdoaWNoIHdhcyBvbmx5IGV4ZWN1dGVkIGlmIHN0cmluZyBsZW5ndGhz Cm9yIGJvdW5kcyBvciBkeW5hbWljIHR5cGVzIGNoYW5nZWQsIHdhcyBhIHN1YmNoZWNrIG9m IHRoZSBzYW1lLCB3aGljaAp3YXMgZWZmZWN0aXZlbHkgYSBubyBvcCBidXQgc3RpbGwgY29u ZnVzaW5nIGFuZCBhdCBsZWFzdCBhZGRlZCB3aXRoIC1PMApleHRyYSBpbnN0cnVjdGlvbnMg dG8gdGhlIGJpbmFyeS4KCglQUiBmb3J0cmFuLzEwNzUwOAoKZ2NjL2ZvcnRyYW4vQ2hhbmdl TG9nOgoKCSogdHJhbnMtYXJyYXkuY2MgKGdmY19hbGxvY19hbGxvY2F0YWJsZV9mb3JfYXNz aWdubWVudCk6IEZpeAoJc3RyaW5nLWxlbmd0aCBjaGVjaywgcGx1ZyBtZW1vcnkgbGVhaywg YW5kIGF2b2lkIGdlbmVyYXRpb24gb2YKCWVmZmVjdGl2ZWx5IG5vLW9wIGNvZGUuCgkqIHRy YW5zLWV4cHIuY2MgKGFsbG9jX3NjYWxhcl9hbGxvY2F0YWJsZV9mb3JfYXNzaWdubWVudCk6 IEV4dGVuZAoJY29tbWVudDsgbWlub3IgY2xlYW51cC4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdl TG9nOgoKCSogZ2ZvcnRyYW4uZGcvd2lkZWNoYXJfMTEuZjkwOiBOZXcgdGVzdC4KCiBnY2Mv Zm9ydHJhbi90cmFucy1hcnJheS5jYyAgICAgICAgICAgICAgICB8IDU3ICsrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGdjYy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MgICAgICAg ICAgICAgICAgIHwgIDYgKystLQogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93aWRlY2hh cl8xMS5mOTAgfCA1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hh bmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Z2NjL2ZvcnRyYW4vdHJhbnMtYXJyYXkuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1hcnJheS5j YwppbmRleCA1MTRjYjA1N2FmYi4uYjdkNGM0MWI1ZmUgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0 cmFuL3RyYW5zLWFycmF5LmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLWFycmF5LmNjCkBA IC0xMDUyNyw3ICsxMDUyNyw2IEBAIGdmY19hbGxvY19hbGxvY2F0YWJsZV9mb3JfYXNzaWdu bWVudCAoZ2ZjX2xvb3BpbmZvICpsb29wLAogICB0cmVlIG9mZnNldDsKICAgdHJlZSBqdW1w X2xhYmVsMTsKICAgdHJlZSBqdW1wX2xhYmVsMjsKLSAgdHJlZSBuZXFfc2l6ZTsKICAgdHJl ZSBsYmQ7CiAgIHRyZWUgY2xhc3NfZXhwcjIgPSBOVUxMX1RSRUU7CiAgIGludCBuOwpAQCAt MTA2MDcsNiArMTA2MDYsMTEgQEAgZ2ZjX2FsbG9jX2FsbG9jYXRhYmxlX2Zvcl9hc3NpZ25t ZW50IChnZmNfbG9vcGluZm8gKmxvb3AsCiAJZWxlbXNpemUxID0gZXhwcjEtPnRzLnUuY2wt PmJhY2tlbmRfZGVjbDsKICAgICAgIGVsc2UKIAllbGVtc2l6ZTEgPSBsc3MtPmluZm8tPnN0 cmluZ19sZW5ndGg7CisgICAgICB0cmVlIHVuaXRfc2l6ZSA9IFRZUEVfU0laRV9VTklUIChn ZmNfZ2V0X2NoYXJfdHlwZSAoZXhwcjEtPnRzLmtpbmQpKTsKKyAgICAgIGVsZW1zaXplMSA9 IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1VTFRfRVhQUiwKKwkJCQkgICBU UkVFX1RZUEUgKGVsZW1zaXplMSksIGVsZW1zaXplMSwKKwkJCQkgICBmb2xkX2NvbnZlcnQg KFRSRUVfVFlQRSAoZWxlbXNpemUxKSwgdW5pdF9zaXplKSk7CisKICAgICB9CiAgIGVsc2Ug aWYgKGV4cHIxLT50cy50eXBlID09IEJUX0NMQVNTKQogICAgIHsKQEAgLTEwNjk5LDE5ICsx MDcwMyw3IEBAIGdmY19hbGxvY19hbGxvY2F0YWJsZV9mb3JfYXNzaWdubWVudCAoZ2ZjX2xv b3BpbmZvICpsb29wLAogICAvKiBBbGxvY2F0ZSBpZiBkYXRhIGlzIE5VTEwuICAqLwogICBj b25kX251bGwgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBFUV9FWFBSLCBs b2dpY2FsX3R5cGVfbm9kZSwKIAkJCSBhcnJheTEsIGJ1aWxkX2ludF9jc3QgKFRSRUVfVFlQ RSAoYXJyYXkxKSwgMCkpOwotCi0gIGlmIChleHByMS0+dHMudHlwZSA9PSBCVF9DSEFSQUNU RVIgJiYgZXhwcjEtPnRzLmRlZmVycmVkKQotICAgIHsKLSAgICAgIHRtcCA9IGZvbGRfYnVp bGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE5FX0VYUFIsCi0JCQkgICAgIGxvZ2ljYWxfdHlw ZV9ub2RlLAotCQkJICAgICBsc3MtPmluZm8tPnN0cmluZ19sZW5ndGgsCi0JCQkgICAgIHJz cy0+aW5mby0+c3RyaW5nX2xlbmd0aCk7Ci0gICAgICBjb25kX251bGwgPSBmb2xkX2J1aWxk Ml9sb2MgKGlucHV0X2xvY2F0aW9uLCBUUlVUSF9PUl9FWFBSLAotCQkJCSAgIGxvZ2ljYWxf dHlwZV9ub2RlLCB0bXAsIGNvbmRfbnVsbCk7Ci0gICAgICBjb25kX251bGw9IGdmY19ldmFs dWF0ZV9ub3cgKGNvbmRfbnVsbCwgJmZibG9jayk7Ci0gICAgfQotICBlbHNlCi0gICAgY29u ZF9udWxsPSBnZmNfZXZhbHVhdGVfbm93IChjb25kX251bGwsICZmYmxvY2spOworICBjb25k X251bGw9IGdmY19ldmFsdWF0ZV9ub3cgKGNvbmRfbnVsbCwgJmZibG9jayk7CiAKICAgdG1w ID0gYnVpbGQzX3YgKENPTkRfRVhQUiwgY29uZF9udWxsLAogCQkgIGJ1aWxkMV92IChHT1RP X0VYUFIsIGp1bXBfbGFiZWwxKSwKQEAgLTEwNzc4LDE5ICsxMDc3MCw2IEBAIGdmY19hbGxv Y19hbGxvY2F0YWJsZV9mb3JfYXNzaWdubWVudCAoZ2ZjX2xvb3BpbmZvICpsb29wLAogICB0 bXAgPSBidWlsZDFfdiAoTEFCRUxfRVhQUiwganVtcF9sYWJlbDEpOwogICBnZmNfYWRkX2V4 cHJfdG9fYmxvY2sgKCZmYmxvY2ssIHRtcCk7CiAKLSAgLyogSWYgdGhlIGxocyBoYXMgbm90 IGJlZW4gYWxsb2NhdGVkLCBpdHMgYm91bmRzIHdpbGwgbm90IGhhdmUgYmVlbgotICAgICBp bml0aWFsaXplZCBhbmQgc28gaXRzIHNpemUgaXMgc2V0IHRvIHplcm8uICAqLwotICBzaXpl MSA9IGdmY19jcmVhdGVfdmFyIChnZmNfYXJyYXlfaW5kZXhfdHlwZSwgTlVMTCk7Ci0gIGdm Y19pbml0X2Jsb2NrICgmYWxsb2NfYmxvY2spOwotICBnZmNfYWRkX21vZGlmeSAoJmFsbG9j X2Jsb2NrLCBzaXplMSwgZ2ZjX2luZGV4X3plcm9fbm9kZSk7Ci0gIGdmY19pbml0X2Jsb2Nr ICgmcmVhbGxvY19ibG9jayk7Ci0gIGdmY19hZGRfbW9kaWZ5ICgmcmVhbGxvY19ibG9jaywg c2l6ZTEsCi0JCSAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9zaXplIChkZXNjLCBleHByMS0+cmFu aykpOwotICB0bXAgPSBidWlsZDNfdiAoQ09ORF9FWFBSLCBjb25kX251bGwsCi0JCSAgZ2Zj X2ZpbmlzaF9ibG9jayAoJmFsbG9jX2Jsb2NrKSwKLQkJICBnZmNfZmluaXNoX2Jsb2NrICgm cmVhbGxvY19ibG9jaykpOwotICBnZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZmYmxvY2ssIHRt cCk7Ci0KICAgLyogR2V0IHRoZSByaHMgc2l6ZSBhbmQgZml4IGl0LiAgKi8KICAgc2l6ZTIg PSBnZmNfaW5kZXhfb25lX25vZGU7CiAgIGZvciAobiA9IDA7IG4gPCBleHByMi0+cmFuazsg bisrKQpAQCAtMTA4MDcsMTYgKzEwNzg2LDYgQEAgZ2ZjX2FsbG9jX2FsbG9jYXRhYmxlX2Zv cl9hc3NpZ25tZW50IChnZmNfbG9vcGluZm8gKmxvb3AsCiAgICAgfQogICBzaXplMiA9IGdm Y19ldmFsdWF0ZV9ub3cgKHNpemUyLCAmZmJsb2NrKTsKIAotICBjb25kID0gZm9sZF9idWls ZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTkVfRVhQUiwgbG9naWNhbF90eXBlX25vZGUsCi0J CQkgIHNpemUxLCBzaXplMik7Ci0KLSAgLyogSWYgdGhlIGxocyBpcyBkZWZlcnJlZCBsZW5n dGgsIGFzc3VtZSB0aGF0IHRoZSBlbGVtZW50IHNpemUKLSAgICAgY2hhbmdlcyBhbmQgZm9y Y2UgYSByZWFsbG9jYXRpb24uICAqLwotICBpZiAoZXhwcjEtPnRzLmRlZmVycmVkKQotICAg IG5lcV9zaXplID0gZ2ZjX2V2YWx1YXRlX25vdyAobG9naWNhbF90cnVlX25vZGUsICZmYmxv Y2spOwotICBlbHNlCi0gICAgbmVxX3NpemUgPSBnZmNfZXZhbHVhdGVfbm93IChjb25kLCAm ZmJsb2NrKTsKLQogICAvKiBEZWFsbG9jYXRpb24gb2YgYWxsb2NhdGFibGUgY29tcG9uZW50 cyB3aWxsIGhhdmUgdG8gb2NjdXIgb24KICAgICAgcmVhbGxvY2F0aW9uLiAgRml4IHRoZSBv bGQgZGVzY3JpcHRvciBub3cuICAqLwogICBpZiAoKGV4cHIxLT50cy50eXBlID09IEJUX0RF UklWRUQpCkBAIC0xMTA0OCwyMCArMTEwMTcsNiBAQCBnZmNfYWxsb2NfYWxsb2NhdGFibGVf Zm9yX2Fzc2lnbm1lbnQgKGdmY19sb29waW5mbyAqbG9vcCwKICAgZ2ZjX2FkZF9ibG9ja190 b19ibG9jayAoJnJlYWxsb2NfYmxvY2ssICZjYWZfc2UucG9zdCk7CiAgIHJlYWxsb2NfZXhw ciA9IGdmY19maW5pc2hfYmxvY2sgKCZyZWFsbG9jX2Jsb2NrKTsKIAotICAvKiBSZWFsbG9j YXRlIGlmIHNpemVzIG9yIGR5bmFtaWMgdHlwZXMgYXJlIGRpZmZlcmVudC4gICovCi0gIGlm IChlbGVtc2l6ZTEpCi0gICAgewotICAgICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1 dF9sb2NhdGlvbiwgTkVfRVhQUiwgbG9naWNhbF90eXBlX25vZGUsCi0JCQkgICAgIGVsZW1z aXplMSwgZWxlbXNpemUyKTsKLSAgICAgIHRtcCA9IGdmY19ldmFsdWF0ZV9ub3cgKHRtcCwg JmZibG9jayk7Ci0gICAgICBuZXFfc2l6ZSA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9j YXRpb24sIFRSVVRIX09SX0VYUFIsCi0JCQkJICBsb2dpY2FsX3R5cGVfbm9kZSwgbmVxX3Np emUsIHRtcCk7Ci0gICAgfQotICB0bXAgPSBidWlsZDNfdiAoQ09ORF9FWFBSLCBuZXFfc2l6 ZSwgcmVhbGxvY19leHByLAotCQkgIGJ1aWxkX2VtcHR5X3N0bXQgKGlucHV0X2xvY2F0aW9u KSk7Ci0KLSAgcmVhbGxvY19leHByID0gdG1wOwotCiAgIC8qIE1hbGxvYyBleHByZXNzaW9u LiAgKi8KICAgZ2ZjX2luaXRfYmxvY2sgKCZhbGxvY19ibG9jayk7CiAgIGlmICghY29hcnJh eSkKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MgYi9nY2MvZm9ydHJh bi90cmFucy1leHByLmNjCmluZGV4IGU3YjkyMTFmMTdlLi5mM2ZiYjUyNzE1NyAxMDA2NDQK LS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jYworKysgYi9nY2MvZm9ydHJhbi90cmFu cy1leHByLmNjCkBAIC0xMTIzNiwxMCArMTEyMzYsMTAgQEAgYWxsb2Nfc2NhbGFyX2FsbG9j YXRhYmxlX2Zvcl9hc3NpZ25tZW50IChzdG10YmxvY2tfdCAqYmxvY2ssCiAKICAgaWYgKGV4 cHIxLT50cy50eXBlID09IEJUX0NIQVJBQ1RFUiAmJiBleHByMS0+dHMuZGVmZXJyZWQpCiAg ICAgewotICAgICAgLyogVXNlIHRoZSByaHMgc3RyaW5nIGxlbmd0aCBhbmQgdGhlIGxocyBl bGVtZW50IHNpemUuICAqLworICAgICAgLyogVXNlIHRoZSByaHMgc3RyaW5nIGxlbmd0aCBh bmQgdGhlIGxocyBlbGVtZW50IHNpemUuIE5vdGUgdGhhdCAnc2l6ZScgaXMKKwkgdXNlZCBi ZWxvdyBmb3IgdGhlIHN0cmluZy1sZW5ndGggY29tcGFyaXNvbiwgb25seS4gICovCiAgICAg ICBzaXplID0gc3RyaW5nX2xlbmd0aDsKLSAgICAgIHRtcCA9IFRSRUVfVFlQRSAoZ2ZjX3R5 cGVub2RlX2Zvcl9zcGVjICgmZXhwcjEtPnRzKSk7Ci0gICAgICB0bXAgPSBUWVBFX1NJWkVf VU5JVCAodG1wKTsKKyAgICAgIHRtcCA9IFRZUEVfU0laRV9VTklUIChnZmNfZ2V0X2NoYXJf dHlwZSAoZXhwcjEtPnRzLmtpbmQpKTsKICAgICAgIHNpemVfaW5fYnl0ZXMgPSBmb2xkX2J1 aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBNVUxUX0VYUFIsCiAJCQkJICAgICAgIFRSRUVf VFlQRSAodG1wKSwgdG1wLAogCQkJCSAgICAgICBmb2xkX2NvbnZlcnQgKFRSRUVfVFlQRSAo dG1wKSwgc2l6ZSkpOwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy93 aWRlY2hhcl8xMS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dpZGVjaGFyXzEx LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDI1MzBmYjE3 MzAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3dpZGVj aGFyXzExLmY5MApAQCAtMCwwICsxLDUxIEBACishIHsgZGctZG8gcnVuIH0KKyEgeyBkZy1h ZGRpdGlvbmFsLW9wdGlvbnMgIi1mZHVtcC10cmVlLW9yaWdpbmFsIiB9CishCishIFBSIGZv cnRyYW4vMTA3NTA4CishCit1c2UgaXNvX2NfYmluZGluZworaW1wbGljaXQgbm9uZQorY2hh cmFjdGVyKGxlbj06LGtpbmQ9NCksIGFsbG9jYXRhYmxlLCB0YXJnZXQgOjogYTRzdHIoOiks IGE0c3RyMgordHlwZShjX3B0cikgOjogY3B0ciwgY3B0cjIKKworYWxsb2NhdGUoY2hhcmFj dGVyKGxlbj03LGtpbmQ9NCkgOjogYTRzdHIoLTI6MykpCithbGxvY2F0ZShjaGFyYWN0ZXIo bGVuPTksa2luZD00KSA6OiBhNHN0cjIpCisKK2NwdHIgPSBjX2xvYyhhNHN0cikKK2NwdHIy ID0gY19sb2MoYTRzdHIyKQorCitpZiAobGVuKGE0c3RyKSAvPSA3KSBlcnJvciBzdG9wCitp ZiAobGJvdW5kKGE0c3RyLDEpIC89IC0yKSBlcnJvciBzdG9wCitpZiAodWJvdW5kKGE0c3Ry LDEpIC89IDMpIGVycm9yIHN0b3AKK2lmIChsZW4oYTRzdHIyKSAvPSA5KSBlcnJvciBzdG9w CisKK2E0c3RyID0gWzRfInNmNDU2YXEiLCA0XyIzZHR6dTI0IiwgNF8iXzRmaDdzbSIsIDRf Ij1mZjg1czciLCA0XyJqPThhZjRkIiwgNF8iLixBJUZzeiJdCithNHN0cjIgPSA0XyI0ZjVn NWY4YTkiCisKKyFwcmludCAqLCBsYm91bmQoYTRzdHIpLCB1Ym91bmQoYTRzdHIpICAhIGV4 cGVjdGVkICgtMjozKSAtIGFjdHVhbGx5OiAoMTo2KQorCitpZiAobGVuKGE0c3RyKSAvPSA3 KSBlcnJvciBzdG9wCitpZiAobGJvdW5kKGE0c3RyLDEpIC89IC0yKSBlcnJvciBzdG9wCitp ZiAodWJvdW5kKGE0c3RyLDEpIC89IDMpIGVycm9yIHN0b3AKK2lmIChsZW4oYTRzdHIyKSAv PSA5KSBlcnJvciBzdG9wCitpZiAoLm5vdC4gY19hc3NvY2lhdGVkIChjcHRyLCBjX2xvYyhh NHN0cikpKSBlcnJvciBzdG9wCitpZiAoLm5vdC4gY19hc3NvY2lhdGVkIChjcHRyMiwgY19s b2MoYTRzdHIyKSkpIGVycm9yIHN0b3AKK2VuZAorCishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiX19idWlsdGluX21hbGxvYyIgNCAib3JpZ2luYWwiIH0gfQorISB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9yZWFsbG9jIiAy ICJvcmlnaW5hbCIgfSB9CisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICJhNHN0ci5kYXRhID0gX19idWlsdGluX21hbGxvYyBcXCgxNjhcXCk7IiAyICJvcmlnaW5h bCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiYTRzdHIuZGF0 YSA9IF9fYnVpbHRpbl9yZWFsbG9jIFxcKGE0c3RyLmRhdGEsIDE2OFxcKTsiIDEgIm9yaWdp bmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJhNHN0cjIg PSBcXChjaGFyYWN0ZXJcXChraW5kPTRcXClcXFxbMTouYTRzdHIyXFxcXSBcXCpcXCkgX19i dWlsdGluX21hbGxvYyBcXCgzNlxcKTsiIDIgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJhNHN0cjIgPSBcXChjaGFyYWN0ZXJcXChraW5k PTRcXClcXFxbMTouYTRzdHIyXFxcXSBcXCpcXCkgX19idWlsdGluX3JlYWxsb2MgXFwoXFwo dm9pZCBcXCpcXCkgYTRzdHIyLCAzNlxcKTsiIDEgIm9yaWdpbmFsIiB9IH0KKworISBBcnJh eTogQXNzZXJ0LCByZWFsbG9jLWNoZWNrIGFzc2lnbiBzdHJpbmcgbGVuZ3RoIChhbGxvYyAr IChyZWFsbG9jJ2VkKSBhc3NpZ25tZW50KToKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLXRpbWVzICJpZiBcXChcW15cXG5cXHJcXSpcXC5hNHN0ciAhPSA3XFwpIiAyICJvcmln aW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiaWYgXFwo RFxcLlxbMC05XF0rICE9IDI4XFwpIGdvdG8gTFxcLiIgMSAib3JpZ2luYWwiIH0gfQorISB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxcLmE0c3RyID0gNzsiIDIgIm9y aWdpbmFsIiB9IH0KKworISBTY2FsYXI6IEFzc2VydCwgcmVhbGxvYy1jaGVjayBhc3NpZ24g c3RyaW5nIGxlbmd0aCAoYWxsb2MgKyAocmVhbGxvYydlZCkgYXNzaWdubWVudCk6CishIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiaWYgXFwoXFteXFxuXFxyXF0qXFwu YTRzdHIyICE9IDlcXCkiIDIgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJpZiBcXChcXC5hNHN0cjIgPT0gOVxcKSBnb3RvIExcXC4iIDEg Im9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJc XC5hNHN0cjIgPSA5OyIgMiAib3JpZ2luYWwiIH0gfQo= --------------fHWHzUAbaRtbQMQGo6fom9rB--