From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by sourceware.org (Postfix) with ESMTPS id 875013861865 for ; Mon, 2 Aug 2021 22:53:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 875013861865 Received: by mail-ed1-x536.google.com with SMTP id p21so26608930edi.9 for ; Mon, 02 Aug 2021 15:53:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=92Tfmoyi0FPOaUF2px4mzeouuwNz+7E/BNcv/Ad0Tzw=; b=fWemJpSM7oql9ZB1c2sjHApmrJm4Xa/v7aJV1uXSagtKOLH1LDnsQzomfqbszi6k4W FauAcNdkf1ZKEDVPeo6xKqDolOhL37KzV17tExWl8fgx+mA8I4WO6seepQtVxMEFSdhF b235ARPqGobW7kE+axQRQwM17xJ5+eeWWvfMVJcPBl1Ma3ucwUOoKbucB9Ys1skom7yL 8buQTKBQHQRndj/EYcsai9PxYyhmwfdQQNBIWvYzoMlJNNQl9vE2Hj4YDNxfzDcyP+tn twm0xk+0Vk/2NDjMZ9NoXZ6KVKbv8hazJ/XTv+/PeCSV1KHVNkBV+evsUwGwBVDAkza7 i8lQ== X-Gm-Message-State: AOAM531wyTe8Gdt6rVxAGwwxuSDjF4tWOMx/e3k2kEUybGhUSVns9xp0 aRycCQbc2kfE02WhuSUAqboZ/6LbTWHqiYRVd0RLyOkmJLiAxQ== X-Google-Smtp-Source: ABdhPJz2qRUATGzHgNr26C72jGd9erUU6RojQTmPqT0GHqtPmg1FmZzffrsNjN7m1qi/0vCW7EwMa5B2kjdIU65GrRw= X-Received: by 2002:aa7:d511:: with SMTP id y17mr21922496edq.341.1627944837405; Mon, 02 Aug 2021 15:53:57 -0700 (PDT) MIME-Version: 1.0 From: Ian Lance Taylor Date: Mon, 2 Aug 2021 15:53:46 -0700 Message-ID: Subject: Go patch committed: Allow converting from slice to pointer-to-array To: gcc-patches , gofrontend-dev Content-Type: multipart/mixed; boundary="000000000000bf936c05c89b715e" X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Aug 2021 22:54:00 -0000 --000000000000bf936c05c89b715e Content-Type: text/plain; charset="UTF-8" The upcoming Go 1.17 release has a new language feature: it permits conversions from slice types to pointer-to-array types. If the slice is too short, the conversion panics. This patch implements this new feature in gccgo. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian --000000000000bf936c05c89b715e Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_krv7f7ju0 NzQ1OWJmYThhMzdhNGZiZDZlZDUxNTNiZmY3NmY0OWQzNzJiNGFjZQpkaWZmIC0tZ2l0IGEvZ2Nj L2dvL2dvZnJvbnRlbmQvTUVSR0UgYi9nY2MvZ28vZ29mcm9udGVuZC9NRVJHRQppbmRleCAxOWZi ZDY0Nzg0MC4uOTViOTM0MGI0MmQgMTAwNjQ0Ci0tLSBhL2djYy9nby9nb2Zyb250ZW5kL01FUkdF CisrKyBiL2djYy9nby9nb2Zyb250ZW5kL01FUkdFCkBAIC0xLDQgKzEsNCBAQAotYWQ2NjdlN2M3 MGNlYTlmYTU3MzA2NjBkNzJhZDg5MWI1NzUzZWI2MgorMGE0ZDYxMmU2YjIxMTc4MGIyOTQ3MTc1 MDNmYzczOWJiZDFmNTA5YwogCiBUaGUgZmlyc3QgbGluZSBvZiB0aGlzIGZpbGUgaG9sZHMgdGhl IGdpdCByZXZpc2lvbiBudW1iZXIgb2YgdGhlIGxhc3QKIG1lcmdlIGRvbmUgZnJvbSB0aGUgZ29m cm9udGVuZCByZXBvc2l0b3J5LgpkaWZmIC0tZ2l0IGEvZ2NjL2dvL2dvZnJvbnRlbmQvZXhwcmVz c2lvbnMuY2MgYi9nY2MvZ28vZ29mcm9udGVuZC9leHByZXNzaW9ucy5jYwppbmRleCA0NmU3MWU1 YTEzYi4uMTVjOWVhYmM2YmYgMTAwNjQ0Ci0tLSBhL2djYy9nby9nb2Zyb250ZW5kL2V4cHJlc3Np b25zLmNjCisrKyBiL2djYy9nby9nb2Zyb250ZW5kL2V4cHJlc3Npb25zLmNjCkBAIC0zODY2LDEx ICszODY2LDEyIEBAIFR5cGVfY29udmVyc2lvbl9leHByZXNzaW9uOjpkb190cmF2ZXJzZShUcmF2 ZXJzZSogdHJhdmVyc2UpCiAgIHJldHVybiBUUkFWRVJTRV9DT05USU5VRTsKIH0KIAotLy8gQ29u dmVydCB0byBhIGNvbnN0YW50IGF0IGxvd2VyaW5nIHRpbWUuCisvLyBDb252ZXJ0IHRvIGEgY29u c3RhbnQgYXQgbG93ZXJpbmcgdGltZS4gIEFsc28gbG93ZXIgY29udmVyc2lvbnMKKy8vIGZyb20g c2xpY2UgdG8gcG9pbnRlci10by1hcnJheSwgYXMgdGhleSBjYW4gcGFuaWMuCiAKIEV4cHJlc3Np b24qCiBUeXBlX2NvbnZlcnNpb25fZXhwcmVzc2lvbjo6ZG9fbG93ZXIoR29nbyosIE5hbWVkX29i amVjdCosCi0JCQkJICAgICBTdGF0ZW1lbnRfaW5zZXJ0ZXIqLCBpbnQpCisJCQkJICAgICBTdGF0 ZW1lbnRfaW5zZXJ0ZXIqIGluc2VydGVyLCBpbnQpCiB7CiAgIFR5cGUqIHR5cGUgPSB0aGlzLT50 eXBlXzsKICAgRXhwcmVzc2lvbiogdmFsID0gdGhpcy0+ZXhwcl87CkBAIC0zOTU4LDYgKzM5NTks NTQgQEAgVHlwZV9jb252ZXJzaW9uX2V4cHJlc3Npb246OmRvX2xvd2VyKEdvZ28qLCBOYW1lZF9v YmplY3QqLAogCX0KICAgICB9CiAKKyAgaWYgKHR5cGUtPnBvaW50c190bygpICE9IE5VTEwKKyAg ICAgICYmIHR5cGUtPnBvaW50c190bygpLT5hcnJheV90eXBlKCkgIT0gTlVMTAorICAgICAgJiYg IXR5cGUtPnBvaW50c190bygpLT5pc19zbGljZV90eXBlKCkKKyAgICAgICYmIHZhbC0+dHlwZSgp LT5pc19zbGljZV90eXBlKCkpCisgICAgeworICAgICAgVGVtcG9yYXJ5X3N0YXRlbWVudCogdmFs X3RlbXAgPSBOVUxMOworICAgICAgaWYgKCF2YWwtPmlzX211bHRpX2V2YWxfc2FmZSgpKQorCXsK KwkgIHZhbF90ZW1wID0gU3RhdGVtZW50OjptYWtlX3RlbXBvcmFyeSh2YWwtPnR5cGUoKSwgTlVM TCwgbG9jYXRpb24pOworCSAgaW5zZXJ0ZXItPmluc2VydCh2YWxfdGVtcCk7CisJICB2YWwgPSBF eHByZXNzaW9uOjptYWtlX3NldF9hbmRfdXNlX3RlbXBvcmFyeSh2YWxfdGVtcCwgdmFsLAorCQkJ CQkJICAgICAgIGxvY2F0aW9uKTsKKwl9CisKKyAgICAgIFR5cGUqIGludF90eXBlID0gVHlwZTo6 bG9va3VwX2ludGVnZXJfdHlwZSgiaW50Iik7CisgICAgICBUZW1wb3Jhcnlfc3RhdGVtZW50KiB2 YWxsZW5fdGVtcCA9CisJU3RhdGVtZW50OjptYWtlX3RlbXBvcmFyeShpbnRfdHlwZSwgTlVMTCwg bG9jYXRpb24pOworICAgICAgaW5zZXJ0ZXItPmluc2VydCh2YWxsZW5fdGVtcCk7CisKKyAgICAg IEV4cHJlc3Npb24qIGFycmxlbiA9IHR5cGUtPnBvaW50c190bygpLT5hcnJheV90eXBlKCktPmxl bmd0aCgpOworICAgICAgRXhwcmVzc2lvbiogdmFsbGVuID0KKwlFeHByZXNzaW9uOjptYWtlX3Ns aWNlX2luZm8odmFsLCBFeHByZXNzaW9uOjpTTElDRV9JTkZPX0xFTkdUSCwKKwkJCQkgICAgbG9j YXRpb24pOworICAgICAgdmFsbGVuID0gRXhwcmVzc2lvbjo6bWFrZV9zZXRfYW5kX3VzZV90ZW1w b3JhcnkodmFsbGVuX3RlbXAsIHZhbGxlbiwKKwkJCQkJCSAgICAgIGxvY2F0aW9uKTsKKyAgICAg IEV4cHJlc3Npb24qIGNvbmQgPSBFeHByZXNzaW9uOjptYWtlX2JpbmFyeShPUEVSQVRPUl9HVCwg YXJybGVuLCB2YWxsZW4sCisJCQkJCQkgbG9jYXRpb24pOworCisgICAgICB2YWxsZW4gPSBFeHBy ZXNzaW9uOjptYWtlX3RlbXBvcmFyeV9yZWZlcmVuY2UodmFsbGVuX3RlbXAsIGxvY2F0aW9uKTsK KyAgICAgIEV4cHJlc3Npb24qIHBhbmljID0gUnVudGltZTo6bWFrZV9jYWxsKFJ1bnRpbWU6OlBB TklDX1NMSUNFX0NPTlZFUlQsCisJCQkJCSAgICAgbG9jYXRpb24sIDIsIGFycmxlbiwgdmFsbGVu KTsKKworICAgICAgRXhwcmVzc2lvbiogbmlsID0gRXhwcmVzc2lvbjo6bWFrZV9uaWwobG9jYXRp b24pOworICAgICAgRXhwcmVzc2lvbiogY2hlY2sgPSBFeHByZXNzaW9uOjptYWtlX2NvbmRpdGlv bmFsKGNvbmQsIHBhbmljLCBuaWwsCisJCQkJCQkgICAgICAgbG9jYXRpb24pOworCisgICAgICBp ZiAodmFsX3RlbXAgPT0gTlVMTCkKKwl2YWwgPSB2YWwtPmNvcHkoKTsKKyAgICAgIGVsc2UKKwl2 YWwgPSBFeHByZXNzaW9uOjptYWtlX3RlbXBvcmFyeV9yZWZlcmVuY2UodmFsX3RlbXAsIGxvY2F0 aW9uKTsKKyAgICAgIEV4cHJlc3Npb24qIHB0ciA9CisJRXhwcmVzc2lvbjo6bWFrZV9zbGljZV9p bmZvKHZhbCwgRXhwcmVzc2lvbjo6U0xJQ0VfSU5GT19WQUxVRV9QT0lOVEVSLAorCQkJCSAgICBs b2NhdGlvbik7CisgICAgICBwdHIgPSBFeHByZXNzaW9uOjptYWtlX3Vuc2FmZV9jYXN0KHR5cGUs IHB0ciwgbG9jYXRpb24pOworCisgICAgICByZXR1cm4gRXhwcmVzc2lvbjo6bWFrZV9jb21wb3Vu ZChjaGVjaywgcHRyLCBsb2NhdGlvbik7CisgICAgfQorCiAgIHJldHVybiB0aGlzOwogfQogCmRp ZmYgLS1naXQgYS9nY2MvZ28vZ29mcm9udGVuZC9ydW50aW1lLmRlZiBiL2djYy9nby9nb2Zyb250 ZW5kL3J1bnRpbWUuZGVmCmluZGV4IDIzMWQ5MmQyNjYxLi5mYWQ4Y2ViYzAxMiAxMDA2NDQKLS0t IGEvZ2NjL2dvL2dvZnJvbnRlbmQvcnVudGltZS5kZWYKKysrIGIvZ2NjL2dvL2dvZnJvbnRlbmQv cnVudGltZS5kZWYKQEAgLTU4Miw2ICs1ODIsMTEgQEAgREVGX0dPX1JVTlRJTUUoUEFOSUNfRVhU RU5EX1NMSUNFM19DLCAicnVudGltZS5nb1BhbmljRXh0ZW5kU2xpY2UzQyIsCiBERUZfR09fUlVO VElNRShQQU5JQ19FWFRFTkRfU0xJQ0UzX0NfVSwgInJ1bnRpbWUuZ29QYW5pY0V4dGVuZFNsaWNl M0NVIiwKIAkgICAgICAgUDIoVUlOVDY0LCBJTlQpLCBSMCgpKQogCisvLyBQYW5pYyBmb3IgY29u dmVyc2lvbiBvZiBzbGljZSB0byBwb2ludGVyLXRvLWFycmF5IGlmIHRoZSBzbGljZSBpcworLy8g dG9vIHNob3J0LgorREVGX0dPX1JVTlRJTUUoUEFOSUNfU0xJQ0VfQ09OVkVSVCwgInJ1bnRpbWUu Z29QYW5pY1NsaWNlQ29udmVydCIsCisJICAgICAgIFAyKElOVCwgSU5UKSwgUjAoKSkKKwogLy8g UmVtb3ZlIGhlbHBlciBtYWNyb3MuCiAjdW5kZWYgQUJGVDYKICN1bmRlZiBBQkZUMgpkaWZmIC0t Z2l0IGEvZ2NjL2dvL2dvZnJvbnRlbmQvdHlwZXMuY2MgYi9nY2MvZ28vZ29mcm9udGVuZC90eXBl cy5jYwppbmRleCBhYjcxNjZiOGIxYi4uN2M3YjJlYjgyNzEgMTAwNjQ0Ci0tLSBhL2djYy9nby9n b2Zyb250ZW5kL3R5cGVzLmNjCisrKyBiL2djYy9nby9nb2Zyb250ZW5kL3R5cGVzLmNjCkBAIC04 NDIsNiArODQyLDEzIEBAIFR5cGU6OmFyZV9jb252ZXJ0aWJsZShjb25zdCBUeXBlKiBsaHMsIGNv bnN0IFR5cGUqIHJocywgc3RkOjpzdHJpbmcqIHJlYXNvbikKIAlyZXR1cm4gdHJ1ZTsKICAgICB9 CiAKKyAgLy8gQSBzbGljZSBtYXkgYmUgY29udmVydGVkIHRvIGEgcG9pbnRlci10by1hcnJheS4K KyAgaWYgKHJocy0+aXNfc2xpY2VfdHlwZSgpCisgICAgICAmJiBsaHMtPnBvaW50c190bygpICE9 IE5VTEwKKyAgICAgICYmIGxocy0+cG9pbnRzX3RvKCktPmFycmF5X3R5cGUoKSAhPSBOVUxMCisg ICAgICAmJiAhbGhzLT5wb2ludHNfdG8oKS0+aXNfc2xpY2VfdHlwZSgpKQorICAgIHJldHVybiB0 cnVlOworCiAgIC8vIEFuIHVuc2FmZS5Qb2ludGVyIHR5cGUgbWF5IGJlIGNvbnZlcnRlZCB0byBh bnkgcG9pbnRlciB0eXBlIG9yIHRvCiAgIC8vIGEgdHlwZSB3aG9zZSB1bmRlcmx5aW5nIHR5cGUg aXMgdWludHB0ciwgYW5kIHZpY2UtdmVyc2EuCiAgIGlmIChsaHMtPmlzX3Vuc2FmZV9wb2ludGVy X3R5cGUoKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nby50ZXN0L3Rlc3QvY29udmVydDQu Z28gYi9nY2MvdGVzdHN1aXRlL2dvLnRlc3QvdGVzdC9jb252ZXJ0NC5nbwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmJjOWM5NmE1MjcKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2MvdGVzdHN1aXRlL2dvLnRlc3QvdGVzdC9jb252ZXJ0NC5nbwpAQCAtMCwwICsxLDg2IEBA CisvLyBydW4KKworLy8gQ29weXJpZ2h0IDIwMjAgVGhlIEdvIEF1dGhvcnMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT RC1zdHlsZQorLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl LgorCisvLyBUZXN0IGNvbnZlcnNpb24gZnJvbSBzbGljZSB0byBhcnJheSBwb2ludGVyLgorCitw YWNrYWdlIG1haW4KKworZnVuYyB3YW50UGFuaWMoZm4gZnVuYygpLCBzIHN0cmluZykgeworCWRl ZmVyIGZ1bmMoKSB7CisJCWVyciA6PSByZWNvdmVyKCkKKwkJaWYgZXJyID09IG5pbCB7CisJCQlw YW5pYygiZXhwZWN0ZWQgcGFuaWMiKQorCQl9CisJCWlmIGdvdCA6PSBlcnIuKGVycm9yKS5FcnJv cigpOyBnb3QgIT0gcyB7CisJCQlwYW5pYygiZXhwZWN0ZWQgcGFuaWMgIiArIHMgKyAiIGdvdCAi ICsgZ290KQorCQl9CisJfSgpCisJZm4oKQorfQorCitmdW5jIG1haW4oKSB7CisJcyA6PSBtYWtl KFtdYnl0ZSwgOCwgMTApCisJaWYgcCA6PSAoKls4XWJ5dGUpKHMpOyAmcFswXSAhPSAmc1swXSB7 CisJCXBhbmljKCIqWzhdYnl0ZSBjb252ZXJzaW9uIGZhaWxlZCIpCisJfQorCXdhbnRQYW5pYygK KwkJZnVuYygpIHsKKwkJCV8gPSAoKls5XWJ5dGUpKHMpCisJCX0sCisJCSJydW50aW1lIGVycm9y OiBjYW5ub3QgY29udmVydCBzbGljZSB3aXRoIGxlbmd0aCA4IHRvIHBvaW50ZXIgdG8gYXJyYXkg d2l0aCBsZW5ndGggOSIsCisJKQorCisJdmFyIG4gW11ieXRlCisJaWYgcCA6PSAoKlswXWJ5dGUp KG4pOyBwICE9IG5pbCB7CisJCXBhbmljKCJuaWwgc2xpY2UgY29udmVydGVkIHRvICpbMF1ieXRl IHNob3VsZCBiZSBuaWwiKQorCX0KKworCXogOj0gbWFrZShbXWJ5dGUsIDApCisJaWYgcCA6PSAo KlswXWJ5dGUpKHopOyBwID09IG5pbCB7CisJCXBhbmljKCJlbXB0eSBzbGljZSBjb252ZXJ0ZWQg dG8gKlswXWJ5dGUgc2hvdWxkIGJlIG5vbi1uaWwiKQorCX0KKworCS8vIFRlc3Qgd2l0aCBuYW1l ZCB0eXBlcworCXR5cGUgU2xpY2UgW11pbnQKKwl0eXBlIEludDQgWzRdaW50CisJdHlwZSBQSW50 NCAqWzRdaW50CisJaWkgOj0gbWFrZShTbGljZSwgNCkKKwlpZiBwIDo9ICgqSW50NCkoaWkpOyAm cFswXSAhPSAmaWlbMF0geworCQlwYW5pYygiKkludDQgY29udmVyc2lvbiBmYWlsZWQiKQorCX0K KwlpZiBwIDo9IFBJbnQ0KGlpKTsgJnBbMF0gIT0gJmlpWzBdIHsKKwkJcGFuaWMoIlBJbnQ0IGNv bnZlcnNpb24gZmFpbGVkIikKKwl9Cit9CisKKy8vIHRlc3Qgc3RhdGljIHZhcmlhYmxlIGNvbnZl cnNpb24KKwordmFyICgKKwlzcyAgPSBtYWtlKFtdc3RyaW5nLCAxMCkKKwlzNSAgPSAoKls1XXN0 cmluZykoc3MpCisJczEwID0gKCpbMTBdc3RyaW5nKShzcykKKworCW5zICBbXXN0cmluZworCW5z MCA9ICgqWzBdc3RyaW5nKShucykKKworCXpzICA9IG1ha2UoW11zdHJpbmcsIDApCisJenMwID0g KCpbMF1zdHJpbmcpKHpzKQorKQorCitmdW5jIGluaXQoKSB7CisJaWYgJnNzWzBdICE9ICZzNVsw XSB7CisJCXBhbmljKCJzNSBjb252ZXJzaW9uIGZhaWxlZCIpCisJfQorCWlmICZzc1swXSAhPSAm czEwWzBdIHsKKwkJcGFuaWMoInM1IGNvbnZlcnNpb24gZmFpbGVkIikKKwl9CisJaWYgbnMwICE9 IG5pbCB7CisJCXBhbmljKCJuczAgc2hvdWxkIGJlIG5pbCIpCisJfQorCWlmIHpzMCA9PSBuaWwg eworCQlwYW5pYygienMwIHNob3VsZCBub3QgYmUgbmlsIikKKwl9Cit9CmRpZmYgLS1naXQgYS9s aWJnby9nby9ydW50aW1lL2Vycm9yLmdvIGIvbGliZ28vZ28vcnVudGltZS9lcnJvci5nbwppbmRl eCA4MDY1NTM0MmYxMy4uYThjODJiYmY4ZTggMTAwNjQ0Ci0tLSBhL2xpYmdvL2dvL3J1bnRpbWUv ZXJyb3IuZ28KKysrIGIvbGliZ28vZ28vcnVudGltZS9lcnJvci5nbwpAQCAtMTc1LDYgKzE3NSw3 IEBAIGNvbnN0ICgKIAlib3VuZHNTbGljZTNCICAgIC8vIHNbPzp4OnldLCAwIDw9IHggPD0geSBm YWlsZWQgKGJ1dCBib3VuZHNTbGljZTNBIGRpZG4ndCBoYXBwZW4pCiAJYm91bmRzU2xpY2UzQyAg ICAvLyBzW3g6eTo/XSwgMCA8PSB4IDw9IHkgZmFpbGVkIChidXQgYm91bmRzU2xpY2UzQS9CIGRp ZG4ndCBoYXBwZW4pCiAKKwlib3VuZHNDb252ZXJ0IC8vICgqW3hdVCkocyksIDAgPD0geCA8PSBs ZW4ocykgZmFpbGVkCiAJLy8gTm90ZTogaW4gdGhlIGFib3ZlLCBsZW4ocykgYW5kIGNhcChzKSBh cmUgc3RvcmVkIGluIHkKICkKIApAQCAtMTkwLDYgKzE5MSw3IEBAIHZhciBib3VuZHNFcnJvckZt dHMgPSBbLi4uXXN0cmluZ3sKIAlib3VuZHNTbGljZTNBY2FwOiAic2xpY2UgYm91bmRzIG91dCBv ZiByYW5nZSBbOjoleF0gd2l0aCBjYXBhY2l0eSAleSIsCiAJYm91bmRzU2xpY2UzQjogICAgInNs aWNlIGJvdW5kcyBvdXQgb2YgcmFuZ2UgWzoleDoleV0iLAogCWJvdW5kc1NsaWNlM0M6ICAgICJz bGljZSBib3VuZHMgb3V0IG9mIHJhbmdlIFsleDoleTpdIiwKKwlib3VuZHNDb252ZXJ0OiAgICAi Y2Fubm90IGNvbnZlcnQgc2xpY2Ugd2l0aCBsZW5ndGggJXkgdG8gcG9pbnRlciB0byBhcnJheSB3 aXRoIGxlbmd0aCAleCIsCiB9CiAKIC8vIGJvdW5kc05lZ0Vycm9yRm10cyBhcmUgb3ZlcnJpZGlu ZyBmb3JtYXRzIGlmIHggaXMgbmVnYXRpdmUuIEluIHRoaXMgY2FzZSB0aGVyZSdzIG5vIG5lZWQg dG8gcmVwb3J0IHkuCmRpZmYgLS1naXQgYS9saWJnby9nby9ydW50aW1lL3BhbmljLmdvIGIvbGli Z28vZ28vcnVudGltZS9wYW5pYy5nbwppbmRleCAxMTM5NmI0MTIzYS4uYTRiOWE4M2Q3NzYgMTAw NjQ0Ci0tLSBhL2xpYmdvL2dvL3J1bnRpbWUvcGFuaWMuZ28KKysrIGIvbGliZ28vZ28vcnVudGlt ZS9wYW5pYy5nbwpAQCAtMzgsNiArMzgsNyBAQCBpbXBvcnQgKAogLy9nbzpsaW5rbmFtZSBnb1Bh bmljU2xpY2UzQlUKIC8vZ286bGlua25hbWUgZ29QYW5pY1NsaWNlM0MKIC8vZ286bGlua25hbWUg Z29QYW5pY1NsaWNlM0NVCisvL2dvOmxpbmtuYW1lIGdvUGFuaWNTbGljZUNvbnZlcnQKIC8vZ286 bGlua25hbWUgcGFuaWNzaGlmdAogLy9nbzpsaW5rbmFtZSBwYW5pY2RpdmlkZQogLy9nbzpsaW5r bmFtZSBwYW5pY21lbQpAQCAtMTc1LDYgKzE3NiwxMiBAQCBmdW5jIGdvUGFuaWNTbGljZTNDVSh4 IHVpbnQsIHkgaW50KSB7CiAJcGFuaWMoYm91bmRzRXJyb3J7eDogaW50NjQoeCksIHNpZ25lZDog ZmFsc2UsIHk6IHksIGNvZGU6IGJvdW5kc1NsaWNlM0N9KQogfQogCisvLyBmYWlsdXJlcyBpbiB0 aGUgY29udmVyc2lvbiAoKlt4XVQpcywgMCA8PSB4IDw9IHksIHggPT0gY2FwKHMpCitmdW5jIGdv UGFuaWNTbGljZUNvbnZlcnQoeCBpbnQsIHkgaW50KSB7CisJcGFuaWNDaGVjazEoZ2V0Y2FsbGVy cGMoKSwgInNsaWNlIGxlbmd0aCB0b28gc2hvcnQgdG8gY29udmVydCB0byBwb2ludGVyIHRvIGFy cmF5IikKKwlwYW5pYyhib3VuZHNFcnJvcnt4OiBpbnQ2NCh4KSwgc2lnbmVkOiB0cnVlLCB5OiB5 LCBjb2RlOiBib3VuZHNDb252ZXJ0fSkKK30KKwogdmFyIHNoaWZ0RXJyb3IgPSBlcnJvcihlcnJv clN0cmluZygibmVnYXRpdmUgc2hpZnQgYW1vdW50IikpCiAKIGZ1bmMgcGFuaWNzaGlmdCgpIHsK --000000000000bf936c05c89b715e--