From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ackerley Tng Newsgroups: gmane.emacs.bugs Subject: bug#59381: Should xref--marker-ring be per-window? Date: Mon, 21 Nov 2022 18:46:07 -0800 Message-ID: References: <86leo6ai85.fsf@mail.linkov.net> <83leo67mbt.fsf@gnu.org> <83v8na5a5e.fsf@gnu.org> <838rk44fgg.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000031d27705ee062de0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37591"; mail-complaints-to="usenet@ciao.gmane.io" Cc: juri@linkov.net, 59381@debbugs.gnu.org, Dmitry Gutov To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Nov 22 03:47:21 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 1oxJJg-0009Xc-L7 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 22 Nov 2022 03:47:20 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oxJJS-0002Fd-Ot; Mon, 21 Nov 2022 21:47:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oxJJO-0002Eb-Ju for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 21:47:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oxJJO-0006hB-8c for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 21:47:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oxJJN-0000WO-R8 for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 21:47:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Ackerley Tng Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 22 Nov 2022 02:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59381 X-GNU-PR-Package: emacs Original-Received: via spool by 59381-submit@debbugs.gnu.org id=B59381.16690851871963 (code B ref 59381); Tue, 22 Nov 2022 02:47:01 +0000 Original-Received: (at 59381) by debbugs.gnu.org; 22 Nov 2022 02:46:27 +0000 Original-Received: from localhost ([127.0.0.1]:49284 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxJIo-0000Va-Nr for submit@debbugs.gnu.org; Mon, 21 Nov 2022 21:46:27 -0500 Original-Received: from mail-vs1-f54.google.com ([209.85.217.54]:34409) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxJIm-0000VM-MT for 59381@debbugs.gnu.org; Mon, 21 Nov 2022 21:46:25 -0500 Original-Received: by mail-vs1-f54.google.com with SMTP id i2so13195814vsc.1 for <59381@debbugs.gnu.org>; Mon, 21 Nov 2022 18:46:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ORn9uDLR7+9eHdpbd2gERLcRKO0qvHSdV/iuW0GYEEE=; b=MJpD12x3bhPWDn3EflJiuaDME/+Gf8Tf6DHpvSNnr7THwv0beCECzn/z5F1+2fso05 5B4HatNtIo7lGU85j2bb5xbNcp/Twv0uOgIlkFbD0Qs3tRHhEIlb2h7ZptO2tCNwUNK9 nhqs+iBlX2fAmf4E3q2hvXuM7U2ZISwD6SIWNXBh6fqkvXFO6gUCMDoKUa/AlG7f7xPB NBw9GqCa6e4jFKzuKjW/izCXQ6Of2FCG2uUdaNaxb728yvYbGV+eHyEGM2zTYXVGbC3/ vB+YsyJlLKACHCVlPc0SWu7JyhSm1Px/osMzeudp1K/YUligcciQ1mtnnTEPyF3QrERi +CLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ORn9uDLR7+9eHdpbd2gERLcRKO0qvHSdV/iuW0GYEEE=; b=shhxQnTXzR9gRSwleEbc7u0GNyovM3D6m7IXXqbJdawFvp9QLETW1tjF5EBet7m1dm QMy+ybbmVrUlUsQ+t/f3BBh23gVf656a28GjcVQlxNmkjBLzvOBqk/+Ne0E2atAM44Ly FAeUz4IhzXbHbclg/eg4L9CqC/ThqPEP0Q85yUfXY0LDbB4GYKKa7Y49UD7WnnwVhm+f 7Q2b7io7PoIwT6VUCeDbQZmagNil4dYPaTE02oOLgkw41PhmSynHcRQIQUkw13gOvL1P 2VV6s8O6zYclGLsY7ZfwDMHFE13tNX0tjC8RbmkdBTWxOmUhpz+06VfovQZGhL+JrteP 1Ieg== X-Gm-Message-State: ANoB5pmIlHAn/YK67BuBt+Gv5dOJv0K75Klc0LeMnfmeQcm97wb4C22F V/NsxZ4MLZ4S/ChVNnWkefEBJBL49LRafx3LAZY= X-Google-Smtp-Source: AA0mqf58zvIauQ+EiMTOgMbAkIIbCg6OVl8ZJTUpupDUZlQ9lUFRYm/f1D1xOAJ62vghpH96C1/17ZUv8SusE9pg57g= X-Received: by 2002:a67:fd09:0:b0:3af:ce07:c3d4 with SMTP id f9-20020a67fd09000000b003afce07c3d4mr2903138vsr.25.1669085178994; Mon, 21 Nov 2022 18:46:18 -0800 (PST) In-Reply-To: <838rk44fgg.fsf@gnu.org> 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:248597 Archived-At: --00000000000031d27705ee062de0 Content-Type: text/plain; charset="UTF-8" Here's a patch for review! I made 'window-local the default storage so that we would hopefully get more feedback, do let me know if I should leave the default as 'global. On Mon, Nov 21, 2022 at 5:14 AM Eli Zaretskii wrote: > > > Date: Mon, 21 Nov 2022 01:17:02 +0200 > > Cc: 59381@debbugs.gnu.org, ackerleytng@gmail.com, juri@linkov.net > > From: Dmitry Gutov > > > > On 20.11.2022 09:59, Eli Zaretskii wrote: > > > > >> But maybe it will be helpful for you to elaborate: what the workflow > > >> would look like. Would it be a parallel set of commands, or simply a > > >> command to... do what? > > > > > > I just did that, above: add a command that starts a new "stack". All the > > > rest is unchanged. > > > > What would happen with the current stack, though? > > It's discarded, as no longer needed. > > > Or does it apply to the current window? What about the windows split > > from it? What about older windows we decide to pop-to-buffer to from one > > of the new windows? > > In my mental picture, the stack is not specific to a window, like it is > today. > > > >> In my workflow, a new stack is more or less created implicitly by > > >> splitting a window, and discarded by deleting one. > > > > > > So you always ever have a given buffer displayed in a single window? > > > > Not necessarily, no. If it's a big file, I can have two parallel > > "investigations" going on in two different window on it. Using two > > different navigation stacks. That's a feature. > > It's a feature if you indeed want a separate stack in each window. What if > you want the same stack in all of those windows? > > > Whether M-. pop a new window, or you use project-find-regexp, we usually > > make sure that after you navigate to a location, it's displayed in the > > same window the search was made in. Unless the user called something > > like xref-find-definitions-other-window, naturally. > > > > So it's generally possible to stay within the same window most of the time. > > Not if I split that one window because I want to look at something else as > well. > > > And you make good points: Emacs often makes you go from a window to a > > window, reusing older windows as well. So I'm not sure how to solve that > > better: searching the window hierarchy won't help. > > > > So it could be some propagation mechanism working when windows are split > > or buffers get displayed, which would nevertheless leave a window when > > the user pressed 'q', for instance. Reverting the window to its previous > > stack, let's say. And as for separate command, using it explicitly by > > itself is easy to forget, but it perhaps could be added to some other > > commands by the user (via before-advice or etc), to mark the beginning > > of each stack. > > > > This is a very rough idea. There's nobody to work on it in the near > > future, I'm afraid, so adding an optional change in behavior to use > > window-local storage is probably the best way forward. To get feedback, > > as Ackerley said. > > When this becomes practical, we could try it and see if enough people like > it. --00000000000031d27705ee062de0 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-support-for-window-local-xref-history.patch" Content-Disposition: attachment; filename="0001-Add-support-for-window-local-xref-history.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_larm7npr0 RnJvbSAzMjk3YTBmZjAxNjM5NGRiYjc3NWNhZWIxOTRkMTVjNzU0YTIzOGRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBY2tlcmxleSBUbmcgPGFja2VybGV5dG5nQGdvb2dsZS5jb20+ CkRhdGU6IE1vbiwgMjEgTm92IDIwMjIgMTg6Mzg6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIXSBB ZGQgc3VwcG9ydCBmb3Igd2luZG93LWxvY2FsIHhyZWYgaGlzdG9yeQoKLS0tCiBsaXNwL3Byb2dt b2Rlcy94cmVmLmVsIHwgMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMveHJlZi5lbCBiL2xpc3AvcHJvZ21vZGVzL3hyZWYu ZWwKaW5kZXggODlhMDkwYWU5My4uMTIyYmY1NTU0MSAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9k ZXMveHJlZi5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy94cmVmLmVsCkBAIC00MjcsMzIgKzQyNyw3 MSBAQCB4cmVmLWF1dG8tanVtcC10by1maXJzdC14cmVmCiAgIDp2ZXJzaW9uICIyOC4xIgogICA6 cGFja2FnZS12ZXJzaW9uICcoeHJlZiAuICIxLjIuMCIpKQogCisoZGVmY3VzdG9tIHhyZWYtc3Rv cmFnZS10eXBlICd3aW5kb3ctbG9jYWwKKyAgIkhvdyB4cmVmIGhpc3RvcnkgaXMgc3RvcmVkLgor CitCZWZvcmUgRW1hY3MgMjkuMSwgeHJlZiBoaXN0b3J5IGlzIHN0b3JlZCBhdCB0aGUgZ2xvYmFs IGxldmVsLCBzbwordGhlIHNhbWUgaGlzdG9yeSBpcyB1c2VkIGFjcm9zcyB0aGUgZW50aXJlIEVt YWNzIGluc3RhbmNlLgorCitJbiBFbWFjcyAyOS4xIHRoZSBuZXcgZGVmYXVsdCBpcyB0byBoYXZl IG9uZSB4cmVmIGhpc3RvcnkgcGVyCit3aW5kb3csIHdoaWNoIGFsbG93cyB5b3UgdG8gbmF2aWdh dGUgY29kZSBpbmRlcGVuZGVudGx5IGluCitkaWZmZXJlbnQgd2luZG93cy4KKworQSBuZXcgeHJl ZiBoaXN0b3J5IGlzIGNyZWF0ZWQgZm9yIGV2ZXJ5IG5ldyB3aW5kb3cuIgorICA6dHlwZSAnKGNo b2ljZQorICAgICAgICAgIChjb25zdCA6dGFnICJQZXItd2luZG93IiB3aW5kb3ctbG9jYWwpCisg ICAgICAgICAgKGNvbnN0IDp0YWcgIkdsb2JhbCBoaXN0b3J5IGZvciBFbWFjcyBpbnN0YW5jZSIg Z2xvYmFsKSkKKyAgOnZlcnNpb24gIjI5LjEiCisgIDpwYWNrYWdlLXZlcnNpb24gJyh4cmVmIC4g IjEuNS4xIikpCisKIChtYWtlLW9ic29sZXRlLXZhcmlhYmxlICd4cmVmLS1tYXJrZXItcmluZyAn eHJlZi0taGlzdG9yeSAiMjkuMSIpCiAKIChkZWZ1biB4cmVmLXNldC1tYXJrZXItcmluZy1sZW5n dGggKF92YXIgX3ZhbCkKICAgKGRlY2xhcmUgKG9ic29sZXRlIG5pbCAiMjkuMSIpKQogICBuaWwp CiAKLShkZWZ2YXIgeHJlZi0taGlzdG9yeSAoY29ucyBuaWwgbmlsKQorKGRlZnVuIHhyZWYtLW1h a2UteHJlZi1oaXN0b3J5ICgpCisgICJSZXR1cm4gYSBuZXcgeHJlZiBoaXN0b3J5LiIKKyAgKGNv bnMgbmlsIG5pbCkpCisKKyhkZWZ2YXIgeHJlZi0taGlzdG9yeSAoeHJlZi0tbWFrZS14cmVmLWhp c3RvcnkpCiAgICIoQkFDS1dBUkQtU1RBQ0sgLiBGT1JXQVJELVNUQUNLKSBvZiBtYXJrZXJzIHRv IHZpc2l0ZWQgWHJlZiBsb2NhdGlvbnMuIikKIAorKGRlZnVuIHhyZWYtLWdldC1vci1jcmVhdGUt d2luZG93LXhyZWYtaGlzdG9yeSAoKQorICAiUmV0dXJuIHRoZSB4cmVmIGhpc3RvcnkgZm9yIHRo ZSBzZWxlY3RlZCB3aW5kb3cuCisKK0NyZWF0ZSBhbiB4cmVmIGhpc3RvcnkgYW5kIHJldHVybiBp dCBpZiBpdCBkaWQgbm90IGFscmVhZHkgZXhpc3QuIgorICAobGV0ICgodyAoc2VsZWN0ZWQtd2lu ZG93KSkpCisgICAgKGlmLWxldCAoKHIgKHdpbmRvdy1wYXJhbWV0ZXIgdyAneHJlZi0td2luZG93 LXhyZWYtaGlzdG9yeSkpKSByCisgICAgICAobGV0ICgoaCAoeHJlZi0tbWFrZS14cmVmLWhpc3Rv cnkpKSkKKyAgICAgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyIHcgJ3hyZWYtLXdpbmRvdy14cmVm LWhpc3RvcnkgaCkpKSkpCisKKyhkZWZ1biB4cmVmLS1nZXQtaGlzdG9yeSAoKQorICAiUmV0dXJu IHhyZWYgaGlzdG9yeSBiYXNlZCBvbiBgeHJlZi1zdG9yYWdlLXR5cGUnLiIKKyAgKGNsLWNhc2Ug eHJlZi1zdG9yYWdlLXR5cGUKKyAgICAod2luZG93LWxvY2FsICh4cmVmLS1nZXQtb3ItY3JlYXRl LXdpbmRvdy14cmVmLWhpc3RvcnkpKQorICAgIChnbG9iYWwgeHJlZi0taGlzdG9yeSkpKQorCiAo ZGVmdW4geHJlZi0tcHVzaC1iYWNrd2FyZCAobSkKICAgIlB1c2ggbWFya2VyIE0gb250byB0aGUg YmFja3dhcmQgaGlzdG9yeSBzdGFjay4iCi0gICh1bmxlc3MgKGVxdWFsIG0gKGNhYXIgeHJlZi0t aGlzdG9yeSkpCi0gICAgKHB1c2ggbSAoY2FyIHhyZWYtLWhpc3RvcnkpKSkpCisgIChsZXQgKCho aXN0b3J5ICh4cmVmLS1nZXQtaGlzdG9yeSkpKQorICAgICh1bmxlc3MgKGVxdWFsIG0gKGNhYXIg aGlzdG9yeSkpCisgICAgICAocHVzaCBtIChjYXIgaGlzdG9yeSkpKSkpCiAKIChkZWZ1biB4cmVm LS1wdXNoLWZvcndhcmQgKG0pCiAgICJQdXNoIG1hcmtlciBNIG9udG8gdGhlIGZvcndhcmQgaGlz dG9yeSBzdGFjay4iCi0gICh1bmxlc3MgKGVxdWFsIG0gKGNhZHIgeHJlZi0taGlzdG9yeSkpCi0g ICAgKHB1c2ggbSAoY2RyIHhyZWYtLWhpc3RvcnkpKSkpCisgIChsZXQgKChoaXN0b3J5ICh4cmVm LS1nZXQtaGlzdG9yeSkpKQorICAgICh1bmxlc3MgKGVxdWFsIG0gKGNhZHIgaGlzdG9yeSkpCisg ICAgICAocHVzaCBtIChjZHIgaGlzdG9yeSkpKSkpCiAKIChkZWZ1biB4cmVmLXB1c2gtbWFya2Vy LXN0YWNrICgmb3B0aW9uYWwgbSkKICAgIkFkZCBwb2ludCBNIChkZWZhdWx0cyB0byBgcG9pbnQt bWFya2VyJykgdG8gdGhlIG1hcmtlciBzdGFjay4KIFRoZSBmdXR1cmUgc3RhY2sgaXMgZXJhc2Vk LiIKICAgKHhyZWYtLXB1c2gtYmFja3dhcmQgKG9yIG0gKHBvaW50LW1hcmtlcikpKQotICAoZG9s aXN0IChtayAoY2RyIHhyZWYtLWhpc3RvcnkpKQotICAgIChzZXQtbWFya2VyIG1rIG5pbCBuaWwp KQotICAoc2V0Y2RyIHhyZWYtLWhpc3RvcnkgbmlsKSkKKyAgKGxldCAoKGhpc3RvcnkgKHhyZWYt LWdldC1oaXN0b3J5KSkpCisgICAgKGRvbGlzdCAobWsgKGNkciBoaXN0b3J5KSkKKyAgICAgIChz ZXQtbWFya2VyIG1rIG5pbCBuaWwpKQorICAgIChzZXRjZHIgaGlzdG9yeSBuaWwpKSkKIAogOzs7 IyMjYXV0b2xvYWQKIChkZWZpbmUtb2Jzb2xldGUtZnVuY3Rpb24tYWxpYXMgJ3hyZWYtcG9wLW1h cmtlci1zdGFjayAjJ3hyZWYtZ28tYmFjayAiMjkuMSIpCkBAIC00NjIsMjkgKzUwMSwzMSBAQCB4 cmVmLWdvLWJhY2sKICAgIkdvIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBvc2l0aW9uIGluIHhyZWYg aGlzdG9yeS4KIFRvIHVuZG8sIHVzZSBcXFt4cmVmLWdvLWZvcndhcmRdLiIKICAgKGludGVyYWN0 aXZlKQotICAoaWYgKG51bGwgKGNhciB4cmVmLS1oaXN0b3J5KSkKLSAgICAgICh1c2VyLWVycm9y ICJBdCBzdGFydCBvZiB4cmVmIGhpc3RvcnkiKQotICAgIChsZXQgKChtYXJrZXIgKHBvcCAoY2Fy IHhyZWYtLWhpc3RvcnkpKSkpCi0gICAgICAoeHJlZi0tcHVzaC1mb3J3YXJkIChwb2ludC1tYXJr ZXIpKQotICAgICAgKHN3aXRjaC10by1idWZmZXIgKG9yIChtYXJrZXItYnVmZmVyIG1hcmtlcikK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXNlci1lcnJvciAiVGhlIG1hcmtlZCBidWZm ZXIgaGFzIGJlZW4gZGVsZXRlZCIpKSkKLSAgICAgIChnb3RvLWNoYXIgKG1hcmtlci1wb3NpdGlv biBtYXJrZXIpKQotICAgICAgKHNldC1tYXJrZXIgbWFya2VyIG5pbCBuaWwpCi0gICAgICAocnVu LWhvb2tzICd4cmVmLWFmdGVyLXJldHVybi1ob29rKSkpKQorICAobGV0ICgoaGlzdG9yeSAoeHJl Zi0tZ2V0LWhpc3RvcnkpKSkKKyAgICAoaWYgKG51bGwgKGNhciBoaXN0b3J5KSkKKyAgICAgICAg KHVzZXItZXJyb3IgIkF0IHN0YXJ0IG9mIHhyZWYgaGlzdG9yeSIpCisgICAgICAobGV0ICgobWFy a2VyIChwb3AgKGNhciBoaXN0b3J5KSkpKQorICAgICAgICAoeHJlZi0tcHVzaC1mb3J3YXJkIChw b2ludC1tYXJrZXIpKQorICAgICAgICAoc3dpdGNoLXRvLWJ1ZmZlciAob3IgKG1hcmtlci1idWZm ZXIgbWFya2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVzZXItZXJyb3IgIlRo ZSBtYXJrZWQgYnVmZmVyIGhhcyBiZWVuIGRlbGV0ZWQiKSkpCisgICAgICAgIChnb3RvLWNoYXIg KG1hcmtlci1wb3NpdGlvbiBtYXJrZXIpKQorICAgICAgICAoc2V0LW1hcmtlciBtYXJrZXIgbmls IG5pbCkKKyAgICAgICAgKHJ1bi1ob29rcyAneHJlZi1hZnRlci1yZXR1cm4taG9vaykpKSkpCiAK IDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4geHJlZi1nby1mb3J3YXJkICgpCiAgICJHb3QgdG8gdGhl IHBvaW50IHdoZXJlIGEgcHJldmlvdXMgXFxbeHJlZi1nby1iYWNrXSB3YXMgaW52b2tlZC4iCiAg IChpbnRlcmFjdGl2ZSkKLSAgKGlmIChudWxsIChjZHIgeHJlZi0taGlzdG9yeSkpCi0gICAgICAo dXNlci1lcnJvciAiQXQgZW5kIG9mIHhyZWYgaGlzdG9yeSIpCi0gICAgKGxldCAoKG1hcmtlciAo cG9wIChjZHIgeHJlZi0taGlzdG9yeSkpKSkKLSAgICAgICh4cmVmLS1wdXNoLWJhY2t3YXJkIChw b2ludC1tYXJrZXIpKQotICAgICAgKHN3aXRjaC10by1idWZmZXIgKG9yIChtYXJrZXItYnVmZmVy IG1hcmtlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXNlci1lcnJvciAiVGhlIG1h cmtlZCBidWZmZXIgaGFzIGJlZW4gZGVsZXRlZCIpKSkKLSAgICAgIChnb3RvLWNoYXIgKG1hcmtl ci1wb3NpdGlvbiBtYXJrZXIpKQotICAgICAgKHNldC1tYXJrZXIgbWFya2VyIG5pbCBuaWwpCi0g ICAgICAocnVuLWhvb2tzICd4cmVmLWFmdGVyLXJldHVybi1ob29rKSkpKQorICAobGV0ICgoaGlz dG9yeSAoeHJlZi0tZ2V0LWhpc3RvcnkpKSkKKyAgICAoaWYgKG51bGwgKGNkciBoaXN0b3J5KSkK KyAgICAgICAgKHVzZXItZXJyb3IgIkF0IGVuZCBvZiB4cmVmIGhpc3RvcnkiKQorICAgICAgKGxl dCAoKG1hcmtlciAocG9wIChjZHIgaGlzdG9yeSkpKSkKKyAgICAgICAgKHhyZWYtLXB1c2gtYmFj a3dhcmQgKHBvaW50LW1hcmtlcikpCisgICAgICAgIChzd2l0Y2gtdG8tYnVmZmVyIChvciAobWFy a2VyLWJ1ZmZlciBtYXJrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXNlci1l cnJvciAiVGhlIG1hcmtlZCBidWZmZXIgaGFzIGJlZW4gZGVsZXRlZCIpKSkKKyAgICAgICAgKGdv dG8tY2hhciAobWFya2VyLXBvc2l0aW9uIG1hcmtlcikpCisgICAgICAgIChzZXQtbWFya2VyIG1h cmtlciBuaWwgbmlsKQorICAgICAgICAocnVuLWhvb2tzICd4cmVmLWFmdGVyLXJldHVybi1ob29r KSkpKSkKIAogKGRlZmluZS1vYnNvbGV0ZS12YXJpYWJsZS1hbGlhcwogICAneHJlZi0tY3VycmVu dC1pdGVtCkBAIC01MTAsMjIgKzU1MSwyMyBAQCB4cmVmLXB1bHNlLW1vbWVudGFyaWx5CiA7OyBl dGFncy5lbCBuZWVkcyB0aGlzCiAoZGVmdW4geHJlZi1jbGVhci1tYXJrZXItc3RhY2sgKCkKICAg IkRpc2NhcmQgYWxsIG1hcmtlcnMgZnJvbSB0aGUgeHJlZiBoaXN0b3J5LiIKLSAgKGRvbGlzdCAo bCAobGlzdCAoY2FyIHhyZWYtLWhpc3RvcnkpIChjZHIgeHJlZi0taGlzdG9yeSkpKQotICAgIChk b2xpc3QgKG0gbCkKLSAgICAgIChzZXQtbWFya2VyIG0gbmlsIG5pbCkpKQotICAoc2V0cSB4cmVm LS1oaXN0b3J5IChjb25zIG5pbCBuaWwpKQorICAobGV0ICgoaGlzdG9yeSAoeHJlZi0tZ2V0LWhp c3RvcnkpKSkKKyAgICAoZG9saXN0IChsIChsaXN0IChjYXIgaGlzdG9yeSkgKGNkciBoaXN0b3J5 KSkpCisgICAgICAoZG9saXN0IChtIGwpCisgICAgICAgIChzZXQtbWFya2VyIG0gbmlsIG5pbCkp KQorICAgIChzZXRxIGhpc3RvcnkgKGNvbnMgbmlsIG5pbCkpKQogICBuaWwpCiAKIDs7OyMjI2F1 dG9sb2FkCiAoZGVmdW4geHJlZi1tYXJrZXItc3RhY2stZW1wdHktcCAoKQogICAiV2hldGhlciB0 aGUgeHJlZiBiYWNrLWhpc3RvcnkgaXMgZW1wdHkuIgotICAobnVsbCAoY2FyIHhyZWYtLWhpc3Rv cnkpKSkKKyAgKG51bGwgKGNhciAoeHJlZi0tZ2V0LWhpc3RvcnkpKSkpCiA7OyBGSVhNRTogcmVu YW1lIHRoaXMgdG8gYHhyZWYtYmFjay1oaXN0b3J5LWVtcHR5LXAnLgogCiA7OzsjIyNhdXRvbG9h ZAogKGRlZnVuIHhyZWYtZm9yd2FyZC1oaXN0b3J5LWVtcHR5LXAgKCkKICAgIldoZXRoZXIgdGhl IHhyZWYgZm9yd2FyZC1oaXN0b3J5IGlzIGVtcHR5LiIKLSAgKG51bGwgKGNkciB4cmVmLS1oaXN0 b3J5KSkpCisgIChudWxsIChjZHIgKHhyZWYtLWdldC1oaXN0b3J5KSkpKQogDAogCiAoZGVmdW4g eHJlZi0tZ290by1jaGFyIChwb3MpCi0tIAoyLjM4LjEKCg== --00000000000031d27705ee062de0--