From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#35770: [PATCH] Broken duplicate case elimination in switch byte-compilation Date: Fri, 17 May 2019 16:48:19 +0200 Message-ID: <752237291204505cd6b3fb98f667c2718fa6361f.camel@acm.org> References: <91DFE4D0-BDB6-4365-BA51-A2A3F209177C@acm.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-9ON/c1jV3vZk/hIjA9bv" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="105080"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Evolution 3.30.5 (3.30.5-1.fc29) Cc: 35770@debbugs.gnu.org, vibhavp@gmail.com To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri May 17 16:50:53 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hReCC-000RCE-K0 for geb-bug-gnu-emacs@m.gmane.org; Fri, 17 May 2019 16:50:53 +0200 Original-Received: from localhost ([127.0.0.1]:49759 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hReCB-0007nO-LS for geb-bug-gnu-emacs@m.gmane.org; Fri, 17 May 2019 10:50:51 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:47230) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hReAS-0006j0-7w for bug-gnu-emacs@gnu.org; Fri, 17 May 2019 10:49:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hReAQ-0005hE-P9 for bug-gnu-emacs@gnu.org; Fri, 17 May 2019 10:49:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:45211) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hReAQ-0005gy-LH for bug-gnu-emacs@gnu.org; Fri, 17 May 2019 10:49:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hReAQ-00008h-Gc for bug-gnu-emacs@gnu.org; Fri, 17 May 2019 10:49:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 17 May 2019 14:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35770 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-Cc: bug-gnu-emacs@gnu.org, vibhavp@gmail.com Original-Received: via spool by submit@debbugs.gnu.org id=B.1558104516499 (code B ref -1); Fri, 17 May 2019 14:49:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 17 May 2019 14:48:36 +0000 Original-Received: from localhost ([127.0.0.1]:58755 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hRe9z-00007z-Vo for submit@debbugs.gnu.org; Fri, 17 May 2019 10:48:36 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60844) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hRe9x-00007l-Nt for submit@debbugs.gnu.org; Fri, 17 May 2019 10:48:34 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:51271) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hRe9s-0005FE-Hi for submit@debbugs.gnu.org; Fri, 17 May 2019 10:48:28 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:46992) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hRe9r-0006IT-5o for bug-gnu-emacs@gnu.org; Fri, 17 May 2019 10:48:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hRe9p-0005Dt-S6 for bug-gnu-emacs@gnu.org; Fri, 17 May 2019 10:48:27 -0400 Original-Received: from mail204c50.megamailservers.eu ([91.136.10.214]:38546 helo=mail193c50.megamailservers.eu) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hRe9p-0005AW-Dw for bug-gnu-emacs@gnu.org; Fri, 17 May 2019 10:48:25 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1558104501; bh=AZKC2BGqm7sqOgyDdIpVb1bTokyA3HxRxMHfUG4FerM=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=csZfAQvOG/L7Mnj6/WwzaLv+DcSn33X4y5t3vcVVLXFuEPA5XqxjaEaP9QgEhtUvi rGK0c34smwPMpVbhMXzzDMMmOZXZe/Eju53MOAfwOKO/i9qiy78RWOYJ/y3LqnHuuI WQNipJs2SS28kEZ036VHNDC1uR1/Ln1IlrTLelbE= Feedback-ID: mattiase@acm.or Original-Received: from dhcppc0 (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x4HEmJF0006585; Fri, 17 May 2019 14:48:21 +0000 In-Reply-To: X-CTCH-RefID: str=0001.0A0B0208.5CDEC9B5.007C, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=PM8hB8iC c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=OeaMns-oPRveu5UV6X8A:9 a=QEXdDO2ut3YA:10 a=N54-gffFAAAA:8 a=6kFNEIHPF0FuvLvS0KUA:9 a=B2y7HmGcmWMA:10 a=6l0D2HzqY3Epnrm8mE3f:22 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:159455 Archived-At: --=-9ON/c1jV3vZk/hIjA9bv Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit fre 2019-05-17 klockan 08:16 -0400 skrev Stefan Monnier: > The patch looks fine, but could you add corresponding regression > tests? Added. I wasn't sure how you test these things, but I both added some functional tests and some kind of check of the bytecode. If you find the latter superfluous, I can drop it; I think the functional tests are reliable enough. In other words, we have a case of miscompilation. There was another bug in the original code which survived into the first patch: the check for duplicate keys was done with `assq', which of course doesn't work for stuff compared with `eql' or `equal'. Now fixed. --=-9ON/c1jV3vZk/hIjA9bv Content-Disposition: attachment; filename*0=0001-Correctly-eliminate-duplicate-cases-in-switch-compil.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Correctly-eliminate-duplicate-cases-in-switch-compil.patch"; charset="UTF-8" RnJvbSA4NDM4YmMwMzZiYjYwNjIyYzVjMmUwMzU4MmJhMmNmNDcxYmFmOTk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWF0dGlhcz0yMEVuZ2RlZz1DMz1BNXJkPz0g PG1hdHRpYXNlQGFjbS5vcmc+CkRhdGU6IEZyaSwgMTcgTWF5IDIwMTkgMTE6MjU6MDYgKzAyMDAK U3ViamVjdDogW1BBVENIXSBDb3JyZWN0bHkgZWxpbWluYXRlIGR1cGxpY2F0ZSBjYXNlcyBpbiBz d2l0Y2ggY29tcGlsYXRpb24KCkZpeCBjb2RlIG1pc3Rha2VzIHRoYXQgcHJldmVudGVkIHRoZSBj b3JyZWN0IGVsaW1pbmF0aW9uIG9mIGR1cGxpY2F0ZWQKY2FzZXMgd2hlbiBjb21waWxpbmcgYSBg Y29uZCcgZm9ybSB0byBhIHN3aXRjaCBieXRlY29kZSwgYXMgaW4KCiAgKGNvbmQgKChlcSB4ICdh KSAxKQogICAgICAgICgoZXEgeCAnYikgMikKICAgICAgICAoKGVxIHggJ2EpIDMpICAgOyBzaG91 bGQgYmUgZWxpZGVkCiAgICAgICAgKChlcSB4ICdjKSA0KSkKClNvbWV0aW1lcywgdGhpcyBjYXVz ZWQgdGhlIGJ5dGVjb2RlIHRvIHVzZSB0aGUgd3JvbmcgYnJhbmNoIChidWcjMzU3NzApLgoKKiBs aXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAuZWwgKGJ5dGUtY29tcGlsZS1jb25kLXZhcnMpOiBSZXR1 cm4gb2JqMiBldmFsJ2VkLgooYnl0ZS1jb21waWxlLWNvbmQtanVtcC10YWJsZS1pbmZvKToKRGlz Y2FyZCByZWR1bmRhbnQgY29uZGl0aW9uLiAgVXNlIGBvYmoyJyBhcyBldmFsdWF0ZWQuCkRpc2Nh cmQgZHVwbGljYXRlZCBjYXNlcyBpbnN0ZWFkIG9mIGZhaWxpbmcgdGhlIHRhYmxlIGdlbmVyYXRp b24uCiogdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtdGVzdHMuZWwgKHRvcGxldmVsKTog UmVxdWlyZSBzdWJyLXguCihieXRlLW9wdC10ZXN0c3VpdGUtYXJpdGgtZGF0YSwgYnl0ZWNvbXAt dGVzdC0tc3dpdGNoLWR1cGxpY2F0ZXMpOiBUZXN0LgotLS0KIGxpc3AvZW1hY3MtbGlzcC9ieXRl Y29tcC5lbCAgICAgICAgICAgIHwgMTMgKysrLS0tCiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9ieXRl Y29tcC10ZXN0cy5lbCB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNo YW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlz cC9lbWFjcy1saXNwL2J5dGVjb21wLmVsIGIvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLmVsCmlu ZGV4IGU3NmJhZjVlZDAuLmNlMzQ4ZWQzMTMgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9i eXRlY29tcC5lbAorKysgYi9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAuZWwKQEAgLTQwOTEsOCAr NDA5MSw4IEBAIGJ5dGUtY29tcGlsZS1jb25kLXZhcnMKICAgOzsgYW5kIHRoZSBvdGhlciBpcyBh IGNvbnN0YW50IGV4cHJlc3Npb24gd2hvc2UgdmFsdWUgY2FuIGJlCiAgIDs7IGNvbXBhcmVkIHdp dGggYGVxJyAod2l0aCBgbWFjcm9leHAtY29uc3QtcCcpLgogICAob3IKLSAgIChhbmQgKHN5bWJv bHAgb2JqMSkgKG1hY3JvZXhwLWNvbnN0LXAgb2JqMikgKGNvbnMgb2JqMSBvYmoyKSkKLSAgIChh bmQgKHN5bWJvbHAgb2JqMikgKG1hY3JvZXhwLWNvbnN0LXAgb2JqMSkgKGNvbnMgb2JqMiBvYmox KSkpKQorICAgKGFuZCAoc3ltYm9scCBvYmoxKSAobWFjcm9leHAtY29uc3QtcCBvYmoyKSAoY29u cyBvYmoxIChldmFsIG9iajIpKSkKKyAgIChhbmQgKHN5bWJvbHAgb2JqMikgKG1hY3JvZXhwLWNv bnN0LXAgb2JqMSkgKGNvbnMgb2JqMiAoZXZhbCBvYmoxKSkpKSkKIAogKGRlZmNvbnN0IGJ5dGUt Y29tcGlsZS0tZGVmYXVsdC12YWwgKGNvbnMgbmlsIG5pbCkgIkEgdW5pcXVlIG9iamVjdC4iKQog CkBAIC00MTIxLDEyICs0MTIxLDExIEBAIGJ5dGUtY29tcGlsZS1jb25kLWp1bXAtdGFibGUtaW5m bwogICAgICAgICAgICAgICAgKHVubGVzcyBwcmV2LXRlc3QKICAgICAgICAgICAgICAgICAgKHNl dHEgcHJldi10ZXN0IHRlc3QpKQogICAgICAgICAgICAgICAgKGlmIChhbmQgb2JqMSAobWVtcSB0 ZXN0ICcoZXEgZXFsIGVxdWFsKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChjb25zcCBjb25k aXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdGVzdCBwcmV2LXRlc3QpCi0gICAg ICAgICAgICAgICAgICAgICAgICAoZXEgb2JqMSBwcmV2LXZhcikKLSAgICAgICAgICAgICAgICAg ICAgICAgIDs7IGRpc2NhcmQgZHVwbGljYXRlIGNsYXVzZXMKLSAgICAgICAgICAgICAgICAgICAg ICAgIChub3QgKGFzc3Egb2JqMiBjYXNlcykpKQotICAgICAgICAgICAgICAgICAgIChwdXNoIChs aXN0IChpZiAoY29uc3Agb2JqMikgKGV2YWwgb2JqMikgb2JqMikgYm9keSkgY2FzZXMpCisgICAg ICAgICAgICAgICAgICAgICAgICAoZXEgb2JqMSBwcmV2LXZhcikpCisgICAgICAgICAgICAgICAg ICAgOzsgZGlzY2FyZCBkdXBsaWNhdGUgY2xhdXNlcworICAgICAgICAgICAgICAgICAgICh1bmxl c3MgKGFzc29jIG9iajIgY2FzZXMgdGVzdCkKKyAgICAgICAgICAgICAgICAgICAgIChwdXNoIChs aXN0IG9iajIgYm9keSkgY2FzZXMpKQogICAgICAgICAgICAgICAgICAoaWYgKGFuZCAobWFjcm9l eHAtY29uc3QtcCBjb25kaXRpb24pIGNvbmRpdGlvbikKIAkJICAgICAocHJvZ24gKHB1c2ggKGxp c3QgYnl0ZS1jb21waWxlLS1kZWZhdWx0LXZhbAogCQkJCQkob3IgYm9keSBgKCxjb25kaXRpb24p KSkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2J5dGVjb21wLXRlc3RzLmVsIGIv dGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtdGVzdHMuZWwKaW5kZXggNWZiNjRmZjI4OC4u MGM1ZjhlNzI1MCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtdGVz dHMuZWwKKysrIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvYnl0ZWNvbXAtdGVzdHMuZWwKQEAgLTI3 LDYgKzI3LDcgQEAKIAogKHJlcXVpcmUgJ2VydCkKIChyZXF1aXJlICdjbC1saWIpCisocmVxdWly ZSAnc3Vici14KQogKHJlcXVpcmUgJ2J5dGVjb21wKQogCiA7OzsgQ29kZToKQEAgLTI5Niw3ICsy OTcsMjEgQEAgYnl0ZS1vcHQtdGVzdHN1aXRlLWFyaXRoLWRhdGEKICAgICAgICAoKGVxIHZhcmlh YmxlICdkZWZhdWx0KQogCShtZXNzYWdlICJlcXVhbCIpKQogICAgICAgICh0Ci0JKG1lc3NhZ2Ug Im5vdCBlcXVhbCIpKSkpKQorCShtZXNzYWdlICJub3QgZXF1YWwiKSkpKQorICAgIDs7IEJ1ZyMz NTc3MAorICAgIChsZXQgKCh4ICdhKSkgKGNvbmQgKChlcSB4ICdhKSAnY29ycmVjdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICgoZXEgeCAnYikgJ2luY29ycmVjdCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICgoZXEgeCAnYSkgJ2luY29ycmVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICgoZXEgeCAnYykgJ2luY29ycmVjdCkpKQorICAgIChsZXQgKCh4ICN4MTAwMDAwMDAwMDAwMDAw MDApKQorICAgICAgKGNvbmQgKChlcWwgeCAjeDEwMDAwMDAwMDAwMDAwMDAwKSAnY29ycmVjdCkK KyAgICAgICAgICAgICgoZXFsIHggI3gxMDAwMDAwMDAwMDAwMDAwMSkgJ2luY29ycmVjdCkKKyAg ICAgICAgICAgICgoZXFsIHggI3gxMDAwMDAwMDAwMDAwMDAwMCkgJ2luY29ycmVjdCkKKyAgICAg ICAgICAgICgoZXFsIHggI3gxMDAwMDAwMDAwMDAwMDAwMikgJ2luY29ycmVjdCkpKQorICAgIChs ZXQgKCh4ICJhIikpIChjb25kICgoZXF1YWwgeCAiYSIpICdjb3JyZWN0KQorICAgICAgICAgICAg ICAgICAgICAgICAgICgoZXF1YWwgeCAiYiIpICdpbmNvcnJlY3QpCisgICAgICAgICAgICAgICAg ICAgICAgICAgKChlcXVhbCB4ICJhIikgJ2luY29ycmVjdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAoKGVxdWFsIHggImMiKSAnaW5jb3JyZWN0KSkpKQogICAiTGlzdCBvZiBleHByZXNzaW9u IGZvciB0ZXN0LgogRWFjaCBlbGVtZW50IHdpbGwgYmUgZXhlY3V0ZWQgYnkgaW50ZXJwcmV0ZXIg YW5kIHdpdGgKIGJ5dGVjb21waWxlZCBjb2RlLCBhbmQgdGhlaXIgcmVzdWx0cyBjb21wYXJlZC4i KQpAQCAtNjEzLDYgKzYyOCw0NCBAQCBieXRlY29tcC10ZXN0cy0td2l0aC10ZW1wLWZpbGUKICAg ICAgIChpZiAoYnVmZmVyLWxpdmUtcCBieXRlLWNvbXBpbGUtbG9nLWJ1ZmZlcikKICAgICAgICAg ICAoa2lsbC1idWZmZXIgYnl0ZS1jb21waWxlLWxvZy1idWZmZXIpKSkpKQogCisoZXJ0LWRlZnRl c3QgYnl0ZWNvbXAtdGVzdC0tc3dpdGNoLWR1cGxpY2F0ZXMgKCkKKyAgIkNoZWNrIHRoYXQgZHVw bGljYXRlcyBpbiBzd2l0Y2hlcyBhcmUgZWxpbWluYXRlZCBjb3JyZWN0bHkgKGJ1ZyMzNTc3MCku IgorICAoZG9saXN0IChwYXJhbXMKKyAgICAgICAgICAgJygoKGxhbWJkYSAoeCkKKyAgICAgICAg ICAgICAgICAoY29uZCAoKGVxIHggJ2EpIDExMSkKKyAgICAgICAgICAgICAgICAgICAgICAoKGVx IHggJ2IpIDIyMikKKyAgICAgICAgICAgICAgICAgICAgICAoKGVxIHggJ2EpIDMzMykKKyAgICAg ICAgICAgICAgICAgICAgICAoKGVxIHggJ2MpIDQ0NCkpKQorICAgICAgICAgICAgICAoYSBiIGMp CisgICAgICAgICAgICAgIChsYW1iZGEgKHUgdikgKHN0cmluZzwgKHN5bWJvbC1uYW1lIHUpIChz eW1ib2wtbmFtZSB2KSkpKQorICAgICAgICAgICAgICgobGFtYmRhICh4KQorICAgICAgICAgICAg ICAgIChjb25kICgoZXFsIHggI3gxMDAwMDAwMDAwMDAwMDAwMCkgMTExKQorICAgICAgICAgICAg ICAgICAgICAgICgoZXFsIHggI3gxMDAwMDAwMDAwMDAwMDAwMSkgMjIyKQorICAgICAgICAgICAg ICAgICAgICAgICgoZXFsIHggI3gxMDAwMDAwMDAwMDAwMDAwMCkgMzMzKQorICAgICAgICAgICAg ICAgICAgICAgICgoZXFsIHggI3gxMDAwMDAwMDAwMDAwMDAwMikgNDQ0KSkpCisgICAgICAgICAg ICAgICgjeDEwMDAwMDAwMDAwMDAwMDAwICN4MTAwMDAwMDAwMDAwMDAwMDEgI3gxMDAwMDAwMDAw MDAwMDAwMikKKyAgICAgICAgICAgICAgPCkKKyAgICAgICAgICAgICAoKGxhbWJkYSAoeCkKKyAg ICAgICAgICAgICAgICAoY29uZCAoKGVxdWFsIHggImEiKSAxMTEpCisgICAgICAgICAgICAgICAg ICAgICAgKChlcXVhbCB4ICJiIikgMjIyKQorICAgICAgICAgICAgICAgICAgICAgICgoZXF1YWwg eCAiYSIpIDMzMykKKyAgICAgICAgICAgICAgICAgICAgICAoKGVxdWFsIHggImMiKSA0NDQpKSkK KyAgICAgICAgICAgICAgKCJhIiAiYiIgImMiKQorICAgICAgICAgICAgICBzdHJpbmc8KSkpCisg ICAgKGxldCogKChsaXNwIChudGggMCBwYXJhbXMpKQorICAgICAgICAgICAoa2V5cyAobnRoIDEg cGFyYW1zKSkKKyAgICAgICAgICAgKGxlc3NwIChudGggMiBwYXJhbXMpKQorICAgICAgICAgICAo YmMgKGJ5dGUtY29tcGlsZSBsaXNwKSkKKyAgICAgICAgICAgKGxhcCAoYnl0ZS1kZWNvbXBpbGUt Ynl0ZWNvZGUgKGFyZWYgYmMgMSkgKGFyZWYgYmMgMikpKQorICAgICAgICAgICA7OyBBc3N1bWUg dGhlIGZpcnN0IGNvbnN0YW50IGlzIHRoZSBzd2l0Y2ggdGFibGUuCisgICAgICAgICAgICh0YWJs ZSAoY2FkciAoYXNzcSAnYnl0ZS1jb25zdGFudCBsYXApKSkpCisgICAgICAoc2hvdWxkIChoYXNo LXRhYmxlLXAgdGFibGUpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKHNvcnQgKGhhc2gtdGFibGUt a2V5cyB0YWJsZSkgbGVzc3ApIGtleXMpKQorICAgICAgKHNob3VsZCAobWVtYmVyICcoYnl0ZS1j b25zdGFudCAxMTEpIGxhcCkpCisgICAgICAoc2hvdWxkIChtZW1iZXIgJyhieXRlLWNvbnN0YW50 IDIyMikgbGFwKSkKKyAgICAgIChzaG91bGQtbm90IChtZW1iZXIgJyhieXRlLWNvbnN0YW50IDMz MykgbGFwKSkKKyAgICAgIChzaG91bGQgKG1lbWJlciAnKGJ5dGUtY29uc3RhbnQgNDQ0KSBsYXAp KSkpKQorCiA7OyBMb2NhbCBWYXJpYWJsZXM6CiA7OyBuby1ieXRlLWNvbXBpbGU6IHQKIDs7IEVu ZDoKLS0gCjIuMjAuMQoK --=-9ON/c1jV3vZk/hIjA9bv--