From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by sourceware.org (Postfix) with ESMTPS id 2B2A33858C83 for ; Mon, 17 Oct 2022 23:55:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2B2A33858C83 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-x62e.google.com with SMTP id o21so9828245ple.5 for ; Mon, 17 Oct 2022 16:55:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=fHNLCTMCjE1n+zGsOcFYq8GngFsEMrJ+H+irZXoS83k=; b=p8m6ArrvPD+3blFb4t1KFSAp9lS3kZaF8kX+VRUaasXdYh+HVgYIadHw05wVpEvtYI L+sh0PkcPkdpPaKXA9tHrGXf3Ca2hdjL/rZiiZKon+ZVlXp9gGkLQs12lNsZx99cWxYu D8x2Dw/EcDMACT5fETBgAI26kS7afw1INO8H2gNwGOEtSF/J0mgY4jVJhJfoycyzeMJ4 Loi8/ZTIDVbP2bmTRYJSv6NNlDwIxC6YEnXUYoCgGgXzfQ6yBtGeAAf1UnJ+qXgI1G4G BW4uaPpuPfkaeKCVwsWdAu2HWrW0HVE2K7jBfPbuIheFhMv4ILU0uuODgfLg/Tx7a66i SlMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fHNLCTMCjE1n+zGsOcFYq8GngFsEMrJ+H+irZXoS83k=; b=awT09DU62jx4cRarACvoTbpVT3wyD6Rp1F+9bJnAW5sJkwNTf2EMajeQpJZH2Nfz2o XKvgaSdN7Z23aUysQ3X1Si15nOj5C/vmFmslCJpHm/0APMVbWhBEy5ITluIm3z76MN2A Oy/8j2gjlYAtAiIPRvyCacR1ZwtsNDtwBtrT0mbzROhvyZyLsjo1bjlf1y3oL/C+p8/a GdrJsEIv+wKnYSmWRYX1caxu5XhLfU72+fq0SxAKZ8ewyiNsfcOENQNBSVrJ9yKXs8Lm /TixCv7Qzvt1a3SujqiliZTj5bgec9Q6dYkQrrTosJQTkc4p0aVgo1MniOgwufz2c36l rahw== X-Gm-Message-State: ACrzQf1yriNat3iiKK7gfo8dfWbUfTmgYkZ2bsTNPL+me87dKbQmg04u +43wfHGsiHmQBZJttIvFxFOV+nBruN4= X-Google-Smtp-Source: AMsMyM6kif2mUyHMeynlTvu0UgODy4HxTP8qiNgMBoDZgx1hzzdRad3/o6NNrO6fV1x0uzfYer720w== X-Received: by 2002:a17:90b:4d0d:b0:20d:6fc0:51 with SMTP id mw13-20020a17090b4d0d00b0020d6fc00051mr29306922pjb.10.1666050906641; Mon, 17 Oct 2022 16:55:06 -0700 (PDT) Received: from ?IPV6:2601:681:8600:13d0::f0a? ([2601:681:8600:13d0::f0a]) by smtp.gmail.com with ESMTPSA id x6-20020a170902a38600b00179988ca61bsm7079308pla.161.2022.10.17.16.55.05 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 17 Oct 2022 16:55:06 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------XfAtz6W8NjJSElRPUXsbkSxw" Message-ID: <1f041491-d9d2-5fa2-c889-b29e91b69798@gmail.com> Date: Mon, 17 Oct 2022 17:55:05 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Content-Language: en-US To: "gcc-patches@gcc.gnu.org" From: Jeff Law Subject: [committed][PR target/101697] Fix bogus RTL on the H8 X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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: This is a multi-part message in MIME format. --------------XfAtz6W8NjJSElRPUXsbkSxw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit This patch actually fixes the bogus RTL seen in PR101697. Basically we continue to use the insn condition to catch most of the problem cases related to autoinc addressing modes.  This patch adds constraints which can guide reload (and hopefully LRA) away from doing blind replacements during register elimination that would ultimately result in bogus RTL.  The idea is from Paul K who has done something very similar on the pdp11.  I guess it shouldn't be a big surprise that the H8 and pdp11 need the same kind of handling given some of the similarities in their architectures. Anyway, this has been tested in my tester without regressions. In fact, it fixes several bugs where the testsuite was tripping over the same problem.  Given this issue is covered by the testsuite, I haven't added a new test. Pushed to the trunk. Jeff --------------XfAtz6W8NjJSElRPUXsbkSxw Content-Type: text/plain; charset=UTF-8; name="P" Content-Disposition: attachment; filename="P" Content-Transfer-Encoding: base64 Y29tbWl0IDQzNzRjNDI0YTYwNzc3YTc2NTgwNTBmMGFlYjFkY2M5YWY5MTU2NDcKQXV0aG9y OiBKZWZmIExhdyA8amVmZnJleWFsYXdAZ21haWwuY29tPgpEYXRlOiAgIE1vbiBPY3QgMTcg MTk6NTI6MTggMjAyMiAtMDQwMAoKICAgIEZpeCBib2d1cyBSVEwgb24gdGhlIEg4LgogICAg CiAgICBUaGlzIHBhdGNoIGFjdHVhbGx5IGZpeGVzIHRoZSBib2d1cyBSVEwgc2VlbiBpbiBQ UjEwMTY5Ny4KICAgIAogICAgQmFzaWNhbGx5IHdlIGNvbnRpbnVlIHRvIHVzZSB0aGUgaW5z biBjb25kaXRpb24gdG8gY2F0Y2ggbW9zdCBvZiB0aGUgcHJvYmxlbQogICAgY2FzZXMgcmVs YXRlZCB0byBhdXRvaW5jIGFkZHJlc3NpbmcgbW9kZXMuICBUaGlzIHBhdGNoIGFkZHMgY29u c3RyYWludHMgd2hpY2gKICAgIGNhbiBndWlkZSByZWxvYWQgKGFuZCBob3BlZnVsbHkgTFJB KSBhd2F5IGZyb20gZG9pbmcgYmxpbmQgcmVwbGFjZW1lbnRzIGR1cmluZwogICAgcmVnaXN0 ZXIgZWxpbWluYXRpb24gdGhhdCB3b3VsZCB1bHRpbWF0ZWx5IHJlc3VsdCBpbiBib2d1cyBS VEwuICBUaGUgaWRlYSBpcwogICAgZnJvbSBQYXVsIEsuIHdobyBoYXMgZG9uZSBzb21ldGhp bmcgdmVyeSBzaW1pbGFyIG9uIHRoZSBwZHAxMS4gIEkgZ3Vlc3MgaXQKICAgIHNob3VsZG4n dCBiZSBhIGJpZyBzdXJwcmlzZSB0aGF0IHRoZSBIOCBhbmQgcGRwMTEgbmVlZCB0aGUgc2Ft ZSBraW5kIG9mCiAgICBoYW5kbGluZyBnaXZlbiBzb21lIG9mIHRoZSBzaW1pbGFyaXRpZXMg aW4gdGhlaXIgYXJjaGl0ZWN0dXJlcy4KICAgIAogICAgZ2NjLwogICAgICAgICAgICBQUiB0 YXJnZXQvMTAxNjk3CiAgICAgICAgICAgICogY29uZmlnL2g4MzAwL2NvbWJpbmVyLm1kOiBS ZXBsYWNlICc8JyBwcmVpbmNtZW50IGNvbnN0cmFpbnQgd2l0aAogICAgICAgICAgICBaQS9a MS4uWkgvWjcgY29tYmluYXRpb25zLgogICAgICAgICAgICAqIGNvbmZpZy9oODMwMC9tb3Zl cHVzaC5tZDogU2ltaWxhcmx5CgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMwMC9jb21i aW5lci5tZCBiL2djYy9jb25maWcvaDgzMDAvY29tYmluZXIubWQKaW5kZXggMDY3ZjI2Njc4 YzEuLmZkNWNmMmY0YWY0IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2g4MzAwL2NvbWJpbmVy Lm1kCisrKyBiL2djYy9jb25maWcvaDgzMDAvY29tYmluZXIubWQKQEAgLTExNDIsOCArMTE0 Miw4IEBACiA7OyBTdG9yaW5nIGEgcGFydCBvZiBISW1vZGUgdG8gUUltb2RlLgogCiAoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdl bmVyYWxfb3BlcmFuZF9kc3QiICI9cm08IikKLQkoc3VicmVnOlFJIChsc2hpZnRydDpISSAo bWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cm0sWmEsWmIsWmMs WmQsWmUsWmYsWmcsWmgiKQorCShzdWJyZWc6UUkgKGxzaGlmdHJ0OkhJIChtYXRjaF9vcGVy YW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyLFowLFoxLFoyLFozLFo0LFo1LFo2LFo3 IikKIAkJCQkoY29uc3RfaW50IDgpKSAxKSldCiAgICIiCiAgICIjIgpAQCAtMTE1Myw4ICsx MTUzLDggQEAKIAkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQogCiAoZGVm aW5lX2luc24gIiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiZ2VuZXJhbF9vcGVy YW5kX2RzdCIgIj1ybTwiKQotCShzdWJyZWc6UUkgKGxzaGlmdHJ0OkhJIChtYXRjaF9vcGVy YW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6UUkgMCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1ybSxaYSxaYixaYyxaZCxaZSxaZixa aCxaZyIpCisJKHN1YnJlZzpRSSAobHNoaWZ0cnQ6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInIsWjAsWjEsWjIsWjMsWjQsWjUsWjYsWjciKQogCQkJCShj b25zdF9pbnQgOCkpIDEpKQogICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAgIiIK QEAgLTExNjQsOCArMTE2NCw4IEBACiA7OyBTdG9yaW5nIGEgcGFydCBvZiBTSW1vZGUgdG8g UUltb2RlLgogCiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIiCi0gIFsoc2V0IChtYXRjaF9v cGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cm08IikKLQkoc3VicmVnOlFJ IChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3Qi ICI9cm0sWmEsWmIsWmMsWmQsWmUsWmYsWmgsWmciKQorCShzdWJyZWc6UUkgKGxzaGlmdHJ0 OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyLFowLFoxLFoy LFozLFo0LFo1LFo2LFo3IikKIAkJCQkoY29uc3RfaW50IDgpKSAzKSldCiAgICIiCiAgICIj IgpAQCAtMTE3NSw4ICsxMTc1LDggQEAKIAkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JF RykpXSldKQogCiAoZGVmaW5lX2luc24gIiIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkg MCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1ybTwiKQotCShzdWJyZWc6UUkgKGxzaGlmdHJ0 OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1ybSxaYSxa YixaYyxaZCxaZSxaZixaaCxaZyIpCisJKHN1YnJlZzpRSSAobHNoaWZ0cnQ6U0kgKG1hdGNo X29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIsWjAsWjEsWjIsWjMsWjQsWjUs WjYsWjciKQogCQkJCShjb25zdF9pbnQgOCkpIDMpKQogICAgKGNsb2JiZXIgKHJlZzpDQyBD Q19SRUcpKV0KICAgIiIKQEAgLTExODQsMTAgKzExODQsMTAgQEAKICAgWyhzZXRfYXR0ciAi bGVuZ3RoIiAiOCIpXSkKIAogKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiIgotICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXJtPCIpCi0JKHN1 YnJlZzpRSSAobHNoaWZ0cnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgInIiKQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29wZXJh bmRfZHN0IiAiPXJtLFphLFpiLFpjLFpkLFplLFpmLFpoLFpnIikKKwkoc3VicmVnOlFJIChs c2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAicixa MCxaMSxaMixaMyxaNCxaNSxaNixaNyIpCiAJCQkJKGNvbnN0X2ludCAxNikpIDMpKQotICAg KGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6U0kgMiAiPSZyIikpXQorICAgKGNsb2JiZXIgKG1h dGNoX3NjcmF0Y2g6U0kgMiAiPSZyLCZyLCZyLCZyLCZyLCZyLCZyLCZyLCZyIikpXQogICAi IgogICAiIyIKICAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCkBAIC0xMTk3LDIwICsxMTk3LDIw IEBACiAJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKIAogKGRlZmluZV9p bnNuICIiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9k c3QiICI9cm08IikKLQkoc3VicmVnOlFJIChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJ IDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cm0sWmEsWmIsWmMsWmQsWmUsWmYsWmgsWmci KQorCShzdWJyZWc6UUkgKGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lz dGVyX29wZXJhbmQiICJyLFowLFoxLFoyLFozLFo0LFo1LFo2LFo3IikKIAkJCQkoY29uc3Rf aW50IDE2KSkgMykpCi0gICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpTSSAyICI9JnIiKSkK KyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDIgIj0mciwmciwmciwmciwmciwmciwm ciwmciwmciIpKQogICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAgIiIKICAgIm1v di53XFx0JWUxLCVmMlw7bW92LmJcXHQldzIsJVIwIgogICBbKHNldF9hdHRyICJsZW5ndGgi ICIxMCIpXSkKIAogKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiIgotICBbKHNldCAobWF0Y2hf b3BlcmFuZDpRSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXJtPCIpCi0JKHN1YnJlZzpR SSAobHNoaWZ0cnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIg InIiKQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0 IiAiPXJtLFphLFpiLFpjLFpkLFplLFpmLFpoLFpnIikKKwkoc3VicmVnOlFJIChsc2hpZnRy dDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAicixaMCxaMSxa MixaMyxaNCxaNSxaNixaNyIpCiAJCQkJKGNvbnN0X2ludCAyNCkpIDMpKQotICAgKGNsb2Ji ZXIgKG1hdGNoX3NjcmF0Y2g6U0kgMiAiPSZyIikpXQorICAgKGNsb2JiZXIgKG1hdGNoX3Nj cmF0Y2g6U0kgMiAiPSZyLCZyLCZyLCZyLCZyLCZyLCZyLCZyLCZyIikpXQogICAiIgogICAi IyIKICAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCkBAIC0xMjIwLDEwICsxMjIwLDEwIEBACiAJ ICAgICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKIAogKGRlZmluZV9pbnNuICIi Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9 cm08IikKLQkoc3VicmVnOlFJIChsc2hpZnRydDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdl bmVyYWxfb3BlcmFuZF9kc3QiICI9cm0sWmEsWmIsWmMsWmQsWmUsWmYsWmgsWmciKQorCShz dWJyZWc6UUkgKGxzaGlmdHJ0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICJyLFowLFoxLFoyLFozLFo0LFo1LFo2LFo3IikKIAkJCQkoY29uc3RfaW50IDI0 KSkgMykpCi0gICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpTSSAyICI9JnIiKSkKKyAgIChj bG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDIgIj0mciwmciwmciwmciwmciwmciwmciwmciwm ciIpKQogICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAgIiIKICAgIm1vdi53XFx0 JWUxLCVmMlw7bW92LmJcXHQleDIsJVIwIgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9oODMw MC9tb3ZlcHVzaC5tZCBiL2djYy9jb25maWcvaDgzMDAvbW92ZXB1c2gubWQKaW5kZXggZTg5 NWRlOGNlNTkuLmU1MzY2MDJhMDFkIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2g4MzAwL21v dmVwdXNoLm1kCisrKyBiL2djYy9jb25maWcvaDgzMDAvbW92ZXB1c2gubWQKQEAgLTUsOCAr NSw4IEBACiA7OyBtb3ZxaQogCiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbW92cWkiCi0g IFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cixy ICw8LHIscixtIikKLQkobWF0Y2hfb3BlcmFuZDpRSSAxICJnZW5lcmFsX29wZXJhbmRfc3Jj IiAiIEkscj4scixuLG0sciIpKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiZ2Vu ZXJhbF9vcGVyYW5kX2RzdCIgIj1yLHIgLFphLFpiLFpjLFpkLFplLFpmLFpnLFpoLHIscixt IikKKwkobWF0Y2hfb3BlcmFuZDpRSSAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiIEkscj4s WjAsWjEsWjIsWjMsWjQsWjUsWjYsWjcsbixtLHIiKSldCiAgICIhVEFSR0VUX0g4MzAwU1gg JiYgaDgzMDBfbW92ZV9vayAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSIKICAgIiMiCiAg ICImJiByZWxvYWRfY29tcGxldGVkIgpAQCAtMTQsMTQgKzE0LDIxIEBACiAJICAgICAgKGNs b2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0pXSkKIAogKGRlZmluZV9pbnNuICIqbW92cWk8Y2N6 bj4iCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3Qi ICI9cixyICw8LHIscixtIikKLQkobWF0Y2hfb3BlcmFuZDpRSSAxICJnZW5lcmFsX29wZXJh bmRfc3JjIiAiIEkscj4scixuLG0sciIpKQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAw ICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIsciAsWmEsWmIsWmMsWmQsWmUsWmYsWmcsWmgs cixyLG0iKQorCShtYXRjaF9vcGVyYW5kOlFJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICIg SSxyPixaMCxaMSxaMixaMyxaNCxaNSxaNixaNyxuLG0sciIpKQogICAgKGNsb2JiZXIgKHJl ZzpDQyBDQ19SRUcpKV0KICAgIiFUQVJHRVRfSDgzMDBTWCAmJiBoODMwMF9tb3ZlX29rIChv cGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pIgogICAiQAogICAgc3ViLmIJJVgwLCVYMAogICAg bW92LmIJJVIxLCVYMAogICAgbW92LmIJJVgxLCVSMAorICAgbW92LmIJJVgxLCVSMAorICAg bW92LmIJJVgxLCVSMAorICAgbW92LmIJJVgxLCVSMAorICAgbW92LmIJJVgxLCVSMAorICAg bW92LmIJJVgxLCVSMAorICAgbW92LmIJJVgxLCVSMAorICAgbW92LmIJJVgxLCVSMAogICAg bW92LmIJJVIxLCVYMAogICAgbW92LmIJJVIxLCVYMAogICAgbW92LmIJJVgxLCVSMCIKQEAg LTg4LDggKzk1LDggQEAKIDs7IG1vdmhpCiAKIChkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipt b3ZoaSIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAiZ2VuZXJhbF9vcGVyYW5kX2Rz dCIgIj1yLHIsPCxyLHIsbSIpCi0JKG1hdGNoX29wZXJhbmQ6SEkgMSAiZ2VuZXJhbF9vcGVy YW5kX3NyYyIgIkkscj4scixpLG0sciIpKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkg MCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1yLHIsWmEsWmIsWmMsWmQsWmUsWmYsWmcsWmgs cixyLG0iKQorCShtYXRjaF9vcGVyYW5kOkhJIDEgImdlbmVyYWxfb3BlcmFuZF9zcmMiICJJ LHI+LFowLFoxLFoyLFozLFo0LFo1LFo2LFo3LGksbSxyIikpXQogICAiIVRBUkdFVF9IODMw MFNYCiAgICAgJiYgaDgzMDBfbW92ZV9vayAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSIK ICAgIiMiCkBAIC05OCw4ICsxMDUsOCBAQAogCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgQ0Nf UkVHKSldKV0pCiAKIChkZWZpbmVfaW5zbiAiKm1vdmhpPGNjem4+IgotICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpISSAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIsciw8LHIscixtIikK LQkobWF0Y2hfb3BlcmFuZDpISSAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiSSxyPixyLGks bSxyIikpCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgImdlbmVyYWxfb3BlcmFuZF9k c3QiICI9cixyLFphLFpiLFpjLFpkLFplLFpmLFpnLFpoLHIscixtIikKKwkobWF0Y2hfb3Bl cmFuZDpISSAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiSSxyPixaMCxaMSxaMixaMyxaNCxa NSxaNixaNyxpLG0sciIpKQogICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAgIiFU QVJHRVRfSDgzMDBTWAogICAgICYmIGg4MzAwX21vdmVfb2sgKG9wZXJhbmRzWzBdLCBvcGVy YW5kc1sxXSkiCkBAIC0xMDksNiArMTE2LDEzIEBACiAgICBtb3YudwklVDEsJVQwCiAgICBt b3YudwklVDEsJVQwCiAgICBtb3YudwklVDEsJVQwCisgICBtb3YudwklVDEsJVQwCisgICBt b3YudwklVDEsJVQwCisgICBtb3YudwklVDEsJVQwCisgICBtb3YudwklVDEsJVQwCisgICBt b3YudwklVDEsJVQwCisgICBtb3YudwklVDEsJVQwCisgICBtb3YudwklVDEsJVQwCiAgICBt b3YudwklVDEsJVQwIgogICBbKHNldCAoYXR0ciAibGVuZ3RoIikgKHN5bWJvbF9yZWYgImNv bXB1dGVfbW92X2xlbmd0aCAob3BlcmFuZHMpIikpXSkKIApAQCAtMTU4LDggKzE3Miw4IEBA CiAKIDs7IG1vdnNpCiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbW92c2kiCi0gIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cixyLHIsPCxy LHIsbSwqYSwqYSxyIikKLQkobWF0Y2hfb3BlcmFuZDpTSSAxICJnZW5lcmFsX29wZXJhbmRf c3JjIiAiSSxyLGksciw+LG0scixJLHIsKmEiKSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNJIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cixyLHIsWmEsWmIsWmMsWmQsWmUsWmYs WmcsWmgscixyLG0sKmEsKmEsciIpCisJKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ2VuZXJhbF9v cGVyYW5kX3NyYyIgIkkscixpLFowLFoxLFoyLFozLFo0LFo1LFo2LFo3LD4sbSxyLEksciwq YSIpKV0KICAgIihUQVJHRVRfSDgzMDBTIHx8IFRBUkdFVF9IODMwMEgpICYmICFUQVJHRVRf SDgzMDBTWAogICAgICYmIGg4MzAwX21vdmVfb2sgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sx XSkiCiAgICIjIgpAQCAtMTY4LDggKzE4Miw4IEBACiAJICAgICAgKGNsb2JiZXIgKHJlZzpD QyBDQ19SRUcpKV0pXSkKIAogKGRlZmluZV9pbnNuICIqbW92c2lfY2xvYmJlcl9mbGFncyIK LSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1y LHIsciw8LHIscixtLCphLCphLCByIikKLQkobWF0Y2hfb3BlcmFuZDpTSSAxICJnZW5lcmFs X29wZXJhbmRfc3JjIiAiIEkscixpLHIsPixtLHIsIEksIHIsKmEiKSkKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMCAiZ2VuZXJhbF9vcGVyYW5kX2RzdCIgIj1yLHIscixaYSxaYixa YyxaZCxaZSxaZixaZyxaaCxyLHIsbSwqYSwqYSwgciIpCisJKG1hdGNoX29wZXJhbmQ6U0kg MSAiZ2VuZXJhbF9vcGVyYW5kX3NyYyIgIiBJLHIsaSxaMCxaMSxaMixaMyxaNCxaNSxaNixa Nyw+LG0sciwgSSwgciwqYSIpKQogICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAg IihUQVJHRVRfSDgzMDBTIHx8IFRBUkdFVF9IODMwMEgpICYmICFUQVJHRVRfSDgzMDBTWAog ICAgICYmIGg4MzAwX21vdmVfb2sgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCkBAIC0x NzgsMTEgKzE5MiwxMSBAQAogICAgIHsKICAgICBjYXNlIDA6CiAgICAgICByZXR1cm4gInN1 Yi5sCSVTMCwlUzAiOwotICAgIGNhc2UgNzoKKyAgICBjYXNlIDE0OgogICAgICAgcmV0dXJu ICJjbHJtYWMiOwotICAgIGNhc2UgODoKKyAgICBjYXNlIDE1OgogICAgICAgcmV0dXJuICJj bHJtYWNcO2xkbWFjICUxLG1hY2wiOwotICAgIGNhc2UgOToKKyAgICBjYXNlIDE2OgogICAg ICAgcmV0dXJuICJzdG1hYwltYWNsLCUwIjsKICAgICBkZWZhdWx0OgogICAgICAgaWYgKEdF VF9DT0RFIChvcGVyYW5kc1sxXSkgPT0gQ09OU1RfSU5UKQpAQCAtMjM4LDkgKzI1Miw5IEBA CiAoZGVmaW5lX2luc24gIiptb3ZzaV9jY3puIgogICBbKHNldCAocmVnOkNDWk4gQ0NfUkVH KQogCShjb21wYXJlOkNDWk4KLQkgIChtYXRjaF9vcGVyYW5kOlNJIDEgImdlbmVyYWxfb3Bl cmFuZF9zcmMiICIgSSxyLGksciw+LG0sciIpCisJICAobWF0Y2hfb3BlcmFuZDpTSSAxICJn ZW5lcmFsX29wZXJhbmRfc3JjIiAiIEkscixpLFowLFoxLFoyLFozLFo0LFo1LFo2LFo3LD4s bSxyIikKIAkgIChjb25zdF9pbnQgMCkpKQotICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIscixyLDwscixyLG0iKQorICAgKHNldCAobWF0 Y2hfb3BlcmFuZDpTSSAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIscixyLFphLFpiLFpj LFpkLFplLFpmLFpnLFpoLHIscixtIikKIAkobWF0Y2hfZHVwIDEpKV0KICAgIihUQVJHRVRf SDgzMDBTIHx8IFRBUkdFVF9IODMwMEgpICYmICFUQVJHRVRfSDgzMDBTWAogICAgICYmIGg4 MzAwX21vdmVfb2sgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCkBAIC0yNTEsNiArMjY1 LDEzIEBACiAgICBtb3YubAklUzEsJVMwCiAgICBtb3YubAklUzEsJVMwCiAgICBtb3YubAkl UzEsJVMwCisgICBtb3YubAklUzEsJVMwCisgICBtb3YubAklUzEsJVMwCisgICBtb3YubAkl UzEsJVMwCisgICBtb3YubAklUzEsJVMwCisgICBtb3YubAklUzEsJVMwCisgICBtb3YubAkl UzEsJVMwCisgICBtb3YubAklUzEsJVMwCiAgICBtb3YubAklUzEsJVMwIgogICBbKHNldCAo YXR0ciAibGVuZ3RoIikgKHN5bWJvbF9yZWYgImNvbXB1dGVfbW92X2xlbmd0aCAob3BlcmFu ZHMpIikpXSkKIApAQCAtMzE2LDggKzMzNyw4IEBACiAgICAoc2V0X2F0dHIgImxlbmd0aF90 YWJsZSIgIiosbW92bCIpXSkKIAogKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm1vdnNmIgot ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIs cixyLG0sPCxyIikKLQkobWF0Y2hfb3BlcmFuZDpTRiAxICJnZW5lcmFsX29wZXJhbmRfc3Jj IiAiRyxyLGltLHIsciw+IikpXQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJnZW5l cmFsX29wZXJhbmRfZHN0IiAiPXIscixyLG0sWmEsWmIsWmMsWmQsWmUsWmYsWmcsWmgsciIp CisJKG1hdGNoX29wZXJhbmQ6U0YgMSAiZ2VuZXJhbF9vcGVyYW5kX3NyYyIgIkcscixpbSxy LFowLFoxLFoyLFozLFo0LFo1LFo2LFo3LD4iKSldCiAgICIhVEFSR0VUX0g4MzAwU1gKICAg ICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFNGbW9kZSkKIAl8fCByZWdp c3Rlcl9vcGVyYW5kIChvcGVyYW5kc1sxXSwgU0Ztb2RlKSkiCkBAIC0zMjcsOCArMzQ4LDgg QEAKIAkgICAgICAoY2xvYmJlciAocmVnOkNDIENDX1JFRykpXSldKQogCiAoZGVmaW5lX2lu c24gIiptb3ZzZl9jbG9iYmVyX2ZsYWdzIgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAw ICJnZW5lcmFsX29wZXJhbmRfZHN0IiAiPXIscixyLG0sPCxyIikKLQkobWF0Y2hfb3BlcmFu ZDpTRiAxICJnZW5lcmFsX29wZXJhbmRfc3JjIiAiRyxyLGltLHIsciw+IikpCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNGIDAgImdlbmVyYWxfb3BlcmFuZF9kc3QiICI9cixyLHIsbSxa YSxaYixaYyxaZCxaZSxaZixaZyxaaCxyIikKKwkobWF0Y2hfb3BlcmFuZDpTRiAxICJnZW5l cmFsX29wZXJhbmRfc3JjIiAiRyxyLGltLHIsWjAsWjEsWjIsWjMsWjQsWjUsWjYsWjcsPiIp KQogICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUcpKV0KICAgIiFUQVJHRVRfSDgzMDBTWAog ICAgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgU0Ztb2RlKQpAQCAtMzM5 LDYgKzM2MCwxMyBAQAogICAgbW92LmwJJVMxLCVTMAogICAgbW92LmwJJVMxLCVTMAogICAg bW92LmwJJVMxLCVTMAorICAgbW92LmwJJVMxLCVTMAorICAgbW92LmwJJVMxLCVTMAorICAg bW92LmwJJVMxLCVTMAorICAgbW92LmwJJVMxLCVTMAorICAgbW92LmwJJVMxLCVTMAorICAg bW92LmwJJVMxLCVTMAorICAgbW92LmwJJVMxLCVTMAogICAgbW92LmwJJVMxLCVTMCIKICAg WyhzZXQgKGF0dHIgImxlbmd0aCIpIChzeW1ib2xfcmVmICJjb21wdXRlX21vdl9sZW5ndGgg KG9wZXJhbmRzKSIpKV0pCiAMCg== --------------XfAtz6W8NjJSElRPUXsbkSxw--