From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Allen Li Newsgroups: gmane.emacs.bugs Subject: bug#49629: 27.2; electric-pair-mode doesn't work for angle brackets in HTML file Date: Sat, 2 Jul 2022 03:48:31 -0700 Message-ID: References: <801r7vgoxm.fsf@felesatra.moe> <87im11gbxf.fsf_-_@gnus.org> <8735rybg2f.fsf@gnus.org> <87tuk978gm.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000015c40b05e2d03fba" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5322"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Lars Ingebrigtsen , 49629@debbugs.gnu.org, Noam Postavsky To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jul 02 12:50:19 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o7ahe-0001CN-Tj for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 02 Jul 2022 12:50:19 +0200 Original-Received: from localhost ([::1]:44702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o7ahd-0006el-P5 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 02 Jul 2022 06:50:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45322) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o7agS-00062I-Dz for bug-gnu-emacs@gnu.org; Sat, 02 Jul 2022 06:49:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46008) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o7agQ-0003MH-GJ for bug-gnu-emacs@gnu.org; Sat, 02 Jul 2022 06:49:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o7agQ-0004LB-Ew for bug-gnu-emacs@gnu.org; Sat, 02 Jul 2022 06:49:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Allen Li Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Jul 2022 10:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49629 X-GNU-PR-Package: emacs Original-Received: via spool by 49629-submit@debbugs.gnu.org id=B49629.165675893316663 (code B ref 49629); Sat, 02 Jul 2022 10:49:02 +0000 Original-Received: (at 49629) by debbugs.gnu.org; 2 Jul 2022 10:48:53 +0000 Original-Received: from localhost ([127.0.0.1]:39904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o7agH-0004Kh-7J for submit@debbugs.gnu.org; Sat, 02 Jul 2022 06:48:53 -0400 Original-Received: from mail-ej1-f49.google.com ([209.85.218.49]:40575) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o7agC-0004KQ-TD for 49629@debbugs.gnu.org; Sat, 02 Jul 2022 06:48:51 -0400 Original-Received: by mail-ej1-f49.google.com with SMTP id dn9so2941377ejc.7 for <49629@debbugs.gnu.org>; Sat, 02 Jul 2022 03:48:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=felesatra-moe.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4tBe8yFPdx9vtALFr0dFA4Lz4sKYiFRyXvz3QSDzP20=; b=7ijH784H1H4aQvGU9ADA4C8IwIP0k/OnOCYDzz20Nkc+FTTo6xM1Ktq1DnmeM4OJKh 09KTXQRs00JksUVMW6LZSTRShG3yF5MRP724JfSsVTfASx0S7FnVEx/6N8bwRzuHlC6m ANPwLxRqm0aR56XfMOfcsU+gkKdaPqTlRN3r/rnzsS0jmb1wyrb2BokRg9CHJpvhFvhr ExxRdTXALPmEWQVO6LpgnBRQOYJr7dixNGl1jNNBNN7ijVNzRtY8lv2l+Pb3kSgY+oek iRsir9/Q9jHNIheUAYIdt5rLSZjiiCKWWCfB3Dqf/fbwfmW9QLNWGUsIk51+HbguUWqB 40SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4tBe8yFPdx9vtALFr0dFA4Lz4sKYiFRyXvz3QSDzP20=; b=jGPdekMaJ0pnjDLo8Xl9i1jbAO8zRvUZOmYR19SxXYGSoI2t+GVHfiZM6+g4fw3j1E hDAsuxXz4StmdDj22ez1bpfGhyx3LA7YAYo9R0+5eK83l3RiZUoNIg2VjShsfeaUmK5E 2v35M313KnyaOzq5bj0zZmpBhzZb0lOESa8clgUTFW7NgoSe56V+loVvJwqY4evKMt9G KZqklSJX/rpIXv5oR4xcAcWNwHeN6HTBoDeYKqALE01FXdR9DYX6Z8G2q5hSeZ8TNHk2 I53zw4vZeo3qugFCkwEJT5AxomD8y1rklRg/uxQyY3mch1tjXzxv0G+QT75aaSPYWBve m0Qg== X-Gm-Message-State: AJIora//7ayMpBd4PGzl0njJpspnyNYYoa7QDqTaibwZomSgRJO1VB50 H4lSo56sASVTruxP+7f90NBjbScshsAlc7NM7pi83A== X-Google-Smtp-Source: AGRyM1vkaNVwMyfmzQQwdgxMCH9Gq/tgZvK+jyzOM0tOhLehVY7qyIjpIpCdxJbfgle4DM8Ux0MdaRGMEa8fWk+qxOQ= X-Received: by 2002:a17:907:30cb:b0:722:e898:c9c8 with SMTP id vl11-20020a17090730cb00b00722e898c9c8mr19027838ejb.465.1656758923001; Sat, 02 Jul 2022 03:48:43 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:235879 Archived-At: --00000000000015c40b05e2d03fba Content-Type: multipart/alternative; boundary="00000000000015c40905e2d03fb8" --00000000000015c40905e2d03fb8 Content-Type: text/plain; charset="UTF-8" How does the attached patch look? I did not clear the syntax patch for the entire buffer because I was worried of the performance impact. We assume that we won't be touching the part of the buffer before the specified start. IIUC there is no issue keeping the cached state from before start using the original table, as we only want to consider the text succeeding start as text. On Mon, Jun 27, 2022 at 5:39 AM Stefan Monnier wrote: > > FIrst, changing `syntax-propertize-function` from nil to `ignore` was > wrong > > IIUC. If the function is set, then it is wholly responsible for applying > > syntax table. When set to nil the default behavior is used, but when set > > to `ignore`, that should mean that no syntax is applied at all. In > > practice, I don't know what behavior that causes. > > The two behave identically (IOW the "default behavior" is the same as > that of `ignore`). > > > Second, since `electric-pair--with-uncached-syntax` appears to be used > for > > doing text-mode matching (as you've also observed), maybe we should > > de-generalize it to do only that. I think that allows us to make some > > simplifying assumptions about the state of the world. > > Sounds good. > > > Stefan > > --00000000000015c40905e2d03fb8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
How does the attached patch look?

I did not clear the syntax patch=C2=A0for the entire buffer because I= was worried of the performance impact.
We assume that we won'= ;t be touching the part of the buffer before the specified start.
IIUC there is no issue keeping the cached state from before start using th= e original table,
as we only want to consider the text succeeding= start as text.

On Mon, Jun 27, 2022 at 5:39 AM Stefan Monnier <monnier@iro.umontreal.ca> wrote= :
> FIrst, ch= anging `syntax-propertize-function` from nil to `ignore` was wrong
> IIUC.=C2=A0 If the function is set, then it is wholly responsible for = applying
> syntax table.=C2=A0 When set to nil the default behavior is used, but = when set
> to `ignore`, that should mean that no syntax is applied at all.=C2=A0 = In
> practice, I don't know what behavior that causes.

The two behave identically (IOW the "default behavior" is the sam= e as
that of `ignore`).

> Second, since `electric-pair--with-uncached-syntax` appears to be used= for
> doing text-mode matching (as you've also observed), maybe we shoul= d
> de-generalize it to do only that.=C2=A0 I think that allows us to make= some
> simplifying assumptions about the state of the world.

Sounds good.


=C2=A0 =C2=A0 =C2=A0 =C2=A0 Stefan

--00000000000015c40905e2d03fb8-- --00000000000015c40b05e2d03fba Content-Type: text/x-patch; charset="US-ASCII"; name="0001-elec-pair-Fix-bug-incorrectly-hiding-syntax-properti.patch" Content-Disposition: attachment; filename="0001-elec-pair-Fix-bug-incorrectly-hiding-syntax-properti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l53rc1og0 RnJvbSBmYzNhODVmYzgzZmEzZmQ1NGE3MzAwMjU3NWQzMzllNmJiNzQyM2IyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGxlbiBMaSA8ZGFya2ZlbGluZUBmZWxlc2F0cmEubW9lPgpE YXRlOiBTdW4sIDI2IEp1biAyMDIyIDAyOjMyOjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gZWxl Yy1wYWlyOiBGaXggYnVnIGluY29ycmVjdGx5IGhpZGluZwogc3ludGF4LXByb3BlcnRpemUtZnVu Y3Rpb24KClRoZSBtYWluIGJ1ZyB0aGF0IHRoaXMgaXMgZml4aW5nIGlzIGBzeW50YXgtcHJvcGVy dGl6ZS1mdW5jdGlvbicgYmVpbmcKaGlkZGVuIGluIGBlbGVjdHJpYy1wYWlyLS1iYWxhbmNlLWlu Zm8nIHdoZW4gdGhlIG9yaWdpbmFsIHN5bnRheCB0YWJsZQppcyB0byBiZSB1c2VkLCBub3QgYGVs ZWN0cmljLXBhaXItdGV4dC1zeW50YXgtdGFibGUnLgoKTm90YWJseSwgdGhpcyBjYXVzZXMgYGVs ZWN0cmljLXBhaXItbW9kZScgdG8gb2Z0ZW4gbWlzYmVoYXZlIGluIEhUTUwKZmlsZXMgd2hlbiBw YWlyaW5nIGFuZ2xlIGJyYWNrZXRzLgoKVGhpcyBjb21taXQgYWxzbyBmbHVzaGVzIHRoZSBjYWNo ZSBiZWZvcmUgaW5zdGFsbGluZwpgZWxlY3RyaWMtcGFpci10ZXh0LXN5bnRheC10YWJsZScsIHRv IHByZXZlbnQgY2FjaGVkIHN5bnRheCBmb3IgdGhlCm9yaWdpbmFsIHRhYmxlIGZyb20gYWZmZWN0 aW5nIHRoaW5ncy4KLS0tCiBsaXNwL2VsZWMtcGFpci5lbCB8IDgyICsrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDMgaW5zZXJ0 aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9lbGVjLXBhaXIuZWwg Yi9saXNwL2VsZWMtcGFpci5lbAppbmRleCBiYmVkOTU1YTM5Li5kYWIzN2M1MTEwIDEwMDY0NAot LS0gYS9saXNwL2VsZWMtcGFpci5lbAorKysgYi9saXNwL2VsZWMtcGFpci5lbApAQCAtMTg4LDYg KzE4OCwyNSBAQCBlbGVjdHJpYy1wYWlyLWNvbnNlcnZhdGl2ZS1pbmhpYml0CiAgICA7OyBJIGFs c28gZmluZCBpdCBvZnRlbiBwcmVmZXJhYmxlIG5vdCB0byBwYWlyIG5leHQgdG8gYSB3b3JkLgog ICAgKGVxIChjaGFyLXN5bnRheCAoZm9sbG93aW5nLWNoYXIpKSA/dykpKQogCisoY2wtZGVmbWFj cm8gZWxlY3RyaWMtcGFpci0td2l0aC10ZXh0LXN5bnRheCAoKCZvcHRpb25hbCBzdGFydCkgJnJl c3QgYm9keSkKKyAgIlJ1biBCT0RZIHdpdGggYGVsZWN0cmljLXBhaXItdGV4dC1zeW50YXgtdGFi bGUnIGFjdGl2ZS4KK1RoaXMgZW5zdXJlcyB0aGF0IGFsbCBzeW50YXggcmVsYXRlZCB2YWx1ZXMg YXJlIHNldCBwcm9wZXJseSBhbmQgdGhlCitgc3ludGF4LXBwc3MnIGNhY2hlIGlzIGNsZWFyZWQg YmVmb3JlIGFuZCBhZnRlci4KK0luIHBhcnRpY3VsYXIsIHRoaXMgbXVzdCBiZSB1c2VkIHdoZW4g Qk9EWSBjb250YWlucyBjb2RlIHdoaWNoIG1heQordXBkYXRlIHRoZSBgc3ludGF4LXBwc3MnIGNh Y2hlLiAgVGhpcyBpbmNsdWRlcyBjYWxsaW5nCitgcGFyc2UtcGFydGlhbC1zZXhwJyBhbmQgYW55 IHNleHAtYmFzZWQgbW92ZW1lbnQgZnVuY3Rpb25zIHdoZW4KK2BwYXJzZS1zZXhwLWxvb2t1cC1w cm9wZXJ0aWVzJyBpcyBub24tbmlsLiAgVGhlIGNhY2hlIGlzIGZsdXNoZWQgZnJvbQorcG9zaXRp b24gU1RBUlQsIGRlZmF1bHRpbmcgdG8gcG9pbnQuIgorICAoZGVjbGFyZSAoZGVidWcgKCgmb3B0 aW9uYWwgZm9ybSkgYm9keSkpIChpbmRlbnQgMSkpCisgIChsZXQgKChzdGFydC12YXIgKG1ha2Ut c3ltYm9sICJzdGFydCIpKSkKKyAgICBgKGxldCAoKHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9u IG5pbCkKKyAgICAgICAgICAgKCxzdGFydC12YXIgLChvciBzdGFydCAnKHBvaW50KSkpKQorICAg ICAgIChzeW50YXgtcHBzcy1mbHVzaC1jYWNoZSAsc3RhcnQtdmFyKQorICAgICAgICh1bndpbmQt cHJvdGVjdAorICAgICAgICAgICAod2l0aC1zeW50YXgtdGFibGUgZWxlY3RyaWMtcGFpci10ZXh0 LXN5bnRheC10YWJsZQorICAgICAgICAgICAgICxAYm9keSkKKyAgICAgICAgIChzeW50YXgtcHBz cy1mbHVzaC1jYWNoZSAsc3RhcnQtdmFyKSkpKSkKKwogKGRlZnVuIGVsZWN0cmljLXBhaXItc3lu dGF4LWluZm8gKGNvbW1hbmQtZXZlbnQpCiAgICJDYWxjdWxhdGUgYSBsaXN0IChTWU5UQVggUEFJ UiBVTkNPTkRJVElPTkFMIFNUUklORy1PUi1DT01NRU5ULVNUQVJUKS4KIApAQCAtMjAyLDEzICsy MjEsMTIgQEAgZWxlY3RyaWMtcGFpci1zeW50YXgtaW5mbwogICAgICAgICAgKHBvc3Qtc3RyaW5n LW9yLWNvbW1lbnQgKG50aCA4IChzeW50YXgtcHBzcyAocG9pbnQpKSkpCiAgICAgICAgICAoc3Ry aW5nLW9yLWNvbW1lbnQgKGFuZCBwb3N0LXN0cmluZy1vci1jb21tZW50CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcmUtc3RyaW5nLW9yLWNvbW1lbnQpKQotICAgICAgICAgKHRh YmxlIChpZiBzdHJpbmctb3ItY29tbWVudAotICAgICAgICAgICAgICAgICAgICBlbGVjdHJpYy1w YWlyLXRleHQtc3ludGF4LXRhYmxlCi0gICAgICAgICAgICAgICAgICAoc3ludGF4LXRhYmxlKSkp Ci0gICAgICAgICAodGFibGUtc3ludGF4LWFuZC1wYWlyICh3aXRoLXN5bnRheC10YWJsZSB0YWJs ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IChjaGFyLXN5bnRheCBj b21tYW5kLWV2ZW50KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChv ciAobWF0Y2hpbmctcGFyZW4gY29tbWFuZC1ldmVudCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC1ldmVudCkpKSkKKyAgICAgICAgICh0YWJsZS1z eW50YXgtYW5kLXBhaXIgKGNsLWZsZXQgKChmICgpIChsaXN0IChjaGFyLXN5bnRheCBjb21tYW5k LWV2ZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG9yIChtYXRjaGluZy1wYXJlbiBjb21tYW5kLWV2ZW50KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQtZXZlbnQp KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHN0cmluZy1vci1jb21t ZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbGVjdHJpYy1wYWly LS13aXRoLXRleHQtc3ludGF4ICgpIChmKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChmKSkpKQogICAgICAgICAgKGZhbGxiYWNrIChpZiBzdHJpbmctb3ItY29tbWVudAog ICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIGVsZWN0cmljLXBhaXItdGV4dC1wYWlycwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZWN0cmljLXBhaXItcGFpcnMpCkBAIC0y MzcsMjIgKzI1NSw2IEBAIGVsZWN0cmljLXBhaXItLWluc2VydAogICAgICAgICAoZWxlY3RyaWMt bGF5b3V0LWFsbG93LWR1cGxpY2F0ZS1uZXdsaW5lcyB0KSkKICAgICAoc2VsZi1pbnNlcnQtY29t bWFuZCAxKSkpCiAKLShjbC1kZWZtYWNybyBlbGVjdHJpYy1wYWlyLS13aXRoLXVuY2FjaGVkLXN5 bnRheCAoKHRhYmxlICZvcHRpb25hbCBzdGFydCkgJnJlc3QgYm9keSkKLSAgIkxpa2UgYHdpdGgt c3ludGF4LXRhYmxlJywgYnV0IGZsdXNoIHRoZSBgc3ludGF4LXBwc3MnIGNhY2hlIGFmdGVyd2Fy ZHMuCi1Vc2UgdGhpcyBpbnN0ZWFkIG9mICh3aXRoLXN5bnRheC10YWJsZSBUQUJMRSBCT0RZKSB3 aGVuIEJPRFkKLWNvbnRhaW5zIGNvZGUgd2hpY2ggbWF5IHVwZGF0ZSB0aGUgYHN5bnRheC1wcHNz JyBjYWNoZS4gIFRoaXMKLWluY2x1ZGVzIGNhbGxpbmcgYHBhcnNlLXBhcnRpYWwtc2V4cCcgYW5k IGFueSBzZXhwLWJhc2VkIG1vdmVtZW50Ci1mdW5jdGlvbnMgd2hlbiBgcGFyc2Utc2V4cC1sb29r dXAtcHJvcGVydGllcycgaXMgbm9uLW5pbC4gIFRoZQotY2FjaGUgaXMgZmx1c2hlZCBmcm9tIHBv c2l0aW9uIFNUQVJULCBkZWZhdWx0aW5nIHRvIHBvaW50LiIKLSAgKGRlY2xhcmUgKGRlYnVnICgo Zm9ybSAmb3B0aW9uYWwgZm9ybSkgYm9keSkpIChpbmRlbnQgMSkpCi0gIChsZXQgKChzdGFydC12 YXIgKG1ha2Utc3ltYm9sICJzdGFydCIpKSkKLSAgICBgKGxldCAoKHN5bnRheC1wcm9wZXJ0aXpl LWZ1bmN0aW9uICMnaWdub3JlKQotICAgICAgICAgICAoLHN0YXJ0LXZhciAsKG9yIHN0YXJ0ICco cG9pbnQpKSkpCi0gICAgICAgKHVud2luZC1wcm90ZWN0Ci0gICAgICAgICAgICh3aXRoLXN5bnRh eC10YWJsZSAsdGFibGUKLSAgICAgICAgICAgICAsQGJvZHkpCi0gICAgICAgICAoc3ludGF4LXBw c3MtZmx1c2gtY2FjaGUgLHN0YXJ0LXZhcikpKSkpCi0KIChkZWZ1biBlbGVjdHJpYy1wYWlyLS1z eW50YXgtcHBzcyAoJm9wdGlvbmFsIHBvcyB3aGVyZSkKICAgIkxpa2UgYHN5bnRheC1wcHNzJywg YnV0IHNvbWV0aW1lcyBmYWxsYmFjayB0byBgcGFyc2UtcGFydGlhbC1zZXhwJy4KIApAQCAtMjcx LDggKzI3Myw3IEBAIGVsZWN0cmljLXBhaXItLXN5bnRheC1wcHNzCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc2tpcC1zeW50YXgtZm9yd2FyZCAiID4hIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChwb2ludCkpKSkpCiAgICAgKGlmIHMtb3ItYy1zdGFydAotICAgICAg ICAoZWxlY3RyaWMtcGFpci0td2l0aC11bmNhY2hlZC1zeW50YXggKGVsZWN0cmljLXBhaXItdGV4 dC1zeW50YXgtdGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzLW9yLWMtc3RhcnQpCisgICAgICAgIChlbGVjdHJpYy1wYWlyLS13aXRoLXRleHQtc3lu dGF4IChzLW9yLWMtc3RhcnQpCiAgICAgICAgICAgKHBhcnNlLXBhcnRpYWwtc2V4cCBzLW9yLWMt c3RhcnQgcG9zKSkKICAgICAgIDs7IEhBQ0shIGNjLW1vZGUgYXBwYXJlbnRseSBoYXMgc29tZSBg c3ludGF4LXBwc3MnIGJ1Z3MKICAgICAgIChpZiAobWVtcSBtYWpvci1tb2RlICcoYy1tb2RlIGMr KyBtb2RlKSkKQEAgLTMwMSw5ICszMDIsNiBAQCBlbGVjdHJpYy1wYWlyLS1iYWxhbmNlLWluZm8K IElmIHBvaW50IGlzIG5vdCBlbmNsb3NlZCBieSBhbnkgbGlzdHMsIHJldHVybiAoKHQpIC4gKHQp KS4iCiAgIChsZXQqIChpbm5lcm1vc3QKICAgICAgICAgIG91dGVybW9zdAotICAgICAgICAgKHRh YmxlIChpZiBzdHJpbmctb3ItY29tbWVudAotICAgICAgICAgICAgICAgICAgICBlbGVjdHJpYy1w YWlyLXRleHQtc3ludGF4LXRhYmxlCi0gICAgICAgICAgICAgICAgICAoc3ludGF4LXRhYmxlKSkp CiAgICAgICAgICAoYXQtdG9wLWxldmVsLW9yLWVxdWl2YWxlbnQtZm4KICAgICAgICAgICA7OyBj YWxsZWQgd2hlbiBgc2Nhbi1zZXhwcycgcmFuIHBlcmZlY3RseSwgd2hlbiBpdCBmb3VuZAogICAg ICAgICAgIDs7IGEgcGFyZW50aGVzaXMgcG9pbnRpbmcgaW4gdGhlIGRpcmVjdGlvbiBvZiB0cmF2 ZWwuCkBAIC0zMjUsMTEgKzMyMywxMiBAQCBlbGVjdHJpYy1wYWlyLS1iYWxhbmNlLWluZm8KICAg ICAgICAgICAgICAgICAgICAgICAgIChjb25kICgoPCBkaXJlY3Rpb24gMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChlcSAoY2hhci1hZnRlciBwb3MpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZWxlY3RyaWMtcGFpci0td2l0aC11bmNhY2hlZC1zeW50 YXgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFibGUpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaGluZy1wYXJlbgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXItYmVmb3JlCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNjYW4tc2V4cHMgKHBv aW50KSAxKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1m bGV0ICgoZiAoKSAobWF0Y2hpbmctcGFyZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXItYmVmb3JlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2Nhbi1zZXhwcyAocG9p bnQpIDEpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg c3RyaW5nLW9yLWNvbW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChlbGVjdHJpYy1wYWlyLS13aXRoLXRleHQtc3ludGF4ICgpIChmKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZikpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzY2FuLWVycm9yIG5pbCkpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJbiB0aGlz IGNhc2UsIG5vIG5lZWQgdG8gdXNlCkBAIC0zNDMsNyArMzQyLDkgQEAgZWxlY3RyaWMtcGFpci0t YmFsYW5jZS1pbmZvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcGVu ZXIgKGNoYXItYWZ0ZXIgc3RhcnQpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChhbmQgc3RhcnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIChj aGFyLWJlZm9yZSBwb3MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAob3IgKHdpdGgtc3ludGF4LXRhYmxlIHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAob3IgKGlmIHN0cmluZy1vci1jb21tZW50CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbGVjdHJpYy1wYWlyLS13aXRo LXRleHQtc3ludGF4ICgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG1hdGNoaW5nLXBhcmVuIG9wZW5lcikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hpbmctcGFyZW4gb3BlbmVyKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuZXIpKSkpKSkp KQogICAgICAgICAgICAgICAgICAgICAgKGFjdHVhbC1wYWlyIChpZiAoPiBkaXJlY3Rpb24gMCkK QEAgLTM1NiwxMSArMzU3LDE0IEBAIGVsZWN0cmljLXBhaXItLWJhbGFuY2UtaW5mbwogICAgIChz YXZlLWV4Y3Vyc2lvbgogICAgICAgKHdoaWxlIChub3Qgb3V0ZXJtb3N0KQogICAgICAgICAoY29u ZGl0aW9uLWNhc2UgZXJyCi0gICAgICAgICAgICAoZWxlY3RyaWMtcGFpci0td2l0aC11bmNhY2hl ZC1zeW50YXggKHRhYmxlKQotICAgICAgICAgICAgICAoc2Nhbi1zZXhwcyAocG9pbnQpIChpZiAo PiBkaXJlY3Rpb24gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBv aW50LW1heCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtIChwb2ludC1t YXgpKSkpCi0gICAgICAgICAgICAgIChmdW5jYWxsIGF0LXRvcC1sZXZlbC1vci1lcXVpdmFsZW50 LWZuKSkKKyAgICAgICAgICAgIChjbC1mbGV0ICgoZiAoKQorICAgICAgICAgICAgICAgICAgICAg ICAgIChzY2FuLXNleHBzIChwb2ludCkgKGlmICg+IGRpcmVjdGlvbiAwKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludC1tYXgpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtIChwb2ludC1tYXgpKSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgYXQtdG9wLWxldmVsLW9yLWVxdWl2 YWxlbnQtZm4pKSkKKyAgICAgICAgICAgICAgKGlmIHN0cmluZy1vci1jb21tZW50CisgICAgICAg ICAgICAgICAgICAoZWxlY3RyaWMtcGFpci0td2l0aC10ZXh0LXN5bnRheCAoKSAoZikpCisgICAg ICAgICAgICAgICAgKGYpKSkKICAgICAgICAgICAoc2Nhbi1lcnJvcgogICAgICAgICAgICAoY29u ZCAoKG9yCiAgICAgICAgICAgICAgICAgICAgOzsgc29tZSBlcnJvciBoYXBwZW5lZCBhbmQgaXQg aXMgbm90IG9mIHRoZSAiZW5kZWQKLS0gCjIuMzcuMAoK --00000000000015c40b05e2d03fba--