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: Sun, 26 Jun 2022 02:38:28 -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="0000000000007d268b05e256918f" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5253"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Noam Postavsky , 49629@debbugs.gnu.org, Stefan Monnier To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jun 26 11:39:09 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 1o5OjV-0001At-M5 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 26 Jun 2022 11:39:09 +0200 Original-Received: from localhost ([::1]:50840 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o5OjU-0005sU-Ju for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 26 Jun 2022 05:39:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51694) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o5OjO-0005qX-2h for bug-gnu-emacs@gnu.org; Sun, 26 Jun 2022 05:39:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:52843) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o5OjN-0005TB-Q4 for bug-gnu-emacs@gnu.org; Sun, 26 Jun 2022 05:39:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o5OjN-0007xn-Nj for bug-gnu-emacs@gnu.org; Sun, 26 Jun 2022 05:39:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Allen Li Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 26 Jun 2022 09:39:01 +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.165623632830591 (code B ref 49629); Sun, 26 Jun 2022 09:39:01 +0000 Original-Received: (at 49629) by debbugs.gnu.org; 26 Jun 2022 09:38:48 +0000 Original-Received: from localhost ([127.0.0.1]:46740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o5Oj9-0007xL-Ct for submit@debbugs.gnu.org; Sun, 26 Jun 2022 05:38:48 -0400 Original-Received: from mail-ed1-f41.google.com ([209.85.208.41]:37753) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o5Oj7-0007x7-Lv for 49629@debbugs.gnu.org; Sun, 26 Jun 2022 05:38:46 -0400 Original-Received: by mail-ed1-f41.google.com with SMTP id c65so9166135edf.4 for <49629@debbugs.gnu.org>; Sun, 26 Jun 2022 02:38:45 -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=R3opLtT7j5zLdn8E8zB9etfnOy795SXBoDonZ0o/ATU=; b=lJCz8KY30Qo+/HnHrbGFUzBN03+vtoRwqL69dGrB3qqWDHn/5Dvl5z3dlcZZdYquQW gNRoEptPNIi/fzZ5W2tpjzG6k6Wrer0u4Venc9K9nD5FMjgwOfHB62u7KDOXc9qT7ZBY P56cetDrWofHpa8zMielWXu6R/NWkbBSHdVRzQHMcAOgJzu7PyZJ2ZIDO3/UUbrlmKsd iQiZKD+K9TfPvj6DhCsxAStyrmHj22gnI5Mz6rB/I4WtPCD5a58pHKnyrpGYWkDyATcu drdb/DyHb3aIVhQnpVkZcsg2tPytyKz2gr/xowkAYThaq2HCMMuoluVIwfJNTjjMkFZy bo3g== 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=R3opLtT7j5zLdn8E8zB9etfnOy795SXBoDonZ0o/ATU=; b=pZl0V5dYKe1+SUvxbUmBDq4HPvTba9JcqILbsnku0gb8TPczqnOcy9lvQEPlv36CEl Cck2bYNO5Y5cKVdeDvOtOv/JtWhfMW19AIXn3JbJcdOXBit0ZWf27Fmf/u90oih+ET/k MFCyRUSL0SFRBMBd1dB2Qc+nfwHltQZjbV4DFNH4rz/Zzf/nQUjayo+TNiDukkPyLaNd 7GrR1MM7ZLmbj60InZRAQg1yA7md2NOK9ofY96uQ/WRaA4mDEJZF+y/g58kK9tq3Z2vt NYIC9gqilGU8faZKRrqZDwTo7KH9Vwt+1Z5sX6oi5dvzgAQpLfwa29xGPEUS98SGNLyZ wVlw== X-Gm-Message-State: AJIora9pHU6e0xAj6dLKrQOL93/FP/O2jWRNtuYTT0cA0qeAXNTeqoMT ZagYFdCoPEmUAm3V+c2WeMQz9Dj1TirI1BDr48t7gg== X-Google-Smtp-Source: AGRyM1ulS60iwec0TcQ/3GD/WoQK0T7wvySLS/DF5i5m0IAD2iLVQhEhURi8GmkP9I8stBkj8tbulmrOhjZkqP73dH4= X-Received: by 2002:a05:6402:22a1:b0:437:78c2:d02b with SMTP id cx1-20020a05640222a100b0043778c2d02bmr5897290edb.64.1656236319486; Sun, 26 Jun 2022 02:38:39 -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:235315 Archived-At: --0000000000007d268b05e256918f Content-Type: multipart/alternative; boundary="0000000000007d268a05e256918d" --0000000000007d268a05e256918d Content-Type: text/plain; charset="UTF-8" I *think* I've fixed this, but it's complicated. Also I could be completely wrong. For what it's worth, I can reproduce the bug without the patch and cannot with the patch, which see attached. `electric-pair--with-uncached-syntax` hides `syntax-propertize-function`, and `mhtml-mode` uses `syntax-propertize-function`. AFAIU, let-binding `syntax-propertize-function` may or may not clear the cached syntax applied by said function, leading to the current heisenbug. If this sounds sensible, then a slightly different patch is needed, because `electric-pair--with-uncached-syntax` is used in some contexts where hiding `syntax-propertize-function` is the correct behavior. See second attached patch for an attempt at this approach. +Noam Postavsky since they added `electric-pair--with-uncached-syntax` On Sun, Jun 26, 2022 at 1:41 AM Allen Li wrote: > On Thu, Dec 9, 2021 at 2:31 AM Allen Li wrote: > >> I have bisected this regression >> to 7fff418edf56244a1fcf54718523aa9b5cb3a854 >> >> I will cc Stefan on the miniscule chance he still remembers anything >> about this and can save me time. >> Otherwise, I will see if I can pinpoint the regression (or if I messed up >> the bisect). >> > > Posting an update (or non-update) on this. This regression did seem to be > introduced by 7fff418edf56244a1fcf54718523aa9b5cb3a854, however I'm pretty > sure there's nothing wrong with the commit itself, it's just that jiggling > the code around made this regression reliably occur. > > >> >> Author: Stefan Monnier >> Date: Fri Nov 29 11:51:48 2019 -0500 >> * lisp/textmodes/mhtml-mode.el: Fix bug#38372 >> >> The `sgml-syntax-propertize-rules` rely on the >> `sgml--syntax-propertize-ppss` >> setup by `sgml-syntax-propertize` so it is not correct/safe to use >> them directly like html used to do. >> >> Change `sgml-syntax-propertize` so it can be used by mhtml, >> and then adjust mhtml-mode accordingly. >> >> * lisp/textmodes/mhtml-mode.el: Remove redundant `eval-and-compile`. >> Only require cl-lib at compile-time. >> (mhtml--syntax-propertize): New const, extracted from >> mhtml-syntax-propertize. >> (mhtml-syntax-propertize): Use `sgml-syntax-propertize`. >> >> * lisp/textmodes/sgml-mode.el (sgml--syntax-propertize): New const, >> extracted from sgml-syntax-propertize. >> (sgml-syntax-propertize): Add optional `rules-function` arg. >> lisp/textmodes/mhtml-mode.el | 44 >> ++++++++++++++++++++------------------------ >> lisp/textmodes/sgml-mode.el | 13 ++++++++----- >> 2 files changed, 28 insertions(+), 29 deletions(-) >> >> On Sun, Aug 1, 2021 at 10:41 AM Lars Ingebrigtsen wrote: >> >>> Allen Li writes: >>> >>> > Thus, I resorted to actually trying to understand the code. >>> >>> Darn, I hate it when that happens. >>> >>> > I've tracked down the bug to unexpected behavior from the `scan-sexps` >>> > call in this part of `electric-pair--balance-info`: >>> >>> I can reproduce exactly what you're seeing -- when edebugging, the >>> problem goes away, etc. >>> >>> I put a >>> >>> (redisplay t) >>> >>> into the function, and that also made the problem go away, but that's as >>> far as I've gotten so far. So the problem does indeed seem to be >>> something related to a cache/table somewhere not having been updated... >>> >>> -- >>> (domestic pets only, the antidote for overdose, milk.) >>> bloggy blog: http://lars.ingebrigtsen.no >>> >> --0000000000007d268a05e256918d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I *think* I've fixed this, but it's complicat= ed.=C2=A0 Also I could be completely wrong.=C2=A0 For what it's worth, = I can reproduce the bug without the patch and cannot with the patch, which = see attached.

`electric-pair--with-uncached-syntax= ` hides `syntax-propertize-function`, and `mhtml-mode` uses `syntax-propert= ize-function`. AFAIU, let-binding=C2=A0 `syntax-propertize-function` may or= may not clear the cached syntax applied by said function, leading to the c= urrent heisenbug.

If this sounds sensible, then a = slightly different patch is needed, because `electric-pair--with-uncached-s= yntax` is used in some contexts where hiding `syntax-propertize-function` i= s the correct behavior.

See second attached patch = for an attempt at this approach.

+Noam Postavsky=C2=A0since they added `electric-pair--with-u= ncached-syntax`

On Sun, Jun 26, 2022 at 1:41 AM Allen Li <darkfeline@= felesatra.moe> wrote:
On Thu, Dec 9, 2021 at 2:31 AM= Allen Li <darkfeline@felesatra.moe> wrote:
I have bisected this regression to=C2=A07fff418edf56244a1fcf5471852= 3aa9b5cb3a854

I will cc Stefan on the miniscule ch= ance he still remembers anything about this and can save me time.
Otherwise, I will see if I can pinpoint the regression (or if I messed up = the bisect).

Posting an update = (or non-update) on this.=C2=A0 This regression did seem to be introduced by= 7fff418edf56244a1fcf54718523aa9b5cb3a854, however I'm pretty sure ther= e's nothing wrong with the commit itself, it's just that jiggling t= he code around made this regression reliably occur.
=C2=A0
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">

=
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date: =C2=A0 F= ri Nov 29 11:51:48 2019 -0500
=C2=A0 =C2=A0 * lisp/textmodes/mhtml-mode.= el: Fix bug#38372
=C2=A0 =C2=A0
=C2=A0 =C2=A0 The `sgml-syntax-prope= rtize-rules` rely on the `sgml--syntax-propertize-ppss`
=C2=A0 =C2=A0 se= tup by `sgml-syntax-propertize` so it is not correct/safe to use
=C2=A0 = =C2=A0 them directly like html used to do.
=C2=A0 =C2=A0
=C2=A0 =C2= =A0 Change `sgml-syntax-propertize` so it can be used by mhtml,
=C2=A0 = =C2=A0 and then adjust mhtml-mode accordingly.
=C2=A0 =C2=A0
=C2=A0 = =C2=A0 * lisp/textmodes/mhtml-mode.el: Remove redundant `eval-and-compile`.=
=C2=A0 =C2=A0 Only require cl-lib at compile-time.
=C2=A0 =C2=A0 (mh= tml--syntax-propertize): New const, extracted from mhtml-syntax-propertize.=
=C2=A0 =C2=A0 (mhtml-syntax-propertize): Use `sgml-syntax-propertize`.<= br>=C2=A0 =C2=A0
=C2=A0 =C2=A0 * lisp/textmodes/sgml-mode.el (sgml--syn= tax-propertize): New const,
=C2=A0 =C2=A0 extracted from sgml-syntax-pro= pertize.
=C2=A0 =C2=A0 (sgml-syntax-propertize): Add optional `rules-fun= ction` arg.
=C2=A0lisp/textmodes/mhtml-mode.el | 44 ++++++++++++++++++++= ------------------------
=C2=A0lisp/textmodes/sgml-mode.el =C2=A0| 13 ++= ++++++-----
=C2=A02 files changed, 28 insertions(+), 29 deletions(-)
=

= On Sun, Aug 1, 2021 at 10:41 AM Lars Ingebrigtsen <larsi@gnus.org> wrote:
Allen Li <darkfeline@felesa= tra.moe> writes:

> Thus, I resorted to actually trying to understand the code.

Darn, I hate it when that happens.

> I've tracked down the bug to unexpected behavior from the `scan-se= xps`
> call in this part of `electric-pair--balance-info`:

I can reproduce exactly what you're seeing -- when edebugging, the
problem goes away, etc.

I put a

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (redisplay t)

into the function, and that also made the problem go away, but that's a= s
far as I've gotten so far.=C2=A0 So the problem does indeed seem to be<= br> something related to a cache/table somewhere not having been updated...

--
(domestic pets only, the antidote for overdose, milk.)
=C2=A0 =C2=A0bloggy blog: http://lars.ingebrigtsen.no
--0000000000007d268a05e256918d-- --0000000000007d268b05e256918f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-regression.patch" Content-Disposition: attachment; filename="0001-Fix-regression.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4v37b1j0 RnJvbSA1ZGQ0MmMxMDhiNDkwOTc2MjRjMTYzN2E1NjJlODM5NTM3NTJiMGNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGxlbiBMaSA8ZGFya2ZlbGluZUBmZWxlc2F0cmEubW9lPgpE YXRlOiBTdW4sIDI2IEp1biAyMDIyIDAxOjQ3OjE5IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gRml4 IHJlZ3Jlc3Npb24KCi0tLQogbGlzcC9lbGVjLXBhaXIuZWwgfCAzICstLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZWxl Yy1wYWlyLmVsIGIvbGlzcC9lbGVjLXBhaXIuZWwKaW5kZXggOTY0ZDIxZjExYy4uYjk0ZWFiMDY2 ZiAxMDA2NDQKLS0tIGEvbGlzcC9lbGVjLXBhaXIuZWwKKysrIGIvbGlzcC9lbGVjLXBhaXIuZWwK QEAgLTI0Niw4ICsyNDYsNyBAQCBlbGVjdHJpYy1wYWlyLS13aXRoLXVuY2FjaGVkLXN5bnRheAog Y2FjaGUgaXMgZmx1c2hlZCBmcm9tIHBvc2l0aW9uIFNUQVJULCBkZWZhdWx0aW5nIHRvIHBvaW50 LiIKICAgKGRlY2xhcmUgKGRlYnVnICgoZm9ybSAmb3B0aW9uYWwgZm9ybSkgYm9keSkpIChpbmRl bnQgMSkpCiAgIChsZXQgKChzdGFydC12YXIgKG1ha2Utc3ltYm9sICJzdGFydCIpKSkKLSAgICBg KGxldCAoKHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uICMnaWdub3JlKQotICAgICAgICAgICAo LHN0YXJ0LXZhciAsKG9yIHN0YXJ0ICcocG9pbnQpKSkpCisgICAgYChsZXQgKCgsc3RhcnQtdmFy ICwob3Igc3RhcnQgJyhwb2ludCkpKSkKICAgICAgICAodW53aW5kLXByb3RlY3QKICAgICAgICAg ICAgKHdpdGgtc3ludGF4LXRhYmxlICx0YWJsZQogICAgICAgICAgICAgICxAYm9keSkKLS0gCjIu MzYuMQoK --0000000000007d268b05e256918f 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_l4v4720s1 RnJvbSA5NWMyMDkxOWJiNjlkNDZlNmY0NGE5ZTMzMGM3OGU2ZjFkNGE2YThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGxlbiBMaSA8ZGFya2ZlbGluZUBmZWxlc2F0cmEubW9lPgpE YXRlOiBTdW4sIDI2IEp1biAyMDIyIDAyOjMyOjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gZWxl Yy1wYWlyOiBGaXggYnVnIGluY29ycmVjdGx5IGhpZGluZwogc3ludGF4LXByb3BlcnRpemUtZnVu Y3Rpb24KCk5vdGFibHksIHRoaXMgY2F1c2VzIGVsZWN0cmljLXBhaXItbW9kZSB0byBvZnRlbiBt aXNiZWhhdmUgaW4gSFRNTApmaWxlcyB3aGVuIHBhaXJpbmcgYW5nbGUgYnJhY2tldHMuCi0tLQog bGlzcC9lbGVjLXBhaXIuZWwgfCAyMiArKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNw L2VsZWMtcGFpci5lbCBiL2xpc3AvZWxlYy1wYWlyLmVsCmluZGV4IDk2NGQyMWYxMWMuLjkxNWE2 ZDYzMzMgMTAwNjQ0Ci0tLSBhL2xpc3AvZWxlYy1wYWlyLmVsCisrKyBiL2xpc3AvZWxlYy1wYWly LmVsCkBAIC0yMzcsMTYgKzIzNywyMSBAQCBlbGVjdHJpYy1wYWlyLS1pbnNlcnQKICAgICAgICAg KGVsZWN0cmljLWxheW91dC1hbGxvdy1kdXBsaWNhdGUtbmV3bGluZXMgdCkpCiAgICAgKHNlbGYt aW5zZXJ0LWNvbW1hbmQgMSkpKQogCi0oY2wtZGVmbWFjcm8gZWxlY3RyaWMtcGFpci0td2l0aC11 bmNhY2hlZC1zeW50YXggKCh0YWJsZSAmb3B0aW9uYWwgc3RhcnQpICZyZXN0IGJvZHkpCisoY2wt ZGVmbWFjcm8gZWxlY3RyaWMtcGFpci0td2l0aC11bmNhY2hlZC1zeW50YXggKCh0YWJsZSAmb3B0 aW9uYWwgc3RhcnQgZnVuYykgJnJlc3QgYm9keSkKICAgIkxpa2UgYHdpdGgtc3ludGF4LXRhYmxl JywgYnV0IGZsdXNoIHRoZSBgc3ludGF4LXBwc3MnIGNhY2hlIGFmdGVyd2FyZHMuCiBVc2UgdGhp cyBpbnN0ZWFkIG9mICh3aXRoLXN5bnRheC10YWJsZSBUQUJMRSBCT0RZKSB3aGVuIEJPRFkKIGNv bnRhaW5zIGNvZGUgd2hpY2ggbWF5IHVwZGF0ZSB0aGUgYHN5bnRheC1wcHNzJyBjYWNoZS4gIFRo aXMKIGluY2x1ZGVzIGNhbGxpbmcgYHBhcnNlLXBhcnRpYWwtc2V4cCcgYW5kIGFueSBzZXhwLWJh c2VkIG1vdmVtZW50CiBmdW5jdGlvbnMgd2hlbiBgcGFyc2Utc2V4cC1sb29rdXAtcHJvcGVydGll cycgaXMgbm9uLW5pbC4gIFRoZQotY2FjaGUgaXMgZmx1c2hlZCBmcm9tIHBvc2l0aW9uIFNUQVJU LCBkZWZhdWx0aW5nIHRvIHBvaW50LiIKLSAgKGRlY2xhcmUgKGRlYnVnICgoZm9ybSAmb3B0aW9u YWwgZm9ybSkgYm9keSkpIChpbmRlbnQgMSkpCi0gIChsZXQgKChzdGFydC12YXIgKG1ha2Utc3lt Ym9sICJzdGFydCIpKSkKLSAgICBgKGxldCAoKHN5bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uICMn aWdub3JlKQorY2FjaGUgaXMgZmx1c2hlZCBmcm9tIHBvc2l0aW9uIFNUQVJULCBkZWZhdWx0aW5n IHRvIHBvaW50LgorRlVOQyBpcyBhbiBvcHRpb25hbCBmdW5jdGlvbiB0byBzZXQgdG8gYHN5bnRh eC1wcm9wZXJ0aXplLWZ1bmN0aW9uJy4iCisgIChkZWNsYXJlIChkZWJ1ZyAoKGZvcm0gJm9wdGlv bmFsIGZvcm0gZm9ybSkgYm9keSkpIChpbmRlbnQgMSkpCisgIChsZXQgKChzdGFydC12YXIgKG1h a2Utc3ltYm9sICJzdGFydCIpKQorICAgICAgICAoZnVuYy12YXIgKG1ha2Utc3ltYm9sICJmdW5j IikpKQorICAgIGAobGV0ICgoc3ludGF4LXByb3BlcnRpemUtZnVuY3Rpb24gKGxldCAoKCxmdW5j LXZhciAsZnVuYykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp ZiAsZnVuYy12YXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICxmdW5jLXZhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5 bnRheC1wcm9wZXJ0aXplLWZ1bmN0aW9uKSkpCiAgICAgICAgICAgICgsc3RhcnQtdmFyICwob3Ig c3RhcnQgJyhwb2ludCkpKSkKICAgICAgICAodW53aW5kLXByb3RlY3QKICAgICAgICAgICAgKHdp dGgtc3ludGF4LXRhYmxlICx0YWJsZQpAQCAtMjcyLDcgKzI3Nyw3IEBAIGVsZWN0cmljLXBhaXIt LXN5bnRheC1wcHNzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpKQog ICAgIChpZiBzLW9yLWMtc3RhcnQKICAgICAgICAgKGVsZWN0cmljLXBhaXItLXdpdGgtdW5jYWNo ZWQtc3ludGF4IChlbGVjdHJpYy1wYWlyLXRleHQtc3ludGF4LXRhYmxlCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy1vci1jLXN0YXJ0KQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtb3ItYy1zdGFydCAjJ2lnbm9y ZSkKICAgICAgICAgICAocGFyc2UtcGFydGlhbC1zZXhwIHMtb3ItYy1zdGFydCBwb3MpKQogICAg ICAgOzsgSEFDSyEgY2MtbW9kZSBhcHBhcmVudGx5IGhhcyBzb21lIGBzeW50YXgtcHBzcycgYnVn cwogICAgICAgKGlmIChtZW1xIG1ham9yLW1vZGUgJyhjLW1vZGUgYysrIG1vZGUpKQpAQCAtMzI2 LDcgKzMzMSw3IEBAIGVsZWN0cmljLXBhaXItLWJhbGFuY2UtaW5mbwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGVxIChjaGFyLWFmdGVyIHBvcykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChlbGVjdHJpYy1wYWlyLS13aXRoLXVuY2FjaGVkLXN5bnRheAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YWJsZSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFibGUgKHBvaW50KSAoaWYg c3RyaW5nLW9yLWNvbW1lbnQgIydpZ25vcmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobWF0Y2hpbmctcGFyZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChjaGFyLWJlZm9yZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzY2FuLXNleHBzIChwb2ludCkgMSkpKSkpCkBAIC0zNTYsNyArMzYx LDggQEAgZWxlY3RyaWMtcGFpci0tYmFsYW5jZS1pbmZvCiAgICAgKHNhdmUtZXhjdXJzaW9uCiAg ICAgICAod2hpbGUgKG5vdCBvdXRlcm1vc3QpCiAgICAgICAgIChjb25kaXRpb24tY2FzZSBlcnIK LSAgICAgICAgICAgIChlbGVjdHJpYy1wYWlyLS13aXRoLXVuY2FjaGVkLXN5bnRheCAodGFibGUp CisgICAgICAgICAgICAoZWxlY3RyaWMtcGFpci0td2l0aC11bmNhY2hlZC1zeW50YXgKKyAgICAg ICAgICAgICAgICAodGFibGUgKHBvaW50KSAoaWYgc3RyaW5nLW9yLWNvbW1lbnQgIydpZ25vcmUp KQogICAgICAgICAgICAgICAoc2Nhbi1zZXhwcyAocG9pbnQpIChpZiAoPiBkaXJlY3Rpb24gMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50LW1heCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtIChwb2ludC1tYXgpKSkpCi0tIAoyLjM2 LjEKCg== --0000000000007d268b05e256918f--