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#54588: 29.0.50; [PATCH] Don't use `eshell-convert' when not needed / Fix setting umask in Eshell Date: Sat, 26 Mar 2022 15:40:00 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------E592D835F6374AD9F6A5C62D" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8065"; mail-complaints-to="usenet@ciao.gmane.io" To: 54588@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Mar 26 23:41:12 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 1nYF5r-0001yT-Qx for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 26 Mar 2022 23:41:11 +0100 Original-Received: from localhost ([::1]:40760 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nYF5q-0006y7-Bh for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 26 Mar 2022 18:41:10 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:38164) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nYF5i-0006xw-Qi for bug-gnu-emacs@gnu.org; Sat, 26 Mar 2022 18:41:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:60950) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nYF5i-0001Gx-HO for bug-gnu-emacs@gnu.org; Sat, 26 Mar 2022 18:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nYF5i-00074z-8s for bug-gnu-emacs@gnu.org; Sat, 26 Mar 2022 18:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 26 Mar 2022 22:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 54588 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.164833441127140 (code B ref -1); Sat, 26 Mar 2022 22:41:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 26 Mar 2022 22:40:11 +0000 Original-Received: from localhost ([127.0.0.1]:54847 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nYF4s-00073d-3F for submit@debbugs.gnu.org; Sat, 26 Mar 2022 18:40:11 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:38608) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nYF4q-00073S-1K for submit@debbugs.gnu.org; Sat, 26 Mar 2022 18:40:08 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:38056) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nYF4p-0006q4-Pr for bug-gnu-emacs@gnu.org; Sat, 26 Mar 2022 18:40:07 -0400 Original-Received: from [2607:f8b0:4864:20::62b] (port=35806 helo=mail-pl1-x62b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nYF4n-00018r-PI for bug-gnu-emacs@gnu.org; Sat, 26 Mar 2022 18:40:07 -0400 Original-Received: by mail-pl1-x62b.google.com with SMTP id y6so9144134plg.2 for ; Sat, 26 Mar 2022 15:40:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:subject:to:message-id:date:mime-version:content-language; bh=62Rr0hum9y1SRhMkbzxVyAImahzJiU0GYshl4PYBEbg=; b=GVyuBJ+eN6jeDTr/YUOLn3fXRGgmTi7gBjvPFL35XjvsZQ7OoQugSLiRmsFS6kvCXc CBZRsQVvM1FtH9b6PDEjoBS0Yn9KJMTojCYNyugkkMiwi6B8fZYJCtfw4bPAhgjI74HW BTircfrPvulDRT03bStT+yuVEbjWPo0/sREp/9GXn/UBhDXalgLeVZDk2Nk33hvi7Zo+ 2lnGwJ8A+oFliIn+f9Ty6lfLBpvhby4d2wTAI32svnpWyHhxSSGeuVc7aBpoLTOFvY3y Urqov6/s08lYG94lCNbmUl6CSy+Ta5ME91KjXjw3vkKCcThYpHnAzSBFL5lzXJ3Dodn1 h3+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:subject:to:message-id:date:mime-version :content-language; bh=62Rr0hum9y1SRhMkbzxVyAImahzJiU0GYshl4PYBEbg=; b=3olM0KiizGcbStCWqJeHosgGgoCCop0EF62AnTopmDSvjc6T+wtF9GTnwaaDfsAoHg DvsMGtoDnc0E7yHYgR+NekFY+proOPKJoBHf8xoKOCGuCtd+7LcTe1PSfMJQDfFmfw9p HGeWzlJVLjJPZ/j+kXWkMwV+iOz+dmtPOzlukeBTXCgDXFpYL8ZqnDxFja64H+nW71jE HYt7VCA+RN5kW4P/8zDW6FkvckBEtniDdq1gLKQCi9cCZZ6oHxb74KdqO3HzTmD8XqGd 254SCbPoHNulY6Mnvwcu9Pq5bQBO93PkFGtec73mRJzOohrniYSt21tU8APMIzRzASLj Zkdw== X-Gm-Message-State: AOAM532r3qjArlO8AaM2L5VCMaL6+oX/yS0ZG/0XPnObbX830w+dgIQd tpOOu/3PevUQ886iJax6kXBvqNk5794= X-Google-Smtp-Source: ABdhPJxV41d6hu+C+xrdyPuXD+Q4jz2MpgekV1RlgHZ8Fk1WRCK2AARelNXMy2hulwEZM4Kidip82w== X-Received: by 2002:a17:90b:4b8a:b0:1c7:24c4:e28c with SMTP id lr10-20020a17090b4b8a00b001c724c4e28cmr32871058pjb.39.1648334403783; Sat, 26 Mar 2022 15:40:03 -0700 (PDT) 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 s18-20020a639e12000000b00381bd8604ecsm8786327pgd.40.2022.03.26.15.40.01 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 26 Mar 2022 15:40:02 -0700 (PDT) X-Mozilla-News-Host: news://news.gmane.org:119 Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::62b (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=jporterbugs@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action 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:228984 Archived-At: This is a multi-part message in MIME format. --------------E592D835F6374AD9F6A5C62D Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit There are two tightly-coupled reasons for this bug: first, I want to make some future improvements to `eshell-convert', so to prevent any potential for breakage, I wanted to reduce the number of places that use it when a simpler alternative exists. Second, there's an obscure bug in setting the umask in Eshell when you pass it an actual number (as opposed to a numeric string). From "emacs -Q --eval '(eshell)'": ~ $ umask 002 ~ $ umask 222 Warning: umask changed for all new files created by Emacs. ~ $ umask 222 ~ $ umask $(identity #o222) Warning: umask changed for all new files created by Emacs. ~ $ umask 146 The code is pretty complex, so I'll explain what's happening under the hood. When calling `umask 222', the "222" is converted to a decimal number by Eshell and passed to `eshell/umask'; then, `eshell-eval-using-options' converts that number (again, in decimal) back to a string. Next, `eshell/umask' calls `eshell-convert' to convert it *back* to a decimal number. If that worked, it calls `number-to-string' to convert it to a string again, then turns it into a character escape sequence like "?\222" and finally calls `read-from-string' on that to get a number. The `umask $(identity #o222)' case is similar, except that Eshell doesn't need to do the initial string-to-number conversion. However, then `eshell-eval-using-options' gets confused since it converts the value to a decimal string, throwing off the subsequent conversions. In my patch, the behavior is changed as follows. First, when calling `umask 222', the "222" is passed as a string, with no conversion. Next, `eshell-eval-using-options' is set to preserve arguments, so if you pass an actual number (as in `umask $(identity #o222)'), it doesn't try to stringify it. Then, if the argument is a string, `eshell/umask' converts it to an octal number. Finally, the numeric argument is used to set the umask. I also simplified the code for printing the umask a bit. That part just splits the symbolic and non-symbolic cases up so there's less duplicated work, plus simplifies the `format' call for the non-symbolic case. --------------E592D835F6374AD9F6A5C62D Content-Type: text/plain; charset=UTF-8; name="0001-Add-tests-for-Eshell-s-umask-command.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-tests-for-Eshell-s-umask-command.patch" RnJvbSA5OWUzNDRkNzQ5MjM4NDk5MWMzNWFlM2VlOTA5ZTZlNGI4YTdmMDY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjYgTWFyIDIwMjIgMTU6MDk6NTEgLTA3MDAKU3ViamVjdDogW1BB VENIIDEvMl0gQWRkIHRlc3RzIGZvciBFc2hlbGwncyB1bWFzayBjb21tYW5kCgonZW0tYmFz aWMtdGVzdC91bWFzay1zZXQnIGZhaWxzIHdoZW4gcGFzc2luZyBhbiBhY3R1YWwgbnVtYmVy IHRvIHRoZQpjb21tYW5kLCBidXQgdGhpcyBpcyBmaXhlZCBpbiB0aGUgc3Vic2VxdWVudCBj b21taXQuCgp0ZXN0L2xpc3AvZXNoZWxsL2VtLWJhc2ljLXRlc3RzLmVsOiBOZXcgZmlsZS4K LS0tCiB0ZXN0L2xpc3AvZXNoZWxsL2VtLWJhc2ljLXRlc3RzLmVsIHwgNzEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvbGlzcC9lc2hlbGwvZW0tYmFzaWMtdGVzdHMu ZWwKCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLWJhc2ljLXRlc3RzLmVsIGIv dGVzdC9saXNwL2VzaGVsbC9lbS1iYXNpYy10ZXN0cy5lbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi43YTI0ZjhiNDZjCi0tLSAvZGV2L251bGwKKysrIGIvdGVz dC9saXNwL2VzaGVsbC9lbS1iYXNpYy10ZXN0cy5lbApAQCAtMCwwICsxLDcxIEBACis7Ozsg ZW0tYmFzaWMtdGVzdHMuZWwgLS0tIGVtLWJhc2ljIHRlc3Qgc3VpdGUgIC0qLSBsZXhpY2Fs LWJpbmRpbmc6dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorCis7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3Mu CisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK Kzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKzs7IEdOVSBFbWFj cyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor OzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIEdO VSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisKKzs7OyBDb21tZW50YXJ5OgorCis7OyBUZXN0cyBmb3IgYmFzaWMgRXNoZWxsIGNvbW1h bmRzLgorCis7OzsgQ29kZToKKworKHJlcXVpcmUgJ2VydCkKKyhyZXF1aXJlICdlbS1iYXNp YykKKworKHJlcXVpcmUgJ2VzaGVsbC10ZXN0cy1oZWxwZXJzCisgICAgICAgICAoZXhwYW5k LWZpbGUtbmFtZSAiZXNoZWxsLXRlc3RzLWhlbHBlcnMiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZmlsZS1uYW1lLWRpcmVjdG9yeSAob3IgbG9hZC1maWxlLW5hbWUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0 LWRpcmVjdG9yeSkpKSkKKworOzs7IFRlc3RzOgorCisoZXJ0LWRlZnRlc3QgZW0tYmFzaWMt dGVzdC91bWFzay1wcmludC1udW1lcmljICgpCisgICJUZXN0IHByaW50aW5nIHVtYXNrIG51 bWVyaWNhbGx5LiIKKyAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdkZWZhdWx0LWZp bGUtbW9kZXMpIChsYW1iZGEgKCkgI283NzUpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLXRlc3QtY29tbWFuZC1yZXN1bHQgInVtYXNrIikgIjAwMlxuIikpKQorICAoY2wtbGV0 ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2RlZmF1bHQtZmlsZS1tb2RlcykgKGxhbWJkYSAoKSAj bzY1NCkpKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1jb21tYW5kLXJlc3Vs dCAidW1hc2siKSAiMTIzXG4iKSkpCisgIDs7IE1ha2Ugc3VyZSBsYXJnZXIgbnVtYmVycyBk b24ndCBjYXVzZSBwcm9ibGVtcy4KKyAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdk ZWZhdWx0LWZpbGUtbW9kZXMpIChsYW1iZGEgKCkgI28xNzc1KSkpCisgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC10ZXN0LWNvbW1hbmQtcmVzdWx0ICJ1bWFzayIpICIwMDJcbiIpKSkp CisKKyhlcnQtZGVmdGVzdCBlbS1iYXNpYy10ZXN0L3VtYXNrLXJlYWQtc3ltYm9saWMgKCkK KyAgIlRlc3QgcHJpbnRpbmcgdW1hc2sgc3ltYm9saWNhbGx5LiIKKyAgKGNsLWxldGYgKCgo c3ltYm9sLWZ1bmN0aW9uICdkZWZhdWx0LWZpbGUtbW9kZXMpIChsYW1iZGEgKCkgI283NzUp KSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLXRlc3QtY29tbWFuZC1yZXN1bHQgInVt YXNrIC1TIikKKyAgICAgICAgICAgICAgICAgICAidT1yd3gsZz1yd3gsbz1yeFxuIikpKQor ICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2RlZmF1bHQtZmlsZS1tb2RlcykgKGxh bWJkYSAoKSAjbzY1NCkpKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1jb21t YW5kLXJlc3VsdCAidW1hc2sgLVMiKQorICAgICAgICAgICAgICAgICAgICJ1PXd4LGc9cngs bz14XG4iKSkpCisgIDs7IE1ha2Ugc3VyZSBsYXJnZXIgbnVtYmVycyBkb24ndCBjYXVzZSBw cm9ibGVtcy4KKyAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdkZWZhdWx0LWZpbGUt bW9kZXMpIChsYW1iZGEgKCkgI28xNzc1KSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC10ZXN0LWNvbW1hbmQtcmVzdWx0ICJ1bWFzayAtUyIpCisgICAgICAgICAgICAgICAgICAg InU9cnd4LGc9cnd4LG89cnhcbiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1iYXNpYy10ZXN0 L3VtYXNrLXNldCAoKQorICAiVGVzdCBzZXR0aW5nIHVtYXNrLiIKKyAgKGxldCAoKGZpbGUt bW9kZXMgMCkpCisgICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdzZXQtZGVmYXVs dC1maWxlLW1vZGVzKQorICAgICAgICAgICAgICAgKGxhbWJkYSAobW9kZSkgKHNldHEgZmls ZS1tb2RlcyBtb2RlKSkpKQorICAgICAgKGVzaGVsbC10ZXN0LWNvbW1hbmQtcmVzdWx0ICJ1 bWFzayAwMDIiKQorICAgICAgKHNob3VsZCAoPSBmaWxlLW1vZGVzICNvNzc1KSkKKyAgICAg IChlc2hlbGwtdGVzdC1jb21tYW5kLXJlc3VsdCAidW1hc2sgMTIzIikKKyAgICAgIChzaG91 bGQgKD0gZmlsZS1tb2RlcyAjbzY1NCkpCisgICAgICAoZXNoZWxsLXRlc3QtY29tbWFuZC1y ZXN1bHQgInVtYXNrICQoaWRlbnRpdHkgI28yMjIpIikKKyAgICAgIChzaG91bGQgKD0gZmls ZS1tb2RlcyAjbzU1NSkpKSkpCisKKzs7IGVtLWJhc2ljLXRlc3RzLmVsIGVuZHMgaGVyZQot LSAKMi4yNS4xCgo= --------------E592D835F6374AD9F6A5C62D Content-Type: text/plain; charset=UTF-8; name="0002-Don-t-use-eshell-convert-when-all-we-want-is-a-numbe.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Don-t-use-eshell-convert-when-all-we-want-is-a-numbe.pa"; filename*1="tch" RnJvbSBmNTI5YzE0M2ZkOTg1MTA3NDRjMzYyNDI1ZDljOGQ3MjNjZmVjYTgyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjYgTWFyIDIwMjIgMTU6MTI6NDggLTA3MDAKU3ViamVjdDogW1BB VENIIDIvMl0gRG9uJ3QgdXNlICdlc2hlbGwtY29udmVydCcgd2hlbiBhbGwgd2Ugd2FudCBp cyBhIG51bWJlcgoKKiBsaXNwL2VzaGVsbC9lbS1oaXN0LmVsIChlc2hlbGwvaGlzdG9yeSk6 IFVzZSAnc3RyaW5nLXRvLW51bWJlcicKaW5zdGVhZCBvZiAnZXNoZWxsLWNvbnZlcnQnLgoK KiBsaXNwL2VzaGVsbC9lbS1iYXNpYy5lbCAoZXNoZWxsL3VtYXNrKTogU2ltcGxpZnkgaW1w bGVtZW50YXRpb24gYW5kCmJlIG1vcmUgY2FyZWZ1bCBhYm91dCBwYXJzaW5nIG51bWVyaWMg dW1hc2tzIHRvIHNldC4KLS0tCiBsaXNwL2VzaGVsbC9lbS1iYXNpYy5lbCB8IDU2ICsrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaXNwL2VzaGVsbC9lbS1o aXN0LmVsICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDMw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VtLWJhc2ljLmVsIGIv bGlzcC9lc2hlbGwvZW0tYmFzaWMuZWwKaW5kZXggYmE4NjhjZWU1OS4uNDQ4YjY3ODdlZSAx MDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0tYmFzaWMuZWwKKysrIGIvbGlzcC9lc2hlbGwv ZW0tYmFzaWMuZWwKQEAgLTE1NSwzOSArMTU1LDM3IEBAIGVzaGVsbC91bWFzawogICAgInVt YXNrIiBhcmdzCiAgICAnKCg/UyAic3ltYm9saWMiIG5pbCBzeW1ib2xpYy1wICJkaXNwbGF5 IHVtYXNrIHN5bWJvbGljYWxseSIpCiAgICAgICg/aCAiaGVscCIgbmlsIG5pbCAgImRpc3Bs YXkgdGhpcyB1c2FnZSBtZXNzYWdlIikKKyAgICAgOnByZXNlcnZlLWFyZ3MKICAgICAgOnVz YWdlICJbLVNdIFttb2RlXSIpCi0gICAoaWYgKG9yIChub3QgYXJncykgc3ltYm9saWMtcCkK LSAgICAgICAobGV0ICgobW9kc3RyCi0JICAgICAgKGNvbmNhdCAiMDAwIgotCQkgICAgICAo Zm9ybWF0ICIlbyIKLQkJCSAgICAgIChsb2dhbmQgKGxvZ25vdCAoZGVmYXVsdC1maWxlLW1v ZGVzKSkKLQkJCQkgICAgICA1MTEpKSkpKQotCSAoc2V0cSBtb2RzdHIgKHN1YnN0cmluZyBt b2RzdHIgKC0gKGxlbmd0aCBtb2RzdHIpIDMpKSkKLQkgKHdoZW4gc3ltYm9saWMtcAotCSAg IChsZXQgKChtb2RlIChkZWZhdWx0LWZpbGUtbW9kZXMpKSkKLQkgICAgIChzZXRxIG1vZHN0 cgotCQkgICAoZm9ybWF0Ci0JCSAgICAidT0lcyxnPSVzLG89JXMiCi0JCSAgICAoY29uY2F0 IChhbmQgKD0gKGxvZ2FuZCBtb2RlIDY0KSA2NCkgInIiKQotCQkJICAgIChhbmQgKD0gKGxv Z2FuZCBtb2RlIDEyOCkgMTI4KSAidyIpCi0JCQkgICAgKGFuZCAoPSAobG9nYW5kIG1vZGUg MjU2KSAyNTYpICJ4IikpCi0JCSAgICAoY29uY2F0IChhbmQgKD0gKGxvZ2FuZCBtb2RlIDgp IDgpICJyIikKLQkJCSAgICAoYW5kICg9IChsb2dhbmQgbW9kZSAxNikgMTYpICJ3IikKLQkJ CSAgICAoYW5kICg9IChsb2dhbmQgbW9kZSAzMikgMzIpICJ4IikpCi0JCSAgICAoY29uY2F0 IChhbmQgKD0gKGxvZ2FuZCBtb2RlIDEpIDEpICJyIikKLQkJCSAgICAoYW5kICg9IChsb2dh bmQgbW9kZSAyKSAyKSAidyIpCi0JCQkgICAgKGFuZCAoPSAobG9nYW5kIG1vZGUgNCkgNCkg IngiKSkpKSkpCi0JIChlc2hlbGwtcHJpbnRuIG1vZHN0cikpCi0gICAgIChzZXRjYXIgYXJn cyAoZXNoZWxsLWNvbnZlcnQgKGNhciBhcmdzKSkpCi0gICAgIChpZiAobnVtYmVycCAoY2Fy IGFyZ3MpKQotCSAoc2V0LWRlZmF1bHQtZmlsZS1tb2RlcwotCSAgKC0gNTExIChjYXIgKHJl YWQtZnJvbS1zdHJpbmcKLQkJICAgICAgIChjb25jYXQgIj9cXCIgKG51bWJlci10by1zdHJp bmcgKGNhciBhcmdzKSkpKSkpKQotICAgICAgIChlcnJvciAiU2V0dGluZyB1bWFzayBzeW1i b2xpY2FsbHkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIpKQorICAgKGNvbmQKKyAgICAoc3lt Ym9saWMtcAorICAgICAobGV0ICgobW9kZSAoZGVmYXVsdC1maWxlLW1vZGVzKSkpCisgICAg ICAgKGVzaGVsbC1wcmludG4KKyAgICAgICAgKGZvcm1hdCAidT0lcyxnPSVzLG89JXMiCisg ICAgICAgICAgICAgICAgKGNvbmNhdCAoYW5kICg9IChsb2dhbmQgbW9kZSA2NCkgNjQpICJy IikKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKD0gKGxvZ2FuZCBtb2RlIDEyOCkg MTI4KSAidyIpCisgICAgICAgICAgICAgICAgICAgICAgICAoYW5kICg9IChsb2dhbmQgbW9k ZSAyNTYpIDI1NikgIngiKSkKKyAgICAgICAgICAgICAgICAoY29uY2F0IChhbmQgKD0gKGxv Z2FuZCBtb2RlIDgpIDgpICJyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKD0g KGxvZ2FuZCBtb2RlIDE2KSAxNikgInciKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFu ZCAoPSAobG9nYW5kIG1vZGUgMzIpIDMyKSAieCIpKQorICAgICAgICAgICAgICAgIChjb25j YXQgKGFuZCAoPSAobG9nYW5kIG1vZGUgMSkgMSkgInIiKQorICAgICAgICAgICAgICAgICAg ICAgICAgKGFuZCAoPSAobG9nYW5kIG1vZGUgMikgMikgInciKQorICAgICAgICAgICAgICAg ICAgICAgICAgKGFuZCAoPSAobG9nYW5kIG1vZGUgNCkgNCkgIngiKSkpKSkpCisgICAgKChu b3QgYXJncykKKyAgICAgKGVzaGVsbC1wcmludG4gKGZvcm1hdCAiJTAzbyIgKGxvZ2FuZCAo bG9nbm90IChkZWZhdWx0LWZpbGUtbW9kZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICNvNzc3KSkpKQorICAgICh0CisgICAgICh3aGVuIChzdHJp bmdwIChjYXIgYXJncykpCisgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggIl5bMC03XSskIiAo Y2FyIGFyZ3MpKQorICAgICAgICAgICAoc2V0Y2FyIGFyZ3MgKHN0cmluZy10by1udW1iZXIg KGNhciBhcmdzKSA4KSkKKyAgICAgICAgIChlcnJvciAiU2V0dGluZyB1bWFzayBzeW1ib2xp Y2FsbHkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIpKSkKKyAgICAgKHNldC1kZWZhdWx0LWZp bGUtbW9kZXMgKC0gI283NzcgKGNhciBhcmdzKSkpCiAgICAgIChlc2hlbGwtcHJpbnQKLSAg ICAgICJXYXJuaW5nOiB1bWFzayBjaGFuZ2VkIGZvciBhbGwgbmV3IGZpbGVzIGNyZWF0ZWQg YnkgRW1hY3MuXG4iKSkKKyAgICAgICJXYXJuaW5nOiB1bWFzayBjaGFuZ2VkIGZvciBhbGwg bmV3IGZpbGVzIGNyZWF0ZWQgYnkgRW1hY3MuXG4iKSkpCiAgICBuaWwpKQogCisocHV0ICdl c2hlbGwvdW1hc2sgJ2VzaGVsbC1uby1udW1lcmljLWNvbnZlcnNpb25zIHQpCisKIChwcm92 aWRlICdlbS1iYXNpYykKIAogOzsgTG9jYWwgVmFyaWFibGVzOgpkaWZmIC0tZ2l0IGEvbGlz cC9lc2hlbGwvZW0taGlzdC5lbCBiL2xpc3AvZXNoZWxsL2VtLWhpc3QuZWwKaW5kZXggMTZh YmYwNDQ4OS4uYTE4MTI3YTU0NyAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0taGlzdC5l bAorKysgYi9saXNwL2VzaGVsbC9lbS1oaXN0LmVsCkBAIC0zNDEsNyArMzQxLDcgQEAgZXNo ZWxsL2hpc3RvcnkKIAkoZXJyb3IgIk5vIGhpc3RvcnkiKSkKICAgIChsZXQgKGxlbmd0aCBm aWxlKQogICAgICAod2hlbiAoYW5kIGFyZ3MgKHN0cmluZy1tYXRjaCAiXlswLTldKyQiIChj YXIgYXJncykpKQotICAgICAgIChzZXRxIGxlbmd0aCAobWluIChlc2hlbGwtY29udmVydCAo Y2FyIGFyZ3MpKQorICAgICAgIChzZXRxIGxlbmd0aCAobWluIChzdHJpbmctdG8tbnVtYmVy IChjYXIgYXJncykpCiAJCQkgKHJpbmctbGVuZ3RoIGVzaGVsbC1oaXN0b3J5LXJpbmcpKQog CSAgICAgYXJncyAoY2RyIGFyZ3MpKSkKICAgICAgKGFuZCBsZW5ndGgKLS0gCjIuMjUuMQoK --------------E592D835F6374AD9F6A5C62D--