From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Nicolas_Despr=C3=A8s?= Newsgroups: gmane.emacs.devel Subject: Prefer to split along the longest edge Date: Sat, 14 Dec 2024 11:05:30 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000089c5700629381883" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14124"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 14 11:07:02 2024 Return-path: Envelope-to: ged-emacs-devel@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 1tMP37-0003Yv-Gm for ged-emacs-devel@m.gmane-mx.org; Sat, 14 Dec 2024 11:07:01 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tMP2U-0005Gj-BB; Sat, 14 Dec 2024 05:06:22 -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 1tMP2M-0004i2-Rh for emacs-devel@gnu.org; Sat, 14 Dec 2024 05:06:15 -0500 Original-Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tMP2H-0001VD-KQ for emacs-devel@gnu.org; Sat, 14 Dec 2024 05:06:13 -0500 Original-Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-385eed29d17so1317108f8f.0 for ; Sat, 14 Dec 2024 02:06:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734170767; x=1734775567; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=b7kSpVe75DgvMYelmmHH0u47rjqJfkoFTGAd2cGrnBw=; b=jP1jx/URT9+cXnJCoNJCmrMDAwQc9FJWWGEnCe+9FhBQPCcPZS/5r5vNN7YTpRTiaq 4HAvWrIxt+SUUv6+SDcq99JFti6/lCQ899FJ9IRayxi4aDH8uObwNCgnbOXQiXYXtBIU tDlvZ53uSflqBxYa2XpuahdrvmUsxHp5xYQe6XFqdjIsQsZd2ud6+cm06L2EZk2IcaWd ABJF04xdMVxS+aNCbB4/uysrpeUE9L+8wH53d8B+CMQyEOpNAZsxO3Tqot8LA0gWlJmr ww3KdoY+RArMCui4DZKDNewnqYTF3JDb0MqCXJvjKlnm/Fda0C2tn7VS7ACDllCC2GRc cc0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734170767; x=1734775567; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=b7kSpVe75DgvMYelmmHH0u47rjqJfkoFTGAd2cGrnBw=; b=ipXKpE1+enFGmDZW7DM/AJqxQ2ZyXeHpMRlI5bxXNBJT8vTLkxDWXZSrdr31QI9q+4 0K5T/YLr2tw0WP6Fd9BG6Fe8ICAVhV2fzpKG3Nmr5TipMO6mzZEG5rTOyfJhPhEC8q+K HHJZ0ZrUk9+si1qtDoqjTtSwg6o7IjzQdV+qNjplfEvlg1NGHCSpL9q355wM4unBl13c dU2ImeYWrx2TCfQiDjg0/AgW4NFO6cvOi5ew13ee35ZVRaTLWRDNtvRig+JdTa0EywGX AFvCbVtGHpjkClMloC91Nq/vBM7fU9R8Iae6v+ovxLkG794tSIk1tPOMDVvT+GekeJUo yxxQ== X-Gm-Message-State: AOJu0Yyqwzz2l07OgXQP3sBvGR2LbsPjup1Xl4JR/F5ywJF8oW4zzJkK TWkiHE8WbktbxQq7qhrDqQ36vw17wOjtdA+wjb24vY1JHmqgO69hGtO+lcCeKnjyjDLUZJOKOp4 ZmuuPpBjPK2uwXPgC1IruidpA6ceY97Ig X-Gm-Gg: ASbGncssE2F0IGOMzUlwQOioeGcI/DwtkNhjTrxYJD6JXiP3n9KsMFh/YfJsv7gmwMB UDGPJR3yL8wZESAiJCiovt04pa684XB9uAGcy7sk= X-Google-Smtp-Source: AGHT+IGjbNLWAWta6WZT1QCKeENt5/85lWZL/InDr9K66ZuhduKrs1UF4oO0Nwf8Sg2q4J9q5rNHiX4yOcbeb6VgxoI= X-Received: by 2002:a05:6000:1567:b0:385:f7d2:7e9b with SMTP id ffacd0b85a97d-38880adaaa2mr4121977f8f.30.1734170766829; Sat, 14 Dec 2024 02:06:06 -0800 (PST) Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=nicolas.despres@gmail.com; helo=mail-wr1-x434.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:326472 Archived-At: --00000000000089c5700629381883 Content-Type: multipart/alternative; boundary="00000000000089c56c0629381881" --00000000000089c56c0629381881 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, I have been enjoying using Emacs since more than 20 years now. So, thank you all guys for this impressive work. It is the first time I send a patch to this list. I am not a very fluent lisp coder so please do apologies if the style is not very good and feel free to tell me how to improve it. Currently, `split-window-sensibly' prefers to split vertically, disregarding the shape of the frame. This is a good default when Emacs is taller than wider. However, when Emacs is in fullscreen (landscape screen layout), splitting vertically is generally not the thing to do because there is plenty of space on the right. Typical scenario: Emacs is in fullscreen; one buffer is open in a window covering the entire frame. Another buffer is opened in a second window (C-x 4 f). In this case, the split should generally be horizontal. The attached patch changes `split-window-sensibly' to just try spliting the longest edge first. It works well when implemented in my init.el and installed by setting `split-window-preferred-function'. However, when the same logic is implemented by directly modifying `split-window-sensibly' in window.el, it does not work for one very specifi= c case: when the frame is 80x30 and C-x 4 f is pressed, the window is not split and the buffer is opened in another frame. The problem seems to come from the last eval expression at the bottom of `split-window-sensibly'= , but I failed to find a solution. I though better elisp coder than me will find a solution quickly that's why I am posting here. Apart from that, I have been using this alternate approach for a couple of weeks now, and it works well, that's why I am submitting it for inclusion in Emacs. I have tested on 8d94a9ec613470b7e8e4ee0e86b643f34f8a724c with emacs built with --with-imagemagick --with-native-compilation=3Dyes --with-compress-install --with-mailutils --with-gnutls --with-tree-sitter --with-xwidgets --disable-gc-mark-trace --no-create --no-recursion on macOS 15.2. Best regards, Nico --=20 Nicolas Despr=C3=A8s --00000000000089c56c0629381881 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

I have been enjoying using Emacs sinc= e more than 20 years now.=C2=A0 So,
thank you all guys for this impressi= ve work.

It is the first time I send a patch to this list.=C2=A0 I a= m not a very
fluent lisp coder so please do apologies if the style is no= t very
good and feel free to tell me how to improve it.
Currently, `split-window-sensibly' prefers to split vertic= ally,
disregarding the=C2=A0shape of the frame.=C2=A0 This is a good default whenEmacs is taller than wider.=C2=A0 However, when Emacs is in fullscreen
= (landscape screen layout), splitting vertically is generally not the
thi= ng to do because there is plenty of space on the right.

Typical scenario: Emacs = is in fullscreen; one buffer is open in a window
covering the entire frame.=C2=A0 An= other buffer is opened in a second
window (C-x 4 f). In this case, the split should = generally be horizontal.
The att= ached patch changes `split-window-sensibly' to just try
spliting the longest edge firs= t. It works well when implemented in my init.el
and installed by setting `split-window-pre= ferred-function'.

How= ever, when the same logic is implemented by directly modifying
`split-window-sensibly'= in window.el, it does not work for one very specific
case: when the frame is 80x30 and C-= x 4 f is pressed, the window is not
split and the buffer is opened in another frame. The p= roblem seems to
come from the last eval expression at the bottom of `split-window-sen= sibly',
but= I failed to find a solution. I though better elisp coder than me will find= a
solution qui= ckly that's why I am posting here.

Apart from that, I have been using this alternate approa= ch for a couple of
weeks now, and it works well, that's why I am submitting it for= inclusion
in E= macs.

I have tested on 8d= 94a9ec613470b7e8e4ee0e86b643f34f8a724c with emacs built
with --with-imagemagick --with-nat= ive-compilation=3Dyes --with-compress-install --with-mailutils --with-gnutl= s --with-tree-sitter --with-xwidgets --disable-gc-mark-trace --no-create --= no-recursion on macOS 15.2.

Best regards,
Nico

--
Nicolas Despr=C3=A8s
<= /div>
--00000000000089c56c0629381881-- --00000000000089c5700629381883 Content-Type: application/octet-stream; name="0001-Split-along-the-longest-edge-by-default.patch" Content-Disposition: attachment; filename="0001-Split-along-the-longest-edge-by-default.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4o0chbb0 RnJvbSA4ZDk0YTllYzYxMzQ3MGI3ZThlNGVlMGU4NmI2NDNmMzRmOGE3MjRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIERlc3ByZXMgPG5pY29sYXMuZGVzcHJlc0BnbWFp bC5jb20+CkRhdGU6IEZyaSwgMTMgRGVjIDIwMjQgMTk6NTg6MTMgKzAxMDAKU3ViamVjdDogW1BB VENIXSBTcGxpdCBhbG9uZyB0aGUgbG9uZ2VzdCBlZGdlIGJ5IGRlZmF1bHQuCgpDdXJyZW50bHks IGBzcGxpdC13aW5kb3ctc2Vuc2libHknIHByZWZlciB0byBzcGxpdCB2ZXJ0aWNhbGx5CmRpc3Jl Z2FyZGluZyB0aGUgYWN0dWFsIHNoYXBlIG9mIHRoZSBmcmFtZS4gIFRoaXMgaXMgYSBnb29kIGRl ZmF1bHQgd2hlbgpFbWFjcyBpcyB0YWxsZXIgdGhhbiB3aWRlci4gIEhvd2V2ZXIsIHdoZW4gRW1h Y3MgaXMgaW4gZnVsbHNjcmVlbgoobGFuZHNjYXBlIHNjcmVlbiBsYXlvdXQpIHNwbGl0dGluZyB2 ZXJ0aWNhbGx5IGlzIGdlbmVyYWxseSBub3QgdGhlCnRoaW5ncyB0byBkbyBiZWNhdXNlIHRoZXJl IGlzIHBsZW50eSBtb3JlIHNwYWNlIG9uIHRoZSByaWdodC4KClR5cGljYWwgc2NlbmFyaW86IEVt YWNzIGlzIGluIGZ1bGxzY3JlZW4sIG9uZSBidWZmZXIgaXMgb3BlbiBpbiB3aW5kb3cKY292ZXJp bmcgdGhlIGVudGlyZSBmcmFtZS4gIEFub3RoZXIgYnVmZmVyIGlzIG9wZW5lZCBpbiBhIHNlY29u ZAp3aW5kb3cgKEMteCA0IGYpLiBJbiB0aGlzIGNhc2UsIHRoZSBzcGxpdCBzaG91bGQgaGFwcGVu IGhvcml6b250YWxseS4KCkkgaGF2ZSB0ZXN0ZWQgdGhpcyBhcHByb2FjaCBzaW5jZSBhIGNvdXBs ZSBvZiB3ZWVrcyBub3cgYW5kIGl0IHdvcmtzIHdlbGwKaWYgYHNwbGl0LWhlaWdodC10aHJlc2hv bGQnIGFuZCBgc3BsaXQtd2lkdGgtdGhyZXNob2xkJyBhcmUgc2V0CnByb3Blcmx5LgoKKiBsaXNw L3dpbmRvdy5lbCAoc3BsaXQtd2luZG93LXNlbnNpYmx5KTogQWx3YXlzIHByZWZlciB0aGUgbG9u Z2VzdCBlZGdlCmluc3RlYWQgb2YgYmxpbmRseSBzcGxpdHRpbmcgdmVydGljYWxseSwgdW5sZXNz IHdpZHRoIGlzIGxlc3MgdGhhbiA4MCBjb2x1bW5zLgoKQSBwYXJ0IGZyb20gdGhhdCwgdGhlIHBh dGNoIGNhcmVmdWxseSBwcmVzZXJ2ZXMgdGhlIGN1cnJlbnQgc3BsaXQgbG9naWMuCi0tLQogbGlz cC93aW5kb3cuZWwgfCA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXgg ZTlkNTc2NTJlYzYuLjU4Y2E2Yzg2NzlkIDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5lbAorKysg Yi9saXNwL3dpbmRvdy5lbApAQCAtNzM0NywyMCArNzM0NywzMCBAQCB3aW5kb3ctc3BsaXR0YWJs ZS1wCiAJCSAgICAgICgqIDIgKG1heCB3aW5kb3ctbWluLWhlaWdodAogCQkJCShpZiBtb2RlLWxp bmUtZm9ybWF0IDIgMSkpKSkpKSkpKSkKIAorKGRlZnVuIHdpbmRvdy0tdHJ5LXNwbGl0LXdpbmRv dy12ZXJ0aWNhbGx5ICh3aW5kb3cpCisgICJIZWxwZXIgZnVuY3Rpb24gZm9yIGBzcGxpdC13aW5k b3ctc2Vuc2libHknIgorICAod2hlbiAod2luZG93LXNwbGl0dGFibGUtcCB3aW5kb3cpCisgICAg KHdpdGgtc2VsZWN0ZWQtd2luZG93IHdpbmRvdworICAgICAgKHNwbGl0LXdpbmRvdy1iZWxvdykp KSkKKworKGRlZnVuIHdpbmRvdy0tdHJ5LXNwbGl0LXdpbmRvdy1ob3Jpem9udGFsbHkgKHdpbmRv dykKKyAgIkhlbHBlciBmdW5jdGlvbiBmb3IgYHNwbGl0LXdpbmRvdy1zZW5zaWJseSciCisgICh3 aGVuICh3aW5kb3ctc3BsaXR0YWJsZS1wIHdpbmRvdyB0KQorICAgICh3aXRoLXNlbGVjdGVkLXdp bmRvdyB3aW5kb3cKKyAgICAgIChzcGxpdC13aW5kb3ctcmlnaHQpKSkpCisKIChkZWZ1biBzcGxp dC13aW5kb3ctc2Vuc2libHkgKCZvcHRpb25hbCB3aW5kb3cpCiAgICJTcGxpdCBXSU5ET1cgaW4g YSB3YXkgc3VpdGFibGUgZm9yIGBkaXNwbGF5LWJ1ZmZlcicuCi1XSU5ET1cgZGVmYXVsdHMgdG8g dGhlIGN1cnJlbnRseSBzZWxlY3RlZCB3aW5kb3cuCi1JZiBgc3BsaXQtaGVpZ2h0LXRocmVzaG9s ZCcgc3BlY2lmaWVzIGFuIGludGVnZXIsIFdJTkRPVyBpcyBhdAotbGVhc3QgYHNwbGl0LWhlaWdo dC10aHJlc2hvbGQnIGxpbmVzIHRhbGwgYW5kIGNhbiBiZSBzcGxpdAotdmVydGljYWxseSwgc3Bs aXQgV0lORE9XIGludG8gdHdvIHdpbmRvd3Mgb25lIGFib3ZlIHRoZSBvdGhlciBhbmQKLXJldHVy biB0aGUgbG93ZXIgd2luZG93LiAgT3RoZXJ3aXNlLCBpZiBgc3BsaXQtd2lkdGgtdGhyZXNob2xk Jwotc3BlY2lmaWVzIGFuIGludGVnZXIsIFdJTkRPVyBpcyBhdCBsZWFzdCBgc3BsaXQtd2lkdGgt dGhyZXNob2xkJwotY29sdW1ucyB3aWRlIGFuZCBjYW4gYmUgc3BsaXQgaG9yaXpvbnRhbGx5LCBz cGxpdCBXSU5ET1cgaW50byB0d28KLXdpbmRvd3Mgc2lkZSBieSBzaWRlIGFuZCByZXR1cm4gdGhl IHdpbmRvdyBvbiB0aGUgcmlnaHQuICBJZiB0aGlzCi1jYW4ndCBiZSBkb25lIGVpdGhlciBhbmQg V0lORE9XIGlzIHRoZSBvbmx5IHdpbmRvdyBvbiBpdHMgZnJhbWUsCi10cnkgdG8gc3BsaXQgV0lO RE9XIHZlcnRpY2FsbHkgZGlzcmVnYXJkaW5nIGFueSB2YWx1ZSBzcGVjaWZpZWQKLWJ5IGBzcGxp dC1oZWlnaHQtdGhyZXNob2xkJy4gIElmIHRoYXQgc3VjY2VlZHMsIHJldHVybiB0aGUgbG93ZXIK LXdpbmRvdy4gIFJldHVybiBuaWwgb3RoZXJ3aXNlLgorV0lORE9XIGRlZmF1bHRzIHRvIHRoZSBj dXJyZW50bHkgc2VsZWN0ZWQgd2luZG93LiAgRmlyc3QsIHRyeSB0byBzcGxpdAorYWxvbmcgdGhl IGxvbmdlc3QgZWRnZSBvZiB0aGUgd2luZG93LiAgSWYgdGhlIHRocmVzaG9sZAorKGBzcGxpdC1o ZWlnaHQtdGhyZXNob2xkJyByZXNwZWN0aXZlbHkgYHNwbGl0LXdpZHRoLXRocmVzaG9sZCcpCitz cGVjaWZpZXMgYW4gaW50ZWdlciwgV0lORE9XIGlzIGF0IGxlYXN0IHRoYXQgdGhyZXNob2xkIGxp bmVzIHRhbGwKKyhyZXNwLiB3aWRlKSBhbmQgY2FuIGJlIHNwbGl0ICh2ZXJ0aWNhbGx5IHJlc3Bl Y3RpdmVseSBob3Jpem9udGFsbHkpLgorSWYgdGhhdCBmYWlscywgdHJ5IHRvIHNwbGl0IGFsb25n IHRoZSBzaG9ydGVzdCBlZGdlLiAgSWYgdGhpcyBjYW4ndCBiZQorZG9uZSBlaXRoZXIgYW5kIFdJ TkRPVyBpcyB0aGUgb25seSB3aW5kb3cgb24gaXRzIGZyYW1lLCB0cnkgdG8gc3BsaXQKK1dJTkRP VyBhbG9uZyB0aGUgbG9uZ2VzdCBlZGdlIGRpc3JlZ2FyZGluZyBhbnkgdmFsdWUgc3BlY2lmaWVk IGJ5Citgc3BsaXQtaGVpZ2h0LXRocmVzaG9sZCcgcmVzcGVjdGl2ZWx5IGBzcGxpdC13aWR0aC10 aHJlc2hvbGQnLiBJZiB0aGF0CitzdWNjZWVkcywgcmV0dXJuIHRoZSBsb3dlciB3aW5kb3cuICBS ZXR1cm4gbmlsIG90aGVyd2lzZS4KIAogQnkgZGVmYXVsdCBgZGlzcGxheS1idWZmZXInIHJvdXRp bmVzIGNhbGwgdGhpcyBmdW5jdGlvbiB0byBzcGxpdAogdGhlIGxhcmdlc3Qgb3IgbGVhc3QgcmVj ZW50bHkgdXNlZCB3aW5kb3cuICBUbyBjaGFuZ2UgdGhlIGRlZmF1bHQKQEAgLTczNzksMjEgKzcz ODksMjcgQEAgc3BsaXQtd2luZG93LXNlbnNpYmx5CiBIYXZlIGEgbG9vayBhdCB0aGUgZnVuY3Rp b24gYHdpbmRvdy1zcGxpdHRhYmxlLXAnIGlmIHlvdSB3YW50IHRvCiBrbm93IGhvdyBgc3BsaXQt d2luZG93LXNlbnNpYmx5JyBkZXRlcm1pbmVzIHdoZXRoZXIgV0lORE9XIGNhbiBiZQogc3BsaXQu IgotICAobGV0ICgod2luZG93IChvciB3aW5kb3cgKHNlbGVjdGVkLXdpbmRvdykpKSkKLSAgICAo b3IgKGFuZCAod2luZG93LXNwbGl0dGFibGUtcCB3aW5kb3cpCi0JICAgICA7OyBTcGxpdCB3aW5k b3cgdmVydGljYWxseS4KLQkgICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW5kb3cKLQkgICAg ICAgKHNwbGl0LXdpbmRvdy1iZWxvdykpKQotCShhbmQgKHdpbmRvdy1zcGxpdHRhYmxlLXAgd2lu ZG93IHQpCi0JICAgICA7OyBTcGxpdCB3aW5kb3cgaG9yaXpvbnRhbGx5LgotCSAgICAgKHdpdGgt c2VsZWN0ZWQtd2luZG93IHdpbmRvdwotCSAgICAgICAoc3BsaXQtd2luZG93LXJpZ2h0KSkpCisg IChsZXQgKCh3aW5kb3cgKG9yIHdpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkpCisgICAgICAgIChm aXJzdC1zcGxpdCBuaWwpCisgICAgICAgIChzZWNvbmQtc3BsaXQgbmlsKQorICAgICAgICAoZmly c3QtdGhyZXNob2xkLXZhcmlhYmxlIG5pbCkpCisgICAgOzsgQ2hvb3NlIHByZWZlcnJlZCBzcGxp dHRpbmcgZWRnZS4KKyAgICAoaWYgKGFuZCAoPiAoZnJhbWUtd2lkdGgpIChmcmFtZS1oZWlnaHQp KSAoPiAoZnJhbWUtd2lkdGgpIDgwKSkKKyAgICAgICAgKHNldHEgZmlyc3Qtc3BsaXQgJ3dpbmRv dy0tdHJ5LXNwbGl0LXdpbmRvdy1ob3Jpem9udGFsbHkKKyAgICAgICAgICAgICAgc2Vjb25kLXNw bGl0ICd3aW5kb3ctLXRyeS1zcGxpdC13aW5kb3ctdmVydGljYWxseQorICAgICAgICAgICAgICBm aXJzdC10aHJlc2hvbGQtdmFyaWFibGUgJ3NwbGl0LXdpZHRoLXRocmVzaG9sZCkKKyAgICAgIChz ZXRxIGZpcnN0LXNwbGl0ICd3aW5kb3ctLXRyeS1zcGxpdC13aW5kb3ctdmVydGljYWxseQorICAg ICAgICAgICAgc2Vjb25kLXNwbGl0ICd3aW5kb3ctLXRyeS1zcGxpdC13aW5kb3ctaG9yaXpvbnRh bGx5CisgICAgICAgICAgICBmaXJzdC10aHJlc2hvbGQtdmFyaWFibGUgJ3NwbGl0LWhlaWdodC10 aHJlc2hvbGQpKQorICAgIChvciAoZnVuY2FsbCBmaXJzdC1zcGxpdCB3aW5kb3cpCisJKGZ1bmNh bGwgc2Vjb25kLXNwbGl0IHdpbmRvdykKIAkoYW5kCiAgICAgICAgICA7OyBJZiBXSU5ET1cgaXMg dGhlIG9ubHkgdXNhYmxlIHdpbmRvdyBvbiBpdHMgZnJhbWUgKGl0IGlzCiAgICAgICAgICA7OyB0 aGUgb25seSBvbmUgb3IsIG5vdCBiZWluZyB0aGUgb25seSBvbmUsIGFsbCB0aGUgb3RoZXIKICAg ICAgICAgIDs7IG9uZXMgYXJlIGRlZGljYXRlZCkgYW5kIGlzIG5vdCB0aGUgbWluaWJ1ZmZlciB3 aW5kb3csIHRyeQotICAgICAgICAgOzsgdG8gc3BsaXQgaXQgdmVydGljYWxseSBkaXNyZWdhcmRp bmcgdGhlIHZhbHVlIG9mCi0gICAgICAgICA7OyBgc3BsaXQtaGVpZ2h0LXRocmVzaG9sZCcuCisg ICAgICAgICA7OyB0byBzcGxpdCBpdCBhbG9uZyB0aGUgbG9uZ2VzdCBlZGdlIGRpc3JlZ2FyZGlu ZyB0aGUgdmFsdWUgb2YKKyAgICAgICAgIDs7IHRoZSBtYXRjaGluZyB0aHJlc2hvbGQgKGBzcGxp dC1oZWlnaHQtdGhyZXNob2xkJworICAgICAgICAgOzsgb3IgYHNwbGl0LXdpZHRoLXRocmVzaG9s ZCcpLgogICAgICAgICAgKGxldCAoKGZyYW1lICh3aW5kb3ctZnJhbWUgd2luZG93KSkpCiAgICAg ICAgICAgIChvcgogICAgICAgICAgICAgKGVxIHdpbmRvdyAoZnJhbWUtcm9vdC13aW5kb3cgZnJh bWUpKQpAQCAtNzQwNSwxMCArNzQyMSw4IEBAIHNwbGl0LXdpbmRvdy1zZW5zaWJseQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSBuaWwgJ25vbWluaSkKICAgICAgICAgICAg ICAgdCkpKQogCSAobm90ICh3aW5kb3ctbWluaWJ1ZmZlci1wIHdpbmRvdykpCi0JIChsZXQgKChz cGxpdC1oZWlnaHQtdGhyZXNob2xkIDApKQotCSAgICh3aGVuICh3aW5kb3ctc3BsaXR0YWJsZS1w IHdpbmRvdykKLQkgICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW5kb3cKLQkgICAgICAgKHNw bGl0LXdpbmRvdy1iZWxvdykpKSkpKSkpCisJIChldmFsIGAobGV0ICgoLGZpcnN0LXRocmVzaG9s ZC12YXJpYWJsZSAwKSkKKyAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGZpcnN0LXNwbGl0IHdp bmRvdykpKSkpKSkKIAogKGRlZnVuIHdpbmRvdy0tdHJ5LXRvLXNwbGl0LXdpbmRvdyAod2luZG93 ICZvcHRpb25hbCBhbGlzdCkKICAgIlRyeSB0byBzcGxpdCBXSU5ET1cuCi0tIAoyLjQ3LjEKCg== --00000000000089c5700629381883--