From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings Newsgroups: gmane.emacs.devel Subject: Re: Simple isearch concerns Date: Tue, 06 Apr 2021 00:30:25 +0000 Message-ID: References: <20210403001539.x4rb55dvh46rmhb3.ref@Ergus> <20210403001539.x4rb55dvh46rmhb3@Ergus> <878s5wmsjp.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="t4f3WfSMVZ" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38893"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Ergus , emacs-devel@gnu.org To: Juri Linkov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Apr 06 02:31:25 2021 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 1lTZcq-000A2u-M2 for ged-emacs-devel@m.gmane-mx.org; Tue, 06 Apr 2021 02:31:24 +0200 Original-Received: from localhost ([::1]:34012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTZcp-0006VA-K2 for ged-emacs-devel@m.gmane-mx.org; Mon, 05 Apr 2021 20:31:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47704) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTZc2-0005zc-Uo for emacs-devel@gnu.org; Mon, 05 Apr 2021 20:30:35 -0400 Original-Received: from heytings.org ([95.142.160.155]:58442) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTZbw-0001ph-59 for emacs-devel@gnu.org; Mon, 05 Apr 2021 20:30:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org; s=20210101; t=1617669025; bh=0+8Ln7z3+n7EnY9Aot3gZAuSu6HaYjgK7VxAL8Cs1iA=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From; b=gIUbTCO5gJUbGEFXxV2EyIiQ9ahHkUYZmx15Lq9NmI90eM4skfLLZ7ZrjCFZoVvWL QsBP/VfTginlTpxQrLCkata4AfltKcKjps5A+ik3K2vod1jSEerQlQrijkjIOzbALM i5SQTsLjo0Z/XDUfTpJ2evco+QTi3kN7iQ21C8uLC09JQBM4VocFWoR5nEKy9PyML2 ZTMmCvNiU343sAcvdIcvSBjD6OAGnF1JTwr57NWnMTJkREmFgzfwDHXrH3TpdS+APk HIHYDx1JRRU5d0hFIt2pqU4dglMfQ6yG0nENymYfsBQfRi7sS2jIoZvdH7GhGU+O6Z O74ERFFkbmWQg== In-Reply-To: <878s5wmsjp.fsf@mail.linkov.net> Content-ID: Received-SPF: pass client-ip=95.142.160.155; envelope-from=gregory@heytings.org; helo=heytings.org 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, SPF_HELO_PASS=-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.23 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" Xref: news.gmane.io gmane.emacs.devel:267449 Archived-At: --t4f3WfSMVZ Content-Type: text/plain; charset=us-ascii; format=flowed Content-ID: >> 1) Are there any option to move the cursor to the start of the >> candidate after the search? I see that there is an isearch-other-end. >> But it is not a custom but an internal variable. Now I am using a hook >> but it seems a bit hacky. > > As you see from the discussion, adding a defcustom makes little sense, > because this feature might be needed only occasionally, so better to be > bound to a special key, e.g. C-RET to exit and move to other-end, S-RET > to exit and mark the found string as a region. > Note that neither C-RET nor S-RET are available in a terminal. What I consider to be the most useful feature of CTRLF, namely the possibility to scroll among the matches, has not much been discussed so far, alas. I attach a short patch which implements that feature in isearch. I've been using it for a day, and I'm convinced it's a must-have, it makes navigating among the search matches much faster. WDYT? --t4f3WfSMVZ Content-Type: text/x-diff; name=0001-New-user-option-to-scroll-isearch-matches.patch; charset=us-ascii Content-Transfer-Encoding: base64 Content-ID: Content-Description: Content-Disposition: attachment; filename=0001-New-user-option-to-scroll-isearch-matches.patch RnJvbSBhMWRkN2YxZjkzZjBhMmI3NGM3ZjllNDNkOTdmNWI1ZjA5ZTE2YjY5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogR3JlZ29yeSBIZXl0 aW5ncyA8Z3JlZ29yeUBoZXl0aW5ncy5vcmc+DQpEYXRlOiBUdWUsIDYgQXBy IDIwMjEgMDA6MTc6MzkgKzAwMDANClN1YmplY3Q6IFtQQVRDSF0gTmV3IHVz ZXIgb3B0aW9uIHRvIHNjcm9sbCBpc2VhcmNoIG1hdGNoZXMNCg0KKiBsaXNw L2lzZWFyY2guZWwgKGlzZWFyY2gtYWxsb3ctbWF0Y2gtc2Nyb2xsKTogTmV3 IHVzZXIgb3B0aW9uLg0KKGlzZWFyY2gtc2Nyb2xsLXVwLCBpc2VhcmNoLXNj cm9sbC1kb3duKTogTmV3IGNvbW1hbmRzIHRvIHNjcm9sbA0KdGhlIGN1cnJl bnQgc2VhcmNoIG1hdGNoLCB0aGF0IGNvbXBsZW1lbnQgdGhlIGV4aXN0aW5n DQppc2VhcmNoLWJlZ2lubmluZy1vZi1idWZmZXIgYW5kIGlzZWFyY2gtZW5k LW9mLWJ1ZmZlciBjb21tYW5kcy4NCihpc2VhcmNoLXByZS1jb21tYW5kLWhv b2spOiBIYW5kbGUgdGhlIG5ldyBvcHRpb24gYW5kIGNvbW1hbmRzLg0KDQoq IGV0Yy9ORVdTOiBNZW50aW9uIHRoZSBuZXcgdXNlciBvcHRpb24uDQoNCiog ZG9jL2VtYWNzL3NlYXJjaC50ZXhpOiBEb2N1bWVudCB0aGUgbmV3IHVzZXIg b3B0aW9uLg0KLS0tDQogZG9jL2VtYWNzL3NlYXJjaC50ZXhpIHwgIDggKysr KysrKysNCiBldGMvTkVXUyAgICAgICAgICAgICAgfCAgOCArKysrKysrKw0K IGxpc3AvaXNlYXJjaC5lbCAgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0NCiAzIGZpbGVzIGNoYW5nZWQs IDYyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCg0KZGlmZiAtLWdp dCBhL2RvYy9lbWFjcy9zZWFyY2gudGV4aSBiL2RvYy9lbWFjcy9zZWFyY2gu dGV4aQ0KaW5kZXggZjNjNDJiY2VhNy4uNmMxNjFkNGM1OCAxMDA2NDQNCi0t LSBhL2RvYy9lbWFjcy9zZWFyY2gudGV4aQ0KKysrIGIvZG9jL2VtYWNzL3Nl YXJjaC50ZXhpDQpAQCAtNTg3LDYgKzU4NywxNCBAQCBOb3QgRXhpdGluZyBJ c2VhcmNoDQogYW4gaW5jcmVtZW50YWwgc2VhcmNoLiAgVGhpcyBmZWF0dXJl IGlzIGRpc2FibGVkIGlmDQogQGNvZGV7aXNlYXJjaC1hbGxvdy1zY3JvbGx9 IGlzIEBjb2Rle25pbH0gKHdoaWNoIGl0IGlzIGJ5IGRlZmF1bHQpLg0KIA0K K0B2aW5kZXggaXNlYXJjaC1hbGxvdy1tYXRjaC1zY3JvbGwNCisgIExpa2V3 aXNlLCBpZiB5b3UgY2hhbmdlIHRoZSB2YXJpYWJsZSBAY29kZXtpc2VhcmNo LWFsbG93LW1hdGNoLXNjcm9sbH0NCit0byBhIG5vbi1AY29kZXtuaWx9IHZh bHVlLCB0aGlzIGVuYWJsZXMgdGhlIHVzZSBvZiB0aGUga2V5Ym9hcmQgc2Ny b2xsaW5nDQorY29tbWFuZHMgQGtiZHtDLXZ9LCAgQGtiZHtNLXZ9LCBAa2Jk e00tPH0gYW5kIEBrYmR7TS0+fSB0byBtb3ZlDQorcmVzcGVjdGl2ZWx5IHRv IHRoZSBmaXJzdCBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBjdXJyZW50IHNl YXJjaA0KK3N0cmluZyBpbiB0aGUgYnVmZmVyLCB0aGUgbGFzdCBvbmUsIHRo ZSBmaXJzdCBvbmUgYWZ0ZXIgdGhlIGN1cnJlbnQNCit3aW5kb3csIGFuZCB0 aGUgbGFzdCBvbmUgYmVmb3JlIHRoZSBjdXJyZW50IHdpbmRvdy4NCisNCiBA aXRlbSBNb3Rpb24gQ29tbWFuZHMNCiBAY2luZGV4IG1vdGlvbiBjb21tYW5k cywgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaA0KIFdoZW4gQGNvZGV7aXNl YXJjaC15YW5rLW9uLW1vdmV9IGlzIGN1c3RvbWl6ZWQgdG8gQGNvZGV7c2hp ZnR9LA0KZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MNCmluZGV4 IGM4NDAwYmE4YzIuLjQxMWVhNzJlN2MgMTAwNjQ0DQotLS0gYS9ldGMvTkVX Uw0KKysrIGIvZXRjL05FV1MNCkBAIC0zNjcsNiArMzY3LDE0IEBAIHRyeWlu ZyB0byBiZSBub24tZGVzdHJ1Y3RpdmUuDQogVGhpcyBjb21tYW5kIG9wZW5z IGEgbmV3IGJ1ZmZlciBjYWxsZWQgIipNZW1vcnkgUmVwb3J0KiIgYW5kIGdp dmVzIGENCiBzdW1tYXJ5IG9mIHdoZXJlIEVtYWNzIGlzIHVzaW5nIG1lbW9y eSBjdXJyZW50bHkuDQogDQorKysrDQorKiogTmV3IHVzZXIgb3B0aW9uICdp c2VhcmNoLWFsbG93LW1hdGNoLXNjcm9sbCcuDQorV2hlbiB0aGlzIG9wdGlv biBpcyBzZXQsIHRoZSBjb21tYW5kcyAnYmVnaW5uaW5nLW9mLWJ1ZmZlcics DQorJ2VuZC1vZi1idWZmZXInLCAnc2Nyb2xsLXVwLWNvbW1hbmQnIGFuZCAn c2Nyb2xsLWRvd24tY29tbWFuZCcgbW92ZQ0KK3Jlc3BlY3RpdmVseSB0byB0 aGUgZmlyc3QgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY3VycmVudCBzZWFy Y2gNCitzdHJpbmcgaW4gdGhlIGJ1ZmZlciwgdGhlIGxhc3Qgb25lLCB0aGUg Zmlyc3Qgb25lIGFmdGVyIHRoZSBjdXJyZW50DQord2luZG93LCBhbmQgdGhl IGxhc3Qgb25lIGJlZm9yZSB0aGUgY3VycmVudCB3aW5kb3cuDQorDQogKiog T3V0bGluZQ0KIA0KICsrKw0KZGlmZiAtLWdpdCBhL2xpc3AvaXNlYXJjaC5l bCBiL2xpc3AvaXNlYXJjaC5lbA0KaW5kZXggOTQzZTI0YWE1Ni4uYmRiMmYx NDdhYiAxMDA2NDQNCi0tLSBhL2xpc3AvaXNlYXJjaC5lbA0KKysrIGIvbGlz cC9pc2VhcmNoLmVsDQpAQCAtMTk0Miw2ICsxOTQyLDIzIEBAIGlzZWFyY2gt ZW5kLW9mLWJ1ZmZlcg0KICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQ0K ICAgICAoaXNlYXJjaC1yZXBlYXQgJ2JhY2t3YXJkIGFyZykpKQ0KIA0KKyhk ZWZ1biBpc2VhcmNoLXNjcm9sbC11cCAoKQ0KKyAgIkdvIHRvIHRoZSBmaXJz dCBvY2N1cnJlbmNlIG9mIHRoZSBjdXJyZW50IHNlYXJjaCBzdHJpbmcgYWZ0 ZXIgd2luZG93Lg0KK01vdmUgcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgd2lu ZG93LCBhbmQgc2VhcmNoIGZvcndhcmQuIg0KKyAgKGludGVyYWN0aXZlKQ0K KyAgKHNldHEgaXNlYXJjaC1qdXN0LXN0YXJ0ZWQgdCkNCisgIChnb3RvLWNo YXIgKHdpbmRvdy1lbmQpKQ0KKyAgKGlzZWFyY2gtcmVwZWF0ICdmb3J3YXJk KSkNCisNCisoZGVmdW4gaXNlYXJjaC1zY3JvbGwtZG93biAoKQ0KKyAgIkdv IHRvIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBjdXJyZW50IHNlYXJj aCBzdHJpbmcgYmVmb3JlIHdpbmRvdy4NCitNb3ZlIHBvaW50IHRvIHRoZSBi ZWdpbm5pbmcgb2YgdGhlIHdpbmRvdywgcmVjZW50ZXIgaXQsIGFuZCBzZWFy Y2ggYmFja3dhcmQuIg0KKyAgKGludGVyYWN0aXZlKQ0KKyAgKHNldHEgaXNl YXJjaC1qdXN0LXN0YXJ0ZWQgdCkNCisgIChnb3RvLWNoYXIgKHdpbmRvdy1z dGFydCkpDQorICAocmVjZW50ZXIgbmlsIHQpDQorICAoaXNlYXJjaC1yZXBl YXQgJ2JhY2t3YXJkKSkNCisNCiAMDQogOzs7IFRvZ2dsZXMgZm9yIGBpc2Vh cmNoLXJlZ2V4cC1mdW5jdGlvbicgYW5kIGBzZWFyY2gtZGVmYXVsdC1tb2Rl Jy4NCiAoZGVmbWFjcm8gaXNlYXJjaC1kZWZpbmUtbW9kZS10b2dnbGUgKG1v ZGUga2V5IGZ1bmN0aW9uICZvcHRpb25hbCBkb2NzdHJpbmcgJnJlc3QgYm9k eSkNCkBAIC0yODQwLDEyICsyODU3LDM1IEBAIGlzZWFyY2gtYWxsb3ctc2Ny b2xsDQogSG93ZXZlciwgeW91IGNhbm5vdCBzY3JvbGwgZmFyIGVub3VnaCB0 aGF0IHRoZSBjdXJyZW50IG1hdGNoIGlzDQogbm8gbG9uZ2VyIHZpc2libGUg KGlzIG9mZiBzY3JlZW4pLiAgQnV0IGlmIHRoZSB2YWx1ZSBpcyBgdW5saW1p dGVkJw0KIHRoYXQgbGltaXRhdGlvbiBpcyByZW1vdmVkIGFuZCB5b3UgY2Fu IHNjcm9sbCBhbnkgZGlzdGFuY2Ugb2ZmIHNjcmVlbi4NCi1JZiBuaWwsIHNj cm9sbGluZyBjb21tYW5kcyBleGl0IElzZWFyY2ggbW9kZS4iDQorSWYgbmls LCBzY3JvbGxpbmcgY29tbWFuZHMgZXhpdCBJc2VhcmNoIG1vZGUuDQorU2Vl IGFsc28gdGhlIHJlbGF0ZWQgb3B0aW9uIGBpc2VhcmNoLWFsbG93LW1hdGNo LXNjcm9sbCcuIg0KICAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0IDp0YWcgIlNj cm9sbGluZyBleGl0cyBJc2VhcmNoIiBuaWwpDQogICAgICAgICAgICAgICAg ICAoY29uc3QgOnRhZyAiU2Nyb2xsaW5nIHdpdGggY3VycmVudCBtYXRjaCBv biBzY3JlZW4iIHQpDQogICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAi U2Nyb2xsaW5nIHdpdGggY3VycmVudCBtYXRjaCBvZmYgc2NyZWVuIiB1bmxp bWl0ZWQpKQ0KICAgOmdyb3VwICdpc2VhcmNoKQ0KIA0KKyhwdXQgJ2JlZ2lu bmluZy1vZi1idWZmZXIgJ2lzZWFyY2gtbWF0Y2gtc2Nyb2xsIHQpDQorKHB1 dCAnZW5kLW9mLWJ1ZmZlciAnaXNlYXJjaC1tYXRjaC1zY3JvbGwgdCkNCiso cHV0ICdzY3JvbGwtdXAtY29tbWFuZCAnaXNlYXJjaC1tYXRjaC1zY3JvbGwg dCkNCisocHV0ICdzY3JvbGwtZG93bi1jb21tYW5kICdpc2VhcmNoLW1hdGNo LXNjcm9sbCB0KQ0KKw0KKyhwdXQgJ2JlZ2lubmluZy1vZi1idWZmZXIgJ2lz ZWFyY2gtbWF0Y2gtc2Nyb2xsLWNvbW1hbmQgJ2lzZWFyY2gtYmVnaW5uaW5n LW9mLWJ1ZmZlcikNCisocHV0ICdlbmQtb2YtYnVmZmVyICdpc2VhcmNoLW1h dGNoLXNjcm9sbC1jb21tYW5kICdpc2VhcmNoLWVuZC1vZi1idWZmZXIpDQor KHB1dCAnc2Nyb2xsLXVwLWNvbW1hbmQgJ2lzZWFyY2gtbWF0Y2gtc2Nyb2xs LWNvbW1hbmQgJ2lzZWFyY2gtc2Nyb2xsLXVwKQ0KKyhwdXQgJ3Njcm9sbC1k b3duLWNvbW1hbmQgJ2lzZWFyY2gtbWF0Y2gtc2Nyb2xsLWNvbW1hbmQgJ2lz ZWFyY2gtc2Nyb2xsLWRvd24pDQorDQorKGRlZmN1c3RvbSBpc2VhcmNoLWFs bG93LW1hdGNoLXNjcm9sbCBuaWwNCisgICJXaGV0aGVyIHNjcm9sbGluZyB0 byBhbm90aGVyIG1hdGNoIGlzIGFsbG93ZWQgZHVyaW5nIGluY3JlbWVudGFs IHNlYXJjaC4NCitJZiBub24tbmlsLCB0aGUgZm91ciBzY3JvbGxpbmcgY29t bWFuZHMgYGJlZ2lubmluZy1vZi1idWZmZXInLA0KK2BlbmQtb2YtYnVmZmVy JywgYHNjcm9sbC11cC1jb21tYW5kJyBhbmQgYHNjcm9sbC1kb3duLWNvbW1h bmQnIG1vdmUNCityZXNwZWN0aXZlbHkgdG8gdGhlIGZpcnN0IGZpcnN0IG9j Y3VycmVuY2Ugb2YgdGhlIGN1cnJlbnQgc2VhcmNoIHN0cmluZyBpbg0KK3Ro ZSBidWZmZXIsIHRoZSBsYXN0IG9uZSwgdGhlIGZpcnN0IG9uZSBhZnRlciB0 aGUgY3VycmVudCB3aW5kb3csIGFuZCB0aGUNCitsYXN0IG9uZSBiZWZvcmUg dGhlIGN1cnJlbnQgd2luZG93Lg0KK1NlZSBhbHNvIHRoZSByZWxhdGVkIG9w dGlvbiBgaXNlYXJjaC1hbGxvdy1zY3JvbGwnLiINCisgIDp0eXBlICcoY2hv aWNlIChjb25zdCA6dGFnICJPZmYiIG5pbCkNCisgICAgICAgICAgICAgICAg IChjb25zdCB0YWcgIk9uIiB0KSkNCisgIDpncm91cCAnaXNlYXJjaCkNCisN CiAoZGVmY3VzdG9tIGlzZWFyY2gtYWxsb3ctcHJlZml4IHQNCiAgICJXaGV0 aGVyIHByZWZpeCBhcmd1bWVudHMgYXJlIGFsbG93ZWQgZHVyaW5nIGluY3Jl bWVudGFsIHNlYXJjaC4NCiBJZiBub24tbmlsLCBlbnRlcmluZyBhIHByZWZp eCBhcmd1bWVudCB3aWxsIG5vdCB0ZXJtaW5hdGUgdGhlDQpAQCAtMjk0Nyw2 ICsyOTg3LDExIEBAIGlzZWFyY2gtcHJlLWNvbW1hbmQtaG9vaw0KICAgICAg OzsgT3B0aW9uYWxseSBlZGl0IHRoZSBzZWFyY2ggc3RyaW5nIGluc3RlYWQg b2YgZXhpdGluZy4NCiAgICAgICgoZXEgc2VhcmNoLWV4aXQtb3B0aW9uICdl ZGl0KQ0KICAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAnaXNlYXJjaC1lZGl0 LXN0cmluZykpDQorICAgICA7OyBIYW5kbGUgbWF0Y2ggc2Nyb2xsaW5nIGZ1 bmN0aW9ucw0KKyAgICAgKChhbmQgaXNlYXJjaC1hbGxvdy1tYXRjaC1zY3Jv bGwNCisgICAgICAgICAgIChzeW1ib2xwIHRoaXMtY29tbWFuZCkNCisgICAg ICAgICAgIChlcSAoZ2V0IHRoaXMtY29tbWFuZCAnaXNlYXJjaC1tYXRjaC1z Y3JvbGwpIHQpKQ0KKyAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAoZ2V0IHRo aXMtY29tbWFuZCAnaXNlYXJjaC1tYXRjaC1zY3JvbGwtY29tbWFuZCkpKQ0K ICAgICAgOzsgSGFuZGxlIGEgc2Nyb2xsaW5nIGZ1bmN0aW9uIG9yIHByZWZp eCBhcmd1bWVudC4NCiAgICAgICgob3IgKGFuZCBpc2VhcmNoLWFsbG93LXBy ZWZpeA0KICAgICAgICAgICAgICAgIChtZW1xIHRoaXMtY29tbWFuZCAnKHVu aXZlcnNhbC1hcmd1bWVudCB1bml2ZXJzYWwtYXJndW1lbnQtbW9yZQ0KLS0g DQoyLjMwLjINCg0K --t4f3WfSMVZ--