From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#51699: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files Date: Wed, 10 Nov 2021 16:48:03 -0800 Message-ID: <0f898153-b128-c39b-f366-55cb1bacad57@gmail.com> References: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> <87ee7pqg2e.fsf@gmx.de> <5834652a-5624-a463-fe56-5c8f0841787b@gmail.com> <87wnlgtdbv.fsf@gmx.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------FAA6A051A5FADAAFAACEFF10" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35224"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 51699@debbugs.gnu.org To: Michael Albinus Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Nov 11 01:49:21 2021 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 1mkyHJ-00092F-3a for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 11 Nov 2021 01:49:21 +0100 Original-Received: from localhost ([::1]:40250 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mkyHH-0008LQ-AS for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 10 Nov 2021 19:49:19 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:45110) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkyH0-0008Kf-Su for bug-gnu-emacs@gnu.org; Wed, 10 Nov 2021 19:49:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:56216) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkyH0-0004Hk-FR for bug-gnu-emacs@gnu.org; Wed, 10 Nov 2021 19:49:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mkyH0-0007qO-BK for bug-gnu-emacs@gnu.org; Wed, 10 Nov 2021 19:49:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 11 Nov 2021 00:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51699 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 51699-submit@debbugs.gnu.org id=B51699.163659169530091 (code B ref 51699); Thu, 11 Nov 2021 00:49:02 +0000 Original-Received: (at 51699) by debbugs.gnu.org; 11 Nov 2021 00:48:15 +0000 Original-Received: from localhost ([127.0.0.1]:39529 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkyGE-0007pH-AK for submit@debbugs.gnu.org; Wed, 10 Nov 2021 19:48:15 -0500 Original-Received: from mail-pg1-f182.google.com ([209.85.215.182]:42523) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkyGB-0007p3-Dp for 51699@debbugs.gnu.org; Wed, 10 Nov 2021 19:48:12 -0500 Original-Received: by mail-pg1-f182.google.com with SMTP id r132so1544841pgr.9 for <51699@debbugs.gnu.org>; Wed, 10 Nov 2021 16:48:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=Wq73PYtHESg88fRSsXRizyWq5wZ6J5QHEoF8/VFwark=; b=JCq9EDMDr5VstXb/JycVs5kX+128Alky+xh0dHOJuMuMBNMdefUyO2tCMAM1hQ1oYF RfTL+ars04DbZt2anfZg30vHHuOq4cB8WSRy/oBRljXCo5BeRagGtS8EW47xFz9ZqGhm xGlR4oT8u8YLqEUE33kUqrPhFrIE1xJYE+ZyFSTUPwr0ESYLfPXfTHtlIzaOUNGTZ8dG kV2++kBkuLFxT6WETm7h2DhuT8mx/pdQIjH0mVPwK+O3SndyTUHNqnQ2uPOU9gftVdrX A8d3iNlSEutnzK4nHzvGk62PAuu2VGRTxQZS3d7Sf3qi//pKjunxz5abiGfdy0+2nH4K 7q/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=Wq73PYtHESg88fRSsXRizyWq5wZ6J5QHEoF8/VFwark=; b=G1vj1ifCMKBlYGbemncUS7JfKIfvRB7UKH+U40fEPquxvyJkq2ggkXwbT4GeHddTjm mlZAdNj7mEM8dTFxcEPj4+YSkNUClcEI2uXwmVhm6sEemBi8rQeTPwFVTfvqfUYKdDvo DfOIoA6K1oN0Xx6x2ADrpuxavE5dZcuIDd8TTPcUrlKvLhNgWJDoGHs7b4hZsSXnSckG ZhTwEKXRHnQqQmOf5Nn26aUK5wccgbRA2S+QtTFgidrc1hltejarQshhnowcxGF0aYSi /ytXr3eTUk/lhpsHfqpFd9RbujIOsE5Mukk9SB52kwDH03JxGbT9gujOKAxUu67jD1/Z uT2g== X-Gm-Message-State: AOAM531gX/pNoFR3YYt2dZgh0OGZqPoZWh+GVZodfwHRv5zmyBnTlMHC rzWyhP9k/TYfUJGKasH5/+2PYJ2t6XQ= X-Google-Smtp-Source: ABdhPJzvkqURPpVSlejDFruPNgxfom9Inu0krtDWZC53YmMigy80DieZudpQildr6v0HJ0XMweIccQ== X-Received: by 2002:a62:150e:0:b0:49f:9a61:962f with SMTP id 14-20020a62150e000000b0049f9a61962fmr3037887pfv.58.1636591685432; Wed, 10 Nov 2021 16:48:05 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id s3sm687984pjk.41.2021.11.10.16.48.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Nov 2021 16:48:04 -0800 (PST) In-Reply-To: <87wnlgtdbv.fsf@gmx.de> Content-Language: en-US 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:219567 Archived-At: This is a multi-part message in MIME format. --------------FAA6A051A5FADAAFAACEFF10 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/10/2021 4:17 AM, Michael Albinus wrote: > `tramp-find-foreign-file-name-handler' loops through > `tramp-register-foreign-file-name-handler'. Only operations registered > there need to support a VEC-OR-FILENAME argument. > `tramp-archive-file-name-p' and `tramp-crypt-file-name-p' are not > registered, so no change is needed. Ah ha. I didn't realize they weren't included (I thought I just had to configure something to add them in `tramp-foreign-file-name-handler-alist'). In that case, it definitely makes sense eliminate the `accepts-vec' bits from my patch. > We could (and should) inform the authors of both packages, that the > signature for the `tramp-FOO-file-name-p' functions will change with > Tramp 2.6. As I can see, there's no problem to adapt > `magit-tramp-file-name-p' and `tramp-jumper-file-name-p'. And yes, an > entry in etc/NEWS should be added as well. Sounds good to me. I've added a NEWS entry that hopefully explains the change fairly clearly. Just to be extra-certain, I re-ran my performance tests from before and the results are the same. > A little bit more friendly for debugging: > > --8<---------------cut here---------------start------------->8--- > ;; The signature of `tramp-FOO-file-name-p' has changed, it > ;; expects a VEC here. > (when (with-demoted-errors "Error: %S" (funcall (car elt) vec)) > --8<---------------cut here---------------end--------------->8--- I went with this since it should make it easier for third parties to notice the issue and make the appropriate update to their code. Thanks for the pointer. --------------FAA6A051A5FADAAFAACEFF10 Content-Type: text/plain; charset=UTF-8; name="0001-Improve-performance-of-tramp-find-foreign-file-name-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Improve-performance-of-tramp-find-foreign-file-name-.pa"; filename*1="tch" RnJvbSAyYWVjOGUyMWEzZTM3NzI4YTk5MGM0ZjExNmY2MGM4YjEyYmIyMTEwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTAgTm92IDIwMjEgMTY6NDE6MDAgLTA4MDAKU3ViamVjdDogW1BB VENIXSBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mICd0cmFtcC1maW5kLWZvcmVpZ24tZmlsZS1u YW1lLWhhbmRsZXInCgpQcmV2aW91c2x5LCBlYWNoIGZ1bmN0aW9uIGluICd0cmFtcC1mb3Jl aWduLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0Jwp3b3VsZCBjYWxsICd0cmFtcC1kaXNzZWN0 LWZpbGUtbmFtZScsIHJlc3VsdGluZyBpbiBpdCBiZWluZyBjYWxsZWQKc2V2ZXJhbCB0aW1l cyB3aGVuZXZlciAndHJhbXAtZmluZC1mb3JlaWduLWZpbGUtbmFtZS1oYW5kbGVyJyB3YXMK Y2FsbGVkLiAgTm93LCBmdW5jdGlvbnMgdGFrZSB0aGUgZGlzc2VjdGVkIGZpbGUgbmFtZSB0 byBhdm9pZCB0aGlzCmR1cGxpY2F0ZWQgZWZmb3J0LgoKKiBsaXNwL25ldC90cmFtcC5lbCAo dHJhbXAtZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUpOiBOZXcgZnVuY3Rpb24uCih0cmFt cC1maW5kLWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIpOiBQYXNzIGRpc3NlY3RlZCBmaWxl IG5hbWUgdG8KZnVuY3Rpb25zLgoodHJhbXAtY29ubmVjdGFibGUtcCk6IFVzZSAndHJhbXAt ZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUnLgoKKiBsaXNwL25ldC90cmFtcC1hZGIuZWwg KHRyYW1wLWFkYi1maWxlLW5hbWUtcCk6CiogbGlzcC9uZXQvdHJhbXAtZnRwLmVsICh0cmFt cC1mdHAtZmlsZS1uYW1lLXApOgoqIGxpc3AvbmV0L3RyYW1wLWd2ZnMuZWwgKHRyYW1wLWd2 ZnMtZmlsZS1uYW1lLXApOgoqIGxpc3AvbmV0L3RyYW1wLXJjbG9uZS5lbCAodHJhbXAtcmNs b25lLWZpbGUtbmFtZS1wKToKKiBsaXNwL25ldC90cmFtcC1zbWIuZWwgKHRyYW1wLXNtYi1m aWxlLW5hbWUtcCk6CiogbGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwgKHRyYW1wLXNzaGZzLWZp bGUtbmFtZS1wKToKKiBsaXNwL25ldC90cmFtcC1zdWRvZWRpdC5lbCAodHJhbXAtc3Vkb2Vk aXQtZmlsZS1uYW1lLXApOgpBY2NlcHQgZGlzc2VjdGVkIGZpbGUgbmFtZXMuCgoqIGV0Yy9O RVdTOiBBbm5vdW5jZSB0aGlzIGNoYW5nZS4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAg ICAgICB8ICA2ICsrKysrKwogbGlzcC9uZXQvdHJhbXAtYWRiLmVsICAgICAgfCAgOSArKysr LS0tLS0KIGxpc3AvbmV0L3RyYW1wLWZ0cC5lbCAgICAgIHwgIDkgKysrKy0tLS0tCiBsaXNw L25ldC90cmFtcC1ndmZzLmVsICAgICB8IDExICsrKysrLS0tLS0tCiBsaXNwL25ldC90cmFt cC1yY2xvbmUuZWwgICB8ICA5ICsrKystLS0tLQogbGlzcC9uZXQvdHJhbXAtc21iLmVsICAg ICAgfCAgOSArKysrLS0tLS0KIGxpc3AvbmV0L3RyYW1wLXNzaGZzLmVsICAgIHwgIDkgKysr Ky0tLS0tCiBsaXNwL25ldC90cmFtcC1zdWRvZWRpdC5lbCB8ICA5ICsrKystLS0tLQogbGlz cC9uZXQvdHJhbXAuZWwgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKystLS0tLS0t LQogOSBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IDgwN2YzMWZhMzMuLjlm M2E3NzNhNWIgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC01NzEs NiArNTcxLDEyIEBAIGdldCBwcm9wZXIgbG9jYWxlLWRlcGVuZGVudCBkb3duY2FzaW5nLCB0 aGUgc3RyaW5nIGhhcyB0byBiZSBjb252ZXJ0ZWQKIHRvIG11bHRpYnl0ZSBmaXJzdC4gIChU aGlzIGdvZXMgZm9yIHRoZSBvdGhlciBjYXNlLWNoYW5naW5nIGZ1bmN0aW9ucywKIHRvby4p CiAKKy0tLQorKiogRnVuY3Rpb25zIGluICd0cmFtcC1mb3JlaWduLWZpbGUtbmFtZS1oYW5k bGVyLWFsaXN0JyBoYXZlIGNoYW5nZWQuCitGdW5jdGlvbnMgdG8gZGV0ZXJtaW5lIHdoaWNo IFRyYW1wIGZpbGUgbmFtZSBoYW5kbGVyIHRvIHVzZSBhcmUgbm93CitwYXNzZWQgYSBmaWxl IG5hbWUgaW4gZGlzc2VjdGVkIGZvcm0gKHZpYSAndHJhbXAtZGlzc2VjdC1maWxlLW5hbWUn KQoraW5zdGVhZCBvZiBpbiBzdHJpbmcgZm9ybS4KKwogLS0tCiAqKiAnZGVmJyBpbmRlbnRh dGlvbiBjaGFuZ2VzLgogSW4gJ2VtYWNzLWxpc3AtbW9kZScsIGZvcm1zIHdpdGggYSBzeW1i b2wgd2l0aCBhIG5hbWUgdGhhdCBzdGFydCB3aXRoCmRpZmYgLS1naXQgYS9saXNwL25ldC90 cmFtcC1hZGIuZWwgYi9saXNwL25ldC90cmFtcC1hZGIuZWwKaW5kZXggMzYyYTI1OGY0My4u ZTdmZTA3ZTQxNyAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtYWRiLmVsCisrKyBiL2xp c3AvbmV0L3RyYW1wLWFkYi5lbApAQCAtMTkxLDExICsxOTEsMTAgQEAgdHJhbXAtYWRiLWZp bGUtbmFtZS1oYW5kbGVyLWFsaXN0CiA7OyBJdCBtdXN0IGJlIGEgYGRlZnN1YnN0JyBpbiBv cmRlciB0byBwdXNoIHRoZSB3aG9sZSBjb2RlIGludG8KIDs7IHRyYW1wLWxvYWRkZWZzLmVs LiAgT3RoZXJ3aXNlLCB0aGVyZSB3b3VsZCBiZSByZWN1cnNpdmUgYXV0b2xvYWRpbmcuCiA7 OzsjIyN0cmFtcC1hdXRvbG9hZAotKGRlZnN1YnN0IHRyYW1wLWFkYi1maWxlLW5hbWUtcCAo ZmlsZW5hbWUpCi0gICJDaGVjayBpZiBpdCdzIGEgRklMRU5BTUUgZm9yIEFEQi4iCi0gIChh bmQgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAoc3RyaW5nPSAodHJh bXAtZmlsZS1uYW1lLW1ldGhvZCAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgZmlsZW5hbWUp KQotCQl0cmFtcC1hZGItbWV0aG9kKSkpCisoZGVmc3Vic3QgdHJhbXAtYWRiLWZpbGUtbmFt ZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdzIGEgVkVDLU9SLUZJTEVO QU1FIGZvciBBREIuIgorICAod2hlbi1sZXQqICgodmVjICh0cmFtcC1lbnN1cmUtZGlzc2Vj dGVkLWZpbGUtbmFtZSB2ZWMtb3ItZmlsZW5hbWUpKSkKKyAgICAoc3RyaW5nPSAodHJhbXAt ZmlsZS1uYW1lLW1ldGhvZCB2ZWMpIHRyYW1wLWFkYi1tZXRob2QpKSkKIAogOzs7IyMjdHJh bXAtYXV0b2xvYWQKIChkZWZ1biB0cmFtcC1hZGItZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJh dGlvbiAmcmVzdCBhcmdzKQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtZnRwLmVsIGIv bGlzcC9uZXQvdHJhbXAtZnRwLmVsCmluZGV4IDExY2NkYzhhNGMuLmY3OGMwOGVjNDEgMTAw NjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLWZ0cC5lbAorKysgYi9saXNwL25ldC90cmFtcC1m dHAuZWwKQEAgLTE3NSwxMSArMTc1LDEwIEBAIHRyYW1wLWZ0cC1maWxlLW5hbWUtaGFuZGxl cgogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8gcHVzaCB0aGUgd2hv bGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVyd2lzZSwgdGhlcmUg d291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJhbXAtYXV0b2xvYWQK LShkZWZzdWJzdCB0cmFtcC1mdHAtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQotICAiQ2hlY2sg aWYgaXQncyBhIEZJTEVOQU1FIHRoYXQgc2hvdWxkIGJlIGZvcndhcmRlZCB0byBBbmdlLUZU UC4iCi0gIChhbmQgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAoc3Ry aW5nPSAodHJhbXAtZmlsZS1uYW1lLW1ldGhvZCAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUg ZmlsZW5hbWUpKQotCQl0cmFtcC1mdHAtbWV0aG9kKSkpCisoZGVmc3Vic3QgdHJhbXAtZnRw LWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdzIGEgVkVD LU9SLUZJTEVOQU1FIHRoYXQgc2hvdWxkIGJlIGZvcndhcmRlZCB0byBBbmdlLUZUUC4iCisg ICh3aGVuLWxldCogKCh2ZWMgKHRyYW1wLWVuc3VyZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZl Yy1vci1maWxlbmFtZSkpKQorICAgIChzdHJpbmc9ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9k IHZlYykgdHJhbXAtZnRwLW1ldGhvZCkpKQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKHRy YW1wLS13aXRoLXN0YXJ0dXAKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLWd2ZnMuZWwg Yi9saXNwL25ldC90cmFtcC1ndmZzLmVsCmluZGV4IGNhYjkxMmJkOTMuLjFmOWQ5ZDk0MTUg MTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLWd2ZnMuZWwKKysrIGIvbGlzcC9uZXQvdHJh bXAtZ3Zmcy5lbApAQCAtODM0LDEyICs4MzQsMTEgQEAgdHJhbXAtZ3Zmcy1maWxlLW5hbWUt aGFuZGxlci1hbGlzdAogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8g cHVzaCB0aGUgd2hvbGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVy d2lzZSwgdGhlcmUgd291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJh bXAtYXV0b2xvYWQKLShkZWZzdWJzdCB0cmFtcC1ndmZzLWZpbGUtbmFtZS1wIChmaWxlbmFt ZSkKLSAgIkNoZWNrIGlmIGl0J3MgYSBGSUxFTkFNRSBoYW5kbGVkIGJ5IHRoZSBHVkZTIGRh ZW1vbi4iCi0gIChhbmQgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAo bGV0ICgobWV0aG9kCi0JICAgICAgKHRyYW1wLWZpbGUtbmFtZS1tZXRob2QgKHRyYW1wLWRp c3NlY3QtZmlsZS1uYW1lIGZpbGVuYW1lKSkpKQotCSAoYW5kIChzdHJpbmdwIG1ldGhvZCkg KG1lbWJlciBtZXRob2QgdHJhbXAtZ3Zmcy1tZXRob2RzKSkpKSkKKyhkZWZzdWJzdCB0cmFt cC1ndmZzLWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdz IGEgVkVDLU9SLUZJTEVOQU1FIGhhbmRsZWQgYnkgdGhlIEdWRlMgZGFlbW9uLiIKKyAgKHdo ZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUgdmVjLW9y LWZpbGVuYW1lKSkpCisgICAgKGxldCAoKG1ldGhvZCAodHJhbXAtZmlsZS1uYW1lLW1ldGhv ZCB2ZWMpKSkKKyAgICAgIChhbmQgKHN0cmluZ3AgbWV0aG9kKSAobWVtYmVyIG1ldGhvZCB0 cmFtcC1ndmZzLW1ldGhvZHMpKSkpKQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZnVu IHRyYW1wLWd2ZnMtZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdzKQpk aWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtcmNsb25lLmVsIGIvbGlzcC9uZXQvdHJhbXAt cmNsb25lLmVsCmluZGV4IDgxMmUwNmYzZjEuLjY0YjAxNzZkMDggMTAwNjQ0Ci0tLSBhL2xp c3AvbmV0L3RyYW1wLXJjbG9uZS5lbAorKysgYi9saXNwL25ldC90cmFtcC1yY2xvbmUuZWwK QEAgLTE1NiwxMSArMTU2LDEwIEBAIHRyYW1wLXJjbG9uZS1maWxlLW5hbWUtaGFuZGxlci1h bGlzdAogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8gcHVzaCB0aGUg d2hvbGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVyd2lzZSwgdGhl cmUgd291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJhbXAtYXV0b2xv YWQKLShkZWZzdWJzdCB0cmFtcC1yY2xvbmUtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQotICAi Q2hlY2sgaWYgaXQncyBhIEZJTEVOQU1FIGZvciByY2xvbmUuIgotICAoYW5kICh0cmFtcC10 cmFtcC1maWxlLXAgZmlsZW5hbWUpCi0gICAgICAgKHN0cmluZz0gKHRyYW1wLWZpbGUtbmFt ZS1tZXRob2QgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1lIGZpbGVuYW1lKSkKLQkJdHJhbXAt cmNsb25lLW1ldGhvZCkpKQorKGRlZnN1YnN0IHRyYW1wLXJjbG9uZS1maWxlLW5hbWUtcCAo dmVjLW9yLWZpbGVuYW1lKQorICAiQ2hlY2sgaWYgaXQncyBhIFZFQy1PUi1GSUxFTkFNRSBm b3IgcmNsb25lLiIKKyAgKHdoZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5zdXJlLWRpc3NlY3Rl ZC1maWxlLW5hbWUgdmVjLW9yLWZpbGVuYW1lKSkpCisgICAgKHN0cmluZz0gKHRyYW1wLWZp bGUtbmFtZS1tZXRob2QgdmVjKSB0cmFtcC1yY2xvbmUtbWV0aG9kKSkpCiAKIDs7OyMjI3Ry YW1wLWF1dG9sb2FkCiAoZGVmdW4gdHJhbXAtcmNsb25lLWZpbGUtbmFtZS1oYW5kbGVyIChv cGVyYXRpb24gJnJlc3QgYXJncykKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLXNtYi5l bCBiL2xpc3AvbmV0L3RyYW1wLXNtYi5lbAppbmRleCA0OWYwNDlkM2YzLi5hZWFiYzY5MjQ2 IDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC1zbWIuZWwKKysrIGIvbGlzcC9uZXQvdHJh bXAtc21iLmVsCkBAIC0zMzAsMTEgKzMzMCwxMCBAQCB0cmFtcC1zbWItd2luZXhlLXNoZWxs LWNvbW1hbmQtc3dpdGNoCiA7OyBJdCBtdXN0IGJlIGEgYGRlZnN1YnN0JyBpbiBvcmRlciB0 byBwdXNoIHRoZSB3aG9sZSBjb2RlIGludG8KIDs7IHRyYW1wLWxvYWRkZWZzLmVsLiAgT3Ro ZXJ3aXNlLCB0aGVyZSB3b3VsZCBiZSByZWN1cnNpdmUgYXV0b2xvYWRpbmcuCiA7OzsjIyN0 cmFtcC1hdXRvbG9hZAotKGRlZnN1YnN0IHRyYW1wLXNtYi1maWxlLW5hbWUtcCAoZmlsZW5h bWUpCi0gICJDaGVjayBpZiBpdCdzIGEgRklMRU5BTUUgZm9yIFNNQiBzZXJ2ZXJzLiIKLSAg KGFuZCAodHJhbXAtdHJhbXAtZmlsZS1wIGZpbGVuYW1lKQotICAgICAgIChzdHJpbmc9ICh0 cmFtcC1maWxlLW5hbWUtbWV0aG9kICh0cmFtcC1kaXNzZWN0LWZpbGUtbmFtZSBmaWxlbmFt ZSkpCi0JCXRyYW1wLXNtYi1tZXRob2QpKSkKKyhkZWZzdWJzdCB0cmFtcC1zbWItZmlsZS1u YW1lLXAgKHZlYy1vci1maWxlbmFtZSkKKyAgIkNoZWNrIGlmIGl0J3MgYSBWRUMtT1ItRklM RU5BTUUgZm9yIFNNQiBzZXJ2ZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5z dXJlLWRpc3NlY3RlZC1maWxlLW5hbWUgdmVjLW9yLWZpbGVuYW1lKSkpCisgICAgKHN0cmlu Zz0gKHRyYW1wLWZpbGUtbmFtZS1tZXRob2QgdmVjKSB0cmFtcC1zbWItbWV0aG9kKSkpCiAK IDs7OyMjI3RyYW1wLWF1dG9sb2FkCiAoZGVmdW4gdHJhbXAtc21iLWZpbGUtbmFtZS1oYW5k bGVyIChvcGVyYXRpb24gJnJlc3QgYXJncykKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1w LXNzaGZzLmVsIGIvbGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwKaW5kZXggYTEwMDc4NjM0NS4u NGJjODA0NTcxZSAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwKKysrIGIv bGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwKQEAgLTE1NiwxMSArMTU2LDEwIEBAIHRyYW1wLXNz aGZzLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0CiA7OyBJdCBtdXN0IGJlIGEgYGRlZnN1YnN0 JyBpbiBvcmRlciB0byBwdXNoIHRoZSB3aG9sZSBjb2RlIGludG8KIDs7IHRyYW1wLWxvYWRk ZWZzLmVsLiAgT3RoZXJ3aXNlLCB0aGVyZSB3b3VsZCBiZSByZWN1cnNpdmUgYXV0b2xvYWRp bmcuCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAotKGRlZnN1YnN0IHRyYW1wLXNzaGZzLWZpbGUt bmFtZS1wIChmaWxlbmFtZSkKLSAgIkNoZWNrIGlmIGl0J3MgYSBGSUxFTkFNRSBmb3Igc3No ZnMuIgotICAoYW5kICh0cmFtcC10cmFtcC1maWxlLXAgZmlsZW5hbWUpCi0gICAgICAgKHN0 cmluZz0gKHRyYW1wLWZpbGUtbmFtZS1tZXRob2QgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1l IGZpbGVuYW1lKSkKLQkgICAgICAgIHRyYW1wLXNzaGZzLW1ldGhvZCkpKQorKGRlZnN1YnN0 IHRyYW1wLXNzaGZzLWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBp ZiBpdCdzIGEgVkVDLU9SLUZJTEVOQU1FIGZvciBzc2hmcy4iCisgICh3aGVuLWxldCogKCh2 ZWMgKHRyYW1wLWVuc3VyZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFtZSkp KQorICAgIChzdHJpbmc9ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtc3No ZnMtbWV0aG9kKSkpCiAKIDs7OyMjI3RyYW1wLWF1dG9sb2FkCiAoZGVmdW4gdHJhbXAtc3No ZnMtZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdzKQpkaWZmIC0tZ2l0 IGEvbGlzcC9uZXQvdHJhbXAtc3Vkb2VkaXQuZWwgYi9saXNwL25ldC90cmFtcC1zdWRvZWRp dC5lbAppbmRleCA4NDVmMzFkMDliLi40OGM4MWE1OTg4IDEwMDY0NAotLS0gYS9saXNwL25l dC90cmFtcC1zdWRvZWRpdC5lbAorKysgYi9saXNwL25ldC90cmFtcC1zdWRvZWRpdC5lbApA QCAtMTQ4LDExICsxNDgsMTAgQEAgdHJhbXAtc3Vkb2VkaXQtZmlsZS1uYW1lLWhhbmRsZXIt YWxpc3QKIDs7IEl0IG11c3QgYmUgYSBgZGVmc3Vic3QnIGluIG9yZGVyIHRvIHB1c2ggdGhl IHdob2xlIGNvZGUgaW50bwogOzsgdHJhbXAtbG9hZGRlZnMuZWwuICBPdGhlcndpc2UsIHRo ZXJlIHdvdWxkIGJlIHJlY3Vyc2l2ZSBhdXRvbG9hZGluZy4KIDs7OyMjI3RyYW1wLWF1dG9s b2FkCi0oZGVmc3Vic3QgdHJhbXAtc3Vkb2VkaXQtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQot ICAiQ2hlY2sgaWYgaXQncyBhIEZJTEVOQU1FIGZvciBTVURPRURJVC4iCi0gIChhbmQgKHRy YW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAoc3RyaW5nPSAodHJhbXAtZmls ZS1uYW1lLW1ldGhvZCAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgZmlsZW5hbWUpKQotCQl0 cmFtcC1zdWRvZWRpdC1tZXRob2QpKSkKKyhkZWZzdWJzdCB0cmFtcC1zdWRvZWRpdC1maWxl LW5hbWUtcCAodmVjLW9yLWZpbGVuYW1lKQorICAiQ2hlY2sgaWYgaXQncyBhIFZFQy1PUi1G SUxFTkFNRSBmb3IgU1VET0VESVQuIgorICAod2hlbi1sZXQqICgodmVjICh0cmFtcC1lbnN1 cmUtZGlzc2VjdGVkLWZpbGUtbmFtZSB2ZWMtb3ItZmlsZW5hbWUpKSkKKyAgICAoc3RyaW5n PSAodHJhbXAtZmlsZS1uYW1lLW1ldGhvZCB2ZWMpIHRyYW1wLXN1ZG9lZGl0LW1ldGhvZCkp KQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZnVuIHRyYW1wLXN1ZG9lZGl0LWZpbGUt bmFtZS1oYW5kbGVyIChvcGVyYXRpb24gJnJlc3QgYXJncykKZGlmZiAtLWdpdCBhL2xpc3Av bmV0L3RyYW1wLmVsIGIvbGlzcC9uZXQvdHJhbXAuZWwKaW5kZXggYTg5NzJjZTY5ZS4uODVl ZmZlMWEwNCAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAuZWwKKysrIGIvbGlzcC9uZXQv dHJhbXAuZWwKQEAgLTE2NjksNiArMTY2OSwxNiBAQCB0cmFtcC1kaXNzZWN0LWZpbGUtbmFt ZQogCiAocHV0ICMndHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgJ3RyYW1wLXN1cHByZXNzLXRy YWNlIHQpCiAKKyhkZWZ1biB0cmFtcC1lbnN1cmUtZGlzc2VjdGVkLWZpbGUtbmFtZSAodmVj LW9yLWZpbGVuYW1lKQorICAiUmV0dXJuIGEgYHRyYW1wLWZpbGUtbmFtZScgc3RydWN0dXJl IGZvciBWRUMtT1ItRklMRU5BTUUuCisKK1ZFQy1PUi1GSUxFTkFNRSBtYXkgYmUgZWl0aGVy IGEgc3RyaW5nIG9yIGEgYHRyYW1wLWZpbGUtbmFtZScuCitJZiBpdCdzIG5vdCBhIFRyYW1w IGZpbGVuYW1lLCByZXR1cm4gbmlsLiIKKyAgKGNvbmQKKyAgICgodHJhbXAtZmlsZS1uYW1l LXAgdmVjLW9yLWZpbGVuYW1lKSB2ZWMtb3ItZmlsZW5hbWUpCisgICAoKHRyYW1wLXRyYW1w LWZpbGUtcCB2ZWMtb3ItZmlsZW5hbWUpCisgICAgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1l IHZlYy1vci1maWxlbmFtZSkpKSkKKwogKGRlZnVuIHRyYW1wLWRpc3NlY3QtaG9wLW5hbWUg KG5hbWUgJm9wdGlvbmFsIG5vZGVmYXVsdCkKICAgIlJldHVybiBhIGB0cmFtcC1maWxlLW5h bWUnIHN0cnVjdHVyZSBvZiBgaG9wJyBwYXJ0IG9mIE5BTUUuCiBTZWUgYHRyYW1wLWRpc3Nl Y3QtZmlsZS1uYW1lJyBmb3IgZGV0YWlscy4iCkBAIC0yNTUyLDExICsyNTYyLDE0IEBAIHRy YW1wLWZpbmQtZm9yZWlnbi1maWxlLW5hbWUtaGFuZGxlcgogICAiUmV0dXJuIGZvcmVpZ24g ZmlsZSBuYW1lIGhhbmRsZXIgaWYgZXhpc3RzLiIKICAgKHdoZW4gKHRyYW1wLXRyYW1wLWZp bGUtcCBmaWxlbmFtZSkKICAgICAobGV0ICgoaGFuZGxlciB0cmFtcC1mb3JlaWduLWZpbGUt bmFtZS1oYW5kbGVyLWFsaXN0KQorICAgICAgICAgICh2ZWMgKHRyYW1wLWRpc3NlY3QtZmls ZS1uYW1lIGZpbGVuYW1lKSkKIAkgIGVsdCByZXMpCiAgICAgICAod2hpbGUgaGFuZGxlcgog CShzZXRxIGVsdCAoY2FyIGhhbmRsZXIpCiAJICAgICAgaGFuZGxlciAoY2RyIGhhbmRsZXIp KQotCSh3aGVuIChmdW5jYWxsIChjYXIgZWx0KSBmaWxlbmFtZSkKKyAgICAgICAgOzsgUHJl dmlvdXNseSwgdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkIHdpdGggRklMRU5BTUUsIGJ1dCBu b3cKKyAgICAgICAgOzsgaXQncyBjYWxsZWQgd2l0aCB0aGUgVkVDLgorICAgICAgICAod2hl biAod2l0aC1kZW1vdGVkLWVycm9ycyAiRXJyb3I6ICVTIiAoZnVuY2FsbCAoY2FyIGVsdCkg dmVjKSkKIAkgIChzZXRxIGhhbmRsZXIgbmlsCiAJCXJlcyAoY2RyIGVsdCkpKSkKICAgICAg IHJlcykpKQpAQCAtMjc1NSw4ICsyNzY4LDkgQEAgdHJhbXAtcmVnaXN0ZXItZmlsZS1uYW1l LWhhbmRsZXJzCiAoZGVmdW4gdHJhbXAtcmVnaXN0ZXItZm9yZWlnbi1maWxlLW5hbWUtaGFu ZGxlcgogICAgIChmdW5jIGhhbmRsZXIgJm9wdGlvbmFsIGFwcGVuZCkKICAgIlJlZ2lzdGVy IChGVU5DIC4gSEFORExFUikgaW4gYHRyYW1wLWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIt YWxpc3QnLgotRlVOQyBpcyB0aGUgZnVuY3Rpb24sIHdoaWNoIGRldGVybWluZXMgd2hldGhl ciBIQU5ETEVSIGlzIHRvIGJlIGNhbGxlZC4KLUFkZCBvcGVyYXRpb25zIGRlZmluZWQgaW4g YEhBTkRMRVItYWxpc3QnIHRvIGB0cmFtcC1maWxlLW5hbWUtaGFuZGxlcicuIgorRlVOQyBp cyB0aGUgZnVuY3Rpb24sIHdoaWNoIHRha2VzIGEgZGlzc2VjdGVkIGZpbGVuYW1lIGFuZCBk ZXRlcm1pbmVzCit3aGV0aGVyIEhBTkRMRVIgaXMgdG8gYmUgY2FsbGVkLiAgQWRkIG9wZXJh dGlvbnMgZGVmaW5lZCBpbgorYEhBTkRMRVItYWxpc3QnIHRvIGB0cmFtcC1maWxlLW5hbWUt aGFuZGxlcicuIgogICAoYWRkLXRvLWxpc3QKICAgICd0cmFtcC1mb3JlaWduLWZpbGUtbmFt ZS1oYW5kbGVyLWFsaXN0IGAoLGZ1bmMgLiAsaGFuZGxlcikgYXBwZW5kKQogICA7OyBNYXJr IGBvcGVyYXRpb25zJyB0aGUgaGFuZGxlciBpcyByZXNwb25zaWJsZSBmb3IuCkBAIC0yODE0 LDExICsyODI4LDcgQEAgdHJhbXAtY29ubmVjdGFibGUtcAogVGhpcyBpcyB0cnVlLCBpZiBl aXRoZXIgdGhlIHJlbW90ZSBob3N0IGlzIGFscmVhZHkgY29ubmVjdGVkLCBvciBpZiB3ZSBh cmUKIG5vdCBpbiBjb21wbGV0aW9uIG1vZGUuIgogICAobGV0ICgodHJhbXAtdmVyYm9zZSAw KQotCSh2ZWMKLQkgKGNvbmQKLQkgICgodHJhbXAtZmlsZS1uYW1lLXAgdmVjLW9yLWZpbGVu YW1lKSB2ZWMtb3ItZmlsZW5hbWUpCi0JICAoKHRyYW1wLXRyYW1wLWZpbGUtcCB2ZWMtb3It ZmlsZW5hbWUpCi0JICAgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFt ZSkpKSkpCisJKHZlYyAodHJhbXAtZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUgdmVjLW9y LWZpbGVuYW1lKSkpCiAgICAgKG9yIDs7IFdlIGNoZWNrIHRoaXMgZm9yIHRoZSBwcm9jZXNz IHJlbGF0ZWQgdG8KIAk7OyBgdHJhbXAtYnVmZmVyLW5hbWUnOyBvdGhlcndpc2UgYHN0YXJ0 LWZpbGUtcHJvY2VzcycKIAk7OyB3b3VsZG4ndCBydW4gZXZlciB3aGVuIGBub24tZXNzZW50 aWFsJyBpcyBub24tbmlsLgotLSAKMi4yNS4xCgo= --------------FAA6A051A5FADAAFAACEFF10--