From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 20 Mar 2022 01:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 54470@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.164774010112008 (code B ref -1); Sun, 20 Mar 2022 01:35:02 +0000 Received: (at submit) by debbugs.gnu.org; 20 Mar 2022 01:35:01 +0000 Received: from localhost ([127.0.0.1]:60844 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVkTD-00037Z-AW for submit@debbugs.gnu.org; Sat, 19 Mar 2022 21:35:01 -0400 Received: from lists.gnu.org ([209.51.188.17]:43358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVkT9-00037O-RF for submit@debbugs.gnu.org; Sat, 19 Mar 2022 21:34:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48516) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVkT7-0003az-Rq for bug-gnu-emacs@gnu.org; Sat, 19 Mar 2022 21:34:54 -0400 Received: from [2607:f8b0:4864:20::1030] (port=39811 helo=mail-pj1-x1030.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nVkT1-0002ML-Il for bug-gnu-emacs@gnu.org; Sat, 19 Mar 2022 21:34:52 -0400 Received: by mail-pj1-x1030.google.com with SMTP id mr5-20020a17090b238500b001c67366ae93so9078833pjb.4 for ; Sat, 19 Mar 2022 18:34:46 -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=vfM2t8t56J0zI7BtMx4js2NeqycufOO3LYUyrOIugCY=; b=OGgQc8N2CvJu4nW5Pn7U0pKN+oU6PmScWP/W6qxiqCNuGBz2Y/NtC0LVQsqsltNfwV +0wLgRqJjhKbhwnpaVDe2Aaj0f4kjBXerQZlAaOW/AQomO3qghLIdl2/oBSagx6VZOA/ KCzJ14ZhY24ernruqcoM+TIJToDidshypw+m6GswUp3MFAVAjEG/6LN5mDg18Ia0VBa7 k916JZENvCaQVUJZaCFKiB3sAYvg/vtDdZCKUSvmLuaPeMHqdBSJma3FIxVNpwDQN88w 6lZcVsjAmDYVWJ80SI+i1DeFQtY4XD91epCZhAAGIzce3GmcpliEEGv4UF8b1FjfiF+k z6IQ== 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=vfM2t8t56J0zI7BtMx4js2NeqycufOO3LYUyrOIugCY=; b=L8lIPeyOQOvc7lD4H9Gg9IaejdNoyVr+TcdqVGN7yW+pFbYhMu0TBOwt8h8e81yIhh p7yLCK8dcsxcJ52pGOK3OMIcjpph2znIYbM4/rZJjoq0VvS/a6jhlLGMcThgHRL/jfPx TzGS6FstRRRnv3wlOEBcQoWGdPbzi3s4dXu6mqGji6+Y2lIWTAgk+bLwJAEQdCMcDUNF rAiEXy6jfqqjzcWx2mNy0lOEBAmbSO1BZZa/j1fDkuz9f4ooliYBT2NyohUAeOiiWW6+ uF3UVfF5R+hZH68wJBF2t7Q27CbY1POj0+YXDM8jqBQbEu/OBi61EX1R0Emt86oxdsKu 9I0A== X-Gm-Message-State: AOAM533ngOL8PhMvESBgZ/Ef687x/5bXSrBx0CxjXV6E3FBks6h/S01x HZwDIR32/qefmQwhgd3TsPzAMDmgD+8= X-Google-Smtp-Source: ABdhPJzEOvRpoA+JnwOLY+GdbicEHZJO/Gp00Kx0jH75mQShYiUnCHecJCCF01n7kB8AOMdUf/Jn4Q== X-Received: by 2002:a17:90b:314e:b0:1bf:38a0:8e6b with SMTP id ip14-20020a17090b314e00b001bf38a08e6bmr29946885pjb.22.1647740085409; Sat, 19 Mar 2022 18:34:45 -0700 (PDT) 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 b1-20020a17090aa58100b001bcb7bad374sm15281407pjq.17.2022.03.19.18.34.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 19 Mar 2022 18:34:44 -0700 (PDT) X-Mozilla-News-Host: news://news.gmane.org:119 From: Jim Porter Message-ID: Date: Sat, 19 Mar 2022 18:34:44 -0700 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------C0019A5743A1697E327601E5" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1030 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x1030.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-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Eshell supports a few ways of expanding and manipulating arguments: globs (which most people are likely familiar with from other shells), as well as predicates (which let you filter lists of file names based on the files' properties) and modifiers (which perform common transformations, mostly on lists). However, these lack unit tests and are currently only documented in the manual as follows: Eshell’s globbing syntax is very similar to that of Zsh. Users coming from Bash can still use Bash-style globbing, as there are no incompatibilities. Most globbing is pattern-based expansion, but there is also predicate-based expansion. See Filename Generation in The Z Shell Manual, for full syntax. As the manual says, the syntax is "similar"; it's not actually the same. It also doesn't mention argument modifiers, which are related to predicates, but let you do different things. I think it would be best to fully-document the syntax so that the Eshell-specific bits are clear. Attached are some patches to add documentation and tests for this. For globbing, I only added tests/documentation, but for predicates and modifiers, I found a few bugs as well. I'll describe each of them: 1. The "is a socket" predicate conflicts with the "is setuid" predicate (both are `s'), meaning that it's impossible to filter on the setuid bit. I've updated the "is a socket" predicate to be `=', matching zsh. 2. The "join" (`j') modifier was documented as joining a list and separating the element by a space, but it actually joined the list with no separator. It now behaves according to the documentation. 3. The "eval again" (`E') modifier didn't work; it called `eshell-parse-argument' with one argument, but that function takes no args. I've fixed this, though I had to make an educated guess on what the behavior should be. I chose the behavior closest to what the previous implementation looked like it was trying to do: re-evaluate the value as though it were a single argument (another option would be to re-evaluate as though it were a full shell command, i.e. to invoke a program). I've documented the behavior in the manual, so hopefully that will explain how it works. Finally, I added support for the "is effective gid" predicate (`G'). That was already there, but commented out. It just needed uncommenting and the uid parts renamed to gid. I'm not sure if there was some reason for it to be commented out, but it works fine in my tests. Hopefully the documentation I've added is structured/worded reasonably well. I did my best to follow existing conventions despite the very-different syntax (especially for predicates/modifiers), and tried to give a reasonable level of detail for all the options. If there's anything that's confusing or needs expanded, just let me know and I'll try to improve it. Finally, I'm not sure if any of the behavior changes should be documented in NEWS. `G' ("is effective gid") is a small new feature, and the change from `s' to `=' for "is a socket" and the change for `j' (join) are technically incompatible changes, although maybe they're obscure enough that they don't need NEWS entries. I'll do whatever others think is best here. --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=UTF-8; name="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.pa"; filename*1="tch" RnJvbSA2ZWNkMzAwYTBiZGRkZjM2OWM4YTM2NzJlNzBmZWMxNzVjY2I4YTBkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBNYXIgMjAyMiAxNzowNzoyNiAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBBZGQgdW5pdCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgRXNoZWxsIHBh dHRlcm4tYmFzZWQKIGdsb2JzCgoqIGxpc3AvZXNoZWxsL2VtLWdsb2IuZWwgKGVzaGVsbC1l eHRlbmRlZC1nbG9iKTogRml4IGRvY3N0cmluZy4KCiogdGVzdC9saXNwL2VzaGVsbC9lbS1n bG9iLXRlc3RzLmVsOiBOZXcgZmlsZS4KCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEdsb2Ji aW5nKTogRG9jdW1lbnQgcGF0dGVybi1iYXNlZCBnbG9icy4KLS0tCiBkb2MvbWlzYy9lc2hl bGwudGV4aSAgICAgICAgICAgICAgfCAgODAgKysrKysrKysrKysrLS0KIGxpc3AvZXNoZWxs L2VtLWdsb2IuZWwgICAgICAgICAgICB8ICAxMiArLS0KIHRlc3QvbGlzcC9lc2hlbGwvZW0t Z2xvYi10ZXN0cy5lbCB8IDE3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMg ZmlsZXMgY2hhbmdlZCwgMjQ3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRlc3QvbGlzcC9lc2hlbGwvZW0tZ2xvYi10ZXN0cy5lbAoKZGlm ZiAtLWdpdCBhL2RvYy9taXNjL2VzaGVsbC50ZXhpIGIvZG9jL21pc2MvZXNoZWxsLnRleGkK aW5kZXggMzcyZTRjM2ZmYi4uNGExZmRjZjhmZiAxMDA2NDQKLS0tIGEvZG9jL21pc2MvZXNo ZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKQEAgLTEwODksMTUgKzEwODks NzcgQEAgRG9sbGFycyBFeHBhbnNpb24KIAogQG5vZGUgR2xvYmJpbmcKIEBzZWN0aW9uIEds b2JiaW5nCi1Fc2hlbGwncyBnbG9iYmluZyBzeW50YXggaXMgdmVyeSBzaW1pbGFyIHRvIHRo YXQgb2YgWnNoLiAgVXNlcnMgY29taW5nCi1mcm9tIEJhc2ggY2FuIHN0aWxsIHVzZSBCYXNo LXN0eWxlIGdsb2JiaW5nLCBhcyB0aGVyZSBhcmUgbm8KLWluY29tcGF0aWJpbGl0aWVzLiAg TW9zdCBnbG9iYmluZyBpcyBwYXR0ZXJuLWJhc2VkIGV4cGFuc2lvbiwgYnV0IHRoZXJlCi1p cyBhbHNvIHByZWRpY2F0ZS1iYXNlZCBleHBhbnNpb24uICBAeHJlZntGaWxlbmFtZSBHZW5l cmF0aW9uLCAsICwKLXpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSwKLWZvciBmdWxsIHN5bnRh eC4gIFRvIGN1c3RvbWl6ZSB0aGUgc3ludGF4IGFuZCBiZWhhdmlvciBvZiBnbG9iYmluZyBp bgotRXNoZWxsIHNlZSB0aGUgQ3VzdG9taXplQGZvb3Rub3Rle0B4cmVme0Vhc3kgQ3VzdG9t aXphdGlvbiwgLCAsIGVtYWNzLAotVGhlIEdOVSBFbWFjcyBNYW51YWx9Ln0KLWdyb3VwcyBg YGVzaGVsbC1nbG9iJycgYW5kIGBgZXNoZWxsLXByZWQnJy4KK0VzaGVsbCdzIGdsb2JiaW5n IHN5bnRheCBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiBac2gKKyhAcHhyZWZ7RmlsZW5h bWUgR2VuZXJhdGlvbiwgLCAsIHpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSkuICBVc2Vycwor Y29taW5nIGZyb20gQmFzaCBjYW4gc3RpbGwgdXNlIEJhc2gtc3R5bGUgZ2xvYmJpbmcsIGFz IHRoZXJlIGFyZSBubworaW5jb21wYXRpYmlsaXRpZXMuICBUbyBjdXN0b21pemUgdGhlIHN5 bnRheCBhbmQgYmVoYXZpb3Igb2YgZ2xvYmJpbmcKK2luIEVzaGVsbCBzZWUgdGhlIEN1c3Rv bWl6ZUBmb290bm90ZXtAeHJlZntFYXN5IEN1c3RvbWl6YXRpb24sICwgLAorZW1hY3MsIFRo ZSBHTlUgRW1hY3MgTWFudWFsfS59IGdyb3VwIGBgZXNoZWxsLWdsb2InJy4KKworQHRhYmxl IEBjb2RlCisKK0BpdGVtICoKK01hdGNoZXMgYW55IHN0cmluZyAoaW5jbHVkaW5nIHRoZSBl bXB0eSBzdHJpbmcpLiAgRm9yIGV4YW1wbGUsCitAc2FtcHsqLmVsfSBtYXRjaGVzIGFueSBm aWxlIHdpdGggdGhlIEBmaWxley5lbH0gZXh0ZW5zaW9uLgorCitAaXRlbSA/CitNYXRjaGVz IGFueSBzaW5nbGUgY2hhcmFjdGVyLiAgRm9yIGV4YW1wbGUsIEBzYW1wez9hdH0gbWF0Y2hl cworQGZpbGV7Y2F0fSBhbmQgQGZpbGV7YmF0fSwgYnV0IG5vdCBAZmlsZXtnb2F0fS4KKwor QGl0ZW0gKioKK01hdGNoZXMgYW55IG51bWJlciBvZiBzdWJkaXJlY3RvcmllcyBpbiBhIGZp bGUgbmFtZSwgaW5jbHVkaW5nIHplcm8uCitGb3IgZXhhbXBsZSwgQHNhbXB7KiovZm9vLmVs fSBtYXRjaGVzIEBmaWxle2Zvby5lbH0sCitAZmlsZXtiYXIvZm9vLmVsfSwgQGZpbGV7YmFy L2Jhei9mb28uZWx9LCBldGMuCisKK0BpdGVtICoqKgorQXMgQGNvZGV7Kip9LCBidXQgZm9s bG93cyBzeW1saW5rcyBhcyB3ZWxsLgorCitAaXRlbSBbIEBkb3Rze30gXQorRGVmaW5lcyBh IEBkZm57Y2hhcmFjdGVyIHNldH0gKEBweHJlZntSZWdleHBzLCAsICwgZW1hY3MsIFRoZSBH TlUKK0VtYWNzIE1hbnVhbH0pLiAgQSBjaGFyYWN0ZXIgc2V0IG1hdGNoZXMgYW55IGNoYXJh Y3RlciBiZXR3ZWVuCitAc2FtcHtbfSBhbmQgQHNhbXB7XX07IGZvciBleGFtcGxlLCBAc2Ft cHtbYWRdfSBtYXRjaGVzIEBmaWxle2F9IGFuZAorQGZpbGV7ZH0uICBZb3UgY2FuIGFsc28g aW5jbHVkZSByYW5nZXMgb2YgY2hhcmFjdGVycyBpbiB0aGUgc2V0IGJ5CitzZXBhcmF0aW5n IHRoZSBzdGFydCBhbmQgZW5kIHdpdGggQHNhbXB7LX0uICBUaHVzLCBAc2FtcHtbYS16XX0K K21hdGNoZXMgYW55IGxvd2VyLWNhc2UgQGFjcm9ueW17QVNDSUl9IGxldHRlci4KKworQWRk aXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgQGRmbntjaGFyYWN0ZXIgY2xhc3Nlc30gaW4g YSBjaGFyYWN0ZXIKK3NldC4gIEEgQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcgQHNhbXB7Ol19 IGVuY2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MKK2luc2lkZSBhIGNoYXJhY3RlciBzZXQuICBG b3IgaW5zdGFuY2UsIEBzYW1we1tbOmFsbnVtOl1dfQorbWF0Y2hlcyBhbnkgbGV0dGVyIG9y IGRpZ2l0LiAgQHhyZWZ7Q2hhciBDbGFzc2VzLCAsICwgZWxpc3AsIFRoZSBFbWFjcworTGlz cCBSZWZlcmVuY2UgTWFudWFsfSwgZm9yIGEgbGlzdCBvZiBjaGFyYWN0ZXIgY2xhc3Nlcy4K KworQGl0ZW0gW14gQGRvdHN7fSBdCitEZWZpbmVzIGEgQGRmbntjb21wbGVtZW50ZWQgY2hh cmFjdGVyIHNldH0uICBUaGlzIGJlaGF2ZXMganVzdCBsaWtlIGEKK2NoYXJhY3RlciBzZXQs IGJ1dCBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgQGVtcGh7ZXhjZXB0fSB0aGUgb25lcworc3Bl Y2lmaWVkLgorCitAaXRlbSAoIEBkb3Rze30gKQorRGVmaW5lcyBhIEBkZm57Z3JvdXB9LiAg QSBncm91cCBtYXRjaGVzIHRoZSBwYXR0ZXJuIGJldHdlZW4gQHNhbXB7KH0KK2FuZCBAc2Ft cHspfS4gIE5vdGUgdGhhdCBhIGdyb3VwIGNhbiBvbmx5IG1hdGNoIGEgc2luZ2xlIGZpbGUg bmFtZQorY29tcG9uZW50LCBzbyBhIEBzYW1wey99IGluc2lkZSBhIGdyb3VwIHdpbGwgc2ln bmFsIGFuIGVycm9yLgorCitAaXRlbSBAdmFye3h9fEB2YXJ7eX0KK0luc2lkZSBvZiBhIGdy b3VwLCBtYXRjaGVzIGVpdGhlciBAdmFye3h9IG9yIEB2YXJ7eX0uICBGb3IgZXhhbXBsZSwK K0BzYW1we2UobXxzaCktKn0gbWF0Y2hlcyBhbnkgZmlsZSBiZWdpbm5pbmcgd2l0aCBAY29k ZXtlbS19IG9yCitAY29kZXtlc2gtfS4KKworQGl0ZW0gQHZhcnt4fSMKK01hdGNoZXMgemVy byBvciBtb3JlIGNvcGllcyBvZiB0aGUgZ2xvYiBwYXR0ZXJuIEB2YXJ7eH0uICBGb3IgZXhh bXBsZSwKK0BzYW1we2ZvIy5lbH0gbWF0Y2hlcyBAZmlsZXtmLmVsfSwgQGZpbGV7Zm8uZWx9 LCBAZmlsZXtmb28uZWx9LCBldGMuCisKK0BpdGVtIEB2YXJ7eH0jIworTWF0Y2hlcyBvbmUg b3IgbW9yZSBjb3BpZXMgb2YgdGhlIGdsb2IgcGF0dGVybiBAdmFye3h9LiAgVGh1cywKK0Bz YW1we2ZvIy5lbH0gbWF0Y2hlcyBAZmlsZXtmby5lbH0sIEBmaWxle2Zvby5lbH0sIEBmaWxl e2Zvb28uZWx9LAorZXRjLgorCitAaXRlbSBAdmFye3h9fkB2YXJ7eX0KK01hdGNoZXMgYW55 dGhpbmcgdGhhdCBtYXRjaGVzIHRoZSBwYXR0ZXJuIEB2YXJ7eH0gYnV0IG5vdCBAdmFye3l9 LiBGb3IKK2V4YW1wbGUsIEBzYW1we1tbOmRpZ2l0Ol1dI340P30gbWF0Y2hlcyBAZmlsZXsx fSBhbmQgQGZpbGV7MTJ9LCBidXQKK25vdCBAZmlsZXs0Mn0uICBOb3RlIHRoYXQgdW5saWtl IGluIFpzaCwgb25seSBhIHNpbmdsZSBAY29kZXt+fQorb3BlcmF0b3IgY2FuIGJlIHVzZWQg aW4gYSBwYXR0ZXJuLCBhbmQgaXQgY2Fubm90IGJlIGluc2lkZSBvZiBhIGdyb3VwCitsaWtl IEBzYW1weyhAdmFye3h9fkB2YXJ7eX0pfS4KKworQGVuZCB0YWJsZQogCiBAbm9kZSBJbnB1 dC9PdXRwdXQKIEBjaGFwdGVyIElucHV0L091dHB1dApkaWZmIC0tZ2l0IGEvbGlzcC9lc2hl bGwvZW0tZ2xvYi5lbCBiL2xpc3AvZXNoZWxsL2VtLWdsb2IuZWwKaW5kZXggODQyZjI3YTQ5 Mi4uOGMwZDhkZmNkNyAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0tZ2xvYi5lbAorKysg Yi9saXNwL2VzaGVsbC9lbS1nbG9iLmVsCkBAIC0yMzMsNyArMjMzLDEwIEBAIGVzaGVsbC1n bG9iLXJlZ2V4cAogCSAgICAiXFwnIikpKQogCiAoZGVmdW4gZXNoZWxsLWV4dGVuZGVkLWds b2IgKGdsb2IpCi0gICJSZXR1cm4gYSBsaXN0IG9mIGZpbGVzIGdlbmVyYXRlZCBmcm9tIEdM T0IsIHBlcmhhcHMgbG9va2luZyBmb3IgRElSUy1PTkxZLgorICAiUmV0dXJuIGEgbGlzdCBv ZiBmaWxlcyBtYXRjaGVkIGJ5IEdMT0IuCitJZiBubyBmaWxlcyBtYXRjaCwgc2lnbmFsIGFu IGVycm9yIChpZiBgZXNoZWxsLWVycm9yLWlmLW5vLWdsb2InCitpcyBub24tbmlsKSwgb3Ig b3RoZXJ3aXNlIHJldHVybiBHTE9CIGl0c2VsZi4KKwogVGhpcyBmdW5jdGlvbiBhbG1vc3Qg ZnVsbHkgc3VwcG9ydHMgenNoIHN0eWxlIGZpbGVuYW1lIGdlbmVyYXRpb24KIHN5bnRheC4g IFRoaW5ncyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGFyZToKIApAQCAtMjQzLDEyICsyNDYs NyBAQCBlc2hlbGwtZXh0ZW5kZWQtZ2xvYgogICAgZm9vfngoYXxiKSAgKGF8Yikgd2lsbCBi ZSBpbnRlcnByZXRlZCBhcyBhIHByZWRpY2F0ZS9tb2RpZmllciBsaXN0CiAKIE1haW5seSB0 aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgZmlsZSBtYXRjaGluZyBpcyBkb25lIHdp dGggRW1hY3MKLXJlZ3VsYXIgZXhwcmVzc2lvbnMsIGFuZCB0aGVzZSBjYW5ub3Qgc3VwcG9y dCB0aGUgYWJvdmUgY29uc3RydWN0cy4KLQotSWYgdGhpcyByb3V0aW5lIGZhaWxzLCBpdCBy ZXR1cm5zIG5pbC4gIE90aGVyd2lzZSwgaXQgcmV0dXJucyBhIGxpc3QKLXRoZSBmb3JtOgot Ci0gICAoSU5DTFVERS1SRUdFWFAgRVhDTFVERS1SRUdFWFAgKFBSRUQtRlVOQy1MSVNUKSAo TU9ELUZVTkMtTElTVCkpIgorcmVndWxhciBleHByZXNzaW9ucywgYW5kIHRoZXNlIGNhbm5v dCBzdXBwb3J0IHRoZSBhYm92ZSBjb25zdHJ1Y3RzLiIKICAgKGxldCAoKHBhdGhzIChlc2hl bGwtc3BsaXQtcGF0aCBnbG9iKSkKICAgICAgICAgZXNoZWxsLWdsb2ItbWF0Y2hlcyBtZXNz YWdlLXNob3duKQogICAgICh1bndpbmQtcHJvdGVjdApkaWZmIC0tZ2l0IGEvdGVzdC9saXNw L2VzaGVsbC9lbS1nbG9iLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1nbG9iLXRl c3RzLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjEwNjNiYTI0 MjMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMu ZWwKQEAgLTAsMCArMSwxNzEgQEAKKzs7OyBlbS1nbG9iLXRlc3RzLmVsIC0tLSBlbS1nbG9i IHRlc3Qgc3VpdGUgIC0qLSBsZXhpY2FsLWJpbmRpbmc6dCAtKi0KKworOzsgQ29weXJpZ2h0 IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCis7OyBUaGlzIGZp bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3 YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCis7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb21tZW50YXJ5OgorCis7OyBUZXN0 cyBmb3IgRXNoZWxsJ3MgZ2xvYiBleHBhbnNpb24uCisKKzs7OyBDb2RlOgorCisocmVxdWly ZSAnZXJ0KQorKHJlcXVpcmUgJ2VtLWdsb2IpCisKKyhkZWZtYWNybyB3aXRoLWZha2UtZmls ZXMgKGZpbGVzICZyZXN0IGJvZHkpCisgICJFdmFsdWF0ZSBCT0RZIGZvcm1zLCBwcmV0ZW5k aW5nIHRoYXQgRklMRVMgZXhpc3Qgb24gdGhlIGZpbGVzeXN0ZW0uCitGSUxFUyBpcyBhIGxp c3Qgb2YgZmlsZSBuYW1lcyB0aGF0IHNob3VsZCBiZSByZXBvcnRlZCBhcworYXBwcm9wcmlh dGUgYnkgYGZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMnLiAgQW55IGZpbGUgbmFtZQorY29t cG9uZW50IGVuZGluZyBpbiBcInN5bWxpbmtcIiBpcyB0cmVhdGVkIGFzIGEgc3ltYm9saWMg bGluay4iCisgIChkZWNsYXJlIChpbmRlbnQgMSkpCisgIGAoY2wtbGV0ZiAoKChzeW1ib2wt ZnVuY3Rpb24gJ2ZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMpCisgICAgICAgICAgICAgIChs YW1iZGEgKGZpbGUgZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIChjbC1hc3NlcnQgKHN0 cmluZz0gZmlsZSAiIikpCisgICAgICAgICAgICAgICAgKHNldHEgZGlyZWN0b3J5IChleHBh bmQtZmlsZS1uYW1lIGRpcmVjdG9yeSkpCisgICAgICAgICAgICAgICAgYCgiLi8iICIuLi8i CisgICAgICAgICAgICAgICAgICAsQChkZWxldGUtZHVwcworICAgICAgICAgICAgICAgICAg ICAgKHJlbXEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzZXRxIGZpbGUgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoc3RyaW5nLXByZWZpeC1wIGRp cmVjdG9yeSBmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwbGFj ZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Ly4qIiAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcg ZmlsZSAobGVuZ3RoIGRpcmVjdG9yeSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLGZpbGVzKSkpKSkpCisgICAgICAgICAgICAgKChzeW1ib2wtZnVuY3Rpb24gJ2ZpbGUt c3ltbGluay1wKQorICAgICAgICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAg ICAgIChzdHJpbmctc3VmZml4LXAgInN5bWxpbmsiIGZpbGUpKSkpCisgICAgICxAYm9keSkp CisKKzs7OyBUZXN0czoKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1hbnkt c3RyaW5nICgpCisgICJUZXN0IHRoYXQgXCIqXCIgcGF0dGVybiBtYXRjaGVzIGFueSBzdHJp bmcuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiYy50eHQiICJkaXIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqLmVs IikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIpKSkpKQorCisoZXJ0LWRl ZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWFueS1jaGFyYWN0ZXIgKCkKKyAgIlRlc3QgdGhh dCBcIj9cIiBwYXR0ZXJuIG1hdGNoZXMgYW55IGNoYXJhY3Rlci4iCisgICh3aXRoLWZha2Ut ZmlsZXMgJygiYS5lbCIgImIuZWwiICJjY2MuZWwiICJkLnR4dCIgImRpci9hLmVsIikKKyAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIj8uZWwiKQorICAgICAg ICAgICAgICAgICAgICcoImEuZWwiICJiLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1n bG9iLXRlc3QvbWF0Y2gtcmVjdXJzaXZlICgpCisgICJUZXN0IHRoYXQgXCIqKlwiIHJlY3Vy c2l2ZWx5IG1hdGNoZXMgZGlyZWN0b3JpZXMuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEu ZWwiICJiLmVsIiAiY2NjLmVsIiAiZC50eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIK KyAgICAgICAgICAgICAgICAgICAgICJkaXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVs IiAic3ltbGluay9zdWIvYS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICIqKi9hLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiZGly L2EuZWwiICJkaXIvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVz dC9tYXRjaC1yZWN1cnNpdmUtZm9sbG93LXN5bWxpbmtzICgpCisgICJUZXN0IHRoYXQgXCIq KipcIiByZWN1cnNpdmVseSBtYXRjaGVzIGRpcmVjdG9yaWVzLCBmb2xsb3dpbmcgc3ltbGlu a3MuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiY2NjLmVsIiAiZC50 eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIKKyAgICAgICAgICAgICAgICAgICAgICJk aXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIvYS5lbCIpCisg ICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqKiovYS5lbCIpCisg ICAgICAgICAgICAgICAgICAgJygiYS5lbCIgImRpci9hLmVsIiAiZGlyL3N1Yi9hLmVsIiAi ZGlyL3N5bWxpbmsvYS5lbCIKKyAgICAgICAgICAgICAgICAgICAgICJzeW1saW5rL2EuZWwi ICJzeW1saW5rL3N1Yi9hLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3Qv bWF0Y2gtcmVjdXJzaXZlLW1peGVkICgpCisgICJUZXN0IGNvbWJpbmF0aW9uIG9mIFwiKipc IiBhbmQgXCIqKipcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZGlyL2EuZWwiICJkaXIv c3ViL2EuZWwiICJkaXIvc3ViMi9hLmVsIgorICAgICAgICAgICAgICAgICAgICAgImRpci9z eW1saW5rL2EuZWwiICJkaXIvc3ViL3N5bWxpbmsvYS5lbCIgInN5bWxpbmsvYS5lbCIKKyAg ICAgICAgICAgICAgICAgICAgICJzeW1saW5rL3N1Yi9hLmVsIiAic3ltbGluay9zdWIvc3lt bGluay9hLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2Ig IioqL3N1Yi8qKiovYS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZGlyL3N1Yi9hLmVs IiAiZGlyL3N1Yi9zeW1saW5rL2EuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1leHRlbmRlZC1nbG9iICIqKiovc3ViLyoqL2EuZWwiKQorICAgICAgICAgICAgICAgICAg ICcoImRpci9zdWIvYS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0 ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LWluZGl2aWR1YWwgKCkKKyAg IlRlc3QgXCJbLi4uXVwiIGZvciBpbmRpdmlkdWFsIGNoYXJhY3RlcnMuIgorICAod2l0aC1m YWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisg ICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWJdLmVsIikKKyAg ICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVh bCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIlteYWJdLmVsIikKKyAgICAgICAgICAgICAgICAg ICAnKCJjLmVsIiAiZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21h dGNoLWNoYXJhY3Rlci1zZXQtcmFuZ2UgKCkKKyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFy YWN0ZXIgcmFuZ2VzLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImMu ZWwiICJkLmVsIiAiZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0 ZW5kZWQtZ2xvYiAiW2EtY10uZWwiKQorICAgICAgICAgICAgICAgICAgICcoImEuZWwiICJi LmVsIiAiYy5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWds b2IgIlteYS1jXS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZC5lbCIpKSkpKQorCiso ZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rlci1zZXQtY2xhc3MgKCkK KyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFyYWN0ZXIgY2xhc3Nlcy4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImRpci9hLmVsIikKKyAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIltbOmFscGhhOl1dLmVs IikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIgImMuZWwiKSkpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXls6YWxwaGE6XV0uZWwi KQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVt LWdsb2ItdGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LW1peGVkICgpCisgICJUZXN0IFwiWy4u Ll1cIiB3aXRoIG11bHRpcGxlIGtpbmRzIG9mIG1lbWJlcnMgYXQgb25jZS4iCisgICh3aXRo LWZha2UtZmlsZXMgJygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWMt ZFs6ZGlnaXQ6XV0uZWwiKQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiICJhLmVsIiAi Yy5lbCIgImQuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICJbXmFjLWRbOmRpZ2l0Ol1dLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJiLmVs IikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtZ3JvdXAtYWx0ZXJu YXRpdmUgKCkKKyAgIlRlc3QgXCIoeHx5KVwiIG1hdGNoZXMgZWl0aGVyIFwieFwiIG9yIFwi eVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJlbS1hbGlhcy5lbCIgImVtLWJhbm5lci5l bCIgImVzaC1hcmcuZWwiICJtaXNjLmVsIgorICAgICAgICAgICAgICAgICAgICAgInRlc3Qv ZW0teHRyYS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9i ICJlKG18c2gpLSouZWwiKQorICAgICAgICAgICAgICAgICAgICcoImVtLWFsaWFzLmVsIiAi ZW0tYmFubmVyLmVsIiAiZXNoLWFyZy5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xv Yi10ZXN0L21hdGNoLW4tb3ItbW9yZS1jaGFyYWN0ZXJzICgpCisgICJUZXN0IHRoYXQgXCJ4 I1wiIGFuZCBcIngjXCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBcInhcIi4i CisgICh3aXRoLWZha2UtZmlsZXMgJygiaC5lbCIgImhhLmVsIiAiaGkuZWwiICJoaWkuZWwi ICJkaXIvaGkuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xv YiAiaGkjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJoLmVsIiAiaGkuZWwiICJoaWku ZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMj LmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJoaS5lbCIgImhpaS5lbCIpKSkpKQorCiso ZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLW4tb3ItbW9yZS1ncm91cHMgKCkKKyAg IlRlc3QgdGhhdCBcIih4KSNcIiBhbmQgXCIoeCkjXCIgbWF0Y2ggemVybyBvciBtb3JlIGlu c3RhbmNlcyBvZiBcIih4KVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJoLmVsIiAiaGEu ZWwiICJoaS5lbCIgImhpaS5lbCIgImRpci9oaS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMuZWwiKQorICAgICAgICAgICAgICAgICAgICco ImguZWwiICJoaS5lbCIgImhpaS5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LWV4dGVuZGVkLWdsb2IgImhpIyMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImhpLmVs IiAiaGlpLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtbi1v ci1tb3JlLWNoYXJhY3Rlci1zZXRzICgpCisgICJUZXN0IHRoYXQgXCJbeF0jXCIgYW5kIFwi W3hdI1wiIG1hdGNoIHplcm8gb3IgbW9yZSBpbnN0YW5jZXMgb2YgXCJbeF1cIi4iCisgICh3 aXRoLWZha2UtZmlsZXMgJygidy5lbCIgIndoLmVsIiAid2hhLmVsIiAid2hpLmVsIiAid2hh aGEuZWwiICJkaXIvd2hhLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVu ZGVkLWdsb2IgIndbYWhdIy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygidy5lbCIgIndo LmVsIiAid2hhLmVsIiAid2hhaGEuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1leHRlbmRlZC1nbG9iICJ3W2FoXSMjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJ3 aC5lbCIgIndoYS5lbCIgIndoYWhhLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9i LXRlc3QvbWF0Y2gteC1idXQtbm90LXkgKCkKKyAgIlRlc3QgdGhhdCBcInh+eVwiIG1hdGNo ZXMgXCJ4XCIgYnV0IG5vdCBcInlcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiMSIgIjEy IiAiMTIzIiAiNDIiICJkaXIvMSIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICJbWzpkaWdpdDpdXSMjfjQ/IikKKyAgICAgICAgICAgICAgICAgICAnKCIx IiAiMTIiICIxMjMiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9uby1tYXRj aGVzICgpCisgICJUZXN0IGJlaGF2aW9yIHdoZW4gYSBnbG9iIGZhaWxzIHRvIG1hdGNoIGFu eSBmaWxlcy4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZm9vLmVsIiAiYmFyLmVsIikKKyAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioudHh0IikKKyAgICAg ICAgICAgICAgICAgICAiKi50eHQiKSkKKyAgICAobGV0ICgoZXNoZWxsLWVycm9yLWlmLW5v LWdsb2IgdCkpCisgICAgICAoc2hvdWxkLWVycm9yIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAi Ki50eHQiKSkpKSkKKworOzsgZW0tZ2xvYi10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUu MQoK --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=UTF-8; name="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.pa"; filename*1="tch" RnJvbSAyM2U1ZjZiMjkyN2ZlMzBmNzdjYWU5NWVlNTExNmFkMzE2YmUwOWVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTI6NDE6MTMgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvM10gQWRkIHVuaXQgdGVzdHMgYW5kIGRvY3VtZW50YXRpb24gZm9yIEVzaGVsbAog cHJlZGljYXRlcy9tb2RpZmllcnMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxs LWV2YWwtYXJndW1lbnQpOiBOZXcgZnVuY3Rpb24uCgoqIGxpc3AvZXNoZWxsL2VtLXByZWQu ZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBDaGFuZ2Ugc29ja2V0IGNoYXIKdG8gJz0n LCBzaW5jZSAncycgY29uZmxpY3RzIHdpdGggc2V0dWlkLgooZXNoZWxsLW1vZGlmaWVyLWFs aXN0KTogRml4ICdFJyAoZXZhbCkgbW9kaWZpZXIgYnkgdXNpbmcKJ2VzaGVsbC1ldmFsLWFy Z3VtZW50Jy4gIEFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBvZiAnTycgKHJldmVyc2VkCnNv cnQpIG1vZGlmaWVyLgooZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nKTogRml4IGRvY3Vt ZW50YXRpb24gb2YgZ2xvYmFsCnN1YnN0aXR1dGlvbiBtb2RpZmllci4KKGVzaGVsbC1qb2lu LW1lbWJlcnMpOiBGaXggam9pbmluZyB3aXRoIGltcGxpY2l0ICIgIiBkZWxpbWl0ZXIuCgoq IHRlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbDogTmV3IGZpbGUuCgoqIGRvYy9t aXNjL2VzaGVsbC50ZXhpIChBcmd1bWVudCBQcmVkaWNhdGlvbik6IE5ldyBzZWN0aW9uLgot LS0KIGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8IDIyMSArKysrKysrKysr KysrCiBsaXNwL2VzaGVsbC9lbS1wcmVkLmVsICAgICAgICAgICAgfCAgMjUgKy0KIGxpc3Av ZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAgICB8ICAgOCArCiB0ZXN0L2xpc3AvZXNoZWxs L2VtLXByZWQtdGVzdHMuZWwgfCA1MjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiA0IGZpbGVzIGNoYW5nZWQsIDc1OSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwK CmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50 ZXhpCmluZGV4IDRhMWZkY2Y4ZmYuLjM2YWI4NzE0MTggMTAwNjQ0Ci0tLSBhL2RvYy9taXNj L2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC0xMDAyLDYgKzEw MDIsNyBAQCBFeHBhbnNpb24KIEBtZW51CiAqIERvbGxhcnMgRXhwYW5zaW9uOjoKICogR2xv YmJpbmc6OgorKiBBcmd1bWVudCBQcmVkaWNhdGlvbjo6CiBAZW5kIG1lbnUKIAogQG5vZGUg RG9sbGFycyBFeHBhbnNpb24KQEAgLTExNjEsNiArMTE2MiwyMjYgQEAgR2xvYmJpbmcKIAog QGVuZCB0YWJsZQogCitAbm9kZSBBcmd1bWVudCBQcmVkaWNhdGlvbgorQHNlY3Rpb24gQXJn dW1lbnQgUHJlZGljYXRpb24gYW5kIE1vZGlmaWNhdGlvbgorRXNoZWxsIHN1cHBvcnRzIEBk Zm57YXJndW1lbnQgcHJlZGljYXRpb259LCB0byBmaWx0ZXIgZWxlbWVudHMgb2YgYQorZ2xv YiwgYW5kIEBkZm57YXJndW1lbnQgbW9kaWZpY2F0aW9ufSwgdG8gbWFuaXB1bGF0ZSBhcmd1 bWVudCB2YWx1ZXMuCitUaGVzZSBhcmUgc2ltaWxhciB0byBnbG9iIHF1YWxpZmllcnMgaW4g WnNoIChAcHhyZWZ7R2xvYiBRdWFsaWZpZXJzLCAsCissIHpzaCwgVGhlIFogU2hlbGwgTWFu dWFsfSkuCisKK1ByZWRpY2F0ZXMgYW5kIG1vZGlmaWVycyBhcmUgaW50cm9kdWNlZCB3aXRo IEBjb2RleyggQGRvdHN7fSApfSBhZnRlcgorYW55IGxpc3QgYXJndW1lbnQsIHdoZXJlIEBj b2Rle0Bkb3Rze319IGlzIGEgbGlzdCBvZiBwcmVkaWNhdGVzIG9yCittb2RpZmllcnMuICBG b3IgZXhhbXBsZSwgQHNhbXB7KiguKX0gZXhwYW5kcyB0byBhbGwgcmVndWxhciBmaWxlcyBp bgordGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBAc2FtcHsqKF5AQDpVXnUwKX0gZXhwYW5k cyB0byBhbGwKK25vbi1zeW1saW5rcyBub3Qgb3duZWQgYnkgQGNvZGV7cm9vdH0sIHVwcGVy LWNhc2VkLgorCitUbyBjdXN0b21pemUgdGhlIHN5bnRheCBhbmQgYmVoYXZpb3Igb2YgcHJl ZGljYXRlcyBhbmQgbW9kaWZpZXJzIGluCitFc2hlbGwgc2VlIHRoZSBDdXN0b21pemVAZm9v dG5vdGV7QHhyZWZ7RWFzeSBDdXN0b21pemF0aW9uLCAsICwgZW1hY3MsCitUaGUgR05VIEVt YWNzIE1hbnVhbH0ufSBncm91cCBgYGVzaGVsbC1wcmVkJycuCisKK0BzdWJzZWN0aW9uIEFy Z3VtZW50IFByZWRpY2F0ZXMKK1lvdSBjYW4gdXNlIGFyZ3VtZW50IHByZWRpY2F0ZXMgdG8g ZmlsdGVyIGxpc3RzIG9mIGZpbGUgbmFtZXMgYmFzZWQgb24KK3ZhcmlvdXMgcHJvcGVydGll cyBvZiB0aG9zZSBmaWxlcy4gIFRoaXMgaXMgbW9zdCB1c2VmdWwgd2hlbiBjb21iaW5lZAor d2l0aCBnbG9iYmluZywgYnV0IGNhbiBiZSB1c2VkIG9uIGFueSBsaXN0IG9mIGZpbGVzIG5h bWVzLgorCitUaGUgQGNvZGV7Xn0gYW5kIEBjb2Rley19IG9wZXJhdG9ycyBhcmUgbm90IGFy Z3VtZW50IHByZWRpY2F0ZXMKK3RoZW1zZWx2ZXMsIGJ1dCB0aGV5IG1vZGlmeSB0aGUgYmVo YXZpb3Igb2YgYWxsIHN1YnNlcXVlbnQgcHJlZGljYXRlcy4KK0Bjb2Rle159IGludmVydHMg dGhlIG1lYW5pbmcgb2Ygc3Vic2VxdWVudCBwcmVkaWNhdGVzLCBzbworQHNhbXB7KiheUldY KX0gZXhwYW5kcyB0byBhbGwgZmlsZXMgd2hvc2UgcGVybWlzc2lvbnMgZGlzYWxsb3cgdGhl Cit3b3JsZCBmcm9tIGFjY2Vzc2luZyB0aGVtIGluIGFueSB3YXkgKGkuZS4sIHJlYWRpbmcs IHdyaXRpbmcgdG8sIG9yCittb2RpZnlpbmcgdGhlbSkuICBXaGVuIGV4YW1pbmluZyBhIHN5 bWJvbGljIGxpbmssIEBjb2Rley19IGFwcGxpZXMgdGhlCitzdWJzZXF1ZW50IHByZWRpY2F0 ZXMgdG8gdGhlIGxpbmsncyB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgbGluayBpdHNlbGYuCisK K0VzaGVsbCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50IHByZWRpY2F0ZXM6CisK K0B0YWJsZSBAYXNpcworCitAaXRlbSBAY29kZXsvfQorTWF0Y2hlcyBkaXJlY3Rvcmllcy4K KworQGl0ZW0gQGNvZGV7Ln0gKFBlcmlvZCkKK01hdGNoZXMgcmVndWxhciBmaWxlcy4KKwor QGl0ZW0gQGNvZGV7QEB9CitNYXRjaGVzIHN5bWJvbGljIGxpbmtzLgorCitAaXRlbSBAY29k ZXs9fQorTWF0Y2hlcyBzb2NrZXRzLgorCitAaXRlbSBAY29kZXtwfQorTWF0Y2hlcyBuYW1l ZCBwaXBlcy4KKworQGl0ZW0gQGNvZGV7JX0KK01hdGNoZXMgYmxvY2sgb3IgY2hhcmFjdGVy IGRldmljZXMuCisKK0BpdGVtIEBjb2RleyVifQorTWF0Y2hlcyBibG9jayBkZXZpY2VzLgor CitAaXRlbSBAY29kZXslY30KK01hdGNoZXMgY2hhcmFjdGVyIGRldmljZXMuCisKK0BpdGVt IEBjb2Rleyp9CitNYXRjaGVzIHJlZ3VsYXIgZmlsZXMgdGhhdCBjYW4gYmUgZXhlY3V0ZWQg YnkgdGhlIGN1cnJlbnQgdXNlci4KKworQGl0ZW0gQGNvZGV7cn0KK0BpdGVtIEBjb2Rle0F9 CitAaXRlbSBAY29kZXtSfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSByZWFkYWJsZSBieSB0 aGVpciBvd25lcnMgKEBjb2Rle3J9KSwgdGhlaXIKK2dyb3VwcyAoQGNvZGV7QX0pLCBvciB0 aGUgd29ybGQgKEBjb2Rle1J9KS4KKworQGl0ZW0gQGNvZGV7d30KK0BpdGVtIEBjb2Rle0l9 CitAaXRlbSBAY29kZXtXfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSB3cml0YWJsZSBieSB0 aGVpciBvd25lcnMgKEBjb2Rle3d9KSwgdGhlaXIKK2dyb3VwcyAoQGNvZGV7SX0pLCBvciB0 aGUgd29ybGQgKEBjb2Rle1d9KS4KKworQGl0ZW0gQGNvZGV7eH0KK0BpdGVtIEBjb2Rle0V9 CitAaXRlbSBAY29kZXtYfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGJ5 IHRoZWlyIG93bmVycyAoQGNvZGV7eH0pLCB0aGVpcgorZ3JvdXBzIChAY29kZXtFfSksIG9y IHRoZSB3b3JsZCAoQGNvZGV7WH0pLgorCitAaXRlbSBAY29kZXtzfQorTWF0Y2hlcyBmaWxl cyB3aXRoIHRoZSBzZXR1aWQgZmxhZyBzZXQuCisKK0BpdGVtIEBjb2Rle1N9CitNYXRjaGVz IGZpbGVzIHdpdGggdGhlIHNldGdpZCBmbGFnIHNldC4KKworQGl0ZW0gQGNvZGV7dH0KK01h dGNoZXMgZmlsZXMgd2l0aCB0aGUgc3RpY2t5IGJpdCBzZXQuCisKK0BpdGVtIEBjb2Rle1V9 CitNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSB1c2VyIElE LgorCitAaXRlbSBAY29kZXtsQG9wdGlvbntbKy1dfUB2YXJ7bn19CitNYXRjaGVzIGZpbGVz IHdpdGggQHZhcntufSBsaW5rcy4gIFdpdGggQG9wdGlvbnsrfSAob3IgQG9wdGlvbnstfSks CittYXRjaGVzIGZpbGVzIHdpdGggbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pIEB2YXJ7bn0g bGlua3MsCityZXNwZWN0aXZlbHkuCisKK0BpdGVtIEBjb2Rle3VAdmFye3VpZH19CitAaXRl bSBAY29kZXt1J0B2YXJ7dXNlci1uYW1lfSd9CitNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHVz ZXIgSUQgQHZhcnt1aWR9IG9yIHVzZXIgbmFtZSBAdmFye3VzZXItbmFtZX0uCisKK0BpdGVt IEBjb2Rle2dAdmFye2dpZH19CitAaXRlbSBAY29kZXtnJ0B2YXJ7Z3JvdXAtbmFtZX0nfQor TWF0Y2hlcyBmaWxlcyBvd25lZCBieSBncm91cCBJRCBAdmFye2dpZH0gb3IgZ3JvdXAgbmFt ZQorQHZhcntncm91cC1uYW1lfS4KKworQGl0ZW0gQGNvZGV7YUBvcHRpb257W0B2YXJ7dW5p dH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQGNvZGV7YUBvcHRpb257WystXX0n QHZhcntmaWxlfSd9CitNYXRjaGVzIGZpbGVzIGxhc3QgYWNjZXNzZWQgZXhhY3RseSBAdmFy e259IGRheXMgYWdvLiAgV2l0aCBAb3B0aW9ueyt9Cisob3IgQG9wdGlvbnstfSksIG1hdGNo ZXMgZmlsZXMgYWNjZXNzZWQgbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pCitAdmFye259IGRh eXMgYWdvLCByZXNwZWN0aXZlbHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBh IHF1YW50aXR5IGluIHRoYXQgdW5pdCBvZiB0aW1lLCBzbworQHNhbXB7YXctMX0gbWF0Y2hl cyBmaWxlcyBsYXN0IGFjY2Vzc2VkIHdpdGhpbiBvbmUgd2Vlay4gIEB2YXJ7dW5pdH0KK2Nh biBiZSBAY29kZXtNfSAoMzAtZGF5IG1vbnRocyksIEBjb2Rle3d9ICh3ZWVrcyksIEBjb2Rl e2h9IChob3VycyksCitAY29kZXttfSAobWludXRlcyksIG9yIEBjb2Rle3N9IChzZWNvbmRz KS4KKworSWYgQHZhcntmaWxlfSBpcyBzcGVjaWZpZWQgaW5zdGVhZCwgY29tcGFyZSBhZ2Fp bnN0IHRoZSBtb2RpZmljYXRpb24KK3RpbWUgb2YgQGZpbGV7ZmlsZX0uICBUaHVzLCBAc2Ft cHthLSdoZWxsby50eHQnfSBtYXRjaGVzIGFsbCBmaWxlcworYWNjZXNzZWQgYWZ0ZXIgQGZp bGV7aGVsbG8udHh0fSB3YXMgbGFzdCBhY2Nlc3NlZC4KKworQGl0ZW0gQGNvZGV7bUBvcHRp b257W0B2YXJ7dW5pdH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQGNvZGV7bUBv cHRpb257WystXX0nQHZhcntmaWxlfSd9CitMaWtlIEBjb2Rle2F9LCBidXQgZXhhbWluZXMg bW9kaWZpY2F0aW9uIHRpbWUuCisKK0BpdGVtIEBjb2Rle2NAb3B0aW9ue1tAdmFye3VuaXR9 XX1Ab3B0aW9ue1srLV19QHZhcntufX0KK0BpdGVtIEBjb2Rle2NAb3B0aW9ue1srLV19J0B2 YXJ7ZmlsZX0nfQorTGlrZSBAY29kZXthfSwgYnV0IGV4YW1pbmVzIHN0YXR1cyBjaGFuZ2Ug dGltZS4KKworQGl0ZW0gQGNvZGV7TEBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRpb257Wyst XX1AdmFye259fQorTWF0Y2hlcyBmaWxlcyBleGFjdGx5IEB2YXJ7bn0gYnl0ZXMgaW4gc2l6 ZS4gIFdpdGggQG9wdGlvbnsrfSAob3IKK0BvcHRpb257LX0pLCBtYXRjaGVzIGZpbGVzIGxh cmdlciB0aGFuIChvciBzbWFsbGVyIHRoYW4pIEB2YXJ7bn0KK2J5dGVzLCByZXNwZWN0aXZl bHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBhIHF1YW50aXR5IGluIHRoYXQg dW5pdCBvZiBzaXplLCBzbworQHNhbXB7TG0rNX0gbWF0Y2hlcyBmaWxlcyBsYXJnZXIgdGhh biA1IE1pQiBpbiBzaXplLiAgQHZhcnt1bml0fSBjYW4KK2JlIG9uZSBvZiB0aGUgZm9sbG93 aW5nIChjYXNlLWluc2Vuc2l0aXZlKSBjaGFyYWN0ZXJzOiBAY29kZXttfQorKG1lZ2FieXRl cyksIEBjb2Rle2t9IChraWxvYnl0ZXMpLCBvciBAY29kZXtwfSAoNTEyLWJ5dGUgYmxvY2tz KS4KKworQGVuZCB0YWJsZQorCitAc3Vic2VjdGlvbiBBcmd1bWVudCBNb2RpZmllcnMKK1lv dSBjYW4gdXNlIGFyZ3VtZW50IG1vZGlmaWVycyB0byBtYW5pcHVsYXRlIGFyZ3VtZW50IHZh bHVlcy4gIEZvcgorZXhhbXBsZSwgeW91IGNhbiBzb3J0IGxpc3RzLCByZW1vdmUgZHVwbGlj YXRlIHZhbHVlcywgY2FwaXRhbGl6ZQord29yZHMsIGV0Yy4gIEFsbCBhcmd1bWVudCBtb2Rp ZmllcnMgYXJlIHByZWZpeGVkIGJ5IEBjb2Rlezp9LCBzbworQHNhbXB7JGV4ZWMtcGF0aCg6 aDp1OngvXlwvaG9tZS8pfSBsaXN0cyBhbGwgb2YgdGhlIHVuaXF1ZSBwYXJlbnQKK2RpcmVj dG9yaWVzIG9mIHRoZSBlbGVtZW50cyBpbiBAY29kZXtleGVjLXBhdGh9LCBleGNsdWRpbmcg dGhvc2UgaW4KK0BmaWxley9ob21lfS4KKworQHRhYmxlIEBjb2RlCisKK0BpdGVtIEUKK1Jl LWV2YWx1YXRlcyB0aGUgdmFsdWUgYXMgYW4gRXNoZWxsIGFyZ3VtZW50LiAgRm9yIGV4YW1w bGUsIGlmCitAdmFye2Zvb30gaXMgQGNvZGV7IiRAe2VjaG8gaGlAfSJ9LCB0aGVuIHRoZSBy ZXN1bHQgb2YgQHNhbXB7JGZvbyg6RSl9CitpcyBAY29kZXtoaX0uCisKK0BpdGVtIEwKK0Nv bnZlcnRzIHRoZSB2YWx1ZSB0byBsb3dlciBjYXNlLgorCitAaXRlbSBVCitDb252ZXJ0cyB0 aGUgdmFsdWUgdG8gdXBwZXIgY2FzZS4KKworQGl0ZW0gQworQ2FwaXRhbGl6ZXMgdGhlIHZh bHVlLgorCitAaXRlbSBoCitUcmVhdGluZyB0aGUgdmFsdWUgYXMgYSBmaWxlIG5hbWUsIGdl dHMgdGhlIGRpcmVjdG9yeSBuYW1lICh0aGUKK2BgaGVhZCcnKS4KKworQGl0ZW0gdAorVHJl YXRpbmcgdGhlIHZhbHVlIGFzIGEgZmlsZSBuYW1lLCBnZXRzIHRoZSBiYXNlIG5hbWUgKHRo ZSBgYHRhaWwnJykuCisKK0BpdGVtIGUKK1RyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhIGZpbGUg bmFtZSwgZ2V0cyB0aGUgZmlsZSBleHRlbnNpb24uCisKK0BpdGVtIHIKK1RyZWF0aW5nIHRo ZSB2YWx1ZSBhcyBhIGZpbGUgbmFtZSwgZ2V0cyB0aGUgZmlsZSBuYW1lIHNhbnMgZXh0ZW5z aW9uLgorCitAaXRlbSBxCitNYXJrcyB0aGF0IHRoZSB2YWx1ZSBzaG91bGQgYmUgaW50ZXJw cmV0ZWQgYnkgRXNoZWxsIGxpdGVyYWxseS4KKworQGl0ZW0gcy9AdmFye3BhdHRlcm59L0B2 YXJ7cmVwbGFjZX0vCitSZXBsYWNlcyB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgdGhlIHJlZ3Vs YXIgZXhwcmVzc2lvbiBAdmFye3BhdHRlcm59Cit3aXRoIEB2YXJ7cmVwbGFjZX0uICBTaWdu YWxzIGFuIGVycm9yIGlmIG5vIG1hdGNoIGlzIGZvdW5kLgorCitAaXRlbSBncy9AdmFye3Bh dHRlcm59L0B2YXJ7cmVwbGFjZX0vCitSZXBsYWNlcyBhbGwgaW5zdGFuY2VzIG9mIHRoZSBy ZWd1bGFyIGV4cHJlc3Npb24gQHZhcntwYXR0ZXJufSB3aXRoCitAdmFye3JlcGxhY2V9Lgor CitAaXRlbSBpL0B2YXJ7cGF0dGVybn0vCitGaWx0ZXJzIGEgbGlzdCBvZiB2YWx1ZXMgdG8g aW5jbHVkZSBvbmx5IHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUKK3JlZ3VsYXIgZXhwcmVz c2lvbiBAdmFye3BhdHRlcm59LgorCitAaXRlbSB4L0B2YXJ7cGF0dGVybn0vCitGaWx0ZXJz IGEgbGlzdCBvZiB2YWx1ZXMgdG8gZXhjbHVkZSBhbGwgdGhlIGVsZW1lbnRzIG1hdGNoaW5n IHRoZQorcmVndWxhciBleHByZXNzaW9uIEB2YXJ7cGF0dGVybn0uCisKK0BpdGVtIFMKK0Bp dGVtIFMvQHZhcntwYXR0ZXJufS8KK1NwbGl0cyB0aGUgdmFsdWUgYnkgdGhlIHJlZ3VsYXIg ZXhwcmVzc2lvbiBAdmFye3BhdHRlcm59LiAgSWYKK0B2YXJ7cGF0dGVybn0gaXMgb21pdHRl ZCwgc3BsaXQgb24gc3BhY2VzLgorCitAaXRlbSBqCitAaXRlbSBqL0B2YXJ7ZGVsaW19Lwor Sm9pbnMgYSBsaXN0IG9mIHZhbHVlcywgc2VwYXJhdGVkIGJ5IHRoZSBzdHJpbmcgQHZhcntk ZWxpbX0uICBJZgorQHZhcntkZWxpbX0gaXMgb21pdHRlZCwgdXNlIGEgc2luZ2xlIHNwYWNl IGFzIHRoZSBkZWxpbWl0ZXIuCisKK0BpdGVtIG8KK1NvcnRzIGEgbGlzdCBvZiBzdHJpbmdz IGluIGFzY2VuZGluZyBsZXhpY29ncmFwaGljIG9yZGVyLgorCitAaXRlbSBPCitTb3J0cyBh IGxpc3Qgb2Ygc3RyaW5ncyBpbiBkZXNjZW5kaW5nIGxleGljb2dyYXBoaWMgb3JkZXIuCisK K0BpdGVtIHUKK1JlbW92ZXMgYW55IGR1cGxpY2F0ZSBlbGVtZW50cyBmcm9tIGEgbGlzdCBv ZiB2YWx1ZXMuCisKK0BpdGVtIFIKK1JldmVyc2VzIHRoZSBvcmRlciBvZiBhIGxpc3Qgb2Yg dmFsdWVzLgorCitAZW5kIHRhYmxlCisKIEBub2RlIElucHV0L091dHB1dAogQGNoYXB0ZXIg SW5wdXQvT3V0cHV0CiBTaW5jZSBFc2hlbGwgZG9lcyBub3QgY29tbXVuaWNhdGUgd2l0aCBh IHRlcm1pbmFsIGxpa2UgbW9zdCBjb21tYW5kCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9l bS1wcmVkLmVsIGIvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbAppbmRleCA5NzAzMjllMTJhLi5l NzVkYTkxY2Y2IDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCisrKyBiL2xp c3AvZXNoZWxsL2VtLXByZWQuZWwKQEAgLTY4LDcgKzY4LDcgQEAgZXNoZWxsLXByZWQtbG9h ZC1ob29rCiAoZGVmY3VzdG9tIGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QKICAgJygoPy8gLiAo ZXNoZWxsLXByZWQtZmlsZS10eXBlID9kKSkgICA7IGRpcmVjdG9yaWVzCiAgICAgKD8uIC4g KGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/LSkpICAgOyByZWd1bGFyIGZpbGVzCi0gICAgKD9z IC4gKGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/cykpICAgOyBzb2NrZXRzCisgICAgKD89IC4g KGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/cykpICAgOyBzb2NrZXRzCiAgICAgKD9wIC4gKGVz aGVsbC1wcmVkLWZpbGUtdHlwZSA/cCkpICAgOyBuYW1lZCBwaXBlcwogICAgICg/QCAuIChl c2hlbGwtcHJlZC1maWxlLXR5cGUgP2wpKSAgIDsgc3ltYm9saWMgbGlua3MKICAgICAoPyUg LiAoZXNoZWxsLXByZWQtZmlsZS10eXBlID8lKSkgICA7IGFsbG93IHVzZXIgdG8gc3BlY2lm eSAoYyBkZWYuKQpAQCAtOTcsOCArOTcsOCBAQCBlc2hlbGwtcHJlZGljYXRlLWFsaXN0CiAg ICAgICAgICAgICAgICAgIChub3QgKGZpbGUtc3ltbGluay1wIGZpbGUpKQogICAgICAgICAg ICAgICAgICAoZmlsZS1leGVjdXRhYmxlLXAgZmlsZSkpKSkKICAgICAoP2wgLiAoZXNoZWxs LXByZWQtZmlsZS1saW5rcykpCi0gICAgKD91IC4gKGVzaGVsbC1wcmVkLXVzZXItb3ItZ3Jv dXAgP3UgInVzZXIiIDIgJ2VzaGVsbC11c2VyLWlkKSkKLSAgICAoP2cgLiAoZXNoZWxsLXBy ZWQtdXNlci1vci1ncm91cCA/ZyAiZ3JvdXAiIDMgJ2VzaGVsbC1ncm91cC1pZCkpCisgICAg KD91IC4gKGVzaGVsbC1wcmVkLXVzZXItb3ItZ3JvdXAgP3UgInVzZXIiIDIgIydlc2hlbGwt dXNlci1pZCkpCisgICAgKD9nIC4gKGVzaGVsbC1wcmVkLXVzZXItb3ItZ3JvdXAgP2cgImdy b3VwIiAzICMnZXNoZWxsLWdyb3VwLWlkKSkKICAgICAoP2EgLiAoZXNoZWxsLXByZWQtZmls ZS10aW1lID9hICJhY2Nlc3MiIDQpKQogICAgICg/bSAuIChlc2hlbGwtcHJlZC1maWxlLXRp bWUgP20gIm1vZGlmaWNhdGlvbiIgNSkpCiAgICAgKD9jIC4gKGVzaGVsbC1wcmVkLWZpbGUt dGltZSA/YyAiY2hhbmdlIiA2KSkKQEAgLTExMSwxMiArMTExLDcgQEAgZXNoZWxsLXByZWRp Y2F0ZS1hbGlzdAogICA6cmlza3kgdCkKIAogKGRlZmN1c3RvbSBlc2hlbGwtbW9kaWZpZXIt YWxpc3QKLSAgJygoP0UgLiAobGFtYmRhIChsc3QpCi0gICAgICAgICAgICAobWFwY2FyCi0g ICAgICAgICAgICAgKGxhbWJkYSAoc3RyKQotICAgICAgICAgICAgICAgKGVzaGVsbC1zdHJp bmdpZnkKLSAgICAgICAgICAgICAgICAoY2FyIChlc2hlbGwtcGFyc2UtYXJndW1lbnQgc3Ry KSkpKQotICAgICAgICAgICAgIGxzdCkpKQorICAnKCg/RSAuIChsYW1iZGEgKGxzdCkgKG1h cGNhciAjJ2VzaGVsbC1ldmFsLWFyZ3VtZW50IGxzdCkpKQogICAgICg/TCAuIChsYW1iZGEg KGxzdCkgKG1hcGNhciAjJ2Rvd25jYXNlIGxzdCkpKQogICAgICg/VSAuIChsYW1iZGEgKGxz dCkgKG1hcGNhciAjJ3VwY2FzZSBsc3QpKSkKICAgICAoP0MgLiAobGFtYmRhIChsc3QpICht YXBjYXIgIydjYXBpdGFsaXplIGxzdCkpKQpAQCAtMTI5LDEwICsxMjQsMTAgQEAgZXNoZWxs LW1vZGlmaWVyLWFsaXN0CiAgICAgKD9xIC4gKGxhbWJkYSAobHN0KSAobWFwY2FyICMnZXNo ZWxsLWVzY2FwZS1hcmcgbHN0KSkpCiAgICAgKD91IC4gKGxhbWJkYSAobHN0KSAoc2VxLXVu aXEgbHN0KSkpCiAgICAgKD9vIC4gKGxhbWJkYSAobHN0KSAoc29ydCBsc3QgIydzdHJpbmct bGVzc3ApKSkKLSAgICAoP08gLiAobGFtYmRhIChsc3QpIChucmV2ZXJzZSAoc29ydCBsc3Qg IydzdHJpbmctbGVzc3ApKSkpCisgICAgKD9PIC4gKGxhbWJkYSAobHN0KSAoc29ydCBsc3Qg IydzdHJpbmctZ3JlYXRlcnApKSkKICAgICAoP2ogLiAoZXNoZWxsLWpvaW4tbWVtYmVycykp CiAgICAgKD9TIC4gKGVzaGVsbC1zcGxpdC1tZW1iZXJzKSkKLSAgICAoP1IgLiAncmV2ZXJz ZSkKKyAgICAoP1IgLiAjJ3JldmVyc2UpCiAgICAgKD9nIC4gKHByb2duCiAJICAgIChmb3J3 YXJkLWNoYXIpCiAJICAgIChpZiAoZXEgKGNoYXItYmVmb3JlKSA/cykKQEAgLTE0Miw3ICsx MzcsNyBAQCBlc2hlbGwtbW9kaWZpZXItYWxpc3QKICAgIkEgbGlzdCBvZiBtb2RpZmllcnMg dGhhbiBjYW4gYmUgYXBwbGllZCB0byBhbiBhcmd1bWVudCBleHBhbnNpb24uCiBUaGUgZm9y bWF0IG9mIGVhY2ggZW50cnkgaXMKIAotICAoQ0hBUiBFTlRSWVdJU0UtUCBNT0RJRklFUi1G VU5DLVNFWFApIgorICAoQ0hBUiAuIE1PRElGSUVSLUZVTkMtU0VYUCkiCiAgIDp0eXBlICco cmVwZWF0IChjb25zIGNoYXJhY3RlciBzZXhwKSkKICAgOnJpc2t5IHQpCiAKQEAgLTIxNyw4 ICsyMTIsOCBAQCBlc2hlbGwtbW9kaWZpZXItaGVscC1zdHJpbmcKICAgaS9QQVQvICBleGNs dWRlIGFsbCBtZW1iZXJzIG5vdCBtYXRjaGluZyBQQVQKICAgeC9QQVQvICBleGNsdWRlIGFs bCBtZW1iZXJzIG1hdGNoaW5nIFBBVAogCi0gIHMvcGF0L21hdGNoLyAgc3Vic3RpdHV0ZSBQ QVQgd2l0aCBNQVRDSAotICBnL3BhdC9tYXRjaC8gIHN1YnN0aXR1dGUgUEFUIHdpdGggTUFU Q0ggZm9yIGFsbCBvY2N1cnJlbmNlcworICBzL3BhdC9tYXRjaC8gICBzdWJzdGl0dXRlIFBB VCB3aXRoIE1BVENICisgIGdzL3BhdC9tYXRjaC8gIHN1YnN0aXR1dGUgUEFUIHdpdGggTUFU Q0ggZm9yIGFsbCBvY2N1cnJlbmNlcwogCiBFWEFNUExFUzoKICAgKi5jKDpvKSAgc29ydGVk IGxpc3Qgb2YgLmMgZmlsZXMiKQpAQCAtNTY4LDcgKzU2Myw3IEBAIGVzaGVsbC1qb2luLW1l bWJlcnMKICAgKGxldCAoKGRlbGltIChjaGFyLWFmdGVyKSkKIAlzdHIgZW5kKQogICAgIChp ZiAobm90IChtZW1xIGRlbGltICcoPycgPy8pKSkKLQkoc2V0cSBkZWxpbSAiICIpCisJKHNl dHEgc3RyICIgIikKICAgICAgIChmb3J3YXJkLWNoYXIpCiAgICAgICAoc2V0cSBlbmQgKGVz aGVsbC1maW5kLWRlbGltaXRlciBkZWxpbSBkZWxpbSBuaWwgbmlsIHQpCiAJICAgIHN0ciAo YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkgZW5kKSkKZGlmZiAtLWdp dCBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwgYi9saXNwL2VzaGVsbC9lc2gtY21kLmVsCmlu ZGV4IDhiZTExMzZlMzEuLjQyNjE2ZTcwMzcgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2Vz aC1jbWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbApAQCAtMTAwMiw2ICsxMDAy LDE0IEBAIGVzaGVsbC1pbnZva2UtZGlyZWN0bHkKICAgKGxldCAoKGJhc2UgKGNhZHIgKG50 aCAyIChudGggMiAoY2FkciBjb21tYW5kKSkpKSkpCiAgICAgKGVzaGVsbC0taW52b2tlLWNv bW1hbmQtZGlyZWN0bHkgYmFzZSkpKQogCisoZGVmdW4gZXNoZWxsLWV2YWwtYXJndW1lbnQg KGFyZ3VtZW50KQorICAiRXZhbHVhdGUgYSBzaW5nbGUgRXNoZWxsIEFSR1VNRU5UIGFuZCBy ZXR1cm4gdGhlIHJlc3VsdC4iCisgIChsZXQqICgoZm9ybSAoZXNoZWxsLXdpdGgtdGVtcC1j b21tYW5kIGFyZ3VtZW50CisgICAgICAgICAgICAgICAgIChlc2hlbGwtcGFyc2UtYXJndW1l bnQpKSkKKyAgICAgICAgIChyZXN1bHQgKGVzaGVsbC1kby1ldmFsIGZvcm0gdCkpKQorICAg IChjbC1hc3NlcnQgKGVxIChjYXIgcmVzdWx0KSAncXVvdGUpKQorICAgIChjYWRyIHJlc3Vs dCkpKQorCiAoZGVmdW4gZXNoZWxsLWV2YWwtY29tbWFuZCAoY29tbWFuZCAmb3B0aW9uYWwg aW5wdXQpCiAgICJFdmFsdWF0ZSB0aGUgZ2l2ZW4gQ09NTUFORCBpdGVyYXRpdmVseS4iCiAg IChpZiBlc2hlbGwtY3VycmVudC1jb21tYW5kCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNo ZWxsL2VtLXByZWQtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMu ZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjc0NmFhM2RhOAot LS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbApA QCAtMCwwICsxLDUyMCBAQAorOzs7IGVtLXByZWQtdGVzdHMuZWwgLS0tIGVtLXByZWQgdGVz dCBzdWl0ZSAgLSotIGxleGljYWwtYmluZGluZzp0IC0qLQorCis7OyBDb3B5cmlnaHQgKEMp IDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworOzsgR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRlc3RzIGZv ciBFc2hlbGwncyBhcmd1bWVudCBwcmVkaWNhdGVzL21vZGlmaWVycy4KKworOzs7IENvZGU6 CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWlyZSAnZXNoLW1vZGUpCisocmVxdWlyZSAnZXNo ZWxsKQorCisocmVxdWlyZSAnZXNoZWxsLXRlc3RzLWhlbHBlcnMKKyAgICAgICAgIChleHBh bmQtZmlsZS1uYW1lICJlc2hlbGwtdGVzdHMtaGVscGVycyIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIChmaWxlLW5hbWUtZGlyZWN0b3J5IChvciBsb2FkLWZpbGUtbmFtZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1 bHQtZGlyZWN0b3J5KSkpKQorCisoZGVmdmFyIGVzaGVsbC10ZXN0LXZhbHVlIG5pbCkKKwor KGRlZnVuIGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAoaW5pdGlhbC12YWx1ZSBwcmVkaWNhdGUp CisgICJFdmFsdWF0ZSBQUkVESUNBVEUgb24gSU5JVElBTC1WQUxVRSwgcmV0dXJuaW5nIHRo ZSByZXN1bHQuCitQUkVESUNBVEUgaXMgYW4gRXNoZWxsIGFyZ3VtZW50IHByZWRpY2F0ZS9t b2RpZmllci4iCisgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSBpbml0aWFsLXZhbHVlKSkK KyAgICAod2l0aC10ZW1wLWVzaGVsbAorICAgICAoZXNoZWxsLWluc2VydC1jb21tYW5kCisg ICAgICAoZm9ybWF0ICJzZXRxIGVzaGVsbC10ZXN0LXZhbHVlICRlc2hlbGwtdGVzdC12YWx1 ZSglcykiIHByZWRpY2F0ZSkpKQorICAgIGVzaGVsbC10ZXN0LXZhbHVlKSkKKworKGRlZnVu IGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyAoZmlsZSkKKyAgIlBhcnNlIGEg ZmFrZSBGSUxFIG5hbWUgdG8gZGV0ZXJtaW5lIGl0cyBhdHRyaWJ1dGVzLgorRmFrZSBmaWxl IG5hbWVzIGFyZSBmaWxlIG5hbWVzIGJlZ2lubmluZyB3aXRoIFwiL2Zha2UvXCIuICBUaGlz CithbGxvd3MgZGVmaW5pbmcgZmlsZSBuYW1lcyBmb3IgZmFrZSBmaWxlcyB3aXRoIHZhcmlv dXMgcHJvcGVydGllcwordG8gcXVlcnkgdmlhIHByZWRpY2F0ZXMuICBBdHRyaWJ1dGVzIGFy ZSB3cml0dGVuIGFzIGEKK2NvbW1hLXNlcGFyYXRlIGxpc3Qgb2YgQVRUUj1WQUxVRSBwYWly cyBhcyB0aGUgZmlsZSdzIGJhc2UgbmFtZSwKK2xpa2U6CisKKyAgL2Zha2UvdHlwZT0tLG1v ZGVzPTA3NTUuZWwKKworVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSByZWNvZ25pemVk OgorCisgICogXCJ0eXBlXCI6IEEgc2luZ2xlIGNoYXJhY3RlciBkZXNjcmliaW5nIHRoZSBm aWxlIHR5cGU7CisgICAgYWNjZXB0cyB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGZpcnN0IGNo YXJhY3RlciBvZiB0aGUgZmlsZQorICAgIG1vZGVzIGluIGBscyAtbCcuCisgICogXCJtb2Rl c1wiOiBUaGUgZmlsZSdzIHBlcm1pc3Npb24gbW9kZXMsIGluIG9jdGFsLgorICAqIFwibGlu a3NcIjogVGhlIG51bWJlciBvZiBsaW5rcyB0byB0aGlzIGZpbGUuCisgICogXCJ1aWRcIjog VGhlIFVJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgorICAqIFwiZ2lkXCI6IFRoZSBVSUQgb2Yg dGhlIGZpbGUncyBncm91cC4KKyAgKiBcImF0aW1lXCI6IFRoZSB0aW1lIHRoZSBmaWxlIHdh cyBsYXN0IGFjY2Vzc2VkLCBpbiBzZWNvbmRzCisgICAgc2luY2UgdGhlIFVOSVggZXBvY2gu CisgICogXCJtdGltZVwiOiBBcyBcImF0aW1lXCIsIGJ1dCBmb3IgbW9kaWZpY2F0aW9uIHRp bWUuCisgICogXCJjdGltZVwiOiBBcyBcImF0aW1lXCIsIGJ1dCBmb3IgaW5vZGUgY2hhbmdl IHRpbWUuCisgICogXCJzaXplXCI6IFRoZSBmaWxlJ3Mgc2l6ZSBpbiBieXRlcy4iCisgICht YXBjYXIgKGxhbWJkYSAoaSkKKyAgICAgICAgICAgIChwY2FzZSAoc3BsaXQtc3RyaW5nIGkg Ij0iKQorICAgICAgICAgICAgICAoYCgibW9kZXMiICxtb2RlcykKKyAgICAgICAgICAgICAg IChjb25zICdtb2RlcyAoc3RyaW5nLXRvLW51bWJlciBtb2RlcyA4KSkpCisgICAgICAgICAg ICAgIChgKCwoYW5kIChvciAibGlua3MiICJ1aWQiICJnaWQiICJzaXplIikga2V5KSAsdmFs dWUpCisgICAgICAgICAgICAgICAoY29ucyAoaW50ZXJuIGtleSkgKHN0cmluZy10by1udW1i ZXIgdmFsdWUpKSkKKyAgICAgICAgICAgICAgKGAoLChhbmQgKG9yICJhdGltZSIgIm10aW1l IiAiY3RpbWUiKSBrZXkpICx2YWx1ZSkKKyAgICAgICAgICAgICAgIChjb25zIChpbnRlcm4g a2V5KSAodGltZS1jb252ZXJ0IChzdHJpbmctdG8tbnVtYmVyIHZhbHVlKSkpKQorICAgICAg ICAgICAgICAoYCgsa2V5ICx2YWx1ZSkKKyAgICAgICAgICAgICAgIChjb25zIChpbnRlcm4g a2V5KSB2YWx1ZSkpCisgICAgICAgICAgICAgIChfIChlcnJvciAiaW52YWxpZCBmb3JtYXQg JVMiIGkpKSkpCisgICAgICAgICAgKHNwbGl0LXN0cmluZyAoZmlsZS1uYW1lLWJhc2UgZmls ZSkgIiwiKSkpCisKKyhkZWZtYWNybyBlc2hlbGwtcGFydGlhbC1sZXQtZnVuYyAob3ZlcnJp ZGVzICZyZXN0IGJvZHkpCisgICJUZW1wb3JhcmlseSBiaW5kIHRvIEZVTkNUSU9OLU5BTUVz IGFuZCBldmFsdWF0ZSBCT0RZLgorVGhpcyBpcyByb3VnaGx5IGFuYWxvZ291cyB0byBhZHZp c2luZyBmdW5jdGlvbnMsIGJ1dCBvbmx5IGRvZXMgc28KK3doaWxlIEJPRFkgaXMgZXhlY3V0 aW5nLCBhbmQgb25seSBjYWxscyBORVctRlVOQ1RJT04gaWYgaXRzIGZpcnN0Cithcmd1bWVu dCBpcyBhIHN0cmluZyBiZWdpbm5pbmcgd2l0aCBcIi9mYWtlL1wiLgorCitUaGlzIGFsbG93 cyBzZWxlY3RpdmVseSBvdmVycmlkaW5nIGZ1bmN0aW9ucyB0byB0ZXN0IGZpbGUKK3Byb3Bl cnRpZXMgd2l0aCBmYWtlIGZpbGVzIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGZ1bmN0aW9ucycK K2JlaGF2aW9yIGZvciByZWFsIGZpbGVzLgorCitcKGZuICgoRlVOQ1RJT04tTkFNRSBORVct RlVOQ1RJT04pIC4uLikgQk9EWS4uLikiCisgIChkZWNsYXJlIChpbmRlbnQgMSkpCisgIGAo Y2wtbGV0ZgorICAgICAgICwobWFwY2FyCisgICAgICAgICAobGFtYmRhIChvdmVycmlkZSkK KyAgICAgICAgICAgKGxldCAoKG9yaWctZnVuY3Rpb24gKHN5bWJvbC1mdW5jdGlvbiAoY2Fy IG92ZXJyaWRlKSkpKQorICAgICAgICAgICAgIGAoKHN5bWJvbC1mdW5jdGlvbiAjJywoY2Fy IG92ZXJyaWRlKSkKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGZpbGUgJnJlc3QgcmVzdCkK KyAgICAgICAgICAgICAgICAgKGFwcGx5CisgICAgICAgICAgICAgICAgICAoaWYgKGFuZCAo c3RyaW5ncCBmaWxlKSAoc3RyaW5nLXByZWZpeC1wICIvZmFrZS8iIGZpbGUpKQorICAgICAg ICAgICAgICAgICAgICAgICwoY2FkciBvdmVycmlkZSkKKyAgICAgICAgICAgICAgICAgICAg LG9yaWctZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICBmaWxlIHJlc3QpKSkpKQorICAg ICAgICAgb3ZlcnJpZGVzKQorICAgICAsQGJvZHkpKQorCisoZGVmbWFjcm8gZXNoZWxsLXdp dGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZSAoJnJlc3QgYm9keSkKKyAgIlRlbXBvcmFy aWx5IG92ZXJyaWRlIGZpbGUgYXR0cmlidXRlIGZ1bmN0aW9ucyBhbmQgZXZhbHVhdGUgQk9E WS4iCisgIChkZWNsYXJlIChpbmRlbnQgMCkpCisgIGAoZXNoZWxsLXBhcnRpYWwtbGV0LWZ1 bmMKKyAgICAgICAoKGZpbGUtYXR0cmlidXRlcworICAgICAgICAgKGxhbWJkYSAoZmlsZSAm b3B0aW9uYWwgX2lkLWZvcm1hdCkKKyAgICAgICAgICAgKGxldCAoKGF0dHJzIChlc2hlbGwt cGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgZmlsZSkpKQorICAgICAgICAgICAgIChsaXN0 IChlcXVhbCAoYWxpc3QtZ2V0ICd0eXBlIGF0dHJzKSAiZCIpCisgICAgICAgICAgICAgICAg ICAgKG9yIChhbGlzdC1nZXQgJ2xpbmtzIGF0dHJzKSAxKQorICAgICAgICAgICAgICAgICAg IChvciAoYWxpc3QtZ2V0ICd1aWQgYXR0cnMpIDApCisgICAgICAgICAgICAgICAgICAgKG9y IChhbGlzdC1nZXQgJ2dpZCBhdHRycykgMCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnYXRpbWUgYXR0cnMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnbXRpbWUgYXR0cnMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnY3RpbWUgYXR0cnMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnc2l6ZSBhdHRycykgMCkKKyAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIl cy0tLS0tLS0tLSIgKG9yIChhbGlzdC1nZXQgJ3R5cGUgYXR0cnMpICItIikpCisgICAgICAg ICAgICAgICAgICAgbmlsIDAgMCkpKSkKKyAgICAgICAgKGZpbGUtbW9kZXMKKyAgICAgICAg IChsYW1iZGEgKGZpbGUgX25vZm9sbG93KQorICAgICAgICAgICAobGV0ICgoYXR0cnMgKGVz aGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAgICAgICAg KG9yIChhbGlzdC1nZXQgJ21vZGVzIGF0dHJzKSAwKSkpKQorICAgICAgICAoZmlsZS1leGlz dHMtcCAjJ2Fsd2F5cykKKyAgICAgICAgKGZpbGUtcmVndWxhci1wCisgICAgICAgICAobGFt YmRhIChmaWxlKQorICAgICAgICAgICAobGV0ICgoYXR0cnMgKGVzaGVsbC1wYXJzZS1maWxl LW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAgICAgICAgKG1lbWJlciAob3IgKGFs aXN0LWdldCAndHlwZSBhdHRycykgIi0iKSAnKCItIiAibCIpKSkpKQorICAgICAgICAoZmls ZS1zeW1saW5rLXAKKyAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgIChsZXQg KChhdHRycyAoZXNoZWxsLXBhcnNlLWZpbGUtbmFtZS1hdHRyaWJ1dGVzIGZpbGUpKSkKKyAg ICAgICAgICAgICAoZXF1YWwgKGFsaXN0LWdldCAndHlwZSBhdHRycykgImwiKSkpKQorICAg ICAgICAoZmlsZS1leGVjdXRhYmxlLXAKKyAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAg ICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNlLWZpbGUtbmFtZS1hdHRyaWJ1dGVz IGZpbGUpKSkKKyAgICAgICAgICAgICA7OyBGb3Igc2ltcGxpY2l0eSwganVzdCByZXR1cm4g d2hldGhlciB0aGUgZmlsZSBpcworICAgICAgICAgICAgIDs7IHdvcmxkLWV4ZWN1dGFibGUu CisgICAgICAgICAgICAgKD0gKGxvZ2FuZCAob3IgKGFsaXN0LWdldCAnbW9kZXMgYXR0cnMp IDApIDEpIDEpKSkpKQorICAgICAsQGJvZHkpKQorCis7OzsgVGVzdHM6CisKKwwKKzs7IEFy Z3VtZW50IHByZWRpY2F0ZXMKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNh dGUtZmlsZS10eXBlcyAoKQorICAiVGVzdCBmaWxlIHR5cGUgcHJlZGljYXRlcy4iCisgIChl c2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVz IChtYXBjYXIgKGxhbWJkYSAoaSkgKGZvcm1hdCAiL2Zha2UvdHlwZT0lcyIgaSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgJygiYiIgImMiICJkLyIgInAiICJzIiAibCIgIi0iKSkp KQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAi JSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS90eXBlPWIiICIvZmFrZS90eXBl PWMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZp bGVzICIlYiIpICcoIi9mYWtlL3R5cGU9YiIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIiVjIikgJygiL2Zha2UvdHlwZT1jIikpKQor ICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiLyIp ICAnKCIvZmFrZS90eXBlPWQvIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyAiLiIpICAnKCIvZmFrZS90eXBlPS0iKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJwIikgICcoIi9m YWtlL3R5cGU9cCIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIj0iKSAgJygiL2Zha2UvdHlwZT1zIikpKQorICAgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiQCIpICAnKCIvZmFrZS90eXBl PWwiKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWV4ZWN1 dGFibGUgKCkKKyAgIlRlc3QgdGhhdCBcIipcIiBtYXRjaGVzIG9ubHkgcmVndWxhciwgbm9u LXN5bWxpbmsgZXhlY3V0YWJsZSBmaWxlcy4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJp YnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL21vZGVzPTA3Nzci ICIvZmFrZS9tb2Rlcz0wNjY2IgorICAgICAgICAgICAgICAgICAgICIvZmFrZS90eXBlPWQs bW9kZXM9MDc3NyIgIi9mYWtlL3R5cGU9bCxtb2Rlcz0wNzc3IikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiKiIpCisgICAgICAgICAg ICAgICAgICAgICAnKCIvZmFrZS9tb2Rlcz0wNzc3IikpKSkpKQorCisoZGVmbWFjcm8gZW0t cHJlZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgKG5hbWUgbW9kZS10ZW1wbGF0ZSBwcmVk aWNhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm9wdGlvbmFsIGRvY3N0cmluZykKKyAgIkRlZmluZSBOQU1FIGFzIGEgZmlsZS1tb2Rl IHRlc3QuCitNT0RFLVRFTVBMQVRFIGlzIGEgZm9ybWF0IHN0cmluZyB0byBjb252ZXJ0IGFu IGludGVnZXIgZnJvbSAwIHRvCis3IHRvIGFuIG9jdGFsIGZpbGUgbW9kZS4gIFBSRURJQ0FU RVMgaXMgYSBsaXN0IG9mIHN0cmluZ3MgZm9yIHRoZQorcmVhZCwgd3JpdGUsIGFuZCBleGVj dXRlIHByZWRpY2F0ZXMgdG8gcXVlcnkgdGhlIGZpbGUncyBtb2Rlcy4iCisgIChkZWNsYXJl IChpbmRlbnQgNCkgKGRvYy1zdHJpbmcgNCkpCisgIGAoZXJ0LWRlZnRlc3QgLG5hbWUgKCkK KyAgICAgLGRvY3N0cmluZworICAgICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZy b20tbmFtZQorICAgICAgIChsZXQgKChmaWxlLXRlbXBsYXRlIChjb25jYXQgIi9mYWtlL21v ZGVzPSIgLG1vZGUtdGVtcGxhdGUpKSkKKyAgICAgICAgIChjbC1mbGV0ICgobWFrZS1maWxl cyAocGVybXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAobGFt YmRhIChpKSAoZm9ybWF0IGZpbGUtdGVtcGxhdGUgaSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZXJtcykpKQorICAgICAgICAgICAocGNhc2UtbGV0ICgo ZmlsZXMgKG1ha2UtZmlsZXMgKG51bWJlci1zZXF1ZW5jZSAwIDcpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgKGAoLHJlYWQgLHdyaXRlICxleGVjKSAscHJlZGljYXRlcykpCisgICAg ICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyBy ZWFkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoNCA1IDYg NykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzIChjb25jYXQgIl4iIHJlYWQpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChtYWtlLWZpbGVzICcoMCAxIDIgMykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIHdyaXRlKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMiAzIDYgNykpKSkKKyAgICAgICAgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25jYXQg Il4iIHdyaXRlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1maWxlcyAn KDAgMSA0IDUpKSkpCisgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyBleGVjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICht YWtlLWZpbGVzICcoMSAzIDUgNykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25jYXQgIl4iIGV4ZWMpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMCAyIDQgNikpKSkpKSkpKSkK KworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVk aWNhdGUtZmlsZS1tb2Rlcy1vd25lcgorICAgICIwJW8wMCIgJygiciIgInciICJ4IikKKyAg ICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgb3duZXIu IikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9w cmVkaWNhdGUtZmlsZS1tb2Rlcy1ncm91cAorICAgICIwMCVvMCIgJygiQSIgIkkiICJFIikK KyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgZ3Jv dXAuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVz dC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy13b3JsZAorICAgICIwMDAlbyIgJygiUiIgIlciICJY IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUg d29ybGQuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQt dGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1mbGFncworICAgICIlbzAwMCIgJygicyIgIlMi ICJ0IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBcInNcIiAoc2V0dWlkKSwgXCJTXCIg KHNldGdpZCksIGFuZCBcInRcIiAoc3RpY2t5KS4iKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJl ZC10ZXN0L3ByZWRpY2F0ZS1lZmZlY3RpdmUtdWlkICgpCisgICJUZXN0IHRoYXQgXCJVXCIg bWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0aGUgZWZmZWN0aXZlIFVJRC4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGNsLWxldGYgKCgoc3ltYm9s LWZ1bmN0aW9uICd1c2VyLXVpZCkgKGxhbWJkYSAoKSAxKSkpCisgICAgICAobGV0ICgoZmls ZXMgJygiL2Zha2UvdWlkPTEiICIvZmFrZS91aWQ9MiIpKSkKKyAgICAgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiVSIpCisgICAgICAgICAgICAg ICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9wcmVkaWNhdGUtbGlua3MgKCkKKyAgIlRlc3QgdGhhdCBcImxcIiBmaWx0ZXJz IGJ5IG51bWJlciBvZiBsaW5rcy4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMt ZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL2xpbmtzPTEiICIvZmFrZS9s aW5rcz0yIiAiL2Zha2UvbGlua3M9MyIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImwxIikKKyAgICAgICAgICAgICAgICAgICAgICco Ii9mYWtlL2xpbmtzPTEiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlIGZpbGVzICJsKzEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uv bGlua3M9MiIgIi9mYWtlL2xpbmtzPTMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJsLTMiKQorICAgICAgICAgICAgICAgICAgICAg JygiL2Zha2UvbGlua3M9MSIgIi9mYWtlL2xpbmtzPTIiKSkpKSkpCisKKyhlcnQtZGVmdGVz dCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLXVpZCAoKQorICAiVGVzdCB0aGF0IFwidVwiIGZp bHRlcnMgYnkgVUlEL3VzZXIgbmFtZS4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0 ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL3VpZD0xIiAiL2Zha2Uv dWlkPTIiKSkKKyAgICAgICAgICAodXNlci1uYW1lcyAnKCJyb290IiAib25lIiAidHdvIikp KQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAi dTEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdWlkPTEiKSkpCisgICAgICAo Y2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2VzaGVsbC11c2VyLWlkKQorICAgICAgICAg ICAgICAgICAobGFtYmRhIChuYW1lKSAoc2VxLXBvc2l0aW9uIHVzZXItbmFtZXMgbmFtZSkp KSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAidSdvbmUnIikKKyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdWlkPTEiKSkp CisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMg InV7b25lfSIpCisgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKSkp KSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZ2lkICgpCisgICJU ZXN0IHRoYXQgXCJnXCIgZmlsdGVycyBieSBHSUQvZ3JvdXAgbmFtZS4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9m YWtlL2dpZD0xIiAiL2Zha2UvZ2lkPTIiKSkKKyAgICAgICAgICAoZ3JvdXAtbmFtZXMgJygi cm9vdCIgIm9uZSIgInR3byIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgImcxIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtl L2dpZD0xIikpKQorICAgICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdlc2hlbGwt Z3JvdXAtaWQpCisgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5hbWUpIChzZXEtcG9zaXRp b24gZ3JvdXAtbmFtZXMgbmFtZSkpKSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiZydvbmUnIikKKyAgICAgICAgICAgICAgICAgICAg ICAgJygiL2Zha2UvZ2lkPTEiKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUgZmlsZXMgImd7b25lfSIpCisgICAgICAgICAgICAgICAgICAgICAg ICcoIi9mYWtlL2dpZD0xIikpKSkpKSkKKworKGRlZm1hY3JvIGVtLXByZWQtdGVzdC0tdGlt ZS1kZWZ0ZXN0IChuYW1lIGZpbGUtYXR0cmlidXRlIHByZWRpY2F0ZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcHRpb25hbCBkb2NzdHJpbmcpCisg ICJEZWZpbmUgTkFNRSBhcyBhIGZpbGUtdGltZSB0ZXN0LgorRklMRS1BVFRSSUJVVEUgaXMg dGhlIGZpbGUncyBhdHRyaWJ1dGUgdG8gc2V0IChlLmcuIFwiYXRpbWVcIikuCitQUkVESUNB VEUgaXMgdGhlIHByZWRpY2F0ZSB1c2VkIHRvIHF1ZXJ5IHRoYXQgYXR0cmlidXRlLiIKKyAg KGRlY2xhcmUgKGluZGVudCA0KSAoZG9jLXN0cmluZyA0KSkKKyAgYChlcnQtZGVmdGVzdCAs bmFtZSAoKQorICAgICAsZG9jc3RyaW5nCisgICAgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJp YnV0ZXMtZnJvbS1uYW1lCisgICAgICAgKGNsLWZsZXQgKChtYWtlLWZpbGUgKHRpbWUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiL2Zha2UvJXM9JWQiICxmaWxl LWF0dHJpYnV0ZSB0aW1lKSkpCisgICAgICAgICAobGV0KiAoKG5vdyAodGltZS1jb252ZXJ0 IG5pbCAnaW50ZWdlcikpCisgICAgICAgICAgICAgICAgKHllc3RlcmRheSAoLSBub3cgODY0 MDApKQorICAgICAgICAgICAgICAgIChmaWxlcyAobWFwY2FyICMnbWFrZS1maWxlIChsaXN0 IG5vdyB5ZXN0ZXJkYXkpKSkpCisgICAgICAgICAgIDs7IFRlc3QgY29tcGFyaXNvbiBhZ2Fp bnN0IGEgbnVtYmVyIG9mIGRheXMuCisgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChj b25jYXQgLHByZWRpY2F0ZSAiLTEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h cGNhciAjJ21ha2UtZmlsZSAobGlzdCBub3cpKSkpCisgICAgICAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiKzEiKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCB5ZXN0ZXJkYXkpKSkpCisgICAgICAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiKzIiKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgbmlsKSkKKyAgICAgICAgICAgOzsgVGVzdCBjb21wYXJp c29uIGFnYWluc3QgYSBudW1iZXIgb2YgaG91cnMuCisgICAgICAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiaC0xIikpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXBjYXIgIydtYWtlLWZpbGUgKGxpc3Qgbm93KSkpKQorICAgICAgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWxlcyAoY29uY2F0ICxwcmVkaWNhdGUgImgrMSIpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAobWFwY2FyICMnbWFrZS1maWxlIChsaXN0IHllc3RlcmRheSkp KSkKKyAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgKGNvbmNhdCAscHJlZGljYXRlICIr NDgiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsKSkKKyAgICAgICAgICAgOzsg VGVzdCBjb21wYXJpc29uIGFnYWluc3QgYW5vdGhlciBmaWxlLgorICAgICAgICAgICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBmaWxlcyAoZm9ybWF0ICIlcy0nJXMnIiAscHJlZGljYXRlIChtYWtlLWZpbGUg bm93KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkpCisgICAgICAgICAgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpbGVzIChmb3JtYXQgIiVzKyclcyciICxwcmVkaWNhdGUgKG1ha2UtZmls ZSBub3cpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ21ha2UtZmls ZSAobGlzdCB5ZXN0ZXJkYXkpKSkpKSkpKSkKKworKGVtLXByZWQtdGVzdC0tdGltZS1kZWZ0 ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtYWNjZXNzLXRpbWUKKyAgICAiYXRpbWUiICJh IgorICAgICJUZXN0IHRoYXQgXCJhXCIgZmlsdGVycyBieSBhY2Nlc3MgdGltZS4iKQorCiso ZW0tcHJlZC10ZXN0LS10aW1lLWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1tb2Rp ZmljYXRpb24tdGltZQorICAgICJtdGltZSIgIm0iCisgICAgIlRlc3QgdGhhdCBcIm1cIiBm aWx0ZXJzIGJ5IGNoYW5nZSB0aW1lLiIpCisKKyhlbS1wcmVkLXRlc3QtLXRpbWUtZGVmdGVz dCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWNoYW5nZS10aW1lCisgICAgImN0aW1lIiAiYyIK KyAgICAiVGVzdCB0aGF0IFwiY1wiIGZpbHRlcnMgYnkgY2hhbmdlIHRpbWUuIikKKworKGVy dC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtc2l6ZSAoKQorICAiVGVzdCB0aGF0 IFwiTFwiIGZpbHRlcnMgYnkgZmlsZSBzaXplLiIKKyAgKGVzaGVsbC13aXRoLWZpbGUtYXR0 cmlidXRlcy1mcm9tLW5hbWUKKyAgICAobGV0ICgoZmlsZXMgJygiL2Zha2Uvc2l6ZT0wIgor ICAgICAgICAgICAgICAgICAgIDs7IDEgYW5kIDIgS2lCLgorICAgICAgICAgICAgICAgICAg ICIvZmFrZS9zaXplPTEwMjQiICIvZmFrZS9zaXplPTIwNDgiCisgICAgICAgICAgICAgICAg ICAgOzsgMSBhbmQgMiBNaUIuCisgICAgICAgICAgICAgICAgICAgIi9mYWtlL3NpemU9MTA0 ODU3NiIgIi9mYWtlL3NpemU9MjA5NzE1MiIpKSkKKyAgICAgIDs7IFNpemUgaW4gYnl0ZXMu CisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJM MjA0OCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTIwNDgiKSkpCisg ICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMKzIw NDgiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zh a2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiTC0yMDQ4IikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9m YWtlL3NpemU9MCIgIi9mYWtlL3NpemU9MTAyNCIpKSkKKyAgICAgIDs7IFNpemUgaW4gYmxv Y2tzLgorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiTHA0IikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MjA0OCIpKSkK KyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxw KzQiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zh a2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiTHAtNCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS9zaXplPTAiICIvZmFrZS9zaXplPTEwMjQiKSkpCisgICAgICA7OyBTaXplIGluIEtpQi4K KyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxr MiIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTIwNDgiKSkpCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMaysyIikK KyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MTA0ODU3NiIgIi9mYWtlL3Np emU9MjA5NzE1MiIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIkxrLTIiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6 ZT0wIiAiL2Zha2Uvc2l6ZT0xMDI0IikpKQorICAgICAgOzsgU2l6ZSBpbiBNaUIuCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMTTEiKQor ICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0xMDQ4NTc2IikpKQorICAgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTE0rMSIpCisg ICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTIwOTcxNTIiKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMTS0xIikKKyAg ICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MCIgIi9mYWtlL3NpemU9MTAyNCIg Ii9mYWtlL3NpemU9MjA0OCIpKSkpKSkKKworDAorOzsgQXJndW1lbnQgbW9kaWZpZXJzCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItZXZhbCAoKQorICAiVGVzdCB0 aGF0IFwiOkVcIiByZS1ldmFsdWF0ZXMgdGhlIHZhbHVlLiIKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiJHtlY2hvIGhpfSIgIjpFIikgImhpIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAg ICcoIiR7ZWNobyBoaX0iICIkKHVwY2FzZSBcImJ5ZVwiKSIpICI6RSIpCisgICAgICAgICAg ICAgICAgICcoImhpIiAiQllFIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9t b2RpZmllci1kb3duY2FzZSAoKQorICAiVGVzdCB0aGF0IFwiOkxcIiBkb3duY2FzZXMgdmFs dWVzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiRk9PIiAi OkwiKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUg JygiRk9PIiAiQkFSIikgIjpMIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIikp KSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci11cGNhc2UgKCkKKyAg IlRlc3QgdGhhdCBcIjpVXCIgdXBjYXNlcyB2YWx1ZXMuIgorICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6VSIpICJGT08iKSkKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiKSAiOlUiKQorICAg ICAgICAgICAgICAgICAnKCJGT08iICJCQVIiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJl ZC10ZXN0L21vZGlmaWVyLWNhcGl0YWxpemUgKCkKKyAgIlRlc3QgdGhhdCBcIjpDXCIgY2Fw aXRhbGl6ZXMgdmFsdWVzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSAiZm9vIGJhciIgIjpDIikgIkZvbyBCYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28gYmFyIiAiYmF6IikgIjpDIikKKyAgICAgICAg ICAgICAgICAgJygiRm9vIEJhciIgIkJheiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVk LXRlc3QvbW9kaWZpZXItZGlybmFtZSAoKQorICAiVGVzdCB0aGF0IFwiOmhcIiByZXR1cm5z IHRoZSBkaXJuYW1lLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjpoIikgIi9wYXRoL3RvLyIpKQorICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAnKCIvcGF0 aC90by9maWxlLmVsIiAiL290aGVyL3BhdGgvIikgIjpoIikKKyAgICAgICAgICAgICAgICAg JygiL3BhdGgvdG8vIiAiL290aGVyL3BhdGgvIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9tb2RpZmllci1iYXNlbmFtZSAoKQorICAiVGVzdCB0aGF0IFwiOnRcIiByZXR1 cm5zIHRoZSBiYXNlbmFtZS4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgIi9wYXRoL3RvL2ZpbGUuZWwiICI6dCIpICJmaWxlLmVsIikpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICcoIi9w YXRoL3RvL2ZpbGUuZWwiICIvb3RoZXIvcGF0aC8iKSAiOnQiKQorICAgICAgICAgICAgICAg ICAnKCJmaWxlLmVsIiAiIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2Rp Zmllci1leHRlbnNpb24gKCkKKyAgIlRlc3QgdGhhdCBcIjplXCIgcmV0dXJucyB0aGUgZXh0 ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiL3Bh dGgvdG8vZmlsZS5lbCIgIjplIikgImVsIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUuZWwi ICIvb3RoZXIvcGF0aC8iKSAiOmUiKQorICAgICAgICAgICAgICAgICAnKCJlbCIgbmlsKSkp KQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNhbnMtZXh0ZW5zaW9u ICgpCisgICJUZXN0IHRoYXQgXCI6clwiIHJldHVybnMgdGhlIGZpbGUgbmFtZSBzYW4gZXh0 ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiL3Bh dGgvdG8vZmlsZS5lbCIgIjpyIikKKyAgICAgICAgICAgICAgICAgIi9wYXRoL3RvL2ZpbGUi KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAg ICAgICAgICAgJygiL3BhdGgvdG8vZmlsZS5lbCIgIi9vdGhlci9wYXRoLyIpICI6ciIpCisg ICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUiICIvb3RoZXIvcGF0aC8iKSkpKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXF1b3RlICgpCisgICJUZXN0 IHRoYXQgXCI6cVwiIHF1b3RlcyBhcmd1bWVudHMuIgorICAoc2hvdWxkIChlcXVhbC1pbmNs dWRpbmctcHJvcGVydGllcworICAgICAgICAgICAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICco ImZvbyIgImJhciIpICI6cSIpCisgICAgICAgICAgIChsaXN0IChlc2hlbGwtZXNjYXBlLWFy ZyAiZm9vIikgKGVzaGVsbC1lc2NhcGUtYXJnICJiYXIiKSkpKSkKKworKGVydC1kZWZ0ZXN0 IGVtLXByZWQtdGVzdC9tb2RpZmllci1zdWJzdGl0dXRlICgpCisgICJUZXN0IHRoYXQgXCI6 cy9QQVQvUkVQL1wiIHJlcGxhY2VzIFBBVCB3aXRoIFJFUCBvbmNlLiIKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOnMvYS8qLyIpICJiKnIiKSkK KyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOnN8YXwq fCIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAn KCJmb28iICJiYXIiICJiYXoiKSAiOnMvW2FvXS8qLyIpCisgICAgICAgICAgICAgICAgICAn KCJmKm8iICJiKnIiICJiKnoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpzfFthb118KnwiKQorICAgICAgICAg ICAgICAgICAgJygiZipvIiAiYipyIiAiYip6IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9tb2RpZmllci1nbG9iYWwtc3Vic3RpdHV0ZSAoKQorICAiVGVzdCB0aGF0IFwi OnMvUEFUL1JFUC9cIiByZXBsYWNlcyBQQVQgd2l0aCBSRVAgZm9yIGFsbCBvY2N1cnJlbmNl cy4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpn cy9hLyovIikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlICJmb28iICI6Z3N8YXwqfCIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOmdzL2EvKi8iKSAiYipyIikpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjpnc3xhfCp8IikgImIqciIp KQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJh ciIgImJheiIpICI6Z3MvW2FlaW91XS8qLyIpCisgICAgICAgICAgICAgICAgICcoImYqKiIg ImIqciIgImIqeiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOmdzfFthZWlvdV18KnwiKQorICAgICAgICAgICAg ICAgICAnKCJmKioiICJiKnIiICJiKnoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10 ZXN0L21vZGlmaWVyLWluY2x1ZGUgKCkKKyAgIlRlc3QgdGhhdCBcIjppL1BBVC9cIiBmaWx0 ZXJzIGVsZW1lbnRzIHRvIGluY2x1ZGUgb25seSBvbmVzIG1hdGNoaW5nIFBBVC4iCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjppL2EvIikgbmls KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOml8 YXwiKSBuaWwpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJi YXIiICI6aS9hLyIpICJiYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiYmFyIiAiOml8YXwiKSAiYmFyIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjppL2EvIikKKyAgICAg ICAgICAgICAgICAgJygiYmFyIiAiYmF6IikpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6aXxhfCIpCisgICAgICAg ICAgICAgICAgICcoImJhciIgImJheiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRl c3QvbW9kaWZpZXItZXhjbHVkZSAoKQorICAiVGVzdCB0aGF0IFwiOngvUEFUL1wiIGZpbHRl cnMgZWxlbWVudHMgdG8gZXhjbHVkZSBhbnkgbWF0Y2hpbmcgUEFULiIKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOngvYS8iKSAiZm9vIikpCisg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjp4fGF8Iikg ImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJiYXIi ICI6eC9hLyIpIG5pbCkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUgImJhciIgIjp4fGF8IikgbmlsKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOngvYS8iKQorICAgICAgICAgICAg ICAgICAnKCJmb28iKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjp4fGF8IikKKyAgICAgICAgICAgICAgICAgJygi Zm9vIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zcGxpdCAo KQorICAiVGVzdCB0aGF0IFwiOlNcIiBhbmQgXCI6Uy9QQVQvXCIgc3BsaXQgZWxlbWVudHMg Ynkgc3BhY2VzIChvciBQQVQpLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiZm9vIGJhciBiYXoiICI6UyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIg ImJhciIgImJheiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAnKCJmb28gYmFyIiAiYmF6IikgIjpTIikKKyAgICAgICAgICAgICAgICAgJygoImZvbyIg ImJhciIpICgiYmF6IikpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSAiZm9vLWJhci1iYXoiICI6Uy8tLyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIg ImJhciIgImJheiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAnKCJmb28tYmFyIiAiYmF6IikgIjpTLy0vIikKKyAgICAgICAgICAgICAgICAgJygoImZv byIgImJhciIpICgiYmF6IikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9k aWZpZXItam9pbiAoKQorICAiVGVzdCB0aGF0IFwiOmpcIiBhbmQgXCI6ai9ERUxJTS9cIiBq b2luIGVsZW1lbnRzIGJ5IHNwYWNlcyAob3IgREVMSU0pLiIKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmoiKSAiZm9vIikpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpq IikKKyAgICAgICAgICAgICAgICAgImZvbyBiYXIgYmF6IikpCisgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpqLy0vIikgImZvbyIpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIp ICI6ai8tLyIpCisgICAgICAgICAgICAgICAgICJmb28tYmFyLWJheiIpKSkKKworKGVydC1k ZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zb3J0ICgpCisgICJUZXN0IHRoYXQgXCI6 b1wiIHNvcnRzIGVsZW1lbnRzIGluIGxleGljb2dyYXBoaWMgb3JkZXIuIgorICAoc2hvdWxk IChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6byIpICJmb28iKSkKKyAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJi YXoiKSAiOm8iKQorICAgICAgICAgICAgICAgICAnKCJiYXIiICJiYXoiICJmb28iKSkpKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNvcnQtcmV2ZXJzZSAoKQor ICAiVGVzdCB0aGF0IFwiOm9cIiBzb3J0cyBlbGVtZW50cyBpbiByZXZlcnNlIGxleGljb2dy YXBoaWMgb3JkZXIuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICJmb28iICI6TyIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOk8iKQorICAgICAgICAgICAgICAgICAn KCJmb28iICJiYXoiICJiYXIiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLXVuaXF1ZSAoKQorICAiVGVzdCB0aGF0IFwiOnVcIiBmaWx0ZXJzIG91dCBkdXBs aWNhdGUgZWxlbWVudHMuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlICJmb28iICI6dSIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOnUiKQorICAgICAgICAgICAgICAg ICAnKCJmb28iICJiYXIiICJiYXoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IiAiZm9vIikgIjp1IikKKyAgICAgICAg ICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9tb2RpZmllci1yZXZlcnNlICgpCisgICJUZXN0IHRoYXQgXCI6clwiIHJldmVy c2VzIHRoZSBvcmRlciBvZiBlbGVtZW50cy4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpSIikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6UiIpCisgICAg ICAgICAgICAgICAgICcoImJheiIgImJhciIgImZvbyIpKSkpCisKKwwKKzs7IENvbWJpbmF0 aW9ucworCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L2NvbWJpbmUtcHJlZGljYXRlLWFu ZC1tb2RpZmllciAoKQorICAiVGVzdCBjb21iaW5hdGlvbiBvZiBwcmVkaWNhdGVzIGFuZCBt b2RpZmllcnMuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQor ICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS90eXBlPS0uZWwiICIvZmFrZS90eXBlPS0udHh0 IiAiL2Zha2UvdHlwZT1zLmVsIgorICAgICAgICAgICAgICAgICAgICIvZmFrZS9zdWJkaXIv dHlwZT0tLmVsIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAiLjplOnUiKQorICAgICAgICAgICAgICAgICAgICAgJygiZWwiICJ0eHQi KSkpKSkpCisKKzs7IGVtLXByZWQtdGVzdHMuZWwgZW5kcyBoZXJlCi0tIAoyLjI1LjEKCg== --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=UTF-8; name="0003-Add-G-argument-predicate-in-Eshell.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-G-argument-predicate-in-Eshell.patch" RnJvbSBhMzljNTM4N2JkMGYyMTNkMGM0YjVmZTE5ZTE4NDRjOWRkMmJiMzYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTc6NTI6NTUgLTA3MDAKU3ViamVjdDogW1BB VENIIDMvM10gQWRkICdHJyBhcmd1bWVudCBwcmVkaWNhdGUgaW4gRXNoZWxsCgoqIGxpc3Av ZXNoZWxsL2VtLXByZWQuZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBBZGQgJ0cnIHBy ZWRpY2F0ZS4KKGVzaGVsbC1wcmVkaWNhdGUtaGVscC1zdHJpbmcpOiBEb2N1bWVudCBpdC4K CiogdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVsCihlbS1wcmVkLXRlc3QvcHJl ZGljYXRlLWVmZmVjdGl2ZS1naWQpOiBOZXcgdGVzdC4KCiogZG9jL21pc2MvZXNoZWxsLnRl eHQgKEFyZ3VtZW50IFByZWRpY2F0aW9uKTogRG9jdW1lbnQgJ0cnIHByZWRpY2F0ZS4KLS0t CiBkb2MvbWlzYy9lc2hlbGwudGV4aSAgICAgICAgICAgICAgfCAzICsrKwogbGlzcC9lc2hl bGwvZW0tcHJlZC5lbCAgICAgICAgICAgIHwgOSArKysrKy0tLS0KIHRlc3QvbGlzcC9lc2hl bGwvZW0tcHJlZC10ZXN0cy5lbCB8IDggKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9l c2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCmluZGV4IDM2YWI4NzE0MTguLmMx ZjlhMjc3M2QgMTAwNjQ0Ci0tLSBhL2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9t aXNjL2VzaGVsbC50ZXhpCkBAIC0xMjUzLDYgKzEyNTMsOSBAQCBBcmd1bWVudCBQcmVkaWNh dGlvbgogQGl0ZW0gQGNvZGV7VX0KIE1hdGNoZXMgZmlsZXMgb3duZWQgYnkgdGhlIGN1cnJl bnQgZWZmZWN0aXZlIHVzZXIgSUQuCiAKK0BpdGVtIEBjb2Rle0d9CitNYXRjaGVzIGZpbGVz IG93bmVkIGJ5IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSBncm91cCBJRC4KKwogQGl0ZW0gQGNv ZGV7bEBvcHRpb257WystXX1AdmFye259fQogTWF0Y2hlcyBmaWxlcyB3aXRoIEB2YXJ7bn0g bGlua3MuICBXaXRoIEBvcHRpb257K30gKG9yIEBvcHRpb257LX0pLAogbWF0Y2hlcyBmaWxl cyB3aXRoIG1vcmUgdGhhbiAob3IgbGVzcyB0aGFuKSBAdmFye259IGxpbmtzLApkaWZmIC0t Z2l0IGEvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbCBiL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwK aW5kZXggZTc1ZGE5MWNmNi4uOGQyNmIyOTBkMiAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwv ZW0tcHJlZC5lbAorKysgYi9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCkBAIC04OCwxMCArODgs MTAgQEAgZXNoZWxsLXByZWRpY2F0ZS1hbGlzdAogICAgICAgICAgICAgKGlmIChmaWxlLWV4 aXN0cy1wIGZpbGUpCiAgICAgICAgICAgICAgICAgKD0gKGZpbGUtYXR0cmlidXRlLXVzZXIt aWQgKGZpbGUtYXR0cmlidXRlcyBmaWxlKSkKICAgICAgICAgICAgICAgICAgICAodXNlci11 aWQpKSkpKQotICAgIDs7ICg/RyAuIChsYW1iZGEgKGZpbGUpICAgICAgICAgICAgICAgOyBv d25lZCBieSBlZmZlY3RpdmUgZ2lkCi0gICAgOzsgICAgICAgICAoaWYgKGZpbGUtZXhpc3Rz LXAgZmlsZSkKLSAgICA7OyAgICAgICAgICAgICAoPSAoZmlsZS1hdHRyaWJ1dGUtdXNlci1p ZCAoZmlsZS1hdHRyaWJ1dGVzIGZpbGUpKQotICAgIDs7ICAgICAgICAgICAgICAgICh1c2Vy LXVpZCkpKSkpCisgICAgKD9HIC4gKGxhbWJkYSAoZmlsZSkgICAgICAgICAgICAgICA7IG93 bmVkIGJ5IGVmZmVjdGl2ZSBnaWQKKyAgICAgICAgICAgIChpZiAoZmlsZS1leGlzdHMtcCBm aWxlKQorICAgICAgICAgICAgICAgICg9IChmaWxlLWF0dHJpYnV0ZS1ncm91cC1pZCAoZmls ZS1hdHRyaWJ1dGVzIGZpbGUpKQorICAgICAgICAgICAgICAgICAgIChncm91cC1naWQpKSkp KQogICAgICg/KiAuIChsYW1iZGEgKGZpbGUpCiAgICAgICAgICAgICAoYW5kIChmaWxlLXJl Z3VsYXItcCBmaWxlKQogICAgICAgICAgICAgICAgICAobm90IChmaWxlLXN5bWxpbmstcCBm aWxlKSkKQEAgLTE2MSw2ICsxNjEsNyBAQCBlc2hlbGwtcHJlZGljYXRlLWhlbHAtc3RyaW5n CiAKIE9XTkVSU0hJUDoKICAgVSAgICAgICAgICAgICAgIG93bmVkIGJ5IGVmZmVjdGl2ZSB1 aWQKKyAgRyAgICAgICAgICAgICAgIG93bmVkIGJ5IGVmZmVjdGl2ZSBnaWQKICAgdShVSUR8 XFw9J3VzZXJcXD0nKSAgIG93bmVkIGJ5IFVJRC91c2VyCiAgIGcoR0lEfFxcPSdncm91cFxc PScpICBvd25lZCBieSBHSUQvZ3JvdXAKIApkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VzaGVs bC9lbS1wcmVkLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVs CmluZGV4IGY3NDZhYTNkYTguLjljNGU5NzVkZDAgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9l c2hlbGwvZW0tcHJlZC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQt dGVzdHMuZWwKQEAgLTIyNSw2ICsyMjUsMTQgQEAgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1l ZmZlY3RpdmUtdWlkCiAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIlUiKQogICAgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS91aWQ9 MSIpKSkpKSkpCiAKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWVmZmVj dGl2ZS1naWQgKCkKKyAgIlRlc3QgdGhhdCBcIkdcIiBtYXRjaGVzIGZpbGVzIG93bmVkIGJ5 IHRoZSBlZmZlY3RpdmUgR0lELiIKKyAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1m cm9tLW5hbWUKKyAgICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2dyb3VwLWdpZCkg KGxhbWJkYSAoKSAxKSkpCisgICAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvZ2lkPTEiICIv ZmFrZS9naWQ9MiIpKSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSBmaWxlcyAiRyIpCisgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL2dp ZD0xIikpKSkpKSkKKwogKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtbGlu a3MgKCkKICAgIlRlc3QgdGhhdCBcImxcIiBmaWx0ZXJzIGJ5IG51bWJlciBvZiBsaW5rcy4i CiAgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCi0tIAoyLjI1LjEK Cg== --------------C0019A5743A1697E327601E5-- From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 20 Mar 2022 07:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.164775993714755 (code B ref 54470); Sun, 20 Mar 2022 07:06:02 +0000 Received: (at 54470) by debbugs.gnu.org; 20 Mar 2022 07:05:37 +0000 Received: from localhost ([127.0.0.1]:60998 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVpdB-0003pu-4i for submit@debbugs.gnu.org; Sun, 20 Mar 2022 03:05:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46598) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVpd9-0003pe-7Y for 54470@debbugs.gnu.org; Sun, 20 Mar 2022 03:05:35 -0400 Received: from [2001:470:142:3::e] (port=48428 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVpd4-0003uX-2A; Sun, 20 Mar 2022 03:05:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=2WVV8+4toTv6LjhAk+SrONlJdD2jdgzhCjBTHg4S2wc=; b=nw3roiqVG7+hDeKZFwiF 41YL7hHmoAy8xhig2VSxzBdFPVewy16MCXebYlo/tZj+StuDrsVlmltSTlFDB2xQcsWu95D4SsIs6 F7mp2r4etbWMKI5XlxvZU+bI5AUjlULipLGrA8+5T5XoQYL//5n1tiHyR1jkR/Hu6NJh0+W60wfFM ox7VpzNzSHctTxrWlLGPyok8qxeRqAbojMafIDGh3cCRiSEz1OODXDo6pzJHT8z+q5kV716BkjpX1 BVLPdE6YqwpDo69j7Jt2Pr+0ORz9yjtIIyYn9w5K6quCp5yREUg5WmEm/IiPwY2F/YgK/CqNN5o1P GafW+9/Fcp2s1A==; Received: from [87.69.77.57] (port=1308 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVpcw-0008Vh-US; Sun, 20 Mar 2022 03:05:29 -0400 Date: Sun, 20 Mar 2022 09:05:03 +0200 Message-Id: <83bky1f6jk.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Jim Porter on Sat, 19 Mar 2022 18:34:44 -0700) References: MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Jim Porter > Date: Sat, 19 Mar 2022 18:34:44 -0700 > > Eshell supports a few ways of expanding and manipulating arguments: > globs (which most people are likely familiar with from other shells), as > well as predicates (which let you filter lists of file names based on > the files' properties) and modifiers (which perform common > transformations, mostly on lists). However, these lack unit tests and > are currently only documented in the manual as follows: > > Eshell’s globbing syntax is very similar to that of Zsh. Users coming > from Bash can still use Bash-style globbing, as there are no > incompatibilities. Most globbing is pattern-based expansion, but > there is also predicate-based expansion. See Filename Generation in > The Z Shell Manual, for full syntax. > > As the manual says, the syntax is "similar"; it's not actually the same. > It also doesn't mention argument modifiers, which are related to > predicates, but let you do different things. I think it would be best to > fully-document the syntax so that the Eshell-specific bits are clear. > Attached are some patches to add documentation and tests for this. Thank you for working on this. See some minor comments below. > +Eshell's globbing syntax is very similar to that of Zsh > +(@pxref{Filename Generation, , , zsh, The Z Shell Manual}). Users > +coming from Bash can still use Bash-style globbing, as there are no > +incompatibilities. To customize the syntax and behavior of globbing > +in Eshell see the Customize@footnote{@xref{Easy Customization, , , > +emacs, The GNU Emacs Manual}.} group ``eshell-glob''. Let's not have hyper-links in footnotes, it makes little sense to me. (Yes, I know this was in the original text.) > +@table @code > + > +@item * > +Matches any string (including the empty string). For example, > +@samp{*.el} matches any file with the @file{.el} extension. You use @code in the @table, but @samp in the body, which will look inconsistent in the printed version of the manual. Please use one of them (I think @samp is better). > +@item ** > +Matches any number of subdirectories in a file name, including zero. The "including zero" part is confusing: it isn't immediately clear whether it refers to "file name" or "any number". I'd use "Matches zero or more subdirectories..." instead. > +For example, @samp{**/foo.el} matches @file{foo.el}, > +@file{bar/foo.el}, @file{bar/baz/foo.el}, etc. The fact that the "zero" case removes the slash as well (if it does) should be mentioned explicitly in the text, I think. It is importand in cases like foo/**/bar (which perhaps should have an example to make the feature more clear). > +@item *** > +As @code{**}, but follows symlinks as well. ^^ "Like" is better, I think. > +@item [ @dots{} ] > +Defines a @dfn{character set} (@pxref{Regexps, , , emacs, The GNU > +Emacs Manual}). Every @dfn should have a @cindex entry for the term. In this case, the term should be qualified, since "character set" is used in many different contexts. Something like @cindex character set, in Eshell glob patterns > A character set matches any character between > +@samp{[} and @samp{]} This is ambiguous: "between [ and ]" could be interpreted as characters that are between those in the alphabetical order. I'd follow the description in the Emacs manual, which says "characters between the two brackets". > You can also include ranges of characters in the set by > +separating the start and end with @samp{-}. Thus, @samp{[a-z]} > +matches any lower-case @acronym{ASCII} letter. It might be a good idea to mention here that, unlike with Zsh, character ranges are interpreted in the Unicode codepoint order, not in the locale-dependent collation order. This affects stuff like [a-z]. Also, does case-fold-search have any effect on these matches? > +Additionally, you can include @dfn{character classes} in a character Another @dfn without an index entry.. > +@item [^ @dots{} ] > +Defines a @dfn{complemented character set}. This behaves just like a And another. > +(ert-deftest em-glob-test/match-recursive () > + "Test that \"**\" recursively matches directories." > + (with-fake-files '("a.el" "b.el" "ccc.el" "d.txt" "dir/a.el" "dir/sub/a.el" > + "dir/symlink/a.el" "symlink/a.el" "symlink/sub/a.el") > + (should (equal (eshell-extended-glob "**/a.el") > + '("a.el" "dir/a.el" "dir/sub/a.el"))))) > + > +(ert-deftest em-glob-test/match-recursive-follow-symlinks () > + "Test that \"***\" recursively matches directories, following symlinks." > + (with-fake-files '("a.el" "b.el" "ccc.el" "d.txt" "dir/a.el" "dir/sub/a.el" > + "dir/symlink/a.el" "symlink/a.el" "symlink/sub/a.el") > + (should (equal (eshell-extended-glob "***/a.el") > + '("a.el" "dir/a.el" "dir/sub/a.el" "dir/symlink/a.el" > + "symlink/a.el" "symlink/sub/a.el"))))) I think symlink tests should be skipped on MS-Windows, at least by default (with perhaps some Make variable to activate them?). Creating symlinks on Windows requires elevation of privileges, and causes the system to stop and pop up the elevation confirmation dialog; for some users it will fail even when enabled. > +@node Argument Predication > +@section Argument Predication and Modification > +Eshell supports @dfn{argument predication}, to filter elements of a > +glob, and @dfn{argument modification}, to manipulate argument values. > +These are similar to glob qualifiers in Zsh (@pxref{Glob Qualifiers, , > +, zsh, The Z Shell Manual}). Another place where index entries are needed. > + > +Predicates and modifiers are introduced with @code{( @dots{} )} after > +any list argument, where @code{@dots{}} is a list of predicates or > +modifiers. Instead of using @dots{], which lacks any semantics here, I would suggest to use @code{(@var{filters})}. > +To customize the syntax and behavior of predicates and modifiers in > +Eshell see the Customize@footnote{@xref{Easy Customization, , , emacs, > +The GNU Emacs Manual}.} group ``eshell-pred''. Again, please move this cross-reference from the footnote to the body. > +@subsection Argument Predicates I'd prefer not to have @subsections without nodes. If you think a @node is not appropriate for some reason, please use @subheading instead. > +The @code{^} and @code{-} operators are not argument predicates > +themselves, but they modify the behavior of all subsequent predicates. > +@code{^} inverts the meaning of subsequent predicates, so > +@samp{*(^RWX)} expands to all files whose permissions disallow the > +world from accessing them in any way (i.e., reading, writing to, or > +modifying them). When examining a symbolic link, @code{-} applies the > +subsequent predicates to the link's target instead of the link itself. This is better moved to after the table of predicates. > +@table @asis All the @items use @code, so "@table @code" is better, and then you can drop @code in the @items. > +If @var{file} is specified instead, compare against the modification > +time of @file{file}. Thus, @samp{a-'hello.txt'} matches all files > +accessed after @file{hello.txt} was last accessed. The use of quotes 'like this', here and elsewhere in a similar context, begs the question: how to specify names that have embedded single-quote characters in them? > +@item e > +Treating the value as a file name, gets the file extension. What is considered the extension in 'foo.bar.baz'? > +@item q > +Marks that the value should be interpreted by Eshell literally. What does "literally" mean here? > +@item S > +@item S/@var{pattern}/ > +Splits the value by the regular expression @var{pattern}. If > +@var{pattern} is omitted, split on spaces. "Split the value by regexp" doesn't explain itself. How about "split the value using the regular expression @var{pattern} as delimiters"? > +@item j > +@item j/@var{delim}/ > +Joins a list of values, separated by the string @var{delim}. If > +@var{delim} is omitted, use a single space as the delimiter. And if DELIM is not omitted, what should it be? a regexp? > +@item o > +Sorts a list of strings in ascending lexicographic order. > + > +@item O > +Sorts a list of strings in descending lexicographic order. This should clarify what is considered the lexicographic order here. Given the usual dependence on the locale, this is not self-evident. From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 20 Mar 2022 20:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.164780986119084 (code B ref 54470); Sun, 20 Mar 2022 20:58:02 +0000 Received: (at 54470) by debbugs.gnu.org; 20 Mar 2022 20:57:41 +0000 Received: from localhost ([127.0.0.1]:35215 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nW2cN-0004xh-20 for submit@debbugs.gnu.org; Sun, 20 Mar 2022 16:57:41 -0400 Received: from mail-pj1-f49.google.com ([209.85.216.49]:45741) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nW2cI-0004xP-V6 for 54470@debbugs.gnu.org; Sun, 20 Mar 2022 16:57:37 -0400 Received: by mail-pj1-f49.google.com with SMTP id m11-20020a17090a7f8b00b001beef6143a8so12787288pjl.4 for <54470@debbugs.gnu.org>; Sun, 20 Mar 2022 13:57:34 -0700 (PDT) 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=jXFIRcCT2A0BwTY7DJvnD7T2tEqpHN5WBtJTlhWLoEM=; b=m687scjdJMpWjh5gAeemCR8YfZbglrg3IIEFW1X3yXN4hkf/M/kjcbLzsoO6i7eoOy yz6K9FHNPH0uvdRfLcUhCX/YApjcX6vk1+tPrvPhj6xncKsNNocuO6gG0gL+xNo9+QSr EXVXPd1yBNjQXMrDYvXuhwJAkasQ0CbB6GybYFsccB8t7EENHpYR7UnwQaUl2Olk8tj1 xQ1HP9ewy+Rj15OLLthppEPHq5XCCA3dAjVnGSIanqduFzeDGnw3TdoQ6FbC0a8BdEjW DRwAcclu6rSi43lec6DrHtRM6XWfmzFGrgJhxFD/ZDAUDT7b6XBb0Dl44X2SQtCKtfct RsDQ== 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=jXFIRcCT2A0BwTY7DJvnD7T2tEqpHN5WBtJTlhWLoEM=; b=kQO/M0KRJiLzeFhhq3x+fZMCcozeEwxBDcjh7KIdsHPFUqVEKuF/dLwEOGXGiSQXKK UwrmY+lCiMURLdwur4FqlAoVN2gn5dUy/x28ZD99KHCGtetvdpwrP5YJgiAxRfPDcCNv ZCK1VY9qyS2sjsusGU6yGugFV41GTagfaSCF2ilRsNC+VIjyNJuJw3tSEXBQM893ZBrE Bz+6IHi+/YNheemAP19yd420uUj7XbWAsFAkp706tlVZlap6KQiBiqVSDHo5hF4OG3tK nScSVdo9/3VmBeadPPMu595jYB4oQ2V/cQaEQiTKAqRFZWf3njWJ2RXiyErT2QjycvPe 0d6Q== X-Gm-Message-State: AOAM531RDU+FaY318tCq20L7hh+jRM7JNlToTWvARIDxpTU/MmU6G6bW Lj3frePwQ4XmvAs33hZ/qfs3fRdlGkQ= X-Google-Smtp-Source: ABdhPJxkpBVHwVk8wa/xCRTbzLfP5YjIdBoP16VXiDcA1mEpMtbsJXYHR8aUrA2+Uem3WiPF28TSIg== X-Received: by 2002:a17:903:2283:b0:154:613:eb14 with SMTP id b3-20020a170903228300b001540613eb14mr9879462plh.32.1647809848534; Sun, 20 Mar 2022 13:57:28 -0700 (PDT) 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 m17-20020a17090a7f9100b001b9e4d62ed0sm17691348pjl.13.2022.03.20.13.57.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 20 Mar 2022 13:57:27 -0700 (PDT) References: <83bky1f6jk.fsf@gnu.org> From: Jim Porter Message-ID: Date: Sun, 20 Mar 2022 13:57:26 -0700 MIME-Version: 1.0 In-Reply-To: <83bky1f6jk.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------559C535580D1C2D9E324EADE" Content-Language: en-US X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------559C535580D1C2D9E324EADE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 3/20/2022 12:05 AM, Eli Zaretskii wrote: > Thank you for working on this. See some minor comments below. Thanks for the thorough review. >> +Eshell's globbing syntax is very similar to that of Zsh >> +(@pxref{Filename Generation, , , zsh, The Z Shell Manual}). Users >> +coming from Bash can still use Bash-style globbing, as there are no >> +incompatibilities. To customize the syntax and behavior of globbing >> +in Eshell see the Customize@footnote{@xref{Easy Customization, , , >> +emacs, The GNU Emacs Manual}.} group ``eshell-glob''. > > Let's not have hyper-links in footnotes, it makes little sense to me. > (Yes, I know this was in the original text.) Ok, fixed. >> +@table @code >> + >> +@item * >> +Matches any string (including the empty string). For example, >> +@samp{*.el} matches any file with the @file{.el} extension. > > You use @code in the @table, but @samp in the body, which will look > inconsistent in the printed version of the manual. Please use one of > them (I think @samp is better). Done. I only did this for the glob section though. Should I change the items in the predicates/modifiers to use @samp too? They're different enough that I'm not quite sure. Or would @kbd be better to use here? These are things meant to be typed by the user into an interactive prompt, after all... >> +@item ** >> +Matches any number of subdirectories in a file name, including zero. > > The "including zero" part is confusing: it isn't immediately clear > whether it refers to "file name" or "any number". I'd use "Matches > zero or more subdirectories..." instead. Fixed. >> +For example, @samp{**/foo.el} matches @file{foo.el}, >> +@file{bar/foo.el}, @file{bar/baz/foo.el}, etc. > > The fact that the "zero" case removes the slash as well (if it does) > should be mentioned explicitly in the text, I think. It is importand > in cases like foo/**/bar (which perhaps should have an example to make > the feature more clear). I've updated the item to be '**/', which is more accurate, since the trailing '/' is really a part of the token (the Zsh manual also documents it this way). I also added a short note that the '**/' must be the entirety of a file name segment (so something like 'foo**/bar.el' is nonsense). >> +@item *** >> +As @code{**}, but follows symlinks as well. > ^^ > "Like" is better, I think. Fixed. >> +@item [ @dots{} ] >> +Defines a @dfn{character set} (@pxref{Regexps, , , emacs, The GNU >> +Emacs Manual}). > > Every @dfn should have a @cindex entry for the term. In this case, > the term should be qualified, since "character set" is used in many > different contexts. Something like > > @cindex character set, in Eshell glob patterns Fixed. >> A character set matches any character between >> +@samp{[} and @samp{]} > > This is ambiguous: "between [ and ]" could be interpreted as > characters that are between those in the alphabetical order. I'd > follow the description in the Emacs manual, which says "characters > between the two brackets". Fixed. >> You can also include ranges of characters in the set by >> +separating the start and end with @samp{-}. Thus, @samp{[a-z]} >> +matches any lower-case @acronym{ASCII} letter. > > It might be a good idea to mention here that, unlike with Zsh, > character ranges are interpreted in the Unicode codepoint order, not > in the locale-dependent collation order. This affects stuff like > [a-z]. Also, does case-fold-search have any effect on these matches? Done. case-fold-search doesn't have any effect, but eshell-glob-case-insensitive does. I've added a bit of documentation about that to the manual. >> +Additionally, you can include @dfn{character classes} in a character > > Another @dfn without an index entry.. Fixed. >> +@item [^ @dots{} ] >> +Defines a @dfn{complemented character set}. This behaves just like a > > And another. Fixed here (and for @dfn{group} just below this). >> +(ert-deftest em-glob-test/match-recursive () >> + "Test that \"**\" recursively matches directories." >> + (with-fake-files '("a.el" "b.el" "ccc.el" "d.txt" "dir/a.el" "dir/sub/a.el" >> + "dir/symlink/a.el" "symlink/a.el" "symlink/sub/a.el") >> + (should (equal (eshell-extended-glob "**/a.el") >> + '("a.el" "dir/a.el" "dir/sub/a.el"))))) >> + >> +(ert-deftest em-glob-test/match-recursive-follow-symlinks () >> + "Test that \"***\" recursively matches directories, following symlinks." >> + (with-fake-files '("a.el" "b.el" "ccc.el" "d.txt" "dir/a.el" "dir/sub/a.el" >> + "dir/symlink/a.el" "symlink/a.el" "symlink/sub/a.el") >> + (should (equal (eshell-extended-glob "***/a.el") >> + '("a.el" "dir/a.el" "dir/sub/a.el" "dir/symlink/a.el" >> + "symlink/a.el" "symlink/sub/a.el"))))) > > I think symlink tests should be skipped on MS-Windows, at least by > default (with perhaps some Make variable to activate them?). Creating > symlinks on Windows requires elevation of privileges, and causes the > system to stop and pop up the elevation confirmation dialog; for some > users it will fail even when enabled. These tests (and the ones in em-pred-tests.el) don't actually touch the filesystem. I just provided mock implementations of the relevant Elisp functions so that the tests can pretend that the files corresponding to these names really exist. That's a bit less realistic, but it should work on all systems without errors. It should work fine on MS-Windows, unless there are other bugs present. That said, if you'd prefer a different implementation (e.g. one that examines real files) or just more documentation about what I'm doing here, let me know. >> +@node Argument Predication >> +@section Argument Predication and Modification >> +Eshell supports @dfn{argument predication}, to filter elements of a >> +glob, and @dfn{argument modification}, to manipulate argument values. >> +These are similar to glob qualifiers in Zsh (@pxref{Glob Qualifiers, , >> +, zsh, The Z Shell Manual}). > > Another place where index entries are needed. Done. >> + >> +Predicates and modifiers are introduced with @code{( @dots{} )} after >> +any list argument, where @code{@dots{}} is a list of predicates or >> +modifiers. > > Instead of using @dots{], which lacks any semantics here, I would > suggest to use @code{(@var{filters})}. Done. >> +To customize the syntax and behavior of predicates and modifiers in >> +Eshell see the Customize@footnote{@xref{Easy Customization, , , emacs, >> +The GNU Emacs Manual}.} group ``eshell-pred''. > > Again, please move this cross-reference from the footnote to the body. Done. >> +@subsection Argument Predicates > > I'd prefer not to have @subsections without nodes. If you think a > @node is not appropriate for some reason, please use @subheading > instead. Done, added nodes for these. >> +The @code{^} and @code{-} operators are not argument predicates >> +themselves, but they modify the behavior of all subsequent predicates. >> +@code{^} inverts the meaning of subsequent predicates, so >> +@samp{*(^RWX)} expands to all files whose permissions disallow the >> +world from accessing them in any way (i.e., reading, writing to, or >> +modifying them). When examining a symbolic link, @code{-} applies the >> +subsequent predicates to the link's target instead of the link itself. > > This is better moved to after the table of predicates. Done. >> +@table @asis > > All the @items use @code, so "@table @code" is better, and then you > can drop @code in the @items. This is because there's a single item that doesn't just use @code: @item @code{.} (Period) I just lifted that convention from the "Syntax of Regular Expressions" section in the Emacs manual. I think it helps disambiguate what that character is, since a lone "." on a line is a bit confusing. Note: I changed this slightly in the latest patch to add '@r{}' around '(Period)', matching the regexp section. >> +If @var{file} is specified instead, compare against the modification >> +time of @file{file}. Thus, @samp{a-'hello.txt'} matches all files >> +accessed after @file{hello.txt} was last accessed. > > The use of quotes 'like this', here and elsewhere in a similar > context, begs the question: how to specify names that have embedded > single-quote characters in them? "Very carefully." :) Seriously though, this is an area I don't fully understand yet, but in which I've found several bugs (or at least I think they're bugs). As such, I intentionally avoided documenting this since it's pretty confusing. To answer your specific question, you could type: *(a-"hello'there.txt") However, the quoting rules are inconsistent. For example, this is how you normally insert a single quote inside a single-quoted string in Eshell: ~ $ echo 'hi''there' hi'there That doesn't work inside predicates though, and it would treat the file name as "hi''there". Relatedly, the allowed delimiters aren't consistent. a/m/c/u/g all allow *any* non-digit character as a delimiter, so 'a-XfooX' compares against the file 'foo'. They also use "balanced" bracket pairs, so 'a-' means the same thing. :s/:gs/:i/:x allow any character as the delimiter (including digits), but don't use "balanced" bracket pairs, so you could type ':s> +@item e >> +Treating the value as a file name, gets the file extension. > > What is considered the extension in 'foo.bar.baz'? It's 'baz'. I've expanded on this, explaining that it returns the final extension sans dot. I also added examples for this and all the other file name modifiers ('h'/head, 't'/tail, and 'r'/root). >> +@item q >> +Marks that the value should be interpreted by Eshell literally. > > What does "literally" mean here? Added an explanation for this (it means that any special characters like '$' lose their meaning and are treated literally). That said, I'm not 100% sure when this would be useful, since I couldn't figure out a time where this would change how a command is executed. I'm probably just missing something though. >> +@item S >> +@item S/@var{pattern}/ >> +Splits the value by the regular expression @var{pattern}. If >> +@var{pattern} is omitted, split on spaces. > > "Split the value by regexp" doesn't explain itself. How about "split > the value using the regular expression @var{pattern} as delimiters"? Fixed. >> +@item j >> +@item j/@var{delim}/ >> +Joins a list of values, separated by the string @var{delim}. If >> +@var{delim} is omitted, use a single space as the delimiter. > > And if DELIM is not omitted, what should it be? a regexp? A string. I mentioned this in the first sentence, but I think it was a bit too brief. I've reworded this to be more explicit. >> +@item o >> +Sorts a list of strings in ascending lexicographic order. >> + >> +@item O >> +Sorts a list of strings in descending lexicographic order. > > This should clarify what is considered the lexicographic order here. > Given the usual dependence on the locale, this is not self-evident. Fixed, and added a cross-reference to the corresponding section of the Elisp manual. It would have been nice to link to the function itself: 'string<', though I'm not sure how to do that (or if that's something I shouldn't do). --------------559C535580D1C2D9E324EADE Content-Type: text/plain; charset=UTF-8; name="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.pa"; filename*1="tch" RnJvbSA3NjFmY2NlZWM3ZTU0OTRjYTBiZDYwZDEyZTAzNjA4MWRmNmExODViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBNYXIgMjAyMiAxNzowNzoyNiAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBBZGQgdW5pdCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgRXNoZWxsIHBh dHRlcm4tYmFzZWQKIGdsb2JzCgoqIGxpc3AvZXNoZWxsL2VtLWdsb2IuZWwgKGVzaGVsbC1l eHRlbmRlZC1nbG9iKTogRml4IGRvY3N0cmluZy4KKGVzaGVsbC1nbG9iLWVudHJpZXMpOiBS ZWZlciB0byAnKiovJyBpbiBlcnJvciAodGVjaG5pY2FsbHksICcqKicgY2FuCmVuZCBhIGds b2IsIGJ1dCBpdCBtZWFucyB0aGUgc2FtZSB0aGluZyBhcyAnKicpLgoKKiB0ZXN0L2xpc3Av ZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWw6IE5ldyBmaWxlLgoKKiBkb2MvbWlzYy9lc2hlbGwu dGV4aSAoR2xvYmJpbmcpOiBEb2N1bWVudCBwYXR0ZXJuLWJhc2VkIGdsb2JzLgotLS0KIGRv Yy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8ICA5NCArKysrKysrKysrKysrKy0t CiBsaXNwL2VzaGVsbC9lbS1nbG9iLmVsICAgICAgICAgICAgfCAgMTQgKystCiB0ZXN0L2xp c3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwgfCAxNzEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDI2MiBpbnNlcnRpb25zKCspLCAxNyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNj L2VzaGVsbC50ZXhpCmluZGV4IDM3MmU0YzNmZmIuLjBiNTJjNzMxNzYgMTAwNjQ0Ci0tLSBh L2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC0x MDg5LDE1ICsxMDg5LDkxIEBAIERvbGxhcnMgRXhwYW5zaW9uCiAKIEBub2RlIEdsb2JiaW5n CiBAc2VjdGlvbiBHbG9iYmluZwotRXNoZWxsJ3MgZ2xvYmJpbmcgc3ludGF4IGlzIHZlcnkg c2ltaWxhciB0byB0aGF0IG9mIFpzaC4gIFVzZXJzIGNvbWluZwotZnJvbSBCYXNoIGNhbiBz dGlsbCB1c2UgQmFzaC1zdHlsZSBnbG9iYmluZywgYXMgdGhlcmUgYXJlIG5vCi1pbmNvbXBh dGliaWxpdGllcy4gIE1vc3QgZ2xvYmJpbmcgaXMgcGF0dGVybi1iYXNlZCBleHBhbnNpb24s IGJ1dCB0aGVyZQotaXMgYWxzbyBwcmVkaWNhdGUtYmFzZWQgZXhwYW5zaW9uLiAgQHhyZWZ7 RmlsZW5hbWUgR2VuZXJhdGlvbiwgLCAsCi16c2gsIFRoZSBaIFNoZWxsIE1hbnVhbH0sCi1m b3IgZnVsbCBzeW50YXguICBUbyBjdXN0b21pemUgdGhlIHN5bnRheCBhbmQgYmVoYXZpb3Ig b2YgZ2xvYmJpbmcgaW4KLUVzaGVsbCBzZWUgdGhlIEN1c3RvbWl6ZUBmb290bm90ZXtAeHJl ZntFYXN5IEN1c3RvbWl6YXRpb24sICwgLCBlbWFjcywKLVRoZSBHTlUgRW1hY3MgTWFudWFs fS59Ci1ncm91cHMgYGBlc2hlbGwtZ2xvYicnIGFuZCBgYGVzaGVsbC1wcmVkJycuCitAdmlu ZGV4IGVzaGVsbC1nbG9iLWNhc2UtaW5zZW5zaXRpdmUKK0VzaGVsbCdzIGdsb2JiaW5nIHN5 bnRheCBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiBac2gKKyhAcHhyZWZ7RmlsZW5hbWUg R2VuZXJhdGlvbiwgLCAsIHpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSkuICBVc2VycworY29t aW5nIGZyb20gQmFzaCBjYW4gc3RpbGwgdXNlIEJhc2gtc3R5bGUgZ2xvYmJpbmcsIGFzIHRo ZXJlIGFyZSBubworaW5jb21wYXRpYmlsaXRpZXMuCisKK0J5IGRlZmF1bHQsIGdsb2JzIGFy ZSBjYXNlIHNlbnNpdGl2ZSwgZXhjZXB0IG9uIE1TLURPUy9NUy1XaW5kb3dzCitzeXN0ZW1z LiAgWW91IGNhbiBjb250cm9sIHRoaXMgYmVoYXZpb3IgdmlhIHRoZQorQGNvZGV7ZXNoZWxs LWdsb2ItY2FzZS1pbnNlbnNpdGl2ZX0gb3B0aW9uLiAgWW91IGNhbiBmdXJ0aGVyIGN1c3Rv bWl6ZQordGhlIHN5bnRheCBhbmQgYmVoYXZpb3Igb2YgZ2xvYmJpbmcgaW4gRXNoZWxsIHZp YSB0aGUgQ3VzdG9taXplIGdyb3VwCitgYGVzaGVsbC1nbG9iJycgKEBweHJlZntFYXN5IEN1 c3RvbWl6YXRpb24sICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcworTWFudWFsfSkuCisKK0B0 YWJsZSBAc2FtcAorCitAaXRlbSAqCitNYXRjaGVzIGFueSBzdHJpbmcgKGluY2x1ZGluZyB0 aGUgZW1wdHkgc3RyaW5nKS4gIEZvciBleGFtcGxlLAorQHNhbXB7Ki5lbH0gbWF0Y2hlcyBh bnkgZmlsZSB3aXRoIHRoZSBAZmlsZXsuZWx9IGV4dGVuc2lvbi4KKworQGl0ZW0gPworTWF0 Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3Rlci4gIEZvciBleGFtcGxlLCBAc2FtcHs/YXR9IG1h dGNoZXMKK0BmaWxle2NhdH0gYW5kIEBmaWxle2JhdH0sIGJ1dCBub3QgQGZpbGV7Z29hdH0u CisKK0BpdGVtICoqLworTWF0Y2hlcyB6ZXJvIG9yIG1vcmUgc3ViZGlyZWN0b3JpZXMgaW4g YSBmaWxlIG5hbWUuICBGb3IgZXhhbXBsZSwKK0BzYW1weyoqL2Zvby5lbH0gbWF0Y2hlcyBA ZmlsZXtmb28uZWx9LCBAZmlsZXtiYXIvZm9vLmVsfSwKK0BmaWxle2Jhci9iYXovZm9vLmVs fSwgZXRjLiAgTm90ZSB0aGF0IHRoaXMgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGgKK2FueSBv dGhlciBwYXR0ZXJucyBpbiB0aGUgc2FtZSBmaWxlIG5hbWUgc2VnbWVudCwgc28gd2hpbGUK K0BzYW1we2Zvby8qKi9iYXIuZWx9IGlzIGFsbG93ZWQsIEBzYW1we2ZvbyoqL2Jhci5lbH0g aXMgbm90LgorCitAaXRlbSAqKiovCitMaWtlIEBjb2RleyoqL30sIGJ1dCBmb2xsb3dzIHN5 bWxpbmtzIGFzIHdlbGwuCisKK0BjaW5kZXggY2hhcmFjdGVyIHNldHMsIGluIEVzaGVsbCBn bG9iIHBhdHRlcm5zCitAY2luZGV4IGNoYXJhY3RlciBjbGFzc2VzLCBpbiBFc2hlbGwgZ2xv YiBwYXR0ZXJucworQGl0ZW0gWyBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZue2NoYXJhY3Rl ciBzZXR9IChAcHhyZWZ7UmVnZXhwcywgLCAsIGVtYWNzLCBUaGUgR05VCitFbWFjcyBNYW51 YWx9KS4gIEEgY2hhcmFjdGVyIHNldCBtYXRjaGVzIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUg dHdvCiticmFja2V0czsgZm9yIGV4YW1wbGUsIEBzYW1we1thZF19IG1hdGNoZXMgQGZpbGV7 YX0gYW5kIEBmaWxle2R9LiAgWW91CitjYW4gYWxzbyBpbmNsdWRlIHJhbmdlcyBvZiBjaGFy YWN0ZXJzIGluIHRoZSBzZXQgYnkgc2VwYXJhdGluZyB0aGUKK3N0YXJ0IGFuZCBlbmQgd2l0 aCBAc2FtcHstfS4gIFRodXMsIEBzYW1we1thLXpdfSBtYXRjaGVzIGFueQorbG93ZXItY2Fz ZSBAYWNyb255bXtBU0NJSX0gbGV0dGVyLiAgTm90ZSB0aGF0LCB1bmxpa2UgaW4gWnNoLAor Y2hhcmFjdGVyIHJhbmdlcyBhcmUgaW50ZXJwcmV0ZWQgaW4gdGhlIFVuaWNvZGUgY29kZXBv aW50IG9yZGVyLCBub3QKK2luIHRoZSBsb2NhbGUtZGVwZW5kZW50IGNvbGxhdGlvbiBvcmRl ci4KKworQWRkaXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgQGRmbntjaGFyYWN0ZXIgY2xh c3Nlc30gaW4gYSBjaGFyYWN0ZXIKK3NldC4gIEEgQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcg QHNhbXB7Ol19IGVuY2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MKK2luc2lkZSBhIGNoYXJhY3Rl ciBzZXQuICBGb3IgaW5zdGFuY2UsIEBzYW1we1tbOmFsbnVtOl1dfQorbWF0Y2hlcyBhbnkg bGV0dGVyIG9yIGRpZ2l0LiAgQHhyZWZ7Q2hhciBDbGFzc2VzLCAsICwgZWxpc3AsIFRoZSBF bWFjcworTGlzcCBSZWZlcmVuY2UgTWFudWFsfSwgZm9yIGEgbGlzdCBvZiBjaGFyYWN0ZXIg Y2xhc3Nlcy4KKworQGNpbmRleCBjb21wbGVtZW50ZWQgY2hhcmFjdGVyIHNldHMsIGluIEVz aGVsbCBnbG9iIHBhdHRlcm5zCitAaXRlbSBbXiBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZu e2NvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgc2V0fS4gIFRoaXMgYmVoYXZlcyBqdXN0IGxpa2Ug YQorY2hhcmFjdGVyIHNldCwgYnV0IG1hdGNoZXMgYW55IGNoYXJhY3RlciBAZW1waHtleGNl cHR9IHRoZSBvbmVzCitzcGVjaWZpZWQuCisKK0BjaW5kZXggZ3JvdXBzLCBpbiBFc2hlbGwg Z2xvYiBwYXR0ZXJucworQGl0ZW0gKCBAZG90c3t9ICkKK0RlZmluZXMgYSBAZGZue2dyb3Vw fS4gIEEgZ3JvdXAgbWF0Y2hlcyB0aGUgcGF0dGVybiBiZXR3ZWVuIEBzYW1weyh9CithbmQg QHNhbXB7KX0uICBOb3RlIHRoYXQgYSBncm91cCBjYW4gb25seSBtYXRjaCBhIHNpbmdsZSBm aWxlIG5hbWUKK2NvbXBvbmVudCwgc28gYSBAc2FtcHsvfSBpbnNpZGUgYSBncm91cCB3aWxs IHNpZ25hbCBhbiBlcnJvci4KKworQGl0ZW0gQHZhcnt4fXxAdmFye3l9CitJbnNpZGUgb2Yg YSBncm91cCwgbWF0Y2hlcyBlaXRoZXIgQHZhcnt4fSBvciBAdmFye3l9LiAgRm9yIGV4YW1w bGUsCitAc2FtcHtlKG18c2gpLSp9IG1hdGNoZXMgYW55IGZpbGUgYmVnaW5uaW5nIHdpdGgg QGNvZGV7ZW0tfSBvcgorQGNvZGV7ZXNoLX0uCisKK0BpdGVtIEB2YXJ7eH0jCitNYXRjaGVz IHplcm8gb3IgbW9yZSBjb3BpZXMgb2YgdGhlIGdsb2IgcGF0dGVybiBAdmFye3h9LiAgRm9y IGV4YW1wbGUsCitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zi5lbH0sIEBmaWxle2Zv LmVsfSwgQGZpbGV7Zm9vLmVsfSwgZXRjLgorCitAaXRlbSBAdmFye3h9IyMKK01hdGNoZXMg b25lIG9yIG1vcmUgY29waWVzIG9mIHRoZSBnbG9iIHBhdHRlcm4gQHZhcnt4fS4gIFRodXMs CitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zm8uZWx9LCBAZmlsZXtmb28uZWx9LCBA ZmlsZXtmb29vLmVsfSwKK2V0Yy4KKworQGl0ZW0gQHZhcnt4fX5AdmFye3l9CitNYXRjaGVz IGFueXRoaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcGF0dGVybiBAdmFye3h9IGJ1dCBub3QgQHZh cnt5fS4gRm9yCitleGFtcGxlLCBAc2FtcHtbWzpkaWdpdDpdXSN+ND99IG1hdGNoZXMgQGZp bGV7MX0gYW5kIEBmaWxlezEyfSwgYnV0Citub3QgQGZpbGV7NDJ9LiAgTm90ZSB0aGF0IHVu bGlrZSBpbiBac2gsIG9ubHkgYSBzaW5nbGUgQGNvZGV7fn0KK29wZXJhdG9yIGNhbiBiZSB1 c2VkIGluIGEgcGF0dGVybiwgYW5kIGl0IGNhbm5vdCBiZSBpbnNpZGUgb2YgYSBncm91cAor bGlrZSBAc2FtcHsoQHZhcnt4fX5AdmFye3l9KX0uCisKK0BlbmQgdGFibGUKIAogQG5vZGUg SW5wdXQvT3V0cHV0CiBAY2hhcHRlciBJbnB1dC9PdXRwdXQKZGlmZiAtLWdpdCBhL2xpc3Av ZXNoZWxsL2VtLWdsb2IuZWwgYi9saXNwL2VzaGVsbC9lbS1nbG9iLmVsCmluZGV4IDg0MmYy N2E0OTIuLjUyNTMxZmY4OTMgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VtLWdsb2IuZWwK KysrIGIvbGlzcC9lc2hlbGwvZW0tZ2xvYi5lbApAQCAtMjMzLDcgKzIzMywxMCBAQCBlc2hl bGwtZ2xvYi1yZWdleHAKIAkgICAgIlxcJyIpKSkKIAogKGRlZnVuIGVzaGVsbC1leHRlbmRl ZC1nbG9iIChnbG9iKQotICAiUmV0dXJuIGEgbGlzdCBvZiBmaWxlcyBnZW5lcmF0ZWQgZnJv bSBHTE9CLCBwZXJoYXBzIGxvb2tpbmcgZm9yIERJUlMtT05MWS4KKyAgIlJldHVybiBhIGxp c3Qgb2YgZmlsZXMgbWF0Y2hlZCBieSBHTE9CLgorSWYgbm8gZmlsZXMgbWF0Y2gsIHNpZ25h bCBhbiBlcnJvciAoaWYgYGVzaGVsbC1lcnJvci1pZi1uby1nbG9iJworaXMgbm9uLW5pbCks IG9yIG90aGVyd2lzZSByZXR1cm4gR0xPQiBpdHNlbGYuCisKIFRoaXMgZnVuY3Rpb24gYWxt b3N0IGZ1bGx5IHN1cHBvcnRzIHpzaCBzdHlsZSBmaWxlbmFtZSBnZW5lcmF0aW9uCiBzeW50 YXguICBUaGluZ3MgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBhcmU6CiAKQEAgLTI0MywxMiAr MjQ2LDcgQEAgZXNoZWxsLWV4dGVuZGVkLWdsb2IKICAgIGZvb354KGF8YikgIChhfGIpIHdp bGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwcmVkaWNhdGUvbW9kaWZpZXIgbGlzdAogCiBNYWlu bHkgdGhleSBhcmUgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGZpbGUgbWF0Y2hpbmcgaXMgZG9u ZSB3aXRoIEVtYWNzCi1yZWd1bGFyIGV4cHJlc3Npb25zLCBhbmQgdGhlc2UgY2Fubm90IHN1 cHBvcnQgdGhlIGFib3ZlIGNvbnN0cnVjdHMuCi0KLUlmIHRoaXMgcm91dGluZSBmYWlscywg aXQgcmV0dXJucyBuaWwuICBPdGhlcndpc2UsIGl0IHJldHVybnMgYSBsaXN0Ci10aGUgZm9y bToKLQotICAgKElOQ0xVREUtUkVHRVhQIEVYQ0xVREUtUkVHRVhQIChQUkVELUZVTkMtTElT VCkgKE1PRC1GVU5DLUxJU1QpKSIKK3JlZ3VsYXIgZXhwcmVzc2lvbnMsIGFuZCB0aGVzZSBj YW5ub3Qgc3VwcG9ydCB0aGUgYWJvdmUgY29uc3RydWN0cy4iCiAgIChsZXQgKChwYXRocyAo ZXNoZWxsLXNwbGl0LXBhdGggZ2xvYikpCiAgICAgICAgIGVzaGVsbC1nbG9iLW1hdGNoZXMg bWVzc2FnZS1zaG93bikKICAgICAodW53aW5kLXByb3RlY3QKQEAgLTI4Nyw3ICsyODUsNyBA QCBlc2hlbGwtZ2xvYi1lbnRyaWVzCiAJCSAgIGdsb2IgKGNhciBnbG9icykKIAkJICAgbGVu IChsZW5ndGggZ2xvYikpKSkpCiAgICAgKGlmIChhbmQgcmVjdXJzZS1wIChub3QgZ2xvYikp Ci0JKGVycm9yICJgKionIGNhbm5vdCBlbmQgYSBnbG9iYmluZyBwYXR0ZXJuIikpCisJKGVy cm9yICJgKiovJyBjYW5ub3QgZW5kIGEgZ2xvYmJpbmcgcGF0dGVybiIpKQogICAgIChsZXQg KChpbmRleCAxKSkKICAgICAgIChzZXRxIGluY2wgZ2xvYikKICAgICAgICh3aGlsZSAoYW5k IChlcSBpbmNsIGdsb2IpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTk3NmIzMmZmZQotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tZ2xvYi10ZXN0cy5lbApAQCAtMCwwICsxLDE3 MSBAQAorOzs7IGVtLWdsb2ItdGVzdHMuZWwgLS0tIGVtLWdsb2IgdGVzdCBzdWl0ZSAgLSot IGxleGljYWwtYmluZGluZzp0IC0qLQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdO VSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsg R05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25n IHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRlc3RzIGZvciBFc2hlbGwncyBn bG9iIGV4cGFuc2lvbi4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWly ZSAnZW0tZ2xvYikKKworKGRlZm1hY3JvIHdpdGgtZmFrZS1maWxlcyAoZmlsZXMgJnJlc3Qg Ym9keSkKKyAgIkV2YWx1YXRlIEJPRFkgZm9ybXMsIHByZXRlbmRpbmcgdGhhdCBGSUxFUyBl eGlzdCBvbiB0aGUgZmlsZXN5c3RlbS4KK0ZJTEVTIGlzIGEgbGlzdCBvZiBmaWxlIG5hbWVz IHRoYXQgc2hvdWxkIGJlIHJlcG9ydGVkIGFzCithcHByb3ByaWF0ZSBieSBgZmlsZS1uYW1l LWFsbC1jb21wbGV0aW9ucycuICBBbnkgZmlsZSBuYW1lCitjb21wb25lbnQgZW5kaW5nIGlu IFwic3ltbGlua1wiIGlzIHRyZWF0ZWQgYXMgYSBzeW1ib2xpYyBsaW5rLiIKKyAgKGRlY2xh cmUgKGluZGVudCAxKSkKKyAgYChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1u YW1lLWFsbC1jb21wbGV0aW9ucykKKyAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSBkaXJl Y3RvcnkpCisgICAgICAgICAgICAgICAgKGNsLWFzc2VydCAoc3RyaW5nPSBmaWxlICIiKSkK KyAgICAgICAgICAgICAgICAoc2V0cSBkaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5hbWUgZGly ZWN0b3J5KSkKKyAgICAgICAgICAgICAgICBgKCIuLyIgIi4uLyIKKyAgICAgICAgICAgICAg ICAgICxAKGRlbGV0ZS1kdXBzCisgICAgICAgICAgICAgICAgICAgICAocmVtcSBuaWwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldHEgZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh3aGVuIChzdHJpbmctcHJlZml4LXAgZGlyZWN0b3J5IGZpbGUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJp bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvLioiICIvIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlIChsZW5ndGggZGly ZWN0b3J5KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsZmlsZXMpKSkpKSkK KyAgICAgICAgICAgICAoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1zeW1saW5rLXApCisgICAg ICAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgICAgICAgKHN0cmluZy1zdWZm aXgtcCAic3ltbGluayIgZmlsZSkpKSkKKyAgICAgLEBib2R5KSkKKworOzs7IFRlc3RzOgor CisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWFueS1zdHJpbmcgKCkKKyAgIlRl c3QgdGhhdCBcIipcIiBwYXR0ZXJuIG1hdGNoZXMgYW55IHN0cmluZy4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiYS5lbCIgImIuZWwiICJjLnR4dCIgImRpci9hLmVsIikKKyAgICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIiouZWwiKQorICAgICAgICAgICAg ICAgICAgICcoImEuZWwiICJiLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRl c3QvbWF0Y2gtYW55LWNoYXJhY3RlciAoKQorICAiVGVzdCB0aGF0IFwiP1wiIHBhdHRlcm4g bWF0Y2hlcyBhbnkgY2hhcmFjdGVyLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAi Yi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiPy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygi YS5lbCIgImIuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1y ZWN1cnNpdmUgKCkKKyAgIlRlc3QgdGhhdCBcIioqL1wiIHJlY3Vyc2l2ZWx5IG1hdGNoZXMg ZGlyZWN0b3JpZXMuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiY2Nj LmVsIiAiZC50eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJkaXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqKi9h LmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiZGlyL2EuZWwiICJkaXIvc3Vi L2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1yZWN1cnNp dmUtZm9sbG93LXN5bWxpbmtzICgpCisgICJUZXN0IHRoYXQgXCIqKiovXCIgcmVjdXJzaXZl bHkgbWF0Y2hlcyBkaXJlY3RvcmllcywgZm9sbG93aW5nIHN5bWxpbmtzLiIKKyAgKHdpdGgt ZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwi ICJkaXIvc3ViL2EuZWwiCisgICAgICAgICAgICAgICAgICAgICAiZGlyL3N5bWxpbmsvYS5l bCIgInN5bWxpbmsvYS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKQorICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKioqL2EuZWwiKQorICAgICAgICAgICAgICAg ICAgICcoImEuZWwiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIgImRpci9zeW1saW5rL2Eu ZWwiCisgICAgICAgICAgICAgICAgICAgICAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLXJlY3Vyc2l2 ZS1taXhlZCAoKQorICAiVGVzdCBjb21iaW5hdGlvbiBvZiBcIioqL1wiIGFuZCBcIioqKi9c Ii4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZGlyL2EuZWwiICJkaXIvc3ViL2EuZWwiICJk aXIvc3ViMi9hLmVsIgorICAgICAgICAgICAgICAgICAgICAgImRpci9zeW1saW5rL2EuZWwi ICJkaXIvc3ViL3N5bWxpbmsvYS5lbCIgInN5bWxpbmsvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJzeW1saW5rL3N1Yi9hLmVsIiAic3ltbGluay9zdWIvc3ltbGluay9hLmVsIikK KyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioqL3N1Yi8qKiov YS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZGlyL3N1Yi9hLmVsIiAiZGlyL3N1Yi9z eW1saW5rL2EuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICIqKiovc3ViLyoqL2EuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImRpci9zdWIv YS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2It dGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LWluZGl2aWR1YWwgKCkKKyAgIlRlc3QgXCJbLi4u XVwiIGZvciBpbmRpdmlkdWFsIGNoYXJhY3RlcnMuIgorICAod2l0aC1mYWtlLWZpbGVzICco ImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWJdLmVsIikKKyAgICAgICAgICAgICAg ICAgICAnKCJhLmVsIiAiYi5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4 dGVuZGVkLWdsb2IgIlteYWJdLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJjLmVsIiAi ZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rl ci1zZXQtcmFuZ2UgKCkKKyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFyYWN0ZXIgcmFuZ2Vz LiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImMuZWwiICJkLmVsIiAi ZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAi W2EtY10uZWwiKQorICAgICAgICAgICAgICAgICAgICcoImEuZWwiICJiLmVsIiAiYy5lbCIp KSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIlteYS1jXS5l bCIpCisgICAgICAgICAgICAgICAgICAgJygiZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rlci1zZXQtY2xhc3MgKCkKKyAgIlRlc3QgXCJb Li4uXVwiIGZvciBjaGFyYWN0ZXIgY2xhc3Nlcy4iCisgICh3aXRoLWZha2UtZmlsZXMgJygi MS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImRpci9hLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIltbOmFscGhhOl1dLmVsIikKKyAgICAgICAg ICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIgImMuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXls6YWxwaGE6XV0uZWwiKQorICAgICAgICAg ICAgICAgICAgICcoIjEuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9t YXRjaC1jaGFyYWN0ZXItc2V0LW1peGVkICgpCisgICJUZXN0IFwiWy4uLl1cIiB3aXRoIG11 bHRpcGxlIGtpbmRzIG9mIG1lbWJlcnMgYXQgb25jZS4iCisgICh3aXRoLWZha2UtZmlsZXMg JygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWMtZFs6ZGlnaXQ6XV0u ZWwiKQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiICJhLmVsIiAiYy5lbCIgImQuZWwi KSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXmFjLWRb OmRpZ2l0Ol1dLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJiLmVsIikpKSkpCisKKyhl cnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtZ3JvdXAtYWx0ZXJuYXRpdmUgKCkKKyAg IlRlc3QgXCIoeHx5KVwiIG1hdGNoZXMgZWl0aGVyIFwieFwiIG9yIFwieVwiLiIKKyAgKHdp dGgtZmFrZS1maWxlcyAnKCJlbS1hbGlhcy5lbCIgImVtLWJhbm5lci5lbCIgImVzaC1hcmcu ZWwiICJtaXNjLmVsIgorICAgICAgICAgICAgICAgICAgICAgInRlc3QvZW0teHRyYS5lbCIp CisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJlKG18c2gpLSou ZWwiKQorICAgICAgICAgICAgICAgICAgICcoImVtLWFsaWFzLmVsIiAiZW0tYmFubmVyLmVs IiAiZXNoLWFyZy5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNo LW4tb3ItbW9yZS1jaGFyYWN0ZXJzICgpCisgICJUZXN0IHRoYXQgXCJ4I1wiIGFuZCBcIngj XCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBcInhcIi4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiaC5lbCIgImhhLmVsIiAiaGkuZWwiICJoaWkuZWwiICJkaXIvaGkuZWwi KQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiaGkjLmVsIikK KyAgICAgICAgICAgICAgICAgICAnKCJoLmVsIiAiaGkuZWwiICJoaWkuZWwiKSkpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMjLmVsIikKKyAgICAg ICAgICAgICAgICAgICAnKCJoaS5lbCIgImhpaS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLW4tb3ItbW9yZS1ncm91cHMgKCkKKyAgIlRlc3QgdGhhdCBc Iih4KSNcIiBhbmQgXCIoeCkjXCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBc Iih4KVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJoLmVsIiAiaGEuZWwiICJoaS5lbCIg ImhpaS5lbCIgImRpci9oaS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICJoaSMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImguZWwiICJoaS5l bCIgImhpaS5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWds b2IgImhpIyMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImhpLmVsIiAiaGlpLmVsIikp KSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtbi1vci1tb3JlLWNoYXJh Y3Rlci1zZXRzICgpCisgICJUZXN0IHRoYXQgXCJbeF0jXCIgYW5kIFwiW3hdI1wiIG1hdGNo IHplcm8gb3IgbW9yZSBpbnN0YW5jZXMgb2YgXCJbeF1cIi4iCisgICh3aXRoLWZha2UtZmls ZXMgJygidy5lbCIgIndoLmVsIiAid2hhLmVsIiAid2hpLmVsIiAid2hhaGEuZWwiICJkaXIv d2hhLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIndb YWhdIy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygidy5lbCIgIndoLmVsIiAid2hhLmVs IiAid2hhaGEuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICJ3W2FoXSMjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJ3aC5lbCIgIndoYS5l bCIgIndoYWhhLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gt eC1idXQtbm90LXkgKCkKKyAgIlRlc3QgdGhhdCBcInh+eVwiIG1hdGNoZXMgXCJ4XCIgYnV0 IG5vdCBcInlcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiMSIgIjEyIiAiMTIzIiAiNDIi ICJkaXIvMSIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJb WzpkaWdpdDpdXSMjfjQ/IikKKyAgICAgICAgICAgICAgICAgICAnKCIxIiAiMTIiICIxMjMi KSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9uby1tYXRjaGVzICgpCisgICJU ZXN0IGJlaGF2aW9yIHdoZW4gYSBnbG9iIGZhaWxzIHRvIG1hdGNoIGFueSBmaWxlcy4iCisg ICh3aXRoLWZha2UtZmlsZXMgJygiZm9vLmVsIiAiYmFyLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioudHh0IikKKyAgICAgICAgICAgICAgICAg ICAiKi50eHQiKSkKKyAgICAobGV0ICgoZXNoZWxsLWVycm9yLWlmLW5vLWdsb2IgdCkpCisg ICAgICAoc2hvdWxkLWVycm9yIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKi50eHQiKSkpKSkK KworOzsgZW0tZ2xvYi10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------559C535580D1C2D9E324EADE Content-Type: text/plain; charset=UTF-8; name="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.pa"; filename*1="tch" RnJvbSBmOGE1Y2RmOWQwMWU2N2RjYTc1MWVmN2E2N2ZiZmFhNDFiN2Q1YTRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTI6NDE6MTMgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvM10gQWRkIHVuaXQgdGVzdHMgYW5kIGRvY3VtZW50YXRpb24gZm9yIEVzaGVsbAog cHJlZGljYXRlcy9tb2RpZmllcnMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxs LWV2YWwtYXJndW1lbnQpOiBOZXcgZnVuY3Rpb24uCgoqIGxpc3AvZXNoZWxsL2VtLXByZWQu ZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBDaGFuZ2Ugc29ja2V0IGNoYXIKdG8gJz0n LCBzaW5jZSAncycgY29uZmxpY3RzIHdpdGggc2V0dWlkLgooZXNoZWxsLW1vZGlmaWVyLWFs aXN0KTogRml4ICdFJyAoZXZhbCkgbW9kaWZpZXIgYnkgdXNpbmcKJ2VzaGVsbC1ldmFsLWFy Z3VtZW50Jy4gIEFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBvZiAnTycgKHJldmVyc2VkCnNv cnQpIG1vZGlmaWVyLgooZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nKTogRml4IGRvY3Vt ZW50YXRpb24gb2YgZ2xvYmFsCnN1YnN0aXR1dGlvbiBtb2RpZmllci4KKGVzaGVsbC1qb2lu LW1lbWJlcnMpOiBGaXggam9pbmluZyB3aXRoIGltcGxpY2l0ICIgIiBkZWxpbWl0ZXIuCgoq IHRlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbDogTmV3IGZpbGUuCgoqIGRvYy9t aXNjL2VzaGVsbC50ZXhpIChBcmd1bWVudCBQcmVkaWNhdGlvbik6IE5ldyBzZWN0aW9uLgot LS0KIGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8IDI0MCArKysrKysrKysr KysrKwogbGlzcC9lc2hlbGwvZW0tcHJlZC5lbCAgICAgICAgICAgIHwgIDI1ICstCiBsaXNw L2VzaGVsbC9lc2gtY21kLmVsICAgICAgICAgICAgfCAgIDggKwogdGVzdC9saXNwL2VzaGVs bC9lbS1wcmVkLXRlc3RzLmVsIHwgNTIwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogNCBmaWxlcyBjaGFuZ2VkLCA3NzggaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVs CgpkaWZmIC0tZ2l0IGEvZG9jL21pc2MvZXNoZWxsLnRleGkgYi9kb2MvbWlzYy9lc2hlbGwu dGV4aQppbmRleCAwYjUyYzczMTc2Li4yYjQ5ZGRiMDNjIDEwMDY0NAotLS0gYS9kb2MvbWlz Yy9lc2hlbGwudGV4aQorKysgYi9kb2MvbWlzYy9lc2hlbGwudGV4aQpAQCAtMTAwMiw2ICsx MDAyLDcgQEAgRXhwYW5zaW9uCiBAbWVudQogKiBEb2xsYXJzIEV4cGFuc2lvbjo6CiAqIEds b2JiaW5nOjoKKyogQXJndW1lbnQgUHJlZGljYXRpb24gYW5kIE1vZGlmaWNhdGlvbjo6CiBA ZW5kIG1lbnUKIAogQG5vZGUgRG9sbGFycyBFeHBhbnNpb24KQEAgLTExNzUsNiArMTE3Niwy NDUgQEAgR2xvYmJpbmcKIAogQGVuZCB0YWJsZQogCitAbm9kZSBBcmd1bWVudCBQcmVkaWNh dGlvbiBhbmQgTW9kaWZpY2F0aW9uCitAc2VjdGlvbiBBcmd1bWVudCBQcmVkaWNhdGlvbiBh bmQgTW9kaWZpY2F0aW9uCitAY2luZGV4IGFyZ3VtZW50IHByZWRpY2F0aW9uCitAY2luZGV4 IGFyZ3VtZW50IG1vZGlmaWNhdGlvbgorRXNoZWxsIHN1cHBvcnRzIEBkZm57YXJndW1lbnQg cHJlZGljYXRpb259LCB0byBmaWx0ZXIgZWxlbWVudHMgb2YgYQorZ2xvYiwgYW5kIEBkZm57 YXJndW1lbnQgbW9kaWZpY2F0aW9ufSwgdG8gbWFuaXB1bGF0ZSBhcmd1bWVudCB2YWx1ZXMu CitUaGVzZSBhcmUgc2ltaWxhciB0byBnbG9iIHF1YWxpZmllcnMgaW4gWnNoIChAcHhyZWZ7 R2xvYiBRdWFsaWZpZXJzLCAsCissIHpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSkuCisKK1By ZWRpY2F0ZXMgYW5kIG1vZGlmaWVycyBhcmUgaW50cm9kdWNlZCB3aXRoIEBjb2RleyhAdmFy e2ZpbHRlcnN9KX0KK2FmdGVyIGFueSBsaXN0IGFyZ3VtZW50LCB3aGVyZSBAdmFye2ZpbHRl cnN9IGlzIGEgbGlzdCBvZiBwcmVkaWNhdGVzCitvciBtb2RpZmllcnMuICBGb3IgZXhhbXBs ZSwgQHNhbXB7KiguKX0gZXhwYW5kcyB0byBhbGwgcmVndWxhciBmaWxlcworaW4gdGhlIGN1 cnJlbnQgZGlyZWN0b3J5IGFuZCBAc2FtcHsqKF5AQDpVXnUwKX0gZXhwYW5kcyB0byBhbGwK K25vbi1zeW1saW5rcyBub3Qgb3duZWQgYnkgQGNvZGV7cm9vdH0sIHVwcGVyLWNhc2VkLgor CitZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgc3ludGF4IGFuZCBiZWhhdmlvciBvZiBwcmVkaWNh dGVzIGFuZCBtb2RpZmllcnMKK2luIEVzaGVsbCB2aWEgdGhlIEN1c3RvbWl6ZSBncm91cCBg YGVzaGVsbC1wcmVkJycgKEBweHJlZntFYXN5CitDdXN0b21pemF0aW9uLCAsICwgZW1hY3Ms IFRoZSBHTlUgRW1hY3MgTWFudWFsfSkuCisKK0BtZW51CisqIEFyZ3VtZW50IFByZWRpY2F0 ZXM6OgorKiBBcmd1bWVudCBNb2RpZmllcnM6OgorQGVuZCBtZW51CisKK0Bub2RlIEFyZ3Vt ZW50IFByZWRpY2F0ZXMKK0BzdWJzZWN0aW9uIEFyZ3VtZW50IFByZWRpY2F0ZXMKK1lvdSBj YW4gdXNlIGFyZ3VtZW50IHByZWRpY2F0ZXMgdG8gZmlsdGVyIGxpc3RzIG9mIGZpbGUgbmFt ZXMgYmFzZWQgb24KK3ZhcmlvdXMgcHJvcGVydGllcyBvZiB0aG9zZSBmaWxlcy4gIFRoaXMg aXMgbW9zdCB1c2VmdWwgd2hlbiBjb21iaW5lZAord2l0aCBnbG9iYmluZywgYnV0IGNhbiBi ZSB1c2VkIG9uIGFueSBsaXN0IG9mIGZpbGVzIG5hbWVzLiAgRXNoZWxsCitzdXBwb3J0cyB0 aGUgZm9sbG93aW5nIGFyZ3VtZW50IHByZWRpY2F0ZXM6CisKK0B0YWJsZSBAYXNpcworCitA aXRlbSBAY29kZXsvfQorTWF0Y2hlcyBkaXJlY3Rvcmllcy4KKworQGl0ZW0gQGNvZGV7Ln0g QHJ7KFBlcmlvZCl9CitNYXRjaGVzIHJlZ3VsYXIgZmlsZXMuCisKK0BpdGVtIEBjb2Rle0BA fQorTWF0Y2hlcyBzeW1ib2xpYyBsaW5rcy4KKworQGl0ZW0gQGNvZGV7PX0KK01hdGNoZXMg c29ja2V0cy4KKworQGl0ZW0gQGNvZGV7cH0KK01hdGNoZXMgbmFtZWQgcGlwZXMuCisKK0Bp dGVtIEBjb2RleyV9CitNYXRjaGVzIGJsb2NrIG9yIGNoYXJhY3RlciBkZXZpY2VzLgorCitA aXRlbSBAY29kZXslYn0KK01hdGNoZXMgYmxvY2sgZGV2aWNlcy4KKworQGl0ZW0gQGNvZGV7 JWN9CitNYXRjaGVzIGNoYXJhY3RlciBkZXZpY2VzLgorCitAaXRlbSBAY29kZXsqfQorTWF0 Y2hlcyByZWd1bGFyIGZpbGVzIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IHRoZSBjdXJyZW50 IHVzZXIuCisKK0BpdGVtIEBjb2Rle3J9CitAaXRlbSBAY29kZXtBfQorQGl0ZW0gQGNvZGV7 Un0KK01hdGNoZXMgZmlsZXMgdGhhdCBhcmUgcmVhZGFibGUgYnkgdGhlaXIgb3duZXJzIChA Y29kZXtyfSksIHRoZWlyCitncm91cHMgKEBjb2Rle0F9KSwgb3IgdGhlIHdvcmxkIChAY29k ZXtSfSkuCisKK0BpdGVtIEBjb2Rle3d9CitAaXRlbSBAY29kZXtJfQorQGl0ZW0gQGNvZGV7 V30KK01hdGNoZXMgZmlsZXMgdGhhdCBhcmUgd3JpdGFibGUgYnkgdGhlaXIgb3duZXJzIChA Y29kZXt3fSksIHRoZWlyCitncm91cHMgKEBjb2Rle0l9KSwgb3IgdGhlIHdvcmxkIChAY29k ZXtXfSkuCisKK0BpdGVtIEBjb2Rle3h9CitAaXRlbSBAY29kZXtFfQorQGl0ZW0gQGNvZGV7 WH0KK01hdGNoZXMgZmlsZXMgdGhhdCBhcmUgZXhlY3V0YWJsZSBieSB0aGVpciBvd25lcnMg KEBjb2Rle3h9KSwgdGhlaXIKK2dyb3VwcyAoQGNvZGV7RX0pLCBvciB0aGUgd29ybGQgKEBj b2Rle1h9KS4KKworQGl0ZW0gQGNvZGV7c30KK01hdGNoZXMgZmlsZXMgd2l0aCB0aGUgc2V0 dWlkIGZsYWcgc2V0LgorCitAaXRlbSBAY29kZXtTfQorTWF0Y2hlcyBmaWxlcyB3aXRoIHRo ZSBzZXRnaWQgZmxhZyBzZXQuCisKK0BpdGVtIEBjb2Rle3R9CitNYXRjaGVzIGZpbGVzIHdp dGggdGhlIHN0aWNreSBiaXQgc2V0LgorCitAaXRlbSBAY29kZXtVfQorTWF0Y2hlcyBmaWxl cyBvd25lZCBieSB0aGUgY3VycmVudCBlZmZlY3RpdmUgdXNlciBJRC4KKworQGl0ZW0gQGNv ZGV7bEBvcHRpb257WystXX1AdmFye259fQorTWF0Y2hlcyBmaWxlcyB3aXRoIEB2YXJ7bn0g bGlua3MuICBXaXRoIEBvcHRpb257K30gKG9yIEBvcHRpb257LX0pLAorbWF0Y2hlcyBmaWxl cyB3aXRoIG1vcmUgdGhhbiAob3IgbGVzcyB0aGFuKSBAdmFye259IGxpbmtzLAorcmVzcGVj dGl2ZWx5LgorCitAaXRlbSBAY29kZXt1QHZhcnt1aWR9fQorQGl0ZW0gQGNvZGV7dSdAdmFy e3VzZXItbmFtZX0nfQorTWF0Y2hlcyBmaWxlcyBvd25lZCBieSB1c2VyIElEIEB2YXJ7dWlk fSBvciB1c2VyIG5hbWUgQHZhcnt1c2VyLW5hbWV9LgorCitAaXRlbSBAY29kZXtnQHZhcntn aWR9fQorQGl0ZW0gQGNvZGV7ZydAdmFye2dyb3VwLW5hbWV9J30KK01hdGNoZXMgZmlsZXMg b3duZWQgYnkgZ3JvdXAgSUQgQHZhcntnaWR9IG9yIGdyb3VwIG5hbWUKK0B2YXJ7Z3JvdXAt bmFtZX0uCisKK0BpdGVtIEBjb2Rle2FAb3B0aW9ue1tAdmFye3VuaXR9XX1Ab3B0aW9ue1sr LV19QHZhcntufX0KK0BpdGVtIEBjb2Rle2FAb3B0aW9ue1srLV19J0B2YXJ7ZmlsZX0nfQor TWF0Y2hlcyBmaWxlcyBsYXN0IGFjY2Vzc2VkIGV4YWN0bHkgQHZhcntufSBkYXlzIGFnby4g IFdpdGggQG9wdGlvbnsrfQorKG9yIEBvcHRpb257LX0pLCBtYXRjaGVzIGZpbGVzIGFjY2Vz c2VkIG1vcmUgdGhhbiAob3IgbGVzcyB0aGFuKQorQHZhcntufSBkYXlzIGFnbywgcmVzcGVj dGl2ZWx5LgorCitXaXRoIEB2YXJ7dW5pdH0sIEB2YXJ7bn0gaXMgYSBxdWFudGl0eSBpbiB0 aGF0IHVuaXQgb2YgdGltZSwgc28KK0BzYW1we2F3LTF9IG1hdGNoZXMgZmlsZXMgbGFzdCBh Y2Nlc3NlZCB3aXRoaW4gb25lIHdlZWsuICBAdmFye3VuaXR9CitjYW4gYmUgQGNvZGV7TX0g KDMwLWRheSBtb250aHMpLCBAY29kZXt3fSAod2Vla3MpLCBAY29kZXtofSAoaG91cnMpLAor QGNvZGV7bX0gKG1pbnV0ZXMpLCBvciBAY29kZXtzfSAoc2Vjb25kcykuCisKK0lmIEB2YXJ7 ZmlsZX0gaXMgc3BlY2lmaWVkIGluc3RlYWQsIGNvbXBhcmUgYWdhaW5zdCB0aGUgbW9kaWZp Y2F0aW9uCit0aW1lIG9mIEBmaWxle2ZpbGV9LiAgVGh1cywgQHNhbXB7YS0naGVsbG8udHh0 J30gbWF0Y2hlcyBhbGwgZmlsZXMKK2FjY2Vzc2VkIGFmdGVyIEBmaWxle2hlbGxvLnR4dH0g d2FzIGxhc3QgYWNjZXNzZWQuCisKK0BpdGVtIEBjb2Rle21Ab3B0aW9ue1tAdmFye3VuaXR9 XX1Ab3B0aW9ue1srLV19QHZhcntufX0KK0BpdGVtIEBjb2Rle21Ab3B0aW9ue1srLV19J0B2 YXJ7ZmlsZX0nfQorTGlrZSBAY29kZXthfSwgYnV0IGV4YW1pbmVzIG1vZGlmaWNhdGlvbiB0 aW1lLgorCitAaXRlbSBAY29kZXtjQG9wdGlvbntbQHZhcnt1bml0fV19QG9wdGlvbntbKy1d fUB2YXJ7bn19CitAaXRlbSBAY29kZXtjQG9wdGlvbntbKy1dfSdAdmFye2ZpbGV9J30KK0xp a2UgQGNvZGV7YX0sIGJ1dCBleGFtaW5lcyBzdGF0dXMgY2hhbmdlIHRpbWUuCisKK0BpdGVt IEBjb2Rle0xAb3B0aW9ue1tAdmFye3VuaXR9XX1Ab3B0aW9ue1srLV19QHZhcntufX0KK01h dGNoZXMgZmlsZXMgZXhhY3RseSBAdmFye259IGJ5dGVzIGluIHNpemUuICBXaXRoIEBvcHRp b257K30gKG9yCitAb3B0aW9uey19KSwgbWF0Y2hlcyBmaWxlcyBsYXJnZXIgdGhhbiAob3Ig c21hbGxlciB0aGFuKSBAdmFye259CitieXRlcywgcmVzcGVjdGl2ZWx5LgorCitXaXRoIEB2 YXJ7dW5pdH0sIEB2YXJ7bn0gaXMgYSBxdWFudGl0eSBpbiB0aGF0IHVuaXQgb2Ygc2l6ZSwg c28KK0BzYW1we0xtKzV9IG1hdGNoZXMgZmlsZXMgbGFyZ2VyIHRoYW4gNSBNaUIgaW4gc2l6 ZS4gIEB2YXJ7dW5pdH0gY2FuCitiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyAoY2FzZS1pbnNl bnNpdGl2ZSkgY2hhcmFjdGVyczogQGNvZGV7bX0KKyhtZWdhYnl0ZXMpLCBAY29kZXtrfSAo a2lsb2J5dGVzKSwgb3IgQGNvZGV7cH0gKDUxMi1ieXRlIGJsb2NrcykuCisKK0BlbmQgdGFi bGUKKworVGhlIEBjb2Rle159IGFuZCBAY29kZXstfSBvcGVyYXRvcnMgYXJlIG5vdCBhcmd1 bWVudCBwcmVkaWNhdGVzCit0aGVtc2VsdmVzLCBidXQgdGhleSBtb2RpZnkgdGhlIGJlaGF2 aW9yIG9mIGFsbCBzdWJzZXF1ZW50IHByZWRpY2F0ZXMuCitAY29kZXtefSBpbnZlcnRzIHRo ZSBtZWFuaW5nIG9mIHN1YnNlcXVlbnQgcHJlZGljYXRlcywgc28KK0BzYW1weyooXlJXWCl9 IGV4cGFuZHMgdG8gYWxsIGZpbGVzIHdob3NlIHBlcm1pc3Npb25zIGRpc2FsbG93IHRoZQor d29ybGQgZnJvbSBhY2Nlc3NpbmcgdGhlbSBpbiBhbnkgd2F5IChpLmUuLCByZWFkaW5nLCB3 cml0aW5nIHRvLCBvcgorbW9kaWZ5aW5nIHRoZW0pLiAgV2hlbiBleGFtaW5pbmcgYSBzeW1i b2xpYyBsaW5rLCBAY29kZXstfSBhcHBsaWVzIHRoZQorc3Vic2VxdWVudCBwcmVkaWNhdGVz IHRvIHRoZSBsaW5rJ3MgdGFyZ2V0IGluc3RlYWQgb2YgdGhlIGxpbmsgaXRzZWxmLgorCitA bm9kZSBBcmd1bWVudCBNb2RpZmllcnMKK0BzdWJzZWN0aW9uIEFyZ3VtZW50IE1vZGlmaWVy cworWW91IGNhbiB1c2UgYXJndW1lbnQgbW9kaWZpZXJzIHRvIG1hbmlwdWxhdGUgYXJndW1l bnQgdmFsdWVzLiAgRm9yCitleGFtcGxlLCB5b3UgY2FuIHNvcnQgbGlzdHMsIHJlbW92ZSBk dXBsaWNhdGUgdmFsdWVzLCBjYXBpdGFsaXplCit3b3JkcywgZXRjLiAgQWxsIGFyZ3VtZW50 IG1vZGlmaWVycyBhcmUgcHJlZml4ZWQgYnkgQGNvZGV7On0sIHNvCitAc2FtcHskZXhlYy1w YXRoKDpoOnU6eC9eXC9ob21lLyl9IGxpc3RzIGFsbCBvZiB0aGUgdW5pcXVlIHBhcmVudAor ZGlyZWN0b3JpZXMgb2YgdGhlIGVsZW1lbnRzIGluIEBjb2Rle2V4ZWMtcGF0aH0sIGV4Y2x1 ZGluZyB0aG9zZSBpbgorQGZpbGV7L2hvbWV9LgorCitAdGFibGUgQGNvZGUKKworQGl0ZW0g RQorUmUtZXZhbHVhdGVzIHRoZSB2YWx1ZSBhcyBhbiBFc2hlbGwgYXJndW1lbnQuICBGb3Ig ZXhhbXBsZSwgaWYKK0B2YXJ7Zm9vfSBpcyBAY29kZXsiJEB7ZWNobyBoaUB9In0sIHRoZW4g dGhlIHJlc3VsdCBvZiBAc2FtcHskZm9vKDpFKX0KK2lzIEBjb2Rle2hpfS4KKworQGl0ZW0g TAorQ29udmVydHMgdGhlIHZhbHVlIHRvIGxvd2VyIGNhc2UuCisKK0BpdGVtIFUKK0NvbnZl cnRzIHRoZSB2YWx1ZSB0byB1cHBlciBjYXNlLgorCitAaXRlbSBDCitDYXBpdGFsaXplcyB0 aGUgdmFsdWUuCisKK0BpdGVtIGgKK1RyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhIGZpbGUgbmFt ZSwgZ2V0cyB0aGUgZGlyZWN0b3J5IG5hbWUgKHRoZQorYGBoZWFkJycpLiAgRm9yIGV4YW1w bGUsIEBzYW1we2Zvby9iYXIvYmF6LmVsKDpoKX0gZXhwYW5kcyB0bworQGNvZGV7Zm9vL2Jh ci99LgorCitAaXRlbSB0CitUcmVhdGluZyB0aGUgdmFsdWUgYXMgYSBmaWxlIG5hbWUsIGdl dHMgdGhlIGJhc2UgbmFtZSAodGhlIGBgdGFpbCcnKS4KK0ZvciBleGFtcGxlLCBAc2FtcHtm b28vYmFyL2Jhei5lbCg6aCl9IGV4cGFuZHMgdG8gQGNvZGV7YmF6LmVsfS4KKworQGl0ZW0g ZQorVHJlYXRpbmcgdGhlIHZhbHVlIGFzIGEgZmlsZSBuYW1lLCBnZXRzIHRoZSBmaW5hbCBl eHRlbnNpb24gb2YgdGhlCitmaWxlLCBleGNsdWRpbmcgdGhlIGRvdC4gIEZvciBleGFtcGxl LCBAc2FtcHtmb28udGFyLmd6KDplKX0KK2V4cGFuZHMgdG8gQGNvZGV7Z3p9LgorCitAaXRl bSByCitUcmVhdGluZyB0aGUgdmFsdWUgYXMgYSBmaWxlIG5hbWUsIGdldHMgdGhlIGZpbGUg bmFtZSBleGNsdWRpbmcgdGhlCitmaW5hbCBleHRlbnNpb24uICBGb3IgZXhhbXBsZSwgQHNh bXB7Zm9vL2Jhci9iYXoudGFyLmd6KDpyKX0gZXhwYW5kcwordG8gQGNvZGV7Zm9vL2Jhci9i YXoudGFyfS4KKworQGl0ZW0gcQorTWFya3MgdGhhdCB0aGUgdmFsdWUgc2hvdWxkIGJlIGlu dGVycHJldGVkIGJ5IEVzaGVsbCBsaXRlcmFsbHksIHNvCit0aGF0IGFueSBzcGVjaWFsIGNo YXJhY3RlcnMgbGlrZSBAY29kZXskfSBubyBsb25nZXIgaGF2ZSBhbnkgc3BlY2lhbAorbWVh bmluZy4KKworQGl0ZW0gcy9AdmFye3BhdHRlcm59L0B2YXJ7cmVwbGFjZX0vCitSZXBsYWNl cyB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBAdmFye3Bh dHRlcm59Cit3aXRoIEB2YXJ7cmVwbGFjZX0uICBTaWduYWxzIGFuIGVycm9yIGlmIG5vIG1h dGNoIGlzIGZvdW5kLgorCitAaXRlbSBncy9AdmFye3BhdHRlcm59L0B2YXJ7cmVwbGFjZX0v CitSZXBsYWNlcyBhbGwgaW5zdGFuY2VzIG9mIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gQHZh cntwYXR0ZXJufSB3aXRoCitAdmFye3JlcGxhY2V9LgorCitAaXRlbSBpL0B2YXJ7cGF0dGVy bn0vCitGaWx0ZXJzIGEgbGlzdCBvZiB2YWx1ZXMgdG8gaW5jbHVkZSBvbmx5IHRoZSBlbGVt ZW50cyBtYXRjaGluZyB0aGUKK3JlZ3VsYXIgZXhwcmVzc2lvbiBAdmFye3BhdHRlcm59Lgor CitAaXRlbSB4L0B2YXJ7cGF0dGVybn0vCitGaWx0ZXJzIGEgbGlzdCBvZiB2YWx1ZXMgdG8g ZXhjbHVkZSBhbGwgdGhlIGVsZW1lbnRzIG1hdGNoaW5nIHRoZQorcmVndWxhciBleHByZXNz aW9uIEB2YXJ7cGF0dGVybn0uCisKK0BpdGVtIFMKK0BpdGVtIFMvQHZhcntwYXR0ZXJufS8K K1NwbGl0cyB0aGUgdmFsdWUgdXNpbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBAdmFye3Bh dHRlcm59IGFzIGEKK2RlbGltaXRlci4gIElmIEB2YXJ7cGF0dGVybn0gaXMgb21pdHRlZCwg c3BsaXQgb24gc3BhY2VzLgorCitAaXRlbSBqCitAaXRlbSBqL0B2YXJ7ZGVsaW19LworSm9p bnMgYSBsaXN0IG9mIHZhbHVlcywgaW5zZXJ0aW5nIHRoZSBzdHJpbmcgQHZhcntkZWxpbX0g YmV0d2VlbiBlYWNoCit2YWx1ZS4gIElmIEB2YXJ7ZGVsaW19IGlzIG9taXR0ZWQsIHVzZSBh IHNpbmdsZSBzcGFjZSBhcyB0aGUKK2RlbGltaXRlci4KKworQGl0ZW0gbworU29ydHMgYSBs aXN0IG9mIHN0cmluZ3MgaW4gYXNjZW5kaW5nIGxleGljb2dyYXBoaWMgb3JkZXIsIGNvbXBh cmluZworcGFpcnMgb2YgY2hhcmFjdGVycyBhY2NvcmRpbmcgdG8gdGhlaXIgY2hhcmFjdGVy IGNvZGVzIChAcHhyZWZ7VGV4dAorQ29tcGFyaXNvbiwgLCAsIGVsaXNwLCBUaGUgRW1hY3Mg TGlzcCBSZWZlcmVuY2UgTWFudWFsfSkuCisKK0BpdGVtIE8KK1NvcnRzIGEgbGlzdCBvZiBz dHJpbmdzIGluIGRlc2NlbmRpbmcgbGV4aWNvZ3JhcGhpYyBvcmRlci4KKworQGl0ZW0gdQor UmVtb3ZlcyBhbnkgZHVwbGljYXRlIGVsZW1lbnRzIGZyb20gYSBsaXN0IG9mIHZhbHVlcy4K KworQGl0ZW0gUgorUmV2ZXJzZXMgdGhlIG9yZGVyIG9mIGEgbGlzdCBvZiB2YWx1ZXMuCisK K0BlbmQgdGFibGUKKwogQG5vZGUgSW5wdXQvT3V0cHV0CiBAY2hhcHRlciBJbnB1dC9PdXRw dXQKIFNpbmNlIEVzaGVsbCBkb2VzIG5vdCBjb21tdW5pY2F0ZSB3aXRoIGEgdGVybWluYWwg bGlrZSBtb3N0IGNvbW1hbmQKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwg Yi9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCmluZGV4IDk3MDMyOWUxMmEuLmU3NWRhOTFjZjYg MTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwKKysrIGIvbGlzcC9lc2hlbGwv ZW0tcHJlZC5lbApAQCAtNjgsNyArNjgsNyBAQCBlc2hlbGwtcHJlZC1sb2FkLWhvb2sKIChk ZWZjdXN0b20gZXNoZWxsLXByZWRpY2F0ZS1hbGlzdAogICAnKCg/LyAuIChlc2hlbGwtcHJl ZC1maWxlLXR5cGUgP2QpKSAgIDsgZGlyZWN0b3JpZXMKICAgICAoPy4gLiAoZXNoZWxsLXBy ZWQtZmlsZS10eXBlID8tKSkgICA7IHJlZ3VsYXIgZmlsZXMKLSAgICAoP3MgLiAoZXNoZWxs LXByZWQtZmlsZS10eXBlID9zKSkgICA7IHNvY2tldHMKKyAgICAoPz0gLiAoZXNoZWxsLXBy ZWQtZmlsZS10eXBlID9zKSkgICA7IHNvY2tldHMKICAgICAoP3AgLiAoZXNoZWxsLXByZWQt ZmlsZS10eXBlID9wKSkgICA7IG5hbWVkIHBpcGVzCiAgICAgKD9AIC4gKGVzaGVsbC1wcmVk LWZpbGUtdHlwZSA/bCkpICAgOyBzeW1ib2xpYyBsaW5rcwogICAgICg/JSAuIChlc2hlbGwt cHJlZC1maWxlLXR5cGUgPyUpKSAgIDsgYWxsb3cgdXNlciB0byBzcGVjaWZ5IChjIGRlZi4p CkBAIC05Nyw4ICs5Nyw4IEBAIGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QKICAgICAgICAgICAg ICAgICAgKG5vdCAoZmlsZS1zeW1saW5rLXAgZmlsZSkpCiAgICAgICAgICAgICAgICAgIChm aWxlLWV4ZWN1dGFibGUtcCBmaWxlKSkpKQogICAgICg/bCAuIChlc2hlbGwtcHJlZC1maWxl LWxpbmtzKSkKLSAgICAoP3UgLiAoZXNoZWxsLXByZWQtdXNlci1vci1ncm91cCA/dSAidXNl ciIgMiAnZXNoZWxsLXVzZXItaWQpKQotICAgICg/ZyAuIChlc2hlbGwtcHJlZC11c2VyLW9y LWdyb3VwID9nICJncm91cCIgMyAnZXNoZWxsLWdyb3VwLWlkKSkKKyAgICAoP3UgLiAoZXNo ZWxsLXByZWQtdXNlci1vci1ncm91cCA/dSAidXNlciIgMiAjJ2VzaGVsbC11c2VyLWlkKSkK KyAgICAoP2cgLiAoZXNoZWxsLXByZWQtdXNlci1vci1ncm91cCA/ZyAiZ3JvdXAiIDMgIydl c2hlbGwtZ3JvdXAtaWQpKQogICAgICg/YSAuIChlc2hlbGwtcHJlZC1maWxlLXRpbWUgP2Eg ImFjY2VzcyIgNCkpCiAgICAgKD9tIC4gKGVzaGVsbC1wcmVkLWZpbGUtdGltZSA/bSAibW9k aWZpY2F0aW9uIiA1KSkKICAgICAoP2MgLiAoZXNoZWxsLXByZWQtZmlsZS10aW1lID9jICJj aGFuZ2UiIDYpKQpAQCAtMTExLDEyICsxMTEsNyBAQCBlc2hlbGwtcHJlZGljYXRlLWFsaXN0 CiAgIDpyaXNreSB0KQogCiAoZGVmY3VzdG9tIGVzaGVsbC1tb2RpZmllci1hbGlzdAotICAn KCg/RSAuIChsYW1iZGEgKGxzdCkKLSAgICAgICAgICAgIChtYXBjYXIKLSAgICAgICAgICAg ICAobGFtYmRhIChzdHIpCi0gICAgICAgICAgICAgICAoZXNoZWxsLXN0cmluZ2lmeQotICAg ICAgICAgICAgICAgIChjYXIgKGVzaGVsbC1wYXJzZS1hcmd1bWVudCBzdHIpKSkpCi0gICAg ICAgICAgICAgbHN0KSkpCisgICcoKD9FIC4gKGxhbWJkYSAobHN0KSAobWFwY2FyICMnZXNo ZWxsLWV2YWwtYXJndW1lbnQgbHN0KSkpCiAgICAgKD9MIC4gKGxhbWJkYSAobHN0KSAobWFw Y2FyICMnZG93bmNhc2UgbHN0KSkpCiAgICAgKD9VIC4gKGxhbWJkYSAobHN0KSAobWFwY2Fy ICMndXBjYXNlIGxzdCkpKQogICAgICg/QyAuIChsYW1iZGEgKGxzdCkgKG1hcGNhciAjJ2Nh cGl0YWxpemUgbHN0KSkpCkBAIC0xMjksMTAgKzEyNCwxMCBAQCBlc2hlbGwtbW9kaWZpZXIt YWxpc3QKICAgICAoP3EgLiAobGFtYmRhIChsc3QpIChtYXBjYXIgIydlc2hlbGwtZXNjYXBl LWFyZyBsc3QpKSkKICAgICAoP3UgLiAobGFtYmRhIChsc3QpIChzZXEtdW5pcSBsc3QpKSkK ICAgICAoP28gLiAobGFtYmRhIChsc3QpIChzb3J0IGxzdCAjJ3N0cmluZy1sZXNzcCkpKQot ICAgICg/TyAuIChsYW1iZGEgKGxzdCkgKG5yZXZlcnNlIChzb3J0IGxzdCAjJ3N0cmluZy1s ZXNzcCkpKSkKKyAgICAoP08gLiAobGFtYmRhIChsc3QpIChzb3J0IGxzdCAjJ3N0cmluZy1n cmVhdGVycCkpKQogICAgICg/aiAuIChlc2hlbGwtam9pbi1tZW1iZXJzKSkKICAgICAoP1Mg LiAoZXNoZWxsLXNwbGl0LW1lbWJlcnMpKQotICAgICg/UiAuICdyZXZlcnNlKQorICAgICg/ UiAuICMncmV2ZXJzZSkKICAgICAoP2cgLiAocHJvZ24KIAkgICAgKGZvcndhcmQtY2hhcikK IAkgICAgKGlmIChlcSAoY2hhci1iZWZvcmUpID9zKQpAQCAtMTQyLDcgKzEzNyw3IEBAIGVz aGVsbC1tb2RpZmllci1hbGlzdAogICAiQSBsaXN0IG9mIG1vZGlmaWVycyB0aGFuIGNhbiBi ZSBhcHBsaWVkIHRvIGFuIGFyZ3VtZW50IGV4cGFuc2lvbi4KIFRoZSBmb3JtYXQgb2YgZWFj aCBlbnRyeSBpcwogCi0gIChDSEFSIEVOVFJZV0lTRS1QIE1PRElGSUVSLUZVTkMtU0VYUCki CisgIChDSEFSIC4gTU9ESUZJRVItRlVOQy1TRVhQKSIKICAgOnR5cGUgJyhyZXBlYXQgKGNv bnMgY2hhcmFjdGVyIHNleHApKQogICA6cmlza3kgdCkKIApAQCAtMjE3LDggKzIxMiw4IEBA IGVzaGVsbC1tb2RpZmllci1oZWxwLXN0cmluZwogICBpL1BBVC8gIGV4Y2x1ZGUgYWxsIG1l bWJlcnMgbm90IG1hdGNoaW5nIFBBVAogICB4L1BBVC8gIGV4Y2x1ZGUgYWxsIG1lbWJlcnMg bWF0Y2hpbmcgUEFUCiAKLSAgcy9wYXQvbWF0Y2gvICBzdWJzdGl0dXRlIFBBVCB3aXRoIE1B VENICi0gIGcvcGF0L21hdGNoLyAgc3Vic3RpdHV0ZSBQQVQgd2l0aCBNQVRDSCBmb3IgYWxs IG9jY3VycmVuY2VzCisgIHMvcGF0L21hdGNoLyAgIHN1YnN0aXR1dGUgUEFUIHdpdGggTUFU Q0gKKyAgZ3MvcGF0L21hdGNoLyAgc3Vic3RpdHV0ZSBQQVQgd2l0aCBNQVRDSCBmb3IgYWxs IG9jY3VycmVuY2VzCiAKIEVYQU1QTEVTOgogICAqLmMoOm8pICBzb3J0ZWQgbGlzdCBvZiAu YyBmaWxlcyIpCkBAIC01NjgsNyArNTYzLDcgQEAgZXNoZWxsLWpvaW4tbWVtYmVycwogICAo bGV0ICgoZGVsaW0gKGNoYXItYWZ0ZXIpKQogCXN0ciBlbmQpCiAgICAgKGlmIChub3QgKG1l bXEgZGVsaW0gJyg/JyA/LykpKQotCShzZXRxIGRlbGltICIgIikKKwkoc2V0cSBzdHIgIiAi KQogICAgICAgKGZvcndhcmQtY2hhcikKICAgICAgIChzZXRxIGVuZCAoZXNoZWxsLWZpbmQt ZGVsaW1pdGVyIGRlbGltIGRlbGltIG5pbCBuaWwgdCkKIAkgICAgc3RyIChidWZmZXItc3Vi c3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50KSBlbmQpKQpkaWZmIC0tZ2l0IGEvbGlzcC9l c2hlbGwvZXNoLWNtZC5lbCBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKaW5kZXggOGJlMTEz NmUzMS4uNDI2MTZlNzAzNyAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbAor KysgYi9saXNwL2VzaGVsbC9lc2gtY21kLmVsCkBAIC0xMDAyLDYgKzEwMDIsMTQgQEAgZXNo ZWxsLWludm9rZS1kaXJlY3RseQogICAobGV0ICgoYmFzZSAoY2FkciAobnRoIDIgKG50aCAy IChjYWRyIGNvbW1hbmQpKSkpKSkKICAgICAoZXNoZWxsLS1pbnZva2UtY29tbWFuZC1kaXJl Y3RseSBiYXNlKSkpCiAKKyhkZWZ1biBlc2hlbGwtZXZhbC1hcmd1bWVudCAoYXJndW1lbnQp CisgICJFdmFsdWF0ZSBhIHNpbmdsZSBFc2hlbGwgQVJHVU1FTlQgYW5kIHJldHVybiB0aGUg cmVzdWx0LiIKKyAgKGxldCogKChmb3JtIChlc2hlbGwtd2l0aC10ZW1wLWNvbW1hbmQgYXJn dW1lbnQKKyAgICAgICAgICAgICAgICAgKGVzaGVsbC1wYXJzZS1hcmd1bWVudCkpKQorICAg ICAgICAgKHJlc3VsdCAoZXNoZWxsLWRvLWV2YWwgZm9ybSB0KSkpCisgICAgKGNsLWFzc2Vy dCAoZXEgKGNhciByZXN1bHQpICdxdW90ZSkpCisgICAgKGNhZHIgcmVzdWx0KSkpCisKIChk ZWZ1biBlc2hlbGwtZXZhbC1jb21tYW5kIChjb21tYW5kICZvcHRpb25hbCBpbnB1dCkKICAg IkV2YWx1YXRlIHRoZSBnaXZlbiBDT01NQU5EIGl0ZXJhdGl2ZWx5LiIKICAgKGlmIGVzaGVs bC1jdXJyZW50LWNvbW1hbmQKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJl ZC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mNzQ2YWEzZGE4Ci0tLSAvZGV2L251 bGwKKysrIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVsCkBAIC0wLDAgKzEs NTIwIEBACis7OzsgZW0tcHJlZC10ZXN0cy5lbCAtLS0gZW0tcHJlZCB0ZXN0IHN1aXRlICAt Ki0gbGV4aWNhbC1iaW5kaW5nOnQgLSotCisKKzs7IENvcHlyaWdodCAoQykgMjAyMiBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg R05VIEVtYWNzLgorCis7OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCis7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7 OyBHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzsgYWxv bmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCis7OzsgQ29tbWVudGFyeToKKworOzsgVGVzdHMgZm9yIEVzaGVsbCdz IGFyZ3VtZW50IHByZWRpY2F0ZXMvbW9kaWZpZXJzLgorCis7OzsgQ29kZToKKworKHJlcXVp cmUgJ2VydCkKKyhyZXF1aXJlICdlc2gtbW9kZSkKKyhyZXF1aXJlICdlc2hlbGwpCisKKyhy ZXF1aXJlICdlc2hlbGwtdGVzdHMtaGVscGVycworICAgICAgICAgKGV4cGFuZC1maWxlLW5h bWUgImVzaGVsbC10ZXN0cy1oZWxwZXJzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg KGZpbGUtbmFtZS1kaXJlY3RvcnkgKG9yIGxvYWQtZmlsZS1uYW1lCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdC1kaXJlY3Rv cnkpKSkpCisKKyhkZWZ2YXIgZXNoZWxsLXRlc3QtdmFsdWUgbmlsKQorCisoZGVmdW4gZXNo ZWxsLWV2YWwtcHJlZGljYXRlIChpbml0aWFsLXZhbHVlIHByZWRpY2F0ZSkKKyAgIkV2YWx1 YXRlIFBSRURJQ0FURSBvbiBJTklUSUFMLVZBTFVFLCByZXR1cm5pbmcgdGhlIHJlc3VsdC4K K1BSRURJQ0FURSBpcyBhbiBFc2hlbGwgYXJndW1lbnQgcHJlZGljYXRlL21vZGlmaWVyLiIK KyAgKGxldCAoKGVzaGVsbC10ZXN0LXZhbHVlIGluaXRpYWwtdmFsdWUpKQorICAgICh3aXRo LXRlbXAtZXNoZWxsCisgICAgIChlc2hlbGwtaW5zZXJ0LWNvbW1hbmQKKyAgICAgIChmb3Jt YXQgInNldHEgZXNoZWxsLXRlc3QtdmFsdWUgJGVzaGVsbC10ZXN0LXZhbHVlKCVzKSIgcHJl ZGljYXRlKSkpCisgICAgZXNoZWxsLXRlc3QtdmFsdWUpKQorCisoZGVmdW4gZXNoZWxsLXBh cnNlLWZpbGUtbmFtZS1hdHRyaWJ1dGVzIChmaWxlKQorICAiUGFyc2UgYSBmYWtlIEZJTEUg bmFtZSB0byBkZXRlcm1pbmUgaXRzIGF0dHJpYnV0ZXMuCitGYWtlIGZpbGUgbmFtZXMgYXJl IGZpbGUgbmFtZXMgYmVnaW5uaW5nIHdpdGggXCIvZmFrZS9cIi4gIFRoaXMKK2FsbG93cyBk ZWZpbmluZyBmaWxlIG5hbWVzIGZvciBmYWtlIGZpbGVzIHdpdGggdmFyaW91cyBwcm9wZXJ0 aWVzCit0byBxdWVyeSB2aWEgcHJlZGljYXRlcy4gIEF0dHJpYnV0ZXMgYXJlIHdyaXR0ZW4g YXMgYQorY29tbWEtc2VwYXJhdGUgbGlzdCBvZiBBVFRSPVZBTFVFIHBhaXJzIGFzIHRoZSBm aWxlJ3MgYmFzZSBuYW1lLAorbGlrZToKKworICAvZmFrZS90eXBlPS0sbW9kZXM9MDc1NS5l bAorCitUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIHJlY29nbml6ZWQ6CisKKyAgKiBc InR5cGVcIjogQSBzaW5nbGUgY2hhcmFjdGVyIGRlc2NyaWJpbmcgdGhlIGZpbGUgdHlwZTsK KyAgICBhY2NlcHRzIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9m IHRoZSBmaWxlCisgICAgbW9kZXMgaW4gYGxzIC1sJy4KKyAgKiBcIm1vZGVzXCI6IFRoZSBm aWxlJ3MgcGVybWlzc2lvbiBtb2RlcywgaW4gb2N0YWwuCisgICogXCJsaW5rc1wiOiBUaGUg bnVtYmVyIG9mIGxpbmtzIHRvIHRoaXMgZmlsZS4KKyAgKiBcInVpZFwiOiBUaGUgVUlEIG9m IHRoZSBmaWxlJ3Mgb3duZXIuCisgICogXCJnaWRcIjogVGhlIFVJRCBvZiB0aGUgZmlsZSdz IGdyb3VwLgorICAqIFwiYXRpbWVcIjogVGhlIHRpbWUgdGhlIGZpbGUgd2FzIGxhc3QgYWNj ZXNzZWQsIGluIHNlY29uZHMKKyAgICBzaW5jZSB0aGUgVU5JWCBlcG9jaC4KKyAgKiBcIm10 aW1lXCI6IEFzIFwiYXRpbWVcIiwgYnV0IGZvciBtb2RpZmljYXRpb24gdGltZS4KKyAgKiBc ImN0aW1lXCI6IEFzIFwiYXRpbWVcIiwgYnV0IGZvciBpbm9kZSBjaGFuZ2UgdGltZS4KKyAg KiBcInNpemVcIjogVGhlIGZpbGUncyBzaXplIGluIGJ5dGVzLiIKKyAgKG1hcGNhciAobGFt YmRhIChpKQorICAgICAgICAgICAgKHBjYXNlIChzcGxpdC1zdHJpbmcgaSAiPSIpCisgICAg ICAgICAgICAgIChgKCJtb2RlcyIgLG1vZGVzKQorICAgICAgICAgICAgICAgKGNvbnMgJ21v ZGVzIChzdHJpbmctdG8tbnVtYmVyIG1vZGVzIDgpKSkKKyAgICAgICAgICAgICAgKGAoLChh bmQgKG9yICJsaW5rcyIgInVpZCIgImdpZCIgInNpemUiKSBrZXkpICx2YWx1ZSkKKyAgICAg ICAgICAgICAgIChjb25zIChpbnRlcm4ga2V5KSAoc3RyaW5nLXRvLW51bWJlciB2YWx1ZSkp KQorICAgICAgICAgICAgICAoYCgsKGFuZCAob3IgImF0aW1lIiAibXRpbWUiICJjdGltZSIp IGtleSkgLHZhbHVlKQorICAgICAgICAgICAgICAgKGNvbnMgKGludGVybiBrZXkpICh0aW1l LWNvbnZlcnQgKHN0cmluZy10by1udW1iZXIgdmFsdWUpKSkpCisgICAgICAgICAgICAgIChg KCxrZXkgLHZhbHVlKQorICAgICAgICAgICAgICAgKGNvbnMgKGludGVybiBrZXkpIHZhbHVl KSkKKyAgICAgICAgICAgICAgKF8gKGVycm9yICJpbnZhbGlkIGZvcm1hdCAlUyIgaSkpKSkK KyAgICAgICAgICAoc3BsaXQtc3RyaW5nIChmaWxlLW5hbWUtYmFzZSBmaWxlKSAiLCIpKSkK KworKGRlZm1hY3JvIGVzaGVsbC1wYXJ0aWFsLWxldC1mdW5jIChvdmVycmlkZXMgJnJlc3Qg Ym9keSkKKyAgIlRlbXBvcmFyaWx5IGJpbmQgdG8gRlVOQ1RJT04tTkFNRXMgYW5kIGV2YWx1 YXRlIEJPRFkuCitUaGlzIGlzIHJvdWdobHkgYW5hbG9nb3VzIHRvIGFkdmlzaW5nIGZ1bmN0 aW9ucywgYnV0IG9ubHkgZG9lcyBzbword2hpbGUgQk9EWSBpcyBleGVjdXRpbmcsIGFuZCBv bmx5IGNhbGxzIE5FVy1GVU5DVElPTiBpZiBpdHMgZmlyc3QKK2FyZ3VtZW50IGlzIGEgc3Ry aW5nIGJlZ2lubmluZyB3aXRoIFwiL2Zha2UvXCIuCisKK1RoaXMgYWxsb3dzIHNlbGVjdGl2 ZWx5IG92ZXJyaWRpbmcgZnVuY3Rpb25zIHRvIHRlc3QgZmlsZQorcHJvcGVydGllcyB3aXRo IGZha2UgZmlsZXMgd2l0aG91dCBhbHRlcmluZyB0aGUgZnVuY3Rpb25zJworYmVoYXZpb3Ig Zm9yIHJlYWwgZmlsZXMuCisKK1woZm4gKChGVU5DVElPTi1OQU1FIE5FVy1GVU5DVElPTikg Li4uKSBCT0RZLi4uKSIKKyAgKGRlY2xhcmUgKGluZGVudCAxKSkKKyAgYChjbC1sZXRmCisg ICAgICAgLChtYXBjYXIKKyAgICAgICAgIChsYW1iZGEgKG92ZXJyaWRlKQorICAgICAgICAg ICAobGV0ICgob3JpZy1mdW5jdGlvbiAoc3ltYm9sLWZ1bmN0aW9uIChjYXIgb3ZlcnJpZGUp KSkpCisgICAgICAgICAgICAgYCgoc3ltYm9sLWZ1bmN0aW9uICMnLChjYXIgb3ZlcnJpZGUp KQorICAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSAmcmVzdCByZXN0KQorICAgICAgICAg ICAgICAgICAoYXBwbHkKKyAgICAgICAgICAgICAgICAgIChpZiAoYW5kIChzdHJpbmdwIGZp bGUpIChzdHJpbmctcHJlZml4LXAgIi9mYWtlLyIgZmlsZSkpCisgICAgICAgICAgICAgICAg ICAgICAgLChjYWRyIG92ZXJyaWRlKQorICAgICAgICAgICAgICAgICAgICAsb3JpZy1mdW5j dGlvbikKKyAgICAgICAgICAgICAgICAgIGZpbGUgcmVzdCkpKSkpCisgICAgICAgICBvdmVy cmlkZXMpCisgICAgICxAYm9keSkpCisKKyhkZWZtYWNybyBlc2hlbGwtd2l0aC1maWxlLWF0 dHJpYnV0ZXMtZnJvbS1uYW1lICgmcmVzdCBib2R5KQorICAiVGVtcG9yYXJpbHkgb3ZlcnJp ZGUgZmlsZSBhdHRyaWJ1dGUgZnVuY3Rpb25zIGFuZCBldmFsdWF0ZSBCT0RZLiIKKyAgKGRl Y2xhcmUgKGluZGVudCAwKSkKKyAgYChlc2hlbGwtcGFydGlhbC1sZXQtZnVuYworICAgICAg ICgoZmlsZS1hdHRyaWJ1dGVzCisgICAgICAgICAobGFtYmRhIChmaWxlICZvcHRpb25hbCBf aWQtZm9ybWF0KQorICAgICAgICAgICAobGV0ICgoYXR0cnMgKGVzaGVsbC1wYXJzZS1maWxl LW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAgICAgICAgKGxpc3QgKGVxdWFsIChh bGlzdC1nZXQgJ3R5cGUgYXR0cnMpICJkIikKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnbGlua3MgYXR0cnMpIDEpCisgICAgICAgICAgICAgICAgICAgKG9yIChhbGlz dC1nZXQgJ3VpZCBhdHRycykgMCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFsaXN0LWdl dCAnZ2lkIGF0dHJzKSAwKQorICAgICAgICAgICAgICAgICAgIChvciAoYWxpc3QtZ2V0ICdh dGltZSBhdHRycykgbmlsKQorICAgICAgICAgICAgICAgICAgIChvciAoYWxpc3QtZ2V0ICdt dGltZSBhdHRycykgbmlsKQorICAgICAgICAgICAgICAgICAgIChvciAoYWxpc3QtZ2V0ICdj dGltZSBhdHRycykgbmlsKQorICAgICAgICAgICAgICAgICAgIChvciAoYWxpc3QtZ2V0ICdz aXplIGF0dHJzKSAwKQorICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzLS0tLS0tLS0t IiAob3IgKGFsaXN0LWdldCAndHlwZSBhdHRycykgIi0iKSkKKyAgICAgICAgICAgICAgICAg ICBuaWwgMCAwKSkpKQorICAgICAgICAoZmlsZS1tb2RlcworICAgICAgICAgKGxhbWJkYSAo ZmlsZSBfbm9mb2xsb3cpCisgICAgICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNl LWZpbGUtbmFtZS1hdHRyaWJ1dGVzIGZpbGUpKSkKKyAgICAgICAgICAgICAob3IgKGFsaXN0 LWdldCAnbW9kZXMgYXR0cnMpIDApKSkpCisgICAgICAgIChmaWxlLWV4aXN0cy1wICMnYWx3 YXlzKQorICAgICAgICAoZmlsZS1yZWd1bGFyLXAKKyAgICAgICAgIChsYW1iZGEgKGZpbGUp CisgICAgICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNlLWZpbGUtbmFtZS1hdHRy aWJ1dGVzIGZpbGUpKSkKKyAgICAgICAgICAgICAobWVtYmVyIChvciAoYWxpc3QtZ2V0ICd0 eXBlIGF0dHJzKSAiLSIpICcoIi0iICJsIikpKSkpCisgICAgICAgIChmaWxlLXN5bWxpbmst cAorICAgICAgICAgKGxhbWJkYSAoZmlsZSkKKyAgICAgICAgICAgKGxldCAoKGF0dHJzIChl c2hlbGwtcGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgZmlsZSkpKQorICAgICAgICAgICAg IChlcXVhbCAoYWxpc3QtZ2V0ICd0eXBlIGF0dHJzKSAibCIpKSkpCisgICAgICAgIChmaWxl LWV4ZWN1dGFibGUtcAorICAgICAgICAgKGxhbWJkYSAoZmlsZSkKKyAgICAgICAgICAgKGxl dCAoKGF0dHJzIChlc2hlbGwtcGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgZmlsZSkpKQor ICAgICAgICAgICAgIDs7IEZvciBzaW1wbGljaXR5LCBqdXN0IHJldHVybiB3aGV0aGVyIHRo ZSBmaWxlIGlzCisgICAgICAgICAgICAgOzsgd29ybGQtZXhlY3V0YWJsZS4KKyAgICAgICAg ICAgICAoPSAobG9nYW5kIChvciAoYWxpc3QtZ2V0ICdtb2RlcyBhdHRycykgMCkgMSkgMSkp KSkpCisgICAgICxAYm9keSkpCisKKzs7OyBUZXN0czoKKworDAorOzsgQXJndW1lbnQgcHJl ZGljYXRlcworCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1maWxlLXR5 cGVzICgpCisgICJUZXN0IGZpbGUgdHlwZSBwcmVkaWNhdGVzLiIKKyAgKGVzaGVsbC13aXRo LWZpbGUtYXR0cmlidXRlcy1mcm9tLW5hbWUKKyAgICAobGV0ICgoZmlsZXMgKG1hcGNhciAo bGFtYmRhIChpKSAoZm9ybWF0ICIvZmFrZS90eXBlPSVzIiBpKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAnKCJiIiAiYyIgImQvIiAicCIgInMiICJsIiAiLSIpKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICIlIikKKyAgICAg ICAgICAgICAgICAgICAgICcoIi9mYWtlL3R5cGU9YiIgIi9mYWtlL3R5cGU9YyIpKSkKKyAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIiViIikg JygiL2Zha2UvdHlwZT1iIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiJWMiKSAnKCIvZmFrZS90eXBlPWMiKSkpCisgICAgICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICIvIikgICcoIi9mYWtl L3R5cGU9ZC8iKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzICIuIikgICcoIi9mYWtlL3R5cGU9LSIpKSkKKyAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgInAiKSAgJygiL2Zha2UvdHlwZT1w IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiPSIpICAnKCIvZmFrZS90eXBlPXMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJAIikgICcoIi9mYWtlL3R5cGU9bCIpKSkpKSkK KworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZXhlY3V0YWJsZSAoKQor ICAiVGVzdCB0aGF0IFwiKlwiIG1hdGNoZXMgb25seSByZWd1bGFyLCBub24tc3ltbGluayBl eGVjdXRhYmxlIGZpbGVzLiIKKyAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9t LW5hbWUKKyAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvbW9kZXM9MDc3NyIgIi9mYWtlL21v ZGVzPTA2NjYiCisgICAgICAgICAgICAgICAgICAgIi9mYWtlL3R5cGU9ZCxtb2Rlcz0wNzc3 IiAiL2Zha2UvdHlwZT1sLG1vZGVzPTA3NzciKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICIqIikKKyAgICAgICAgICAgICAgICAgICAg ICcoIi9mYWtlL21vZGVzPTA3NzciKSkpKSkpCisKKyhkZWZtYWNybyBlbS1wcmVkLXRlc3Qt LWZpbGUtbW9kZXMtZGVmdGVzdCAobmFtZSBtb2RlLXRlbXBsYXRlIHByZWRpY2F0ZXMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9u YWwgZG9jc3RyaW5nKQorICAiRGVmaW5lIE5BTUUgYXMgYSBmaWxlLW1vZGUgdGVzdC4KK01P REUtVEVNUExBVEUgaXMgYSBmb3JtYXQgc3RyaW5nIHRvIGNvbnZlcnQgYW4gaW50ZWdlciBm cm9tIDAgdG8KKzcgdG8gYW4gb2N0YWwgZmlsZSBtb2RlLiAgUFJFRElDQVRFUyBpcyBhIGxp c3Qgb2Ygc3RyaW5ncyBmb3IgdGhlCityZWFkLCB3cml0ZSwgYW5kIGV4ZWN1dGUgcHJlZGlj YXRlcyB0byBxdWVyeSB0aGUgZmlsZSdzIG1vZGVzLiIKKyAgKGRlY2xhcmUgKGluZGVudCA0 KSAoZG9jLXN0cmluZyA0KSkKKyAgYChlcnQtZGVmdGVzdCAsbmFtZSAoKQorICAgICAsZG9j c3RyaW5nCisgICAgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisg ICAgICAgKGxldCAoKGZpbGUtdGVtcGxhdGUgKGNvbmNhdCAiL2Zha2UvbW9kZXM9IiAsbW9k ZS10ZW1wbGF0ZSkpKQorICAgICAgICAgKGNsLWZsZXQgKChtYWtlLWZpbGVzIChwZXJtcykK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGkpIChm b3JtYXQgZmlsZS10ZW1wbGF0ZSBpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBlcm1zKSkpCisgICAgICAgICAgIChwY2FzZS1sZXQgKChmaWxlcyAobWFr ZS1maWxlcyAobnVtYmVyLXNlcXVlbmNlIDAgNykpKQorICAgICAgICAgICAgICAgICAgICAg ICAoYCgscmVhZCAsd3JpdGUgLGV4ZWMpICxwcmVkaWNhdGVzKSkKKyAgICAgICAgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIHJlYWQpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZmlsZXMgJyg0IDUgNiA3KSkpKQorICAg ICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMg KGNvbmNhdCAiXiIgcmVhZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2Ut ZmlsZXMgJygwIDEgMiAzKSkpKQorICAgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgd3JpdGUpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1ha2UtZmlsZXMgJygyIDMgNiA3KSkpKQorICAgICAgICAgICAgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgKGNvbmNhdCAiXiIgd3JpdGUp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMCAxIDQgNSkp KSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl IGZpbGVzIGV4ZWMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZmlsZXMg JygxIDMgNSA3KSkpKQorICAgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgKGNvbmNhdCAiXiIgZXhlYykpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG1ha2UtZmlsZXMgJygwIDIgNCA2KSkpKSkpKSkpKQorCisoZW0tcHJl ZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1maWxl LW1vZGVzLW93bmVyCisgICAgIjAlbzAwIiAnKCJyIiAidyIgIngiKQorICAgICJUZXN0IHBy ZWRpY2F0ZXMgZm9yIGZpbGUgcGVybWlzc2lvbnMgZm9yIHRoZSBvd25lci4iKQorCisoZW0t cHJlZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1m aWxlLW1vZGVzLWdyb3VwCisgICAgIjAwJW8wIiAnKCJBIiAiSSIgIkUiKQorICAgICJUZXN0 IHByZWRpY2F0ZXMgZm9yIGZpbGUgcGVybWlzc2lvbnMgZm9yIHRoZSBncm91cC4iKQorCiso ZW0tcHJlZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0 ZS1maWxlLW1vZGVzLXdvcmxkCisgICAgIjAwMCVvIiAnKCJSIiAiVyIgIlgiKQorICAgICJU ZXN0IHByZWRpY2F0ZXMgZm9yIGZpbGUgcGVybWlzc2lvbnMgZm9yIHRoZSB3b3JsZC4iKQor CisoZW0tcHJlZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRp Y2F0ZS1maWxlLW1vZGVzLWZsYWdzCisgICAgIiVvMDAwIiAnKCJzIiAiUyIgInQiKQorICAg ICJUZXN0IHByZWRpY2F0ZXMgZm9yIFwic1wiIChzZXR1aWQpLCBcIlNcIiAoc2V0Z2lkKSwg YW5kIFwidFwiIChzdGlja3kpLiIpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJl ZGljYXRlLWVmZmVjdGl2ZS11aWQgKCkKKyAgIlRlc3QgdGhhdCBcIlVcIiBtYXRjaGVzIGZp bGVzIG93bmVkIGJ5IHRoZSBlZmZlY3RpdmUgVUlELiIKKyAgKGVzaGVsbC13aXRoLWZpbGUt YXR0cmlidXRlcy1mcm9tLW5hbWUKKyAgICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24g J3VzZXItdWlkKSAobGFtYmRhICgpIDEpKSkKKyAgICAgIChsZXQgKChmaWxlcyAnKCIvZmFr ZS91aWQ9MSIgIi9mYWtlL3VpZD0yIikpKQorICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJVIikKKyAgICAgICAgICAgICAgICAgICAgICAg JygiL2Zha2UvdWlkPTEiKSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3By ZWRpY2F0ZS1saW5rcyAoKQorICAiVGVzdCB0aGF0IFwibFwiIGZpbHRlcnMgYnkgbnVtYmVy IG9mIGxpbmtzLiIKKyAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9tLW5hbWUK KyAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvbGlua3M9MSIgIi9mYWtlL2xpbmtzPTIiICIv ZmFrZS9saW5rcz0zIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSBmaWxlcyAibDEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvbGlu a3M9MSIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUg ZmlsZXMgImwrMSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9saW5rcz0yIiAi L2Zha2UvbGlua3M9MyIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgZmlsZXMgImwtMyIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9s aW5rcz0xIiAiL2Zha2UvbGlua3M9MiIpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQt dGVzdC9wcmVkaWNhdGUtdWlkICgpCisgICJUZXN0IHRoYXQgXCJ1XCIgZmlsdGVycyBieSBV SUQvdXNlciBuYW1lLiIKKyAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9tLW5h bWUKKyAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvdWlkPTEiICIvZmFrZS91aWQ9MiIpKQor ICAgICAgICAgICh1c2VyLW5hbWVzICcoInJvb3QiICJvbmUiICJ0d28iKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJ1MSIpCisgICAg ICAgICAgICAgICAgICAgICAnKCIvZmFrZS91aWQ9MSIpKSkKKyAgICAgIChjbC1sZXRmICgo KHN5bWJvbC1mdW5jdGlvbiAnZXNoZWxsLXVzZXItaWQpCisgICAgICAgICAgICAgICAgIChs YW1iZGEgKG5hbWUpIChzZXEtcG9zaXRpb24gdXNlci1uYW1lcyBuYW1lKSkpKQorICAgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJ1J29uZSci KQorICAgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS91aWQ9MSIpKSkKKyAgICAgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAidXtvbmV9IikK KyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdWlkPTEiKSkpKSkpKQorCisoZXJ0 LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1naWQgKCkKKyAgIlRlc3QgdGhhdCBc ImdcIiBmaWx0ZXJzIGJ5IEdJRC9ncm91cCBuYW1lLiIKKyAgKGVzaGVsbC13aXRoLWZpbGUt YXR0cmlidXRlcy1mcm9tLW5hbWUKKyAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvZ2lkPTEi ICIvZmFrZS9naWQ9MiIpKQorICAgICAgICAgIChncm91cC1uYW1lcyAnKCJyb290IiAib25l IiAidHdvIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSBmaWxlcyAiZzEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvZ2lkPTEiKSkp CisgICAgICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2VzaGVsbC1ncm91cC1pZCkK KyAgICAgICAgICAgICAgICAgKGxhbWJkYSAobmFtZSkgKHNlcS1wb3NpdGlvbiBncm91cC1u YW1lcyBuYW1lKSkpKQorICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJnJ29uZSciKQorICAgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS9naWQ9MSIpKSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAiZ3tvbmV9IikKKyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uv Z2lkPTEiKSkpKSkpKQorCisoZGVmbWFjcm8gZW0tcHJlZC10ZXN0LS10aW1lLWRlZnRlc3Qg KG5hbWUgZmlsZS1hdHRyaWJ1dGUgcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJm9wdGlvbmFsIGRvY3N0cmluZykKKyAgIkRlZmluZSBO QU1FIGFzIGEgZmlsZS10aW1lIHRlc3QuCitGSUxFLUFUVFJJQlVURSBpcyB0aGUgZmlsZSdz IGF0dHJpYnV0ZSB0byBzZXQgKGUuZy4gXCJhdGltZVwiKS4KK1BSRURJQ0FURSBpcyB0aGUg cHJlZGljYXRlIHVzZWQgdG8gcXVlcnkgdGhhdCBhdHRyaWJ1dGUuIgorICAoZGVjbGFyZSAo aW5kZW50IDQpIChkb2Mtc3RyaW5nIDQpKQorICBgKGVydC1kZWZ0ZXN0ICxuYW1lICgpCisg ICAgICxkb2NzdHJpbmcKKyAgICAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9t LW5hbWUKKyAgICAgICAoY2wtZmxldCAoKG1ha2UtZmlsZSAodGltZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZm9ybWF0ICIvZmFrZS8lcz0lZCIgLGZpbGUtYXR0cmlidXRl IHRpbWUpKSkKKyAgICAgICAgIChsZXQqICgobm93ICh0aW1lLWNvbnZlcnQgbmlsICdpbnRl Z2VyKSkKKyAgICAgICAgICAgICAgICAoeWVzdGVyZGF5ICgtIG5vdyA4NjQwMCkpCisgICAg ICAgICAgICAgICAgKGZpbGVzIChtYXBjYXIgIydtYWtlLWZpbGUgKGxpc3Qgbm93IHllc3Rl cmRheSkpKSkKKyAgICAgICAgICAgOzsgVGVzdCBjb21wYXJpc29uIGFnYWluc3QgYSBudW1i ZXIgb2YgZGF5cy4KKyAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgKGNvbmNhdCAscHJl ZGljYXRlICItMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnbWFr ZS1maWxlIChsaXN0IG5vdykpKSkKKyAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgKGNv bmNhdCAscHJlZGljYXRlICIrMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFw Y2FyICMnbWFrZS1maWxlIChsaXN0IHllc3RlcmRheSkpKSkKKyAgICAgICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsZXMgKGNvbmNhdCAscHJlZGljYXRlICIrMiIpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICBuaWwpKQorICAgICAgICAgICA7OyBUZXN0IGNvbXBhcmlzb24gYWdhaW5z dCBhIG51bWJlciBvZiBob3Vycy4KKyAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgKGNv bmNhdCAscHJlZGljYXRlICJoLTEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h cGNhciAjJ21ha2UtZmlsZSAobGlzdCBub3cpKSkpCisgICAgICAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiaCsxIikpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXBjYXIgIydtYWtlLWZpbGUgKGxpc3QgeWVzdGVyZGF5KSkpKQorICAgICAg ICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBmaWxlcyAoY29uY2F0ICxwcmVkaWNhdGUgIis0OCIpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICBuaWwpKQorICAgICAgICAgICA7OyBUZXN0IGNvbXBh cmlzb24gYWdhaW5zdCBhbm90aGVyIGZpbGUuCisgICAgICAgICAgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp bGVzIChmb3JtYXQgIiVzLSclcyciICxwcmVkaWNhdGUgKG1ha2UtZmlsZSBub3cpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgbmlsKSkKKyAgICAgICAgICAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmlsZXMgKGZvcm1hdCAiJXMrJyVzJyIgLHByZWRpY2F0ZSAobWFrZS1maWxlIG5vdykpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnbWFrZS1maWxlIChsaXN0IHll c3RlcmRheSkpKSkpKSkpKQorCisoZW0tcHJlZC10ZXN0LS10aW1lLWRlZnRlc3QgZW0tcHJl ZC10ZXN0L3ByZWRpY2F0ZS1hY2Nlc3MtdGltZQorICAgICJhdGltZSIgImEiCisgICAgIlRl c3QgdGhhdCBcImFcIiBmaWx0ZXJzIGJ5IGFjY2VzcyB0aW1lLiIpCisKKyhlbS1wcmVkLXRl c3QtLXRpbWUtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLW1vZGlmaWNhdGlvbi10 aW1lCisgICAgIm10aW1lIiAibSIKKyAgICAiVGVzdCB0aGF0IFwibVwiIGZpbHRlcnMgYnkg Y2hhbmdlIHRpbWUuIikKKworKGVtLXByZWQtdGVzdC0tdGltZS1kZWZ0ZXN0IGVtLXByZWQt dGVzdC9wcmVkaWNhdGUtY2hhbmdlLXRpbWUKKyAgICAiY3RpbWUiICJjIgorICAgICJUZXN0 IHRoYXQgXCJjXCIgZmlsdGVycyBieSBjaGFuZ2UgdGltZS4iKQorCisoZXJ0LWRlZnRlc3Qg ZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1zaXplICgpCisgICJUZXN0IHRoYXQgXCJMXCIgZmls dGVycyBieSBmaWxlIHNpemUuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZy b20tbmFtZQorICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS9zaXplPTAiCisgICAgICAgICAg ICAgICAgICAgOzsgMSBhbmQgMiBLaUIuCisgICAgICAgICAgICAgICAgICAgIi9mYWtlL3Np emU9MTAyNCIgIi9mYWtlL3NpemU9MjA0OCIKKyAgICAgICAgICAgICAgICAgICA7OyAxIGFu ZCAyIE1pQi4KKyAgICAgICAgICAgICAgICAgICAiL2Zha2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zh a2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgOzsgU2l6ZSBpbiBieXRlcy4KKyAgICAgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkwyMDQ4IikKKyAg ICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MjA0OCIpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkwrMjA0OCIpCisgICAg ICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTEwNDg1NzYiICIvZmFrZS9zaXplPTIw OTcxNTIiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl IGZpbGVzICJMLTIwNDgiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0w IiAiL2Zha2Uvc2l6ZT0xMDI0IikpKQorICAgICAgOzsgU2l6ZSBpbiBibG9ja3MuCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMcDQiKQor ICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0yMDQ4IikpKQorICAgICAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTHArNCIpCisgICAg ICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTEwNDg1NzYiICIvZmFrZS9zaXplPTIw OTcxNTIiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl IGZpbGVzICJMcC00IikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MCIg Ii9mYWtlL3NpemU9MTAyNCIpKSkKKyAgICAgIDs7IFNpemUgaW4gS2lCLgorICAgICAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTGsyIikKKyAgICAg ICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MjA0OCIpKSkKKyAgICAgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxrKzIiKQorICAgICAgICAg ICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zha2Uvc2l6ZT0yMDk3MTUy IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiTGstMiIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTAiICIvZmFr ZS9zaXplPTEwMjQiKSkpCisgICAgICA7OyBTaXplIGluIE1pQi4KKyAgICAgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxNMSIpCisgICAgICAgICAg ICAgICAgICAgICAnKCIvZmFrZS9zaXplPTEwNDg1NzYiKSkpCisgICAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMTSsxIikKKyAgICAgICAgICAg ICAgICAgICAgICcoIi9mYWtlL3NpemU9MjA5NzE1MiIpKSkKKyAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxNLTEiKQorICAgICAgICAgICAg ICAgICAgICAgJygiL2Zha2Uvc2l6ZT0wIiAiL2Zha2Uvc2l6ZT0xMDI0IiAiL2Zha2Uvc2l6 ZT0yMDQ4IikpKSkpKQorCisMCis7OyBBcmd1bWVudCBtb2RpZmllcnMKKworKGVydC1kZWZ0 ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1ldmFsICgpCisgICJUZXN0IHRoYXQgXCI6RVwi IHJlLWV2YWx1YXRlcyB0aGUgdmFsdWUuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2 YWwtcHJlZGljYXRlICIke2VjaG8gaGl9IiAiOkUiKSAiaGkiKSkKKyAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgJygiJHtlY2hv IGhpfSIgIiQodXBjYXNlIFwiYnllXCIpIikgIjpFIikKKyAgICAgICAgICAgICAgICAgJygi aGkiICJCWUUiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLWRv d25jYXNlICgpCisgICJUZXN0IHRoYXQgXCI6TFwiIGRvd25jYXNlcyB2YWx1ZXMuIgorICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJGT08iICI6TCIpICJmb28i KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJGT08iICJC QVIiKSAiOkwiKQorICAgICAgICAgICAgICAgICAnKCJmb28iICJiYXIiKSkpKQorCisoZXJ0 LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXVwY2FzZSAoKQorICAiVGVzdCB0aGF0 IFwiOlVcIiB1cGNhc2VzIHZhbHVlcy4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgImZvbyIgIjpVIikgIkZPTyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIpICI6VSIpCisgICAgICAgICAgICAg ICAgICcoIkZPTyIgIkJBUiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9k aWZpZXItY2FwaXRhbGl6ZSAoKQorICAiVGVzdCB0aGF0IFwiOkNcIiBjYXBpdGFsaXplcyB2 YWx1ZXMuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28g YmFyIiAiOkMiKSAiRm9vIEJhciIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlICcoImZvbyBiYXIiICJiYXoiKSAiOkMiKQorICAgICAgICAgICAgICAgICAn KCJGb28gQmFyIiAiQmF6IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2Rp Zmllci1kaXJuYW1lICgpCisgICJUZXN0IHRoYXQgXCI6aFwiIHJldHVybnMgdGhlIGRpcm5h bWUuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICIvcGF0aC90 by9maWxlLmVsIiAiOmgiKSAiL3BhdGgvdG8vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUu ZWwiICIvb3RoZXIvcGF0aC8iKSAiOmgiKQorICAgICAgICAgICAgICAgICAnKCIvcGF0aC90 by8iICIvb3RoZXIvcGF0aC8iKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLWJhc2VuYW1lICgpCisgICJUZXN0IHRoYXQgXCI6dFwiIHJldHVybnMgdGhlIGJh c2VuYW1lLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiL3Bh dGgvdG8vZmlsZS5lbCIgIjp0IikgImZpbGUuZWwiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgJygiL3BhdGgvdG8vZmls ZS5lbCIgIi9vdGhlci9wYXRoLyIpICI6dCIpCisgICAgICAgICAgICAgICAgICcoImZpbGUu ZWwiICIiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLWV4dGVu c2lvbiAoKQorICAiVGVzdCB0aGF0IFwiOmVcIiByZXR1cm5zIHRoZSBleHRlbnNpb24uIgor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICIvcGF0aC90by9maWxl LmVsIiAiOmUiKSAiZWwiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZQorICAgICAgICAgICAgICAgICAgJygiL3BhdGgvdG8vZmlsZS5lbCIgIi9vdGhlci9w YXRoLyIpICI6ZSIpCisgICAgICAgICAgICAgICAgICcoImVsIiBuaWwpKSkpCisKKyhlcnQt ZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItc2Fucy1leHRlbnNpb24gKCkKKyAgIlRl c3QgdGhhdCBcIjpyXCIgcmV0dXJucyB0aGUgZmlsZSBuYW1lIHNhbiBleHRlbnNpb24uIgor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICIvcGF0aC90by9maWxl LmVsIiAiOnIiKQorICAgICAgICAgICAgICAgICAiL3BhdGgvdG8vZmlsZSIpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAn KCIvcGF0aC90by9maWxlLmVsIiAiL290aGVyL3BhdGgvIikgIjpyIikKKyAgICAgICAgICAg ICAgICAgJygiL3BhdGgvdG8vZmlsZSIgIi9vdGhlci9wYXRoLyIpKSkpCisKKyhlcnQtZGVm dGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItcXVvdGUgKCkKKyAgIlRlc3QgdGhhdCBcIjpx XCIgcXVvdGVzIGFyZ3VtZW50cy4iCisgIChzaG91bGQgKGVxdWFsLWluY2x1ZGluZy1wcm9w ZXJ0aWVzCisgICAgICAgICAgIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFy IikgIjpxIikKKyAgICAgICAgICAgKGxpc3QgKGVzaGVsbC1lc2NhcGUtYXJnICJmb28iKSAo ZXNoZWxsLWVzY2FwZS1hcmcgImJhciIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10 ZXN0L21vZGlmaWVyLXN1YnN0aXR1dGUgKCkKKyAgIlRlc3QgdGhhdCBcIjpzL1BBVC9SRVAv XCIgcmVwbGFjZXMgUEFUIHdpdGggUkVQIG9uY2UuIgorICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlICJiYXIiICI6cy9hLyovIikgImIqciIpKQorICAoc2hvdWxk IChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJiYXIiICI6c3xhfCp8IikgImIqciIp KQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJh ciIgImJheiIpICI6cy9bYW9dLyovIikKKyAgICAgICAgICAgICAgICAgICcoImYqbyIgImIq ciIgImIqeiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAn KCJmb28iICJiYXIiICJiYXoiKSAiOnN8W2FvXXwqfCIpCisgICAgICAgICAgICAgICAgICAn KCJmKm8iICJiKnIiICJiKnoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLWdsb2JhbC1zdWJzdGl0dXRlICgpCisgICJUZXN0IHRoYXQgXCI6cy9QQVQvUkVQ L1wiIHJlcGxhY2VzIFBBVCB3aXRoIFJFUCBmb3IgYWxsIG9jY3VycmVuY2VzLiIKKyAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmdzL2EvKi8iKSAi Zm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIg Ijpnc3xhfCp8IikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlICJiYXIiICI6Z3MvYS8qLyIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOmdzfGF8KnwiKSAiYipyIikpCisgIChzaG91 bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6Iikg Ijpncy9bYWVpb3VdLyovIikKKyAgICAgICAgICAgICAgICAgJygiZioqIiAiYipyIiAiYip6 IikpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIg ImJhciIgImJheiIpICI6Z3N8W2FlaW91XXwqfCIpCisgICAgICAgICAgICAgICAgICcoImYq KiIgImIqciIgImIqeiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZp ZXItaW5jbHVkZSAoKQorICAiVGVzdCB0aGF0IFwiOmkvUEFUL1wiIGZpbHRlcnMgZWxlbWVu dHMgdG8gaW5jbHVkZSBvbmx5IG9uZXMgbWF0Y2hpbmcgUEFULiIKKyAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmkvYS8iKSBuaWwpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6aXxhfCIpIG5pbCkp CisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjppL2Ev IikgImJhciIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJi YXIiICI6aXxhfCIpICJiYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOmkvYS8iKQorICAgICAgICAgICAgICAg ICAnKCJiYXIiICJiYXoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjppfGF8IikKKyAgICAgICAgICAgICAgICAg JygiYmFyIiAiYmF6IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmll ci1leGNsdWRlICgpCisgICJUZXN0IHRoYXQgXCI6eC9QQVQvXCIgZmlsdGVycyBlbGVtZW50 cyB0byBleGNsdWRlIGFueSBtYXRjaGluZyBQQVQuIgorICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6eC9hLyIpICJmb28iKSkKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOnh8YXwiKSAiZm9vIikpCisg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjp4L2EvIikg bmlsKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAi Onh8YXwiKSBuaWwpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICcoImZvbyIgImJhciIgImJheiIpICI6eC9hLyIpCisgICAgICAgICAgICAgICAgICcoImZv byIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28i ICJiYXIiICJiYXoiKSAiOnh8YXwiKQorICAgICAgICAgICAgICAgICAnKCJmb28iKSkpKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNwbGl0ICgpCisgICJUZXN0 IHRoYXQgXCI6U1wiIGFuZCBcIjpTL1BBVC9cIiBzcGxpdCBlbGVtZW50cyBieSBzcGFjZXMg KG9yIFBBVCkuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJm b28gYmFyIGJheiIgIjpTIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6 IikpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyBi YXIiICJiYXoiKSAiOlMiKQorICAgICAgICAgICAgICAgICAnKCgiZm9vIiAiYmFyIikgKCJi YXoiKSkpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28t YmFyLWJheiIgIjpTLy0vIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6 IikpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvby1i YXIiICJiYXoiKSAiOlMvLS8iKQorICAgICAgICAgICAgICAgICAnKCgiZm9vIiAiYmFyIikg KCJiYXoiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1qb2lu ICgpCisgICJUZXN0IHRoYXQgXCI6alwiIGFuZCBcIjpqL0RFTElNL1wiIGpvaW4gZWxlbWVu dHMgYnkgc3BhY2VzIChvciBERUxJTSkuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2 YWwtcHJlZGljYXRlICJmb28iICI6aiIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOmoiKQorICAgICAg ICAgICAgICAgICAiZm9vIGJhciBiYXoiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAiZm9vIiAiOmovLS8iKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpqLy0vIikK KyAgICAgICAgICAgICAgICAgImZvby1iYXItYmF6IikpKQorCisoZXJ0LWRlZnRlc3QgZW0t cHJlZC10ZXN0L21vZGlmaWVyLXNvcnQgKCkKKyAgIlRlc3QgdGhhdCBcIjpvXCIgc29ydHMg ZWxlbWVudHMgaW4gbGV4aWNvZ3JhcGhpYyBvcmRlci4iCisgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpvIikgImZvbyIpKQorICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6byIp CisgICAgICAgICAgICAgICAgICcoImJhciIgImJheiIgImZvbyIpKSkpCisKKyhlcnQtZGVm dGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItc29ydC1yZXZlcnNlICgpCisgICJUZXN0IHRo YXQgXCI6b1wiIHNvcnRzIGVsZW1lbnRzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpYyBvcmRl ci4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpP IikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICco ImZvbyIgImJhciIgImJheiIpICI6TyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIgImJh eiIgImJhciIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItdW5p cXVlICgpCisgICJUZXN0IHRoYXQgXCI6dVwiIGZpbHRlcnMgb3V0IGR1cGxpY2F0ZSBlbGVt ZW50cy4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIg Ijp1IikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICcoImZvbyIgImJhciIgImJheiIpICI6dSIpCisgICAgICAgICAgICAgICAgICcoImZvbyIg ImJhciIgImJheiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAnKCJmb28iICJiYXIiICJiYXoiICJmb28iKSAiOnUiKQorICAgICAgICAgICAgICAgICAn KCJmb28iICJiYXIiICJiYXoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLXJldmVyc2UgKCkKKyAgIlRlc3QgdGhhdCBcIjpyXCIgcmV2ZXJzZXMgdGhlIG9y ZGVyIG9mIGVsZW1lbnRzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSAiZm9vIiAiOlIiKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpSIikKKyAgICAgICAgICAgICAg ICAgJygiYmF6IiAiYmFyIiAiZm9vIikpKSkKKworDAorOzsgQ29tYmluYXRpb25zCisKKyhl cnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvY29tYmluZS1wcmVkaWNhdGUtYW5kLW1vZGlmaWVy ICgpCisgICJUZXN0IGNvbWJpbmF0aW9uIG9mIHByZWRpY2F0ZXMgYW5kIG1vZGlmaWVycy4i CisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAo KGZpbGVzICcoIi9mYWtlL3R5cGU9LS5lbCIgIi9mYWtlL3R5cGU9LS50eHQiICIvZmFrZS90 eXBlPXMuZWwiCisgICAgICAgICAgICAgICAgICAgIi9mYWtlL3N1YmRpci90eXBlPS0uZWwi KSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVz ICIuOmU6dSIpCisgICAgICAgICAgICAgICAgICAgICAnKCJlbCIgInR4dCIpKSkpKSkKKwor OzsgZW0tcHJlZC10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------559C535580D1C2D9E324EADE Content-Type: text/plain; charset=UTF-8; name="0003-Add-G-argument-predicate-in-Eshell.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-G-argument-predicate-in-Eshell.patch" RnJvbSA0MDlkZDhlNTFhNTQ1ZmZiMWUyNGQzOGU0MDg1YTk2ZGU1MmE3NGZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTc6NTI6NTUgLTA3MDAKU3ViamVjdDogW1BB VENIIDMvM10gQWRkICdHJyBhcmd1bWVudCBwcmVkaWNhdGUgaW4gRXNoZWxsCgoqIGxpc3Av ZXNoZWxsL2VtLXByZWQuZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBBZGQgJ0cnIHBy ZWRpY2F0ZS4KKGVzaGVsbC1wcmVkaWNhdGUtaGVscC1zdHJpbmcpOiBEb2N1bWVudCBpdC4K CiogdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVsCihlbS1wcmVkLXRlc3QvcHJl ZGljYXRlLWVmZmVjdGl2ZS1naWQpOiBOZXcgdGVzdC4KCiogZG9jL21pc2MvZXNoZWxsLnRl eHQgKEFyZ3VtZW50IFByZWRpY2F0aW9uKTogRG9jdW1lbnQgJ0cnIHByZWRpY2F0ZS4KLS0t CiBkb2MvbWlzYy9lc2hlbGwudGV4aSAgICAgICAgICAgICAgfCAzICsrKwogbGlzcC9lc2hl bGwvZW0tcHJlZC5lbCAgICAgICAgICAgIHwgOSArKysrKy0tLS0KIHRlc3QvbGlzcC9lc2hl bGwvZW0tcHJlZC10ZXN0cy5lbCB8IDggKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9l c2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCmluZGV4IDJiNDlkZGIwM2MuLjg5 ZjViOTUzZjUgMTAwNjQ0Ci0tLSBhL2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9t aXNjL2VzaGVsbC50ZXhpCkBAIC0xMjY2LDYgKzEyNjYsOSBAQCBBcmd1bWVudCBQcmVkaWNh dGVzCiBAaXRlbSBAY29kZXtVfQogTWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0aGUgY3VycmVu dCBlZmZlY3RpdmUgdXNlciBJRC4KIAorQGl0ZW0gQGNvZGV7R30KK01hdGNoZXMgZmlsZXMg b3duZWQgYnkgdGhlIGN1cnJlbnQgZWZmZWN0aXZlIGdyb3VwIElELgorCiBAaXRlbSBAY29k ZXtsQG9wdGlvbntbKy1dfUB2YXJ7bn19CiBNYXRjaGVzIGZpbGVzIHdpdGggQHZhcntufSBs aW5rcy4gIFdpdGggQG9wdGlvbnsrfSAob3IgQG9wdGlvbnstfSksCiBtYXRjaGVzIGZpbGVz IHdpdGggbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pIEB2YXJ7bn0gbGlua3MsCmRpZmYgLS1n aXQgYS9saXNwL2VzaGVsbC9lbS1wcmVkLmVsIGIvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbApp bmRleCBlNzVkYTkxY2Y2Li44ZDI2YjI5MGQyIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9l bS1wcmVkLmVsCisrKyBiL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwKQEAgLTg4LDEwICs4OCwx MCBAQCBlc2hlbGwtcHJlZGljYXRlLWFsaXN0CiAgICAgICAgICAgICAoaWYgKGZpbGUtZXhp c3RzLXAgZmlsZSkKICAgICAgICAgICAgICAgICAoPSAoZmlsZS1hdHRyaWJ1dGUtdXNlci1p ZCAoZmlsZS1hdHRyaWJ1dGVzIGZpbGUpKQogICAgICAgICAgICAgICAgICAgICh1c2VyLXVp ZCkpKSkpCi0gICAgOzsgKD9HIC4gKGxhbWJkYSAoZmlsZSkgICAgICAgICAgICAgICA7IG93 bmVkIGJ5IGVmZmVjdGl2ZSBnaWQKLSAgICA7OyAgICAgICAgIChpZiAoZmlsZS1leGlzdHMt cCBmaWxlKQotICAgIDs7ICAgICAgICAgICAgICg9IChmaWxlLWF0dHJpYnV0ZS11c2VyLWlk IChmaWxlLWF0dHJpYnV0ZXMgZmlsZSkpCi0gICAgOzsgICAgICAgICAgICAgICAgKHVzZXIt dWlkKSkpKSkKKyAgICAoP0cgLiAobGFtYmRhIChmaWxlKSAgICAgICAgICAgICAgIDsgb3du ZWQgYnkgZWZmZWN0aXZlIGdpZAorICAgICAgICAgICAgKGlmIChmaWxlLWV4aXN0cy1wIGZp bGUpCisgICAgICAgICAgICAgICAgKD0gKGZpbGUtYXR0cmlidXRlLWdyb3VwLWlkIChmaWxl LWF0dHJpYnV0ZXMgZmlsZSkpCisgICAgICAgICAgICAgICAgICAgKGdyb3VwLWdpZCkpKSkp CiAgICAgKD8qIC4gKGxhbWJkYSAoZmlsZSkKICAgICAgICAgICAgIChhbmQgKGZpbGUtcmVn dWxhci1wIGZpbGUpCiAgICAgICAgICAgICAgICAgIChub3QgKGZpbGUtc3ltbGluay1wIGZp bGUpKQpAQCAtMTYxLDYgKzE2MSw3IEBAIGVzaGVsbC1wcmVkaWNhdGUtaGVscC1zdHJpbmcK IAogT1dORVJTSElQOgogICBVICAgICAgICAgICAgICAgb3duZWQgYnkgZWZmZWN0aXZlIHVp ZAorICBHICAgICAgICAgICAgICAgb3duZWQgYnkgZWZmZWN0aXZlIGdpZAogICB1KFVJRHxc XD0ndXNlclxcPScpICAgb3duZWQgYnkgVUlEL3VzZXIKICAgZyhHSUR8XFw9J2dyb3VwXFw9 JykgIG93bmVkIGJ5IEdJRC9ncm91cAogCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxs L2VtLXByZWQtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwK aW5kZXggZjc0NmFhM2RhOC4uOWM0ZTk3NWRkMCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2Vz aGVsbC9lbS1wcmVkLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10 ZXN0cy5lbApAQCAtMjI1LDYgKzIyNSwxNCBAQCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWVm ZmVjdGl2ZS11aWQKICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAiVSIpCiAgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0x IikpKSkpKSkKIAorKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZWZmZWN0 aXZlLWdpZCAoKQorICAiVGVzdCB0aGF0IFwiR1wiIG1hdGNoZXMgZmlsZXMgb3duZWQgYnkg dGhlIGVmZmVjdGl2ZSBHSUQuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZy b20tbmFtZQorICAgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnZ3JvdXAtZ2lkKSAo bGFtYmRhICgpIDEpKSkKKyAgICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS9naWQ9MSIgIi9m YWtlL2dpZD0yIikpKQorICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJHIikKKyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvZ2lk PTEiKSkpKSkpKQorCiAoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1saW5r cyAoKQogICAiVGVzdCB0aGF0IFwibFwiIGZpbHRlcnMgYnkgbnVtYmVyIG9mIGxpbmtzLiIK ICAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9tLW5hbWUKLS0gCjIuMjUuMQoK --------------559C535580D1C2D9E324EADE-- From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Mar 2022 02:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.164843459112201 (code B ref 54470); Mon, 28 Mar 2022 02:30:02 +0000 Received: (at 54470) by debbugs.gnu.org; 28 Mar 2022 02:29:51 +0000 Received: from localhost ([127.0.0.1]:56890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nYf8h-0003Ai-5I for submit@debbugs.gnu.org; Sun, 27 Mar 2022 22:29:51 -0400 Received: from mail-pj1-f52.google.com ([209.85.216.52]:32851) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nYf8f-0003AV-NG for 54470@debbugs.gnu.org; Sun, 27 Mar 2022 22:29:50 -0400 Received: by mail-pj1-f52.google.com with SMTP id mp11-20020a17090b190b00b001c79aa8fac4so7644764pjb.0 for <54470@debbugs.gnu.org>; Sun, 27 Mar 2022 19:29:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:cc:references:message-id:date:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=dR9nfTJBXaz8awixgMUrE4P63+fg0zgeo5h9wyB3f6c=; b=MrIHx9321fKMdVRSzVmoNvP9mC5+37FrJj3tPXd3DyhiQDFwS+bFLv7knL5ORr6pjF iB/R2Re6c7EJ2HgvP2iZ4IEPzc3YJqETP92jFZ4IRiIX2b1jLywLdCbuoTl3dwDSHdk8 qs3myV29yaymli3YyhjiZ7swdcPGg3DrmOHM7rgtmuIWA8q0x0i5bMhXkMVxp+JIeueU u7+s+N6UVnO6LtQPEOLAhOijfZG9FycSUErD0xE0yPd2sIocNWAx//7ru5jFMDrel6Su wK5J74+grAr47wQ1niFUsV8jq4voNaRJ1l9CdwtDuOLK/fz0aFN/6Jgj3wOAiBNfVgcw NQUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=dR9nfTJBXaz8awixgMUrE4P63+fg0zgeo5h9wyB3f6c=; b=sj3NL8oQj1qUSs8AxQ2qwaeB1KlmKL2ADm8z46ElCcCH40dwBClDVAVfB4CW0GFz1z xWbUBt9LnK7mjhX0O/IAAF5pZ8xcsJbZRY8WXneH1jE8OUT2iW7TO6VHs3vp0qN3P744 cuQPuEktVpLJVsUThCIWswnnNACjHeuriPvbVo81xH0ZN8NlbwM4akqzofJ+wpy9pmGh BhX9rlulsxX5TSl5qUStUHLdJ2ajJ1KjB1++woKDJt099UBP2APSM2YyAl8TAjmcmKp1 zr6udodO23bisGjGSG7zVYpidAqSUd7jcY6Y2p+8KJDfTDcy01nJqi9X5I9wylzaWtAF g/KQ== X-Gm-Message-State: AOAM531pjXog7HoPwSBUemBLz4sFDzeJiLHsYUSJvqQWqKY/rlphLnoK tCLkz9oqtnd2q9fpCZSllCLFNzh41K4= X-Google-Smtp-Source: ABdhPJxZp589oJw0clA3+JnbFf80qNXPdMSCBM8HEXRMxTFzxMhpN14T0OyKwgRS/nA4npA7CIqo7w== X-Received: by 2002:a17:902:d2cd:b0:154:38c5:f91d with SMTP id n13-20020a170902d2cd00b0015438c5f91dmr24313282plc.59.1648434583834; Sun, 27 Mar 2022 19:29:43 -0700 (PDT) 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 h12-20020a056a00230c00b004faf2563bcasm12706370pfh.114.2022.03.27.19.29.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 27 Mar 2022 19:29:43 -0700 (PDT) From: Jim Porter References: <83bky1f6jk.fsf@gnu.org> Message-ID: <271c20ca-b226-d29a-b54c-7d7be0ee5a1e@gmail.com> Date: Sun, 27 Mar 2022 19:29:43 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 3/20/2022 1:57 PM, Jim Porter wrote: > On 3/20/2022 12:05 AM, Eli Zaretskii wrote: >> The use of quotes 'like this', here and elsewhere in a similar >> context, begs the question: how to specify names that have embedded >> single-quote characters in them? > > "Very carefully." :) > > Seriously though, this is an area I don't fully understand yet, but in > which I've found several bugs (or at least I think they're bugs). As > such, I intentionally avoided documenting this since it's pretty > confusing. I narrowed down one of the bugs I mentioned here (and fixed it): bug#54603. There are still a few other issues with quoting/escaping in argument predicates/modifiers. I can work on fixing these in a separate bug, or update my patches in this bug if you prefer. I lean very slightly towards the former, since the quoting/escaping logic could use some changes to be more consistent. That seems different enough from this bug that I think it'd be simpler to separate them. That said, if you'd prefer I do this all in this bug, that's ok too. From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Mar 2022 04:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.16486156678490 (code B ref 54470); Wed, 30 Mar 2022 04:48:02 +0000 Received: (at 54470) by debbugs.gnu.org; 30 Mar 2022 04:47:47 +0000 Received: from localhost ([127.0.0.1]:34192 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZQFD-0002CY-M5 for submit@debbugs.gnu.org; Wed, 30 Mar 2022 00:47:47 -0400 Received: from mail-pl1-f175.google.com ([209.85.214.175]:47073) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZQF9-0002BZ-Rh for 54470@debbugs.gnu.org; Wed, 30 Mar 2022 00:47:42 -0400 Received: by mail-pl1-f175.google.com with SMTP id a16so2559936plh.13 for <54470@debbugs.gnu.org>; Tue, 29 Mar 2022 21:47:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:cc:references:message-id:date:mime-version :in-reply-to:content-language; bh=w20liqHqSbi5Pmgsa0vPXjLnPOZqgmwtxz+yazg9nSY=; b=RevWJyaVF6DgI2Q6GsWOrELbkDypwXB3XgDlhIOjsUe8v0bLgrQ6Yaz0A/OshZHVyA ZVBIn6V4I8n8yIgs/jBywePlayR5hGlyLk5XLu1wQvBpPf93snr80n8oETdA+UZZJ2YK aI+p/YZI7SmruZVFjoQxGQzhT4rQqQLxCwXDaNLQLaCqDJavHVYYIDH4UBoOICmAVTnb WK1yurnDVp1o4rRWZ/8sIPUh9/wIJJkUWRzWJvbaPyzpkqfxlCeoAcS4ekc+/77nlkDw 28Sp/2a3cK3SA73L5YYSPHV+HIfLWVLhzwJ41gl4AH6XjOQslmo91feVr3ZFQ5LmBt1y 6+HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :mime-version:in-reply-to:content-language; bh=w20liqHqSbi5Pmgsa0vPXjLnPOZqgmwtxz+yazg9nSY=; b=n+NMBxxhWw5I8OpDkUIUp+iPSod7FIwWM3fpz0zTsiAmi59EwAyWmt7i9fcO891VcA ieTW0I85O6hrg4w1pSE5TWu+/ZPJ/WYwHM3hKJ7W0SoHLNXZfyjnTUs4ZgdLAwx+o1jH VrQe7CmMmRM0Bw++mVE+6vc/XKU8tGgRkcs0T6XFhX/nuW93yFnNOjo8NE7oxFauiz+z 5Ceh7EMTFfW48yOFE2ikrE02yyDILIvnTR2uGWjOgYJwPwKv0+mNl7Isy6MB13jbZV3C feAyq7qMmxfS2CbP0eOrrZud5EvSSa2xkfy91FLa8I1UXOe9dB6gauyF+VZI0/ybEaB4 vMmg== X-Gm-Message-State: AOAM530XD0BSctHLd9nH1mEq/k4TNforLeIqYBvtF4a3JRGSnlumPZIb hOU9DGoOs+NVCbokhZmxnZYIiMTeOmQ= X-Google-Smtp-Source: ABdhPJxZ87aqhcdRn7O1eXO2hfuagkzpT49ZwWIlBmfJaPY7jyHQPtAEf7qZ2lI0DkY6Z7TSIeyfWQ== X-Received: by 2002:a17:902:ecca:b0:154:5393:aa81 with SMTP id a10-20020a170902ecca00b001545393aa81mr33501719plh.148.1648615653769; Tue, 29 Mar 2022 21:47:33 -0700 (PDT) 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 a11-20020a63cd4b000000b00378b9167493sm17797572pgj.52.2022.03.29.21.47.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 29 Mar 2022 21:47:33 -0700 (PDT) From: Jim Porter References: <83bky1f6jk.fsf@gnu.org> Message-ID: Date: Tue, 29 Mar 2022 21:47:31 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------218631157F856742B919BFA3" Content-Language: en-US X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------218631157F856742B919BFA3 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 3/20/2022 1:57 PM, Jim Porter wrote: > On 3/20/2022 12:05 AM, Eli Zaretskii wrote: >> Thank you for working on this.  See some minor comments below. I found an additional bug in the global substitution modifier which could cause an infinite loop in some cases, e.g. with "(:gs/a/a/)". The regexp search wouldn't advance to the next character correctly and could get stuck. I've fixed this by using `replace-regexp-in-string' instead. --------------218631157F856742B919BFA3 Content-Type: text/plain; charset=UTF-8; name="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.pa"; filename*1="tch" RnJvbSBmZTJkZGE5OGI2MGY2ODdmZjRhZWUyMGI0NGVmMDAwZDY1YjE2MTg2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBNYXIgMjAyMiAxNzowNzoyNiAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBBZGQgdW5pdCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgRXNoZWxsIHBh dHRlcm4tYmFzZWQKIGdsb2JzCgoqIGxpc3AvZXNoZWxsL2VtLWdsb2IuZWwgKGVzaGVsbC1l eHRlbmRlZC1nbG9iKTogRml4IGRvY3N0cmluZy4KKGVzaGVsbC1nbG9iLWVudHJpZXMpOiBS ZWZlciB0byAnKiovJyBpbiBlcnJvciAodGVjaG5pY2FsbHksICcqKicgY2FuCmVuZCBhIGds b2IsIGJ1dCBpdCBtZWFucyB0aGUgc2FtZSB0aGluZyBhcyAnKicpLgoKKiB0ZXN0L2xpc3Av ZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWw6IE5ldyBmaWxlLgoKKiBkb2MvbWlzYy9lc2hlbGwu dGV4aSAoR2xvYmJpbmcpOiBEb2N1bWVudCBwYXR0ZXJuLWJhc2VkIGdsb2JzLgotLS0KIGRv Yy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8ICA5NCArKysrKysrKysrKysrKy0t CiBsaXNwL2VzaGVsbC9lbS1nbG9iLmVsICAgICAgICAgICAgfCAgMTQgKystCiB0ZXN0L2xp c3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwgfCAxNzEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDI2MiBpbnNlcnRpb25zKCspLCAxNyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNj L2VzaGVsbC50ZXhpCmluZGV4IDM3MmU0YzNmZmIuLjBiNTJjNzMxNzYgMTAwNjQ0Ci0tLSBh L2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC0x MDg5LDE1ICsxMDg5LDkxIEBAIERvbGxhcnMgRXhwYW5zaW9uCiAKIEBub2RlIEdsb2JiaW5n CiBAc2VjdGlvbiBHbG9iYmluZwotRXNoZWxsJ3MgZ2xvYmJpbmcgc3ludGF4IGlzIHZlcnkg c2ltaWxhciB0byB0aGF0IG9mIFpzaC4gIFVzZXJzIGNvbWluZwotZnJvbSBCYXNoIGNhbiBz dGlsbCB1c2UgQmFzaC1zdHlsZSBnbG9iYmluZywgYXMgdGhlcmUgYXJlIG5vCi1pbmNvbXBh dGliaWxpdGllcy4gIE1vc3QgZ2xvYmJpbmcgaXMgcGF0dGVybi1iYXNlZCBleHBhbnNpb24s IGJ1dCB0aGVyZQotaXMgYWxzbyBwcmVkaWNhdGUtYmFzZWQgZXhwYW5zaW9uLiAgQHhyZWZ7 RmlsZW5hbWUgR2VuZXJhdGlvbiwgLCAsCi16c2gsIFRoZSBaIFNoZWxsIE1hbnVhbH0sCi1m b3IgZnVsbCBzeW50YXguICBUbyBjdXN0b21pemUgdGhlIHN5bnRheCBhbmQgYmVoYXZpb3Ig b2YgZ2xvYmJpbmcgaW4KLUVzaGVsbCBzZWUgdGhlIEN1c3RvbWl6ZUBmb290bm90ZXtAeHJl ZntFYXN5IEN1c3RvbWl6YXRpb24sICwgLCBlbWFjcywKLVRoZSBHTlUgRW1hY3MgTWFudWFs fS59Ci1ncm91cHMgYGBlc2hlbGwtZ2xvYicnIGFuZCBgYGVzaGVsbC1wcmVkJycuCitAdmlu ZGV4IGVzaGVsbC1nbG9iLWNhc2UtaW5zZW5zaXRpdmUKK0VzaGVsbCdzIGdsb2JiaW5nIHN5 bnRheCBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiBac2gKKyhAcHhyZWZ7RmlsZW5hbWUg R2VuZXJhdGlvbiwgLCAsIHpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSkuICBVc2VycworY29t aW5nIGZyb20gQmFzaCBjYW4gc3RpbGwgdXNlIEJhc2gtc3R5bGUgZ2xvYmJpbmcsIGFzIHRo ZXJlIGFyZSBubworaW5jb21wYXRpYmlsaXRpZXMuCisKK0J5IGRlZmF1bHQsIGdsb2JzIGFy ZSBjYXNlIHNlbnNpdGl2ZSwgZXhjZXB0IG9uIE1TLURPUy9NUy1XaW5kb3dzCitzeXN0ZW1z LiAgWW91IGNhbiBjb250cm9sIHRoaXMgYmVoYXZpb3IgdmlhIHRoZQorQGNvZGV7ZXNoZWxs LWdsb2ItY2FzZS1pbnNlbnNpdGl2ZX0gb3B0aW9uLiAgWW91IGNhbiBmdXJ0aGVyIGN1c3Rv bWl6ZQordGhlIHN5bnRheCBhbmQgYmVoYXZpb3Igb2YgZ2xvYmJpbmcgaW4gRXNoZWxsIHZp YSB0aGUgQ3VzdG9taXplIGdyb3VwCitgYGVzaGVsbC1nbG9iJycgKEBweHJlZntFYXN5IEN1 c3RvbWl6YXRpb24sICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcworTWFudWFsfSkuCisKK0B0 YWJsZSBAc2FtcAorCitAaXRlbSAqCitNYXRjaGVzIGFueSBzdHJpbmcgKGluY2x1ZGluZyB0 aGUgZW1wdHkgc3RyaW5nKS4gIEZvciBleGFtcGxlLAorQHNhbXB7Ki5lbH0gbWF0Y2hlcyBh bnkgZmlsZSB3aXRoIHRoZSBAZmlsZXsuZWx9IGV4dGVuc2lvbi4KKworQGl0ZW0gPworTWF0 Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3Rlci4gIEZvciBleGFtcGxlLCBAc2FtcHs/YXR9IG1h dGNoZXMKK0BmaWxle2NhdH0gYW5kIEBmaWxle2JhdH0sIGJ1dCBub3QgQGZpbGV7Z29hdH0u CisKK0BpdGVtICoqLworTWF0Y2hlcyB6ZXJvIG9yIG1vcmUgc3ViZGlyZWN0b3JpZXMgaW4g YSBmaWxlIG5hbWUuICBGb3IgZXhhbXBsZSwKK0BzYW1weyoqL2Zvby5lbH0gbWF0Y2hlcyBA ZmlsZXtmb28uZWx9LCBAZmlsZXtiYXIvZm9vLmVsfSwKK0BmaWxle2Jhci9iYXovZm9vLmVs fSwgZXRjLiAgTm90ZSB0aGF0IHRoaXMgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGgKK2FueSBv dGhlciBwYXR0ZXJucyBpbiB0aGUgc2FtZSBmaWxlIG5hbWUgc2VnbWVudCwgc28gd2hpbGUK K0BzYW1we2Zvby8qKi9iYXIuZWx9IGlzIGFsbG93ZWQsIEBzYW1we2ZvbyoqL2Jhci5lbH0g aXMgbm90LgorCitAaXRlbSAqKiovCitMaWtlIEBjb2RleyoqL30sIGJ1dCBmb2xsb3dzIHN5 bWxpbmtzIGFzIHdlbGwuCisKK0BjaW5kZXggY2hhcmFjdGVyIHNldHMsIGluIEVzaGVsbCBn bG9iIHBhdHRlcm5zCitAY2luZGV4IGNoYXJhY3RlciBjbGFzc2VzLCBpbiBFc2hlbGwgZ2xv YiBwYXR0ZXJucworQGl0ZW0gWyBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZue2NoYXJhY3Rl ciBzZXR9IChAcHhyZWZ7UmVnZXhwcywgLCAsIGVtYWNzLCBUaGUgR05VCitFbWFjcyBNYW51 YWx9KS4gIEEgY2hhcmFjdGVyIHNldCBtYXRjaGVzIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUg dHdvCiticmFja2V0czsgZm9yIGV4YW1wbGUsIEBzYW1we1thZF19IG1hdGNoZXMgQGZpbGV7 YX0gYW5kIEBmaWxle2R9LiAgWW91CitjYW4gYWxzbyBpbmNsdWRlIHJhbmdlcyBvZiBjaGFy YWN0ZXJzIGluIHRoZSBzZXQgYnkgc2VwYXJhdGluZyB0aGUKK3N0YXJ0IGFuZCBlbmQgd2l0 aCBAc2FtcHstfS4gIFRodXMsIEBzYW1we1thLXpdfSBtYXRjaGVzIGFueQorbG93ZXItY2Fz ZSBAYWNyb255bXtBU0NJSX0gbGV0dGVyLiAgTm90ZSB0aGF0LCB1bmxpa2UgaW4gWnNoLAor Y2hhcmFjdGVyIHJhbmdlcyBhcmUgaW50ZXJwcmV0ZWQgaW4gdGhlIFVuaWNvZGUgY29kZXBv aW50IG9yZGVyLCBub3QKK2luIHRoZSBsb2NhbGUtZGVwZW5kZW50IGNvbGxhdGlvbiBvcmRl ci4KKworQWRkaXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgQGRmbntjaGFyYWN0ZXIgY2xh c3Nlc30gaW4gYSBjaGFyYWN0ZXIKK3NldC4gIEEgQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcg QHNhbXB7Ol19IGVuY2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MKK2luc2lkZSBhIGNoYXJhY3Rl ciBzZXQuICBGb3IgaW5zdGFuY2UsIEBzYW1we1tbOmFsbnVtOl1dfQorbWF0Y2hlcyBhbnkg bGV0dGVyIG9yIGRpZ2l0LiAgQHhyZWZ7Q2hhciBDbGFzc2VzLCAsICwgZWxpc3AsIFRoZSBF bWFjcworTGlzcCBSZWZlcmVuY2UgTWFudWFsfSwgZm9yIGEgbGlzdCBvZiBjaGFyYWN0ZXIg Y2xhc3Nlcy4KKworQGNpbmRleCBjb21wbGVtZW50ZWQgY2hhcmFjdGVyIHNldHMsIGluIEVz aGVsbCBnbG9iIHBhdHRlcm5zCitAaXRlbSBbXiBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZu e2NvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgc2V0fS4gIFRoaXMgYmVoYXZlcyBqdXN0IGxpa2Ug YQorY2hhcmFjdGVyIHNldCwgYnV0IG1hdGNoZXMgYW55IGNoYXJhY3RlciBAZW1waHtleGNl cHR9IHRoZSBvbmVzCitzcGVjaWZpZWQuCisKK0BjaW5kZXggZ3JvdXBzLCBpbiBFc2hlbGwg Z2xvYiBwYXR0ZXJucworQGl0ZW0gKCBAZG90c3t9ICkKK0RlZmluZXMgYSBAZGZue2dyb3Vw fS4gIEEgZ3JvdXAgbWF0Y2hlcyB0aGUgcGF0dGVybiBiZXR3ZWVuIEBzYW1weyh9CithbmQg QHNhbXB7KX0uICBOb3RlIHRoYXQgYSBncm91cCBjYW4gb25seSBtYXRjaCBhIHNpbmdsZSBm aWxlIG5hbWUKK2NvbXBvbmVudCwgc28gYSBAc2FtcHsvfSBpbnNpZGUgYSBncm91cCB3aWxs IHNpZ25hbCBhbiBlcnJvci4KKworQGl0ZW0gQHZhcnt4fXxAdmFye3l9CitJbnNpZGUgb2Yg YSBncm91cCwgbWF0Y2hlcyBlaXRoZXIgQHZhcnt4fSBvciBAdmFye3l9LiAgRm9yIGV4YW1w bGUsCitAc2FtcHtlKG18c2gpLSp9IG1hdGNoZXMgYW55IGZpbGUgYmVnaW5uaW5nIHdpdGgg QGNvZGV7ZW0tfSBvcgorQGNvZGV7ZXNoLX0uCisKK0BpdGVtIEB2YXJ7eH0jCitNYXRjaGVz IHplcm8gb3IgbW9yZSBjb3BpZXMgb2YgdGhlIGdsb2IgcGF0dGVybiBAdmFye3h9LiAgRm9y IGV4YW1wbGUsCitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zi5lbH0sIEBmaWxle2Zv LmVsfSwgQGZpbGV7Zm9vLmVsfSwgZXRjLgorCitAaXRlbSBAdmFye3h9IyMKK01hdGNoZXMg b25lIG9yIG1vcmUgY29waWVzIG9mIHRoZSBnbG9iIHBhdHRlcm4gQHZhcnt4fS4gIFRodXMs CitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zm8uZWx9LCBAZmlsZXtmb28uZWx9LCBA ZmlsZXtmb29vLmVsfSwKK2V0Yy4KKworQGl0ZW0gQHZhcnt4fX5AdmFye3l9CitNYXRjaGVz IGFueXRoaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcGF0dGVybiBAdmFye3h9IGJ1dCBub3QgQHZh cnt5fS4gRm9yCitleGFtcGxlLCBAc2FtcHtbWzpkaWdpdDpdXSN+ND99IG1hdGNoZXMgQGZp bGV7MX0gYW5kIEBmaWxlezEyfSwgYnV0Citub3QgQGZpbGV7NDJ9LiAgTm90ZSB0aGF0IHVu bGlrZSBpbiBac2gsIG9ubHkgYSBzaW5nbGUgQGNvZGV7fn0KK29wZXJhdG9yIGNhbiBiZSB1 c2VkIGluIGEgcGF0dGVybiwgYW5kIGl0IGNhbm5vdCBiZSBpbnNpZGUgb2YgYSBncm91cAor bGlrZSBAc2FtcHsoQHZhcnt4fX5AdmFye3l9KX0uCisKK0BlbmQgdGFibGUKIAogQG5vZGUg SW5wdXQvT3V0cHV0CiBAY2hhcHRlciBJbnB1dC9PdXRwdXQKZGlmZiAtLWdpdCBhL2xpc3Av ZXNoZWxsL2VtLWdsb2IuZWwgYi9saXNwL2VzaGVsbC9lbS1nbG9iLmVsCmluZGV4IDg0MmYy N2E0OTIuLjUyNTMxZmY4OTMgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VtLWdsb2IuZWwK KysrIGIvbGlzcC9lc2hlbGwvZW0tZ2xvYi5lbApAQCAtMjMzLDcgKzIzMywxMCBAQCBlc2hl bGwtZ2xvYi1yZWdleHAKIAkgICAgIlxcJyIpKSkKIAogKGRlZnVuIGVzaGVsbC1leHRlbmRl ZC1nbG9iIChnbG9iKQotICAiUmV0dXJuIGEgbGlzdCBvZiBmaWxlcyBnZW5lcmF0ZWQgZnJv bSBHTE9CLCBwZXJoYXBzIGxvb2tpbmcgZm9yIERJUlMtT05MWS4KKyAgIlJldHVybiBhIGxp c3Qgb2YgZmlsZXMgbWF0Y2hlZCBieSBHTE9CLgorSWYgbm8gZmlsZXMgbWF0Y2gsIHNpZ25h bCBhbiBlcnJvciAoaWYgYGVzaGVsbC1lcnJvci1pZi1uby1nbG9iJworaXMgbm9uLW5pbCks IG9yIG90aGVyd2lzZSByZXR1cm4gR0xPQiBpdHNlbGYuCisKIFRoaXMgZnVuY3Rpb24gYWxt b3N0IGZ1bGx5IHN1cHBvcnRzIHpzaCBzdHlsZSBmaWxlbmFtZSBnZW5lcmF0aW9uCiBzeW50 YXguICBUaGluZ3MgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBhcmU6CiAKQEAgLTI0MywxMiAr MjQ2LDcgQEAgZXNoZWxsLWV4dGVuZGVkLWdsb2IKICAgIGZvb354KGF8YikgIChhfGIpIHdp bGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwcmVkaWNhdGUvbW9kaWZpZXIgbGlzdAogCiBNYWlu bHkgdGhleSBhcmUgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGZpbGUgbWF0Y2hpbmcgaXMgZG9u ZSB3aXRoIEVtYWNzCi1yZWd1bGFyIGV4cHJlc3Npb25zLCBhbmQgdGhlc2UgY2Fubm90IHN1 cHBvcnQgdGhlIGFib3ZlIGNvbnN0cnVjdHMuCi0KLUlmIHRoaXMgcm91dGluZSBmYWlscywg aXQgcmV0dXJucyBuaWwuICBPdGhlcndpc2UsIGl0IHJldHVybnMgYSBsaXN0Ci10aGUgZm9y bToKLQotICAgKElOQ0xVREUtUkVHRVhQIEVYQ0xVREUtUkVHRVhQIChQUkVELUZVTkMtTElT VCkgKE1PRC1GVU5DLUxJU1QpKSIKK3JlZ3VsYXIgZXhwcmVzc2lvbnMsIGFuZCB0aGVzZSBj YW5ub3Qgc3VwcG9ydCB0aGUgYWJvdmUgY29uc3RydWN0cy4iCiAgIChsZXQgKChwYXRocyAo ZXNoZWxsLXNwbGl0LXBhdGggZ2xvYikpCiAgICAgICAgIGVzaGVsbC1nbG9iLW1hdGNoZXMg bWVzc2FnZS1zaG93bikKICAgICAodW53aW5kLXByb3RlY3QKQEAgLTI4Nyw3ICsyODUsNyBA QCBlc2hlbGwtZ2xvYi1lbnRyaWVzCiAJCSAgIGdsb2IgKGNhciBnbG9icykKIAkJICAgbGVu IChsZW5ndGggZ2xvYikpKSkpCiAgICAgKGlmIChhbmQgcmVjdXJzZS1wIChub3QgZ2xvYikp Ci0JKGVycm9yICJgKionIGNhbm5vdCBlbmQgYSBnbG9iYmluZyBwYXR0ZXJuIikpCisJKGVy cm9yICJgKiovJyBjYW5ub3QgZW5kIGEgZ2xvYmJpbmcgcGF0dGVybiIpKQogICAgIChsZXQg KChpbmRleCAxKSkKICAgICAgIChzZXRxIGluY2wgZ2xvYikKICAgICAgICh3aGlsZSAoYW5k IChlcSBpbmNsIGdsb2IpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTk3NmIzMmZmZQotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tZ2xvYi10ZXN0cy5lbApAQCAtMCwwICsxLDE3 MSBAQAorOzs7IGVtLWdsb2ItdGVzdHMuZWwgLS0tIGVtLWdsb2IgdGVzdCBzdWl0ZSAgLSot IGxleGljYWwtYmluZGluZzp0IC0qLQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdO VSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsg R05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25n IHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRlc3RzIGZvciBFc2hlbGwncyBn bG9iIGV4cGFuc2lvbi4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWly ZSAnZW0tZ2xvYikKKworKGRlZm1hY3JvIHdpdGgtZmFrZS1maWxlcyAoZmlsZXMgJnJlc3Qg Ym9keSkKKyAgIkV2YWx1YXRlIEJPRFkgZm9ybXMsIHByZXRlbmRpbmcgdGhhdCBGSUxFUyBl eGlzdCBvbiB0aGUgZmlsZXN5c3RlbS4KK0ZJTEVTIGlzIGEgbGlzdCBvZiBmaWxlIG5hbWVz IHRoYXQgc2hvdWxkIGJlIHJlcG9ydGVkIGFzCithcHByb3ByaWF0ZSBieSBgZmlsZS1uYW1l LWFsbC1jb21wbGV0aW9ucycuICBBbnkgZmlsZSBuYW1lCitjb21wb25lbnQgZW5kaW5nIGlu IFwic3ltbGlua1wiIGlzIHRyZWF0ZWQgYXMgYSBzeW1ib2xpYyBsaW5rLiIKKyAgKGRlY2xh cmUgKGluZGVudCAxKSkKKyAgYChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1u YW1lLWFsbC1jb21wbGV0aW9ucykKKyAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSBkaXJl Y3RvcnkpCisgICAgICAgICAgICAgICAgKGNsLWFzc2VydCAoc3RyaW5nPSBmaWxlICIiKSkK KyAgICAgICAgICAgICAgICAoc2V0cSBkaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5hbWUgZGly ZWN0b3J5KSkKKyAgICAgICAgICAgICAgICBgKCIuLyIgIi4uLyIKKyAgICAgICAgICAgICAg ICAgICxAKGRlbGV0ZS1kdXBzCisgICAgICAgICAgICAgICAgICAgICAocmVtcSBuaWwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldHEgZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh3aGVuIChzdHJpbmctcHJlZml4LXAgZGlyZWN0b3J5IGZpbGUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJp bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvLioiICIvIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlIChsZW5ndGggZGly ZWN0b3J5KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsZmlsZXMpKSkpKSkK KyAgICAgICAgICAgICAoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1zeW1saW5rLXApCisgICAg ICAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgICAgICAgKHN0cmluZy1zdWZm aXgtcCAic3ltbGluayIgZmlsZSkpKSkKKyAgICAgLEBib2R5KSkKKworOzs7IFRlc3RzOgor CisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWFueS1zdHJpbmcgKCkKKyAgIlRl c3QgdGhhdCBcIipcIiBwYXR0ZXJuIG1hdGNoZXMgYW55IHN0cmluZy4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiYS5lbCIgImIuZWwiICJjLnR4dCIgImRpci9hLmVsIikKKyAgICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIiouZWwiKQorICAgICAgICAgICAg ICAgICAgICcoImEuZWwiICJiLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRl c3QvbWF0Y2gtYW55LWNoYXJhY3RlciAoKQorICAiVGVzdCB0aGF0IFwiP1wiIHBhdHRlcm4g bWF0Y2hlcyBhbnkgY2hhcmFjdGVyLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAi Yi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiPy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygi YS5lbCIgImIuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1y ZWN1cnNpdmUgKCkKKyAgIlRlc3QgdGhhdCBcIioqL1wiIHJlY3Vyc2l2ZWx5IG1hdGNoZXMg ZGlyZWN0b3JpZXMuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiY2Nj LmVsIiAiZC50eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJkaXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqKi9h LmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiZGlyL2EuZWwiICJkaXIvc3Vi L2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1yZWN1cnNp dmUtZm9sbG93LXN5bWxpbmtzICgpCisgICJUZXN0IHRoYXQgXCIqKiovXCIgcmVjdXJzaXZl bHkgbWF0Y2hlcyBkaXJlY3RvcmllcywgZm9sbG93aW5nIHN5bWxpbmtzLiIKKyAgKHdpdGgt ZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwi ICJkaXIvc3ViL2EuZWwiCisgICAgICAgICAgICAgICAgICAgICAiZGlyL3N5bWxpbmsvYS5l bCIgInN5bWxpbmsvYS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKQorICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKioqL2EuZWwiKQorICAgICAgICAgICAgICAg ICAgICcoImEuZWwiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIgImRpci9zeW1saW5rL2Eu ZWwiCisgICAgICAgICAgICAgICAgICAgICAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLXJlY3Vyc2l2 ZS1taXhlZCAoKQorICAiVGVzdCBjb21iaW5hdGlvbiBvZiBcIioqL1wiIGFuZCBcIioqKi9c Ii4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZGlyL2EuZWwiICJkaXIvc3ViL2EuZWwiICJk aXIvc3ViMi9hLmVsIgorICAgICAgICAgICAgICAgICAgICAgImRpci9zeW1saW5rL2EuZWwi ICJkaXIvc3ViL3N5bWxpbmsvYS5lbCIgInN5bWxpbmsvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJzeW1saW5rL3N1Yi9hLmVsIiAic3ltbGluay9zdWIvc3ltbGluay9hLmVsIikK KyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioqL3N1Yi8qKiov YS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZGlyL3N1Yi9hLmVsIiAiZGlyL3N1Yi9z eW1saW5rL2EuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICIqKiovc3ViLyoqL2EuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImRpci9zdWIv YS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2It dGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LWluZGl2aWR1YWwgKCkKKyAgIlRlc3QgXCJbLi4u XVwiIGZvciBpbmRpdmlkdWFsIGNoYXJhY3RlcnMuIgorICAod2l0aC1mYWtlLWZpbGVzICco ImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWJdLmVsIikKKyAgICAgICAgICAgICAg ICAgICAnKCJhLmVsIiAiYi5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4 dGVuZGVkLWdsb2IgIlteYWJdLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJjLmVsIiAi ZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rl ci1zZXQtcmFuZ2UgKCkKKyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFyYWN0ZXIgcmFuZ2Vz LiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImMuZWwiICJkLmVsIiAi ZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAi W2EtY10uZWwiKQorICAgICAgICAgICAgICAgICAgICcoImEuZWwiICJiLmVsIiAiYy5lbCIp KSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIlteYS1jXS5l bCIpCisgICAgICAgICAgICAgICAgICAgJygiZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rlci1zZXQtY2xhc3MgKCkKKyAgIlRlc3QgXCJb Li4uXVwiIGZvciBjaGFyYWN0ZXIgY2xhc3Nlcy4iCisgICh3aXRoLWZha2UtZmlsZXMgJygi MS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImRpci9hLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIltbOmFscGhhOl1dLmVsIikKKyAgICAgICAg ICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIgImMuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXls6YWxwaGE6XV0uZWwiKQorICAgICAgICAg ICAgICAgICAgICcoIjEuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9t YXRjaC1jaGFyYWN0ZXItc2V0LW1peGVkICgpCisgICJUZXN0IFwiWy4uLl1cIiB3aXRoIG11 bHRpcGxlIGtpbmRzIG9mIG1lbWJlcnMgYXQgb25jZS4iCisgICh3aXRoLWZha2UtZmlsZXMg JygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWMtZFs6ZGlnaXQ6XV0u ZWwiKQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiICJhLmVsIiAiYy5lbCIgImQuZWwi KSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXmFjLWRb OmRpZ2l0Ol1dLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJiLmVsIikpKSkpCisKKyhl cnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtZ3JvdXAtYWx0ZXJuYXRpdmUgKCkKKyAg IlRlc3QgXCIoeHx5KVwiIG1hdGNoZXMgZWl0aGVyIFwieFwiIG9yIFwieVwiLiIKKyAgKHdp dGgtZmFrZS1maWxlcyAnKCJlbS1hbGlhcy5lbCIgImVtLWJhbm5lci5lbCIgImVzaC1hcmcu ZWwiICJtaXNjLmVsIgorICAgICAgICAgICAgICAgICAgICAgInRlc3QvZW0teHRyYS5lbCIp CisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJlKG18c2gpLSou ZWwiKQorICAgICAgICAgICAgICAgICAgICcoImVtLWFsaWFzLmVsIiAiZW0tYmFubmVyLmVs IiAiZXNoLWFyZy5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNo LW4tb3ItbW9yZS1jaGFyYWN0ZXJzICgpCisgICJUZXN0IHRoYXQgXCJ4I1wiIGFuZCBcIngj XCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBcInhcIi4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiaC5lbCIgImhhLmVsIiAiaGkuZWwiICJoaWkuZWwiICJkaXIvaGkuZWwi KQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiaGkjLmVsIikK KyAgICAgICAgICAgICAgICAgICAnKCJoLmVsIiAiaGkuZWwiICJoaWkuZWwiKSkpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMjLmVsIikKKyAgICAg ICAgICAgICAgICAgICAnKCJoaS5lbCIgImhpaS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLW4tb3ItbW9yZS1ncm91cHMgKCkKKyAgIlRlc3QgdGhhdCBc Iih4KSNcIiBhbmQgXCIoeCkjXCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBc Iih4KVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJoLmVsIiAiaGEuZWwiICJoaS5lbCIg ImhpaS5lbCIgImRpci9oaS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICJoaSMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImguZWwiICJoaS5l bCIgImhpaS5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWds b2IgImhpIyMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImhpLmVsIiAiaGlpLmVsIikp KSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtbi1vci1tb3JlLWNoYXJh Y3Rlci1zZXRzICgpCisgICJUZXN0IHRoYXQgXCJbeF0jXCIgYW5kIFwiW3hdI1wiIG1hdGNo IHplcm8gb3IgbW9yZSBpbnN0YW5jZXMgb2YgXCJbeF1cIi4iCisgICh3aXRoLWZha2UtZmls ZXMgJygidy5lbCIgIndoLmVsIiAid2hhLmVsIiAid2hpLmVsIiAid2hhaGEuZWwiICJkaXIv d2hhLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIndb YWhdIy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygidy5lbCIgIndoLmVsIiAid2hhLmVs IiAid2hhaGEuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICJ3W2FoXSMjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJ3aC5lbCIgIndoYS5l bCIgIndoYWhhLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gt eC1idXQtbm90LXkgKCkKKyAgIlRlc3QgdGhhdCBcInh+eVwiIG1hdGNoZXMgXCJ4XCIgYnV0 IG5vdCBcInlcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiMSIgIjEyIiAiMTIzIiAiNDIi ICJkaXIvMSIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJb WzpkaWdpdDpdXSMjfjQ/IikKKyAgICAgICAgICAgICAgICAgICAnKCIxIiAiMTIiICIxMjMi KSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9uby1tYXRjaGVzICgpCisgICJU ZXN0IGJlaGF2aW9yIHdoZW4gYSBnbG9iIGZhaWxzIHRvIG1hdGNoIGFueSBmaWxlcy4iCisg ICh3aXRoLWZha2UtZmlsZXMgJygiZm9vLmVsIiAiYmFyLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioudHh0IikKKyAgICAgICAgICAgICAgICAg ICAiKi50eHQiKSkKKyAgICAobGV0ICgoZXNoZWxsLWVycm9yLWlmLW5vLWdsb2IgdCkpCisg ICAgICAoc2hvdWxkLWVycm9yIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKi50eHQiKSkpKSkK KworOzsgZW0tZ2xvYi10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------218631157F856742B919BFA3 Content-Type: text/plain; charset=UTF-8; name="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.pa"; filename*1="tch" RnJvbSBlYWI5OTk2MzgwMjEyYTBmNmZmNzY2OGQ4ZThhMjIyNjE1OTE2NTZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTI6NDE6MTMgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvM10gQWRkIHVuaXQgdGVzdHMgYW5kIGRvY3VtZW50YXRpb24gZm9yIEVzaGVsbAog cHJlZGljYXRlcy9tb2RpZmllcnMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxs LWV2YWwtYXJndW1lbnQpOiBOZXcgZnVuY3Rpb24uCgoqIGxpc3AvZXNoZWxsL2VtLXByZWQu ZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBDaGFuZ2Ugc29ja2V0IGNoYXIKdG8gJz0n LCBzaW5jZSAncycgY29uZmxpY3RzIHdpdGggc2V0dWlkLgooZXNoZWxsLW1vZGlmaWVyLWFs aXN0KTogRml4ICdFJyAoZXZhbCkgbW9kaWZpZXIgYnkgdXNpbmcKJ2VzaGVsbC1ldmFsLWFy Z3VtZW50Jy4gIEFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBvZiAnTycgKHJldmVyc2VkCnNv cnQpIG1vZGlmaWVyLgooZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nKTogRml4IGRvY3Vt ZW50YXRpb24gb2YgZ2xvYmFsCnN1YnN0aXR1dGlvbiBtb2RpZmllci4KKGVzaGVsbC1wcmVk LXN1YnN0aXR1dGUpOiBGaXggaW5maW5pdGUgbG9vcCBpbiBzb21lIGdsb2JhbApzdWJzdGl0 dXRpb25zLgooZXNoZWxsLWpvaW4tbWVtYmVycyk6IEZpeCBqb2luaW5nIHdpdGggaW1wbGlj aXQgIiAiIGRlbGltaXRlci4KCiogdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVs OiBOZXcgZmlsZS4KCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEFyZ3VtZW50IFByZWRpY2F0 aW9uKTogTmV3IHNlY3Rpb24uCi0tLQogZG9jL21pc2MvZXNoZWxsLnRleGkgICAgICAgICAg ICAgIHwgMjQwICsrKysrKysrKysrKysrCiBsaXNwL2VzaGVsbC9lbS1wcmVkLmVsICAgICAg ICAgICAgfCAgMzUgKy0KIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAgICB8ICAg OCArCiB0ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwgfCA1MjEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDc4MiBpbnNlcnRpb25z KCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNo ZWxsL2VtLXByZWQtdGVzdHMuZWwKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4 aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCmluZGV4IDBiNTJjNzMxNzYuLjJiNDlkZGIwM2Mg MTAwNjQ0Ci0tLSBhL2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVs bC50ZXhpCkBAIC0xMDAyLDYgKzEwMDIsNyBAQCBFeHBhbnNpb24KIEBtZW51CiAqIERvbGxh cnMgRXhwYW5zaW9uOjoKICogR2xvYmJpbmc6OgorKiBBcmd1bWVudCBQcmVkaWNhdGlvbiBh bmQgTW9kaWZpY2F0aW9uOjoKIEBlbmQgbWVudQogCiBAbm9kZSBEb2xsYXJzIEV4cGFuc2lv bgpAQCAtMTE3NSw2ICsxMTc2LDI0NSBAQCBHbG9iYmluZwogCiBAZW5kIHRhYmxlCiAKK0Bu b2RlIEFyZ3VtZW50IFByZWRpY2F0aW9uIGFuZCBNb2RpZmljYXRpb24KK0BzZWN0aW9uIEFy Z3VtZW50IFByZWRpY2F0aW9uIGFuZCBNb2RpZmljYXRpb24KK0BjaW5kZXggYXJndW1lbnQg cHJlZGljYXRpb24KK0BjaW5kZXggYXJndW1lbnQgbW9kaWZpY2F0aW9uCitFc2hlbGwgc3Vw cG9ydHMgQGRmbnthcmd1bWVudCBwcmVkaWNhdGlvbn0sIHRvIGZpbHRlciBlbGVtZW50cyBv ZiBhCitnbG9iLCBhbmQgQGRmbnthcmd1bWVudCBtb2RpZmljYXRpb259LCB0byBtYW5pcHVs YXRlIGFyZ3VtZW50IHZhbHVlcy4KK1RoZXNlIGFyZSBzaW1pbGFyIHRvIGdsb2IgcXVhbGlm aWVycyBpbiBac2ggKEBweHJlZntHbG9iIFF1YWxpZmllcnMsICwKKywgenNoLCBUaGUgWiBT aGVsbCBNYW51YWx9KS4KKworUHJlZGljYXRlcyBhbmQgbW9kaWZpZXJzIGFyZSBpbnRyb2R1 Y2VkIHdpdGggQGNvZGV7KEB2YXJ7ZmlsdGVyc30pfQorYWZ0ZXIgYW55IGxpc3QgYXJndW1l bnQsIHdoZXJlIEB2YXJ7ZmlsdGVyc30gaXMgYSBsaXN0IG9mIHByZWRpY2F0ZXMKK29yIG1v ZGlmaWVycy4gIEZvciBleGFtcGxlLCBAc2FtcHsqKC4pfSBleHBhbmRzIHRvIGFsbCByZWd1 bGFyIGZpbGVzCitpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgYW5kIEBzYW1weyooXkBAOlVe dTApfSBleHBhbmRzIHRvIGFsbAorbm9uLXN5bWxpbmtzIG5vdCBvd25lZCBieSBAY29kZXty b290fSwgdXBwZXItY2FzZWQuCisKK1lvdSBjYW4gY3VzdG9taXplIHRoZSBzeW50YXggYW5k IGJlaGF2aW9yIG9mIHByZWRpY2F0ZXMgYW5kIG1vZGlmaWVycworaW4gRXNoZWxsIHZpYSB0 aGUgQ3VzdG9taXplIGdyb3VwIGBgZXNoZWxsLXByZWQnJyAoQHB4cmVme0Vhc3kKK0N1c3Rv bWl6YXRpb24sICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9KS4KKworQG1lbnUK KyogQXJndW1lbnQgUHJlZGljYXRlczo6CisqIEFyZ3VtZW50IE1vZGlmaWVyczo6CitAZW5k IG1lbnUKKworQG5vZGUgQXJndW1lbnQgUHJlZGljYXRlcworQHN1YnNlY3Rpb24gQXJndW1l bnQgUHJlZGljYXRlcworWW91IGNhbiB1c2UgYXJndW1lbnQgcHJlZGljYXRlcyB0byBmaWx0 ZXIgbGlzdHMgb2YgZmlsZSBuYW1lcyBiYXNlZCBvbgordmFyaW91cyBwcm9wZXJ0aWVzIG9m IHRob3NlIGZpbGVzLiAgVGhpcyBpcyBtb3N0IHVzZWZ1bCB3aGVuIGNvbWJpbmVkCit3aXRo IGdsb2JiaW5nLCBidXQgY2FuIGJlIHVzZWQgb24gYW55IGxpc3Qgb2YgZmlsZXMgbmFtZXMu ICBFc2hlbGwKK3N1cHBvcnRzIHRoZSBmb2xsb3dpbmcgYXJndW1lbnQgcHJlZGljYXRlczoK KworQHRhYmxlIEBhc2lzCisKK0BpdGVtIEBjb2Rley99CitNYXRjaGVzIGRpcmVjdG9yaWVz LgorCitAaXRlbSBAY29kZXsufSBAcnsoUGVyaW9kKX0KK01hdGNoZXMgcmVndWxhciBmaWxl cy4KKworQGl0ZW0gQGNvZGV7QEB9CitNYXRjaGVzIHN5bWJvbGljIGxpbmtzLgorCitAaXRl bSBAY29kZXs9fQorTWF0Y2hlcyBzb2NrZXRzLgorCitAaXRlbSBAY29kZXtwfQorTWF0Y2hl cyBuYW1lZCBwaXBlcy4KKworQGl0ZW0gQGNvZGV7JX0KK01hdGNoZXMgYmxvY2sgb3IgY2hh cmFjdGVyIGRldmljZXMuCisKK0BpdGVtIEBjb2RleyVifQorTWF0Y2hlcyBibG9jayBkZXZp Y2VzLgorCitAaXRlbSBAY29kZXslY30KK01hdGNoZXMgY2hhcmFjdGVyIGRldmljZXMuCisK K0BpdGVtIEBjb2Rleyp9CitNYXRjaGVzIHJlZ3VsYXIgZmlsZXMgdGhhdCBjYW4gYmUgZXhl Y3V0ZWQgYnkgdGhlIGN1cnJlbnQgdXNlci4KKworQGl0ZW0gQGNvZGV7cn0KK0BpdGVtIEBj b2Rle0F9CitAaXRlbSBAY29kZXtSfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSByZWFkYWJs ZSBieSB0aGVpciBvd25lcnMgKEBjb2Rle3J9KSwgdGhlaXIKK2dyb3VwcyAoQGNvZGV7QX0p LCBvciB0aGUgd29ybGQgKEBjb2Rle1J9KS4KKworQGl0ZW0gQGNvZGV7d30KK0BpdGVtIEBj b2Rle0l9CitAaXRlbSBAY29kZXtXfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSB3cml0YWJs ZSBieSB0aGVpciBvd25lcnMgKEBjb2Rle3d9KSwgdGhlaXIKK2dyb3VwcyAoQGNvZGV7SX0p LCBvciB0aGUgd29ybGQgKEBjb2Rle1d9KS4KKworQGl0ZW0gQGNvZGV7eH0KK0BpdGVtIEBj b2Rle0V9CitAaXRlbSBAY29kZXtYfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSBleGVjdXRh YmxlIGJ5IHRoZWlyIG93bmVycyAoQGNvZGV7eH0pLCB0aGVpcgorZ3JvdXBzIChAY29kZXtF fSksIG9yIHRoZSB3b3JsZCAoQGNvZGV7WH0pLgorCitAaXRlbSBAY29kZXtzfQorTWF0Y2hl cyBmaWxlcyB3aXRoIHRoZSBzZXR1aWQgZmxhZyBzZXQuCisKK0BpdGVtIEBjb2Rle1N9CitN YXRjaGVzIGZpbGVzIHdpdGggdGhlIHNldGdpZCBmbGFnIHNldC4KKworQGl0ZW0gQGNvZGV7 dH0KK01hdGNoZXMgZmlsZXMgd2l0aCB0aGUgc3RpY2t5IGJpdCBzZXQuCisKK0BpdGVtIEBj b2Rle1V9CitNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSB1 c2VyIElELgorCitAaXRlbSBAY29kZXtsQG9wdGlvbntbKy1dfUB2YXJ7bn19CitNYXRjaGVz IGZpbGVzIHdpdGggQHZhcntufSBsaW5rcy4gIFdpdGggQG9wdGlvbnsrfSAob3IgQG9wdGlv bnstfSksCittYXRjaGVzIGZpbGVzIHdpdGggbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pIEB2 YXJ7bn0gbGlua3MsCityZXNwZWN0aXZlbHkuCisKK0BpdGVtIEBjb2Rle3VAdmFye3VpZH19 CitAaXRlbSBAY29kZXt1J0B2YXJ7dXNlci1uYW1lfSd9CitNYXRjaGVzIGZpbGVzIG93bmVk IGJ5IHVzZXIgSUQgQHZhcnt1aWR9IG9yIHVzZXIgbmFtZSBAdmFye3VzZXItbmFtZX0uCisK K0BpdGVtIEBjb2Rle2dAdmFye2dpZH19CitAaXRlbSBAY29kZXtnJ0B2YXJ7Z3JvdXAtbmFt ZX0nfQorTWF0Y2hlcyBmaWxlcyBvd25lZCBieSBncm91cCBJRCBAdmFye2dpZH0gb3IgZ3Jv dXAgbmFtZQorQHZhcntncm91cC1uYW1lfS4KKworQGl0ZW0gQGNvZGV7YUBvcHRpb257W0B2 YXJ7dW5pdH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQGNvZGV7YUBvcHRpb257 WystXX0nQHZhcntmaWxlfSd9CitNYXRjaGVzIGZpbGVzIGxhc3QgYWNjZXNzZWQgZXhhY3Rs eSBAdmFye259IGRheXMgYWdvLiAgV2l0aCBAb3B0aW9ueyt9Cisob3IgQG9wdGlvbnstfSks IG1hdGNoZXMgZmlsZXMgYWNjZXNzZWQgbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pCitAdmFy e259IGRheXMgYWdvLCByZXNwZWN0aXZlbHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntu fSBpcyBhIHF1YW50aXR5IGluIHRoYXQgdW5pdCBvZiB0aW1lLCBzbworQHNhbXB7YXctMX0g bWF0Y2hlcyBmaWxlcyBsYXN0IGFjY2Vzc2VkIHdpdGhpbiBvbmUgd2Vlay4gIEB2YXJ7dW5p dH0KK2NhbiBiZSBAY29kZXtNfSAoMzAtZGF5IG1vbnRocyksIEBjb2Rle3d9ICh3ZWVrcyks IEBjb2Rle2h9IChob3VycyksCitAY29kZXttfSAobWludXRlcyksIG9yIEBjb2Rle3N9IChz ZWNvbmRzKS4KKworSWYgQHZhcntmaWxlfSBpcyBzcGVjaWZpZWQgaW5zdGVhZCwgY29tcGFy ZSBhZ2FpbnN0IHRoZSBtb2RpZmljYXRpb24KK3RpbWUgb2YgQGZpbGV7ZmlsZX0uICBUaHVz LCBAc2FtcHthLSdoZWxsby50eHQnfSBtYXRjaGVzIGFsbCBmaWxlcworYWNjZXNzZWQgYWZ0 ZXIgQGZpbGV7aGVsbG8udHh0fSB3YXMgbGFzdCBhY2Nlc3NlZC4KKworQGl0ZW0gQGNvZGV7 bUBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQGNv ZGV7bUBvcHRpb257WystXX0nQHZhcntmaWxlfSd9CitMaWtlIEBjb2Rle2F9LCBidXQgZXhh bWluZXMgbW9kaWZpY2F0aW9uIHRpbWUuCisKK0BpdGVtIEBjb2Rle2NAb3B0aW9ue1tAdmFy e3VuaXR9XX1Ab3B0aW9ue1srLV19QHZhcntufX0KK0BpdGVtIEBjb2Rle2NAb3B0aW9ue1sr LV19J0B2YXJ7ZmlsZX0nfQorTGlrZSBAY29kZXthfSwgYnV0IGV4YW1pbmVzIHN0YXR1cyBj aGFuZ2UgdGltZS4KKworQGl0ZW0gQGNvZGV7TEBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRp b257WystXX1AdmFye259fQorTWF0Y2hlcyBmaWxlcyBleGFjdGx5IEB2YXJ7bn0gYnl0ZXMg aW4gc2l6ZS4gIFdpdGggQG9wdGlvbnsrfSAob3IKK0BvcHRpb257LX0pLCBtYXRjaGVzIGZp bGVzIGxhcmdlciB0aGFuIChvciBzbWFsbGVyIHRoYW4pIEB2YXJ7bn0KK2J5dGVzLCByZXNw ZWN0aXZlbHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBhIHF1YW50aXR5IGlu IHRoYXQgdW5pdCBvZiBzaXplLCBzbworQHNhbXB7TG0rNX0gbWF0Y2hlcyBmaWxlcyBsYXJn ZXIgdGhhbiA1IE1pQiBpbiBzaXplLiAgQHZhcnt1bml0fSBjYW4KK2JlIG9uZSBvZiB0aGUg Zm9sbG93aW5nIChjYXNlLWluc2Vuc2l0aXZlKSBjaGFyYWN0ZXJzOiBAY29kZXttfQorKG1l Z2FieXRlcyksIEBjb2Rle2t9IChraWxvYnl0ZXMpLCBvciBAY29kZXtwfSAoNTEyLWJ5dGUg YmxvY2tzKS4KKworQGVuZCB0YWJsZQorCitUaGUgQGNvZGV7Xn0gYW5kIEBjb2Rley19IG9w ZXJhdG9ycyBhcmUgbm90IGFyZ3VtZW50IHByZWRpY2F0ZXMKK3RoZW1zZWx2ZXMsIGJ1dCB0 aGV5IG1vZGlmeSB0aGUgYmVoYXZpb3Igb2YgYWxsIHN1YnNlcXVlbnQgcHJlZGljYXRlcy4K K0Bjb2Rle159IGludmVydHMgdGhlIG1lYW5pbmcgb2Ygc3Vic2VxdWVudCBwcmVkaWNhdGVz LCBzbworQHNhbXB7KiheUldYKX0gZXhwYW5kcyB0byBhbGwgZmlsZXMgd2hvc2UgcGVybWlz c2lvbnMgZGlzYWxsb3cgdGhlCit3b3JsZCBmcm9tIGFjY2Vzc2luZyB0aGVtIGluIGFueSB3 YXkgKGkuZS4sIHJlYWRpbmcsIHdyaXRpbmcgdG8sIG9yCittb2RpZnlpbmcgdGhlbSkuICBX aGVuIGV4YW1pbmluZyBhIHN5bWJvbGljIGxpbmssIEBjb2Rley19IGFwcGxpZXMgdGhlCitz dWJzZXF1ZW50IHByZWRpY2F0ZXMgdG8gdGhlIGxpbmsncyB0YXJnZXQgaW5zdGVhZCBvZiB0 aGUgbGluayBpdHNlbGYuCisKK0Bub2RlIEFyZ3VtZW50IE1vZGlmaWVycworQHN1YnNlY3Rp b24gQXJndW1lbnQgTW9kaWZpZXJzCitZb3UgY2FuIHVzZSBhcmd1bWVudCBtb2RpZmllcnMg dG8gbWFuaXB1bGF0ZSBhcmd1bWVudCB2YWx1ZXMuICBGb3IKK2V4YW1wbGUsIHlvdSBjYW4g c29ydCBsaXN0cywgcmVtb3ZlIGR1cGxpY2F0ZSB2YWx1ZXMsIGNhcGl0YWxpemUKK3dvcmRz LCBldGMuICBBbGwgYXJndW1lbnQgbW9kaWZpZXJzIGFyZSBwcmVmaXhlZCBieSBAY29kZXs6 fSwgc28KK0BzYW1weyRleGVjLXBhdGgoOmg6dTp4L15cL2hvbWUvKX0gbGlzdHMgYWxsIG9m IHRoZSB1bmlxdWUgcGFyZW50CitkaXJlY3RvcmllcyBvZiB0aGUgZWxlbWVudHMgaW4gQGNv ZGV7ZXhlYy1wYXRofSwgZXhjbHVkaW5nIHRob3NlIGluCitAZmlsZXsvaG9tZX0uCisKK0B0 YWJsZSBAY29kZQorCitAaXRlbSBFCitSZS1ldmFsdWF0ZXMgdGhlIHZhbHVlIGFzIGFuIEVz aGVsbCBhcmd1bWVudC4gIEZvciBleGFtcGxlLCBpZgorQHZhcntmb299IGlzIEBjb2RleyIk QHtlY2hvIGhpQH0ifSwgdGhlbiB0aGUgcmVzdWx0IG9mIEBzYW1weyRmb28oOkUpfQoraXMg QGNvZGV7aGl9LgorCitAaXRlbSBMCitDb252ZXJ0cyB0aGUgdmFsdWUgdG8gbG93ZXIgY2Fz ZS4KKworQGl0ZW0gVQorQ29udmVydHMgdGhlIHZhbHVlIHRvIHVwcGVyIGNhc2UuCisKK0Bp dGVtIEMKK0NhcGl0YWxpemVzIHRoZSB2YWx1ZS4KKworQGl0ZW0gaAorVHJlYXRpbmcgdGhl IHZhbHVlIGFzIGEgZmlsZSBuYW1lLCBnZXRzIHRoZSBkaXJlY3RvcnkgbmFtZSAodGhlCitg YGhlYWQnJykuICBGb3IgZXhhbXBsZSwgQHNhbXB7Zm9vL2Jhci9iYXouZWwoOmgpfSBleHBh bmRzIHRvCitAY29kZXtmb28vYmFyL30uCisKK0BpdGVtIHQKK1RyZWF0aW5nIHRoZSB2YWx1 ZSBhcyBhIGZpbGUgbmFtZSwgZ2V0cyB0aGUgYmFzZSBuYW1lICh0aGUgYGB0YWlsJycpLgor Rm9yIGV4YW1wbGUsIEBzYW1we2Zvby9iYXIvYmF6LmVsKDpoKX0gZXhwYW5kcyB0byBAY29k ZXtiYXouZWx9LgorCitAaXRlbSBlCitUcmVhdGluZyB0aGUgdmFsdWUgYXMgYSBmaWxlIG5h bWUsIGdldHMgdGhlIGZpbmFsIGV4dGVuc2lvbiBvZiB0aGUKK2ZpbGUsIGV4Y2x1ZGluZyB0 aGUgZG90LiAgRm9yIGV4YW1wbGUsIEBzYW1we2Zvby50YXIuZ3ooOmUpfQorZXhwYW5kcyB0 byBAY29kZXtnen0uCisKK0BpdGVtIHIKK1RyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhIGZpbGUg bmFtZSwgZ2V0cyB0aGUgZmlsZSBuYW1lIGV4Y2x1ZGluZyB0aGUKK2ZpbmFsIGV4dGVuc2lv bi4gIEZvciBleGFtcGxlLCBAc2FtcHtmb28vYmFyL2Jhei50YXIuZ3ooOnIpfSBleHBhbmRz Cit0byBAY29kZXtmb28vYmFyL2Jhei50YXJ9LgorCitAaXRlbSBxCitNYXJrcyB0aGF0IHRo ZSB2YWx1ZSBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYnkgRXNoZWxsIGxpdGVyYWxseSwgc28K K3RoYXQgYW55IHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlIEBjb2RleyR9IG5vIGxvbmdlciBo YXZlIGFueSBzcGVjaWFsCittZWFuaW5nLgorCitAaXRlbSBzL0B2YXJ7cGF0dGVybn0vQHZh cntyZXBsYWNlfS8KK1JlcGxhY2VzIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiB0aGUgcmVndWxh ciBleHByZXNzaW9uIEB2YXJ7cGF0dGVybn0KK3dpdGggQHZhcntyZXBsYWNlfS4gIFNpZ25h bHMgYW4gZXJyb3IgaWYgbm8gbWF0Y2ggaXMgZm91bmQuCisKK0BpdGVtIGdzL0B2YXJ7cGF0 dGVybn0vQHZhcntyZXBsYWNlfS8KK1JlcGxhY2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHJl Z3VsYXIgZXhwcmVzc2lvbiBAdmFye3BhdHRlcm59IHdpdGgKK0B2YXJ7cmVwbGFjZX0uCisK K0BpdGVtIGkvQHZhcntwYXR0ZXJufS8KK0ZpbHRlcnMgYSBsaXN0IG9mIHZhbHVlcyB0byBp bmNsdWRlIG9ubHkgdGhlIGVsZW1lbnRzIG1hdGNoaW5nIHRoZQorcmVndWxhciBleHByZXNz aW9uIEB2YXJ7cGF0dGVybn0uCisKK0BpdGVtIHgvQHZhcntwYXR0ZXJufS8KK0ZpbHRlcnMg YSBsaXN0IG9mIHZhbHVlcyB0byBleGNsdWRlIGFsbCB0aGUgZWxlbWVudHMgbWF0Y2hpbmcg dGhlCityZWd1bGFyIGV4cHJlc3Npb24gQHZhcntwYXR0ZXJufS4KKworQGl0ZW0gUworQGl0 ZW0gUy9AdmFye3BhdHRlcm59LworU3BsaXRzIHRoZSB2YWx1ZSB1c2luZyB0aGUgcmVndWxh ciBleHByZXNzaW9uIEB2YXJ7cGF0dGVybn0gYXMgYQorZGVsaW1pdGVyLiAgSWYgQHZhcntw YXR0ZXJufSBpcyBvbWl0dGVkLCBzcGxpdCBvbiBzcGFjZXMuCisKK0BpdGVtIGoKK0BpdGVt IGovQHZhcntkZWxpbX0vCitKb2lucyBhIGxpc3Qgb2YgdmFsdWVzLCBpbnNlcnRpbmcgdGhl IHN0cmluZyBAdmFye2RlbGltfSBiZXR3ZWVuIGVhY2gKK3ZhbHVlLiAgSWYgQHZhcntkZWxp bX0gaXMgb21pdHRlZCwgdXNlIGEgc2luZ2xlIHNwYWNlIGFzIHRoZQorZGVsaW1pdGVyLgor CitAaXRlbSBvCitTb3J0cyBhIGxpc3Qgb2Ygc3RyaW5ncyBpbiBhc2NlbmRpbmcgbGV4aWNv Z3JhcGhpYyBvcmRlciwgY29tcGFyaW5nCitwYWlycyBvZiBjaGFyYWN0ZXJzIGFjY29yZGlu ZyB0byB0aGVpciBjaGFyYWN0ZXIgY29kZXMgKEBweHJlZntUZXh0CitDb21wYXJpc29uLCAs ICwgZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51YWx9KS4KKworQGl0ZW0g TworU29ydHMgYSBsaXN0IG9mIHN0cmluZ3MgaW4gZGVzY2VuZGluZyBsZXhpY29ncmFwaGlj IG9yZGVyLgorCitAaXRlbSB1CitSZW1vdmVzIGFueSBkdXBsaWNhdGUgZWxlbWVudHMgZnJv bSBhIGxpc3Qgb2YgdmFsdWVzLgorCitAaXRlbSBSCitSZXZlcnNlcyB0aGUgb3JkZXIgb2Yg YSBsaXN0IG9mIHZhbHVlcy4KKworQGVuZCB0YWJsZQorCiBAbm9kZSBJbnB1dC9PdXRwdXQK IEBjaGFwdGVyIElucHV0L091dHB1dAogU2luY2UgRXNoZWxsIGRvZXMgbm90IGNvbW11bmlj YXRlIHdpdGggYSB0ZXJtaW5hbCBsaWtlIG1vc3QgY29tbWFuZApkaWZmIC0tZ2l0IGEvbGlz cC9lc2hlbGwvZW0tcHJlZC5lbCBiL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwKaW5kZXggOTcw MzI5ZTEyYS4uOGFmYzg2ZGQ0MSAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0tcHJlZC5l bAorKysgYi9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCkBAIC02OCw3ICs2OCw3IEBAIGVzaGVs bC1wcmVkLWxvYWQtaG9vawogKGRlZmN1c3RvbSBlc2hlbGwtcHJlZGljYXRlLWFsaXN0CiAg ICcoKD8vIC4gKGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/ZCkpICAgOyBkaXJlY3Rvcmllcwog ICAgICg/LiAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgPy0pKSAgIDsgcmVndWxhciBmaWxl cwotICAgICg/cyAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgP3MpKSAgIDsgc29ja2V0cwor ICAgICg/PSAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgP3MpKSAgIDsgc29ja2V0cwogICAg ICg/cCAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgP3ApKSAgIDsgbmFtZWQgcGlwZXMKICAg ICAoP0AgLiAoZXNoZWxsLXByZWQtZmlsZS10eXBlID9sKSkgICA7IHN5bWJvbGljIGxpbmtz CiAgICAgKD8lIC4gKGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/JSkpICAgOyBhbGxvdyB1c2Vy IHRvIHNwZWNpZnkgKGMgZGVmLikKQEAgLTk3LDggKzk3LDggQEAgZXNoZWxsLXByZWRpY2F0 ZS1hbGlzdAogICAgICAgICAgICAgICAgICAobm90IChmaWxlLXN5bWxpbmstcCBmaWxlKSkK ICAgICAgICAgICAgICAgICAgKGZpbGUtZXhlY3V0YWJsZS1wIGZpbGUpKSkpCiAgICAgKD9s IC4gKGVzaGVsbC1wcmVkLWZpbGUtbGlua3MpKQotICAgICg/dSAuIChlc2hlbGwtcHJlZC11 c2VyLW9yLWdyb3VwID91ICJ1c2VyIiAyICdlc2hlbGwtdXNlci1pZCkpCi0gICAgKD9nIC4g KGVzaGVsbC1wcmVkLXVzZXItb3ItZ3JvdXAgP2cgImdyb3VwIiAzICdlc2hlbGwtZ3JvdXAt aWQpKQorICAgICg/dSAuIChlc2hlbGwtcHJlZC11c2VyLW9yLWdyb3VwID91ICJ1c2VyIiAy ICMnZXNoZWxsLXVzZXItaWQpKQorICAgICg/ZyAuIChlc2hlbGwtcHJlZC11c2VyLW9yLWdy b3VwID9nICJncm91cCIgMyAjJ2VzaGVsbC1ncm91cC1pZCkpCiAgICAgKD9hIC4gKGVzaGVs bC1wcmVkLWZpbGUtdGltZSA/YSAiYWNjZXNzIiA0KSkKICAgICAoP20gLiAoZXNoZWxsLXBy ZWQtZmlsZS10aW1lID9tICJtb2RpZmljYXRpb24iIDUpKQogICAgICg/YyAuIChlc2hlbGwt cHJlZC1maWxlLXRpbWUgP2MgImNoYW5nZSIgNikpCkBAIC0xMTEsMTIgKzExMSw3IEBAIGVz aGVsbC1wcmVkaWNhdGUtYWxpc3QKICAgOnJpc2t5IHQpCiAKIChkZWZjdXN0b20gZXNoZWxs LW1vZGlmaWVyLWFsaXN0Ci0gICcoKD9FIC4gKGxhbWJkYSAobHN0KQotICAgICAgICAgICAg KG1hcGNhcgotICAgICAgICAgICAgIChsYW1iZGEgKHN0cikKLSAgICAgICAgICAgICAgIChl c2hlbGwtc3RyaW5naWZ5Ci0gICAgICAgICAgICAgICAgKGNhciAoZXNoZWxsLXBhcnNlLWFy Z3VtZW50IHN0cikpKSkKLSAgICAgICAgICAgICBsc3QpKSkKKyAgJygoP0UgLiAobGFtYmRh IChsc3QpIChtYXBjYXIgIydlc2hlbGwtZXZhbC1hcmd1bWVudCBsc3QpKSkKICAgICAoP0wg LiAobGFtYmRhIChsc3QpIChtYXBjYXIgIydkb3duY2FzZSBsc3QpKSkKICAgICAoP1UgLiAo bGFtYmRhIChsc3QpIChtYXBjYXIgIyd1cGNhc2UgbHN0KSkpCiAgICAgKD9DIC4gKGxhbWJk YSAobHN0KSAobWFwY2FyICMnY2FwaXRhbGl6ZSBsc3QpKSkKQEAgLTEyOSwxMCArMTI0LDEw IEBAIGVzaGVsbC1tb2RpZmllci1hbGlzdAogICAgICg/cSAuIChsYW1iZGEgKGxzdCkgKG1h cGNhciAjJ2VzaGVsbC1lc2NhcGUtYXJnIGxzdCkpKQogICAgICg/dSAuIChsYW1iZGEgKGxz dCkgKHNlcS11bmlxIGxzdCkpKQogICAgICg/byAuIChsYW1iZGEgKGxzdCkgKHNvcnQgbHN0 ICMnc3RyaW5nLWxlc3NwKSkpCi0gICAgKD9PIC4gKGxhbWJkYSAobHN0KSAobnJldmVyc2Ug KHNvcnQgbHN0ICMnc3RyaW5nLWxlc3NwKSkpKQorICAgICg/TyAuIChsYW1iZGEgKGxzdCkg KHNvcnQgbHN0ICMnc3RyaW5nLWdyZWF0ZXJwKSkpCiAgICAgKD9qIC4gKGVzaGVsbC1qb2lu LW1lbWJlcnMpKQogICAgICg/UyAuIChlc2hlbGwtc3BsaXQtbWVtYmVycykpCi0gICAgKD9S IC4gJ3JldmVyc2UpCisgICAgKD9SIC4gIydyZXZlcnNlKQogICAgICg/ZyAuIChwcm9nbgog CSAgICAoZm9yd2FyZC1jaGFyKQogCSAgICAoaWYgKGVxIChjaGFyLWJlZm9yZSkgP3MpCkBA IC0xNDIsNyArMTM3LDcgQEAgZXNoZWxsLW1vZGlmaWVyLWFsaXN0CiAgICJBIGxpc3Qgb2Yg bW9kaWZpZXJzIHRoYW4gY2FuIGJlIGFwcGxpZWQgdG8gYW4gYXJndW1lbnQgZXhwYW5zaW9u LgogVGhlIGZvcm1hdCBvZiBlYWNoIGVudHJ5IGlzCiAKLSAgKENIQVIgRU5UUllXSVNFLVAg TU9ESUZJRVItRlVOQy1TRVhQKSIKKyAgKENIQVIgLiBNT0RJRklFUi1GVU5DLVNFWFApIgog ICA6dHlwZSAnKHJlcGVhdCAoY29ucyBjaGFyYWN0ZXIgc2V4cCkpCiAgIDpyaXNreSB0KQog CkBAIC0yMTcsOCArMjEyLDggQEAgZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nCiAgIGkv UEFULyAgZXhjbHVkZSBhbGwgbWVtYmVycyBub3QgbWF0Y2hpbmcgUEFUCiAgIHgvUEFULyAg ZXhjbHVkZSBhbGwgbWVtYmVycyBtYXRjaGluZyBQQVQKIAotICBzL3BhdC9tYXRjaC8gIHN1 YnN0aXR1dGUgUEFUIHdpdGggTUFUQ0gKLSAgZy9wYXQvbWF0Y2gvICBzdWJzdGl0dXRlIFBB VCB3aXRoIE1BVENIIGZvciBhbGwgb2NjdXJyZW5jZXMKKyAgcy9wYXQvbWF0Y2gvICAgc3Vi c3RpdHV0ZSBQQVQgd2l0aCBNQVRDSAorICBncy9wYXQvbWF0Y2gvICBzdWJzdGl0dXRlIFBB VCB3aXRoIE1BVENIIGZvciBhbGwgb2NjdXJyZW5jZXMKIAogRVhBTVBMRVM6CiAgICouYyg6 bykgIHNvcnRlZCBsaXN0IG9mIC5jIGZpbGVzIikKQEAgLTUzNCwxOCArNTI5LDE0IEBAIGVz aGVsbC1wcmVkLXN1YnN0aXR1dGUKIAkobGFtYmRhIChsc3QpCiAJICAobWFwY2FyCiAgICAg ICAgICAgIChsYW1iZGEgKHN0cikKLSAgICAgICAgICAgICAobGV0ICgoaSAwKSkKLSAgICAg ICAgICAgICAgICh3aGlsZSAoc2V0cSBpIChzdHJpbmctbWF0Y2ggbWF0Y2ggc3RyIGkpKQot ICAgICAgICAgICAgICAgICAoc2V0cSBzdHIgKHJlcGxhY2UtbWF0Y2ggcmVwbGFjZSB0IG5p bCBzdHIpKSkpCi0gICAgICAgICAgICAgc3RyKQorICAgICAgICAgICAgIChyZXBsYWNlLXJl Z2V4cC1pbi1zdHJpbmcgbWF0Y2ggcmVwbGFjZSBzdHIgdCkpCiAgICAgICAgICAgIGxzdCkp CiAgICAgICAobGFtYmRhIChsc3QpCiAJKG1hcGNhcgogICAgICAgICAgKGxhbWJkYSAoc3Ry KQogICAgICAgICAgICAoaWYgKHN0cmluZy1tYXRjaCBtYXRjaCBzdHIpCi0gICAgICAgICAg ICAgICAoc2V0cSBzdHIgKHJlcGxhY2UtbWF0Y2ggcmVwbGFjZSB0IG5pbCBzdHIpKQotICAg ICAgICAgICAgIChlcnJvciAoY29uY2F0IHN0ciAiOiBzdWJzdGl0dXRpb24gZmFpbGVkIikp KQotICAgICAgICAgICBzdHIpCisgICAgICAgICAgICAgICAocmVwbGFjZS1tYXRjaCByZXBs YWNlIHQgbmlsIHN0cikKKyAgICAgICAgICAgICAoZXJyb3IgKGNvbmNhdCBzdHIgIjogc3Vi c3RpdHV0aW9uIGZhaWxlZCIpKSkpCiAgICAgICAgICBsc3QpKSkpKQogCiAoZGVmdW4gZXNo ZWxsLWluY2x1ZGUtbWVtYmVycyAoJm9wdGlvbmFsIGludmVydC1wKQpAQCAtNTY4LDcgKzU1 OSw3IEBAIGVzaGVsbC1qb2luLW1lbWJlcnMKICAgKGxldCAoKGRlbGltIChjaGFyLWFmdGVy KSkKIAlzdHIgZW5kKQogICAgIChpZiAobm90IChtZW1xIGRlbGltICcoPycgPy8pKSkKLQko c2V0cSBkZWxpbSAiICIpCisJKHNldHEgc3RyICIgIikKICAgICAgIChmb3J3YXJkLWNoYXIp CiAgICAgICAoc2V0cSBlbmQgKGVzaGVsbC1maW5kLWRlbGltaXRlciBkZWxpbSBkZWxpbSBu aWwgbmlsIHQpCiAJICAgIHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChw b2ludCkgZW5kKSkKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwgYi9saXNw L2VzaGVsbC9lc2gtY21kLmVsCmluZGV4IDhiZTExMzZlMzEuLjQyNjE2ZTcwMzcgMTAwNjQ0 Ci0tLSBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLWNt ZC5lbApAQCAtMTAwMiw2ICsxMDAyLDE0IEBAIGVzaGVsbC1pbnZva2UtZGlyZWN0bHkKICAg KGxldCAoKGJhc2UgKGNhZHIgKG50aCAyIChudGggMiAoY2FkciBjb21tYW5kKSkpKSkpCiAg ICAgKGVzaGVsbC0taW52b2tlLWNvbW1hbmQtZGlyZWN0bHkgYmFzZSkpKQogCisoZGVmdW4g ZXNoZWxsLWV2YWwtYXJndW1lbnQgKGFyZ3VtZW50KQorICAiRXZhbHVhdGUgYSBzaW5nbGUg RXNoZWxsIEFSR1VNRU5UIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4iCisgIChsZXQqICgoZm9y bSAoZXNoZWxsLXdpdGgtdGVtcC1jb21tYW5kIGFyZ3VtZW50CisgICAgICAgICAgICAgICAg IChlc2hlbGwtcGFyc2UtYXJndW1lbnQpKSkKKyAgICAgICAgIChyZXN1bHQgKGVzaGVsbC1k by1ldmFsIGZvcm0gdCkpKQorICAgIChjbC1hc3NlcnQgKGVxIChjYXIgcmVzdWx0KSAncXVv dGUpKQorICAgIChjYWRyIHJlc3VsdCkpKQorCiAoZGVmdW4gZXNoZWxsLWV2YWwtY29tbWFu ZCAoY29tbWFuZCAmb3B0aW9uYWwgaW5wdXQpCiAgICJFdmFsdWF0ZSB0aGUgZ2l2ZW4gQ09N TUFORCBpdGVyYXRpdmVseS4iCiAgIChpZiBlc2hlbGwtY3VycmVudC1jb21tYW5kCmRpZmYg LS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwgYi90ZXN0L2xpc3Av ZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uNzRkYWQ5ZjhiOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lc2hl bGwvZW0tcHJlZC10ZXN0cy5lbApAQCAtMCwwICsxLDUyMSBAQAorOzs7IGVtLXByZWQtdGVz dHMuZWwgLS0tIGVtLXByZWQgdGVzdCBzdWl0ZSAgLSotIGxleGljYWwtYmluZGluZzp0IC0q LQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworOzsgR05VIEVt YWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorOzsgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYg bm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1l bnRhcnk6CisKKzs7IFRlc3RzIGZvciBFc2hlbGwncyBhcmd1bWVudCBwcmVkaWNhdGVzL21v ZGlmaWVycy4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWlyZSAnZXNo LW1vZGUpCisocmVxdWlyZSAnZXNoZWxsKQorCisocmVxdWlyZSAnZXNoZWxsLXRlc3RzLWhl bHBlcnMKKyAgICAgICAgIChleHBhbmQtZmlsZS1uYW1lICJlc2hlbGwtdGVzdHMtaGVscGVy cyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtZGlyZWN0b3J5IChv ciBsb2FkLWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRlZmF1bHQtZGlyZWN0b3J5KSkpKQorCisoZGVmdmFyIGVzaGVs bC10ZXN0LXZhbHVlIG5pbCkKKworKGRlZnVuIGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAoaW5p dGlhbC12YWx1ZSBwcmVkaWNhdGUpCisgICJFdmFsdWF0ZSBQUkVESUNBVEUgb24gSU5JVElB TC1WQUxVRSwgcmV0dXJuaW5nIHRoZSByZXN1bHQuCitQUkVESUNBVEUgaXMgYW4gRXNoZWxs IGFyZ3VtZW50IHByZWRpY2F0ZS9tb2RpZmllci4iCisgIChsZXQgKChlc2hlbGwtdGVzdC12 YWx1ZSBpbml0aWFsLXZhbHVlKSkKKyAgICAod2l0aC10ZW1wLWVzaGVsbAorICAgICAoZXNo ZWxsLWluc2VydC1jb21tYW5kCisgICAgICAoZm9ybWF0ICJzZXRxIGVzaGVsbC10ZXN0LXZh bHVlICRlc2hlbGwtdGVzdC12YWx1ZSglcykiIHByZWRpY2F0ZSkpKQorICAgIGVzaGVsbC10 ZXN0LXZhbHVlKSkKKworKGRlZnVuIGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRl cyAoZmlsZSkKKyAgIlBhcnNlIGEgZmFrZSBGSUxFIG5hbWUgdG8gZGV0ZXJtaW5lIGl0cyBh dHRyaWJ1dGVzLgorRmFrZSBmaWxlIG5hbWVzIGFyZSBmaWxlIG5hbWVzIGJlZ2lubmluZyB3 aXRoIFwiL2Zha2UvXCIuICBUaGlzCithbGxvd3MgZGVmaW5pbmcgZmlsZSBuYW1lcyBmb3Ig ZmFrZSBmaWxlcyB3aXRoIHZhcmlvdXMgcHJvcGVydGllcwordG8gcXVlcnkgdmlhIHByZWRp Y2F0ZXMuICBBdHRyaWJ1dGVzIGFyZSB3cml0dGVuIGFzIGEKK2NvbW1hLXNlcGFyYXRlIGxp c3Qgb2YgQVRUUj1WQUxVRSBwYWlycyBhcyB0aGUgZmlsZSdzIGJhc2UgbmFtZSwKK2xpa2U6 CisKKyAgL2Zha2UvdHlwZT0tLG1vZGVzPTA3NTUuZWwKKworVGhlIGZvbGxvd2luZyBhdHRy aWJ1dGVzIGFyZSByZWNvZ25pemVkOgorCisgICogXCJ0eXBlXCI6IEEgc2luZ2xlIGNoYXJh Y3RlciBkZXNjcmliaW5nIHRoZSBmaWxlIHR5cGU7CisgICAgYWNjZXB0cyB0aGUgc2FtZSB2 YWx1ZXMgYXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgZmlsZQorICAgIG1vZGVzIGlu IGBscyAtbCcuCisgICogXCJtb2Rlc1wiOiBUaGUgZmlsZSdzIHBlcm1pc3Npb24gbW9kZXMs IGluIG9jdGFsLgorICAqIFwibGlua3NcIjogVGhlIG51bWJlciBvZiBsaW5rcyB0byB0aGlz IGZpbGUuCisgICogXCJ1aWRcIjogVGhlIFVJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgorICAq IFwiZ2lkXCI6IFRoZSBVSUQgb2YgdGhlIGZpbGUncyBncm91cC4KKyAgKiBcImF0aW1lXCI6 IFRoZSB0aW1lIHRoZSBmaWxlIHdhcyBsYXN0IGFjY2Vzc2VkLCBpbiBzZWNvbmRzCisgICAg c2luY2UgdGhlIFVOSVggZXBvY2guCisgICogXCJtdGltZVwiOiBBcyBcImF0aW1lXCIsIGJ1 dCBmb3IgbW9kaWZpY2F0aW9uIHRpbWUuCisgICogXCJjdGltZVwiOiBBcyBcImF0aW1lXCIs IGJ1dCBmb3IgaW5vZGUgY2hhbmdlIHRpbWUuCisgICogXCJzaXplXCI6IFRoZSBmaWxlJ3Mg c2l6ZSBpbiBieXRlcy4iCisgIChtYXBjYXIgKGxhbWJkYSAoaSkKKyAgICAgICAgICAgIChw Y2FzZSAoc3BsaXQtc3RyaW5nIGkgIj0iKQorICAgICAgICAgICAgICAoYCgibW9kZXMiICxt b2RlcykKKyAgICAgICAgICAgICAgIChjb25zICdtb2RlcyAoc3RyaW5nLXRvLW51bWJlciBt b2RlcyA4KSkpCisgICAgICAgICAgICAgIChgKCwoYW5kIChvciAibGlua3MiICJ1aWQiICJn aWQiICJzaXplIikga2V5KSAsdmFsdWUpCisgICAgICAgICAgICAgICAoY29ucyAoaW50ZXJu IGtleSkgKHN0cmluZy10by1udW1iZXIgdmFsdWUpKSkKKyAgICAgICAgICAgICAgKGAoLChh bmQgKG9yICJhdGltZSIgIm10aW1lIiAiY3RpbWUiKSBrZXkpICx2YWx1ZSkKKyAgICAgICAg ICAgICAgIChjb25zIChpbnRlcm4ga2V5KSAodGltZS1jb252ZXJ0IChzdHJpbmctdG8tbnVt YmVyIHZhbHVlKSkpKQorICAgICAgICAgICAgICAoYCgsa2V5ICx2YWx1ZSkKKyAgICAgICAg ICAgICAgIChjb25zIChpbnRlcm4ga2V5KSB2YWx1ZSkpCisgICAgICAgICAgICAgIChfIChl cnJvciAiaW52YWxpZCBmb3JtYXQgJVMiIGkpKSkpCisgICAgICAgICAgKHNwbGl0LXN0cmlu ZyAoZmlsZS1uYW1lLWJhc2UgZmlsZSkgIiwiKSkpCisKKyhkZWZtYWNybyBlc2hlbGwtcGFy dGlhbC1sZXQtZnVuYyAob3ZlcnJpZGVzICZyZXN0IGJvZHkpCisgICJUZW1wb3JhcmlseSBi aW5kIHRvIEZVTkNUSU9OLU5BTUVzIGFuZCBldmFsdWF0ZSBCT0RZLgorVGhpcyBpcyByb3Vn aGx5IGFuYWxvZ291cyB0byBhZHZpc2luZyBmdW5jdGlvbnMsIGJ1dCBvbmx5IGRvZXMgc28K K3doaWxlIEJPRFkgaXMgZXhlY3V0aW5nLCBhbmQgb25seSBjYWxscyBORVctRlVOQ1RJT04g aWYgaXRzIGZpcnN0Cithcmd1bWVudCBpcyBhIHN0cmluZyBiZWdpbm5pbmcgd2l0aCBcIi9m YWtlL1wiLgorCitUaGlzIGFsbG93cyBzZWxlY3RpdmVseSBvdmVycmlkaW5nIGZ1bmN0aW9u cyB0byB0ZXN0IGZpbGUKK3Byb3BlcnRpZXMgd2l0aCBmYWtlIGZpbGVzIHdpdGhvdXQgYWx0 ZXJpbmcgdGhlIGZ1bmN0aW9ucycKK2JlaGF2aW9yIGZvciByZWFsIGZpbGVzLgorCitcKGZu ICgoRlVOQ1RJT04tTkFNRSBORVctRlVOQ1RJT04pIC4uLikgQk9EWS4uLikiCisgIChkZWNs YXJlIChpbmRlbnQgMSkpCisgIGAoY2wtbGV0ZgorICAgICAgICwobWFwY2FyCisgICAgICAg ICAobGFtYmRhIChvdmVycmlkZSkKKyAgICAgICAgICAgKGxldCAoKG9yaWctZnVuY3Rpb24g KHN5bWJvbC1mdW5jdGlvbiAoY2FyIG92ZXJyaWRlKSkpKQorICAgICAgICAgICAgIGAoKHN5 bWJvbC1mdW5jdGlvbiAjJywoY2FyIG92ZXJyaWRlKSkKKyAgICAgICAgICAgICAgIChsYW1i ZGEgKGZpbGUgJnJlc3QgcmVzdCkKKyAgICAgICAgICAgICAgICAgKGFwcGx5CisgICAgICAg ICAgICAgICAgICAoaWYgKGFuZCAoc3RyaW5ncCBmaWxlKSAoc3RyaW5nLXByZWZpeC1wICIv ZmFrZS8iIGZpbGUpKQorICAgICAgICAgICAgICAgICAgICAgICwoY2FkciBvdmVycmlkZSkK KyAgICAgICAgICAgICAgICAgICAgLG9yaWctZnVuY3Rpb24pCisgICAgICAgICAgICAgICAg ICBmaWxlIHJlc3QpKSkpKQorICAgICAgICAgb3ZlcnJpZGVzKQorICAgICAsQGJvZHkpKQor CisoZGVmbWFjcm8gZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZSAoJnJl c3QgYm9keSkKKyAgIlRlbXBvcmFyaWx5IG92ZXJyaWRlIGZpbGUgYXR0cmlidXRlIGZ1bmN0 aW9ucyBhbmQgZXZhbHVhdGUgQk9EWS4iCisgIChkZWNsYXJlIChpbmRlbnQgMCkpCisgIGAo ZXNoZWxsLXBhcnRpYWwtbGV0LWZ1bmMKKyAgICAgICAoKGZpbGUtYXR0cmlidXRlcworICAg ICAgICAgKGxhbWJkYSAoZmlsZSAmb3B0aW9uYWwgX2lkLWZvcm1hdCkKKyAgICAgICAgICAg KGxldCAoKGF0dHJzIChlc2hlbGwtcGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgZmlsZSkp KQorICAgICAgICAgICAgIChsaXN0IChlcXVhbCAoYWxpc3QtZ2V0ICd0eXBlIGF0dHJzKSAi ZCIpCisgICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1nZXQgJ2xpbmtzIGF0dHJzKSAx KQorICAgICAgICAgICAgICAgICAgIChvciAoYWxpc3QtZ2V0ICd1aWQgYXR0cnMpIDApCisg ICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1nZXQgJ2dpZCBhdHRycykgMCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnYXRpbWUgYXR0cnMpIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnbXRpbWUgYXR0cnMpIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnY3RpbWUgYXR0cnMpIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnc2l6ZSBhdHRycykgMCkKKyAgICAgICAg ICAgICAgICAgICAoZm9ybWF0ICIlcy0tLS0tLS0tLSIgKG9yIChhbGlzdC1nZXQgJ3R5cGUg YXR0cnMpICItIikpCisgICAgICAgICAgICAgICAgICAgbmlsIDAgMCkpKSkKKyAgICAgICAg KGZpbGUtbW9kZXMKKyAgICAgICAgIChsYW1iZGEgKGZpbGUgX25vZm9sbG93KQorICAgICAg ICAgICAobGV0ICgoYXR0cnMgKGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBm aWxlKSkpCisgICAgICAgICAgICAgKG9yIChhbGlzdC1nZXQgJ21vZGVzIGF0dHJzKSAwKSkp KQorICAgICAgICAoZmlsZS1leGlzdHMtcCAjJ2Fsd2F5cykKKyAgICAgICAgKGZpbGUtcmVn dWxhci1wCisgICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAobGV0ICgoYXR0 cnMgKGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAg ICAgICAgKG1lbWJlciAob3IgKGFsaXN0LWdldCAndHlwZSBhdHRycykgIi0iKSAnKCItIiAi bCIpKSkpKQorICAgICAgICAoZmlsZS1zeW1saW5rLXAKKyAgICAgICAgIChsYW1iZGEgKGZp bGUpCisgICAgICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNlLWZpbGUtbmFtZS1h dHRyaWJ1dGVzIGZpbGUpKSkKKyAgICAgICAgICAgICAoZXF1YWwgKGFsaXN0LWdldCAndHlw ZSBhdHRycykgImwiKSkpKQorICAgICAgICAoZmlsZS1leGVjdXRhYmxlLXAKKyAgICAgICAg IChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNl LWZpbGUtbmFtZS1hdHRyaWJ1dGVzIGZpbGUpKSkKKyAgICAgICAgICAgICA7OyBGb3Igc2lt cGxpY2l0eSwganVzdCByZXR1cm4gd2hldGhlciB0aGUgZmlsZSBpcworICAgICAgICAgICAg IDs7IHdvcmxkLWV4ZWN1dGFibGUuCisgICAgICAgICAgICAgKD0gKGxvZ2FuZCAob3IgKGFs aXN0LWdldCAnbW9kZXMgYXR0cnMpIDApIDEpIDEpKSkpKQorICAgICAsQGJvZHkpKQorCis7 OzsgVGVzdHM6CisKKwwKKzs7IEFyZ3VtZW50IHByZWRpY2F0ZXMKKworKGVydC1kZWZ0ZXN0 IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS10eXBlcyAoKQorICAiVGVzdCBmaWxlIHR5 cGUgcHJlZGljYXRlcy4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1u YW1lCisgICAgKGxldCAoKGZpbGVzIChtYXBjYXIgKGxhbWJkYSAoaSkgKGZvcm1hdCAiL2Zh a2UvdHlwZT0lcyIgaSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgJygiYiIgImMiICJk LyIgInAiICJzIiAibCIgIi0iKSkpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyAiJSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS90eXBlPWIiICIvZmFrZS90eXBlPWMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICIlYiIpICcoIi9mYWtlL3R5cGU9YiIpKSkKKyAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIiVjIikg JygiL2Zha2UvdHlwZT1jIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiLyIpICAnKCIvZmFrZS90eXBlPWQvIikpKQorICAgICAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiLiIpICAnKCIvZmFr ZS90eXBlPS0iKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzICJwIikgICcoIi9mYWtlL3R5cGU9cCIpKSkKKyAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIj0iKSAgJygiL2Zha2UvdHlwZT1z IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiQCIpICAnKCIvZmFrZS90eXBlPWwiKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVk LXRlc3QvcHJlZGljYXRlLWV4ZWN1dGFibGUgKCkKKyAgIlRlc3QgdGhhdCBcIipcIiBtYXRj aGVzIG9ubHkgcmVndWxhciwgbm9uLXN5bWxpbmsgZXhlY3V0YWJsZSBmaWxlcy4iCisgIChl c2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVz ICcoIi9mYWtlL21vZGVzPTA3NzciICIvZmFrZS9tb2Rlcz0wNjY2IgorICAgICAgICAgICAg ICAgICAgICIvZmFrZS90eXBlPWQsbW9kZXM9MDc3NyIgIi9mYWtlL3R5cGU9bCxtb2Rlcz0w Nzc3IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBm aWxlcyAiKiIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9tb2Rlcz0wNzc3Iikp KSkpKQorCisoZGVmbWFjcm8gZW0tcHJlZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgKG5h bWUgbW9kZS10ZW1wbGF0ZSBwcmVkaWNhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm9wdGlvbmFsIGRvY3N0cmluZykKKyAgIkRlZmlu ZSBOQU1FIGFzIGEgZmlsZS1tb2RlIHRlc3QuCitNT0RFLVRFTVBMQVRFIGlzIGEgZm9ybWF0 IHN0cmluZyB0byBjb252ZXJ0IGFuIGludGVnZXIgZnJvbSAwIHRvCis3IHRvIGFuIG9jdGFs IGZpbGUgbW9kZS4gIFBSRURJQ0FURVMgaXMgYSBsaXN0IG9mIHN0cmluZ3MgZm9yIHRoZQor cmVhZCwgd3JpdGUsIGFuZCBleGVjdXRlIHByZWRpY2F0ZXMgdG8gcXVlcnkgdGhlIGZpbGUn cyBtb2Rlcy4iCisgIChkZWNsYXJlIChpbmRlbnQgNCkgKGRvYy1zdHJpbmcgNCkpCisgIGAo ZXJ0LWRlZnRlc3QgLG5hbWUgKCkKKyAgICAgLGRvY3N0cmluZworICAgICAoZXNoZWxsLXdp dGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQorICAgICAgIChsZXQgKChmaWxlLXRlbXBs YXRlIChjb25jYXQgIi9mYWtlL21vZGVzPSIgLG1vZGUtdGVtcGxhdGUpKSkKKyAgICAgICAg IChjbC1mbGV0ICgobWFrZS1maWxlcyAocGVybXMpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hcGNhciAobGFtYmRhIChpKSAoZm9ybWF0IGZpbGUtdGVtcGxhdGUgaSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtcykpKQorICAg ICAgICAgICAocGNhc2UtbGV0ICgoZmlsZXMgKG1ha2UtZmlsZXMgKG51bWJlci1zZXF1ZW5j ZSAwIDcpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGAoLHJlYWQgLHdyaXRlICxleGVj KSAscHJlZGljYXRlcykpCisgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyByZWFkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IChtYWtlLWZpbGVzICcoNCA1IDYgNykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVh bCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25jYXQgIl4iIHJlYWQpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMCAxIDIgMykpKSkKKyAg ICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVz IHdyaXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMiAz IDYgNykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzIChjb25jYXQgIl4iIHdyaXRlKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobWFrZS1maWxlcyAnKDAgMSA0IDUpKSkpCisgICAgICAgICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyBleGVjKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMSAzIDUgNykpKSkKKyAgICAgICAg ICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25j YXQgIl4iIGV4ZWMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVz ICcoMCAyIDQgNikpKSkpKSkpKSkKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0 ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1vd25lcgorICAgICIwJW8w MCIgJygiciIgInciICJ4IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1p c3Npb25zIGZvciB0aGUgb3duZXIuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1k ZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1ncm91cAorICAgICIw MCVvMCIgJygiQSIgIkkiICJFIikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBl cm1pc3Npb25zIGZvciB0aGUgZ3JvdXAuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rl cy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy13b3JsZAorICAg ICIwMDAlbyIgJygiUiIgIlciICJYIikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxl IHBlcm1pc3Npb25zIGZvciB0aGUgd29ybGQuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1t b2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1mbGFncwor ICAgICIlbzAwMCIgJygicyIgIlMiICJ0IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBc InNcIiAoc2V0dWlkKSwgXCJTXCIgKHNldGdpZCksIGFuZCBcInRcIiAoc3RpY2t5KS4iKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1lZmZlY3RpdmUtdWlkICgp CisgICJUZXN0IHRoYXQgXCJVXCIgbWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0aGUgZWZmZWN0 aXZlIFVJRC4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisg ICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICd1c2VyLXVpZCkgKGxhbWJkYSAoKSAx KSkpCisgICAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvdWlkPTEiICIvZmFrZS91aWQ9MiIp KSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiVSIpCisgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKSkpKSkK KworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtbGlua3MgKCkKKyAgIlRl c3QgdGhhdCBcImxcIiBmaWx0ZXJzIGJ5IG51bWJlciBvZiBsaW5rcy4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9m YWtlL2xpbmtzPTEiICIvZmFrZS9saW5rcz0yIiAiL2Zha2UvbGlua3M9MyIpKSkKKyAgICAg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImwxIikKKyAg ICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL2xpbmtzPTEiKSkpCisgICAgICAoc2hvdWxk IChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJsKzEiKQorICAgICAgICAg ICAgICAgICAgICAgJygiL2Zha2UvbGlua3M9MiIgIi9mYWtlL2xpbmtzPTMiKSkpCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJsLTMiKQor ICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvbGlua3M9MSIgIi9mYWtlL2xpbmtzPTIi KSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLXVpZCAoKQor ICAiVGVzdCB0aGF0IFwidVwiIGZpbHRlcnMgYnkgVUlEL3VzZXIgbmFtZS4iCisgIChlc2hl bGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICco Ii9mYWtlL3VpZD0xIiAiL2Zha2UvdWlkPTIiKSkKKyAgICAgICAgICAodXNlci1uYW1lcyAn KCJyb290IiAib25lIiAidHdvIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyAidTEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zh a2UvdWlkPTEiKSkpCisgICAgICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2VzaGVs bC11c2VyLWlkKQorICAgICAgICAgICAgICAgICAobGFtYmRhIChuYW1lKSAoc2VxLXBvc2l0 aW9uIHVzZXItbmFtZXMgbmFtZSkpKSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAidSdvbmUnIikKKyAgICAgICAgICAgICAgICAgICAg ICAgJygiL2Zha2UvdWlkPTEiKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUgZmlsZXMgInV7b25lfSIpCisgICAgICAgICAgICAgICAgICAgICAg ICcoIi9mYWtlL3VpZD0xIikpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9w cmVkaWNhdGUtZ2lkICgpCisgICJUZXN0IHRoYXQgXCJnXCIgZmlsdGVycyBieSBHSUQvZ3Jv dXAgbmFtZS4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisg ICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL2dpZD0xIiAiL2Zha2UvZ2lkPTIiKSkKKyAgICAg ICAgICAoZ3JvdXAtbmFtZXMgJygicm9vdCIgIm9uZSIgInR3byIpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImcxIikKKyAgICAgICAg ICAgICAgICAgICAgICcoIi9mYWtlL2dpZD0xIikpKQorICAgICAgKGNsLWxldGYgKCgoc3lt Ym9sLWZ1bmN0aW9uICdlc2hlbGwtZ3JvdXAtaWQpCisgICAgICAgICAgICAgICAgIChsYW1i ZGEgKG5hbWUpIChzZXEtcG9zaXRpb24gZ3JvdXAtbmFtZXMgbmFtZSkpKSkKKyAgICAgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiZydvbmUnIikK KyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvZ2lkPTEiKSkpCisgICAgICAgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImd7b25lfSIpCisg ICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL2dpZD0xIikpKSkpKSkKKworKGRlZm1h Y3JvIGVtLXByZWQtdGVzdC0tdGltZS1kZWZ0ZXN0IChuYW1lIGZpbGUtYXR0cmlidXRlIHBy ZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZv cHRpb25hbCBkb2NzdHJpbmcpCisgICJEZWZpbmUgTkFNRSBhcyBhIGZpbGUtdGltZSB0ZXN0 LgorRklMRS1BVFRSSUJVVEUgaXMgdGhlIGZpbGUncyBhdHRyaWJ1dGUgdG8gc2V0IChlLmcu IFwiYXRpbWVcIikuCitQUkVESUNBVEUgaXMgdGhlIHByZWRpY2F0ZSB1c2VkIHRvIHF1ZXJ5 IHRoYXQgYXR0cmlidXRlLiIKKyAgKGRlY2xhcmUgKGluZGVudCA0KSAoZG9jLXN0cmluZyA0 KSkKKyAgYChlcnQtZGVmdGVzdCAsbmFtZSAoKQorICAgICAsZG9jc3RyaW5nCisgICAgIChl c2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgICAgKGNsLWZsZXQg KChtYWtlLWZpbGUgKHRpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1h dCAiL2Zha2UvJXM9JWQiICxmaWxlLWF0dHJpYnV0ZSB0aW1lKSkpCisgICAgICAgICAobGV0 KiAoKG5vdyAodGltZS1jb252ZXJ0IG5pbCAnaW50ZWdlcikpCisgICAgICAgICAgICAgICAg KHllc3RlcmRheSAoLSBub3cgODY0MDApKQorICAgICAgICAgICAgICAgIChmaWxlcyAobWFw Y2FyICMnbWFrZS1maWxlIChsaXN0IG5vdyB5ZXN0ZXJkYXkpKSkpCisgICAgICAgICAgIDs7 IFRlc3QgY29tcGFyaXNvbiBhZ2FpbnN0IGEgbnVtYmVyIG9mIGRheXMuCisgICAgICAgICAg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiLTEiKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCBub3cpKSkpCisg ICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiKzEiKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCB5 ZXN0ZXJkYXkpKSkpCisgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHBy ZWRpY2F0ZSAiKzIiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsKSkKKyAgICAg ICAgICAgOzsgVGVzdCBjb21wYXJpc29uIGFnYWluc3QgYSBudW1iZXIgb2YgaG91cnMuCisg ICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiaC0xIikp CisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydtYWtlLWZpbGUgKGxpc3Qg bm93KSkpKQorICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcyAoY29uY2F0ICxwcmVkaWNh dGUgImgrMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnbWFrZS1m aWxlIChsaXN0IHllc3RlcmRheSkpKSkKKyAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMg KGNvbmNhdCAscHJlZGljYXRlICIrNDgiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg bmlsKSkKKyAgICAgICAgICAgOzsgVGVzdCBjb21wYXJpc29uIGFnYWluc3QgYW5vdGhlciBm aWxlLgorICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl CisgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcyAoZm9ybWF0ICIlcy0nJXMnIiAs cHJlZGljYXRlIChtYWtlLWZpbGUgbm93KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg IG5pbCkpCisgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChmb3JtYXQgIiVzKyclcyci ICxwcmVkaWNhdGUgKG1ha2UtZmlsZSBub3cpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCB5ZXN0ZXJkYXkpKSkpKSkpKSkKKworKGVt LXByZWQtdGVzdC0tdGltZS1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtYWNjZXNz LXRpbWUKKyAgICAiYXRpbWUiICJhIgorICAgICJUZXN0IHRoYXQgXCJhXCIgZmlsdGVycyBi eSBhY2Nlc3MgdGltZS4iKQorCisoZW0tcHJlZC10ZXN0LS10aW1lLWRlZnRlc3QgZW0tcHJl ZC10ZXN0L3ByZWRpY2F0ZS1tb2RpZmljYXRpb24tdGltZQorICAgICJtdGltZSIgIm0iCisg ICAgIlRlc3QgdGhhdCBcIm1cIiBmaWx0ZXJzIGJ5IGNoYW5nZSB0aW1lLiIpCisKKyhlbS1w cmVkLXRlc3QtLXRpbWUtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWNoYW5nZS10 aW1lCisgICAgImN0aW1lIiAiYyIKKyAgICAiVGVzdCB0aGF0IFwiY1wiIGZpbHRlcnMgYnkg Y2hhbmdlIHRpbWUuIikKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUt c2l6ZSAoKQorICAiVGVzdCB0aGF0IFwiTFwiIGZpbHRlcnMgYnkgZmlsZSBzaXplLiIKKyAg KGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9tLW5hbWUKKyAgICAobGV0ICgoZmls ZXMgJygiL2Zha2Uvc2l6ZT0wIgorICAgICAgICAgICAgICAgICAgIDs7IDEgYW5kIDIgS2lC LgorICAgICAgICAgICAgICAgICAgICIvZmFrZS9zaXplPTEwMjQiICIvZmFrZS9zaXplPTIw NDgiCisgICAgICAgICAgICAgICAgICAgOzsgMSBhbmQgMiBNaUIuCisgICAgICAgICAgICAg ICAgICAgIi9mYWtlL3NpemU9MTA0ODU3NiIgIi9mYWtlL3NpemU9MjA5NzE1MiIpKSkKKyAg ICAgIDs7IFNpemUgaW4gYnl0ZXMuCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2 YWwtcHJlZGljYXRlIGZpbGVzICJMMjA0OCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIv ZmFrZS9zaXplPTIwNDgiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlIGZpbGVzICJMKzIwNDgiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zh a2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zha2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTC0yMDQ4IikKKyAgICAg ICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MCIgIi9mYWtlL3NpemU9MTAyNCIpKSkK KyAgICAgIDs7IFNpemUgaW4gYmxvY2tzLgorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTHA0IikKKyAgICAgICAgICAgICAgICAgICAgICco Ii9mYWtlL3NpemU9MjA0OCIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgIkxwKzQiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zh a2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zha2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTHAtNCIpCisgICAgICAg ICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTAiICIvZmFrZS9zaXplPTEwMjQiKSkpCisg ICAgICA7OyBTaXplIGluIEtpQi4KKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgIkxrMiIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS9zaXplPTIwNDgiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJMaysyIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3Np emU9MTA0ODU3NiIgIi9mYWtlL3NpemU9MjA5NzE1MiIpKSkKKyAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxrLTIiKQorICAgICAgICAgICAg ICAgICAgICAgJygiL2Zha2Uvc2l6ZT0wIiAiL2Zha2Uvc2l6ZT0xMDI0IikpKQorICAgICAg OzsgU2l6ZSBpbiBNaUIuCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJMTTEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6 ZT0xMDQ4NTc2IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAiTE0rMSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXpl PTIwOTcxNTIiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzICJMTS0xIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9 MCIgIi9mYWtlL3NpemU9MTAyNCIgIi9mYWtlL3NpemU9MjA0OCIpKSkpKSkKKworDAorOzsg QXJndW1lbnQgbW9kaWZpZXJzCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZp ZXItZXZhbCAoKQorICAiVGVzdCB0aGF0IFwiOkVcIiByZS1ldmFsdWF0ZXMgdGhlIHZhbHVl LiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiJHtlY2hvIGhp fSIgIjpFIikgImhpIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUKKyAgICAgICAgICAgICAgICAgICcoIiR7ZWNobyBoaX0iICIkKHVwY2FzZSBcImJ5ZVwi KSIpICI6RSIpCisgICAgICAgICAgICAgICAgICcoImhpIiAiQllFIikpKSkKKworKGVydC1k ZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1kb3duY2FzZSAoKQorICAiVGVzdCB0aGF0 IFwiOkxcIiBkb3duY2FzZXMgdmFsdWVzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAiRk9PIiAiOkwiKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiRk9PIiAiQkFSIikgIjpMIikKKyAgICAgICAgICAg ICAgICAgJygiZm9vIiAiYmFyIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9t b2RpZmllci11cGNhc2UgKCkKKyAgIlRlc3QgdGhhdCBcIjpVXCIgdXBjYXNlcyB2YWx1ZXMu IgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6VSIp ICJGT08iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJm b28iICJiYXIiKSAiOlUiKQorICAgICAgICAgICAgICAgICAnKCJGT08iICJCQVIiKSkpKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLWNhcGl0YWxpemUgKCkKKyAg IlRlc3QgdGhhdCBcIjpDXCIgY2FwaXRhbGl6ZXMgdmFsdWVzLiIKKyAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIGJhciIgIjpDIikgIkZvbyBCYXIiKSkK KyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28gYmFyIiAi YmF6IikgIjpDIikKKyAgICAgICAgICAgICAgICAgJygiRm9vIEJhciIgIkJheiIpKSkpCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItZGlybmFtZSAoKQorICAiVGVz dCB0aGF0IFwiOmhcIiByZXR1cm5zIHRoZSBkaXJuYW1lLiIKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjpoIikgIi9wYXRo L3RvLyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAg ICAgICAgICAgICAgICAnKCIvcGF0aC90by9maWxlLmVsIiAiL290aGVyL3BhdGgvIikgIjpo IikKKyAgICAgICAgICAgICAgICAgJygiL3BhdGgvdG8vIiAiL290aGVyL3BhdGgvIikpKSkK KworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1iYXNlbmFtZSAoKQorICAi VGVzdCB0aGF0IFwiOnRcIiByZXR1cm5zIHRoZSBiYXNlbmFtZS4iCisgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgIi9wYXRoL3RvL2ZpbGUuZWwiICI6dCIpICJm aWxlLmVsIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAg ICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUuZWwiICIvb3RoZXIvcGF0aC8iKSAi OnQiKQorICAgICAgICAgICAgICAgICAnKCJmaWxlLmVsIiAiIikpKSkKKworKGVydC1kZWZ0 ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1leHRlbnNpb24gKCkKKyAgIlRlc3QgdGhhdCBc IjplXCIgcmV0dXJucyB0aGUgZXh0ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjplIikgImVsIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAg ICcoIi9wYXRoL3RvL2ZpbGUuZWwiICIvb3RoZXIvcGF0aC8iKSAiOmUiKQorICAgICAgICAg ICAgICAgICAnKCJlbCIgbmlsKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLXNhbnMtZXh0ZW5zaW9uICgpCisgICJUZXN0IHRoYXQgXCI6clwiIHJldHVybnMg dGhlIGZpbGUgbmFtZSBzYW4gZXh0ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjpyIikKKyAgICAgICAgICAg ICAgICAgIi9wYXRoL3RvL2ZpbGUiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgJygiL3BhdGgvdG8vZmlsZS5lbCIgIi9v dGhlci9wYXRoLyIpICI6ciIpCisgICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUi ICIvb3RoZXIvcGF0aC8iKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlm aWVyLXF1b3RlICgpCisgICJUZXN0IHRoYXQgXCI6cVwiIHF1b3RlcyBhcmd1bWVudHMuIgor ICAoc2hvdWxkIChlcXVhbC1pbmNsdWRpbmctcHJvcGVydGllcworICAgICAgICAgICAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIpICI6cSIpCisgICAgICAgICAgIChs aXN0IChlc2hlbGwtZXNjYXBlLWFyZyAiZm9vIikgKGVzaGVsbC1lc2NhcGUtYXJnICJiYXIi KSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zdWJzdGl0dXRl ICgpCisgICJUZXN0IHRoYXQgXCI6cy9QQVQvUkVQL1wiIHJlcGxhY2VzIFBBVCB3aXRoIFJF UCBvbmNlLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFy IiAiOnMvYS8qLyIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiYmFyIiAiOnN8YXwqfCIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOnMvW2FvXS8qLyIp CisgICAgICAgICAgICAgICAgICcoImYqbyIgImIqciIgImIqeiIpKSkKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOnN8 W2FvXXwqfCIpCisgICAgICAgICAgICAgICAgICcoImYqbyIgImIqciIgImIqeiIpKSkpCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItZ2xvYmFsLXN1YnN0aXR1dGUg KCkKKyAgIlRlc3QgdGhhdCBcIjpzL1BBVC9SRVAvXCIgcmVwbGFjZXMgUEFUIHdpdGggUkVQ IGZvciBhbGwgb2NjdXJyZW5jZXMuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlICJmb28iICI6Z3MvYS8qLyIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmdzfGF8KnwiKSAiZm9vIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjpncy9hLyovIikg ImIqciIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJiYXIi ICI6Z3N8YXwqfCIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiZm9vIiAiOmdzL28vTy8iKSAiZk9PIikpCisgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpncy9bYWVpb3Vd LyovIikKKyAgICAgICAgICAgICAgICAgJygiZioqIiAiYipyIiAiYip6IikpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIp ICI6Z3N8W2FlaW91XXwqfCIpCisgICAgICAgICAgICAgICAgICcoImYqKiIgImIqciIgImIq eiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItaW5jbHVkZSAo KQorICAiVGVzdCB0aGF0IFwiOmkvUEFUL1wiIGZpbHRlcnMgZWxlbWVudHMgdG8gaW5jbHVk ZSBvbmx5IG9uZXMgbWF0Y2hpbmcgUEFULiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAiZm9vIiAiOmkvYS8iKSBuaWwpKQorICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6aXxhfCIpIG5pbCkpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjppL2EvIikgImJhciIpKQor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJiYXIiICI6aXxhfCIp ICJiYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJm b28iICJiYXIiICJiYXoiKSAiOmkvYS8iKQorICAgICAgICAgICAgICAgICAnKCJiYXIiICJi YXoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9v IiAiYmFyIiAiYmF6IikgIjppfGF8IikKKyAgICAgICAgICAgICAgICAgJygiYmFyIiAiYmF6 IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1leGNsdWRlICgp CisgICJUZXN0IHRoYXQgXCI6eC9QQVQvXCIgZmlsdGVycyBlbGVtZW50cyB0byBleGNsdWRl IGFueSBtYXRjaGluZyBQQVQuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlICJmb28iICI6eC9hLyIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOnh8YXwiKSAiZm9vIikpCisgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjp4L2EvIikgbmlsKSkKKyAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOnh8YXwiKSBuaWwp KQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJh ciIgImJheiIpICI6eC9hLyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIpKSkKKyAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoi KSAiOnh8YXwiKQorICAgICAgICAgICAgICAgICAnKCJmb28iKSkpKQorCisoZXJ0LWRlZnRl c3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNwbGl0ICgpCisgICJUZXN0IHRoYXQgXCI6U1wi IGFuZCBcIjpTL1BBVC9cIiBzcGxpdCBlbGVtZW50cyBieSBzcGFjZXMgKG9yIFBBVCkuIgor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28gYmFyIGJheiIg IjpTIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6IikpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyBiYXIiICJiYXoiKSAi OlMiKQorICAgICAgICAgICAgICAgICAnKCgiZm9vIiAiYmFyIikgKCJiYXoiKSkpKQorICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28tYmFyLWJheiIgIjpT Ly0vIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6IikpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvby1iYXIiICJiYXoiKSAi OlMvLS8iKQorICAgICAgICAgICAgICAgICAnKCgiZm9vIiAiYmFyIikgKCJiYXoiKSkpKSkK KworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1qb2luICgpCisgICJUZXN0 IHRoYXQgXCI6alwiIGFuZCBcIjpqL0RFTElNL1wiIGpvaW4gZWxlbWVudHMgYnkgc3BhY2Vz IChvciBERUxJTSkuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICJmb28iICI6aiIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOmoiKQorICAgICAgICAgICAgICAgICAi Zm9vIGJhciBiYXoiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAiZm9vIiAiOmovLS8iKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpqLy0vIikKKyAgICAgICAgICAg ICAgICAgImZvby1iYXItYmF6IikpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLXNvcnQgKCkKKyAgIlRlc3QgdGhhdCBcIjpvXCIgc29ydHMgZWxlbWVudHMgaW4g bGV4aWNvZ3JhcGhpYyBvcmRlci4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgImZvbyIgIjpvIikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6byIpCisgICAgICAgICAg ICAgICAgICcoImJhciIgImJheiIgImZvbyIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVk LXRlc3QvbW9kaWZpZXItc29ydC1yZXZlcnNlICgpCisgICJUZXN0IHRoYXQgXCI6b1wiIHNv cnRzIGVsZW1lbnRzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpYyBvcmRlci4iCisgIChzaG91 bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpPIikgImZvbyIpKQor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIg ImJheiIpICI6TyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIgImJheiIgImJhciIpKSkp CisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItdW5pcXVlICgpCisgICJU ZXN0IHRoYXQgXCI6dVwiIGZpbHRlcnMgb3V0IGR1cGxpY2F0ZSBlbGVtZW50cy4iCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjp1IikgImZvbyIp KQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJh ciIgImJheiIpICI6dSIpCisgICAgICAgICAgICAgICAgICcoImZvbyIgImJhciIgImJheiIp KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJi YXIiICJiYXoiICJmb28iKSAiOnUiKQorICAgICAgICAgICAgICAgICAnKCJmb28iICJiYXIi ICJiYXoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXJldmVy c2UgKCkKKyAgIlRlc3QgdGhhdCBcIjpyXCIgcmV2ZXJzZXMgdGhlIG9yZGVyIG9mIGVsZW1l bnRzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAi OlIiKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUg JygiZm9vIiAiYmFyIiAiYmF6IikgIjpSIikKKyAgICAgICAgICAgICAgICAgJygiYmF6IiAi YmFyIiAiZm9vIikpKSkKKworDAorOzsgQ29tYmluYXRpb25zCisKKyhlcnQtZGVmdGVzdCBl bS1wcmVkLXRlc3QvY29tYmluZS1wcmVkaWNhdGUtYW5kLW1vZGlmaWVyICgpCisgICJUZXN0 IGNvbWJpbmF0aW9uIG9mIHByZWRpY2F0ZXMgYW5kIG1vZGlmaWVycy4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9m YWtlL3R5cGU9LS5lbCIgIi9mYWtlL3R5cGU9LS50eHQiICIvZmFrZS90eXBlPXMuZWwiCisg ICAgICAgICAgICAgICAgICAgIi9mYWtlL3N1YmRpci90eXBlPS0uZWwiKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICIuOmU6dSIpCisg ICAgICAgICAgICAgICAgICAgICAnKCJlbCIgInR4dCIpKSkpKSkKKworOzsgZW0tcHJlZC10 ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------218631157F856742B919BFA3 Content-Type: text/plain; charset=UTF-8; name="0003-Add-G-argument-predicate-in-Eshell.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-G-argument-predicate-in-Eshell.patch" RnJvbSAwMDU5NTliYmU5OTk4MTg1YmY5NjAwMzg3YWEzMDhmZmFiYmEwMDcwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTc6NTI6NTUgLTA3MDAKU3ViamVjdDogW1BB VENIIDMvM10gQWRkICdHJyBhcmd1bWVudCBwcmVkaWNhdGUgaW4gRXNoZWxsCgoqIGxpc3Av ZXNoZWxsL2VtLXByZWQuZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBBZGQgJ0cnIHBy ZWRpY2F0ZS4KKGVzaGVsbC1wcmVkaWNhdGUtaGVscC1zdHJpbmcpOiBEb2N1bWVudCBpdC4K CiogdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVsCihlbS1wcmVkLXRlc3QvcHJl ZGljYXRlLWVmZmVjdGl2ZS1naWQpOiBOZXcgdGVzdC4KCiogZG9jL21pc2MvZXNoZWxsLnRl eHQgKEFyZ3VtZW50IFByZWRpY2F0aW9uKTogRG9jdW1lbnQgJ0cnIHByZWRpY2F0ZS4KLS0t CiBkb2MvbWlzYy9lc2hlbGwudGV4aSAgICAgICAgICAgICAgfCAzICsrKwogbGlzcC9lc2hl bGwvZW0tcHJlZC5lbCAgICAgICAgICAgIHwgOSArKysrKy0tLS0KIHRlc3QvbGlzcC9lc2hl bGwvZW0tcHJlZC10ZXN0cy5lbCB8IDggKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9l c2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCmluZGV4IDJiNDlkZGIwM2MuLjg5 ZjViOTUzZjUgMTAwNjQ0Ci0tLSBhL2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9t aXNjL2VzaGVsbC50ZXhpCkBAIC0xMjY2LDYgKzEyNjYsOSBAQCBBcmd1bWVudCBQcmVkaWNh dGVzCiBAaXRlbSBAY29kZXtVfQogTWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0aGUgY3VycmVu dCBlZmZlY3RpdmUgdXNlciBJRC4KIAorQGl0ZW0gQGNvZGV7R30KK01hdGNoZXMgZmlsZXMg b3duZWQgYnkgdGhlIGN1cnJlbnQgZWZmZWN0aXZlIGdyb3VwIElELgorCiBAaXRlbSBAY29k ZXtsQG9wdGlvbntbKy1dfUB2YXJ7bn19CiBNYXRjaGVzIGZpbGVzIHdpdGggQHZhcntufSBs aW5rcy4gIFdpdGggQG9wdGlvbnsrfSAob3IgQG9wdGlvbnstfSksCiBtYXRjaGVzIGZpbGVz IHdpdGggbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pIEB2YXJ7bn0gbGlua3MsCmRpZmYgLS1n aXQgYS9saXNwL2VzaGVsbC9lbS1wcmVkLmVsIGIvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbApp bmRleCA4YWZjODZkZDQxLi5lYjUxMDliODJkIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9l bS1wcmVkLmVsCisrKyBiL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwKQEAgLTg4LDEwICs4OCwx MCBAQCBlc2hlbGwtcHJlZGljYXRlLWFsaXN0CiAgICAgICAgICAgICAoaWYgKGZpbGUtZXhp c3RzLXAgZmlsZSkKICAgICAgICAgICAgICAgICAoPSAoZmlsZS1hdHRyaWJ1dGUtdXNlci1p ZCAoZmlsZS1hdHRyaWJ1dGVzIGZpbGUpKQogICAgICAgICAgICAgICAgICAgICh1c2VyLXVp ZCkpKSkpCi0gICAgOzsgKD9HIC4gKGxhbWJkYSAoZmlsZSkgICAgICAgICAgICAgICA7IG93 bmVkIGJ5IGVmZmVjdGl2ZSBnaWQKLSAgICA7OyAgICAgICAgIChpZiAoZmlsZS1leGlzdHMt cCBmaWxlKQotICAgIDs7ICAgICAgICAgICAgICg9IChmaWxlLWF0dHJpYnV0ZS11c2VyLWlk IChmaWxlLWF0dHJpYnV0ZXMgZmlsZSkpCi0gICAgOzsgICAgICAgICAgICAgICAgKHVzZXIt dWlkKSkpKSkKKyAgICAoP0cgLiAobGFtYmRhIChmaWxlKSAgICAgICAgICAgICAgIDsgb3du ZWQgYnkgZWZmZWN0aXZlIGdpZAorICAgICAgICAgICAgKGlmIChmaWxlLWV4aXN0cy1wIGZp bGUpCisgICAgICAgICAgICAgICAgKD0gKGZpbGUtYXR0cmlidXRlLWdyb3VwLWlkIChmaWxl LWF0dHJpYnV0ZXMgZmlsZSkpCisgICAgICAgICAgICAgICAgICAgKGdyb3VwLWdpZCkpKSkp CiAgICAgKD8qIC4gKGxhbWJkYSAoZmlsZSkKICAgICAgICAgICAgIChhbmQgKGZpbGUtcmVn dWxhci1wIGZpbGUpCiAgICAgICAgICAgICAgICAgIChub3QgKGZpbGUtc3ltbGluay1wIGZp bGUpKQpAQCAtMTYxLDYgKzE2MSw3IEBAIGVzaGVsbC1wcmVkaWNhdGUtaGVscC1zdHJpbmcK IAogT1dORVJTSElQOgogICBVICAgICAgICAgICAgICAgb3duZWQgYnkgZWZmZWN0aXZlIHVp ZAorICBHICAgICAgICAgICAgICAgb3duZWQgYnkgZWZmZWN0aXZlIGdpZAogICB1KFVJRHxc XD0ndXNlclxcPScpICAgb3duZWQgYnkgVUlEL3VzZXIKICAgZyhHSUR8XFw9J2dyb3VwXFw9 JykgIG93bmVkIGJ5IEdJRC9ncm91cAogCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxs L2VtLXByZWQtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwK aW5kZXggNzRkYWQ5ZjhiOC4uZmJmODk0NTIxNSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2Vz aGVsbC9lbS1wcmVkLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10 ZXN0cy5lbApAQCAtMjI1LDYgKzIyNSwxNCBAQCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWVm ZmVjdGl2ZS11aWQKICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAiVSIpCiAgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0x IikpKSkpKSkKIAorKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZWZmZWN0 aXZlLWdpZCAoKQorICAiVGVzdCB0aGF0IFwiR1wiIG1hdGNoZXMgZmlsZXMgb3duZWQgYnkg dGhlIGVmZmVjdGl2ZSBHSUQuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZy b20tbmFtZQorICAgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnZ3JvdXAtZ2lkKSAo bGFtYmRhICgpIDEpKSkKKyAgICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS9naWQ9MSIgIi9m YWtlL2dpZD0yIikpKQorICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJHIikKKyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvZ2lk PTEiKSkpKSkpKQorCiAoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1saW5r cyAoKQogICAiVGVzdCB0aGF0IFwibFwiIGZpbHRlcnMgYnkgbnVtYmVyIG9mIGxpbmtzLiIK ICAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9tLW5hbWUKLS0gCjIuMjUuMQoK --------------218631157F856742B919BFA3-- From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 31 Mar 2022 07:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.164871114416110 (code B ref 54470); Thu, 31 Mar 2022 07:20:01 +0000 Received: (at 54470) by debbugs.gnu.org; 31 Mar 2022 07:19:04 +0000 Received: from localhost ([127.0.0.1]:37622 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZp5D-0004Bl-R5 for submit@debbugs.gnu.org; Thu, 31 Mar 2022 03:19:04 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56976) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nZp5B-0004BH-NP for 54470@debbugs.gnu.org; Thu, 31 Mar 2022 03:19:02 -0400 Received: from [2001:470:142:3::e] (port=52474 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZp56-0001d5-Gq; Thu, 31 Mar 2022 03:18:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=mABPslW+EIIS0RVFzH80AQh4mfcO7gQq0Qu5NpF4k2I=; b=ojsHuso2dRTy MAX9Wx9hl02hmLXREa1FhTO89yBKo2vglk10DYowQBBJsTnFvXnPsoRa80xecgibV91rri1uXejJF nShxUP8sRnVhGjQF9HijnGFuNiJ2byJCbdx2mi7XLHnAuFfObw3MP9XySRn1k3OtyXpJClT3z3yK7 SgGzsQktlyEdmKkbJZF2yq0pdlvm4Ji0iLylcM55NQlFm3WmPn5HC5UF2qqA9OQsm9WZsH3ctzKHA +31mDqevijzRwUbn//Fic1/k7kEqiujS45AwzQ4UeWXzCT+SQ9GOEuQtZbzih++XG+8sM8OLheY95 zL8nhGK610to3rqPYFci/A==; Received: from [87.69.77.57] (port=4626 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nZp56-0006qA-11; Thu, 31 Mar 2022 03:18:56 -0400 Date: Thu, 31 Mar 2022 10:19:05 +0300 Message-Id: <83k0ca7fo6.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Jim Porter on Sun, 20 Mar 2022 13:57:26 -0700) References: <83bky1f6jk.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 54470@debbugs.gnu.org > From: Jim Porter > Date: Sun, 20 Mar 2022 13:57:26 -0700 > > >> +@table @code > >> + > >> +@item * > >> +Matches any string (including the empty string). For example, > >> +@samp{*.el} matches any file with the @file{.el} extension. > > > > You use @code in the @table, but @samp in the body, which will look > > inconsistent in the printed version of the manual. Please use one of > > them (I think @samp is better). > > Done. I only did this for the glob section though. Should I change the > items in the predicates/modifiers to use @samp too? They're different > enough that I'm not quite sure. > > Or would @kbd be better to use here? These are things meant to be typed > by the user into an interactive prompt, after all... For something that user should type, @kbd is appropriate, yes. But since these all are portions of file names, perhaps @file is the best markup. Thanks. From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Richard Stallman Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 01 Apr 2022 04:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: jporterbugs@gmail.com, 54470@debbugs.gnu.org Reply-To: rms@gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.1648786296835 (code B ref 54470); Fri, 01 Apr 2022 04:12:01 +0000 Received: (at 54470) by debbugs.gnu.org; 1 Apr 2022 04:11:36 +0000 Received: from localhost ([127.0.0.1]:40545 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na8dM-0000DP-Fr for submit@debbugs.gnu.org; Fri, 01 Apr 2022 00:11:36 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53348) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1na8dK-0000DA-FI for 54470@debbugs.gnu.org; Fri, 01 Apr 2022 00:11:35 -0400 Received: from [2001:470:142:3::e] (port=46418 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1na8dF-0005Ff-9E; Fri, 01 Apr 2022 00:11:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=mvahHXrbEcvq/nMY22TpoQlKv5+8c5K2z7vGTQWmScs=; b=LcIenBmhJP0z 2wzyrPlrQDvdyAxax1rzhgPrmHKqktCuBNDmzPJqXt5gW7xfWkFJx8Ub57ZZdsY0GfIVGi68rJin9 cQeLxo++t5hyrN6+zGMMU2/7fifAEMrG3B3XVtjXdoeTpSyogP7OL3AD+P/mqsIpgw9Pk4q8+VgDs SkxVJh+ew/4B1Wq3DlXXIRiJcqsm3DI8erGyM1QUPvF/NcGhH6AITZVYa6Mz2UEd/FcBHZA9EbXER L4TZWa28q4/WvuMB91uxyUL4DKMonRJCisPEgOED4Efcq55VdjK2gFEUixcMBbOYs38eZI+kte922 zy6ns7vbfQ7GCDKaCZanHw==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1na8dF-0006Q3-0d; Fri, 01 Apr 2022 00:11:29 -0400 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman In-Reply-To: <83k0ca7fo6.fsf@gnu.org> (message from Eli Zaretskii on Thu, 31 Mar 2022 10:19:05 +0300) References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> Message-Id: Date: Fri, 01 Apr 2022 00:11:29 -0400 X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Or would @kbd be better to use here? These are things meant to be typed > > by the user into an interactive prompt, after all... > For something that user should type, @kbd is appropriate, yes. But > since these all are portions of file names, perhaps @file is the best > markup. @kbd is right for things that are meant specifically and only as keyboard input. All sorts of syntactic entities can be entered as input in certain contexts, but that doesn't mean they should always be written in @kbd. For instance, you can enter a file name as keyboard input. Any file name can be entered that way. But file names are used in many other contexts too. Thus, in general a file name should not be written in @kbd, not even whe you're talking about giving a file name as keyboard input. Perhaps when you're talking about the act of typing a command containing a file name you might use @kbd for that. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Apr 2022 05:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: rms@gnu.org, Eli Zaretskii Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.164887622116973 (code B ref 54470); Sat, 02 Apr 2022 05:11:01 +0000 Received: (at 54470) by debbugs.gnu.org; 2 Apr 2022 05:10:21 +0000 Received: from localhost ([127.0.0.1]:44357 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naW1i-0004Pe-F5 for submit@debbugs.gnu.org; Sat, 02 Apr 2022 01:10:20 -0400 Received: from mail-pl1-f169.google.com ([209.85.214.169]:42658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1naW1e-0004PJ-Bq for 54470@debbugs.gnu.org; Sat, 02 Apr 2022 01:10:17 -0400 Received: by mail-pl1-f169.google.com with SMTP id p17so4095757plo.9 for <54470@debbugs.gnu.org>; Fri, 01 Apr 2022 22:10:14 -0700 (PDT) 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=T4Yz7e6A3OId+fy71iD+vXczAVgzlmpatVwHTlHXwNU=; b=OYiHvHfBNatzc286QMQ+POX5e/wgp8Prbq6NAhmbqaD/5ZXw7nSHwyhMzKHMTUHUXK 91UIGE6g4lRYFYaC6MP/nIB8NUUNJ3IBGCesAJpNjSxXO+aHBDku7GNQ941gM9LgFx55 o+3ibEGzqTT6bEac6xC4mKj+7yIMiDW2gUkHAVMzqhPVCbLEie/Ryn29JE2cO+nCZH9L ed5mdYmGgnT7snthSvIw9X4nskEk3IJl3/4zIRJgzLS+m5r04O1+ARAxX4Kc3YonPEU4 Ftodlzgg/f/3Hf8SdNXDBEHUgTPPrARwQHgNrs3/7sIsPnieckN7nifsqeMJNxlZA5Gn LZzA== 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=T4Yz7e6A3OId+fy71iD+vXczAVgzlmpatVwHTlHXwNU=; b=TjMnqIFisnOcVi3mHs9Kk3T7oeRlvZAzQHPd7XoKU1bj0elvm9dnKmOPvtnyGgMme/ kuDIYKon6dPa0MBj5XVHn2NEB6409Bz/iktX4t2Iox/0p361TmzmtFBrhUXHIgqdBrbS tRATWEq4RV3oJR7UditLg3lN/qf4zGImCqFEJaTkzLULBSLa3FGhjlnTH8fpedJwE/CO Kv8FiUfYYpjcsWLoLr0Yk0Bd+Z0I4SO8QeQxg6QeUGJNSO4b4No1lG2XbPrez/ahOyO1 UnYGz1yJOG/9VgkNcEKZJxTwnaFb1m0+J3JuYH5l6n4pcEfFhIizAEDgX6PpCUX+K8ZV 0h9g== X-Gm-Message-State: AOAM531mlHBuLOl62sozftU/HKytKAhsow+ggd8TmswiE7qt/Logo6GX 9nhNhltcsRjK1E6Q3Oc7KQeNqxn5RCc= X-Google-Smtp-Source: ABdhPJxUzeBgNY1ozjFrRobXaz98m37EnvEIDXRoq+Irkg0R1msML4gl/wHAkGP0x03Bq/33W1v0/A== X-Received: by 2002:a17:902:e812:b0:154:1e0a:ca3b with SMTP id u18-20020a170902e81200b001541e0aca3bmr50422459plg.24.1648876208402; Fri, 01 Apr 2022 22:10:08 -0700 (PDT) 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 q15-20020a056a00150f00b004fb28ea8d9fsm4944309pfu.171.2022.04.01.22.10.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 01 Apr 2022 22:10:07 -0700 (PDT) References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> From: Jim Porter Message-ID: Date: Fri, 1 Apr 2022 22:10:07 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------F7311B8338F8E772EC112537" Content-Language: en-US X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------F7311B8338F8E772EC112537 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 3/31/2022 9:11 PM, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > > Or would @kbd be better to use here? These are things meant to be typed > > > by the user into an interactive prompt, after all... > > > For something that user should type, @kbd is appropriate, yes. But > > since these all are portions of file names, perhaps @file is the best > > markup. > > @kbd is right for things that are meant specifically and only as > keyboard input. Thanks for the explanation. Having thought this over further, I think Eli's suggestion to use @samp makes sense for both the globs and the predicates/modifiers, so I've updated my patches to do this. --------------F7311B8338F8E772EC112537 Content-Type: text/plain; charset=UTF-8; name="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.pa"; filename*1="tch" RnJvbSBhZTNhNjQ3YmFhMWQ2MDVlZDRjMzM5Mzk2MDIzYmU2ZTY3ZjNmMDYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBNYXIgMjAyMiAxNzowNzoyNiAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBBZGQgdW5pdCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgRXNoZWxsIHBh dHRlcm4tYmFzZWQKIGdsb2JzCgoqIGxpc3AvZXNoZWxsL2VtLWdsb2IuZWwgKGVzaGVsbC1l eHRlbmRlZC1nbG9iKTogRml4IGRvY3N0cmluZy4KKGVzaGVsbC1nbG9iLWVudHJpZXMpOiBS ZWZlciB0byAnKiovJyBpbiBlcnJvciAodGVjaG5pY2FsbHksICcqKicgY2FuCmVuZCBhIGds b2IsIGJ1dCBpdCBtZWFucyB0aGUgc2FtZSB0aGluZyBhcyAnKicpLgoKKiB0ZXN0L2xpc3Av ZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWw6IE5ldyBmaWxlLgoKKiBkb2MvbWlzYy9lc2hlbGwu dGV4aSAoR2xvYmJpbmcpOiBEb2N1bWVudCBwYXR0ZXJuLWJhc2VkIGdsb2JzLgotLS0KIGRv Yy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8ICA5NCArKysrKysrKysrKysrKy0t CiBsaXNwL2VzaGVsbC9lbS1nbG9iLmVsICAgICAgICAgICAgfCAgMTQgKystCiB0ZXN0L2xp c3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwgfCAxNzEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDI2MiBpbnNlcnRpb25zKCspLCAxNyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNj L2VzaGVsbC50ZXhpCmluZGV4IDM3MmU0YzNmZmIuLjY0ODkxN2Y2MmQgMTAwNjQ0Ci0tLSBh L2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC0x MDg5LDE1ICsxMDg5LDkxIEBAIERvbGxhcnMgRXhwYW5zaW9uCiAKIEBub2RlIEdsb2JiaW5n CiBAc2VjdGlvbiBHbG9iYmluZwotRXNoZWxsJ3MgZ2xvYmJpbmcgc3ludGF4IGlzIHZlcnkg c2ltaWxhciB0byB0aGF0IG9mIFpzaC4gIFVzZXJzIGNvbWluZwotZnJvbSBCYXNoIGNhbiBz dGlsbCB1c2UgQmFzaC1zdHlsZSBnbG9iYmluZywgYXMgdGhlcmUgYXJlIG5vCi1pbmNvbXBh dGliaWxpdGllcy4gIE1vc3QgZ2xvYmJpbmcgaXMgcGF0dGVybi1iYXNlZCBleHBhbnNpb24s IGJ1dCB0aGVyZQotaXMgYWxzbyBwcmVkaWNhdGUtYmFzZWQgZXhwYW5zaW9uLiAgQHhyZWZ7 RmlsZW5hbWUgR2VuZXJhdGlvbiwgLCAsCi16c2gsIFRoZSBaIFNoZWxsIE1hbnVhbH0sCi1m b3IgZnVsbCBzeW50YXguICBUbyBjdXN0b21pemUgdGhlIHN5bnRheCBhbmQgYmVoYXZpb3Ig b2YgZ2xvYmJpbmcgaW4KLUVzaGVsbCBzZWUgdGhlIEN1c3RvbWl6ZUBmb290bm90ZXtAeHJl ZntFYXN5IEN1c3RvbWl6YXRpb24sICwgLCBlbWFjcywKLVRoZSBHTlUgRW1hY3MgTWFudWFs fS59Ci1ncm91cHMgYGBlc2hlbGwtZ2xvYicnIGFuZCBgYGVzaGVsbC1wcmVkJycuCitAdmlu ZGV4IGVzaGVsbC1nbG9iLWNhc2UtaW5zZW5zaXRpdmUKK0VzaGVsbCdzIGdsb2JiaW5nIHN5 bnRheCBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiBac2gKKyhAcHhyZWZ7RmlsZW5hbWUg R2VuZXJhdGlvbiwgLCAsIHpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSkuICBVc2VycworY29t aW5nIGZyb20gQmFzaCBjYW4gc3RpbGwgdXNlIEJhc2gtc3R5bGUgZ2xvYmJpbmcsIGFzIHRo ZXJlIGFyZSBubworaW5jb21wYXRpYmlsaXRpZXMuCisKK0J5IGRlZmF1bHQsIGdsb2JzIGFy ZSBjYXNlIHNlbnNpdGl2ZSwgZXhjZXB0IG9uIE1TLURPUy9NUy1XaW5kb3dzCitzeXN0ZW1z LiAgWW91IGNhbiBjb250cm9sIHRoaXMgYmVoYXZpb3IgdmlhIHRoZQorQGNvZGV7ZXNoZWxs LWdsb2ItY2FzZS1pbnNlbnNpdGl2ZX0gb3B0aW9uLiAgWW91IGNhbiBmdXJ0aGVyIGN1c3Rv bWl6ZQordGhlIHN5bnRheCBhbmQgYmVoYXZpb3Igb2YgZ2xvYmJpbmcgaW4gRXNoZWxsIHZp YSB0aGUgQ3VzdG9taXplIGdyb3VwCitgYGVzaGVsbC1nbG9iJycgKEBweHJlZntFYXN5IEN1 c3RvbWl6YXRpb24sICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcworTWFudWFsfSkuCisKK0B0 YWJsZSBAc2FtcAorCitAaXRlbSAqCitNYXRjaGVzIGFueSBzdHJpbmcgKGluY2x1ZGluZyB0 aGUgZW1wdHkgc3RyaW5nKS4gIEZvciBleGFtcGxlLAorQHNhbXB7Ki5lbH0gbWF0Y2hlcyBh bnkgZmlsZSB3aXRoIHRoZSBAZmlsZXsuZWx9IGV4dGVuc2lvbi4KKworQGl0ZW0gPworTWF0 Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3Rlci4gIEZvciBleGFtcGxlLCBAc2FtcHs/YXR9IG1h dGNoZXMKK0BmaWxle2NhdH0gYW5kIEBmaWxle2JhdH0sIGJ1dCBub3QgQGZpbGV7Z29hdH0u CisKK0BpdGVtICoqLworTWF0Y2hlcyB6ZXJvIG9yIG1vcmUgc3ViZGlyZWN0b3JpZXMgaW4g YSBmaWxlIG5hbWUuICBGb3IgZXhhbXBsZSwKK0BzYW1weyoqL2Zvby5lbH0gbWF0Y2hlcyBA ZmlsZXtmb28uZWx9LCBAZmlsZXtiYXIvZm9vLmVsfSwKK0BmaWxle2Jhci9iYXovZm9vLmVs fSwgZXRjLiAgTm90ZSB0aGF0IHRoaXMgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGgKK2FueSBv dGhlciBwYXR0ZXJucyBpbiB0aGUgc2FtZSBmaWxlIG5hbWUgc2VnbWVudCwgc28gd2hpbGUK K0BzYW1we2Zvby8qKi9iYXIuZWx9IGlzIGFsbG93ZWQsIEBzYW1we2ZvbyoqL2Jhci5lbH0g aXMgbm90LgorCitAaXRlbSAqKiovCitMaWtlIEBzYW1weyoqL30sIGJ1dCBmb2xsb3dzIHN5 bWxpbmtzIGFzIHdlbGwuCisKK0BjaW5kZXggY2hhcmFjdGVyIHNldHMsIGluIEVzaGVsbCBn bG9iIHBhdHRlcm5zCitAY2luZGV4IGNoYXJhY3RlciBjbGFzc2VzLCBpbiBFc2hlbGwgZ2xv YiBwYXR0ZXJucworQGl0ZW0gWyBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZue2NoYXJhY3Rl ciBzZXR9IChAcHhyZWZ7UmVnZXhwcywgLCAsIGVtYWNzLCBUaGUgR05VCitFbWFjcyBNYW51 YWx9KS4gIEEgY2hhcmFjdGVyIHNldCBtYXRjaGVzIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUg dHdvCiticmFja2V0czsgZm9yIGV4YW1wbGUsIEBzYW1we1thZF19IG1hdGNoZXMgQGZpbGV7 YX0gYW5kIEBmaWxle2R9LiAgWW91CitjYW4gYWxzbyBpbmNsdWRlIHJhbmdlcyBvZiBjaGFy YWN0ZXJzIGluIHRoZSBzZXQgYnkgc2VwYXJhdGluZyB0aGUKK3N0YXJ0IGFuZCBlbmQgd2l0 aCBAc2FtcHstfS4gIFRodXMsIEBzYW1we1thLXpdfSBtYXRjaGVzIGFueQorbG93ZXItY2Fz ZSBAYWNyb255bXtBU0NJSX0gbGV0dGVyLiAgTm90ZSB0aGF0LCB1bmxpa2UgaW4gWnNoLAor Y2hhcmFjdGVyIHJhbmdlcyBhcmUgaW50ZXJwcmV0ZWQgaW4gdGhlIFVuaWNvZGUgY29kZXBv aW50IG9yZGVyLCBub3QKK2luIHRoZSBsb2NhbGUtZGVwZW5kZW50IGNvbGxhdGlvbiBvcmRl ci4KKworQWRkaXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgQGRmbntjaGFyYWN0ZXIgY2xh c3Nlc30gaW4gYSBjaGFyYWN0ZXIKK3NldC4gIEEgQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcg QHNhbXB7Ol19IGVuY2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MKK2luc2lkZSBhIGNoYXJhY3Rl ciBzZXQuICBGb3IgaW5zdGFuY2UsIEBzYW1we1tbOmFsbnVtOl1dfQorbWF0Y2hlcyBhbnkg bGV0dGVyIG9yIGRpZ2l0LiAgQHhyZWZ7Q2hhciBDbGFzc2VzLCAsICwgZWxpc3AsIFRoZSBF bWFjcworTGlzcCBSZWZlcmVuY2UgTWFudWFsfSwgZm9yIGEgbGlzdCBvZiBjaGFyYWN0ZXIg Y2xhc3Nlcy4KKworQGNpbmRleCBjb21wbGVtZW50ZWQgY2hhcmFjdGVyIHNldHMsIGluIEVz aGVsbCBnbG9iIHBhdHRlcm5zCitAaXRlbSBbXiBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZu e2NvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgc2V0fS4gIFRoaXMgYmVoYXZlcyBqdXN0IGxpa2Ug YQorY2hhcmFjdGVyIHNldCwgYnV0IG1hdGNoZXMgYW55IGNoYXJhY3RlciBAZW1waHtleGNl cHR9IHRoZSBvbmVzCitzcGVjaWZpZWQuCisKK0BjaW5kZXggZ3JvdXBzLCBpbiBFc2hlbGwg Z2xvYiBwYXR0ZXJucworQGl0ZW0gKCBAZG90c3t9ICkKK0RlZmluZXMgYSBAZGZue2dyb3Vw fS4gIEEgZ3JvdXAgbWF0Y2hlcyB0aGUgcGF0dGVybiBiZXR3ZWVuIEBzYW1weyh9CithbmQg QHNhbXB7KX0uICBOb3RlIHRoYXQgYSBncm91cCBjYW4gb25seSBtYXRjaCBhIHNpbmdsZSBm aWxlIG5hbWUKK2NvbXBvbmVudCwgc28gYSBAc2FtcHsvfSBpbnNpZGUgYSBncm91cCB3aWxs IHNpZ25hbCBhbiBlcnJvci4KKworQGl0ZW0gQHZhcnt4fXxAdmFye3l9CitJbnNpZGUgb2Yg YSBncm91cCwgbWF0Y2hlcyBlaXRoZXIgQHZhcnt4fSBvciBAdmFye3l9LiAgRm9yIGV4YW1w bGUsCitAc2FtcHtlKG18c2gpLSp9IG1hdGNoZXMgYW55IGZpbGUgYmVnaW5uaW5nIHdpdGgg QGZpbGV7ZW0tfSBvcgorQGZpbGV7ZXNoLX0uCisKK0BpdGVtIEB2YXJ7eH0jCitNYXRjaGVz IHplcm8gb3IgbW9yZSBjb3BpZXMgb2YgdGhlIGdsb2IgcGF0dGVybiBAdmFye3h9LiAgRm9y IGV4YW1wbGUsCitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zi5lbH0sIEBmaWxle2Zv LmVsfSwgQGZpbGV7Zm9vLmVsfSwgZXRjLgorCitAaXRlbSBAdmFye3h9IyMKK01hdGNoZXMg b25lIG9yIG1vcmUgY29waWVzIG9mIHRoZSBnbG9iIHBhdHRlcm4gQHZhcnt4fS4gIFRodXMs CitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zm8uZWx9LCBAZmlsZXtmb28uZWx9LCBA ZmlsZXtmb29vLmVsfSwKK2V0Yy4KKworQGl0ZW0gQHZhcnt4fX5AdmFye3l9CitNYXRjaGVz IGFueXRoaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcGF0dGVybiBAdmFye3h9IGJ1dCBub3QgQHZh cnt5fS4gRm9yCitleGFtcGxlLCBAc2FtcHtbWzpkaWdpdDpdXSN+ND99IG1hdGNoZXMgQGZp bGV7MX0gYW5kIEBmaWxlezEyfSwgYnV0Citub3QgQGZpbGV7NDJ9LiAgTm90ZSB0aGF0IHVu bGlrZSBpbiBac2gsIG9ubHkgYSBzaW5nbGUgQHNhbXB7fn0KK29wZXJhdG9yIGNhbiBiZSB1 c2VkIGluIGEgcGF0dGVybiwgYW5kIGl0IGNhbm5vdCBiZSBpbnNpZGUgb2YgYSBncm91cAor bGlrZSBAc2FtcHsoQHZhcnt4fX5AdmFye3l9KX0uCisKK0BlbmQgdGFibGUKIAogQG5vZGUg SW5wdXQvT3V0cHV0CiBAY2hhcHRlciBJbnB1dC9PdXRwdXQKZGlmZiAtLWdpdCBhL2xpc3Av ZXNoZWxsL2VtLWdsb2IuZWwgYi9saXNwL2VzaGVsbC9lbS1nbG9iLmVsCmluZGV4IDg0MmYy N2E0OTIuLjUyNTMxZmY4OTMgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VtLWdsb2IuZWwK KysrIGIvbGlzcC9lc2hlbGwvZW0tZ2xvYi5lbApAQCAtMjMzLDcgKzIzMywxMCBAQCBlc2hl bGwtZ2xvYi1yZWdleHAKIAkgICAgIlxcJyIpKSkKIAogKGRlZnVuIGVzaGVsbC1leHRlbmRl ZC1nbG9iIChnbG9iKQotICAiUmV0dXJuIGEgbGlzdCBvZiBmaWxlcyBnZW5lcmF0ZWQgZnJv bSBHTE9CLCBwZXJoYXBzIGxvb2tpbmcgZm9yIERJUlMtT05MWS4KKyAgIlJldHVybiBhIGxp c3Qgb2YgZmlsZXMgbWF0Y2hlZCBieSBHTE9CLgorSWYgbm8gZmlsZXMgbWF0Y2gsIHNpZ25h bCBhbiBlcnJvciAoaWYgYGVzaGVsbC1lcnJvci1pZi1uby1nbG9iJworaXMgbm9uLW5pbCks IG9yIG90aGVyd2lzZSByZXR1cm4gR0xPQiBpdHNlbGYuCisKIFRoaXMgZnVuY3Rpb24gYWxt b3N0IGZ1bGx5IHN1cHBvcnRzIHpzaCBzdHlsZSBmaWxlbmFtZSBnZW5lcmF0aW9uCiBzeW50 YXguICBUaGluZ3MgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBhcmU6CiAKQEAgLTI0MywxMiAr MjQ2LDcgQEAgZXNoZWxsLWV4dGVuZGVkLWdsb2IKICAgIGZvb354KGF8YikgIChhfGIpIHdp bGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwcmVkaWNhdGUvbW9kaWZpZXIgbGlzdAogCiBNYWlu bHkgdGhleSBhcmUgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGZpbGUgbWF0Y2hpbmcgaXMgZG9u ZSB3aXRoIEVtYWNzCi1yZWd1bGFyIGV4cHJlc3Npb25zLCBhbmQgdGhlc2UgY2Fubm90IHN1 cHBvcnQgdGhlIGFib3ZlIGNvbnN0cnVjdHMuCi0KLUlmIHRoaXMgcm91dGluZSBmYWlscywg aXQgcmV0dXJucyBuaWwuICBPdGhlcndpc2UsIGl0IHJldHVybnMgYSBsaXN0Ci10aGUgZm9y bToKLQotICAgKElOQ0xVREUtUkVHRVhQIEVYQ0xVREUtUkVHRVhQIChQUkVELUZVTkMtTElT VCkgKE1PRC1GVU5DLUxJU1QpKSIKK3JlZ3VsYXIgZXhwcmVzc2lvbnMsIGFuZCB0aGVzZSBj YW5ub3Qgc3VwcG9ydCB0aGUgYWJvdmUgY29uc3RydWN0cy4iCiAgIChsZXQgKChwYXRocyAo ZXNoZWxsLXNwbGl0LXBhdGggZ2xvYikpCiAgICAgICAgIGVzaGVsbC1nbG9iLW1hdGNoZXMg bWVzc2FnZS1zaG93bikKICAgICAodW53aW5kLXByb3RlY3QKQEAgLTI4Nyw3ICsyODUsNyBA QCBlc2hlbGwtZ2xvYi1lbnRyaWVzCiAJCSAgIGdsb2IgKGNhciBnbG9icykKIAkJICAgbGVu IChsZW5ndGggZ2xvYikpKSkpCiAgICAgKGlmIChhbmQgcmVjdXJzZS1wIChub3QgZ2xvYikp Ci0JKGVycm9yICJgKionIGNhbm5vdCBlbmQgYSBnbG9iYmluZyBwYXR0ZXJuIikpCisJKGVy cm9yICJgKiovJyBjYW5ub3QgZW5kIGEgZ2xvYmJpbmcgcGF0dGVybiIpKQogICAgIChsZXQg KChpbmRleCAxKSkKICAgICAgIChzZXRxIGluY2wgZ2xvYikKICAgICAgICh3aGlsZSAoYW5k IChlcSBpbmNsIGdsb2IpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTk3NmIzMmZmZQotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tZ2xvYi10ZXN0cy5lbApAQCAtMCwwICsxLDE3 MSBAQAorOzs7IGVtLWdsb2ItdGVzdHMuZWwgLS0tIGVtLWdsb2IgdGVzdCBzdWl0ZSAgLSot IGxleGljYWwtYmluZGluZzp0IC0qLQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdO VSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsg R05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25n IHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRlc3RzIGZvciBFc2hlbGwncyBn bG9iIGV4cGFuc2lvbi4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWly ZSAnZW0tZ2xvYikKKworKGRlZm1hY3JvIHdpdGgtZmFrZS1maWxlcyAoZmlsZXMgJnJlc3Qg Ym9keSkKKyAgIkV2YWx1YXRlIEJPRFkgZm9ybXMsIHByZXRlbmRpbmcgdGhhdCBGSUxFUyBl eGlzdCBvbiB0aGUgZmlsZXN5c3RlbS4KK0ZJTEVTIGlzIGEgbGlzdCBvZiBmaWxlIG5hbWVz IHRoYXQgc2hvdWxkIGJlIHJlcG9ydGVkIGFzCithcHByb3ByaWF0ZSBieSBgZmlsZS1uYW1l LWFsbC1jb21wbGV0aW9ucycuICBBbnkgZmlsZSBuYW1lCitjb21wb25lbnQgZW5kaW5nIGlu IFwic3ltbGlua1wiIGlzIHRyZWF0ZWQgYXMgYSBzeW1ib2xpYyBsaW5rLiIKKyAgKGRlY2xh cmUgKGluZGVudCAxKSkKKyAgYChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1u YW1lLWFsbC1jb21wbGV0aW9ucykKKyAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSBkaXJl Y3RvcnkpCisgICAgICAgICAgICAgICAgKGNsLWFzc2VydCAoc3RyaW5nPSBmaWxlICIiKSkK KyAgICAgICAgICAgICAgICAoc2V0cSBkaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5hbWUgZGly ZWN0b3J5KSkKKyAgICAgICAgICAgICAgICBgKCIuLyIgIi4uLyIKKyAgICAgICAgICAgICAg ICAgICxAKGRlbGV0ZS1kdXBzCisgICAgICAgICAgICAgICAgICAgICAocmVtcSBuaWwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldHEgZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh3aGVuIChzdHJpbmctcHJlZml4LXAgZGlyZWN0b3J5IGZpbGUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJp bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvLioiICIvIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlIChsZW5ndGggZGly ZWN0b3J5KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsZmlsZXMpKSkpKSkK KyAgICAgICAgICAgICAoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1zeW1saW5rLXApCisgICAg ICAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgICAgICAgKHN0cmluZy1zdWZm aXgtcCAic3ltbGluayIgZmlsZSkpKSkKKyAgICAgLEBib2R5KSkKKworOzs7IFRlc3RzOgor CisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWFueS1zdHJpbmcgKCkKKyAgIlRl c3QgdGhhdCBcIipcIiBwYXR0ZXJuIG1hdGNoZXMgYW55IHN0cmluZy4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiYS5lbCIgImIuZWwiICJjLnR4dCIgImRpci9hLmVsIikKKyAgICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIiouZWwiKQorICAgICAgICAgICAg ICAgICAgICcoImEuZWwiICJiLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRl c3QvbWF0Y2gtYW55LWNoYXJhY3RlciAoKQorICAiVGVzdCB0aGF0IFwiP1wiIHBhdHRlcm4g bWF0Y2hlcyBhbnkgY2hhcmFjdGVyLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAi Yi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiPy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygi YS5lbCIgImIuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1y ZWN1cnNpdmUgKCkKKyAgIlRlc3QgdGhhdCBcIioqL1wiIHJlY3Vyc2l2ZWx5IG1hdGNoZXMg ZGlyZWN0b3JpZXMuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiY2Nj LmVsIiAiZC50eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJkaXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqKi9h LmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiZGlyL2EuZWwiICJkaXIvc3Vi L2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1yZWN1cnNp dmUtZm9sbG93LXN5bWxpbmtzICgpCisgICJUZXN0IHRoYXQgXCIqKiovXCIgcmVjdXJzaXZl bHkgbWF0Y2hlcyBkaXJlY3RvcmllcywgZm9sbG93aW5nIHN5bWxpbmtzLiIKKyAgKHdpdGgt ZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwi ICJkaXIvc3ViL2EuZWwiCisgICAgICAgICAgICAgICAgICAgICAiZGlyL3N5bWxpbmsvYS5l bCIgInN5bWxpbmsvYS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKQorICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKioqL2EuZWwiKQorICAgICAgICAgICAgICAg ICAgICcoImEuZWwiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIgImRpci9zeW1saW5rL2Eu ZWwiCisgICAgICAgICAgICAgICAgICAgICAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLXJlY3Vyc2l2 ZS1taXhlZCAoKQorICAiVGVzdCBjb21iaW5hdGlvbiBvZiBcIioqL1wiIGFuZCBcIioqKi9c Ii4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZGlyL2EuZWwiICJkaXIvc3ViL2EuZWwiICJk aXIvc3ViMi9hLmVsIgorICAgICAgICAgICAgICAgICAgICAgImRpci9zeW1saW5rL2EuZWwi ICJkaXIvc3ViL3N5bWxpbmsvYS5lbCIgInN5bWxpbmsvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJzeW1saW5rL3N1Yi9hLmVsIiAic3ltbGluay9zdWIvc3ltbGluay9hLmVsIikK KyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioqL3N1Yi8qKiov YS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZGlyL3N1Yi9hLmVsIiAiZGlyL3N1Yi9z eW1saW5rL2EuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICIqKiovc3ViLyoqL2EuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImRpci9zdWIv YS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2It dGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LWluZGl2aWR1YWwgKCkKKyAgIlRlc3QgXCJbLi4u XVwiIGZvciBpbmRpdmlkdWFsIGNoYXJhY3RlcnMuIgorICAod2l0aC1mYWtlLWZpbGVzICco ImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWJdLmVsIikKKyAgICAgICAgICAgICAg ICAgICAnKCJhLmVsIiAiYi5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4 dGVuZGVkLWdsb2IgIlteYWJdLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJjLmVsIiAi ZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rl ci1zZXQtcmFuZ2UgKCkKKyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFyYWN0ZXIgcmFuZ2Vz LiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImMuZWwiICJkLmVsIiAi ZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAi W2EtY10uZWwiKQorICAgICAgICAgICAgICAgICAgICcoImEuZWwiICJiLmVsIiAiYy5lbCIp KSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIlteYS1jXS5l bCIpCisgICAgICAgICAgICAgICAgICAgJygiZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rlci1zZXQtY2xhc3MgKCkKKyAgIlRlc3QgXCJb Li4uXVwiIGZvciBjaGFyYWN0ZXIgY2xhc3Nlcy4iCisgICh3aXRoLWZha2UtZmlsZXMgJygi MS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImRpci9hLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIltbOmFscGhhOl1dLmVsIikKKyAgICAgICAg ICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIgImMuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXls6YWxwaGE6XV0uZWwiKQorICAgICAgICAg ICAgICAgICAgICcoIjEuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9t YXRjaC1jaGFyYWN0ZXItc2V0LW1peGVkICgpCisgICJUZXN0IFwiWy4uLl1cIiB3aXRoIG11 bHRpcGxlIGtpbmRzIG9mIG1lbWJlcnMgYXQgb25jZS4iCisgICh3aXRoLWZha2UtZmlsZXMg JygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWMtZFs6ZGlnaXQ6XV0u ZWwiKQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiICJhLmVsIiAiYy5lbCIgImQuZWwi KSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXmFjLWRb OmRpZ2l0Ol1dLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJiLmVsIikpKSkpCisKKyhl cnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtZ3JvdXAtYWx0ZXJuYXRpdmUgKCkKKyAg IlRlc3QgXCIoeHx5KVwiIG1hdGNoZXMgZWl0aGVyIFwieFwiIG9yIFwieVwiLiIKKyAgKHdp dGgtZmFrZS1maWxlcyAnKCJlbS1hbGlhcy5lbCIgImVtLWJhbm5lci5lbCIgImVzaC1hcmcu ZWwiICJtaXNjLmVsIgorICAgICAgICAgICAgICAgICAgICAgInRlc3QvZW0teHRyYS5lbCIp CisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJlKG18c2gpLSou ZWwiKQorICAgICAgICAgICAgICAgICAgICcoImVtLWFsaWFzLmVsIiAiZW0tYmFubmVyLmVs IiAiZXNoLWFyZy5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNo LW4tb3ItbW9yZS1jaGFyYWN0ZXJzICgpCisgICJUZXN0IHRoYXQgXCJ4I1wiIGFuZCBcIngj XCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBcInhcIi4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiaC5lbCIgImhhLmVsIiAiaGkuZWwiICJoaWkuZWwiICJkaXIvaGkuZWwi KQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiaGkjLmVsIikK KyAgICAgICAgICAgICAgICAgICAnKCJoLmVsIiAiaGkuZWwiICJoaWkuZWwiKSkpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMjLmVsIikKKyAgICAg ICAgICAgICAgICAgICAnKCJoaS5lbCIgImhpaS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLW4tb3ItbW9yZS1ncm91cHMgKCkKKyAgIlRlc3QgdGhhdCBc Iih4KSNcIiBhbmQgXCIoeCkjXCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBc Iih4KVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJoLmVsIiAiaGEuZWwiICJoaS5lbCIg ImhpaS5lbCIgImRpci9oaS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICJoaSMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImguZWwiICJoaS5l bCIgImhpaS5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWds b2IgImhpIyMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImhpLmVsIiAiaGlpLmVsIikp KSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtbi1vci1tb3JlLWNoYXJh Y3Rlci1zZXRzICgpCisgICJUZXN0IHRoYXQgXCJbeF0jXCIgYW5kIFwiW3hdI1wiIG1hdGNo IHplcm8gb3IgbW9yZSBpbnN0YW5jZXMgb2YgXCJbeF1cIi4iCisgICh3aXRoLWZha2UtZmls ZXMgJygidy5lbCIgIndoLmVsIiAid2hhLmVsIiAid2hpLmVsIiAid2hhaGEuZWwiICJkaXIv d2hhLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIndb YWhdIy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygidy5lbCIgIndoLmVsIiAid2hhLmVs IiAid2hhaGEuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICJ3W2FoXSMjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJ3aC5lbCIgIndoYS5l bCIgIndoYWhhLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gt eC1idXQtbm90LXkgKCkKKyAgIlRlc3QgdGhhdCBcInh+eVwiIG1hdGNoZXMgXCJ4XCIgYnV0 IG5vdCBcInlcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiMSIgIjEyIiAiMTIzIiAiNDIi ICJkaXIvMSIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJb WzpkaWdpdDpdXSMjfjQ/IikKKyAgICAgICAgICAgICAgICAgICAnKCIxIiAiMTIiICIxMjMi KSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9uby1tYXRjaGVzICgpCisgICJU ZXN0IGJlaGF2aW9yIHdoZW4gYSBnbG9iIGZhaWxzIHRvIG1hdGNoIGFueSBmaWxlcy4iCisg ICh3aXRoLWZha2UtZmlsZXMgJygiZm9vLmVsIiAiYmFyLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioudHh0IikKKyAgICAgICAgICAgICAgICAg ICAiKi50eHQiKSkKKyAgICAobGV0ICgoZXNoZWxsLWVycm9yLWlmLW5vLWdsb2IgdCkpCisg ICAgICAoc2hvdWxkLWVycm9yIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKi50eHQiKSkpKSkK KworOzsgZW0tZ2xvYi10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------F7311B8338F8E772EC112537 Content-Type: text/plain; charset=UTF-8; name="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.pa"; filename*1="tch" RnJvbSA1YzU5NThmMzgxZGNjZmRlNTMwNmE1YmRjMDY3MTlmMWE4NTkxNzJjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTI6NDE6MTMgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvM10gQWRkIHVuaXQgdGVzdHMgYW5kIGRvY3VtZW50YXRpb24gZm9yIEVzaGVsbAog cHJlZGljYXRlcy9tb2RpZmllcnMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxs LWV2YWwtYXJndW1lbnQpOiBOZXcgZnVuY3Rpb24uCgoqIGxpc3AvZXNoZWxsL2VtLXByZWQu ZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBDaGFuZ2Ugc29ja2V0IGNoYXIKdG8gJz0n LCBzaW5jZSAncycgY29uZmxpY3RzIHdpdGggc2V0dWlkLgooZXNoZWxsLW1vZGlmaWVyLWFs aXN0KTogRml4ICdFJyAoZXZhbCkgbW9kaWZpZXIgYnkgdXNpbmcKJ2VzaGVsbC1ldmFsLWFy Z3VtZW50Jy4gIEFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBvZiAnTycgKHJldmVyc2VkCnNv cnQpIG1vZGlmaWVyLgooZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nKTogRml4IGRvY3Vt ZW50YXRpb24gb2YgZ2xvYmFsCnN1YnN0aXR1dGlvbiBtb2RpZmllci4KKGVzaGVsbC1wcmVk LXN1YnN0aXR1dGUpOiBGaXggaW5maW5pdGUgbG9vcCBpbiBzb21lIGdsb2JhbApzdWJzdGl0 dXRpb25zLgooZXNoZWxsLWpvaW4tbWVtYmVycyk6IEZpeCBqb2luaW5nIHdpdGggaW1wbGlj aXQgIiAiIGRlbGltaXRlci4KCiogdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVs OiBOZXcgZmlsZS4KCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEFyZ3VtZW50IFByZWRpY2F0 aW9uKTogTmV3IHNlY3Rpb24uCi0tLQogZG9jL21pc2MvZXNoZWxsLnRleGkgICAgICAgICAg ICAgIHwgMjQwICsrKysrKysrKysrKysrCiBsaXNwL2VzaGVsbC9lbS1wcmVkLmVsICAgICAg ICAgICAgfCAgMzUgKy0KIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAgICB8ICAg OCArCiB0ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwgfCA1MjEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDc4MiBpbnNlcnRpb25z KCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNo ZWxsL2VtLXByZWQtdGVzdHMuZWwKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4 aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCmluZGV4IDY0ODkxN2Y2MmQuLjJkNTdlNDhlZDgg MTAwNjQ0Ci0tLSBhL2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVs bC50ZXhpCkBAIC0xMDAyLDYgKzEwMDIsNyBAQCBFeHBhbnNpb24KIEBtZW51CiAqIERvbGxh cnMgRXhwYW5zaW9uOjoKICogR2xvYmJpbmc6OgorKiBBcmd1bWVudCBQcmVkaWNhdGlvbiBh bmQgTW9kaWZpY2F0aW9uOjoKIEBlbmQgbWVudQogCiBAbm9kZSBEb2xsYXJzIEV4cGFuc2lv bgpAQCAtMTE3NSw2ICsxMTc2LDI0NSBAQCBHbG9iYmluZwogCiBAZW5kIHRhYmxlCiAKK0Bu b2RlIEFyZ3VtZW50IFByZWRpY2F0aW9uIGFuZCBNb2RpZmljYXRpb24KK0BzZWN0aW9uIEFy Z3VtZW50IFByZWRpY2F0aW9uIGFuZCBNb2RpZmljYXRpb24KK0BjaW5kZXggYXJndW1lbnQg cHJlZGljYXRpb24KK0BjaW5kZXggYXJndW1lbnQgbW9kaWZpY2F0aW9uCitFc2hlbGwgc3Vw cG9ydHMgQGRmbnthcmd1bWVudCBwcmVkaWNhdGlvbn0sIHRvIGZpbHRlciBlbGVtZW50cyBv ZiBhCitnbG9iLCBhbmQgQGRmbnthcmd1bWVudCBtb2RpZmljYXRpb259LCB0byBtYW5pcHVs YXRlIGFyZ3VtZW50IHZhbHVlcy4KK1RoZXNlIGFyZSBzaW1pbGFyIHRvIGdsb2IgcXVhbGlm aWVycyBpbiBac2ggKEBweHJlZntHbG9iIFF1YWxpZmllcnMsICwKKywgenNoLCBUaGUgWiBT aGVsbCBNYW51YWx9KS4KKworUHJlZGljYXRlcyBhbmQgbW9kaWZpZXJzIGFyZSBpbnRyb2R1 Y2VkIHdpdGggQHNhbXB7KEB2YXJ7ZmlsdGVyc30pfQorYWZ0ZXIgYW55IGxpc3QgYXJndW1l bnQsIHdoZXJlIEB2YXJ7ZmlsdGVyc30gaXMgYSBsaXN0IG9mIHByZWRpY2F0ZXMKK29yIG1v ZGlmaWVycy4gIEZvciBleGFtcGxlLCBAc2FtcHsqKC4pfSBleHBhbmRzIHRvIGFsbCByZWd1 bGFyIGZpbGVzCitpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgYW5kIEBzYW1weyooXkBAOlVe dTApfSBleHBhbmRzIHRvIGFsbAorbm9uLXN5bWxpbmtzIG5vdCBvd25lZCBieSBAY29kZXty b290fSwgdXBwZXItY2FzZWQuCisKK1lvdSBjYW4gY3VzdG9taXplIHRoZSBzeW50YXggYW5k IGJlaGF2aW9yIG9mIHByZWRpY2F0ZXMgYW5kIG1vZGlmaWVycworaW4gRXNoZWxsIHZpYSB0 aGUgQ3VzdG9taXplIGdyb3VwIGBgZXNoZWxsLXByZWQnJyAoQHB4cmVme0Vhc3kKK0N1c3Rv bWl6YXRpb24sICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9KS4KKworQG1lbnUK KyogQXJndW1lbnQgUHJlZGljYXRlczo6CisqIEFyZ3VtZW50IE1vZGlmaWVyczo6CitAZW5k IG1lbnUKKworQG5vZGUgQXJndW1lbnQgUHJlZGljYXRlcworQHN1YnNlY3Rpb24gQXJndW1l bnQgUHJlZGljYXRlcworWW91IGNhbiB1c2UgYXJndW1lbnQgcHJlZGljYXRlcyB0byBmaWx0 ZXIgbGlzdHMgb2YgZmlsZSBuYW1lcyBiYXNlZCBvbgordmFyaW91cyBwcm9wZXJ0aWVzIG9m IHRob3NlIGZpbGVzLiAgVGhpcyBpcyBtb3N0IHVzZWZ1bCB3aGVuIGNvbWJpbmVkCit3aXRo IGdsb2JiaW5nLCBidXQgY2FuIGJlIHVzZWQgb24gYW55IGxpc3Qgb2YgZmlsZXMgbmFtZXMu ICBFc2hlbGwKK3N1cHBvcnRzIHRoZSBmb2xsb3dpbmcgYXJndW1lbnQgcHJlZGljYXRlczoK KworQHRhYmxlIEBhc2lzCisKK0BpdGVtIEBzYW1wey99CitNYXRjaGVzIGRpcmVjdG9yaWVz LgorCitAaXRlbSBAc2FtcHsufSBAcnsoUGVyaW9kKX0KK01hdGNoZXMgcmVndWxhciBmaWxl cy4KKworQGl0ZW0gQHNhbXB7QEB9CitNYXRjaGVzIHN5bWJvbGljIGxpbmtzLgorCitAaXRl bSBAc2FtcHs9fQorTWF0Y2hlcyBzb2NrZXRzLgorCitAaXRlbSBAc2FtcHtwfQorTWF0Y2hl cyBuYW1lZCBwaXBlcy4KKworQGl0ZW0gQHNhbXB7JX0KK01hdGNoZXMgYmxvY2sgb3IgY2hh cmFjdGVyIGRldmljZXMuCisKK0BpdGVtIEBzYW1weyVifQorTWF0Y2hlcyBibG9jayBkZXZp Y2VzLgorCitAaXRlbSBAc2FtcHslY30KK01hdGNoZXMgY2hhcmFjdGVyIGRldmljZXMuCisK K0BpdGVtIEBzYW1weyp9CitNYXRjaGVzIHJlZ3VsYXIgZmlsZXMgdGhhdCBjYW4gYmUgZXhl Y3V0ZWQgYnkgdGhlIGN1cnJlbnQgdXNlci4KKworQGl0ZW0gQHNhbXB7cn0KK0BpdGVtIEBz YW1we0F9CitAaXRlbSBAc2FtcHtSfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSByZWFkYWJs ZSBieSB0aGVpciBvd25lcnMgKEBzYW1we3J9KSwgdGhlaXIKK2dyb3VwcyAoQHNhbXB7QX0p LCBvciB0aGUgd29ybGQgKEBzYW1we1J9KS4KKworQGl0ZW0gQHNhbXB7d30KK0BpdGVtIEBz YW1we0l9CitAaXRlbSBAc2FtcHtXfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSB3cml0YWJs ZSBieSB0aGVpciBvd25lcnMgKEBzYW1we3d9KSwgdGhlaXIKK2dyb3VwcyAoQHNhbXB7SX0p LCBvciB0aGUgd29ybGQgKEBzYW1we1d9KS4KKworQGl0ZW0gQHNhbXB7eH0KK0BpdGVtIEBz YW1we0V9CitAaXRlbSBAc2FtcHtYfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSBleGVjdXRh YmxlIGJ5IHRoZWlyIG93bmVycyAoQHNhbXB7eH0pLCB0aGVpcgorZ3JvdXBzIChAc2FtcHtF fSksIG9yIHRoZSB3b3JsZCAoQHNhbXB7WH0pLgorCitAaXRlbSBAc2FtcHtzfQorTWF0Y2hl cyBmaWxlcyB3aXRoIHRoZSBzZXR1aWQgZmxhZyBzZXQuCisKK0BpdGVtIEBzYW1we1N9CitN YXRjaGVzIGZpbGVzIHdpdGggdGhlIHNldGdpZCBmbGFnIHNldC4KKworQGl0ZW0gQHNhbXB7 dH0KK01hdGNoZXMgZmlsZXMgd2l0aCB0aGUgc3RpY2t5IGJpdCBzZXQuCisKK0BpdGVtIEBz YW1we1V9CitNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSB1 c2VyIElELgorCitAaXRlbSBAc2FtcHtsQG9wdGlvbntbKy1dfUB2YXJ7bn19CitNYXRjaGVz IGZpbGVzIHdpdGggQHZhcntufSBsaW5rcy4gIFdpdGggQG9wdGlvbnsrfSAob3IgQG9wdGlv bnstfSksCittYXRjaGVzIGZpbGVzIHdpdGggbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pIEB2 YXJ7bn0gbGlua3MsCityZXNwZWN0aXZlbHkuCisKK0BpdGVtIEBzYW1we3VAdmFye3VpZH19 CitAaXRlbSBAc2FtcHt1J0B2YXJ7dXNlci1uYW1lfSd9CitNYXRjaGVzIGZpbGVzIG93bmVk IGJ5IHVzZXIgSUQgQHZhcnt1aWR9IG9yIHVzZXIgbmFtZSBAdmFye3VzZXItbmFtZX0uCisK K0BpdGVtIEBzYW1we2dAdmFye2dpZH19CitAaXRlbSBAc2FtcHtnJ0B2YXJ7Z3JvdXAtbmFt ZX0nfQorTWF0Y2hlcyBmaWxlcyBvd25lZCBieSBncm91cCBJRCBAdmFye2dpZH0gb3IgZ3Jv dXAgbmFtZQorQHZhcntncm91cC1uYW1lfS4KKworQGl0ZW0gQHNhbXB7YUBvcHRpb257W0B2 YXJ7dW5pdH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQHNhbXB7YUBvcHRpb257 WystXX0nQHZhcntmaWxlfSd9CitNYXRjaGVzIGZpbGVzIGxhc3QgYWNjZXNzZWQgZXhhY3Rs eSBAdmFye259IGRheXMgYWdvLiAgV2l0aCBAb3B0aW9ueyt9Cisob3IgQG9wdGlvbnstfSks IG1hdGNoZXMgZmlsZXMgYWNjZXNzZWQgbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pCitAdmFy e259IGRheXMgYWdvLCByZXNwZWN0aXZlbHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntu fSBpcyBhIHF1YW50aXR5IGluIHRoYXQgdW5pdCBvZiB0aW1lLCBzbworQHNhbXB7YXctMX0g bWF0Y2hlcyBmaWxlcyBsYXN0IGFjY2Vzc2VkIHdpdGhpbiBvbmUgd2Vlay4gIEB2YXJ7dW5p dH0KK2NhbiBiZSBAc2FtcHtNfSAoMzAtZGF5IG1vbnRocyksIEBzYW1we3d9ICh3ZWVrcyks IEBzYW1we2h9IChob3VycyksCitAc2FtcHttfSAobWludXRlcyksIG9yIEBzYW1we3N9IChz ZWNvbmRzKS4KKworSWYgQHZhcntmaWxlfSBpcyBzcGVjaWZpZWQgaW5zdGVhZCwgY29tcGFy ZSBhZ2FpbnN0IHRoZSBtb2RpZmljYXRpb24KK3RpbWUgb2YgQGZpbGV7ZmlsZX0uICBUaHVz LCBAc2FtcHthLSdoZWxsby50eHQnfSBtYXRjaGVzIGFsbCBmaWxlcworYWNjZXNzZWQgYWZ0 ZXIgQGZpbGV7aGVsbG8udHh0fSB3YXMgbGFzdCBhY2Nlc3NlZC4KKworQGl0ZW0gQHNhbXB7 bUBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQHNh bXB7bUBvcHRpb257WystXX0nQHZhcntmaWxlfSd9CitMaWtlIEBzYW1we2F9LCBidXQgZXhh bWluZXMgbW9kaWZpY2F0aW9uIHRpbWUuCisKK0BpdGVtIEBzYW1we2NAb3B0aW9ue1tAdmFy e3VuaXR9XX1Ab3B0aW9ue1srLV19QHZhcntufX0KK0BpdGVtIEBzYW1we2NAb3B0aW9ue1sr LV19J0B2YXJ7ZmlsZX0nfQorTGlrZSBAc2FtcHthfSwgYnV0IGV4YW1pbmVzIHN0YXR1cyBj aGFuZ2UgdGltZS4KKworQGl0ZW0gQHNhbXB7TEBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRp b257WystXX1AdmFye259fQorTWF0Y2hlcyBmaWxlcyBleGFjdGx5IEB2YXJ7bn0gYnl0ZXMg aW4gc2l6ZS4gIFdpdGggQG9wdGlvbnsrfSAob3IKK0BvcHRpb257LX0pLCBtYXRjaGVzIGZp bGVzIGxhcmdlciB0aGFuIChvciBzbWFsbGVyIHRoYW4pIEB2YXJ7bn0KK2J5dGVzLCByZXNw ZWN0aXZlbHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBhIHF1YW50aXR5IGlu IHRoYXQgdW5pdCBvZiBzaXplLCBzbworQHNhbXB7TG0rNX0gbWF0Y2hlcyBmaWxlcyBsYXJn ZXIgdGhhbiA1IE1pQiBpbiBzaXplLiAgQHZhcnt1bml0fSBjYW4KK2JlIG9uZSBvZiB0aGUg Zm9sbG93aW5nIChjYXNlLWluc2Vuc2l0aXZlKSBjaGFyYWN0ZXJzOiBAc2FtcHttfQorKG1l Z2FieXRlcyksIEBzYW1we2t9IChraWxvYnl0ZXMpLCBvciBAc2FtcHtwfSAoNTEyLWJ5dGUg YmxvY2tzKS4KKworQGVuZCB0YWJsZQorCitUaGUgQHNhbXB7Xn0gYW5kIEBzYW1wey19IG9w ZXJhdG9ycyBhcmUgbm90IGFyZ3VtZW50IHByZWRpY2F0ZXMKK3RoZW1zZWx2ZXMsIGJ1dCB0 aGV5IG1vZGlmeSB0aGUgYmVoYXZpb3Igb2YgYWxsIHN1YnNlcXVlbnQgcHJlZGljYXRlcy4K K0BzYW1we159IGludmVydHMgdGhlIG1lYW5pbmcgb2Ygc3Vic2VxdWVudCBwcmVkaWNhdGVz LCBzbworQHNhbXB7KiheUldYKX0gZXhwYW5kcyB0byBhbGwgZmlsZXMgd2hvc2UgcGVybWlz c2lvbnMgZGlzYWxsb3cgdGhlCit3b3JsZCBmcm9tIGFjY2Vzc2luZyB0aGVtIGluIGFueSB3 YXkgKGkuZS4sIHJlYWRpbmcsIHdyaXRpbmcgdG8sIG9yCittb2RpZnlpbmcgdGhlbSkuICBX aGVuIGV4YW1pbmluZyBhIHN5bWJvbGljIGxpbmssIEBzYW1wey19IGFwcGxpZXMgdGhlCitz dWJzZXF1ZW50IHByZWRpY2F0ZXMgdG8gdGhlIGxpbmsncyB0YXJnZXQgaW5zdGVhZCBvZiB0 aGUgbGluayBpdHNlbGYuCisKK0Bub2RlIEFyZ3VtZW50IE1vZGlmaWVycworQHN1YnNlY3Rp b24gQXJndW1lbnQgTW9kaWZpZXJzCitZb3UgY2FuIHVzZSBhcmd1bWVudCBtb2RpZmllcnMg dG8gbWFuaXB1bGF0ZSBhcmd1bWVudCB2YWx1ZXMuICBGb3IKK2V4YW1wbGUsIHlvdSBjYW4g c29ydCBsaXN0cywgcmVtb3ZlIGR1cGxpY2F0ZSB2YWx1ZXMsIGNhcGl0YWxpemUKK3dvcmRz LCBldGMuICBBbGwgYXJndW1lbnQgbW9kaWZpZXJzIGFyZSBwcmVmaXhlZCBieSBAc2FtcHs6 fSwgc28KK0BzYW1weyRleGVjLXBhdGgoOmg6dTp4L15cL2hvbWUvKX0gbGlzdHMgYWxsIG9m IHRoZSB1bmlxdWUgcGFyZW50CitkaXJlY3RvcmllcyBvZiB0aGUgZWxlbWVudHMgaW4gQGNv ZGV7ZXhlYy1wYXRofSwgZXhjbHVkaW5nIHRob3NlIGluCitAZmlsZXsvaG9tZX0uCisKK0B0 YWJsZSBAc2FtcAorCitAaXRlbSBFCitSZS1ldmFsdWF0ZXMgdGhlIHZhbHVlIGFzIGFuIEVz aGVsbCBhcmd1bWVudC4gIEZvciBleGFtcGxlLCBpZgorQHZhcntmb299IGlzIEBjb2RleyIk QHtlY2hvIGhpQH0ifSwgdGhlbiB0aGUgcmVzdWx0IG9mIEBzYW1weyRmb28oOkUpfQoraXMg QGNvZGV7aGl9LgorCitAaXRlbSBMCitDb252ZXJ0cyB0aGUgdmFsdWUgdG8gbG93ZXIgY2Fz ZS4KKworQGl0ZW0gVQorQ29udmVydHMgdGhlIHZhbHVlIHRvIHVwcGVyIGNhc2UuCisKK0Bp dGVtIEMKK0NhcGl0YWxpemVzIHRoZSB2YWx1ZS4KKworQGl0ZW0gaAorVHJlYXRpbmcgdGhl IHZhbHVlIGFzIGEgZmlsZSBuYW1lLCBnZXRzIHRoZSBkaXJlY3RvcnkgbmFtZSAodGhlCitg YGhlYWQnJykuICBGb3IgZXhhbXBsZSwgQHNhbXB7Zm9vL2Jhci9iYXouZWwoOmgpfSBleHBh bmRzIHRvCitAc2FtcHtmb28vYmFyL30uCisKK0BpdGVtIHQKK1RyZWF0aW5nIHRoZSB2YWx1 ZSBhcyBhIGZpbGUgbmFtZSwgZ2V0cyB0aGUgYmFzZSBuYW1lICh0aGUgYGB0YWlsJycpLgor Rm9yIGV4YW1wbGUsIEBzYW1we2Zvby9iYXIvYmF6LmVsKDpoKX0gZXhwYW5kcyB0byBAc2Ft cHtiYXouZWx9LgorCitAaXRlbSBlCitUcmVhdGluZyB0aGUgdmFsdWUgYXMgYSBmaWxlIG5h bWUsIGdldHMgdGhlIGZpbmFsIGV4dGVuc2lvbiBvZiB0aGUKK2ZpbGUsIGV4Y2x1ZGluZyB0 aGUgZG90LiAgRm9yIGV4YW1wbGUsIEBzYW1we2Zvby50YXIuZ3ooOmUpfQorZXhwYW5kcyB0 byBAY29kZXtnen0uCisKK0BpdGVtIHIKK1RyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhIGZpbGUg bmFtZSwgZ2V0cyB0aGUgZmlsZSBuYW1lIGV4Y2x1ZGluZyB0aGUKK2ZpbmFsIGV4dGVuc2lv bi4gIEZvciBleGFtcGxlLCBAc2FtcHtmb28vYmFyL2Jhei50YXIuZ3ooOnIpfSBleHBhbmRz Cit0byBAc2FtcHtmb28vYmFyL2Jhei50YXJ9LgorCitAaXRlbSBxCitNYXJrcyB0aGF0IHRo ZSB2YWx1ZSBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYnkgRXNoZWxsIGxpdGVyYWxseSwgc28K K3RoYXQgYW55IHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlIEBzYW1weyR9IG5vIGxvbmdlciBo YXZlIGFueSBzcGVjaWFsCittZWFuaW5nLgorCitAaXRlbSBzL0B2YXJ7cGF0dGVybn0vQHZh cntyZXBsYWNlfS8KK1JlcGxhY2VzIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiB0aGUgcmVndWxh ciBleHByZXNzaW9uIEB2YXJ7cGF0dGVybn0KK3dpdGggQHZhcntyZXBsYWNlfS4gIFNpZ25h bHMgYW4gZXJyb3IgaWYgbm8gbWF0Y2ggaXMgZm91bmQuCisKK0BpdGVtIGdzL0B2YXJ7cGF0 dGVybn0vQHZhcntyZXBsYWNlfS8KK1JlcGxhY2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHJl Z3VsYXIgZXhwcmVzc2lvbiBAdmFye3BhdHRlcm59IHdpdGgKK0B2YXJ7cmVwbGFjZX0uCisK K0BpdGVtIGkvQHZhcntwYXR0ZXJufS8KK0ZpbHRlcnMgYSBsaXN0IG9mIHZhbHVlcyB0byBp bmNsdWRlIG9ubHkgdGhlIGVsZW1lbnRzIG1hdGNoaW5nIHRoZQorcmVndWxhciBleHByZXNz aW9uIEB2YXJ7cGF0dGVybn0uCisKK0BpdGVtIHgvQHZhcntwYXR0ZXJufS8KK0ZpbHRlcnMg YSBsaXN0IG9mIHZhbHVlcyB0byBleGNsdWRlIGFsbCB0aGUgZWxlbWVudHMgbWF0Y2hpbmcg dGhlCityZWd1bGFyIGV4cHJlc3Npb24gQHZhcntwYXR0ZXJufS4KKworQGl0ZW0gUworQGl0 ZW0gUy9AdmFye3BhdHRlcm59LworU3BsaXRzIHRoZSB2YWx1ZSB1c2luZyB0aGUgcmVndWxh ciBleHByZXNzaW9uIEB2YXJ7cGF0dGVybn0gYXMgYQorZGVsaW1pdGVyLiAgSWYgQHZhcntw YXR0ZXJufSBpcyBvbWl0dGVkLCBzcGxpdCBvbiBzcGFjZXMuCisKK0BpdGVtIGoKK0BpdGVt IGovQHZhcntkZWxpbX0vCitKb2lucyBhIGxpc3Qgb2YgdmFsdWVzLCBpbnNlcnRpbmcgdGhl IHN0cmluZyBAdmFye2RlbGltfSBiZXR3ZWVuIGVhY2gKK3ZhbHVlLiAgSWYgQHZhcntkZWxp bX0gaXMgb21pdHRlZCwgdXNlIGEgc2luZ2xlIHNwYWNlIGFzIHRoZQorZGVsaW1pdGVyLgor CitAaXRlbSBvCitTb3J0cyBhIGxpc3Qgb2Ygc3RyaW5ncyBpbiBhc2NlbmRpbmcgbGV4aWNv Z3JhcGhpYyBvcmRlciwgY29tcGFyaW5nCitwYWlycyBvZiBjaGFyYWN0ZXJzIGFjY29yZGlu ZyB0byB0aGVpciBjaGFyYWN0ZXIgY29kZXMgKEBweHJlZntUZXh0CitDb21wYXJpc29uLCAs ICwgZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51YWx9KS4KKworQGl0ZW0g TworU29ydHMgYSBsaXN0IG9mIHN0cmluZ3MgaW4gZGVzY2VuZGluZyBsZXhpY29ncmFwaGlj IG9yZGVyLgorCitAaXRlbSB1CitSZW1vdmVzIGFueSBkdXBsaWNhdGUgZWxlbWVudHMgZnJv bSBhIGxpc3Qgb2YgdmFsdWVzLgorCitAaXRlbSBSCitSZXZlcnNlcyB0aGUgb3JkZXIgb2Yg YSBsaXN0IG9mIHZhbHVlcy4KKworQGVuZCB0YWJsZQorCiBAbm9kZSBJbnB1dC9PdXRwdXQK IEBjaGFwdGVyIElucHV0L091dHB1dAogU2luY2UgRXNoZWxsIGRvZXMgbm90IGNvbW11bmlj YXRlIHdpdGggYSB0ZXJtaW5hbCBsaWtlIG1vc3QgY29tbWFuZApkaWZmIC0tZ2l0IGEvbGlz cC9lc2hlbGwvZW0tcHJlZC5lbCBiL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwKaW5kZXggOTcw MzI5ZTEyYS4uOGFmYzg2ZGQ0MSAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0tcHJlZC5l bAorKysgYi9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCkBAIC02OCw3ICs2OCw3IEBAIGVzaGVs bC1wcmVkLWxvYWQtaG9vawogKGRlZmN1c3RvbSBlc2hlbGwtcHJlZGljYXRlLWFsaXN0CiAg ICcoKD8vIC4gKGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/ZCkpICAgOyBkaXJlY3Rvcmllcwog ICAgICg/LiAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgPy0pKSAgIDsgcmVndWxhciBmaWxl cwotICAgICg/cyAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgP3MpKSAgIDsgc29ja2V0cwor ICAgICg/PSAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgP3MpKSAgIDsgc29ja2V0cwogICAg ICg/cCAuIChlc2hlbGwtcHJlZC1maWxlLXR5cGUgP3ApKSAgIDsgbmFtZWQgcGlwZXMKICAg ICAoP0AgLiAoZXNoZWxsLXByZWQtZmlsZS10eXBlID9sKSkgICA7IHN5bWJvbGljIGxpbmtz CiAgICAgKD8lIC4gKGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/JSkpICAgOyBhbGxvdyB1c2Vy IHRvIHNwZWNpZnkgKGMgZGVmLikKQEAgLTk3LDggKzk3LDggQEAgZXNoZWxsLXByZWRpY2F0 ZS1hbGlzdAogICAgICAgICAgICAgICAgICAobm90IChmaWxlLXN5bWxpbmstcCBmaWxlKSkK ICAgICAgICAgICAgICAgICAgKGZpbGUtZXhlY3V0YWJsZS1wIGZpbGUpKSkpCiAgICAgKD9s IC4gKGVzaGVsbC1wcmVkLWZpbGUtbGlua3MpKQotICAgICg/dSAuIChlc2hlbGwtcHJlZC11 c2VyLW9yLWdyb3VwID91ICJ1c2VyIiAyICdlc2hlbGwtdXNlci1pZCkpCi0gICAgKD9nIC4g KGVzaGVsbC1wcmVkLXVzZXItb3ItZ3JvdXAgP2cgImdyb3VwIiAzICdlc2hlbGwtZ3JvdXAt aWQpKQorICAgICg/dSAuIChlc2hlbGwtcHJlZC11c2VyLW9yLWdyb3VwID91ICJ1c2VyIiAy ICMnZXNoZWxsLXVzZXItaWQpKQorICAgICg/ZyAuIChlc2hlbGwtcHJlZC11c2VyLW9yLWdy b3VwID9nICJncm91cCIgMyAjJ2VzaGVsbC1ncm91cC1pZCkpCiAgICAgKD9hIC4gKGVzaGVs bC1wcmVkLWZpbGUtdGltZSA/YSAiYWNjZXNzIiA0KSkKICAgICAoP20gLiAoZXNoZWxsLXBy ZWQtZmlsZS10aW1lID9tICJtb2RpZmljYXRpb24iIDUpKQogICAgICg/YyAuIChlc2hlbGwt cHJlZC1maWxlLXRpbWUgP2MgImNoYW5nZSIgNikpCkBAIC0xMTEsMTIgKzExMSw3IEBAIGVz aGVsbC1wcmVkaWNhdGUtYWxpc3QKICAgOnJpc2t5IHQpCiAKIChkZWZjdXN0b20gZXNoZWxs LW1vZGlmaWVyLWFsaXN0Ci0gICcoKD9FIC4gKGxhbWJkYSAobHN0KQotICAgICAgICAgICAg KG1hcGNhcgotICAgICAgICAgICAgIChsYW1iZGEgKHN0cikKLSAgICAgICAgICAgICAgIChl c2hlbGwtc3RyaW5naWZ5Ci0gICAgICAgICAgICAgICAgKGNhciAoZXNoZWxsLXBhcnNlLWFy Z3VtZW50IHN0cikpKSkKLSAgICAgICAgICAgICBsc3QpKSkKKyAgJygoP0UgLiAobGFtYmRh IChsc3QpIChtYXBjYXIgIydlc2hlbGwtZXZhbC1hcmd1bWVudCBsc3QpKSkKICAgICAoP0wg LiAobGFtYmRhIChsc3QpIChtYXBjYXIgIydkb3duY2FzZSBsc3QpKSkKICAgICAoP1UgLiAo bGFtYmRhIChsc3QpIChtYXBjYXIgIyd1cGNhc2UgbHN0KSkpCiAgICAgKD9DIC4gKGxhbWJk YSAobHN0KSAobWFwY2FyICMnY2FwaXRhbGl6ZSBsc3QpKSkKQEAgLTEyOSwxMCArMTI0LDEw IEBAIGVzaGVsbC1tb2RpZmllci1hbGlzdAogICAgICg/cSAuIChsYW1iZGEgKGxzdCkgKG1h cGNhciAjJ2VzaGVsbC1lc2NhcGUtYXJnIGxzdCkpKQogICAgICg/dSAuIChsYW1iZGEgKGxz dCkgKHNlcS11bmlxIGxzdCkpKQogICAgICg/byAuIChsYW1iZGEgKGxzdCkgKHNvcnQgbHN0 ICMnc3RyaW5nLWxlc3NwKSkpCi0gICAgKD9PIC4gKGxhbWJkYSAobHN0KSAobnJldmVyc2Ug KHNvcnQgbHN0ICMnc3RyaW5nLWxlc3NwKSkpKQorICAgICg/TyAuIChsYW1iZGEgKGxzdCkg KHNvcnQgbHN0ICMnc3RyaW5nLWdyZWF0ZXJwKSkpCiAgICAgKD9qIC4gKGVzaGVsbC1qb2lu LW1lbWJlcnMpKQogICAgICg/UyAuIChlc2hlbGwtc3BsaXQtbWVtYmVycykpCi0gICAgKD9S IC4gJ3JldmVyc2UpCisgICAgKD9SIC4gIydyZXZlcnNlKQogICAgICg/ZyAuIChwcm9nbgog CSAgICAoZm9yd2FyZC1jaGFyKQogCSAgICAoaWYgKGVxIChjaGFyLWJlZm9yZSkgP3MpCkBA IC0xNDIsNyArMTM3LDcgQEAgZXNoZWxsLW1vZGlmaWVyLWFsaXN0CiAgICJBIGxpc3Qgb2Yg bW9kaWZpZXJzIHRoYW4gY2FuIGJlIGFwcGxpZWQgdG8gYW4gYXJndW1lbnQgZXhwYW5zaW9u LgogVGhlIGZvcm1hdCBvZiBlYWNoIGVudHJ5IGlzCiAKLSAgKENIQVIgRU5UUllXSVNFLVAg TU9ESUZJRVItRlVOQy1TRVhQKSIKKyAgKENIQVIgLiBNT0RJRklFUi1GVU5DLVNFWFApIgog ICA6dHlwZSAnKHJlcGVhdCAoY29ucyBjaGFyYWN0ZXIgc2V4cCkpCiAgIDpyaXNreSB0KQog CkBAIC0yMTcsOCArMjEyLDggQEAgZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nCiAgIGkv UEFULyAgZXhjbHVkZSBhbGwgbWVtYmVycyBub3QgbWF0Y2hpbmcgUEFUCiAgIHgvUEFULyAg ZXhjbHVkZSBhbGwgbWVtYmVycyBtYXRjaGluZyBQQVQKIAotICBzL3BhdC9tYXRjaC8gIHN1 YnN0aXR1dGUgUEFUIHdpdGggTUFUQ0gKLSAgZy9wYXQvbWF0Y2gvICBzdWJzdGl0dXRlIFBB VCB3aXRoIE1BVENIIGZvciBhbGwgb2NjdXJyZW5jZXMKKyAgcy9wYXQvbWF0Y2gvICAgc3Vi c3RpdHV0ZSBQQVQgd2l0aCBNQVRDSAorICBncy9wYXQvbWF0Y2gvICBzdWJzdGl0dXRlIFBB VCB3aXRoIE1BVENIIGZvciBhbGwgb2NjdXJyZW5jZXMKIAogRVhBTVBMRVM6CiAgICouYyg6 bykgIHNvcnRlZCBsaXN0IG9mIC5jIGZpbGVzIikKQEAgLTUzNCwxOCArNTI5LDE0IEBAIGVz aGVsbC1wcmVkLXN1YnN0aXR1dGUKIAkobGFtYmRhIChsc3QpCiAJICAobWFwY2FyCiAgICAg ICAgICAgIChsYW1iZGEgKHN0cikKLSAgICAgICAgICAgICAobGV0ICgoaSAwKSkKLSAgICAg ICAgICAgICAgICh3aGlsZSAoc2V0cSBpIChzdHJpbmctbWF0Y2ggbWF0Y2ggc3RyIGkpKQot ICAgICAgICAgICAgICAgICAoc2V0cSBzdHIgKHJlcGxhY2UtbWF0Y2ggcmVwbGFjZSB0IG5p bCBzdHIpKSkpCi0gICAgICAgICAgICAgc3RyKQorICAgICAgICAgICAgIChyZXBsYWNlLXJl Z2V4cC1pbi1zdHJpbmcgbWF0Y2ggcmVwbGFjZSBzdHIgdCkpCiAgICAgICAgICAgIGxzdCkp CiAgICAgICAobGFtYmRhIChsc3QpCiAJKG1hcGNhcgogICAgICAgICAgKGxhbWJkYSAoc3Ry KQogICAgICAgICAgICAoaWYgKHN0cmluZy1tYXRjaCBtYXRjaCBzdHIpCi0gICAgICAgICAg ICAgICAoc2V0cSBzdHIgKHJlcGxhY2UtbWF0Y2ggcmVwbGFjZSB0IG5pbCBzdHIpKQotICAg ICAgICAgICAgIChlcnJvciAoY29uY2F0IHN0ciAiOiBzdWJzdGl0dXRpb24gZmFpbGVkIikp KQotICAgICAgICAgICBzdHIpCisgICAgICAgICAgICAgICAocmVwbGFjZS1tYXRjaCByZXBs YWNlIHQgbmlsIHN0cikKKyAgICAgICAgICAgICAoZXJyb3IgKGNvbmNhdCBzdHIgIjogc3Vi c3RpdHV0aW9uIGZhaWxlZCIpKSkpCiAgICAgICAgICBsc3QpKSkpKQogCiAoZGVmdW4gZXNo ZWxsLWluY2x1ZGUtbWVtYmVycyAoJm9wdGlvbmFsIGludmVydC1wKQpAQCAtNTY4LDcgKzU1 OSw3IEBAIGVzaGVsbC1qb2luLW1lbWJlcnMKICAgKGxldCAoKGRlbGltIChjaGFyLWFmdGVy KSkKIAlzdHIgZW5kKQogICAgIChpZiAobm90IChtZW1xIGRlbGltICcoPycgPy8pKSkKLQko c2V0cSBkZWxpbSAiICIpCisJKHNldHEgc3RyICIgIikKICAgICAgIChmb3J3YXJkLWNoYXIp CiAgICAgICAoc2V0cSBlbmQgKGVzaGVsbC1maW5kLWRlbGltaXRlciBkZWxpbSBkZWxpbSBu aWwgbmlsIHQpCiAJICAgIHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChw b2ludCkgZW5kKSkKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwgYi9saXNw L2VzaGVsbC9lc2gtY21kLmVsCmluZGV4IDhiZTExMzZlMzEuLjQyNjE2ZTcwMzcgMTAwNjQ0 Ci0tLSBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLWNt ZC5lbApAQCAtMTAwMiw2ICsxMDAyLDE0IEBAIGVzaGVsbC1pbnZva2UtZGlyZWN0bHkKICAg KGxldCAoKGJhc2UgKGNhZHIgKG50aCAyIChudGggMiAoY2FkciBjb21tYW5kKSkpKSkpCiAg ICAgKGVzaGVsbC0taW52b2tlLWNvbW1hbmQtZGlyZWN0bHkgYmFzZSkpKQogCisoZGVmdW4g ZXNoZWxsLWV2YWwtYXJndW1lbnQgKGFyZ3VtZW50KQorICAiRXZhbHVhdGUgYSBzaW5nbGUg RXNoZWxsIEFSR1VNRU5UIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4iCisgIChsZXQqICgoZm9y bSAoZXNoZWxsLXdpdGgtdGVtcC1jb21tYW5kIGFyZ3VtZW50CisgICAgICAgICAgICAgICAg IChlc2hlbGwtcGFyc2UtYXJndW1lbnQpKSkKKyAgICAgICAgIChyZXN1bHQgKGVzaGVsbC1k by1ldmFsIGZvcm0gdCkpKQorICAgIChjbC1hc3NlcnQgKGVxIChjYXIgcmVzdWx0KSAncXVv dGUpKQorICAgIChjYWRyIHJlc3VsdCkpKQorCiAoZGVmdW4gZXNoZWxsLWV2YWwtY29tbWFu ZCAoY29tbWFuZCAmb3B0aW9uYWwgaW5wdXQpCiAgICJFdmFsdWF0ZSB0aGUgZ2l2ZW4gQ09N TUFORCBpdGVyYXRpdmVseS4iCiAgIChpZiBlc2hlbGwtY3VycmVudC1jb21tYW5kCmRpZmYg LS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwgYi90ZXN0L2xpc3Av ZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uNzRkYWQ5ZjhiOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lc2hl bGwvZW0tcHJlZC10ZXN0cy5lbApAQCAtMCwwICsxLDUyMSBAQAorOzs7IGVtLXByZWQtdGVz dHMuZWwgLS0tIGVtLXByZWQgdGVzdCBzdWl0ZSAgLSotIGxleGljYWwtYmluZGluZzp0IC0q LQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworOzsgR05VIEVt YWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorOzsgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYg bm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1l bnRhcnk6CisKKzs7IFRlc3RzIGZvciBFc2hlbGwncyBhcmd1bWVudCBwcmVkaWNhdGVzL21v ZGlmaWVycy4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWlyZSAnZXNo LW1vZGUpCisocmVxdWlyZSAnZXNoZWxsKQorCisocmVxdWlyZSAnZXNoZWxsLXRlc3RzLWhl bHBlcnMKKyAgICAgICAgIChleHBhbmQtZmlsZS1uYW1lICJlc2hlbGwtdGVzdHMtaGVscGVy cyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtZGlyZWN0b3J5IChv ciBsb2FkLWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRlZmF1bHQtZGlyZWN0b3J5KSkpKQorCisoZGVmdmFyIGVzaGVs bC10ZXN0LXZhbHVlIG5pbCkKKworKGRlZnVuIGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAoaW5p dGlhbC12YWx1ZSBwcmVkaWNhdGUpCisgICJFdmFsdWF0ZSBQUkVESUNBVEUgb24gSU5JVElB TC1WQUxVRSwgcmV0dXJuaW5nIHRoZSByZXN1bHQuCitQUkVESUNBVEUgaXMgYW4gRXNoZWxs IGFyZ3VtZW50IHByZWRpY2F0ZS9tb2RpZmllci4iCisgIChsZXQgKChlc2hlbGwtdGVzdC12 YWx1ZSBpbml0aWFsLXZhbHVlKSkKKyAgICAod2l0aC10ZW1wLWVzaGVsbAorICAgICAoZXNo ZWxsLWluc2VydC1jb21tYW5kCisgICAgICAoZm9ybWF0ICJzZXRxIGVzaGVsbC10ZXN0LXZh bHVlICRlc2hlbGwtdGVzdC12YWx1ZSglcykiIHByZWRpY2F0ZSkpKQorICAgIGVzaGVsbC10 ZXN0LXZhbHVlKSkKKworKGRlZnVuIGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRl cyAoZmlsZSkKKyAgIlBhcnNlIGEgZmFrZSBGSUxFIG5hbWUgdG8gZGV0ZXJtaW5lIGl0cyBh dHRyaWJ1dGVzLgorRmFrZSBmaWxlIG5hbWVzIGFyZSBmaWxlIG5hbWVzIGJlZ2lubmluZyB3 aXRoIFwiL2Zha2UvXCIuICBUaGlzCithbGxvd3MgZGVmaW5pbmcgZmlsZSBuYW1lcyBmb3Ig ZmFrZSBmaWxlcyB3aXRoIHZhcmlvdXMgcHJvcGVydGllcwordG8gcXVlcnkgdmlhIHByZWRp Y2F0ZXMuICBBdHRyaWJ1dGVzIGFyZSB3cml0dGVuIGFzIGEKK2NvbW1hLXNlcGFyYXRlIGxp c3Qgb2YgQVRUUj1WQUxVRSBwYWlycyBhcyB0aGUgZmlsZSdzIGJhc2UgbmFtZSwKK2xpa2U6 CisKKyAgL2Zha2UvdHlwZT0tLG1vZGVzPTA3NTUuZWwKKworVGhlIGZvbGxvd2luZyBhdHRy aWJ1dGVzIGFyZSByZWNvZ25pemVkOgorCisgICogXCJ0eXBlXCI6IEEgc2luZ2xlIGNoYXJh Y3RlciBkZXNjcmliaW5nIHRoZSBmaWxlIHR5cGU7CisgICAgYWNjZXB0cyB0aGUgc2FtZSB2 YWx1ZXMgYXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgZmlsZQorICAgIG1vZGVzIGlu IGBscyAtbCcuCisgICogXCJtb2Rlc1wiOiBUaGUgZmlsZSdzIHBlcm1pc3Npb24gbW9kZXMs IGluIG9jdGFsLgorICAqIFwibGlua3NcIjogVGhlIG51bWJlciBvZiBsaW5rcyB0byB0aGlz IGZpbGUuCisgICogXCJ1aWRcIjogVGhlIFVJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgorICAq IFwiZ2lkXCI6IFRoZSBVSUQgb2YgdGhlIGZpbGUncyBncm91cC4KKyAgKiBcImF0aW1lXCI6 IFRoZSB0aW1lIHRoZSBmaWxlIHdhcyBsYXN0IGFjY2Vzc2VkLCBpbiBzZWNvbmRzCisgICAg c2luY2UgdGhlIFVOSVggZXBvY2guCisgICogXCJtdGltZVwiOiBBcyBcImF0aW1lXCIsIGJ1 dCBmb3IgbW9kaWZpY2F0aW9uIHRpbWUuCisgICogXCJjdGltZVwiOiBBcyBcImF0aW1lXCIs IGJ1dCBmb3IgaW5vZGUgY2hhbmdlIHRpbWUuCisgICogXCJzaXplXCI6IFRoZSBmaWxlJ3Mg c2l6ZSBpbiBieXRlcy4iCisgIChtYXBjYXIgKGxhbWJkYSAoaSkKKyAgICAgICAgICAgIChw Y2FzZSAoc3BsaXQtc3RyaW5nIGkgIj0iKQorICAgICAgICAgICAgICAoYCgibW9kZXMiICxt b2RlcykKKyAgICAgICAgICAgICAgIChjb25zICdtb2RlcyAoc3RyaW5nLXRvLW51bWJlciBt b2RlcyA4KSkpCisgICAgICAgICAgICAgIChgKCwoYW5kIChvciAibGlua3MiICJ1aWQiICJn aWQiICJzaXplIikga2V5KSAsdmFsdWUpCisgICAgICAgICAgICAgICAoY29ucyAoaW50ZXJu IGtleSkgKHN0cmluZy10by1udW1iZXIgdmFsdWUpKSkKKyAgICAgICAgICAgICAgKGAoLChh bmQgKG9yICJhdGltZSIgIm10aW1lIiAiY3RpbWUiKSBrZXkpICx2YWx1ZSkKKyAgICAgICAg ICAgICAgIChjb25zIChpbnRlcm4ga2V5KSAodGltZS1jb252ZXJ0IChzdHJpbmctdG8tbnVt YmVyIHZhbHVlKSkpKQorICAgICAgICAgICAgICAoYCgsa2V5ICx2YWx1ZSkKKyAgICAgICAg ICAgICAgIChjb25zIChpbnRlcm4ga2V5KSB2YWx1ZSkpCisgICAgICAgICAgICAgIChfIChl cnJvciAiaW52YWxpZCBmb3JtYXQgJVMiIGkpKSkpCisgICAgICAgICAgKHNwbGl0LXN0cmlu ZyAoZmlsZS1uYW1lLWJhc2UgZmlsZSkgIiwiKSkpCisKKyhkZWZtYWNybyBlc2hlbGwtcGFy dGlhbC1sZXQtZnVuYyAob3ZlcnJpZGVzICZyZXN0IGJvZHkpCisgICJUZW1wb3JhcmlseSBi aW5kIHRvIEZVTkNUSU9OLU5BTUVzIGFuZCBldmFsdWF0ZSBCT0RZLgorVGhpcyBpcyByb3Vn aGx5IGFuYWxvZ291cyB0byBhZHZpc2luZyBmdW5jdGlvbnMsIGJ1dCBvbmx5IGRvZXMgc28K K3doaWxlIEJPRFkgaXMgZXhlY3V0aW5nLCBhbmQgb25seSBjYWxscyBORVctRlVOQ1RJT04g aWYgaXRzIGZpcnN0Cithcmd1bWVudCBpcyBhIHN0cmluZyBiZWdpbm5pbmcgd2l0aCBcIi9m YWtlL1wiLgorCitUaGlzIGFsbG93cyBzZWxlY3RpdmVseSBvdmVycmlkaW5nIGZ1bmN0aW9u cyB0byB0ZXN0IGZpbGUKK3Byb3BlcnRpZXMgd2l0aCBmYWtlIGZpbGVzIHdpdGhvdXQgYWx0 ZXJpbmcgdGhlIGZ1bmN0aW9ucycKK2JlaGF2aW9yIGZvciByZWFsIGZpbGVzLgorCitcKGZu ICgoRlVOQ1RJT04tTkFNRSBORVctRlVOQ1RJT04pIC4uLikgQk9EWS4uLikiCisgIChkZWNs YXJlIChpbmRlbnQgMSkpCisgIGAoY2wtbGV0ZgorICAgICAgICwobWFwY2FyCisgICAgICAg ICAobGFtYmRhIChvdmVycmlkZSkKKyAgICAgICAgICAgKGxldCAoKG9yaWctZnVuY3Rpb24g KHN5bWJvbC1mdW5jdGlvbiAoY2FyIG92ZXJyaWRlKSkpKQorICAgICAgICAgICAgIGAoKHN5 bWJvbC1mdW5jdGlvbiAjJywoY2FyIG92ZXJyaWRlKSkKKyAgICAgICAgICAgICAgIChsYW1i ZGEgKGZpbGUgJnJlc3QgcmVzdCkKKyAgICAgICAgICAgICAgICAgKGFwcGx5CisgICAgICAg ICAgICAgICAgICAoaWYgKGFuZCAoc3RyaW5ncCBmaWxlKSAoc3RyaW5nLXByZWZpeC1wICIv ZmFrZS8iIGZpbGUpKQorICAgICAgICAgICAgICAgICAgICAgICwoY2FkciBvdmVycmlkZSkK KyAgICAgICAgICAgICAgICAgICAgLG9yaWctZnVuY3Rpb24pCisgICAgICAgICAgICAgICAg ICBmaWxlIHJlc3QpKSkpKQorICAgICAgICAgb3ZlcnJpZGVzKQorICAgICAsQGJvZHkpKQor CisoZGVmbWFjcm8gZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZSAoJnJl c3QgYm9keSkKKyAgIlRlbXBvcmFyaWx5IG92ZXJyaWRlIGZpbGUgYXR0cmlidXRlIGZ1bmN0 aW9ucyBhbmQgZXZhbHVhdGUgQk9EWS4iCisgIChkZWNsYXJlIChpbmRlbnQgMCkpCisgIGAo ZXNoZWxsLXBhcnRpYWwtbGV0LWZ1bmMKKyAgICAgICAoKGZpbGUtYXR0cmlidXRlcworICAg ICAgICAgKGxhbWJkYSAoZmlsZSAmb3B0aW9uYWwgX2lkLWZvcm1hdCkKKyAgICAgICAgICAg KGxldCAoKGF0dHJzIChlc2hlbGwtcGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgZmlsZSkp KQorICAgICAgICAgICAgIChsaXN0IChlcXVhbCAoYWxpc3QtZ2V0ICd0eXBlIGF0dHJzKSAi ZCIpCisgICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1nZXQgJ2xpbmtzIGF0dHJzKSAx KQorICAgICAgICAgICAgICAgICAgIChvciAoYWxpc3QtZ2V0ICd1aWQgYXR0cnMpIDApCisg ICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1nZXQgJ2dpZCBhdHRycykgMCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnYXRpbWUgYXR0cnMpIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnbXRpbWUgYXR0cnMpIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnY3RpbWUgYXR0cnMpIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAob3IgKGFsaXN0LWdldCAnc2l6ZSBhdHRycykgMCkKKyAgICAgICAg ICAgICAgICAgICAoZm9ybWF0ICIlcy0tLS0tLS0tLSIgKG9yIChhbGlzdC1nZXQgJ3R5cGUg YXR0cnMpICItIikpCisgICAgICAgICAgICAgICAgICAgbmlsIDAgMCkpKSkKKyAgICAgICAg KGZpbGUtbW9kZXMKKyAgICAgICAgIChsYW1iZGEgKGZpbGUgX25vZm9sbG93KQorICAgICAg ICAgICAobGV0ICgoYXR0cnMgKGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBm aWxlKSkpCisgICAgICAgICAgICAgKG9yIChhbGlzdC1nZXQgJ21vZGVzIGF0dHJzKSAwKSkp KQorICAgICAgICAoZmlsZS1leGlzdHMtcCAjJ2Fsd2F5cykKKyAgICAgICAgKGZpbGUtcmVn dWxhci1wCisgICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAobGV0ICgoYXR0 cnMgKGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAg ICAgICAgKG1lbWJlciAob3IgKGFsaXN0LWdldCAndHlwZSBhdHRycykgIi0iKSAnKCItIiAi bCIpKSkpKQorICAgICAgICAoZmlsZS1zeW1saW5rLXAKKyAgICAgICAgIChsYW1iZGEgKGZp bGUpCisgICAgICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNlLWZpbGUtbmFtZS1h dHRyaWJ1dGVzIGZpbGUpKSkKKyAgICAgICAgICAgICAoZXF1YWwgKGFsaXN0LWdldCAndHlw ZSBhdHRycykgImwiKSkpKQorICAgICAgICAoZmlsZS1leGVjdXRhYmxlLXAKKyAgICAgICAg IChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNl LWZpbGUtbmFtZS1hdHRyaWJ1dGVzIGZpbGUpKSkKKyAgICAgICAgICAgICA7OyBGb3Igc2lt cGxpY2l0eSwganVzdCByZXR1cm4gd2hldGhlciB0aGUgZmlsZSBpcworICAgICAgICAgICAg IDs7IHdvcmxkLWV4ZWN1dGFibGUuCisgICAgICAgICAgICAgKD0gKGxvZ2FuZCAob3IgKGFs aXN0LWdldCAnbW9kZXMgYXR0cnMpIDApIDEpIDEpKSkpKQorICAgICAsQGJvZHkpKQorCis7 OzsgVGVzdHM6CisKKwwKKzs7IEFyZ3VtZW50IHByZWRpY2F0ZXMKKworKGVydC1kZWZ0ZXN0 IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS10eXBlcyAoKQorICAiVGVzdCBmaWxlIHR5 cGUgcHJlZGljYXRlcy4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1u YW1lCisgICAgKGxldCAoKGZpbGVzIChtYXBjYXIgKGxhbWJkYSAoaSkgKGZvcm1hdCAiL2Zh a2UvdHlwZT0lcyIgaSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgJygiYiIgImMiICJk LyIgInAiICJzIiAibCIgIi0iKSkpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyAiJSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS90eXBlPWIiICIvZmFrZS90eXBlPWMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICIlYiIpICcoIi9mYWtlL3R5cGU9YiIpKSkKKyAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIiVjIikg JygiL2Zha2UvdHlwZT1jIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiLyIpICAnKCIvZmFrZS90eXBlPWQvIikpKQorICAgICAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiLiIpICAnKCIvZmFr ZS90eXBlPS0iKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzICJwIikgICcoIi9mYWtlL3R5cGU9cCIpKSkKKyAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIj0iKSAgJygiL2Zha2UvdHlwZT1z IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiQCIpICAnKCIvZmFrZS90eXBlPWwiKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVk LXRlc3QvcHJlZGljYXRlLWV4ZWN1dGFibGUgKCkKKyAgIlRlc3QgdGhhdCBcIipcIiBtYXRj aGVzIG9ubHkgcmVndWxhciwgbm9uLXN5bWxpbmsgZXhlY3V0YWJsZSBmaWxlcy4iCisgIChl c2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVz ICcoIi9mYWtlL21vZGVzPTA3NzciICIvZmFrZS9tb2Rlcz0wNjY2IgorICAgICAgICAgICAg ICAgICAgICIvZmFrZS90eXBlPWQsbW9kZXM9MDc3NyIgIi9mYWtlL3R5cGU9bCxtb2Rlcz0w Nzc3IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBm aWxlcyAiKiIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9tb2Rlcz0wNzc3Iikp KSkpKQorCisoZGVmbWFjcm8gZW0tcHJlZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgKG5h bWUgbW9kZS10ZW1wbGF0ZSBwcmVkaWNhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm9wdGlvbmFsIGRvY3N0cmluZykKKyAgIkRlZmlu ZSBOQU1FIGFzIGEgZmlsZS1tb2RlIHRlc3QuCitNT0RFLVRFTVBMQVRFIGlzIGEgZm9ybWF0 IHN0cmluZyB0byBjb252ZXJ0IGFuIGludGVnZXIgZnJvbSAwIHRvCis3IHRvIGFuIG9jdGFs IGZpbGUgbW9kZS4gIFBSRURJQ0FURVMgaXMgYSBsaXN0IG9mIHN0cmluZ3MgZm9yIHRoZQor cmVhZCwgd3JpdGUsIGFuZCBleGVjdXRlIHByZWRpY2F0ZXMgdG8gcXVlcnkgdGhlIGZpbGUn cyBtb2Rlcy4iCisgIChkZWNsYXJlIChpbmRlbnQgNCkgKGRvYy1zdHJpbmcgNCkpCisgIGAo ZXJ0LWRlZnRlc3QgLG5hbWUgKCkKKyAgICAgLGRvY3N0cmluZworICAgICAoZXNoZWxsLXdp dGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQorICAgICAgIChsZXQgKChmaWxlLXRlbXBs YXRlIChjb25jYXQgIi9mYWtlL21vZGVzPSIgLG1vZGUtdGVtcGxhdGUpKSkKKyAgICAgICAg IChjbC1mbGV0ICgobWFrZS1maWxlcyAocGVybXMpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hcGNhciAobGFtYmRhIChpKSAoZm9ybWF0IGZpbGUtdGVtcGxhdGUgaSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtcykpKQorICAg ICAgICAgICAocGNhc2UtbGV0ICgoZmlsZXMgKG1ha2UtZmlsZXMgKG51bWJlci1zZXF1ZW5j ZSAwIDcpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGAoLHJlYWQgLHdyaXRlICxleGVj KSAscHJlZGljYXRlcykpCisgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyByZWFkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IChtYWtlLWZpbGVzICcoNCA1IDYgNykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVh bCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25jYXQgIl4iIHJlYWQpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMCAxIDIgMykpKSkKKyAg ICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVz IHdyaXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMiAz IDYgNykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzIChjb25jYXQgIl4iIHdyaXRlKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobWFrZS1maWxlcyAnKDAgMSA0IDUpKSkpCisgICAgICAgICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyBleGVjKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMSAzIDUgNykpKSkKKyAgICAgICAg ICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25j YXQgIl4iIGV4ZWMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVz ICcoMCAyIDQgNikpKSkpKSkpKSkKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0 ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1vd25lcgorICAgICIwJW8w MCIgJygiciIgInciICJ4IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1p c3Npb25zIGZvciB0aGUgb3duZXIuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1k ZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1ncm91cAorICAgICIw MCVvMCIgJygiQSIgIkkiICJFIikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBl cm1pc3Npb25zIGZvciB0aGUgZ3JvdXAuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rl cy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy13b3JsZAorICAg ICIwMDAlbyIgJygiUiIgIlciICJYIikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxl IHBlcm1pc3Npb25zIGZvciB0aGUgd29ybGQuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1t b2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1mbGFncwor ICAgICIlbzAwMCIgJygicyIgIlMiICJ0IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBc InNcIiAoc2V0dWlkKSwgXCJTXCIgKHNldGdpZCksIGFuZCBcInRcIiAoc3RpY2t5KS4iKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1lZmZlY3RpdmUtdWlkICgp CisgICJUZXN0IHRoYXQgXCJVXCIgbWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0aGUgZWZmZWN0 aXZlIFVJRC4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisg ICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICd1c2VyLXVpZCkgKGxhbWJkYSAoKSAx KSkpCisgICAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvdWlkPTEiICIvZmFrZS91aWQ9MiIp KSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiVSIpCisgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKSkpKSkK KworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtbGlua3MgKCkKKyAgIlRl c3QgdGhhdCBcImxcIiBmaWx0ZXJzIGJ5IG51bWJlciBvZiBsaW5rcy4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9m YWtlL2xpbmtzPTEiICIvZmFrZS9saW5rcz0yIiAiL2Zha2UvbGlua3M9MyIpKSkKKyAgICAg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImwxIikKKyAg ICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL2xpbmtzPTEiKSkpCisgICAgICAoc2hvdWxk IChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJsKzEiKQorICAgICAgICAg ICAgICAgICAgICAgJygiL2Zha2UvbGlua3M9MiIgIi9mYWtlL2xpbmtzPTMiKSkpCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJsLTMiKQor ICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvbGlua3M9MSIgIi9mYWtlL2xpbmtzPTIi KSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLXVpZCAoKQor ICAiVGVzdCB0aGF0IFwidVwiIGZpbHRlcnMgYnkgVUlEL3VzZXIgbmFtZS4iCisgIChlc2hl bGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICco Ii9mYWtlL3VpZD0xIiAiL2Zha2UvdWlkPTIiKSkKKyAgICAgICAgICAodXNlci1uYW1lcyAn KCJyb290IiAib25lIiAidHdvIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyAidTEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zh a2UvdWlkPTEiKSkpCisgICAgICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2VzaGVs bC11c2VyLWlkKQorICAgICAgICAgICAgICAgICAobGFtYmRhIChuYW1lKSAoc2VxLXBvc2l0 aW9uIHVzZXItbmFtZXMgbmFtZSkpKSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAidSdvbmUnIikKKyAgICAgICAgICAgICAgICAgICAg ICAgJygiL2Zha2UvdWlkPTEiKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUgZmlsZXMgInV7b25lfSIpCisgICAgICAgICAgICAgICAgICAgICAg ICcoIi9mYWtlL3VpZD0xIikpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9w cmVkaWNhdGUtZ2lkICgpCisgICJUZXN0IHRoYXQgXCJnXCIgZmlsdGVycyBieSBHSUQvZ3Jv dXAgbmFtZS4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisg ICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL2dpZD0xIiAiL2Zha2UvZ2lkPTIiKSkKKyAgICAg ICAgICAoZ3JvdXAtbmFtZXMgJygicm9vdCIgIm9uZSIgInR3byIpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImcxIikKKyAgICAgICAg ICAgICAgICAgICAgICcoIi9mYWtlL2dpZD0xIikpKQorICAgICAgKGNsLWxldGYgKCgoc3lt Ym9sLWZ1bmN0aW9uICdlc2hlbGwtZ3JvdXAtaWQpCisgICAgICAgICAgICAgICAgIChsYW1i ZGEgKG5hbWUpIChzZXEtcG9zaXRpb24gZ3JvdXAtbmFtZXMgbmFtZSkpKSkKKyAgICAgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiZydvbmUnIikK KyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvZ2lkPTEiKSkpCisgICAgICAgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImd7b25lfSIpCisg ICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL2dpZD0xIikpKSkpKSkKKworKGRlZm1h Y3JvIGVtLXByZWQtdGVzdC0tdGltZS1kZWZ0ZXN0IChuYW1lIGZpbGUtYXR0cmlidXRlIHBy ZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZv cHRpb25hbCBkb2NzdHJpbmcpCisgICJEZWZpbmUgTkFNRSBhcyBhIGZpbGUtdGltZSB0ZXN0 LgorRklMRS1BVFRSSUJVVEUgaXMgdGhlIGZpbGUncyBhdHRyaWJ1dGUgdG8gc2V0IChlLmcu IFwiYXRpbWVcIikuCitQUkVESUNBVEUgaXMgdGhlIHByZWRpY2F0ZSB1c2VkIHRvIHF1ZXJ5 IHRoYXQgYXR0cmlidXRlLiIKKyAgKGRlY2xhcmUgKGluZGVudCA0KSAoZG9jLXN0cmluZyA0 KSkKKyAgYChlcnQtZGVmdGVzdCAsbmFtZSAoKQorICAgICAsZG9jc3RyaW5nCisgICAgIChl c2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgICAgKGNsLWZsZXQg KChtYWtlLWZpbGUgKHRpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1h dCAiL2Zha2UvJXM9JWQiICxmaWxlLWF0dHJpYnV0ZSB0aW1lKSkpCisgICAgICAgICAobGV0 KiAoKG5vdyAodGltZS1jb252ZXJ0IG5pbCAnaW50ZWdlcikpCisgICAgICAgICAgICAgICAg KHllc3RlcmRheSAoLSBub3cgODY0MDApKQorICAgICAgICAgICAgICAgIChmaWxlcyAobWFw Y2FyICMnbWFrZS1maWxlIChsaXN0IG5vdyB5ZXN0ZXJkYXkpKSkpCisgICAgICAgICAgIDs7 IFRlc3QgY29tcGFyaXNvbiBhZ2FpbnN0IGEgbnVtYmVyIG9mIGRheXMuCisgICAgICAgICAg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiLTEiKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCBub3cpKSkpCisg ICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiKzEiKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCB5 ZXN0ZXJkYXkpKSkpCisgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHBy ZWRpY2F0ZSAiKzIiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsKSkKKyAgICAg ICAgICAgOzsgVGVzdCBjb21wYXJpc29uIGFnYWluc3QgYSBudW1iZXIgb2YgaG91cnMuCisg ICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiaC0xIikp CisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydtYWtlLWZpbGUgKGxpc3Qg bm93KSkpKQorICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcyAoY29uY2F0ICxwcmVkaWNh dGUgImgrMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnbWFrZS1m aWxlIChsaXN0IHllc3RlcmRheSkpKSkKKyAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMg KGNvbmNhdCAscHJlZGljYXRlICIrNDgiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg bmlsKSkKKyAgICAgICAgICAgOzsgVGVzdCBjb21wYXJpc29uIGFnYWluc3QgYW5vdGhlciBm aWxlLgorICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl CisgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcyAoZm9ybWF0ICIlcy0nJXMnIiAs cHJlZGljYXRlIChtYWtlLWZpbGUgbm93KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg IG5pbCkpCisgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChmb3JtYXQgIiVzKyclcyci ICxwcmVkaWNhdGUgKG1ha2UtZmlsZSBub3cpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCB5ZXN0ZXJkYXkpKSkpKSkpKSkKKworKGVt LXByZWQtdGVzdC0tdGltZS1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtYWNjZXNz LXRpbWUKKyAgICAiYXRpbWUiICJhIgorICAgICJUZXN0IHRoYXQgXCJhXCIgZmlsdGVycyBi eSBhY2Nlc3MgdGltZS4iKQorCisoZW0tcHJlZC10ZXN0LS10aW1lLWRlZnRlc3QgZW0tcHJl ZC10ZXN0L3ByZWRpY2F0ZS1tb2RpZmljYXRpb24tdGltZQorICAgICJtdGltZSIgIm0iCisg ICAgIlRlc3QgdGhhdCBcIm1cIiBmaWx0ZXJzIGJ5IGNoYW5nZSB0aW1lLiIpCisKKyhlbS1w cmVkLXRlc3QtLXRpbWUtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWNoYW5nZS10 aW1lCisgICAgImN0aW1lIiAiYyIKKyAgICAiVGVzdCB0aGF0IFwiY1wiIGZpbHRlcnMgYnkg Y2hhbmdlIHRpbWUuIikKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUt c2l6ZSAoKQorICAiVGVzdCB0aGF0IFwiTFwiIGZpbHRlcnMgYnkgZmlsZSBzaXplLiIKKyAg KGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9tLW5hbWUKKyAgICAobGV0ICgoZmls ZXMgJygiL2Zha2Uvc2l6ZT0wIgorICAgICAgICAgICAgICAgICAgIDs7IDEgYW5kIDIgS2lC LgorICAgICAgICAgICAgICAgICAgICIvZmFrZS9zaXplPTEwMjQiICIvZmFrZS9zaXplPTIw NDgiCisgICAgICAgICAgICAgICAgICAgOzsgMSBhbmQgMiBNaUIuCisgICAgICAgICAgICAg ICAgICAgIi9mYWtlL3NpemU9MTA0ODU3NiIgIi9mYWtlL3NpemU9MjA5NzE1MiIpKSkKKyAg ICAgIDs7IFNpemUgaW4gYnl0ZXMuCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2 YWwtcHJlZGljYXRlIGZpbGVzICJMMjA0OCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIv ZmFrZS9zaXplPTIwNDgiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlIGZpbGVzICJMKzIwNDgiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zh a2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zha2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTC0yMDQ4IikKKyAgICAg ICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MCIgIi9mYWtlL3NpemU9MTAyNCIpKSkK KyAgICAgIDs7IFNpemUgaW4gYmxvY2tzLgorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTHA0IikKKyAgICAgICAgICAgICAgICAgICAgICco Ii9mYWtlL3NpemU9MjA0OCIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgIkxwKzQiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zh a2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zha2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTHAtNCIpCisgICAgICAg ICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTAiICIvZmFrZS9zaXplPTEwMjQiKSkpCisg ICAgICA7OyBTaXplIGluIEtpQi4KKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgIkxrMiIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS9zaXplPTIwNDgiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJMaysyIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3Np emU9MTA0ODU3NiIgIi9mYWtlL3NpemU9MjA5NzE1MiIpKSkKKyAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxrLTIiKQorICAgICAgICAgICAg ICAgICAgICAgJygiL2Zha2Uvc2l6ZT0wIiAiL2Zha2Uvc2l6ZT0xMDI0IikpKQorICAgICAg OzsgU2l6ZSBpbiBNaUIuCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJMTTEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6 ZT0xMDQ4NTc2IikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAiTE0rMSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXpl PTIwOTcxNTIiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzICJMTS0xIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9 MCIgIi9mYWtlL3NpemU9MTAyNCIgIi9mYWtlL3NpemU9MjA0OCIpKSkpKSkKKworDAorOzsg QXJndW1lbnQgbW9kaWZpZXJzCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZp ZXItZXZhbCAoKQorICAiVGVzdCB0aGF0IFwiOkVcIiByZS1ldmFsdWF0ZXMgdGhlIHZhbHVl LiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiJHtlY2hvIGhp fSIgIjpFIikgImhpIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUKKyAgICAgICAgICAgICAgICAgICcoIiR7ZWNobyBoaX0iICIkKHVwY2FzZSBcImJ5ZVwi KSIpICI6RSIpCisgICAgICAgICAgICAgICAgICcoImhpIiAiQllFIikpKSkKKworKGVydC1k ZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1kb3duY2FzZSAoKQorICAiVGVzdCB0aGF0 IFwiOkxcIiBkb3duY2FzZXMgdmFsdWVzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAiRk9PIiAiOkwiKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiRk9PIiAiQkFSIikgIjpMIikKKyAgICAgICAgICAg ICAgICAgJygiZm9vIiAiYmFyIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9t b2RpZmllci11cGNhc2UgKCkKKyAgIlRlc3QgdGhhdCBcIjpVXCIgdXBjYXNlcyB2YWx1ZXMu IgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6VSIp ICJGT08iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJm b28iICJiYXIiKSAiOlUiKQorICAgICAgICAgICAgICAgICAnKCJGT08iICJCQVIiKSkpKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLWNhcGl0YWxpemUgKCkKKyAg IlRlc3QgdGhhdCBcIjpDXCIgY2FwaXRhbGl6ZXMgdmFsdWVzLiIKKyAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIGJhciIgIjpDIikgIkZvbyBCYXIiKSkK KyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28gYmFyIiAi YmF6IikgIjpDIikKKyAgICAgICAgICAgICAgICAgJygiRm9vIEJhciIgIkJheiIpKSkpCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItZGlybmFtZSAoKQorICAiVGVz dCB0aGF0IFwiOmhcIiByZXR1cm5zIHRoZSBkaXJuYW1lLiIKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjpoIikgIi9wYXRo L3RvLyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAg ICAgICAgICAgICAgICAnKCIvcGF0aC90by9maWxlLmVsIiAiL290aGVyL3BhdGgvIikgIjpo IikKKyAgICAgICAgICAgICAgICAgJygiL3BhdGgvdG8vIiAiL290aGVyL3BhdGgvIikpKSkK KworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1iYXNlbmFtZSAoKQorICAi VGVzdCB0aGF0IFwiOnRcIiByZXR1cm5zIHRoZSBiYXNlbmFtZS4iCisgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgIi9wYXRoL3RvL2ZpbGUuZWwiICI6dCIpICJm aWxlLmVsIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAg ICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUuZWwiICIvb3RoZXIvcGF0aC8iKSAi OnQiKQorICAgICAgICAgICAgICAgICAnKCJmaWxlLmVsIiAiIikpKSkKKworKGVydC1kZWZ0 ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1leHRlbnNpb24gKCkKKyAgIlRlc3QgdGhhdCBc IjplXCIgcmV0dXJucyB0aGUgZXh0ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjplIikgImVsIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAg ICcoIi9wYXRoL3RvL2ZpbGUuZWwiICIvb3RoZXIvcGF0aC8iKSAiOmUiKQorICAgICAgICAg ICAgICAgICAnKCJlbCIgbmlsKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLXNhbnMtZXh0ZW5zaW9uICgpCisgICJUZXN0IHRoYXQgXCI6clwiIHJldHVybnMg dGhlIGZpbGUgbmFtZSBzYW4gZXh0ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjpyIikKKyAgICAgICAgICAg ICAgICAgIi9wYXRoL3RvL2ZpbGUiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgJygiL3BhdGgvdG8vZmlsZS5lbCIgIi9v dGhlci9wYXRoLyIpICI6ciIpCisgICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUi ICIvb3RoZXIvcGF0aC8iKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlm aWVyLXF1b3RlICgpCisgICJUZXN0IHRoYXQgXCI6cVwiIHF1b3RlcyBhcmd1bWVudHMuIgor ICAoc2hvdWxkIChlcXVhbC1pbmNsdWRpbmctcHJvcGVydGllcworICAgICAgICAgICAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIpICI6cSIpCisgICAgICAgICAgIChs aXN0IChlc2hlbGwtZXNjYXBlLWFyZyAiZm9vIikgKGVzaGVsbC1lc2NhcGUtYXJnICJiYXIi KSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zdWJzdGl0dXRl ICgpCisgICJUZXN0IHRoYXQgXCI6cy9QQVQvUkVQL1wiIHJlcGxhY2VzIFBBVCB3aXRoIFJF UCBvbmNlLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFy IiAiOnMvYS8qLyIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiYmFyIiAiOnN8YXwqfCIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOnMvW2FvXS8qLyIp CisgICAgICAgICAgICAgICAgICcoImYqbyIgImIqciIgImIqeiIpKSkKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOnN8 W2FvXXwqfCIpCisgICAgICAgICAgICAgICAgICcoImYqbyIgImIqciIgImIqeiIpKSkpCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItZ2xvYmFsLXN1YnN0aXR1dGUg KCkKKyAgIlRlc3QgdGhhdCBcIjpzL1BBVC9SRVAvXCIgcmVwbGFjZXMgUEFUIHdpdGggUkVQ IGZvciBhbGwgb2NjdXJyZW5jZXMuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlICJmb28iICI6Z3MvYS8qLyIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmdzfGF8KnwiKSAiZm9vIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjpncy9hLyovIikg ImIqciIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJiYXIi ICI6Z3N8YXwqfCIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiZm9vIiAiOmdzL28vTy8iKSAiZk9PIikpCisgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpncy9bYWVpb3Vd LyovIikKKyAgICAgICAgICAgICAgICAgJygiZioqIiAiYipyIiAiYip6IikpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIp ICI6Z3N8W2FlaW91XXwqfCIpCisgICAgICAgICAgICAgICAgICcoImYqKiIgImIqciIgImIq eiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItaW5jbHVkZSAo KQorICAiVGVzdCB0aGF0IFwiOmkvUEFUL1wiIGZpbHRlcnMgZWxlbWVudHMgdG8gaW5jbHVk ZSBvbmx5IG9uZXMgbWF0Y2hpbmcgUEFULiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAiZm9vIiAiOmkvYS8iKSBuaWwpKQorICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6aXxhfCIpIG5pbCkpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjppL2EvIikgImJhciIpKQor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJiYXIiICI6aXxhfCIp ICJiYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJm b28iICJiYXIiICJiYXoiKSAiOmkvYS8iKQorICAgICAgICAgICAgICAgICAnKCJiYXIiICJi YXoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9v IiAiYmFyIiAiYmF6IikgIjppfGF8IikKKyAgICAgICAgICAgICAgICAgJygiYmFyIiAiYmF6 IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1leGNsdWRlICgp CisgICJUZXN0IHRoYXQgXCI6eC9QQVQvXCIgZmlsdGVycyBlbGVtZW50cyB0byBleGNsdWRl IGFueSBtYXRjaGluZyBQQVQuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlICJmb28iICI6eC9hLyIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOnh8YXwiKSAiZm9vIikpCisgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjp4L2EvIikgbmlsKSkKKyAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOnh8YXwiKSBuaWwp KQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJh ciIgImJheiIpICI6eC9hLyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIpKSkKKyAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoi KSAiOnh8YXwiKQorICAgICAgICAgICAgICAgICAnKCJmb28iKSkpKQorCisoZXJ0LWRlZnRl c3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNwbGl0ICgpCisgICJUZXN0IHRoYXQgXCI6U1wi IGFuZCBcIjpTL1BBVC9cIiBzcGxpdCBlbGVtZW50cyBieSBzcGFjZXMgKG9yIFBBVCkuIgor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28gYmFyIGJheiIg IjpTIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6IikpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyBiYXIiICJiYXoiKSAi OlMiKQorICAgICAgICAgICAgICAgICAnKCgiZm9vIiAiYmFyIikgKCJiYXoiKSkpKQorICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28tYmFyLWJheiIgIjpT Ly0vIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6IikpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvby1iYXIiICJiYXoiKSAi OlMvLS8iKQorICAgICAgICAgICAgICAgICAnKCgiZm9vIiAiYmFyIikgKCJiYXoiKSkpKSkK KworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1qb2luICgpCisgICJUZXN0 IHRoYXQgXCI6alwiIGFuZCBcIjpqL0RFTElNL1wiIGpvaW4gZWxlbWVudHMgYnkgc3BhY2Vz IChvciBERUxJTSkuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICJmb28iICI6aiIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOmoiKQorICAgICAgICAgICAgICAgICAi Zm9vIGJhciBiYXoiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAiZm9vIiAiOmovLS8iKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpqLy0vIikKKyAgICAgICAgICAg ICAgICAgImZvby1iYXItYmF6IikpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLXNvcnQgKCkKKyAgIlRlc3QgdGhhdCBcIjpvXCIgc29ydHMgZWxlbWVudHMgaW4g bGV4aWNvZ3JhcGhpYyBvcmRlci4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgImZvbyIgIjpvIikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6byIpCisgICAgICAgICAg ICAgICAgICcoImJhciIgImJheiIgImZvbyIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVk LXRlc3QvbW9kaWZpZXItc29ydC1yZXZlcnNlICgpCisgICJUZXN0IHRoYXQgXCI6b1wiIHNv cnRzIGVsZW1lbnRzIGluIHJldmVyc2UgbGV4aWNvZ3JhcGhpYyBvcmRlci4iCisgIChzaG91 bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpPIikgImZvbyIpKQor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIg ImJheiIpICI6TyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIgImJheiIgImJhciIpKSkp CisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItdW5pcXVlICgpCisgICJU ZXN0IHRoYXQgXCI6dVwiIGZpbHRlcnMgb3V0IGR1cGxpY2F0ZSBlbGVtZW50cy4iCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjp1IikgImZvbyIp KQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJh ciIgImJheiIpICI6dSIpCisgICAgICAgICAgICAgICAgICcoImZvbyIgImJhciIgImJheiIp KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJi YXIiICJiYXoiICJmb28iKSAiOnUiKQorICAgICAgICAgICAgICAgICAnKCJmb28iICJiYXIi ICJiYXoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXJldmVy c2UgKCkKKyAgIlRlc3QgdGhhdCBcIjpyXCIgcmV2ZXJzZXMgdGhlIG9yZGVyIG9mIGVsZW1l bnRzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAi OlIiKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUg JygiZm9vIiAiYmFyIiAiYmF6IikgIjpSIikKKyAgICAgICAgICAgICAgICAgJygiYmF6IiAi YmFyIiAiZm9vIikpKSkKKworDAorOzsgQ29tYmluYXRpb25zCisKKyhlcnQtZGVmdGVzdCBl bS1wcmVkLXRlc3QvY29tYmluZS1wcmVkaWNhdGUtYW5kLW1vZGlmaWVyICgpCisgICJUZXN0 IGNvbWJpbmF0aW9uIG9mIHByZWRpY2F0ZXMgYW5kIG1vZGlmaWVycy4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9m YWtlL3R5cGU9LS5lbCIgIi9mYWtlL3R5cGU9LS50eHQiICIvZmFrZS90eXBlPXMuZWwiCisg ICAgICAgICAgICAgICAgICAgIi9mYWtlL3N1YmRpci90eXBlPS0uZWwiKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICIuOmU6dSIpCisg ICAgICAgICAgICAgICAgICAgICAnKCJlbCIgInR4dCIpKSkpKSkKKworOzsgZW0tcHJlZC10 ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------F7311B8338F8E772EC112537 Content-Type: text/plain; charset=UTF-8; name="0003-Add-G-argument-predicate-in-Eshell.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-G-argument-predicate-in-Eshell.patch" RnJvbSA3ZGNhZjc5MDQyYTdhZTYzZTY3YTFhNDk3NWFjZTM0MTMwMWQ3MGU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IEZyaSwgMSBBcHIgMjAyMiAyMjowNjowMiAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBBZGQgJ0cnIGFyZ3VtZW50IHByZWRpY2F0ZSBpbiBFc2hlbGwKCiogbGlzcC9l c2hlbGwvZW0tcHJlZC5lbCAoZXNoZWxsLXByZWRpY2F0ZS1hbGlzdCk6IEFkZCAnRycgcHJl ZGljYXRlLgooZXNoZWxsLXByZWRpY2F0ZS1oZWxwLXN0cmluZyk6IERvY3VtZW50IGl0LgoK KiB0ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwKKGVtLXByZWQtdGVzdC9wcmVk aWNhdGUtZWZmZWN0aXZlLWdpZCk6IE5ldyB0ZXN0LgoKKiBkb2MvbWlzYy9lc2hlbGwudGV4 dCAoQXJndW1lbnQgUHJlZGljYXRpb24pOiBEb2N1bWVudCAnRycgcHJlZGljYXRlLgotLS0K IGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8IDMgKysrCiBsaXNwL2VzaGVs bC9lbS1wcmVkLmVsICAgICAgICAgICAgfCA5ICsrKysrLS0tLQogdGVzdC9saXNwL2VzaGVs bC9lbS1wcmVkLXRlc3RzLmVsIHwgOCArKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNiBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2Vz aGVsbC50ZXhpIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKaW5kZXggMmQ1N2U0OGVkOC4uNDEx ZTY5NjA2OSAxMDA2NDQKLS0tIGEvZG9jL21pc2MvZXNoZWxsLnRleGkKKysrIGIvZG9jL21p c2MvZXNoZWxsLnRleGkKQEAgLTEyNjYsNiArMTI2Niw5IEBAIEFyZ3VtZW50IFByZWRpY2F0 ZXMKIEBpdGVtIEBzYW1we1V9CiBNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHRoZSBjdXJyZW50 IGVmZmVjdGl2ZSB1c2VyIElELgogCitAaXRlbSBAc2FtcHtHfQorTWF0Y2hlcyBmaWxlcyBv d25lZCBieSB0aGUgY3VycmVudCBlZmZlY3RpdmUgZ3JvdXAgSUQuCisKIEBpdGVtIEBzYW1w e2xAb3B0aW9ue1srLV19QHZhcntufX0KIE1hdGNoZXMgZmlsZXMgd2l0aCBAdmFye259IGxp bmtzLiAgV2l0aCBAb3B0aW9ueyt9IChvciBAb3B0aW9uey19KSwKIG1hdGNoZXMgZmlsZXMg d2l0aCBtb3JlIHRoYW4gKG9yIGxlc3MgdGhhbikgQHZhcntufSBsaW5rcywKZGlmZiAtLWdp dCBhL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwgYi9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCmlu ZGV4IDhhZmM4NmRkNDEuLmViNTEwOWI4MmQgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2Vt LXByZWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbApAQCAtODgsMTAgKzg4LDEw IEBAIGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QKICAgICAgICAgICAgIChpZiAoZmlsZS1leGlz dHMtcCBmaWxlKQogICAgICAgICAgICAgICAgICg9IChmaWxlLWF0dHJpYnV0ZS11c2VyLWlk IChmaWxlLWF0dHJpYnV0ZXMgZmlsZSkpCiAgICAgICAgICAgICAgICAgICAgKHVzZXItdWlk KSkpKSkKLSAgICA7OyAoP0cgLiAobGFtYmRhIChmaWxlKSAgICAgICAgICAgICAgIDsgb3du ZWQgYnkgZWZmZWN0aXZlIGdpZAotICAgIDs7ICAgICAgICAgKGlmIChmaWxlLWV4aXN0cy1w IGZpbGUpCi0gICAgOzsgICAgICAgICAgICAgKD0gKGZpbGUtYXR0cmlidXRlLXVzZXItaWQg KGZpbGUtYXR0cmlidXRlcyBmaWxlKSkKLSAgICA7OyAgICAgICAgICAgICAgICAodXNlci11 aWQpKSkpKQorICAgICg/RyAuIChsYW1iZGEgKGZpbGUpICAgICAgICAgICAgICAgOyBvd25l ZCBieSBlZmZlY3RpdmUgZ2lkCisgICAgICAgICAgICAoaWYgKGZpbGUtZXhpc3RzLXAgZmls ZSkKKyAgICAgICAgICAgICAgICAoPSAoZmlsZS1hdHRyaWJ1dGUtZ3JvdXAtaWQgKGZpbGUt YXR0cmlidXRlcyBmaWxlKSkKKyAgICAgICAgICAgICAgICAgICAoZ3JvdXAtZ2lkKSkpKSkK ICAgICAoPyogLiAobGFtYmRhIChmaWxlKQogICAgICAgICAgICAgKGFuZCAoZmlsZS1yZWd1 bGFyLXAgZmlsZSkKICAgICAgICAgICAgICAgICAgKG5vdCAoZmlsZS1zeW1saW5rLXAgZmls ZSkpCkBAIC0xNjEsNiArMTYxLDcgQEAgZXNoZWxsLXByZWRpY2F0ZS1oZWxwLXN0cmluZwog CiBPV05FUlNISVA6CiAgIFUgICAgICAgICAgICAgICBvd25lZCBieSBlZmZlY3RpdmUgdWlk CisgIEcgICAgICAgICAgICAgICBvd25lZCBieSBlZmZlY3RpdmUgZ2lkCiAgIHUoVUlEfFxc PSd1c2VyXFw9JykgICBvd25lZCBieSBVSUQvdXNlcgogICBnKEdJRHxcXD0nZ3JvdXBcXD0n KSAgb3duZWQgYnkgR0lEL2dyb3VwCiAKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwv ZW0tcHJlZC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbApp bmRleCA3NGRhZDlmOGI4Li5mYmY4OTQ1MjE1IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvZXNo ZWxsL2VtLXByZWQtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRl c3RzLmVsCkBAIC0yMjUsNiArMjI1LDE0IEBAIGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZWZm ZWN0aXZlLXVpZAogICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzICJVIikKICAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdWlkPTEi KSkpKSkpKQogCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1lZmZlY3Rp dmUtZ2lkICgpCisgICJUZXN0IHRoYXQgXCJHXCIgbWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0 aGUgZWZmZWN0aXZlIEdJRC4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJv bS1uYW1lCisgICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdncm91cC1naWQpIChs YW1iZGEgKCkgMSkpKQorICAgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL2dpZD0xIiAiL2Zh a2UvZ2lkPTIiKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIkciKQorICAgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9naWQ9 MSIpKSkpKSkpCisKIChlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWxpbmtz ICgpCiAgICJUZXN0IHRoYXQgXCJsXCIgZmlsdGVycyBieSBudW1iZXIgb2YgbGlua3MuIgog ICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQotLSAKMi4yNS4xCgo= --------------F7311B8338F8E772EC112537-- From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 15 Apr 2022 12:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.165002738919316 (code B ref 54470); Fri, 15 Apr 2022 12:57:02 +0000 Received: (at 54470) by debbugs.gnu.org; 15 Apr 2022 12:56:29 +0000 Received: from localhost ([127.0.0.1]:58312 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfLUy-00051T-8e for submit@debbugs.gnu.org; Fri, 15 Apr 2022 08:56:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52040) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfLUw-00051D-6O for 54470@debbugs.gnu.org; Fri, 15 Apr 2022 08:56:26 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54882) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nfLUq-0004Qg-RJ; Fri, 15 Apr 2022 08:56:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ji9aMszpR5QnYuDBW2mcfydrY1xB50isiDmECU5ZXgI=; b=IPIcqKkAZLaw lYWrZl1bNoZiJyRgXmIveepq30+Zrq/VJ6PchlTfwFJZQcvbalT/uWmDPqvjOFiqBXn0vYuKoQxdw gGTM5Q6Gl7aY/L5TMcYabJx4RQhT7SEcWMXZcrPMgWzX1NuCPSTCFbte0UiRmZhzuqjzZQTGfj2U0 JVQ5zqr8IOiw/+6qrzrWamGI0fpU+09u2ZJF0ybDBuliFF3MEy7XC1w7SUcsQflpKJKsnnOAR0klq adRuJy2/x0hLUdkx+2nCOkJs5is7wggSoNLHhTHro282w22xni9wpJKOBLYGFLKzdntz/eQysGCYF sSzmbYFFAPUqpx4I8B0ZCQ==; Received: from [87.69.77.57] (port=4716 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nfLUq-00021X-9k; Fri, 15 Apr 2022 08:56:20 -0400 Date: Fri, 15 Apr 2022 15:56:32 +0300 Message-Id: <83zgkm1p4v.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Jim Porter on Fri, 1 Apr 2022 22:10:07 -0700) References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 54470@debbugs.gnu.org > From: Jim Porter > Date: Fri, 1 Apr 2022 22:10:07 -0700 > > > @kbd is right for things that are meant specifically and only as > > keyboard input. > > Thanks for the explanation. > > Having thought this over further, I think Eli's suggestion to use @samp > makes sense for both the globs and the predicates/modifiers, so I've > updated my patches to do this. Thanks. I was about to install these, but then I saw that some of the tests you added fail on my system: Test em-pred-test/combine-predicate-and-modifier backtrace: signal(ert-test-failed (((should (equal (eshell-eval-predicate files ert-fail(((should (equal (eshell-eval-predicate files ".:e:u") '("el (if (unwind-protect (setq value-724 (apply fn-722 args-723)) (setq f (let (form-description-726) (if (unwind-protect (setq value-724 (app (let ((value-724 'ert-form-evaluation-aborted-725)) (let (form-descr (let* ((fn-722 #'equal) (args-723 (condition-case err (let ((signal- (let ((files '("/fake/type=-.el" "/fake/type=-.txt" "/fake/type=s.el (progn (fset #'file-executable-p vnew) (fset #'file-symlink-p vnew) (unwind-protect (progn (fset #'file-executable-p vnew) (fset #'file- (let* ((vnew #'(lambda (file &rest rest) (apply (if (and ... ...) #' (closure (t) nil (let* ((vnew #'(lambda (file &rest rest) (apply (if ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name em-pred-test/combine-predicate-and-mo ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "-l" "lisp/eshell/em-pred-tests command-line() normal-top-level() Test em-pred-test/combine-predicate-and-modifier condition: (ert-test-failed ((should (equal (eshell-eval-predicate files ".:e:u") '...)) :form (equal nil ("el" "txt")) :value nil :explanation (different-types nil ("el" "txt")))) FAILED 1/34 em-pred-test/combine-predicate-and-modifier (0.484375 sec) at lisp/eshell/em-pred-tests.el:513 Test em-pred-test/predicate-file-types backtrace: signal(ert-test-failed (((should (equal (eshell-eval-predicate files ert-fail(((should (equal (eshell-eval-predicate files "%") '("/fake/ (if (unwind-protect (setq value-20 (apply fn-18 args-19)) (setq form (let (form-description-22) (if (unwind-protect (setq value-20 (apply (let ((value-20 'ert-form-evaluation-aborted-21)) (let (form-descrip (let* ((fn-18 #'equal) (args-19 (condition-case err (let ((signal-ho (let ((files (mapcar #'(lambda (i) (format "/fake/type=%s" i)) '("b" (progn (fset #'file-executable-p vnew) (fset #'file-symlink-p vnew) (unwind-protect (progn (fset #'file-executable-p vnew) (fset #'file- (let* ((vnew #'(lambda (file &rest rest) (apply (if (and ... ...) #' (closure (t) nil (let* ((vnew #'(lambda (file &rest rest) (apply (if ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name em-pred-test/predicate-file-types :do ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "-l" "lisp/eshell/em-pred-tests command-line() normal-top-level() Test em-pred-test/predicate-file-types condition: (ert-test-failed ((should (equal (eshell-eval-predicate files "%") '...)) :form (equal nil ("/fake/type=b" "/fake/type=c")) :value nil :explanation (different-types nil ("/fake/type=b" "/fake/type=c")))) FAILED 29/34 em-pred-test/predicate-file-types (0.140625 sec) at lisp/eshell/em-pred-tests.el:152 Test em-pred-test/predicate-links backtrace: signal(ert-test-failed (((should (equal (eshell-eval-predicate files ert-fail(((should (equal (eshell-eval-predicate files "l1") '("/fake (if (unwind-protect (setq value-214 (apply fn-212 args-213)) (setq f (let (form-description-216) (if (unwind-protect (setq value-214 (app (let ((value-214 'ert-form-evaluation-aborted-215)) (let (form-descr (let* ((fn-212 #'equal) (args-213 (condition-case err (let ((signal- (let ((files '("/fake/links=1" "/fake/links=2" "/fake/links=3"))) (l (progn (fset #'file-executable-p vnew) (fset #'file-symlink-p vnew) (unwind-protect (progn (fset #'file-executable-p vnew) (fset #'file- (let* ((vnew #'(lambda (file &rest rest) (apply (if (and ... ...) #' (closure (t) nil (let* ((vnew #'(lambda (file &rest rest) (apply (if ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name em-pred-test/predicate-links :documen ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "-l" "lisp/eshell/em-pred-tests command-line() normal-top-level() Test em-pred-test/predicate-links condition: (ert-test-failed ((should (equal (eshell-eval-predicate files "l1") '...)) :form (equal nil ("/fake/links=1")) :value nil :explanation (different-types nil ("/fake/links=1")))) FAILED 31/34 em-pred-test/predicate-links (0.000000 sec) at lisp/eshell/em-pred-tests.el:228 Test em-pred-test/predicate-size backtrace: signal(ert-test-failed (((should (equal (eshell-eval-predicate files ert-fail(((should (equal (eshell-eval-predicate files "L2048") '("/f (if (unwind-protect (setq value-379 (apply fn-377 args-378)) (setq f (let (form-description-381) (if (unwind-protect (setq value-379 (app (let ((value-379 'ert-form-evaluation-aborted-380)) (let (form-descr (let* ((fn-377 #'equal) (args-378 (condition-case err (let ((signal- (let ((files '("/fake/size=0" "/fake/size=1024" "/fake/size=2048" "/ (progn (fset #'file-executable-p vnew) (fset #'file-symlink-p vnew) (unwind-protect (progn (fset #'file-executable-p vnew) (fset #'file- (let* ((vnew #'(lambda (file &rest rest) (apply (if (and ... ...) #' (closure (t) nil (let* ((vnew #'(lambda (file &rest rest) (apply (if ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name em-pred-test/predicate-size :document ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "-l" "lisp/eshell/em-pred-tests command-line() normal-top-level() Test em-pred-test/predicate-size condition: (ert-test-failed ((should (equal (eshell-eval-predicate files "L2048") '...)) :form (equal nil ("/fake/size=2048")) :value nil :explanation (different-types nil ("/fake/size=2048")))) FAILED 33/34 em-pred-test/predicate-size (0.156250 sec) at lisp/eshell/em-pred-tests.el:321 Can you fix these failures and resubmit? If they are due to some MS-Windows specific issues, please tell how can I help you with diagnosing the problem. Thanks. From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Apr 2022 04:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.165008503118512 (code B ref 54470); Sat, 16 Apr 2022 04:58:02 +0000 Received: (at 54470) by debbugs.gnu.org; 16 Apr 2022 04:57:11 +0000 Received: from localhost ([127.0.0.1]:60614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfaUg-0004oV-TI for submit@debbugs.gnu.org; Sat, 16 Apr 2022 00:57:11 -0400 Received: from mail-pj1-f53.google.com ([209.85.216.53]:50849) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfaUf-0004oG-C1 for 54470@debbugs.gnu.org; Sat, 16 Apr 2022 00:57:09 -0400 Received: by mail-pj1-f53.google.com with SMTP id o5so9035724pjr.0 for <54470@debbugs.gnu.org>; Fri, 15 Apr 2022 21:57:09 -0700 (PDT) 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=C3m3C2ZZXn1afQw/DMmJOY+8NLEP05ix38CV0bSE4fg=; b=hCr0qTwwaGYgROn+XJjXYZ35N00HrcgQKY/My4b+HlkPKhM9hm7PQE48zLe6wRMQat zoo7FwZy+8RBqQ8rUsmlOE6oMzXkknWUEQgQ5qdA3kHuBi2OC2191xW8sClLDYHxQdTw etLg3PNc8VPnht41ds38y5rZYNF6lNlbZTgG26/jNu0Lepac4FrMRvN7MMts02w2QauR iNTwbrcjz74arLZ/RZCAAZWla62NCXLKl1nD1Q+r4Rmkgf1xGP58IVyN9n6G4yxfthpL /I3kMjoXPol+Mro7mtI8WypR2ueWnWgyHCGFH6Naud/eAeLE1mghojXQG+5a1eztT14R fmww== 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=C3m3C2ZZXn1afQw/DMmJOY+8NLEP05ix38CV0bSE4fg=; b=TyRSyo1pQtGrkuUoung7z7WBtr79wCAtcF9geLkJ1oHfkJ41ynF81FvrYmKQCWLl8g Rmmb37uldFVgx2ixBKyhXXxL6AfOzA7pbt9RFv+Loag1sU1SV4+iRDRr+IoM57eaG/7G FFjzFEuDnFIOKuypJ6BpIVB9RHTDPpP2ShePgzUOgXbydkgvFhWy4O5GT9LwLFjGEJyh 79zhtaBHBj5LJKG40zNuCFgmsgZRT7Qdyo/IcVZzg4tC7uCCv57gzC4QljROTiJx1SbW NoknHViqQOdJ3U8jso6i77FaAYQOHi0yPNoIcgGWtpv0qKWfjd8mtQVr5VoQO66mdLhD 71Zw== X-Gm-Message-State: AOAM533HsbtMsT1EAnrhUukk6apj+x6DwMRObt0RNxhmmH+VmKMds9/o g8eQtxY8a6xxCoP9lIXxAI0qDIboaP8= X-Google-Smtp-Source: ABdhPJzwV+R+AhG3dP3KXiE/zRfB6NfF+STHL6p5UGDVl3/frnQGhcArstUHC6NrXPeV4qNiQw11IA== X-Received: by 2002:a17:902:a710:b0:156:5650:f94a with SMTP id w16-20020a170902a71000b001565650f94amr2126122plq.86.1650085023395; Fri, 15 Apr 2022 21:57:03 -0700 (PDT) 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 b12-20020a17090aa58c00b001ca977b49d5sm6273436pjq.31.2022.04.15.21.57.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 15 Apr 2022 21:57:02 -0700 (PDT) References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> <83zgkm1p4v.fsf@gnu.org> From: Jim Porter Message-ID: <25d222b3-9633-708e-6ac7-568c7a89e806@gmail.com> Date: Fri, 15 Apr 2022 21:57:02 -0700 MIME-Version: 1.0 In-Reply-To: <83zgkm1p4v.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------4017CB4689B6014B2155B87C" Content-Language: en-US X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------4017CB4689B6014B2155B87C Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 4/15/2022 5:56 AM, Eli Zaretskii wrote: >> Cc: 54470@debbugs.gnu.org >> From: Jim Porter >> Date: Fri, 1 Apr 2022 22:10:07 -0700 >> >>> @kbd is right for things that are meant specifically and only as >>> keyboard input. >> >> Thanks for the explanation. >> >> Having thought this over further, I think Eli's suggestion to use @samp >> makes sense for both the globs and the predicates/modifiers, so I've >> updated my patches to do this. > > Thanks. I was about to install these, but then I saw that some of > the tests you added fail on my system: [snip] Thanks for testing. I think this is because `eshell-file-attributes' calls `expand-file-name' on the FILE argument, which prepends a drive letter on MS Windows. That makes my code in `eshell-partial-let-func' (in em-pred-tests.el) fail to identify the fake files. Can you try the attached patch to see if the tests pass? If it works, I'll fold it into the previous patches and resubmit them. (It works for me on an MS Windows system, but I don't have build tools on it, so I just used the binary release of 28.1 with some of the bits copied from my patches to test it out.) There are a few other ways I could fix this, but this seemed like the best. Now, if `eshell-file-attributes' calls `file-attributes', it always forwards the FILE argument unchanged, so the wrapping is more "transparent" in that case. (Note: I'm not sure `eshell-file-attributes' is even necessary anymore; maybe Tramp handles that for us? I haven't tested this enough to be confident we can remove it though...) --------------4017CB4689B6014B2155B87C Content-Type: text/plain; charset=UTF-8; name="fix-ms-windows-tests.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fix-ms-windows-tests.patch" ZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC11dGlsLmVsIGIvbGlzcC9lc2hlbGwvZXNo LXV0aWwuZWwKaW5kZXggODA4OWQ0ZDc0Yi4uM2RhNzEyYzcxOSAxMDA2NDQKLS0tIGEvbGlz cC9lc2hlbGwvZXNoLXV0aWwuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLXV0aWwuZWwKQEAg LTU5MiwxMSArNTkyLDExIEBAIGVzaGVsbC1maWxlLWF0dHJpYnV0ZXMKIFRoZSBvcHRpb25h bCBhcmd1bWVudCBJRC1GT1JNQVQgc3BlY2lmaWVzIHRoZSBwcmVmZXJyZWQgdWlkIGFuZAog Z2lkIGZvcm1hdC4gIFZhbGlkIHZhbHVlcyBhcmUgYHN0cmluZycgYW5kIGBpbnRlZ2VyJywg ZGVmYXVsdGluZyB0bwogYGludGVnZXInLiAgU2VlIGBmaWxlLWF0dHJpYnV0ZXMnLiIKLSAg KGxldCogKChmaWxlIChleHBhbmQtZmlsZS1uYW1lIGZpbGUpKQorICAobGV0KiAoKGV4cGFu ZGVkLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSkpCiAJIGVudHJ5KQotICAgIChpZiAo c3RyaW5nLWVxdWFsIChmaWxlLXJlbW90ZS1wIGZpbGUgJ21ldGhvZCkgImZ0cCIpCi0JKGxl dCAoKGJhc2UgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZSkpCi0JICAgICAgKGRpciAo ZmlsZS1uYW1lLWRpcmVjdG9yeSBmaWxlKSkpCisgICAgKGlmIChzdHJpbmctZXF1YWwgKGZp bGUtcmVtb3RlLXAgZXhwYW5kZWQtZmlsZSAnbWV0aG9kKSAiZnRwIikKKwkobGV0ICgoYmFz ZSAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBleHBhbmRlZC1maWxlKSkKKwkgICAgICAoZGly IChmaWxlLW5hbWUtZGlyZWN0b3J5IGV4cGFuZGVkLWZpbGUpKSkKIAkgIChpZiAoc3RyaW5n LWVxdWFsICIiIGJhc2UpIChzZXRxIGJhc2UgIi4iKSkKIAkgICh1bmxlc3MgZW50cnkKIAkg ICAgKHNldHEgZW50cnkgKGVzaGVsbC1wYXJzZS1hbmdlLWxzIGRpcikpCg== --------------4017CB4689B6014B2155B87C-- From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Apr 2022 10:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Jim Porter Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.165010503928676 (code B ref 54470); Sat, 16 Apr 2022 10:31:01 +0000 Received: (at 54470) by debbugs.gnu.org; 16 Apr 2022 10:30:39 +0000 Received: from localhost ([127.0.0.1]:60767 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nffhP-0007SS-8G for submit@debbugs.gnu.org; Sat, 16 Apr 2022 06:30:39 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47010) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nffhN-0007SF-Ji for 54470@debbugs.gnu.org; Sat, 16 Apr 2022 06:30:37 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58874) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nffhH-0006t7-OQ; Sat, 16 Apr 2022 06:30:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=2faD9GSBITYSPge1XkQdn7APRxsDqMouSvw3xYMJwwQ=; b=TGEPKHdu9OCc /9wdMTCrJ4McJlb2Ukl+oJ6IxUKGj6AdEHjjE+tHIsPiNrd3R7iAXSlM2fkc1ohr1wHoLkv8HBZ2L /q7YziFW+4WbCNm9CZJCESTAVPVphEvHt/I90rdza9r0nWKG0gfxOZDEX+pd4Vd2aapbdq6/eJi/J FmA6xMF/P9FHs8Hi29Ku+t2G8PhRz6LgqHsJfsmK7uOg74DquGaRHhb0kszuc6HtpTAZ2VcZigmTt xVd2gaE0zljvWe7d0CdG6AO5onXiLWA1aVwnk6xmKsLXhl7MoSTmCntbftPT0pGnjcXtexcikQX65 MDVRjIliZXxi+eHqj6aTDA==; Received: from [87.69.77.57] (port=1986 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nffgw-0000CT-6D; Sat, 16 Apr 2022 06:30:13 -0400 Date: Sat, 16 Apr 2022 13:30:24 +0300 Message-Id: <83a6cl1fsv.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <25d222b3-9633-708e-6ac7-568c7a89e806@gmail.com> (message from Jim Porter on Fri, 15 Apr 2022 21:57:02 -0700) References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> <83zgkm1p4v.fsf@gnu.org> <25d222b3-9633-708e-6ac7-568c7a89e806@gmail.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 54470@debbugs.gnu.org > From: Jim Porter > Date: Fri, 15 Apr 2022 21:57:02 -0700 > > On 4/15/2022 5:56 AM, Eli Zaretskii wrote: > >> Cc: 54470@debbugs.gnu.org > >> From: Jim Porter > >> Date: Fri, 1 Apr 2022 22:10:07 -0700 > >> > >>> @kbd is right for things that are meant specifically and only as > >>> keyboard input. > >> > >> Thanks for the explanation. > >> > >> Having thought this over further, I think Eli's suggestion to use @samp > >> makes sense for both the globs and the predicates/modifiers, so I've > >> updated my patches to do this. > > > > Thanks. I was about to install these, but then I saw that some of > > the tests you added fail on my system: > [snip] > > Thanks for testing. I think this is because `eshell-file-attributes' > calls `expand-file-name' on the FILE argument, which prepends a drive > letter on MS Windows. That makes my code in `eshell-partial-let-func' > (in em-pred-tests.el) fail to identify the fake files. > > Can you try the attached patch to see if the tests pass? If it works, > I'll fold it into the previous patches and resubmit them. (It works for > me on an MS Windows system, but I don't have build tools on it, so I > just used the binary release of 28.1 with some of the bits copied from > my patches to test it out.) Yes, this fixes the failures, thanks. From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 16 Apr 2022 17:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: 54470@debbugs.gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.16501292965892 (code B ref 54470); Sat, 16 Apr 2022 17:15:02 +0000 Received: (at 54470) by debbugs.gnu.org; 16 Apr 2022 17:14:56 +0000 Received: from localhost ([127.0.0.1]:34245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfm0b-0001Wt-EH for submit@debbugs.gnu.org; Sat, 16 Apr 2022 13:14:56 -0400 Received: from mail-pj1-f41.google.com ([209.85.216.41]:44823) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfm0X-0001WY-9k for 54470@debbugs.gnu.org; Sat, 16 Apr 2022 13:14:52 -0400 Received: by mail-pj1-f41.google.com with SMTP id u5-20020a17090a6a8500b001d0b95031ebso3736871pjj.3 for <54470@debbugs.gnu.org>; Sat, 16 Apr 2022 10:14:49 -0700 (PDT) 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=UF5azUAWQzxGskNMSYJY3iHRwmFDfhrxKyVZZ8izYUo=; b=B5xSZkkS0HUwayTNStfGc4gyL4zjV12rBPIduc/Wtprsj7RuxuVoMVhctiflk44o4r B6pOK11eq6CVF+1iYDzSlSA+s5dcHj+NtA/AYxlnt/iUZKl+2ZmU60iVam1VglrDaZHI BkfBwhQ6i9h69YIo47bbswaahCJHFQBKA0f/TpxvOQm+WplzH8laiSqf9GwWX0d4VAa9 aPMyrP8lX/4w+ZkK+uGlWGwR3ix2jNN6AsZMYGwa3b0TGTt/69DSybDQG6k/2BuRihDK 4eQQBQ140dzjzQ9+6qiIoylfaxbJ8PP+ACzBvM9ukyZOX6qoJy0mrvFYyPfw/YXNLweD zBgQ== 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=UF5azUAWQzxGskNMSYJY3iHRwmFDfhrxKyVZZ8izYUo=; b=XwoKWO3nZ41hEeCYbHaXxUjGwqq53Gz72NiT7mvjfKBbl4pCmYn71AwDOzQehVPgN6 v8DGwsOJJGjUH0eMKsG+7JAimxI8kTiGcdhNolkun26V25Mu5EP8cOknKGhnKm9GEaJa 34RKq5Tjw4aKydM6lyglUqQUPeO06YMy5tiIzJuoix0hjMaTuiHFzv8RHuKZgjgy8HOm qBMF7qeS7A7P2XGqWkl2yQ3khn/2mq8W+Td3Ta9Khii3xbbClwZ2nZItCN8frIQQUtH6 ghTB8T6/XwmTtCynvc8leqnkkwrcxvLIYXBG48FpqXxDx5tY6kFIBgsZpu6wzitgjMzz 0COg== X-Gm-Message-State: AOAM533pXYLrm7if0/8ZRA/isy/OimaufXgwPQoG/8aKUgr/CZVM22+i aKTdLZplNSWJdNG53OPtQnP+A9yqfE0= X-Google-Smtp-Source: ABdhPJwheqO1QB5YtY5HyNhFKlwpotzcfQGrV4WFSuiJu6vPMPWeadG6oHs+yI74kvOy4hYvKuE0zg== X-Received: by 2002:a17:90a:6781:b0:1cb:11f0:9c51 with SMTP id o1-20020a17090a678100b001cb11f09c51mr10145184pjj.243.1650129283312; Sat, 16 Apr 2022 10:14:43 -0700 (PDT) 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 s190-20020a625ec7000000b005061c17c111sm6635162pfb.71.2022.04.16.10.14.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 16 Apr 2022 10:14:42 -0700 (PDT) References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> <83zgkm1p4v.fsf@gnu.org> <25d222b3-9633-708e-6ac7-568c7a89e806@gmail.com> <83a6cl1fsv.fsf@gnu.org> From: Jim Porter Message-ID: <55f95cab-e56f-42ef-43fb-de4fef99ea10@gmail.com> Date: Sat, 16 Apr 2022 10:14:43 -0700 MIME-Version: 1.0 In-Reply-To: <83a6cl1fsv.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------F7EB05345DF97E50F8E62DEA" Content-Language: en-US X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------F7EB05345DF97E50F8E62DEA Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 4/16/2022 3:30 AM, Eli Zaretskii wrote: >> Cc: 54470@debbugs.gnu.org >> From: Jim Porter >> Date: Fri, 15 Apr 2022 21:57:02 -0700 >> >> Can you try the attached patch to see if the tests pass? If it works, >> I'll fold it into the previous patches and resubmit them. (It works for >> me on an MS Windows system, but I don't have build tools on it, so I >> just used the binary release of 28.1 with some of the bits copied from >> my patches to test it out.) > > Yes, this fixes the failures, thanks. Cool, thanks. Here are final patches for merging then (only the second patch is changed from before, but I attached the full series for convenience). --------------F7EB05345DF97E50F8E62DEA Content-Type: text/plain; charset=UTF-8; name="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.pa"; filename*1="tch" RnJvbSBjYmM3MDY3YmQ1NDNhN2FhZjIyY2Q2YjgwZDAzY2E4OTAwMTZmNWUwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBNYXIgMjAyMiAxNzowNzoyNiAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBBZGQgdW5pdCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgRXNoZWxsIHBh dHRlcm4tYmFzZWQKIGdsb2JzCgoqIGxpc3AvZXNoZWxsL2VtLWdsb2IuZWwgKGVzaGVsbC1l eHRlbmRlZC1nbG9iKTogRml4IGRvY3N0cmluZy4KKGVzaGVsbC1nbG9iLWVudHJpZXMpOiBS ZWZlciB0byAnKiovJyBpbiBlcnJvciAodGVjaG5pY2FsbHksICcqKicgY2FuCmVuZCBhIGds b2IsIGJ1dCBpdCBtZWFucyB0aGUgc2FtZSB0aGluZyBhcyAnKicpLgoKKiB0ZXN0L2xpc3Av ZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWw6IE5ldyBmaWxlLgoKKiBkb2MvbWlzYy9lc2hlbGwu dGV4aSAoR2xvYmJpbmcpOiBEb2N1bWVudCBwYXR0ZXJuLWJhc2VkIGdsb2JzLgotLS0KIGRv Yy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8ICA5NCArKysrKysrKysrKysrKy0t CiBsaXNwL2VzaGVsbC9lbS1nbG9iLmVsICAgICAgICAgICAgfCAgMTQgKystCiB0ZXN0L2xp c3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwgfCAxNzEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDI2MiBpbnNlcnRpb25zKCspLCAxNyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNj L2VzaGVsbC50ZXhpCmluZGV4IDM3MmU0YzNmZmIuLjY0ODkxN2Y2MmQgMTAwNjQ0Ci0tLSBh L2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC0x MDg5LDE1ICsxMDg5LDkxIEBAIERvbGxhcnMgRXhwYW5zaW9uCiAKIEBub2RlIEdsb2JiaW5n CiBAc2VjdGlvbiBHbG9iYmluZwotRXNoZWxsJ3MgZ2xvYmJpbmcgc3ludGF4IGlzIHZlcnkg c2ltaWxhciB0byB0aGF0IG9mIFpzaC4gIFVzZXJzIGNvbWluZwotZnJvbSBCYXNoIGNhbiBz dGlsbCB1c2UgQmFzaC1zdHlsZSBnbG9iYmluZywgYXMgdGhlcmUgYXJlIG5vCi1pbmNvbXBh dGliaWxpdGllcy4gIE1vc3QgZ2xvYmJpbmcgaXMgcGF0dGVybi1iYXNlZCBleHBhbnNpb24s IGJ1dCB0aGVyZQotaXMgYWxzbyBwcmVkaWNhdGUtYmFzZWQgZXhwYW5zaW9uLiAgQHhyZWZ7 RmlsZW5hbWUgR2VuZXJhdGlvbiwgLCAsCi16c2gsIFRoZSBaIFNoZWxsIE1hbnVhbH0sCi1m b3IgZnVsbCBzeW50YXguICBUbyBjdXN0b21pemUgdGhlIHN5bnRheCBhbmQgYmVoYXZpb3Ig b2YgZ2xvYmJpbmcgaW4KLUVzaGVsbCBzZWUgdGhlIEN1c3RvbWl6ZUBmb290bm90ZXtAeHJl ZntFYXN5IEN1c3RvbWl6YXRpb24sICwgLCBlbWFjcywKLVRoZSBHTlUgRW1hY3MgTWFudWFs fS59Ci1ncm91cHMgYGBlc2hlbGwtZ2xvYicnIGFuZCBgYGVzaGVsbC1wcmVkJycuCitAdmlu ZGV4IGVzaGVsbC1nbG9iLWNhc2UtaW5zZW5zaXRpdmUKK0VzaGVsbCdzIGdsb2JiaW5nIHN5 bnRheCBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiBac2gKKyhAcHhyZWZ7RmlsZW5hbWUg R2VuZXJhdGlvbiwgLCAsIHpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSkuICBVc2VycworY29t aW5nIGZyb20gQmFzaCBjYW4gc3RpbGwgdXNlIEJhc2gtc3R5bGUgZ2xvYmJpbmcsIGFzIHRo ZXJlIGFyZSBubworaW5jb21wYXRpYmlsaXRpZXMuCisKK0J5IGRlZmF1bHQsIGdsb2JzIGFy ZSBjYXNlIHNlbnNpdGl2ZSwgZXhjZXB0IG9uIE1TLURPUy9NUy1XaW5kb3dzCitzeXN0ZW1z LiAgWW91IGNhbiBjb250cm9sIHRoaXMgYmVoYXZpb3IgdmlhIHRoZQorQGNvZGV7ZXNoZWxs LWdsb2ItY2FzZS1pbnNlbnNpdGl2ZX0gb3B0aW9uLiAgWW91IGNhbiBmdXJ0aGVyIGN1c3Rv bWl6ZQordGhlIHN5bnRheCBhbmQgYmVoYXZpb3Igb2YgZ2xvYmJpbmcgaW4gRXNoZWxsIHZp YSB0aGUgQ3VzdG9taXplIGdyb3VwCitgYGVzaGVsbC1nbG9iJycgKEBweHJlZntFYXN5IEN1 c3RvbWl6YXRpb24sICwgLCBlbWFjcywgVGhlIEdOVSBFbWFjcworTWFudWFsfSkuCisKK0B0 YWJsZSBAc2FtcAorCitAaXRlbSAqCitNYXRjaGVzIGFueSBzdHJpbmcgKGluY2x1ZGluZyB0 aGUgZW1wdHkgc3RyaW5nKS4gIEZvciBleGFtcGxlLAorQHNhbXB7Ki5lbH0gbWF0Y2hlcyBh bnkgZmlsZSB3aXRoIHRoZSBAZmlsZXsuZWx9IGV4dGVuc2lvbi4KKworQGl0ZW0gPworTWF0 Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3Rlci4gIEZvciBleGFtcGxlLCBAc2FtcHs/YXR9IG1h dGNoZXMKK0BmaWxle2NhdH0gYW5kIEBmaWxle2JhdH0sIGJ1dCBub3QgQGZpbGV7Z29hdH0u CisKK0BpdGVtICoqLworTWF0Y2hlcyB6ZXJvIG9yIG1vcmUgc3ViZGlyZWN0b3JpZXMgaW4g YSBmaWxlIG5hbWUuICBGb3IgZXhhbXBsZSwKK0BzYW1weyoqL2Zvby5lbH0gbWF0Y2hlcyBA ZmlsZXtmb28uZWx9LCBAZmlsZXtiYXIvZm9vLmVsfSwKK0BmaWxle2Jhci9iYXovZm9vLmVs fSwgZXRjLiAgTm90ZSB0aGF0IHRoaXMgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGgKK2FueSBv dGhlciBwYXR0ZXJucyBpbiB0aGUgc2FtZSBmaWxlIG5hbWUgc2VnbWVudCwgc28gd2hpbGUK K0BzYW1we2Zvby8qKi9iYXIuZWx9IGlzIGFsbG93ZWQsIEBzYW1we2ZvbyoqL2Jhci5lbH0g aXMgbm90LgorCitAaXRlbSAqKiovCitMaWtlIEBzYW1weyoqL30sIGJ1dCBmb2xsb3dzIHN5 bWxpbmtzIGFzIHdlbGwuCisKK0BjaW5kZXggY2hhcmFjdGVyIHNldHMsIGluIEVzaGVsbCBn bG9iIHBhdHRlcm5zCitAY2luZGV4IGNoYXJhY3RlciBjbGFzc2VzLCBpbiBFc2hlbGwgZ2xv YiBwYXR0ZXJucworQGl0ZW0gWyBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZue2NoYXJhY3Rl ciBzZXR9IChAcHhyZWZ7UmVnZXhwcywgLCAsIGVtYWNzLCBUaGUgR05VCitFbWFjcyBNYW51 YWx9KS4gIEEgY2hhcmFjdGVyIHNldCBtYXRjaGVzIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUg dHdvCiticmFja2V0czsgZm9yIGV4YW1wbGUsIEBzYW1we1thZF19IG1hdGNoZXMgQGZpbGV7 YX0gYW5kIEBmaWxle2R9LiAgWW91CitjYW4gYWxzbyBpbmNsdWRlIHJhbmdlcyBvZiBjaGFy YWN0ZXJzIGluIHRoZSBzZXQgYnkgc2VwYXJhdGluZyB0aGUKK3N0YXJ0IGFuZCBlbmQgd2l0 aCBAc2FtcHstfS4gIFRodXMsIEBzYW1we1thLXpdfSBtYXRjaGVzIGFueQorbG93ZXItY2Fz ZSBAYWNyb255bXtBU0NJSX0gbGV0dGVyLiAgTm90ZSB0aGF0LCB1bmxpa2UgaW4gWnNoLAor Y2hhcmFjdGVyIHJhbmdlcyBhcmUgaW50ZXJwcmV0ZWQgaW4gdGhlIFVuaWNvZGUgY29kZXBv aW50IG9yZGVyLCBub3QKK2luIHRoZSBsb2NhbGUtZGVwZW5kZW50IGNvbGxhdGlvbiBvcmRl ci4KKworQWRkaXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgQGRmbntjaGFyYWN0ZXIgY2xh c3Nlc30gaW4gYSBjaGFyYWN0ZXIKK3NldC4gIEEgQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcg QHNhbXB7Ol19IGVuY2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MKK2luc2lkZSBhIGNoYXJhY3Rl ciBzZXQuICBGb3IgaW5zdGFuY2UsIEBzYW1we1tbOmFsbnVtOl1dfQorbWF0Y2hlcyBhbnkg bGV0dGVyIG9yIGRpZ2l0LiAgQHhyZWZ7Q2hhciBDbGFzc2VzLCAsICwgZWxpc3AsIFRoZSBF bWFjcworTGlzcCBSZWZlcmVuY2UgTWFudWFsfSwgZm9yIGEgbGlzdCBvZiBjaGFyYWN0ZXIg Y2xhc3Nlcy4KKworQGNpbmRleCBjb21wbGVtZW50ZWQgY2hhcmFjdGVyIHNldHMsIGluIEVz aGVsbCBnbG9iIHBhdHRlcm5zCitAaXRlbSBbXiBAZG90c3t9IF0KK0RlZmluZXMgYSBAZGZu e2NvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgc2V0fS4gIFRoaXMgYmVoYXZlcyBqdXN0IGxpa2Ug YQorY2hhcmFjdGVyIHNldCwgYnV0IG1hdGNoZXMgYW55IGNoYXJhY3RlciBAZW1waHtleGNl cHR9IHRoZSBvbmVzCitzcGVjaWZpZWQuCisKK0BjaW5kZXggZ3JvdXBzLCBpbiBFc2hlbGwg Z2xvYiBwYXR0ZXJucworQGl0ZW0gKCBAZG90c3t9ICkKK0RlZmluZXMgYSBAZGZue2dyb3Vw fS4gIEEgZ3JvdXAgbWF0Y2hlcyB0aGUgcGF0dGVybiBiZXR3ZWVuIEBzYW1weyh9CithbmQg QHNhbXB7KX0uICBOb3RlIHRoYXQgYSBncm91cCBjYW4gb25seSBtYXRjaCBhIHNpbmdsZSBm aWxlIG5hbWUKK2NvbXBvbmVudCwgc28gYSBAc2FtcHsvfSBpbnNpZGUgYSBncm91cCB3aWxs IHNpZ25hbCBhbiBlcnJvci4KKworQGl0ZW0gQHZhcnt4fXxAdmFye3l9CitJbnNpZGUgb2Yg YSBncm91cCwgbWF0Y2hlcyBlaXRoZXIgQHZhcnt4fSBvciBAdmFye3l9LiAgRm9yIGV4YW1w bGUsCitAc2FtcHtlKG18c2gpLSp9IG1hdGNoZXMgYW55IGZpbGUgYmVnaW5uaW5nIHdpdGgg QGZpbGV7ZW0tfSBvcgorQGZpbGV7ZXNoLX0uCisKK0BpdGVtIEB2YXJ7eH0jCitNYXRjaGVz IHplcm8gb3IgbW9yZSBjb3BpZXMgb2YgdGhlIGdsb2IgcGF0dGVybiBAdmFye3h9LiAgRm9y IGV4YW1wbGUsCitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zi5lbH0sIEBmaWxle2Zv LmVsfSwgQGZpbGV7Zm9vLmVsfSwgZXRjLgorCitAaXRlbSBAdmFye3h9IyMKK01hdGNoZXMg b25lIG9yIG1vcmUgY29waWVzIG9mIHRoZSBnbG9iIHBhdHRlcm4gQHZhcnt4fS4gIFRodXMs CitAc2FtcHtmbyMuZWx9IG1hdGNoZXMgQGZpbGV7Zm8uZWx9LCBAZmlsZXtmb28uZWx9LCBA ZmlsZXtmb29vLmVsfSwKK2V0Yy4KKworQGl0ZW0gQHZhcnt4fX5AdmFye3l9CitNYXRjaGVz IGFueXRoaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcGF0dGVybiBAdmFye3h9IGJ1dCBub3QgQHZh cnt5fS4gRm9yCitleGFtcGxlLCBAc2FtcHtbWzpkaWdpdDpdXSN+ND99IG1hdGNoZXMgQGZp bGV7MX0gYW5kIEBmaWxlezEyfSwgYnV0Citub3QgQGZpbGV7NDJ9LiAgTm90ZSB0aGF0IHVu bGlrZSBpbiBac2gsIG9ubHkgYSBzaW5nbGUgQHNhbXB7fn0KK29wZXJhdG9yIGNhbiBiZSB1 c2VkIGluIGEgcGF0dGVybiwgYW5kIGl0IGNhbm5vdCBiZSBpbnNpZGUgb2YgYSBncm91cAor bGlrZSBAc2FtcHsoQHZhcnt4fX5AdmFye3l9KX0uCisKK0BlbmQgdGFibGUKIAogQG5vZGUg SW5wdXQvT3V0cHV0CiBAY2hhcHRlciBJbnB1dC9PdXRwdXQKZGlmZiAtLWdpdCBhL2xpc3Av ZXNoZWxsL2VtLWdsb2IuZWwgYi9saXNwL2VzaGVsbC9lbS1nbG9iLmVsCmluZGV4IDg0MmYy N2E0OTIuLjUyNTMxZmY4OTMgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VtLWdsb2IuZWwK KysrIGIvbGlzcC9lc2hlbGwvZW0tZ2xvYi5lbApAQCAtMjMzLDcgKzIzMywxMCBAQCBlc2hl bGwtZ2xvYi1yZWdleHAKIAkgICAgIlxcJyIpKSkKIAogKGRlZnVuIGVzaGVsbC1leHRlbmRl ZC1nbG9iIChnbG9iKQotICAiUmV0dXJuIGEgbGlzdCBvZiBmaWxlcyBnZW5lcmF0ZWQgZnJv bSBHTE9CLCBwZXJoYXBzIGxvb2tpbmcgZm9yIERJUlMtT05MWS4KKyAgIlJldHVybiBhIGxp c3Qgb2YgZmlsZXMgbWF0Y2hlZCBieSBHTE9CLgorSWYgbm8gZmlsZXMgbWF0Y2gsIHNpZ25h bCBhbiBlcnJvciAoaWYgYGVzaGVsbC1lcnJvci1pZi1uby1nbG9iJworaXMgbm9uLW5pbCks IG9yIG90aGVyd2lzZSByZXR1cm4gR0xPQiBpdHNlbGYuCisKIFRoaXMgZnVuY3Rpb24gYWxt b3N0IGZ1bGx5IHN1cHBvcnRzIHpzaCBzdHlsZSBmaWxlbmFtZSBnZW5lcmF0aW9uCiBzeW50 YXguICBUaGluZ3MgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBhcmU6CiAKQEAgLTI0MywxMiAr MjQ2LDcgQEAgZXNoZWxsLWV4dGVuZGVkLWdsb2IKICAgIGZvb354KGF8YikgIChhfGIpIHdp bGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwcmVkaWNhdGUvbW9kaWZpZXIgbGlzdAogCiBNYWlu bHkgdGhleSBhcmUgbm90IHN1cHBvcnRlZCBiZWNhdXNlIGZpbGUgbWF0Y2hpbmcgaXMgZG9u ZSB3aXRoIEVtYWNzCi1yZWd1bGFyIGV4cHJlc3Npb25zLCBhbmQgdGhlc2UgY2Fubm90IHN1 cHBvcnQgdGhlIGFib3ZlIGNvbnN0cnVjdHMuCi0KLUlmIHRoaXMgcm91dGluZSBmYWlscywg aXQgcmV0dXJucyBuaWwuICBPdGhlcndpc2UsIGl0IHJldHVybnMgYSBsaXN0Ci10aGUgZm9y bToKLQotICAgKElOQ0xVREUtUkVHRVhQIEVYQ0xVREUtUkVHRVhQIChQUkVELUZVTkMtTElT VCkgKE1PRC1GVU5DLUxJU1QpKSIKK3JlZ3VsYXIgZXhwcmVzc2lvbnMsIGFuZCB0aGVzZSBj YW5ub3Qgc3VwcG9ydCB0aGUgYWJvdmUgY29uc3RydWN0cy4iCiAgIChsZXQgKChwYXRocyAo ZXNoZWxsLXNwbGl0LXBhdGggZ2xvYikpCiAgICAgICAgIGVzaGVsbC1nbG9iLW1hdGNoZXMg bWVzc2FnZS1zaG93bikKICAgICAodW53aW5kLXByb3RlY3QKQEAgLTI4Nyw3ICsyODUsNyBA QCBlc2hlbGwtZ2xvYi1lbnRyaWVzCiAJCSAgIGdsb2IgKGNhciBnbG9icykKIAkJICAgbGVu IChsZW5ndGggZ2xvYikpKSkpCiAgICAgKGlmIChhbmQgcmVjdXJzZS1wIChub3QgZ2xvYikp Ci0JKGVycm9yICJgKionIGNhbm5vdCBlbmQgYSBnbG9iYmluZyBwYXR0ZXJuIikpCisJKGVy cm9yICJgKiovJyBjYW5ub3QgZW5kIGEgZ2xvYmJpbmcgcGF0dGVybiIpKQogICAgIChsZXQg KChpbmRleCAxKSkKICAgICAgIChzZXRxIGluY2wgZ2xvYikKICAgICAgICh3aGlsZSAoYW5k IChlcSBpbmNsIGdsb2IpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2It dGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMuZWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTk3NmIzMmZmZQotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tZ2xvYi10ZXN0cy5lbApAQCAtMCwwICsxLDE3 MSBAQAorOzs7IGVtLWdsb2ItdGVzdHMuZWwgLS0tIGVtLWdsb2IgdGVzdCBzdWl0ZSAgLSot IGxleGljYWwtYmluZGluZzp0IC0qLQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdO VSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworOzsg R05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25n IHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRlc3RzIGZvciBFc2hlbGwncyBn bG9iIGV4cGFuc2lvbi4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWly ZSAnZW0tZ2xvYikKKworKGRlZm1hY3JvIHdpdGgtZmFrZS1maWxlcyAoZmlsZXMgJnJlc3Qg Ym9keSkKKyAgIkV2YWx1YXRlIEJPRFkgZm9ybXMsIHByZXRlbmRpbmcgdGhhdCBGSUxFUyBl eGlzdCBvbiB0aGUgZmlsZXN5c3RlbS4KK0ZJTEVTIGlzIGEgbGlzdCBvZiBmaWxlIG5hbWVz IHRoYXQgc2hvdWxkIGJlIHJlcG9ydGVkIGFzCithcHByb3ByaWF0ZSBieSBgZmlsZS1uYW1l LWFsbC1jb21wbGV0aW9ucycuICBBbnkgZmlsZSBuYW1lCitjb21wb25lbnQgZW5kaW5nIGlu IFwic3ltbGlua1wiIGlzIHRyZWF0ZWQgYXMgYSBzeW1ib2xpYyBsaW5rLiIKKyAgKGRlY2xh cmUgKGluZGVudCAxKSkKKyAgYChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1u YW1lLWFsbC1jb21wbGV0aW9ucykKKyAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSBkaXJl Y3RvcnkpCisgICAgICAgICAgICAgICAgKGNsLWFzc2VydCAoc3RyaW5nPSBmaWxlICIiKSkK KyAgICAgICAgICAgICAgICAoc2V0cSBkaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5hbWUgZGly ZWN0b3J5KSkKKyAgICAgICAgICAgICAgICBgKCIuLyIgIi4uLyIKKyAgICAgICAgICAgICAg ICAgICxAKGRlbGV0ZS1kdXBzCisgICAgICAgICAgICAgICAgICAgICAocmVtcSBuaWwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldHEgZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh3aGVuIChzdHJpbmctcHJlZml4LXAgZGlyZWN0b3J5IGZpbGUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJp bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvLioiICIvIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlIChsZW5ndGggZGly ZWN0b3J5KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAsZmlsZXMpKSkpKSkK KyAgICAgICAgICAgICAoKHN5bWJvbC1mdW5jdGlvbiAnZmlsZS1zeW1saW5rLXApCisgICAg ICAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgICAgICAgKHN0cmluZy1zdWZm aXgtcCAic3ltbGluayIgZmlsZSkpKSkKKyAgICAgLEBib2R5KSkKKworOzs7IFRlc3RzOgor CisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWFueS1zdHJpbmcgKCkKKyAgIlRl c3QgdGhhdCBcIipcIiBwYXR0ZXJuIG1hdGNoZXMgYW55IHN0cmluZy4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiYS5lbCIgImIuZWwiICJjLnR4dCIgImRpci9hLmVsIikKKyAgICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIiouZWwiKQorICAgICAgICAgICAg ICAgICAgICcoImEuZWwiICJiLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRl c3QvbWF0Y2gtYW55LWNoYXJhY3RlciAoKQorICAiVGVzdCB0aGF0IFwiP1wiIHBhdHRlcm4g bWF0Y2hlcyBhbnkgY2hhcmFjdGVyLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAi Yi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiPy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygi YS5lbCIgImIuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1y ZWN1cnNpdmUgKCkKKyAgIlRlc3QgdGhhdCBcIioqL1wiIHJlY3Vyc2l2ZWx5IG1hdGNoZXMg ZGlyZWN0b3JpZXMuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiY2Nj LmVsIiAiZC50eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJkaXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqKi9h LmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiZGlyL2EuZWwiICJkaXIvc3Vi L2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1yZWN1cnNp dmUtZm9sbG93LXN5bWxpbmtzICgpCisgICJUZXN0IHRoYXQgXCIqKiovXCIgcmVjdXJzaXZl bHkgbWF0Y2hlcyBkaXJlY3RvcmllcywgZm9sbG93aW5nIHN5bWxpbmtzLiIKKyAgKHdpdGgt ZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImNjYy5lbCIgImQudHh0IiAiZGlyL2EuZWwi ICJkaXIvc3ViL2EuZWwiCisgICAgICAgICAgICAgICAgICAgICAiZGlyL3N5bWxpbmsvYS5l bCIgInN5bWxpbmsvYS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKQorICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKioqL2EuZWwiKQorICAgICAgICAgICAgICAg ICAgICcoImEuZWwiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIgImRpci9zeW1saW5rL2Eu ZWwiCisgICAgICAgICAgICAgICAgICAgICAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIv YS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLXJlY3Vyc2l2 ZS1taXhlZCAoKQorICAiVGVzdCBjb21iaW5hdGlvbiBvZiBcIioqL1wiIGFuZCBcIioqKi9c Ii4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZGlyL2EuZWwiICJkaXIvc3ViL2EuZWwiICJk aXIvc3ViMi9hLmVsIgorICAgICAgICAgICAgICAgICAgICAgImRpci9zeW1saW5rL2EuZWwi ICJkaXIvc3ViL3N5bWxpbmsvYS5lbCIgInN5bWxpbmsvYS5lbCIKKyAgICAgICAgICAgICAg ICAgICAgICJzeW1saW5rL3N1Yi9hLmVsIiAic3ltbGluay9zdWIvc3ltbGluay9hLmVsIikK KyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioqL3N1Yi8qKiov YS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZGlyL3N1Yi9hLmVsIiAiZGlyL3N1Yi9z eW1saW5rL2EuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICIqKiovc3ViLyoqL2EuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImRpci9zdWIv YS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2It dGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LWluZGl2aWR1YWwgKCkKKyAgIlRlc3QgXCJbLi4u XVwiIGZvciBpbmRpdmlkdWFsIGNoYXJhY3RlcnMuIgorICAod2l0aC1mYWtlLWZpbGVzICco ImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWJdLmVsIikKKyAgICAgICAgICAgICAg ICAgICAnKCJhLmVsIiAiYi5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4 dGVuZGVkLWdsb2IgIlteYWJdLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJjLmVsIiAi ZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rl ci1zZXQtcmFuZ2UgKCkKKyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFyYWN0ZXIgcmFuZ2Vz LiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImMuZWwiICJkLmVsIiAi ZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAi W2EtY10uZWwiKQorICAgICAgICAgICAgICAgICAgICcoImEuZWwiICJiLmVsIiAiYy5lbCIp KSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIlteYS1jXS5l bCIpCisgICAgICAgICAgICAgICAgICAgJygiZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rlci1zZXQtY2xhc3MgKCkKKyAgIlRlc3QgXCJb Li4uXVwiIGZvciBjaGFyYWN0ZXIgY2xhc3Nlcy4iCisgICh3aXRoLWZha2UtZmlsZXMgJygi MS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImRpci9hLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIltbOmFscGhhOl1dLmVsIikKKyAgICAgICAg ICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIgImMuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1 YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXls6YWxwaGE6XV0uZWwiKQorICAgICAgICAg ICAgICAgICAgICcoIjEuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9t YXRjaC1jaGFyYWN0ZXItc2V0LW1peGVkICgpCisgICJUZXN0IFwiWy4uLl1cIiB3aXRoIG11 bHRpcGxlIGtpbmRzIG9mIG1lbWJlcnMgYXQgb25jZS4iCisgICh3aXRoLWZha2UtZmlsZXMg JygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWMtZFs6ZGlnaXQ6XV0u ZWwiKQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiICJhLmVsIiAiYy5lbCIgImQuZWwi KSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXmFjLWRb OmRpZ2l0Ol1dLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJiLmVsIikpKSkpCisKKyhl cnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtZ3JvdXAtYWx0ZXJuYXRpdmUgKCkKKyAg IlRlc3QgXCIoeHx5KVwiIG1hdGNoZXMgZWl0aGVyIFwieFwiIG9yIFwieVwiLiIKKyAgKHdp dGgtZmFrZS1maWxlcyAnKCJlbS1hbGlhcy5lbCIgImVtLWJhbm5lci5lbCIgImVzaC1hcmcu ZWwiICJtaXNjLmVsIgorICAgICAgICAgICAgICAgICAgICAgInRlc3QvZW0teHRyYS5lbCIp CisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJlKG18c2gpLSou ZWwiKQorICAgICAgICAgICAgICAgICAgICcoImVtLWFsaWFzLmVsIiAiZW0tYmFubmVyLmVs IiAiZXNoLWFyZy5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNo LW4tb3ItbW9yZS1jaGFyYWN0ZXJzICgpCisgICJUZXN0IHRoYXQgXCJ4I1wiIGFuZCBcIngj XCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBcInhcIi4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiaC5lbCIgImhhLmVsIiAiaGkuZWwiICJoaWkuZWwiICJkaXIvaGkuZWwi KQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiaGkjLmVsIikK KyAgICAgICAgICAgICAgICAgICAnKCJoLmVsIiAiaGkuZWwiICJoaWkuZWwiKSkpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMjLmVsIikKKyAgICAg ICAgICAgICAgICAgICAnKCJoaS5lbCIgImhpaS5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3Qg ZW0tZ2xvYi10ZXN0L21hdGNoLW4tb3ItbW9yZS1ncm91cHMgKCkKKyAgIlRlc3QgdGhhdCBc Iih4KSNcIiBhbmQgXCIoeCkjXCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBc Iih4KVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJoLmVsIiAiaGEuZWwiICJoaS5lbCIg ImhpaS5lbCIgImRpci9oaS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICJoaSMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImguZWwiICJoaS5l bCIgImhpaS5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWds b2IgImhpIyMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImhpLmVsIiAiaGlpLmVsIikp KSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtbi1vci1tb3JlLWNoYXJh Y3Rlci1zZXRzICgpCisgICJUZXN0IHRoYXQgXCJbeF0jXCIgYW5kIFwiW3hdI1wiIG1hdGNo IHplcm8gb3IgbW9yZSBpbnN0YW5jZXMgb2YgXCJbeF1cIi4iCisgICh3aXRoLWZha2UtZmls ZXMgJygidy5lbCIgIndoLmVsIiAid2hhLmVsIiAid2hpLmVsIiAid2hhaGEuZWwiICJkaXIv d2hhLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIndb YWhdIy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygidy5lbCIgIndoLmVsIiAid2hhLmVs IiAid2hhaGEuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICJ3W2FoXSMjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJ3aC5lbCIgIndoYS5l bCIgIndoYWhhLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gt eC1idXQtbm90LXkgKCkKKyAgIlRlc3QgdGhhdCBcInh+eVwiIG1hdGNoZXMgXCJ4XCIgYnV0 IG5vdCBcInlcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiMSIgIjEyIiAiMTIzIiAiNDIi ICJkaXIvMSIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJb WzpkaWdpdDpdXSMjfjQ/IikKKyAgICAgICAgICAgICAgICAgICAnKCIxIiAiMTIiICIxMjMi KSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9uby1tYXRjaGVzICgpCisgICJU ZXN0IGJlaGF2aW9yIHdoZW4gYSBnbG9iIGZhaWxzIHRvIG1hdGNoIGFueSBmaWxlcy4iCisg ICh3aXRoLWZha2UtZmlsZXMgJygiZm9vLmVsIiAiYmFyLmVsIikKKyAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioudHh0IikKKyAgICAgICAgICAgICAgICAg ICAiKi50eHQiKSkKKyAgICAobGV0ICgoZXNoZWxsLWVycm9yLWlmLW5vLWdsb2IgdCkpCisg ICAgICAoc2hvdWxkLWVycm9yIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAiKi50eHQiKSkpKSkK KworOzsgZW0tZ2xvYi10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------F7EB05345DF97E50F8E62DEA Content-Type: text/plain; charset=UTF-8; name="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.pa"; filename*1="tch" RnJvbSAwMmM3MTJhZWQ1MTFkMjJkMjI0NDJjNGIzNWZhODZlMjQ3Njk3NTRhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTI6NDE6MTMgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvM10gQWRkIHVuaXQgdGVzdHMgYW5kIGRvY3VtZW50YXRpb24gZm9yIEVzaGVsbAog cHJlZGljYXRlcy9tb2RpZmllcnMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxs LWV2YWwtYXJndW1lbnQpOiBOZXcgZnVuY3Rpb24uCgoqIGxpc3AvZXNoZWxsL2VzaC11dGls LmVsIChlc2hlbGwtZmlsZS1hdHRyaWJ1dGVzKTogUGFzcyBvcmlnaW5hbAp2YWx1ZSBvZiBG SUxFIHRvICdmaWxlLWF0dHJpYnV0ZXMnLgoKKiBsaXNwL2VzaGVsbC9lbS1wcmVkLmVsIChl c2hlbGwtcHJlZGljYXRlLWFsaXN0KTogQ2hhbmdlIHNvY2tldCBjaGFyCnRvICc9Jywgc2lu Y2UgJ3MnIGNvbmZsaWN0cyB3aXRoIHNldHVpZC4KKGVzaGVsbC1tb2RpZmllci1hbGlzdCk6 IEZpeCAnRScgKGV2YWwpIG1vZGlmaWVyIGJ5IHVzaW5nCidlc2hlbGwtZXZhbC1hcmd1bWVu dCcuICBBbHNvIGltcHJvdmUgcGVyZm9ybWFuY2Ugb2YgJ08nIChyZXZlcnNlZApzb3J0KSBt b2RpZmllci4KKGVzaGVsbC1tb2RpZmllci1oZWxwLXN0cmluZyk6IEZpeCBkb2N1bWVudGF0 aW9uIG9mIGdsb2JhbApzdWJzdGl0dXRpb24gbW9kaWZpZXIuCihlc2hlbGwtcHJlZC1zdWJz dGl0dXRlKTogRml4IGluZmluaXRlIGxvb3AgaW4gc29tZSBnbG9iYWwKc3Vic3RpdHV0aW9u cy4KKGVzaGVsbC1qb2luLW1lbWJlcnMpOiBGaXggam9pbmluZyB3aXRoIGltcGxpY2l0ICIg IiBkZWxpbWl0ZXIuCgoqIHRlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbDogTmV3 IGZpbGUuCgoqIGRvYy9taXNjL2VzaGVsbC50ZXhpIChBcmd1bWVudCBQcmVkaWNhdGlvbik6 IE5ldyBzZWN0aW9uLgotLS0KIGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8 IDI0MCArKysrKysrKysrKysrKwogbGlzcC9lc2hlbGwvZW0tcHJlZC5lbCAgICAgICAgICAg IHwgIDM1ICstCiBsaXNwL2VzaGVsbC9lc2gtY21kLmVsICAgICAgICAgICAgfCAgIDggKwog bGlzcC9lc2hlbGwvZXNoLXV0aWwuZWwgICAgICAgICAgIHwgICA4ICstCiB0ZXN0L2xpc3Av ZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwgfCA1MjEgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDc4NiBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVz dHMuZWwKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNjL2Vz aGVsbC50ZXhpCmluZGV4IDY0ODkxN2Y2MmQuLjJkNTdlNDhlZDggMTAwNjQ0Ci0tLSBhL2Rv Yy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC0xMDAy LDYgKzEwMDIsNyBAQCBFeHBhbnNpb24KIEBtZW51CiAqIERvbGxhcnMgRXhwYW5zaW9uOjoK ICogR2xvYmJpbmc6OgorKiBBcmd1bWVudCBQcmVkaWNhdGlvbiBhbmQgTW9kaWZpY2F0aW9u OjoKIEBlbmQgbWVudQogCiBAbm9kZSBEb2xsYXJzIEV4cGFuc2lvbgpAQCAtMTE3NSw2ICsx MTc2LDI0NSBAQCBHbG9iYmluZwogCiBAZW5kIHRhYmxlCiAKK0Bub2RlIEFyZ3VtZW50IFBy ZWRpY2F0aW9uIGFuZCBNb2RpZmljYXRpb24KK0BzZWN0aW9uIEFyZ3VtZW50IFByZWRpY2F0 aW9uIGFuZCBNb2RpZmljYXRpb24KK0BjaW5kZXggYXJndW1lbnQgcHJlZGljYXRpb24KK0Bj aW5kZXggYXJndW1lbnQgbW9kaWZpY2F0aW9uCitFc2hlbGwgc3VwcG9ydHMgQGRmbnthcmd1 bWVudCBwcmVkaWNhdGlvbn0sIHRvIGZpbHRlciBlbGVtZW50cyBvZiBhCitnbG9iLCBhbmQg QGRmbnthcmd1bWVudCBtb2RpZmljYXRpb259LCB0byBtYW5pcHVsYXRlIGFyZ3VtZW50IHZh bHVlcy4KK1RoZXNlIGFyZSBzaW1pbGFyIHRvIGdsb2IgcXVhbGlmaWVycyBpbiBac2ggKEBw eHJlZntHbG9iIFF1YWxpZmllcnMsICwKKywgenNoLCBUaGUgWiBTaGVsbCBNYW51YWx9KS4K KworUHJlZGljYXRlcyBhbmQgbW9kaWZpZXJzIGFyZSBpbnRyb2R1Y2VkIHdpdGggQHNhbXB7 KEB2YXJ7ZmlsdGVyc30pfQorYWZ0ZXIgYW55IGxpc3QgYXJndW1lbnQsIHdoZXJlIEB2YXJ7 ZmlsdGVyc30gaXMgYSBsaXN0IG9mIHByZWRpY2F0ZXMKK29yIG1vZGlmaWVycy4gIEZvciBl eGFtcGxlLCBAc2FtcHsqKC4pfSBleHBhbmRzIHRvIGFsbCByZWd1bGFyIGZpbGVzCitpbiB0 aGUgY3VycmVudCBkaXJlY3RvcnkgYW5kIEBzYW1weyooXkBAOlVedTApfSBleHBhbmRzIHRv IGFsbAorbm9uLXN5bWxpbmtzIG5vdCBvd25lZCBieSBAY29kZXtyb290fSwgdXBwZXItY2Fz ZWQuCisKK1lvdSBjYW4gY3VzdG9taXplIHRoZSBzeW50YXggYW5kIGJlaGF2aW9yIG9mIHBy ZWRpY2F0ZXMgYW5kIG1vZGlmaWVycworaW4gRXNoZWxsIHZpYSB0aGUgQ3VzdG9taXplIGdy b3VwIGBgZXNoZWxsLXByZWQnJyAoQHB4cmVme0Vhc3kKK0N1c3RvbWl6YXRpb24sICwgLCBl bWFjcywgVGhlIEdOVSBFbWFjcyBNYW51YWx9KS4KKworQG1lbnUKKyogQXJndW1lbnQgUHJl ZGljYXRlczo6CisqIEFyZ3VtZW50IE1vZGlmaWVyczo6CitAZW5kIG1lbnUKKworQG5vZGUg QXJndW1lbnQgUHJlZGljYXRlcworQHN1YnNlY3Rpb24gQXJndW1lbnQgUHJlZGljYXRlcwor WW91IGNhbiB1c2UgYXJndW1lbnQgcHJlZGljYXRlcyB0byBmaWx0ZXIgbGlzdHMgb2YgZmls ZSBuYW1lcyBiYXNlZCBvbgordmFyaW91cyBwcm9wZXJ0aWVzIG9mIHRob3NlIGZpbGVzLiAg VGhpcyBpcyBtb3N0IHVzZWZ1bCB3aGVuIGNvbWJpbmVkCit3aXRoIGdsb2JiaW5nLCBidXQg Y2FuIGJlIHVzZWQgb24gYW55IGxpc3Qgb2YgZmlsZXMgbmFtZXMuICBFc2hlbGwKK3N1cHBv cnRzIHRoZSBmb2xsb3dpbmcgYXJndW1lbnQgcHJlZGljYXRlczoKKworQHRhYmxlIEBhc2lz CisKK0BpdGVtIEBzYW1wey99CitNYXRjaGVzIGRpcmVjdG9yaWVzLgorCitAaXRlbSBAc2Ft cHsufSBAcnsoUGVyaW9kKX0KK01hdGNoZXMgcmVndWxhciBmaWxlcy4KKworQGl0ZW0gQHNh bXB7QEB9CitNYXRjaGVzIHN5bWJvbGljIGxpbmtzLgorCitAaXRlbSBAc2FtcHs9fQorTWF0 Y2hlcyBzb2NrZXRzLgorCitAaXRlbSBAc2FtcHtwfQorTWF0Y2hlcyBuYW1lZCBwaXBlcy4K KworQGl0ZW0gQHNhbXB7JX0KK01hdGNoZXMgYmxvY2sgb3IgY2hhcmFjdGVyIGRldmljZXMu CisKK0BpdGVtIEBzYW1weyVifQorTWF0Y2hlcyBibG9jayBkZXZpY2VzLgorCitAaXRlbSBA c2FtcHslY30KK01hdGNoZXMgY2hhcmFjdGVyIGRldmljZXMuCisKK0BpdGVtIEBzYW1weyp9 CitNYXRjaGVzIHJlZ3VsYXIgZmlsZXMgdGhhdCBjYW4gYmUgZXhlY3V0ZWQgYnkgdGhlIGN1 cnJlbnQgdXNlci4KKworQGl0ZW0gQHNhbXB7cn0KK0BpdGVtIEBzYW1we0F9CitAaXRlbSBA c2FtcHtSfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSByZWFkYWJsZSBieSB0aGVpciBvd25l cnMgKEBzYW1we3J9KSwgdGhlaXIKK2dyb3VwcyAoQHNhbXB7QX0pLCBvciB0aGUgd29ybGQg KEBzYW1we1J9KS4KKworQGl0ZW0gQHNhbXB7d30KK0BpdGVtIEBzYW1we0l9CitAaXRlbSBA c2FtcHtXfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSB3cml0YWJsZSBieSB0aGVpciBvd25l cnMgKEBzYW1we3d9KSwgdGhlaXIKK2dyb3VwcyAoQHNhbXB7SX0pLCBvciB0aGUgd29ybGQg KEBzYW1we1d9KS4KKworQGl0ZW0gQHNhbXB7eH0KK0BpdGVtIEBzYW1we0V9CitAaXRlbSBA c2FtcHtYfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGJ5IHRoZWlyIG93 bmVycyAoQHNhbXB7eH0pLCB0aGVpcgorZ3JvdXBzIChAc2FtcHtFfSksIG9yIHRoZSB3b3Js ZCAoQHNhbXB7WH0pLgorCitAaXRlbSBAc2FtcHtzfQorTWF0Y2hlcyBmaWxlcyB3aXRoIHRo ZSBzZXR1aWQgZmxhZyBzZXQuCisKK0BpdGVtIEBzYW1we1N9CitNYXRjaGVzIGZpbGVzIHdp dGggdGhlIHNldGdpZCBmbGFnIHNldC4KKworQGl0ZW0gQHNhbXB7dH0KK01hdGNoZXMgZmls ZXMgd2l0aCB0aGUgc3RpY2t5IGJpdCBzZXQuCisKK0BpdGVtIEBzYW1we1V9CitNYXRjaGVz IGZpbGVzIG93bmVkIGJ5IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSB1c2VyIElELgorCitAaXRl bSBAc2FtcHtsQG9wdGlvbntbKy1dfUB2YXJ7bn19CitNYXRjaGVzIGZpbGVzIHdpdGggQHZh cntufSBsaW5rcy4gIFdpdGggQG9wdGlvbnsrfSAob3IgQG9wdGlvbnstfSksCittYXRjaGVz IGZpbGVzIHdpdGggbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pIEB2YXJ7bn0gbGlua3MsCity ZXNwZWN0aXZlbHkuCisKK0BpdGVtIEBzYW1we3VAdmFye3VpZH19CitAaXRlbSBAc2FtcHt1 J0B2YXJ7dXNlci1uYW1lfSd9CitNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHVzZXIgSUQgQHZh cnt1aWR9IG9yIHVzZXIgbmFtZSBAdmFye3VzZXItbmFtZX0uCisKK0BpdGVtIEBzYW1we2dA dmFye2dpZH19CitAaXRlbSBAc2FtcHtnJ0B2YXJ7Z3JvdXAtbmFtZX0nfQorTWF0Y2hlcyBm aWxlcyBvd25lZCBieSBncm91cCBJRCBAdmFye2dpZH0gb3IgZ3JvdXAgbmFtZQorQHZhcntn cm91cC1uYW1lfS4KKworQGl0ZW0gQHNhbXB7YUBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRp b257WystXX1AdmFye259fQorQGl0ZW0gQHNhbXB7YUBvcHRpb257WystXX0nQHZhcntmaWxl fSd9CitNYXRjaGVzIGZpbGVzIGxhc3QgYWNjZXNzZWQgZXhhY3RseSBAdmFye259IGRheXMg YWdvLiAgV2l0aCBAb3B0aW9ueyt9Cisob3IgQG9wdGlvbnstfSksIG1hdGNoZXMgZmlsZXMg YWNjZXNzZWQgbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pCitAdmFye259IGRheXMgYWdvLCBy ZXNwZWN0aXZlbHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBhIHF1YW50aXR5 IGluIHRoYXQgdW5pdCBvZiB0aW1lLCBzbworQHNhbXB7YXctMX0gbWF0Y2hlcyBmaWxlcyBs YXN0IGFjY2Vzc2VkIHdpdGhpbiBvbmUgd2Vlay4gIEB2YXJ7dW5pdH0KK2NhbiBiZSBAc2Ft cHtNfSAoMzAtZGF5IG1vbnRocyksIEBzYW1we3d9ICh3ZWVrcyksIEBzYW1we2h9IChob3Vy cyksCitAc2FtcHttfSAobWludXRlcyksIG9yIEBzYW1we3N9IChzZWNvbmRzKS4KKworSWYg QHZhcntmaWxlfSBpcyBzcGVjaWZpZWQgaW5zdGVhZCwgY29tcGFyZSBhZ2FpbnN0IHRoZSBt b2RpZmljYXRpb24KK3RpbWUgb2YgQGZpbGV7ZmlsZX0uICBUaHVzLCBAc2FtcHthLSdoZWxs by50eHQnfSBtYXRjaGVzIGFsbCBmaWxlcworYWNjZXNzZWQgYWZ0ZXIgQGZpbGV7aGVsbG8u dHh0fSB3YXMgbGFzdCBhY2Nlc3NlZC4KKworQGl0ZW0gQHNhbXB7bUBvcHRpb257W0B2YXJ7 dW5pdH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQHNhbXB7bUBvcHRpb257Wyst XX0nQHZhcntmaWxlfSd9CitMaWtlIEBzYW1we2F9LCBidXQgZXhhbWluZXMgbW9kaWZpY2F0 aW9uIHRpbWUuCisKK0BpdGVtIEBzYW1we2NAb3B0aW9ue1tAdmFye3VuaXR9XX1Ab3B0aW9u e1srLV19QHZhcntufX0KK0BpdGVtIEBzYW1we2NAb3B0aW9ue1srLV19J0B2YXJ7ZmlsZX0n fQorTGlrZSBAc2FtcHthfSwgYnV0IGV4YW1pbmVzIHN0YXR1cyBjaGFuZ2UgdGltZS4KKwor QGl0ZW0gQHNhbXB7TEBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRpb257WystXX1AdmFye259 fQorTWF0Y2hlcyBmaWxlcyBleGFjdGx5IEB2YXJ7bn0gYnl0ZXMgaW4gc2l6ZS4gIFdpdGgg QG9wdGlvbnsrfSAob3IKK0BvcHRpb257LX0pLCBtYXRjaGVzIGZpbGVzIGxhcmdlciB0aGFu IChvciBzbWFsbGVyIHRoYW4pIEB2YXJ7bn0KK2J5dGVzLCByZXNwZWN0aXZlbHkuCisKK1dp dGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBhIHF1YW50aXR5IGluIHRoYXQgdW5pdCBvZiBz aXplLCBzbworQHNhbXB7TG0rNX0gbWF0Y2hlcyBmaWxlcyBsYXJnZXIgdGhhbiA1IE1pQiBp biBzaXplLiAgQHZhcnt1bml0fSBjYW4KK2JlIG9uZSBvZiB0aGUgZm9sbG93aW5nIChjYXNl LWluc2Vuc2l0aXZlKSBjaGFyYWN0ZXJzOiBAc2FtcHttfQorKG1lZ2FieXRlcyksIEBzYW1w e2t9IChraWxvYnl0ZXMpLCBvciBAc2FtcHtwfSAoNTEyLWJ5dGUgYmxvY2tzKS4KKworQGVu ZCB0YWJsZQorCitUaGUgQHNhbXB7Xn0gYW5kIEBzYW1wey19IG9wZXJhdG9ycyBhcmUgbm90 IGFyZ3VtZW50IHByZWRpY2F0ZXMKK3RoZW1zZWx2ZXMsIGJ1dCB0aGV5IG1vZGlmeSB0aGUg YmVoYXZpb3Igb2YgYWxsIHN1YnNlcXVlbnQgcHJlZGljYXRlcy4KK0BzYW1we159IGludmVy dHMgdGhlIG1lYW5pbmcgb2Ygc3Vic2VxdWVudCBwcmVkaWNhdGVzLCBzbworQHNhbXB7Kihe UldYKX0gZXhwYW5kcyB0byBhbGwgZmlsZXMgd2hvc2UgcGVybWlzc2lvbnMgZGlzYWxsb3cg dGhlCit3b3JsZCBmcm9tIGFjY2Vzc2luZyB0aGVtIGluIGFueSB3YXkgKGkuZS4sIHJlYWRp bmcsIHdyaXRpbmcgdG8sIG9yCittb2RpZnlpbmcgdGhlbSkuICBXaGVuIGV4YW1pbmluZyBh IHN5bWJvbGljIGxpbmssIEBzYW1wey19IGFwcGxpZXMgdGhlCitzdWJzZXF1ZW50IHByZWRp Y2F0ZXMgdG8gdGhlIGxpbmsncyB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgbGluayBpdHNlbGYu CisKK0Bub2RlIEFyZ3VtZW50IE1vZGlmaWVycworQHN1YnNlY3Rpb24gQXJndW1lbnQgTW9k aWZpZXJzCitZb3UgY2FuIHVzZSBhcmd1bWVudCBtb2RpZmllcnMgdG8gbWFuaXB1bGF0ZSBh cmd1bWVudCB2YWx1ZXMuICBGb3IKK2V4YW1wbGUsIHlvdSBjYW4gc29ydCBsaXN0cywgcmVt b3ZlIGR1cGxpY2F0ZSB2YWx1ZXMsIGNhcGl0YWxpemUKK3dvcmRzLCBldGMuICBBbGwgYXJn dW1lbnQgbW9kaWZpZXJzIGFyZSBwcmVmaXhlZCBieSBAc2FtcHs6fSwgc28KK0BzYW1weyRl eGVjLXBhdGgoOmg6dTp4L15cL2hvbWUvKX0gbGlzdHMgYWxsIG9mIHRoZSB1bmlxdWUgcGFy ZW50CitkaXJlY3RvcmllcyBvZiB0aGUgZWxlbWVudHMgaW4gQGNvZGV7ZXhlYy1wYXRofSwg ZXhjbHVkaW5nIHRob3NlIGluCitAZmlsZXsvaG9tZX0uCisKK0B0YWJsZSBAc2FtcAorCitA aXRlbSBFCitSZS1ldmFsdWF0ZXMgdGhlIHZhbHVlIGFzIGFuIEVzaGVsbCBhcmd1bWVudC4g IEZvciBleGFtcGxlLCBpZgorQHZhcntmb299IGlzIEBjb2RleyIkQHtlY2hvIGhpQH0ifSwg dGhlbiB0aGUgcmVzdWx0IG9mIEBzYW1weyRmb28oOkUpfQoraXMgQGNvZGV7aGl9LgorCitA aXRlbSBMCitDb252ZXJ0cyB0aGUgdmFsdWUgdG8gbG93ZXIgY2FzZS4KKworQGl0ZW0gVQor Q29udmVydHMgdGhlIHZhbHVlIHRvIHVwcGVyIGNhc2UuCisKK0BpdGVtIEMKK0NhcGl0YWxp emVzIHRoZSB2YWx1ZS4KKworQGl0ZW0gaAorVHJlYXRpbmcgdGhlIHZhbHVlIGFzIGEgZmls ZSBuYW1lLCBnZXRzIHRoZSBkaXJlY3RvcnkgbmFtZSAodGhlCitgYGhlYWQnJykuICBGb3Ig ZXhhbXBsZSwgQHNhbXB7Zm9vL2Jhci9iYXouZWwoOmgpfSBleHBhbmRzIHRvCitAc2FtcHtm b28vYmFyL30uCisKK0BpdGVtIHQKK1RyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhIGZpbGUgbmFt ZSwgZ2V0cyB0aGUgYmFzZSBuYW1lICh0aGUgYGB0YWlsJycpLgorRm9yIGV4YW1wbGUsIEBz YW1we2Zvby9iYXIvYmF6LmVsKDpoKX0gZXhwYW5kcyB0byBAc2FtcHtiYXouZWx9LgorCitA aXRlbSBlCitUcmVhdGluZyB0aGUgdmFsdWUgYXMgYSBmaWxlIG5hbWUsIGdldHMgdGhlIGZp bmFsIGV4dGVuc2lvbiBvZiB0aGUKK2ZpbGUsIGV4Y2x1ZGluZyB0aGUgZG90LiAgRm9yIGV4 YW1wbGUsIEBzYW1we2Zvby50YXIuZ3ooOmUpfQorZXhwYW5kcyB0byBAY29kZXtnen0uCisK K0BpdGVtIHIKK1RyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhIGZpbGUgbmFtZSwgZ2V0cyB0aGUg ZmlsZSBuYW1lIGV4Y2x1ZGluZyB0aGUKK2ZpbmFsIGV4dGVuc2lvbi4gIEZvciBleGFtcGxl LCBAc2FtcHtmb28vYmFyL2Jhei50YXIuZ3ooOnIpfSBleHBhbmRzCit0byBAc2FtcHtmb28v YmFyL2Jhei50YXJ9LgorCitAaXRlbSBxCitNYXJrcyB0aGF0IHRoZSB2YWx1ZSBzaG91bGQg YmUgaW50ZXJwcmV0ZWQgYnkgRXNoZWxsIGxpdGVyYWxseSwgc28KK3RoYXQgYW55IHNwZWNp YWwgY2hhcmFjdGVycyBsaWtlIEBzYW1weyR9IG5vIGxvbmdlciBoYXZlIGFueSBzcGVjaWFs CittZWFuaW5nLgorCitAaXRlbSBzL0B2YXJ7cGF0dGVybn0vQHZhcntyZXBsYWNlfS8KK1Jl cGxhY2VzIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uIEB2 YXJ7cGF0dGVybn0KK3dpdGggQHZhcntyZXBsYWNlfS4gIFNpZ25hbHMgYW4gZXJyb3IgaWYg bm8gbWF0Y2ggaXMgZm91bmQuCisKK0BpdGVtIGdzL0B2YXJ7cGF0dGVybn0vQHZhcntyZXBs YWNlfS8KK1JlcGxhY2VzIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lv biBAdmFye3BhdHRlcm59IHdpdGgKK0B2YXJ7cmVwbGFjZX0uCisKK0BpdGVtIGkvQHZhcntw YXR0ZXJufS8KK0ZpbHRlcnMgYSBsaXN0IG9mIHZhbHVlcyB0byBpbmNsdWRlIG9ubHkgdGhl IGVsZW1lbnRzIG1hdGNoaW5nIHRoZQorcmVndWxhciBleHByZXNzaW9uIEB2YXJ7cGF0dGVy bn0uCisKK0BpdGVtIHgvQHZhcntwYXR0ZXJufS8KK0ZpbHRlcnMgYSBsaXN0IG9mIHZhbHVl cyB0byBleGNsdWRlIGFsbCB0aGUgZWxlbWVudHMgbWF0Y2hpbmcgdGhlCityZWd1bGFyIGV4 cHJlc3Npb24gQHZhcntwYXR0ZXJufS4KKworQGl0ZW0gUworQGl0ZW0gUy9AdmFye3BhdHRl cm59LworU3BsaXRzIHRoZSB2YWx1ZSB1c2luZyB0aGUgcmVndWxhciBleHByZXNzaW9uIEB2 YXJ7cGF0dGVybn0gYXMgYQorZGVsaW1pdGVyLiAgSWYgQHZhcntwYXR0ZXJufSBpcyBvbWl0 dGVkLCBzcGxpdCBvbiBzcGFjZXMuCisKK0BpdGVtIGoKK0BpdGVtIGovQHZhcntkZWxpbX0v CitKb2lucyBhIGxpc3Qgb2YgdmFsdWVzLCBpbnNlcnRpbmcgdGhlIHN0cmluZyBAdmFye2Rl bGltfSBiZXR3ZWVuIGVhY2gKK3ZhbHVlLiAgSWYgQHZhcntkZWxpbX0gaXMgb21pdHRlZCwg dXNlIGEgc2luZ2xlIHNwYWNlIGFzIHRoZQorZGVsaW1pdGVyLgorCitAaXRlbSBvCitTb3J0 cyBhIGxpc3Qgb2Ygc3RyaW5ncyBpbiBhc2NlbmRpbmcgbGV4aWNvZ3JhcGhpYyBvcmRlciwg Y29tcGFyaW5nCitwYWlycyBvZiBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byB0aGVpciBjaGFy YWN0ZXIgY29kZXMgKEBweHJlZntUZXh0CitDb21wYXJpc29uLCAsICwgZWxpc3AsIFRoZSBF bWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51YWx9KS4KKworQGl0ZW0gTworU29ydHMgYSBsaXN0 IG9mIHN0cmluZ3MgaW4gZGVzY2VuZGluZyBsZXhpY29ncmFwaGljIG9yZGVyLgorCitAaXRl bSB1CitSZW1vdmVzIGFueSBkdXBsaWNhdGUgZWxlbWVudHMgZnJvbSBhIGxpc3Qgb2YgdmFs dWVzLgorCitAaXRlbSBSCitSZXZlcnNlcyB0aGUgb3JkZXIgb2YgYSBsaXN0IG9mIHZhbHVl cy4KKworQGVuZCB0YWJsZQorCiBAbm9kZSBJbnB1dC9PdXRwdXQKIEBjaGFwdGVyIElucHV0 L091dHB1dAogU2luY2UgRXNoZWxsIGRvZXMgbm90IGNvbW11bmljYXRlIHdpdGggYSB0ZXJt aW5hbCBsaWtlIG1vc3QgY29tbWFuZApkaWZmIC0tZ2l0IGEvbGlzcC9lc2hlbGwvZW0tcHJl ZC5lbCBiL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwKaW5kZXggOTcwMzI5ZTEyYS4uOGFmYzg2 ZGQ0MSAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbAorKysgYi9saXNwL2Vz aGVsbC9lbS1wcmVkLmVsCkBAIC02OCw3ICs2OCw3IEBAIGVzaGVsbC1wcmVkLWxvYWQtaG9v awogKGRlZmN1c3RvbSBlc2hlbGwtcHJlZGljYXRlLWFsaXN0CiAgICcoKD8vIC4gKGVzaGVs bC1wcmVkLWZpbGUtdHlwZSA/ZCkpICAgOyBkaXJlY3RvcmllcwogICAgICg/LiAuIChlc2hl bGwtcHJlZC1maWxlLXR5cGUgPy0pKSAgIDsgcmVndWxhciBmaWxlcwotICAgICg/cyAuIChl c2hlbGwtcHJlZC1maWxlLXR5cGUgP3MpKSAgIDsgc29ja2V0cworICAgICg/PSAuIChlc2hl bGwtcHJlZC1maWxlLXR5cGUgP3MpKSAgIDsgc29ja2V0cwogICAgICg/cCAuIChlc2hlbGwt cHJlZC1maWxlLXR5cGUgP3ApKSAgIDsgbmFtZWQgcGlwZXMKICAgICAoP0AgLiAoZXNoZWxs LXByZWQtZmlsZS10eXBlID9sKSkgICA7IHN5bWJvbGljIGxpbmtzCiAgICAgKD8lIC4gKGVz aGVsbC1wcmVkLWZpbGUtdHlwZSA/JSkpICAgOyBhbGxvdyB1c2VyIHRvIHNwZWNpZnkgKGMg ZGVmLikKQEAgLTk3LDggKzk3LDggQEAgZXNoZWxsLXByZWRpY2F0ZS1hbGlzdAogICAgICAg ICAgICAgICAgICAobm90IChmaWxlLXN5bWxpbmstcCBmaWxlKSkKICAgICAgICAgICAgICAg ICAgKGZpbGUtZXhlY3V0YWJsZS1wIGZpbGUpKSkpCiAgICAgKD9sIC4gKGVzaGVsbC1wcmVk LWZpbGUtbGlua3MpKQotICAgICg/dSAuIChlc2hlbGwtcHJlZC11c2VyLW9yLWdyb3VwID91 ICJ1c2VyIiAyICdlc2hlbGwtdXNlci1pZCkpCi0gICAgKD9nIC4gKGVzaGVsbC1wcmVkLXVz ZXItb3ItZ3JvdXAgP2cgImdyb3VwIiAzICdlc2hlbGwtZ3JvdXAtaWQpKQorICAgICg/dSAu IChlc2hlbGwtcHJlZC11c2VyLW9yLWdyb3VwID91ICJ1c2VyIiAyICMnZXNoZWxsLXVzZXIt aWQpKQorICAgICg/ZyAuIChlc2hlbGwtcHJlZC11c2VyLW9yLWdyb3VwID9nICJncm91cCIg MyAjJ2VzaGVsbC1ncm91cC1pZCkpCiAgICAgKD9hIC4gKGVzaGVsbC1wcmVkLWZpbGUtdGlt ZSA/YSAiYWNjZXNzIiA0KSkKICAgICAoP20gLiAoZXNoZWxsLXByZWQtZmlsZS10aW1lID9t ICJtb2RpZmljYXRpb24iIDUpKQogICAgICg/YyAuIChlc2hlbGwtcHJlZC1maWxlLXRpbWUg P2MgImNoYW5nZSIgNikpCkBAIC0xMTEsMTIgKzExMSw3IEBAIGVzaGVsbC1wcmVkaWNhdGUt YWxpc3QKICAgOnJpc2t5IHQpCiAKIChkZWZjdXN0b20gZXNoZWxsLW1vZGlmaWVyLWFsaXN0 Ci0gICcoKD9FIC4gKGxhbWJkYSAobHN0KQotICAgICAgICAgICAgKG1hcGNhcgotICAgICAg ICAgICAgIChsYW1iZGEgKHN0cikKLSAgICAgICAgICAgICAgIChlc2hlbGwtc3RyaW5naWZ5 Ci0gICAgICAgICAgICAgICAgKGNhciAoZXNoZWxsLXBhcnNlLWFyZ3VtZW50IHN0cikpKSkK LSAgICAgICAgICAgICBsc3QpKSkKKyAgJygoP0UgLiAobGFtYmRhIChsc3QpIChtYXBjYXIg Iydlc2hlbGwtZXZhbC1hcmd1bWVudCBsc3QpKSkKICAgICAoP0wgLiAobGFtYmRhIChsc3Qp IChtYXBjYXIgIydkb3duY2FzZSBsc3QpKSkKICAgICAoP1UgLiAobGFtYmRhIChsc3QpICht YXBjYXIgIyd1cGNhc2UgbHN0KSkpCiAgICAgKD9DIC4gKGxhbWJkYSAobHN0KSAobWFwY2Fy ICMnY2FwaXRhbGl6ZSBsc3QpKSkKQEAgLTEyOSwxMCArMTI0LDEwIEBAIGVzaGVsbC1tb2Rp Zmllci1hbGlzdAogICAgICg/cSAuIChsYW1iZGEgKGxzdCkgKG1hcGNhciAjJ2VzaGVsbC1l c2NhcGUtYXJnIGxzdCkpKQogICAgICg/dSAuIChsYW1iZGEgKGxzdCkgKHNlcS11bmlxIGxz dCkpKQogICAgICg/byAuIChsYW1iZGEgKGxzdCkgKHNvcnQgbHN0ICMnc3RyaW5nLWxlc3Nw KSkpCi0gICAgKD9PIC4gKGxhbWJkYSAobHN0KSAobnJldmVyc2UgKHNvcnQgbHN0ICMnc3Ry aW5nLWxlc3NwKSkpKQorICAgICg/TyAuIChsYW1iZGEgKGxzdCkgKHNvcnQgbHN0ICMnc3Ry aW5nLWdyZWF0ZXJwKSkpCiAgICAgKD9qIC4gKGVzaGVsbC1qb2luLW1lbWJlcnMpKQogICAg ICg/UyAuIChlc2hlbGwtc3BsaXQtbWVtYmVycykpCi0gICAgKD9SIC4gJ3JldmVyc2UpCisg ICAgKD9SIC4gIydyZXZlcnNlKQogICAgICg/ZyAuIChwcm9nbgogCSAgICAoZm9yd2FyZC1j aGFyKQogCSAgICAoaWYgKGVxIChjaGFyLWJlZm9yZSkgP3MpCkBAIC0xNDIsNyArMTM3LDcg QEAgZXNoZWxsLW1vZGlmaWVyLWFsaXN0CiAgICJBIGxpc3Qgb2YgbW9kaWZpZXJzIHRoYW4g Y2FuIGJlIGFwcGxpZWQgdG8gYW4gYXJndW1lbnQgZXhwYW5zaW9uLgogVGhlIGZvcm1hdCBv ZiBlYWNoIGVudHJ5IGlzCiAKLSAgKENIQVIgRU5UUllXSVNFLVAgTU9ESUZJRVItRlVOQy1T RVhQKSIKKyAgKENIQVIgLiBNT0RJRklFUi1GVU5DLVNFWFApIgogICA6dHlwZSAnKHJlcGVh dCAoY29ucyBjaGFyYWN0ZXIgc2V4cCkpCiAgIDpyaXNreSB0KQogCkBAIC0yMTcsOCArMjEy LDggQEAgZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nCiAgIGkvUEFULyAgZXhjbHVkZSBh bGwgbWVtYmVycyBub3QgbWF0Y2hpbmcgUEFUCiAgIHgvUEFULyAgZXhjbHVkZSBhbGwgbWVt YmVycyBtYXRjaGluZyBQQVQKIAotICBzL3BhdC9tYXRjaC8gIHN1YnN0aXR1dGUgUEFUIHdp dGggTUFUQ0gKLSAgZy9wYXQvbWF0Y2gvICBzdWJzdGl0dXRlIFBBVCB3aXRoIE1BVENIIGZv ciBhbGwgb2NjdXJyZW5jZXMKKyAgcy9wYXQvbWF0Y2gvICAgc3Vic3RpdHV0ZSBQQVQgd2l0 aCBNQVRDSAorICBncy9wYXQvbWF0Y2gvICBzdWJzdGl0dXRlIFBBVCB3aXRoIE1BVENIIGZv ciBhbGwgb2NjdXJyZW5jZXMKIAogRVhBTVBMRVM6CiAgICouYyg6bykgIHNvcnRlZCBsaXN0 IG9mIC5jIGZpbGVzIikKQEAgLTUzNCwxOCArNTI5LDE0IEBAIGVzaGVsbC1wcmVkLXN1YnN0 aXR1dGUKIAkobGFtYmRhIChsc3QpCiAJICAobWFwY2FyCiAgICAgICAgICAgIChsYW1iZGEg KHN0cikKLSAgICAgICAgICAgICAobGV0ICgoaSAwKSkKLSAgICAgICAgICAgICAgICh3aGls ZSAoc2V0cSBpIChzdHJpbmctbWF0Y2ggbWF0Y2ggc3RyIGkpKQotICAgICAgICAgICAgICAg ICAoc2V0cSBzdHIgKHJlcGxhY2UtbWF0Y2ggcmVwbGFjZSB0IG5pbCBzdHIpKSkpCi0gICAg ICAgICAgICAgc3RyKQorICAgICAgICAgICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcg bWF0Y2ggcmVwbGFjZSBzdHIgdCkpCiAgICAgICAgICAgIGxzdCkpCiAgICAgICAobGFtYmRh IChsc3QpCiAJKG1hcGNhcgogICAgICAgICAgKGxhbWJkYSAoc3RyKQogICAgICAgICAgICAo aWYgKHN0cmluZy1tYXRjaCBtYXRjaCBzdHIpCi0gICAgICAgICAgICAgICAoc2V0cSBzdHIg KHJlcGxhY2UtbWF0Y2ggcmVwbGFjZSB0IG5pbCBzdHIpKQotICAgICAgICAgICAgIChlcnJv ciAoY29uY2F0IHN0ciAiOiBzdWJzdGl0dXRpb24gZmFpbGVkIikpKQotICAgICAgICAgICBz dHIpCisgICAgICAgICAgICAgICAocmVwbGFjZS1tYXRjaCByZXBsYWNlIHQgbmlsIHN0cikK KyAgICAgICAgICAgICAoZXJyb3IgKGNvbmNhdCBzdHIgIjogc3Vic3RpdHV0aW9uIGZhaWxl ZCIpKSkpCiAgICAgICAgICBsc3QpKSkpKQogCiAoZGVmdW4gZXNoZWxsLWluY2x1ZGUtbWVt YmVycyAoJm9wdGlvbmFsIGludmVydC1wKQpAQCAtNTY4LDcgKzU1OSw3IEBAIGVzaGVsbC1q b2luLW1lbWJlcnMKICAgKGxldCAoKGRlbGltIChjaGFyLWFmdGVyKSkKIAlzdHIgZW5kKQog ICAgIChpZiAobm90IChtZW1xIGRlbGltICcoPycgPy8pKSkKLQkoc2V0cSBkZWxpbSAiICIp CisJKHNldHEgc3RyICIgIikKICAgICAgIChmb3J3YXJkLWNoYXIpCiAgICAgICAoc2V0cSBl bmQgKGVzaGVsbC1maW5kLWRlbGltaXRlciBkZWxpbSBkZWxpbSBuaWwgbmlsIHQpCiAJICAg IHN0ciAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkgZW5kKSkKZGlm ZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwgYi9saXNwL2VzaGVsbC9lc2gtY21k LmVsCmluZGV4IDhiZTExMzZlMzEuLjQyNjE2ZTcwMzcgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNo ZWxsL2VzaC1jbWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbApAQCAtMTAwMiw2 ICsxMDAyLDE0IEBAIGVzaGVsbC1pbnZva2UtZGlyZWN0bHkKICAgKGxldCAoKGJhc2UgKGNh ZHIgKG50aCAyIChudGggMiAoY2FkciBjb21tYW5kKSkpKSkpCiAgICAgKGVzaGVsbC0taW52 b2tlLWNvbW1hbmQtZGlyZWN0bHkgYmFzZSkpKQogCisoZGVmdW4gZXNoZWxsLWV2YWwtYXJn dW1lbnQgKGFyZ3VtZW50KQorICAiRXZhbHVhdGUgYSBzaW5nbGUgRXNoZWxsIEFSR1VNRU5U IGFuZCByZXR1cm4gdGhlIHJlc3VsdC4iCisgIChsZXQqICgoZm9ybSAoZXNoZWxsLXdpdGgt dGVtcC1jb21tYW5kIGFyZ3VtZW50CisgICAgICAgICAgICAgICAgIChlc2hlbGwtcGFyc2Ut YXJndW1lbnQpKSkKKyAgICAgICAgIChyZXN1bHQgKGVzaGVsbC1kby1ldmFsIGZvcm0gdCkp KQorICAgIChjbC1hc3NlcnQgKGVxIChjYXIgcmVzdWx0KSAncXVvdGUpKQorICAgIChjYWRy IHJlc3VsdCkpKQorCiAoZGVmdW4gZXNoZWxsLWV2YWwtY29tbWFuZCAoY29tbWFuZCAmb3B0 aW9uYWwgaW5wdXQpCiAgICJFdmFsdWF0ZSB0aGUgZ2l2ZW4gQ09NTUFORCBpdGVyYXRpdmVs eS4iCiAgIChpZiBlc2hlbGwtY3VycmVudC1jb21tYW5kCmRpZmYgLS1naXQgYS9saXNwL2Vz aGVsbC9lc2gtdXRpbC5lbCBiL2xpc3AvZXNoZWxsL2VzaC11dGlsLmVsCmluZGV4IDgwODlk NGQ3NGIuLjNkYTcxMmM3MTkgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VzaC11dGlsLmVs CisrKyBiL2xpc3AvZXNoZWxsL2VzaC11dGlsLmVsCkBAIC01OTIsMTEgKzU5MiwxMSBAQCBl c2hlbGwtZmlsZS1hdHRyaWJ1dGVzCiBUaGUgb3B0aW9uYWwgYXJndW1lbnQgSUQtRk9STUFU IHNwZWNpZmllcyB0aGUgcHJlZmVycmVkIHVpZCBhbmQKIGdpZCBmb3JtYXQuICBWYWxpZCB2 YWx1ZXMgYXJlIGBzdHJpbmcnIGFuZCBgaW50ZWdlcicsIGRlZmF1bHRpbmcgdG8KIGBpbnRl Z2VyJy4gIFNlZSBgZmlsZS1hdHRyaWJ1dGVzJy4iCi0gIChsZXQqICgoZmlsZSAoZXhwYW5k LWZpbGUtbmFtZSBmaWxlKSkKKyAgKGxldCogKChleHBhbmRlZC1maWxlIChleHBhbmQtZmls ZS1uYW1lIGZpbGUpKQogCSBlbnRyeSkKLSAgICAoaWYgKHN0cmluZy1lcXVhbCAoZmlsZS1y ZW1vdGUtcCBmaWxlICdtZXRob2QpICJmdHAiKQotCShsZXQgKChiYXNlIChmaWxlLW5hbWUt bm9uZGlyZWN0b3J5IGZpbGUpKQotCSAgICAgIChkaXIgKGZpbGUtbmFtZS1kaXJlY3Rvcnkg ZmlsZSkpKQorICAgIChpZiAoc3RyaW5nLWVxdWFsIChmaWxlLXJlbW90ZS1wIGV4cGFuZGVk LWZpbGUgJ21ldGhvZCkgImZ0cCIpCisJKGxldCAoKGJhc2UgKGZpbGUtbmFtZS1ub25kaXJl Y3RvcnkgZXhwYW5kZWQtZmlsZSkpCisJICAgICAgKGRpciAoZmlsZS1uYW1lLWRpcmVjdG9y eSBleHBhbmRlZC1maWxlKSkpCiAJICAoaWYgKHN0cmluZy1lcXVhbCAiIiBiYXNlKSAoc2V0 cSBiYXNlICIuIikpCiAJICAodW5sZXNzIGVudHJ5CiAJICAgIChzZXRxIGVudHJ5IChlc2hl bGwtcGFyc2UtYW5nZS1scyBkaXIpKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VzaGVsbC9l bS1wcmVkLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjc0ZGFkOWY4YjgKLS0tIC9k ZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwKQEAgLTAs MCArMSw1MjEgQEAKKzs7OyBlbS1wcmVkLXRlc3RzLmVsIC0tLSBlbS1wcmVkIHRlc3Qgc3Vp dGUgIC0qLSBsZXhpY2FsLWJpbmRpbmc6dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIy IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCis7OyBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7 OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb21tZW50YXJ5OgorCis7OyBUZXN0cyBmb3IgRXNo ZWxsJ3MgYXJndW1lbnQgcHJlZGljYXRlcy9tb2RpZmllcnMuCisKKzs7OyBDb2RlOgorCiso cmVxdWlyZSAnZXJ0KQorKHJlcXVpcmUgJ2VzaC1tb2RlKQorKHJlcXVpcmUgJ2VzaGVsbCkK KworKHJlcXVpcmUgJ2VzaGVsbC10ZXN0cy1oZWxwZXJzCisgICAgICAgICAoZXhwYW5kLWZp bGUtbmFtZSAiZXNoZWxsLXRlc3RzLWhlbHBlcnMiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZmlsZS1uYW1lLWRpcmVjdG9yeSAob3IgbG9hZC1maWxlLW5hbWUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0LWRp cmVjdG9yeSkpKSkKKworKGRlZnZhciBlc2hlbGwtdGVzdC12YWx1ZSBuaWwpCisKKyhkZWZ1 biBlc2hlbGwtZXZhbC1wcmVkaWNhdGUgKGluaXRpYWwtdmFsdWUgcHJlZGljYXRlKQorICAi RXZhbHVhdGUgUFJFRElDQVRFIG9uIElOSVRJQUwtVkFMVUUsIHJldHVybmluZyB0aGUgcmVz dWx0LgorUFJFRElDQVRFIGlzIGFuIEVzaGVsbCBhcmd1bWVudCBwcmVkaWNhdGUvbW9kaWZp ZXIuIgorICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgaW5pdGlhbC12YWx1ZSkpCisgICAg KHdpdGgtdGVtcC1lc2hlbGwKKyAgICAgKGVzaGVsbC1pbnNlcnQtY29tbWFuZAorICAgICAg KGZvcm1hdCAic2V0cSBlc2hlbGwtdGVzdC12YWx1ZSAkZXNoZWxsLXRlc3QtdmFsdWUoJXMp IiBwcmVkaWNhdGUpKSkKKyAgICBlc2hlbGwtdGVzdC12YWx1ZSkpCisKKyhkZWZ1biBlc2hl bGwtcGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgKGZpbGUpCisgICJQYXJzZSBhIGZha2Ug RklMRSBuYW1lIHRvIGRldGVybWluZSBpdHMgYXR0cmlidXRlcy4KK0Zha2UgZmlsZSBuYW1l cyBhcmUgZmlsZSBuYW1lcyBiZWdpbm5pbmcgd2l0aCBcIi9mYWtlL1wiLiAgVGhpcworYWxs b3dzIGRlZmluaW5nIGZpbGUgbmFtZXMgZm9yIGZha2UgZmlsZXMgd2l0aCB2YXJpb3VzIHBy b3BlcnRpZXMKK3RvIHF1ZXJ5IHZpYSBwcmVkaWNhdGVzLiAgQXR0cmlidXRlcyBhcmUgd3Jp dHRlbiBhcyBhCitjb21tYS1zZXBhcmF0ZSBsaXN0IG9mIEFUVFI9VkFMVUUgcGFpcnMgYXMg dGhlIGZpbGUncyBiYXNlIG5hbWUsCitsaWtlOgorCisgIC9mYWtlL3R5cGU9LSxtb2Rlcz0w NzU1LmVsCisKK1RoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgcmVjb2duaXplZDoKKwor ICAqIFwidHlwZVwiOiBBIHNpbmdsZSBjaGFyYWN0ZXIgZGVzY3JpYmluZyB0aGUgZmlsZSB0 eXBlOworICAgIGFjY2VwdHMgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBmaXJzdCBjaGFyYWN0 ZXIgb2YgdGhlIGZpbGUKKyAgICBtb2RlcyBpbiBgbHMgLWwnLgorICAqIFwibW9kZXNcIjog VGhlIGZpbGUncyBwZXJtaXNzaW9uIG1vZGVzLCBpbiBvY3RhbC4KKyAgKiBcImxpbmtzXCI6 IFRoZSBudW1iZXIgb2YgbGlua3MgdG8gdGhpcyBmaWxlLgorICAqIFwidWlkXCI6IFRoZSBV SUQgb2YgdGhlIGZpbGUncyBvd25lci4KKyAgKiBcImdpZFwiOiBUaGUgVUlEIG9mIHRoZSBm aWxlJ3MgZ3JvdXAuCisgICogXCJhdGltZVwiOiBUaGUgdGltZSB0aGUgZmlsZSB3YXMgbGFz dCBhY2Nlc3NlZCwgaW4gc2Vjb25kcworICAgIHNpbmNlIHRoZSBVTklYIGVwb2NoLgorICAq IFwibXRpbWVcIjogQXMgXCJhdGltZVwiLCBidXQgZm9yIG1vZGlmaWNhdGlvbiB0aW1lLgor ICAqIFwiY3RpbWVcIjogQXMgXCJhdGltZVwiLCBidXQgZm9yIGlub2RlIGNoYW5nZSB0aW1l LgorICAqIFwic2l6ZVwiOiBUaGUgZmlsZSdzIHNpemUgaW4gYnl0ZXMuIgorICAobWFwY2Fy IChsYW1iZGEgKGkpCisgICAgICAgICAgICAocGNhc2UgKHNwbGl0LXN0cmluZyBpICI9IikK KyAgICAgICAgICAgICAgKGAoIm1vZGVzIiAsbW9kZXMpCisgICAgICAgICAgICAgICAoY29u cyAnbW9kZXMgKHN0cmluZy10by1udW1iZXIgbW9kZXMgOCkpKQorICAgICAgICAgICAgICAo YCgsKGFuZCAob3IgImxpbmtzIiAidWlkIiAiZ2lkIiAic2l6ZSIpIGtleSkgLHZhbHVlKQor ICAgICAgICAgICAgICAgKGNvbnMgKGludGVybiBrZXkpIChzdHJpbmctdG8tbnVtYmVyIHZh bHVlKSkpCisgICAgICAgICAgICAgIChgKCwoYW5kIChvciAiYXRpbWUiICJtdGltZSIgImN0 aW1lIikga2V5KSAsdmFsdWUpCisgICAgICAgICAgICAgICAoY29ucyAoaW50ZXJuIGtleSkg KHRpbWUtY29udmVydCAoc3RyaW5nLXRvLW51bWJlciB2YWx1ZSkpKSkKKyAgICAgICAgICAg ICAgKGAoLGtleSAsdmFsdWUpCisgICAgICAgICAgICAgICAoY29ucyAoaW50ZXJuIGtleSkg dmFsdWUpKQorICAgICAgICAgICAgICAoXyAoZXJyb3IgImludmFsaWQgZm9ybWF0ICVTIiBp KSkpKQorICAgICAgICAgIChzcGxpdC1zdHJpbmcgKGZpbGUtbmFtZS1iYXNlIGZpbGUpICIs IikpKQorCisoZGVmbWFjcm8gZXNoZWxsLXBhcnRpYWwtbGV0LWZ1bmMgKG92ZXJyaWRlcyAm cmVzdCBib2R5KQorICAiVGVtcG9yYXJpbHkgYmluZCB0byBGVU5DVElPTi1OQU1FcyBhbmQg ZXZhbHVhdGUgQk9EWS4KK1RoaXMgaXMgcm91Z2hseSBhbmFsb2dvdXMgdG8gYWR2aXNpbmcg ZnVuY3Rpb25zLCBidXQgb25seSBkb2VzIHNvCit3aGlsZSBCT0RZIGlzIGV4ZWN1dGluZywg YW5kIG9ubHkgY2FsbHMgTkVXLUZVTkNUSU9OIGlmIGl0cyBmaXJzdAorYXJndW1lbnQgaXMg YSBzdHJpbmcgYmVnaW5uaW5nIHdpdGggXCIvZmFrZS9cIi4KKworVGhpcyBhbGxvd3Mgc2Vs ZWN0aXZlbHkgb3ZlcnJpZGluZyBmdW5jdGlvbnMgdG8gdGVzdCBmaWxlCitwcm9wZXJ0aWVz IHdpdGggZmFrZSBmaWxlcyB3aXRob3V0IGFsdGVyaW5nIHRoZSBmdW5jdGlvbnMnCitiZWhh dmlvciBmb3IgcmVhbCBmaWxlcy4KKworXChmbiAoKEZVTkNUSU9OLU5BTUUgTkVXLUZVTkNU SU9OKSAuLi4pIEJPRFkuLi4pIgorICAoZGVjbGFyZSAoaW5kZW50IDEpKQorICBgKGNsLWxl dGYKKyAgICAgICAsKG1hcGNhcgorICAgICAgICAgKGxhbWJkYSAob3ZlcnJpZGUpCisgICAg ICAgICAgIChsZXQgKChvcmlnLWZ1bmN0aW9uIChzeW1ib2wtZnVuY3Rpb24gKGNhciBvdmVy cmlkZSkpKSkKKyAgICAgICAgICAgICBgKChzeW1ib2wtZnVuY3Rpb24gIycsKGNhciBvdmVy cmlkZSkpCisgICAgICAgICAgICAgICAobGFtYmRhIChmaWxlICZyZXN0IHJlc3QpCisgICAg ICAgICAgICAgICAgIChhcHBseQorICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKHN0cmlu Z3AgZmlsZSkgKHN0cmluZy1wcmVmaXgtcCAiL2Zha2UvIiBmaWxlKSkKKyAgICAgICAgICAg ICAgICAgICAgICAsKGNhZHIgb3ZlcnJpZGUpCisgICAgICAgICAgICAgICAgICAgICxvcmln LWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgZmlsZSByZXN0KSkpKSkKKyAgICAgICAg IG92ZXJyaWRlcykKKyAgICAgLEBib2R5KSkKKworKGRlZm1hY3JvIGVzaGVsbC13aXRoLWZp bGUtYXR0cmlidXRlcy1mcm9tLW5hbWUgKCZyZXN0IGJvZHkpCisgICJUZW1wb3JhcmlseSBv dmVycmlkZSBmaWxlIGF0dHJpYnV0ZSBmdW5jdGlvbnMgYW5kIGV2YWx1YXRlIEJPRFkuIgor ICAoZGVjbGFyZSAoaW5kZW50IDApKQorICBgKGVzaGVsbC1wYXJ0aWFsLWxldC1mdW5jCisg ICAgICAgKChmaWxlLWF0dHJpYnV0ZXMKKyAgICAgICAgIChsYW1iZGEgKGZpbGUgJm9wdGlv bmFsIF9pZC1mb3JtYXQpCisgICAgICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNl LWZpbGUtbmFtZS1hdHRyaWJ1dGVzIGZpbGUpKSkKKyAgICAgICAgICAgICAobGlzdCAoZXF1 YWwgKGFsaXN0LWdldCAndHlwZSBhdHRycykgImQiKQorICAgICAgICAgICAgICAgICAgIChv ciAoYWxpc3QtZ2V0ICdsaW5rcyBhdHRycykgMSkKKyAgICAgICAgICAgICAgICAgICAob3Ig KGFsaXN0LWdldCAndWlkIGF0dHJzKSAwKQorICAgICAgICAgICAgICAgICAgIChvciAoYWxp c3QtZ2V0ICdnaWQgYXR0cnMpIDApCisgICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1n ZXQgJ2F0aW1lIGF0dHJzKSBuaWwpCisgICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1n ZXQgJ210aW1lIGF0dHJzKSBuaWwpCisgICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1n ZXQgJ2N0aW1lIGF0dHJzKSBuaWwpCisgICAgICAgICAgICAgICAgICAgKG9yIChhbGlzdC1n ZXQgJ3NpemUgYXR0cnMpIDApCisgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiJXMtLS0t LS0tLS0iIChvciAoYWxpc3QtZ2V0ICd0eXBlIGF0dHJzKSAiLSIpKQorICAgICAgICAgICAg ICAgICAgIG5pbCAwIDApKSkpCisgICAgICAgIChmaWxlLW1vZGVzCisgICAgICAgICAobGFt YmRhIChmaWxlIF9ub2ZvbGxvdykKKyAgICAgICAgICAgKGxldCAoKGF0dHJzIChlc2hlbGwt cGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgZmlsZSkpKQorICAgICAgICAgICAgIChvciAo YWxpc3QtZ2V0ICdtb2RlcyBhdHRycykgMCkpKSkKKyAgICAgICAgKGZpbGUtZXhpc3RzLXAg IydhbHdheXMpCisgICAgICAgIChmaWxlLXJlZ3VsYXItcAorICAgICAgICAgKGxhbWJkYSAo ZmlsZSkKKyAgICAgICAgICAgKGxldCAoKGF0dHJzIChlc2hlbGwtcGFyc2UtZmlsZS1uYW1l LWF0dHJpYnV0ZXMgZmlsZSkpKQorICAgICAgICAgICAgIChtZW1iZXIgKG9yIChhbGlzdC1n ZXQgJ3R5cGUgYXR0cnMpICItIikgJygiLSIgImwiKSkpKSkKKyAgICAgICAgKGZpbGUtc3lt bGluay1wCisgICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAobGV0ICgoYXR0 cnMgKGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAg ICAgICAgKGVxdWFsIChhbGlzdC1nZXQgJ3R5cGUgYXR0cnMpICJsIikpKSkKKyAgICAgICAg KGZpbGUtZXhlY3V0YWJsZS1wCisgICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAg ICAobGV0ICgoYXR0cnMgKGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBmaWxl KSkpCisgICAgICAgICAgICAgOzsgRm9yIHNpbXBsaWNpdHksIGp1c3QgcmV0dXJuIHdoZXRo ZXIgdGhlIGZpbGUgaXMKKyAgICAgICAgICAgICA7OyB3b3JsZC1leGVjdXRhYmxlLgorICAg ICAgICAgICAgICg9IChsb2dhbmQgKG9yIChhbGlzdC1nZXQgJ21vZGVzIGF0dHJzKSAwKSAx KSAxKSkpKSkKKyAgICAgLEBib2R5KSkKKworOzs7IFRlc3RzOgorCisMCis7OyBBcmd1bWVu dCBwcmVkaWNhdGVzCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWZp bGUtdHlwZXMgKCkKKyAgIlRlc3QgZmlsZSB0eXBlIHByZWRpY2F0ZXMuIgorICAoZXNoZWxs LXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQorICAgIChsZXQgKChmaWxlcyAobWFw Y2FyIChsYW1iZGEgKGkpIChmb3JtYXQgIi9mYWtlL3R5cGU9JXMiIGkpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICcoImIiICJjIiAiZC8iICJwIiAicyIgImwiICItIikpKSkKKyAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIiUiKQor ICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdHlwZT1iIiAiL2Zha2UvdHlwZT1jIikp KQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAi JWIiKSAnKCIvZmFrZS90eXBlPWIiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LWV2YWwtcHJlZGljYXRlIGZpbGVzICIlYyIpICcoIi9mYWtlL3R5cGU9YyIpKSkKKyAgICAg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIi8iKSAgJygi L2Zha2UvdHlwZT1kLyIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgZmlsZXMgIi4iKSAgJygiL2Zha2UvdHlwZT0tIikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAicCIpICAnKCIvZmFrZS90 eXBlPXAiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl IGZpbGVzICI9IikgICcoIi9mYWtlL3R5cGU9cyIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkAiKSAgJygiL2Zha2UvdHlwZT1sIikp KSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1leGVjdXRhYmxl ICgpCisgICJUZXN0IHRoYXQgXCIqXCIgbWF0Y2hlcyBvbmx5IHJlZ3VsYXIsIG5vbi1zeW1s aW5rIGV4ZWN1dGFibGUgZmlsZXMuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVz LWZyb20tbmFtZQorICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS9tb2Rlcz0wNzc3IiAiL2Zh a2UvbW9kZXM9MDY2NiIKKyAgICAgICAgICAgICAgICAgICAiL2Zha2UvdHlwZT1kLG1vZGVz PTA3NzciICIvZmFrZS90eXBlPWwsbW9kZXM9MDc3NyIpKSkKKyAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIioiKQorICAgICAgICAgICAgICAg ICAgICAgJygiL2Zha2UvbW9kZXM9MDc3NyIpKSkpKSkKKworKGRlZm1hY3JvIGVtLXByZWQt dGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IChuYW1lIG1vZGUtdGVtcGxhdGUgcHJlZGljYXRl cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZv cHRpb25hbCBkb2NzdHJpbmcpCisgICJEZWZpbmUgTkFNRSBhcyBhIGZpbGUtbW9kZSB0ZXN0 LgorTU9ERS1URU1QTEFURSBpcyBhIGZvcm1hdCBzdHJpbmcgdG8gY29udmVydCBhbiBpbnRl Z2VyIGZyb20gMCB0bworNyB0byBhbiBvY3RhbCBmaWxlIG1vZGUuICBQUkVESUNBVEVTIGlz IGEgbGlzdCBvZiBzdHJpbmdzIGZvciB0aGUKK3JlYWQsIHdyaXRlLCBhbmQgZXhlY3V0ZSBw cmVkaWNhdGVzIHRvIHF1ZXJ5IHRoZSBmaWxlJ3MgbW9kZXMuIgorICAoZGVjbGFyZSAoaW5k ZW50IDQpIChkb2Mtc3RyaW5nIDQpKQorICBgKGVydC1kZWZ0ZXN0ICxuYW1lICgpCisgICAg ICxkb2NzdHJpbmcKKyAgICAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1mcm9tLW5h bWUKKyAgICAgICAobGV0ICgoZmlsZS10ZW1wbGF0ZSAoY29uY2F0ICIvZmFrZS9tb2Rlcz0i ICxtb2RlLXRlbXBsYXRlKSkpCisgICAgICAgICAoY2wtZmxldCAoKG1ha2UtZmlsZXMgKHBl cm1zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAo aSkgKGZvcm1hdCBmaWxlLXRlbXBsYXRlIGkpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGVybXMpKSkKKyAgICAgICAgICAgKHBjYXNlLWxldCAoKGZpbGVz IChtYWtlLWZpbGVzIChudW1iZXItc2VxdWVuY2UgMCA3KSkpCisgICAgICAgICAgICAgICAg ICAgICAgIChgKCxyZWFkICx3cml0ZSAsZXhlYykgLHByZWRpY2F0ZXMpKQorICAgICAgICAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgcmVhZCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1maWxlcyAnKDQgNSA2IDcpKSkp CisgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBm aWxlcyAoY29uY2F0ICJeIiByZWFkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bWFrZS1maWxlcyAnKDAgMSAyIDMpKSkpCisgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyB3cml0ZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobWFrZS1maWxlcyAnKDIgMyA2IDcpKSkpCisgICAgICAgICAgICAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAoY29uY2F0ICJeIiB3 cml0ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtZmlsZXMgJygwIDEg NCA1KSkpKQorICAgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgZXhlYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1m aWxlcyAnKDEgMyA1IDcpKSkpCisgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAoY29uY2F0ICJeIiBleGVjKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWFrZS1maWxlcyAnKDAgMiA0IDYpKSkpKSkpKSkpCisKKyhl bS1wcmVkLXRlc3QtLWZpbGUtbW9kZXMtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRl LWZpbGUtbW9kZXMtb3duZXIKKyAgICAiMCVvMDAiICcoInIiICJ3IiAieCIpCisgICAgIlRl c3QgcHJlZGljYXRlcyBmb3IgZmlsZSBwZXJtaXNzaW9ucyBmb3IgdGhlIG93bmVyLiIpCisK KyhlbS1wcmVkLXRlc3QtLWZpbGUtbW9kZXMtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGlj YXRlLWZpbGUtbW9kZXMtZ3JvdXAKKyAgICAiMDAlbzAiICcoIkEiICJJIiAiRSIpCisgICAg IlRlc3QgcHJlZGljYXRlcyBmb3IgZmlsZSBwZXJtaXNzaW9ucyBmb3IgdGhlIGdyb3VwLiIp CisKKyhlbS1wcmVkLXRlc3QtLWZpbGUtbW9kZXMtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJl ZGljYXRlLWZpbGUtbW9kZXMtd29ybGQKKyAgICAiMDAwJW8iICcoIlIiICJXIiAiWCIpCisg ICAgIlRlc3QgcHJlZGljYXRlcyBmb3IgZmlsZSBwZXJtaXNzaW9ucyBmb3IgdGhlIHdvcmxk LiIpCisKKyhlbS1wcmVkLXRlc3QtLWZpbGUtbW9kZXMtZGVmdGVzdCBlbS1wcmVkLXRlc3Qv cHJlZGljYXRlLWZpbGUtbW9kZXMtZmxhZ3MKKyAgICAiJW8wMDAiICcoInMiICJTIiAidCIp CisgICAgIlRlc3QgcHJlZGljYXRlcyBmb3IgXCJzXCIgKHNldHVpZCksIFwiU1wiIChzZXRn aWQpLCBhbmQgXCJ0XCIgKHN0aWNreSkuIikKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVz dC9wcmVkaWNhdGUtZWZmZWN0aXZlLXVpZCAoKQorICAiVGVzdCB0aGF0IFwiVVwiIG1hdGNo ZXMgZmlsZXMgb3duZWQgYnkgdGhlIGVmZmVjdGl2ZSBVSUQuIgorICAoZXNoZWxsLXdpdGgt ZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQorICAgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5j dGlvbiAndXNlci11aWQpIChsYW1iZGEgKCkgMSkpKQorICAgICAgKGxldCAoKGZpbGVzICco Ii9mYWtlL3VpZD0xIiAiL2Zha2UvdWlkPTIiKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIlUiKQorICAgICAgICAgICAgICAgICAg ICAgICAnKCIvZmFrZS91aWQ9MSIpKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRl c3QvcHJlZGljYXRlLWxpbmtzICgpCisgICJUZXN0IHRoYXQgXCJsXCIgZmlsdGVycyBieSBu dW1iZXIgb2YgbGlua3MuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20t bmFtZQorICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS9saW5rcz0xIiAiL2Zha2UvbGlua3M9 MiIgIi9mYWtlL2xpbmtzPTMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2 YWwtcHJlZGljYXRlIGZpbGVzICJsMSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS9saW5rcz0xIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAibCsxIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL2xpbmtz PTIiICIvZmFrZS9saW5rcz0zIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyAibC0zIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9m YWtlL2xpbmtzPTEiICIvZmFrZS9saW5rcz0yIikpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0t cHJlZC10ZXN0L3ByZWRpY2F0ZS11aWQgKCkKKyAgIlRlc3QgdGhhdCBcInVcIiBmaWx0ZXJz IGJ5IFVJRC91c2VyIG5hbWUuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZy b20tbmFtZQorICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS91aWQ9MSIgIi9mYWtlL3VpZD0y IikpCisgICAgICAgICAgKHVzZXItbmFtZXMgJygicm9vdCIgIm9uZSIgInR3byIpKSkKKyAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgInUxIikK KyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKQorICAgICAgKGNsLWxl dGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdlc2hlbGwtdXNlci1pZCkKKyAgICAgICAgICAgICAg ICAgKGxhbWJkYSAobmFtZSkgKHNlcS1wb3NpdGlvbiB1c2VyLW5hbWVzIG5hbWUpKSkpCisg ICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgInUn b25lJyIpCisgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKQorICAg ICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJ1e29u ZX0iKQorICAgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS91aWQ9MSIpKSkpKSkpCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWdpZCAoKQorICAiVGVzdCB0 aGF0IFwiZ1wiIGZpbHRlcnMgYnkgR0lEL2dyb3VwIG5hbWUuIgorICAoZXNoZWxsLXdpdGgt ZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQorICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS9n aWQ9MSIgIi9mYWtlL2dpZD0yIikpCisgICAgICAgICAgKGdyb3VwLW5hbWVzICcoInJvb3Qi ICJvbmUiICJ0d28iKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlIGZpbGVzICJnMSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9naWQ9 MSIpKSkKKyAgICAgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnZXNoZWxsLWdyb3Vw LWlkKQorICAgICAgICAgICAgICAgICAobGFtYmRhIChuYW1lKSAoc2VxLXBvc2l0aW9uIGdy b3VwLW5hbWVzIG5hbWUpKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgImcnb25lJyIpCisgICAgICAgICAgICAgICAgICAgICAgICco Ii9mYWtlL2dpZD0xIikpKQorICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlIGZpbGVzICJne29uZX0iKQorICAgICAgICAgICAgICAgICAgICAgICAnKCIv ZmFrZS9naWQ9MSIpKSkpKSkpCisKKyhkZWZtYWNybyBlbS1wcmVkLXRlc3QtLXRpbWUtZGVm dGVzdCAobmFtZSBmaWxlLWF0dHJpYnV0ZSBwcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwgZG9jc3RyaW5nKQorICAiRGVm aW5lIE5BTUUgYXMgYSBmaWxlLXRpbWUgdGVzdC4KK0ZJTEUtQVRUUklCVVRFIGlzIHRoZSBm aWxlJ3MgYXR0cmlidXRlIHRvIHNldCAoZS5nLiBcImF0aW1lXCIpLgorUFJFRElDQVRFIGlz IHRoZSBwcmVkaWNhdGUgdXNlZCB0byBxdWVyeSB0aGF0IGF0dHJpYnV0ZS4iCisgIChkZWNs YXJlIChpbmRlbnQgNCkgKGRvYy1zdHJpbmcgNCkpCisgIGAoZXJ0LWRlZnRlc3QgLG5hbWUg KCkKKyAgICAgLGRvY3N0cmluZworICAgICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVz LWZyb20tbmFtZQorICAgICAgIChjbC1mbGV0ICgobWFrZS1maWxlICh0aW1lKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIi9mYWtlLyVzPSVkIiAsZmlsZS1hdHRy aWJ1dGUgdGltZSkpKQorICAgICAgICAgKGxldCogKChub3cgKHRpbWUtY29udmVydCBuaWwg J2ludGVnZXIpKQorICAgICAgICAgICAgICAgICh5ZXN0ZXJkYXkgKC0gbm93IDg2NDAwKSkK KyAgICAgICAgICAgICAgICAoZmlsZXMgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCBub3cg eWVzdGVyZGF5KSkpKQorICAgICAgICAgICA7OyBUZXN0IGNvbXBhcmlzb24gYWdhaW5zdCBh IG51bWJlciBvZiBkYXlzLgorICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2 YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlcyAoY29uY2F0 ICxwcmVkaWNhdGUgIi0xIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIg IydtYWtlLWZpbGUgKGxpc3Qgbm93KSkpKQorICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxl cyAoY29uY2F0ICxwcmVkaWNhdGUgIisxIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg IChtYXBjYXIgIydtYWtlLWZpbGUgKGxpc3QgeWVzdGVyZGF5KSkpKQorICAgICAgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWxlcyAoY29uY2F0ICxwcmVkaWNhdGUgIisyIikpCisgICAgICAgICAg ICAgICAgICAgICAgICAgIG5pbCkpCisgICAgICAgICAgIDs7IFRlc3QgY29tcGFyaXNvbiBh Z2FpbnN0IGEgbnVtYmVyIG9mIGhvdXJzLgorICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxl cyAoY29uY2F0ICxwcmVkaWNhdGUgImgtMSIpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAobWFwY2FyICMnbWFrZS1maWxlIChsaXN0IG5vdykpKSkKKyAgICAgICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsZXMgKGNvbmNhdCAscHJlZGljYXRlICJoKzEiKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCB5ZXN0ZXJkYXkpKSkpCisg ICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiKzQ4Iikp CisgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkpCisgICAgICAgICAgIDs7IFRlc3Qg Y29tcGFyaXNvbiBhZ2FpbnN0IGFub3RoZXIgZmlsZS4KKyAgICAgICAgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsZXMgKGZvcm1hdCAiJXMtJyVzJyIgLHByZWRpY2F0ZSAobWFrZS1maWxlIG5vdykp KQorICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwpKQorICAgICAgICAgICAoc2hvdWxk IChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBmaWxlcyAoZm9ybWF0ICIlcysnJXMnIiAscHJlZGljYXRlIChtYWtlLWZpbGUgbm93 KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydtYWtlLWZpbGUgKGxp c3QgeWVzdGVyZGF5KSkpKSkpKSkpCisKKyhlbS1wcmVkLXRlc3QtLXRpbWUtZGVmdGVzdCBl bS1wcmVkLXRlc3QvcHJlZGljYXRlLWFjY2Vzcy10aW1lCisgICAgImF0aW1lIiAiYSIKKyAg ICAiVGVzdCB0aGF0IFwiYVwiIGZpbHRlcnMgYnkgYWNjZXNzIHRpbWUuIikKKworKGVtLXBy ZWQtdGVzdC0tdGltZS1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtbW9kaWZpY2F0 aW9uLXRpbWUKKyAgICAibXRpbWUiICJtIgorICAgICJUZXN0IHRoYXQgXCJtXCIgZmlsdGVy cyBieSBjaGFuZ2UgdGltZS4iKQorCisoZW0tcHJlZC10ZXN0LS10aW1lLWRlZnRlc3QgZW0t cHJlZC10ZXN0L3ByZWRpY2F0ZS1jaGFuZ2UtdGltZQorICAgICJjdGltZSIgImMiCisgICAg IlRlc3QgdGhhdCBcImNcIiBmaWx0ZXJzIGJ5IGNoYW5nZSB0aW1lLiIpCisKKyhlcnQtZGVm dGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLXNpemUgKCkKKyAgIlRlc3QgdGhhdCBcIkxc IiBmaWx0ZXJzIGJ5IGZpbGUgc2l6ZS4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0 ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL3NpemU9MCIKKyAgICAg ICAgICAgICAgICAgICA7OyAxIGFuZCAyIEtpQi4KKyAgICAgICAgICAgICAgICAgICAiL2Zh a2Uvc2l6ZT0xMDI0IiAiL2Zha2Uvc2l6ZT0yMDQ4IgorICAgICAgICAgICAgICAgICAgIDs7 IDEgYW5kIDIgTWlCLgorICAgICAgICAgICAgICAgICAgICIvZmFrZS9zaXplPTEwNDg1NzYi ICIvZmFrZS9zaXplPTIwOTcxNTIiKSkpCisgICAgICA7OyBTaXplIGluIGJ5dGVzLgorICAg ICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTDIwNDgi KQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0yMDQ4IikpKQorICAgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTCsyMDQ4IikK KyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MTA0ODU3NiIgIi9mYWtlL3Np emU9MjA5NzE1MiIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIkwtMjA0OCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9z aXplPTAiICIvZmFrZS9zaXplPTEwMjQiKSkpCisgICAgICA7OyBTaXplIGluIGJsb2Nrcy4K KyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxw NCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTIwNDgiKSkpCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMcCs0IikK KyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MTA0ODU3NiIgIi9mYWtlL3Np emU9MjA5NzE1MiIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIkxwLTQiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6 ZT0wIiAiL2Zha2Uvc2l6ZT0xMDI0IikpKQorICAgICAgOzsgU2l6ZSBpbiBLaUIuCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMazIiKQor ICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0yMDQ4IikpKQorICAgICAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTGsrMiIpCisgICAg ICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTEwNDg1NzYiICIvZmFrZS9zaXplPTIw OTcxNTIiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl IGZpbGVzICJMay0yIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MCIg Ii9mYWtlL3NpemU9MTAyNCIpKSkKKyAgICAgIDs7IFNpemUgaW4gTWlCLgorICAgICAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTE0xIikKKyAgICAg ICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MTA0ODU3NiIpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxNKzEiKQorICAgICAg ICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTE0tMSIpCisgICAgICAg ICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTAiICIvZmFrZS9zaXplPTEwMjQiICIvZmFr ZS9zaXplPTIwNDgiKSkpKSkpCisKKwwKKzs7IEFyZ3VtZW50IG1vZGlmaWVycworCisoZXJ0 LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLWV2YWwgKCkKKyAgIlRlc3QgdGhhdCBc IjpFXCIgcmUtZXZhbHVhdGVzIHRoZSB2YWx1ZS4iCisgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUgIiR7ZWNobyBoaX0iICI6RSIpICJoaSIpKQorICAoc2hvdWxk IChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAnKCIk e2VjaG8gaGl9IiAiJCh1cGNhc2UgXCJieWVcIikiKSAiOkUiKQorICAgICAgICAgICAgICAg ICAnKCJoaSIgIkJZRSIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZp ZXItZG93bmNhc2UgKCkKKyAgIlRlc3QgdGhhdCBcIjpMXCIgZG93bmNhc2VzIHZhbHVlcy4i CisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgIkZPTyIgIjpMIikg ImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoIkZP TyIgIkJBUiIpICI6TCIpCisgICAgICAgICAgICAgICAgICcoImZvbyIgImJhciIpKSkpCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItdXBjYXNlICgpCisgICJUZXN0 IHRoYXQgXCI6VVwiIHVwY2FzZXMgdmFsdWVzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOlUiKSAiRk9PIikpCisgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIikgIjpVIikKKyAgICAgICAg ICAgICAgICAgJygiRk9PIiAiQkFSIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVz dC9tb2RpZmllci1jYXBpdGFsaXplICgpCisgICJUZXN0IHRoYXQgXCI6Q1wiIGNhcGl0YWxp emVzIHZhbHVlcy4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUg ImZvbyBiYXIiICI6QyIpICJGb28gQmFyIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUgJygiZm9vIGJhciIgImJheiIpICI6QyIpCisgICAgICAgICAgICAg ICAgICcoIkZvbyBCYXIiICJCYXoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0 L21vZGlmaWVyLWRpcm5hbWUgKCkKKyAgIlRlc3QgdGhhdCBcIjpoXCIgcmV0dXJucyB0aGUg ZGlybmFtZS4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgIi9w YXRoL3RvL2ZpbGUuZWwiICI6aCIpICIvcGF0aC90by8iKSkKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAgICAgICAgICAgJygiL3BhdGgvdG8v ZmlsZS5lbCIgIi9vdGhlci9wYXRoLyIpICI6aCIpCisgICAgICAgICAgICAgICAgICcoIi9w YXRoL3RvLyIgIi9vdGhlci9wYXRoLyIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRl c3QvbW9kaWZpZXItYmFzZW5hbWUgKCkKKyAgIlRlc3QgdGhhdCBcIjp0XCIgcmV0dXJucyB0 aGUgYmFzZW5hbWUuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICIvcGF0aC90by9maWxlLmVsIiAiOnQiKSAiZmlsZS5lbCIpKQorICAoc2hvdWxkIChlcXVh bCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAnKCIvcGF0aC90 by9maWxlLmVsIiAiL290aGVyL3BhdGgvIikgIjp0IikKKyAgICAgICAgICAgICAgICAgJygi ZmlsZS5lbCIgIiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXIt ZXh0ZW5zaW9uICgpCisgICJUZXN0IHRoYXQgXCI6ZVwiIHJldHVybnMgdGhlIGV4dGVuc2lv bi4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgIi9wYXRoL3Rv L2ZpbGUuZWwiICI6ZSIpICJlbCIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAnKCIvcGF0aC90by9maWxlLmVsIiAiL290 aGVyL3BhdGgvIikgIjplIikKKyAgICAgICAgICAgICAgICAgJygiZWwiIG5pbCkpKSkKKwor KGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zYW5zLWV4dGVuc2lvbiAoKQor ICAiVGVzdCB0aGF0IFwiOnJcIiByZXR1cm5zIHRoZSBmaWxlIG5hbWUgc2FuIGV4dGVuc2lv bi4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgIi9wYXRoL3Rv L2ZpbGUuZWwiICI6ciIpCisgICAgICAgICAgICAgICAgICIvcGF0aC90by9maWxlIikpCisg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAg ICAgICcoIi9wYXRoL3RvL2ZpbGUuZWwiICIvb3RoZXIvcGF0aC8iKSAiOnIiKQorICAgICAg ICAgICAgICAgICAnKCIvcGF0aC90by9maWxlIiAiL290aGVyL3BhdGgvIikpKSkKKworKGVy dC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1xdW90ZSAoKQorICAiVGVzdCB0aGF0 IFwiOnFcIiBxdW90ZXMgYXJndW1lbnRzLiIKKyAgKHNob3VsZCAoZXF1YWwtaW5jbHVkaW5n LXByb3BlcnRpZXMKKyAgICAgICAgICAgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28i ICJiYXIiKSAiOnEiKQorICAgICAgICAgICAobGlzdCAoZXNoZWxsLWVzY2FwZS1hcmcgImZv byIpIChlc2hlbGwtZXNjYXBlLWFyZyAiYmFyIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1w cmVkLXRlc3QvbW9kaWZpZXItc3Vic3RpdHV0ZSAoKQorICAiVGVzdCB0aGF0IFwiOnMvUEFU L1JFUC9cIiByZXBsYWNlcyBQQVQgd2l0aCBSRVAgb25jZS4iCisgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjpzL2EvKi8iKSAiYipyIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjpzfGF8KnwiKSAi YipyIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9v IiAiYmFyIiAiYmF6IikgIjpzL1thb10vKi8iKQorICAgICAgICAgICAgICAgICAnKCJmKm8i ICJiKnIiICJiKnoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpzfFthb118KnwiKQorICAgICAgICAgICAgICAg ICAnKCJmKm8iICJiKnIiICJiKnoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0 L21vZGlmaWVyLWdsb2JhbC1zdWJzdGl0dXRlICgpCisgICJUZXN0IHRoYXQgXCI6cy9QQVQv UkVQL1wiIHJlcGxhY2VzIFBBVCB3aXRoIFJFUCBmb3IgYWxsIG9jY3VycmVuY2VzLiIKKyAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmdzL2EvKi8i KSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZv byIgIjpnc3xhfCp8IikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlICJiYXIiICI6Z3MvYS8qLyIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOmdzfGF8KnwiKSAiYipyIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpncy9vL08vIikg ImZPTyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZv byIgImJhciIgImJheiIpICI6Z3MvW2FlaW91XS8qLyIpCisgICAgICAgICAgICAgICAgICco ImYqKiIgImIqciIgImIqeiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOmdzfFthZWlvdV18KnwiKQorICAgICAg ICAgICAgICAgICAnKCJmKioiICJiKnIiICJiKnoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0t cHJlZC10ZXN0L21vZGlmaWVyLWluY2x1ZGUgKCkKKyAgIlRlc3QgdGhhdCBcIjppL1BBVC9c IiBmaWx0ZXJzIGVsZW1lbnRzIHRvIGluY2x1ZGUgb25seSBvbmVzIG1hdGNoaW5nIFBBVC4i CisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjppL2Ev IikgbmlsKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9v IiAiOml8YXwiKSBuaWwpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlICJiYXIiICI6aS9hLyIpICJiYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAiYmFyIiAiOml8YXwiKSAiYmFyIikpCisgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjppL2EvIikK KyAgICAgICAgICAgICAgICAgJygiYmFyIiAiYmF6IikpKQorICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6aXxhfCIpCisg ICAgICAgICAgICAgICAgICcoImJhciIgImJheiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1w cmVkLXRlc3QvbW9kaWZpZXItZXhjbHVkZSAoKQorICAiVGVzdCB0aGF0IFwiOngvUEFUL1wi IGZpbHRlcnMgZWxlbWVudHMgdG8gZXhjbHVkZSBhbnkgbWF0Y2hpbmcgUEFULiIKKyAgKHNo b3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOngvYS8iKSAiZm9v IikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjp4 fGF8IikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICJiYXIiICI6eC9hLyIpIG5pbCkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgImJhciIgIjp4fGF8IikgbmlsKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOngvYS8iKQorICAgICAg ICAgICAgICAgICAnKCJmb28iKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjp4fGF8IikKKyAgICAgICAgICAgICAg ICAgJygiZm9vIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1z cGxpdCAoKQorICAiVGVzdCB0aGF0IFwiOlNcIiBhbmQgXCI6Uy9QQVQvXCIgc3BsaXQgZWxl bWVudHMgYnkgc3BhY2VzIChvciBQQVQpLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAiZm9vIGJhciBiYXoiICI6UyIpCisgICAgICAgICAgICAgICAgICco ImZvbyIgImJhciIgImJheiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28gYmFyIiAiYmF6IikgIjpTIikKKyAgICAgICAgICAgICAgICAgJygo ImZvbyIgImJhciIpICgiYmF6IikpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSAiZm9vLWJhci1iYXoiICI6Uy8tLyIpCisgICAgICAgICAgICAgICAgICco ImZvbyIgImJhciIgImJheiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28tYmFyIiAiYmF6IikgIjpTLy0vIikKKyAgICAgICAgICAgICAgICAg JygoImZvbyIgImJhciIpICgiYmF6IikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRl c3QvbW9kaWZpZXItam9pbiAoKQorICAiVGVzdCB0aGF0IFwiOmpcIiBhbmQgXCI6ai9ERUxJ TS9cIiBqb2luIGVsZW1lbnRzIGJ5IHNwYWNlcyAob3IgREVMSU0pLiIKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmoiKSAiZm9vIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6 IikgIjpqIikKKyAgICAgICAgICAgICAgICAgImZvbyBiYXIgYmF6IikpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpqLy0vIikgImZvbyIpKQor ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIg ImJheiIpICI6ai8tLyIpCisgICAgICAgICAgICAgICAgICJmb28tYmFyLWJheiIpKSkKKwor KGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zb3J0ICgpCisgICJUZXN0IHRo YXQgXCI6b1wiIHNvcnRzIGVsZW1lbnRzIGluIGxleGljb2dyYXBoaWMgb3JkZXIuIgorICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6byIpICJmb28i KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJi YXIiICJiYXoiKSAiOm8iKQorICAgICAgICAgICAgICAgICAnKCJiYXIiICJiYXoiICJmb28i KSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNvcnQtcmV2ZXJz ZSAoKQorICAiVGVzdCB0aGF0IFwiOm9cIiBzb3J0cyBlbGVtZW50cyBpbiByZXZlcnNlIGxl eGljb2dyYXBoaWMgb3JkZXIuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJl ZGljYXRlICJmb28iICI6TyIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOk8iKQorICAgICAgICAgICAg ICAgICAnKCJmb28iICJiYXoiICJiYXIiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10 ZXN0L21vZGlmaWVyLXVuaXF1ZSAoKQorICAiVGVzdCB0aGF0IFwiOnVcIiBmaWx0ZXJzIG91 dCBkdXBsaWNhdGUgZWxlbWVudHMuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlICJmb28iICI6dSIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOnUiKQorICAgICAgICAg ICAgICAgICAnKCJmb28iICJiYXIiICJiYXoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IiAiZm9vIikgIjp1IikKKyAg ICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6IikpKSkKKworKGVydC1kZWZ0ZXN0 IGVtLXByZWQtdGVzdC9tb2RpZmllci1yZXZlcnNlICgpCisgICJUZXN0IHRoYXQgXCI6clwi IHJldmVyc2VzIHRoZSBvcmRlciBvZiBlbGVtZW50cy4iCisgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpSIikgImZvbyIpKQorICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6UiIp CisgICAgICAgICAgICAgICAgICcoImJheiIgImJhciIgImZvbyIpKSkpCisKKwwKKzs7IENv bWJpbmF0aW9ucworCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L2NvbWJpbmUtcHJlZGlj YXRlLWFuZC1tb2RpZmllciAoKQorICAiVGVzdCBjb21iaW5hdGlvbiBvZiBwcmVkaWNhdGVz IGFuZCBtb2RpZmllcnMuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20t bmFtZQorICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS90eXBlPS0uZWwiICIvZmFrZS90eXBl PS0udHh0IiAiL2Zha2UvdHlwZT1zLmVsIgorICAgICAgICAgICAgICAgICAgICIvZmFrZS9z dWJkaXIvdHlwZT0tLmVsIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiLjplOnUiKQorICAgICAgICAgICAgICAgICAgICAgJygiZWwi ICJ0eHQiKSkpKSkpCisKKzs7IGVtLXByZWQtdGVzdHMuZWwgZW5kcyBoZXJlCi0tIAoyLjI1 LjEKCg== --------------F7EB05345DF97E50F8E62DEA Content-Type: text/plain; charset=UTF-8; name="0003-Add-G-argument-predicate-in-Eshell.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-G-argument-predicate-in-Eshell.patch" RnJvbSBhMzYyNjU4ZjNkZTZjMWRhM2U1NzA5N2Y0YWE1MTA1MjkyOGMxYWJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IEZyaSwgMSBBcHIgMjAyMiAyMjowNjowMiAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBBZGQgJ0cnIGFyZ3VtZW50IHByZWRpY2F0ZSBpbiBFc2hlbGwKCiogbGlzcC9l c2hlbGwvZW0tcHJlZC5lbCAoZXNoZWxsLXByZWRpY2F0ZS1hbGlzdCk6IEFkZCAnRycgcHJl ZGljYXRlLgooZXNoZWxsLXByZWRpY2F0ZS1oZWxwLXN0cmluZyk6IERvY3VtZW50IGl0LgoK KiB0ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwKKGVtLXByZWQtdGVzdC9wcmVk aWNhdGUtZWZmZWN0aXZlLWdpZCk6IE5ldyB0ZXN0LgoKKiBkb2MvbWlzYy9lc2hlbGwudGV4 dCAoQXJndW1lbnQgUHJlZGljYXRpb24pOiBEb2N1bWVudCAnRycgcHJlZGljYXRlLgotLS0K IGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8IDMgKysrCiBsaXNwL2VzaGVs bC9lbS1wcmVkLmVsICAgICAgICAgICAgfCA5ICsrKysrLS0tLQogdGVzdC9saXNwL2VzaGVs bC9lbS1wcmVkLXRlc3RzLmVsIHwgOCArKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNiBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2Vz aGVsbC50ZXhpIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKaW5kZXggMmQ1N2U0OGVkOC4uNDEx ZTY5NjA2OSAxMDA2NDQKLS0tIGEvZG9jL21pc2MvZXNoZWxsLnRleGkKKysrIGIvZG9jL21p c2MvZXNoZWxsLnRleGkKQEAgLTEyNjYsNiArMTI2Niw5IEBAIEFyZ3VtZW50IFByZWRpY2F0 ZXMKIEBpdGVtIEBzYW1we1V9CiBNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHRoZSBjdXJyZW50 IGVmZmVjdGl2ZSB1c2VyIElELgogCitAaXRlbSBAc2FtcHtHfQorTWF0Y2hlcyBmaWxlcyBv d25lZCBieSB0aGUgY3VycmVudCBlZmZlY3RpdmUgZ3JvdXAgSUQuCisKIEBpdGVtIEBzYW1w e2xAb3B0aW9ue1srLV19QHZhcntufX0KIE1hdGNoZXMgZmlsZXMgd2l0aCBAdmFye259IGxp bmtzLiAgV2l0aCBAb3B0aW9ueyt9IChvciBAb3B0aW9uey19KSwKIG1hdGNoZXMgZmlsZXMg d2l0aCBtb3JlIHRoYW4gKG9yIGxlc3MgdGhhbikgQHZhcntufSBsaW5rcywKZGlmZiAtLWdp dCBhL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwgYi9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCmlu ZGV4IDhhZmM4NmRkNDEuLmViNTEwOWI4MmQgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2Vt LXByZWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbApAQCAtODgsMTAgKzg4LDEw IEBAIGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QKICAgICAgICAgICAgIChpZiAoZmlsZS1leGlz dHMtcCBmaWxlKQogICAgICAgICAgICAgICAgICg9IChmaWxlLWF0dHJpYnV0ZS11c2VyLWlk IChmaWxlLWF0dHJpYnV0ZXMgZmlsZSkpCiAgICAgICAgICAgICAgICAgICAgKHVzZXItdWlk KSkpKSkKLSAgICA7OyAoP0cgLiAobGFtYmRhIChmaWxlKSAgICAgICAgICAgICAgIDsgb3du ZWQgYnkgZWZmZWN0aXZlIGdpZAotICAgIDs7ICAgICAgICAgKGlmIChmaWxlLWV4aXN0cy1w IGZpbGUpCi0gICAgOzsgICAgICAgICAgICAgKD0gKGZpbGUtYXR0cmlidXRlLXVzZXItaWQg KGZpbGUtYXR0cmlidXRlcyBmaWxlKSkKLSAgICA7OyAgICAgICAgICAgICAgICAodXNlci11 aWQpKSkpKQorICAgICg/RyAuIChsYW1iZGEgKGZpbGUpICAgICAgICAgICAgICAgOyBvd25l ZCBieSBlZmZlY3RpdmUgZ2lkCisgICAgICAgICAgICAoaWYgKGZpbGUtZXhpc3RzLXAgZmls ZSkKKyAgICAgICAgICAgICAgICAoPSAoZmlsZS1hdHRyaWJ1dGUtZ3JvdXAtaWQgKGZpbGUt YXR0cmlidXRlcyBmaWxlKSkKKyAgICAgICAgICAgICAgICAgICAoZ3JvdXAtZ2lkKSkpKSkK ICAgICAoPyogLiAobGFtYmRhIChmaWxlKQogICAgICAgICAgICAgKGFuZCAoZmlsZS1yZWd1 bGFyLXAgZmlsZSkKICAgICAgICAgICAgICAgICAgKG5vdCAoZmlsZS1zeW1saW5rLXAgZmls ZSkpCkBAIC0xNjEsNiArMTYxLDcgQEAgZXNoZWxsLXByZWRpY2F0ZS1oZWxwLXN0cmluZwog CiBPV05FUlNISVA6CiAgIFUgICAgICAgICAgICAgICBvd25lZCBieSBlZmZlY3RpdmUgdWlk CisgIEcgICAgICAgICAgICAgICBvd25lZCBieSBlZmZlY3RpdmUgZ2lkCiAgIHUoVUlEfFxc PSd1c2VyXFw9JykgICBvd25lZCBieSBVSUQvdXNlcgogICBnKEdJRHxcXD0nZ3JvdXBcXD0n KSAgb3duZWQgYnkgR0lEL2dyb3VwCiAKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwv ZW0tcHJlZC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbApp bmRleCA3NGRhZDlmOGI4Li5mYmY4OTQ1MjE1IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvZXNo ZWxsL2VtLXByZWQtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRl c3RzLmVsCkBAIC0yMjUsNiArMjI1LDE0IEBAIGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZWZm ZWN0aXZlLXVpZAogICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzICJVIikKICAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdWlkPTEi KSkpKSkpKQogCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1lZmZlY3Rp dmUtZ2lkICgpCisgICJUZXN0IHRoYXQgXCJHXCIgbWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0 aGUgZWZmZWN0aXZlIEdJRC4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJv bS1uYW1lCisgICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdncm91cC1naWQpIChs YW1iZGEgKCkgMSkpKQorICAgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL2dpZD0xIiAiL2Zh a2UvZ2lkPTIiKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIkciKQorICAgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9naWQ9 MSIpKSkpKSkpCisKIChlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWxpbmtz ICgpCiAgICJUZXN0IHRoYXQgXCJsXCIgZmlsdGVycyBieSBudW1iZXIgb2YgbGlua3MuIgog ICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQotLSAKMi4yNS4xCgo= --------------F7EB05345DF97E50F8E62DEA-- From unknown Fri Aug 15 16:57:14 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jim Porter Subject: bug#54470: closed (Re: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion) Message-ID: References: <834k2syxk5.fsf@gnu.org> X-Gnu-PR-Message: they-closed 54470 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 54470@debbugs.gnu.org Date: Sun, 17 Apr 2022 07:34:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1650180841-1763-1" This is a multi-part message in MIME format... ------------=_1650180841-1763-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expans= ion which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 54470@debbugs.gnu.org. --=20 54470: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D54470 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1650180841-1763-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 54470-done) by debbugs.gnu.org; 17 Apr 2022 07:33:04 +0000 Received: from localhost ([127.0.0.1]:34913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfzP6-0000R8-0Y for submit@debbugs.gnu.org; Sun, 17 Apr 2022 03:33:04 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40732) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nfzP5-0000Qc-7p for 54470-done@debbugs.gnu.org; Sun, 17 Apr 2022 03:33:03 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45470) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nfzOz-0003qH-OZ; Sun, 17 Apr 2022 03:32:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=p/mhS/u2fzqbP/kXBy28yYl3vggF4HzcPM2fAzxww1o=; b=axWHsyq8xfVI YkwUkdE0tO0aXhEhbDohnLGyBUsdMZNbp+NgVGhAtIVHJBVfHlt3Oo1zOMFD98aRPjeZOWzKVCci1 fO3XS0eoReTo1hXk7g1kxi4QsQN3BvAC0TedF1eeRaGdFPx9Xqi9Wkuu7nuwl5jD2EUVriU3M6ou8 U8Qd84tiNPOe3AqbXyCaRJOOK+fpFc3eGa/+eLsdNRfkIILZinSIW+qj7yRCkPiqoWEifYu4ffpWI ulDuvEDWqclV0uR0/4fdmUlW1v6fAwmLZjn8+9dSwLPD1DwCg56AC+enAtMLqC51x0vfhfHg6JGzg /ZdgPZFwDx1gHyz2UTFRkg==; Received: from [87.69.77.57] (port=2180 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nfzOz-0002gW-5b; Sun, 17 Apr 2022 03:32:57 -0400 Date: Sun, 17 Apr 2022 10:32:42 +0300 Message-Id: <834k2syxk5.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <55f95cab-e56f-42ef-43fb-de4fef99ea10@gmail.com> (message from Jim Porter on Sat, 16 Apr 2022 10:14:43 -0700) Subject: Re: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> <83zgkm1p4v.fsf@gnu.org> <25d222b3-9633-708e-6ac7-568c7a89e806@gmail.com> <83a6cl1fsv.fsf@gnu.org> <55f95cab-e56f-42ef-43fb-de4fef99ea10@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 54470-done Cc: 54470-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 54470@debbugs.gnu.org > From: Jim Porter > Date: Sat, 16 Apr 2022 10:14:43 -0700 > > >> Can you try the attached patch to see if the tests pass? If it works, > >> I'll fold it into the previous patches and resubmit them. (It works for > >> me on an MS Windows system, but I don't have build tools on it, so I > >> just used the binary release of 28.1 with some of the bits copied from > >> my patches to test it out.) > > > > Yes, this fixes the failures, thanks. > > Cool, thanks. Here are final patches for merging then (only the second > patch is changed from before, but I attached the full series for > convenience). Thanks, installed on the master branch, and closing the bug. Please in the future always mention the bug number in the commit log messages (I added that for you in this case). ------------=_1650180841-1763-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 20 Mar 2022 01:35:01 +0000 Received: from localhost ([127.0.0.1]:60844 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVkTD-00037Z-AW for submit@debbugs.gnu.org; Sat, 19 Mar 2022 21:35:01 -0400 Received: from lists.gnu.org ([209.51.188.17]:43358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nVkT9-00037O-RF for submit@debbugs.gnu.org; Sat, 19 Mar 2022 21:34:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48516) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVkT7-0003az-Rq for bug-gnu-emacs@gnu.org; Sat, 19 Mar 2022 21:34:54 -0400 Received: from [2607:f8b0:4864:20::1030] (port=39811 helo=mail-pj1-x1030.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nVkT1-0002ML-Il for bug-gnu-emacs@gnu.org; Sat, 19 Mar 2022 21:34:52 -0400 Received: by mail-pj1-x1030.google.com with SMTP id mr5-20020a17090b238500b001c67366ae93so9078833pjb.4 for ; Sat, 19 Mar 2022 18:34:46 -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=vfM2t8t56J0zI7BtMx4js2NeqycufOO3LYUyrOIugCY=; b=OGgQc8N2CvJu4nW5Pn7U0pKN+oU6PmScWP/W6qxiqCNuGBz2Y/NtC0LVQsqsltNfwV +0wLgRqJjhKbhwnpaVDe2Aaj0f4kjBXerQZlAaOW/AQomO3qghLIdl2/oBSagx6VZOA/ KCzJ14ZhY24ernruqcoM+TIJToDidshypw+m6GswUp3MFAVAjEG/6LN5mDg18Ia0VBa7 k916JZENvCaQVUJZaCFKiB3sAYvg/vtDdZCKUSvmLuaPeMHqdBSJma3FIxVNpwDQN88w 6lZcVsjAmDYVWJ80SI+i1DeFQtY4XD91epCZhAAGIzce3GmcpliEEGv4UF8b1FjfiF+k z6IQ== 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=vfM2t8t56J0zI7BtMx4js2NeqycufOO3LYUyrOIugCY=; b=L8lIPeyOQOvc7lD4H9Gg9IaejdNoyVr+TcdqVGN7yW+pFbYhMu0TBOwt8h8e81yIhh p7yLCK8dcsxcJ52pGOK3OMIcjpph2znIYbM4/rZJjoq0VvS/a6jhlLGMcThgHRL/jfPx TzGS6FstRRRnv3wlOEBcQoWGdPbzi3s4dXu6mqGji6+Y2lIWTAgk+bLwJAEQdCMcDUNF rAiEXy6jfqqjzcWx2mNy0lOEBAmbSO1BZZa/j1fDkuz9f4ooliYBT2NyohUAeOiiWW6+ uF3UVfF5R+hZH68wJBF2t7Q27CbY1POj0+YXDM8jqBQbEu/OBi61EX1R0Emt86oxdsKu 9I0A== X-Gm-Message-State: AOAM533ngOL8PhMvESBgZ/Ef687x/5bXSrBx0CxjXV6E3FBks6h/S01x HZwDIR32/qefmQwhgd3TsPzAMDmgD+8= X-Google-Smtp-Source: ABdhPJzEOvRpoA+JnwOLY+GdbicEHZJO/Gp00Kx0jH75mQShYiUnCHecJCCF01n7kB8AOMdUf/Jn4Q== X-Received: by 2002:a17:90b:314e:b0:1bf:38a0:8e6b with SMTP id ip14-20020a17090b314e00b001bf38a08e6bmr29946885pjb.22.1647740085409; Sat, 19 Mar 2022 18:34:45 -0700 (PDT) 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 b1-20020a17090aa58100b001bcb7bad374sm15281407pjq.17.2022.03.19.18.34.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 19 Mar 2022 18:34:44 -0700 (PDT) X-Mozilla-News-Host: news://news.gmane.org:119 From: Jim Porter Subject: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion To: bug-gnu-emacs@gnu.org Message-ID: Date: Sat, 19 Mar 2022 18:34:44 -0700 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------C0019A5743A1697E327601E5" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1030 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1030; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x1030.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-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Eshell supports a few ways of expanding and manipulating arguments: globs (which most people are likely familiar with from other shells), as well as predicates (which let you filter lists of file names based on the files' properties) and modifiers (which perform common transformations, mostly on lists). However, these lack unit tests and are currently only documented in the manual as follows: Eshell’s globbing syntax is very similar to that of Zsh. Users coming from Bash can still use Bash-style globbing, as there are no incompatibilities. Most globbing is pattern-based expansion, but there is also predicate-based expansion. See Filename Generation in The Z Shell Manual, for full syntax. As the manual says, the syntax is "similar"; it's not actually the same. It also doesn't mention argument modifiers, which are related to predicates, but let you do different things. I think it would be best to fully-document the syntax so that the Eshell-specific bits are clear. Attached are some patches to add documentation and tests for this. For globbing, I only added tests/documentation, but for predicates and modifiers, I found a few bugs as well. I'll describe each of them: 1. The "is a socket" predicate conflicts with the "is setuid" predicate (both are `s'), meaning that it's impossible to filter on the setuid bit. I've updated the "is a socket" predicate to be `=', matching zsh. 2. The "join" (`j') modifier was documented as joining a list and separating the element by a space, but it actually joined the list with no separator. It now behaves according to the documentation. 3. The "eval again" (`E') modifier didn't work; it called `eshell-parse-argument' with one argument, but that function takes no args. I've fixed this, though I had to make an educated guess on what the behavior should be. I chose the behavior closest to what the previous implementation looked like it was trying to do: re-evaluate the value as though it were a single argument (another option would be to re-evaluate as though it were a full shell command, i.e. to invoke a program). I've documented the behavior in the manual, so hopefully that will explain how it works. Finally, I added support for the "is effective gid" predicate (`G'). That was already there, but commented out. It just needed uncommenting and the uid parts renamed to gid. I'm not sure if there was some reason for it to be commented out, but it works fine in my tests. Hopefully the documentation I've added is structured/worded reasonably well. I did my best to follow existing conventions despite the very-different syntax (especially for predicates/modifiers), and tried to give a reasonable level of detail for all the options. If there's anything that's confusing or needs expanded, just let me know and I'll try to improve it. Finally, I'm not sure if any of the behavior changes should be documented in NEWS. `G' ("is effective gid") is a small new feature, and the change from `s' to `=' for "is a socket" and the change for `j' (join) are technically incompatible changes, although maybe they're obscure enough that they don't need NEWS entries. I'll do whatever others think is best here. --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=UTF-8; name="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-unit-tests-and-documentation-for-Eshell-pattern-.pa"; filename*1="tch" RnJvbSA2ZWNkMzAwYTBiZGRkZjM2OWM4YTM2NzJlNzBmZWMxNzVjY2I4YTBkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBNYXIgMjAyMiAxNzowNzoyNiAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBBZGQgdW5pdCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgRXNoZWxsIHBh dHRlcm4tYmFzZWQKIGdsb2JzCgoqIGxpc3AvZXNoZWxsL2VtLWdsb2IuZWwgKGVzaGVsbC1l eHRlbmRlZC1nbG9iKTogRml4IGRvY3N0cmluZy4KCiogdGVzdC9saXNwL2VzaGVsbC9lbS1n bG9iLXRlc3RzLmVsOiBOZXcgZmlsZS4KCiogZG9jL21pc2MvZXNoZWxsLnRleGkgKEdsb2Ji aW5nKTogRG9jdW1lbnQgcGF0dGVybi1iYXNlZCBnbG9icy4KLS0tCiBkb2MvbWlzYy9lc2hl bGwudGV4aSAgICAgICAgICAgICAgfCAgODAgKysrKysrKysrKysrLS0KIGxpc3AvZXNoZWxs L2VtLWdsb2IuZWwgICAgICAgICAgICB8ICAxMiArLS0KIHRlc3QvbGlzcC9lc2hlbGwvZW0t Z2xvYi10ZXN0cy5lbCB8IDE3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMg ZmlsZXMgY2hhbmdlZCwgMjQ3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRlc3QvbGlzcC9lc2hlbGwvZW0tZ2xvYi10ZXN0cy5lbAoKZGlm ZiAtLWdpdCBhL2RvYy9taXNjL2VzaGVsbC50ZXhpIGIvZG9jL21pc2MvZXNoZWxsLnRleGkK aW5kZXggMzcyZTRjM2ZmYi4uNGExZmRjZjhmZiAxMDA2NDQKLS0tIGEvZG9jL21pc2MvZXNo ZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKQEAgLTEwODksMTUgKzEwODks NzcgQEAgRG9sbGFycyBFeHBhbnNpb24KIAogQG5vZGUgR2xvYmJpbmcKIEBzZWN0aW9uIEds b2JiaW5nCi1Fc2hlbGwncyBnbG9iYmluZyBzeW50YXggaXMgdmVyeSBzaW1pbGFyIHRvIHRo YXQgb2YgWnNoLiAgVXNlcnMgY29taW5nCi1mcm9tIEJhc2ggY2FuIHN0aWxsIHVzZSBCYXNo LXN0eWxlIGdsb2JiaW5nLCBhcyB0aGVyZSBhcmUgbm8KLWluY29tcGF0aWJpbGl0aWVzLiAg TW9zdCBnbG9iYmluZyBpcyBwYXR0ZXJuLWJhc2VkIGV4cGFuc2lvbiwgYnV0IHRoZXJlCi1p cyBhbHNvIHByZWRpY2F0ZS1iYXNlZCBleHBhbnNpb24uICBAeHJlZntGaWxlbmFtZSBHZW5l cmF0aW9uLCAsICwKLXpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSwKLWZvciBmdWxsIHN5bnRh eC4gIFRvIGN1c3RvbWl6ZSB0aGUgc3ludGF4IGFuZCBiZWhhdmlvciBvZiBnbG9iYmluZyBp bgotRXNoZWxsIHNlZSB0aGUgQ3VzdG9taXplQGZvb3Rub3Rle0B4cmVme0Vhc3kgQ3VzdG9t aXphdGlvbiwgLCAsIGVtYWNzLAotVGhlIEdOVSBFbWFjcyBNYW51YWx9Ln0KLWdyb3VwcyBg YGVzaGVsbC1nbG9iJycgYW5kIGBgZXNoZWxsLXByZWQnJy4KK0VzaGVsbCdzIGdsb2JiaW5n IHN5bnRheCBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBvZiBac2gKKyhAcHhyZWZ7RmlsZW5h bWUgR2VuZXJhdGlvbiwgLCAsIHpzaCwgVGhlIFogU2hlbGwgTWFudWFsfSkuICBVc2Vycwor Y29taW5nIGZyb20gQmFzaCBjYW4gc3RpbGwgdXNlIEJhc2gtc3R5bGUgZ2xvYmJpbmcsIGFz IHRoZXJlIGFyZSBubworaW5jb21wYXRpYmlsaXRpZXMuICBUbyBjdXN0b21pemUgdGhlIHN5 bnRheCBhbmQgYmVoYXZpb3Igb2YgZ2xvYmJpbmcKK2luIEVzaGVsbCBzZWUgdGhlIEN1c3Rv bWl6ZUBmb290bm90ZXtAeHJlZntFYXN5IEN1c3RvbWl6YXRpb24sICwgLAorZW1hY3MsIFRo ZSBHTlUgRW1hY3MgTWFudWFsfS59IGdyb3VwIGBgZXNoZWxsLWdsb2InJy4KKworQHRhYmxl IEBjb2RlCisKK0BpdGVtICoKK01hdGNoZXMgYW55IHN0cmluZyAoaW5jbHVkaW5nIHRoZSBl bXB0eSBzdHJpbmcpLiAgRm9yIGV4YW1wbGUsCitAc2FtcHsqLmVsfSBtYXRjaGVzIGFueSBm aWxlIHdpdGggdGhlIEBmaWxley5lbH0gZXh0ZW5zaW9uLgorCitAaXRlbSA/CitNYXRjaGVz IGFueSBzaW5nbGUgY2hhcmFjdGVyLiAgRm9yIGV4YW1wbGUsIEBzYW1wez9hdH0gbWF0Y2hl cworQGZpbGV7Y2F0fSBhbmQgQGZpbGV7YmF0fSwgYnV0IG5vdCBAZmlsZXtnb2F0fS4KKwor QGl0ZW0gKioKK01hdGNoZXMgYW55IG51bWJlciBvZiBzdWJkaXJlY3RvcmllcyBpbiBhIGZp bGUgbmFtZSwgaW5jbHVkaW5nIHplcm8uCitGb3IgZXhhbXBsZSwgQHNhbXB7KiovZm9vLmVs fSBtYXRjaGVzIEBmaWxle2Zvby5lbH0sCitAZmlsZXtiYXIvZm9vLmVsfSwgQGZpbGV7YmFy L2Jhei9mb28uZWx9LCBldGMuCisKK0BpdGVtICoqKgorQXMgQGNvZGV7Kip9LCBidXQgZm9s bG93cyBzeW1saW5rcyBhcyB3ZWxsLgorCitAaXRlbSBbIEBkb3Rze30gXQorRGVmaW5lcyBh IEBkZm57Y2hhcmFjdGVyIHNldH0gKEBweHJlZntSZWdleHBzLCAsICwgZW1hY3MsIFRoZSBH TlUKK0VtYWNzIE1hbnVhbH0pLiAgQSBjaGFyYWN0ZXIgc2V0IG1hdGNoZXMgYW55IGNoYXJh Y3RlciBiZXR3ZWVuCitAc2FtcHtbfSBhbmQgQHNhbXB7XX07IGZvciBleGFtcGxlLCBAc2Ft cHtbYWRdfSBtYXRjaGVzIEBmaWxle2F9IGFuZAorQGZpbGV7ZH0uICBZb3UgY2FuIGFsc28g aW5jbHVkZSByYW5nZXMgb2YgY2hhcmFjdGVycyBpbiB0aGUgc2V0IGJ5CitzZXBhcmF0aW5n IHRoZSBzdGFydCBhbmQgZW5kIHdpdGggQHNhbXB7LX0uICBUaHVzLCBAc2FtcHtbYS16XX0K K21hdGNoZXMgYW55IGxvd2VyLWNhc2UgQGFjcm9ueW17QVNDSUl9IGxldHRlci4KKworQWRk aXRpb25hbGx5LCB5b3UgY2FuIGluY2x1ZGUgQGRmbntjaGFyYWN0ZXIgY2xhc3Nlc30gaW4g YSBjaGFyYWN0ZXIKK3NldC4gIEEgQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcgQHNhbXB7Ol19 IGVuY2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MKK2luc2lkZSBhIGNoYXJhY3RlciBzZXQuICBG b3IgaW5zdGFuY2UsIEBzYW1we1tbOmFsbnVtOl1dfQorbWF0Y2hlcyBhbnkgbGV0dGVyIG9y IGRpZ2l0LiAgQHhyZWZ7Q2hhciBDbGFzc2VzLCAsICwgZWxpc3AsIFRoZSBFbWFjcworTGlz cCBSZWZlcmVuY2UgTWFudWFsfSwgZm9yIGEgbGlzdCBvZiBjaGFyYWN0ZXIgY2xhc3Nlcy4K KworQGl0ZW0gW14gQGRvdHN7fSBdCitEZWZpbmVzIGEgQGRmbntjb21wbGVtZW50ZWQgY2hh cmFjdGVyIHNldH0uICBUaGlzIGJlaGF2ZXMganVzdCBsaWtlIGEKK2NoYXJhY3RlciBzZXQs IGJ1dCBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgQGVtcGh7ZXhjZXB0fSB0aGUgb25lcworc3Bl Y2lmaWVkLgorCitAaXRlbSAoIEBkb3Rze30gKQorRGVmaW5lcyBhIEBkZm57Z3JvdXB9LiAg QSBncm91cCBtYXRjaGVzIHRoZSBwYXR0ZXJuIGJldHdlZW4gQHNhbXB7KH0KK2FuZCBAc2Ft cHspfS4gIE5vdGUgdGhhdCBhIGdyb3VwIGNhbiBvbmx5IG1hdGNoIGEgc2luZ2xlIGZpbGUg bmFtZQorY29tcG9uZW50LCBzbyBhIEBzYW1wey99IGluc2lkZSBhIGdyb3VwIHdpbGwgc2ln bmFsIGFuIGVycm9yLgorCitAaXRlbSBAdmFye3h9fEB2YXJ7eX0KK0luc2lkZSBvZiBhIGdy b3VwLCBtYXRjaGVzIGVpdGhlciBAdmFye3h9IG9yIEB2YXJ7eX0uICBGb3IgZXhhbXBsZSwK K0BzYW1we2UobXxzaCktKn0gbWF0Y2hlcyBhbnkgZmlsZSBiZWdpbm5pbmcgd2l0aCBAY29k ZXtlbS19IG9yCitAY29kZXtlc2gtfS4KKworQGl0ZW0gQHZhcnt4fSMKK01hdGNoZXMgemVy byBvciBtb3JlIGNvcGllcyBvZiB0aGUgZ2xvYiBwYXR0ZXJuIEB2YXJ7eH0uICBGb3IgZXhh bXBsZSwKK0BzYW1we2ZvIy5lbH0gbWF0Y2hlcyBAZmlsZXtmLmVsfSwgQGZpbGV7Zm8uZWx9 LCBAZmlsZXtmb28uZWx9LCBldGMuCisKK0BpdGVtIEB2YXJ7eH0jIworTWF0Y2hlcyBvbmUg b3IgbW9yZSBjb3BpZXMgb2YgdGhlIGdsb2IgcGF0dGVybiBAdmFye3h9LiAgVGh1cywKK0Bz YW1we2ZvIy5lbH0gbWF0Y2hlcyBAZmlsZXtmby5lbH0sIEBmaWxle2Zvby5lbH0sIEBmaWxl e2Zvb28uZWx9LAorZXRjLgorCitAaXRlbSBAdmFye3h9fkB2YXJ7eX0KK01hdGNoZXMgYW55 dGhpbmcgdGhhdCBtYXRjaGVzIHRoZSBwYXR0ZXJuIEB2YXJ7eH0gYnV0IG5vdCBAdmFye3l9 LiBGb3IKK2V4YW1wbGUsIEBzYW1we1tbOmRpZ2l0Ol1dI340P30gbWF0Y2hlcyBAZmlsZXsx fSBhbmQgQGZpbGV7MTJ9LCBidXQKK25vdCBAZmlsZXs0Mn0uICBOb3RlIHRoYXQgdW5saWtl IGluIFpzaCwgb25seSBhIHNpbmdsZSBAY29kZXt+fQorb3BlcmF0b3IgY2FuIGJlIHVzZWQg aW4gYSBwYXR0ZXJuLCBhbmQgaXQgY2Fubm90IGJlIGluc2lkZSBvZiBhIGdyb3VwCitsaWtl IEBzYW1weyhAdmFye3h9fkB2YXJ7eX0pfS4KKworQGVuZCB0YWJsZQogCiBAbm9kZSBJbnB1 dC9PdXRwdXQKIEBjaGFwdGVyIElucHV0L091dHB1dApkaWZmIC0tZ2l0IGEvbGlzcC9lc2hl bGwvZW0tZ2xvYi5lbCBiL2xpc3AvZXNoZWxsL2VtLWdsb2IuZWwKaW5kZXggODQyZjI3YTQ5 Mi4uOGMwZDhkZmNkNyAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0tZ2xvYi5lbAorKysg Yi9saXNwL2VzaGVsbC9lbS1nbG9iLmVsCkBAIC0yMzMsNyArMjMzLDEwIEBAIGVzaGVsbC1n bG9iLXJlZ2V4cAogCSAgICAiXFwnIikpKQogCiAoZGVmdW4gZXNoZWxsLWV4dGVuZGVkLWds b2IgKGdsb2IpCi0gICJSZXR1cm4gYSBsaXN0IG9mIGZpbGVzIGdlbmVyYXRlZCBmcm9tIEdM T0IsIHBlcmhhcHMgbG9va2luZyBmb3IgRElSUy1PTkxZLgorICAiUmV0dXJuIGEgbGlzdCBv ZiBmaWxlcyBtYXRjaGVkIGJ5IEdMT0IuCitJZiBubyBmaWxlcyBtYXRjaCwgc2lnbmFsIGFu IGVycm9yIChpZiBgZXNoZWxsLWVycm9yLWlmLW5vLWdsb2InCitpcyBub24tbmlsKSwgb3Ig b3RoZXJ3aXNlIHJldHVybiBHTE9CIGl0c2VsZi4KKwogVGhpcyBmdW5jdGlvbiBhbG1vc3Qg ZnVsbHkgc3VwcG9ydHMgenNoIHN0eWxlIGZpbGVuYW1lIGdlbmVyYXRpb24KIHN5bnRheC4g IFRoaW5ncyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGFyZToKIApAQCAtMjQzLDEyICsyNDYs NyBAQCBlc2hlbGwtZXh0ZW5kZWQtZ2xvYgogICAgZm9vfngoYXxiKSAgKGF8Yikgd2lsbCBi ZSBpbnRlcnByZXRlZCBhcyBhIHByZWRpY2F0ZS9tb2RpZmllciBsaXN0CiAKIE1haW5seSB0 aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgZmlsZSBtYXRjaGluZyBpcyBkb25lIHdp dGggRW1hY3MKLXJlZ3VsYXIgZXhwcmVzc2lvbnMsIGFuZCB0aGVzZSBjYW5ub3Qgc3VwcG9y dCB0aGUgYWJvdmUgY29uc3RydWN0cy4KLQotSWYgdGhpcyByb3V0aW5lIGZhaWxzLCBpdCBy ZXR1cm5zIG5pbC4gIE90aGVyd2lzZSwgaXQgcmV0dXJucyBhIGxpc3QKLXRoZSBmb3JtOgot Ci0gICAoSU5DTFVERS1SRUdFWFAgRVhDTFVERS1SRUdFWFAgKFBSRUQtRlVOQy1MSVNUKSAo TU9ELUZVTkMtTElTVCkpIgorcmVndWxhciBleHByZXNzaW9ucywgYW5kIHRoZXNlIGNhbm5v dCBzdXBwb3J0IHRoZSBhYm92ZSBjb25zdHJ1Y3RzLiIKICAgKGxldCAoKHBhdGhzIChlc2hl bGwtc3BsaXQtcGF0aCBnbG9iKSkKICAgICAgICAgZXNoZWxsLWdsb2ItbWF0Y2hlcyBtZXNz YWdlLXNob3duKQogICAgICh1bndpbmQtcHJvdGVjdApkaWZmIC0tZ2l0IGEvdGVzdC9saXNw L2VzaGVsbC9lbS1nbG9iLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1nbG9iLXRl c3RzLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjEwNjNiYTI0 MjMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLWdsb2ItdGVzdHMu ZWwKQEAgLTAsMCArMSwxNzEgQEAKKzs7OyBlbS1nbG9iLXRlc3RzLmVsIC0tLSBlbS1nbG9i IHRlc3Qgc3VpdGUgIC0qLSBsZXhpY2FsLWJpbmRpbmc6dCAtKi0KKworOzsgQ29weXJpZ2h0 IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCis7OyBUaGlzIGZp bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3 YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCis7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb21tZW50YXJ5OgorCis7OyBUZXN0 cyBmb3IgRXNoZWxsJ3MgZ2xvYiBleHBhbnNpb24uCisKKzs7OyBDb2RlOgorCisocmVxdWly ZSAnZXJ0KQorKHJlcXVpcmUgJ2VtLWdsb2IpCisKKyhkZWZtYWNybyB3aXRoLWZha2UtZmls ZXMgKGZpbGVzICZyZXN0IGJvZHkpCisgICJFdmFsdWF0ZSBCT0RZIGZvcm1zLCBwcmV0ZW5k aW5nIHRoYXQgRklMRVMgZXhpc3Qgb24gdGhlIGZpbGVzeXN0ZW0uCitGSUxFUyBpcyBhIGxp c3Qgb2YgZmlsZSBuYW1lcyB0aGF0IHNob3VsZCBiZSByZXBvcnRlZCBhcworYXBwcm9wcmlh dGUgYnkgYGZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMnLiAgQW55IGZpbGUgbmFtZQorY29t cG9uZW50IGVuZGluZyBpbiBcInN5bWxpbmtcIiBpcyB0cmVhdGVkIGFzIGEgc3ltYm9saWMg bGluay4iCisgIChkZWNsYXJlIChpbmRlbnQgMSkpCisgIGAoY2wtbGV0ZiAoKChzeW1ib2wt ZnVuY3Rpb24gJ2ZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMpCisgICAgICAgICAgICAgIChs YW1iZGEgKGZpbGUgZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIChjbC1hc3NlcnQgKHN0 cmluZz0gZmlsZSAiIikpCisgICAgICAgICAgICAgICAgKHNldHEgZGlyZWN0b3J5IChleHBh bmQtZmlsZS1uYW1lIGRpcmVjdG9yeSkpCisgICAgICAgICAgICAgICAgYCgiLi8iICIuLi8i CisgICAgICAgICAgICAgICAgICAsQChkZWxldGUtZHVwcworICAgICAgICAgICAgICAgICAg ICAgKHJlbXEgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzZXRxIGZpbGUgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoc3RyaW5nLXByZWZpeC1wIGRp cmVjdG9yeSBmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwbGFj ZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Ly4qIiAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcg ZmlsZSAobGVuZ3RoIGRpcmVjdG9yeSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLGZpbGVzKSkpKSkpCisgICAgICAgICAgICAgKChzeW1ib2wtZnVuY3Rpb24gJ2ZpbGUt c3ltbGluay1wKQorICAgICAgICAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgICAg ICAgIChzdHJpbmctc3VmZml4LXAgInN5bWxpbmsiIGZpbGUpKSkpCisgICAgICxAYm9keSkp CisKKzs7OyBUZXN0czoKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1hbnkt c3RyaW5nICgpCisgICJUZXN0IHRoYXQgXCIqXCIgcGF0dGVybiBtYXRjaGVzIGFueSBzdHJp bmcuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiYy50eHQiICJkaXIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqLmVs IikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIpKSkpKQorCisoZXJ0LWRl ZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWFueS1jaGFyYWN0ZXIgKCkKKyAgIlRlc3QgdGhh dCBcIj9cIiBwYXR0ZXJuIG1hdGNoZXMgYW55IGNoYXJhY3Rlci4iCisgICh3aXRoLWZha2Ut ZmlsZXMgJygiYS5lbCIgImIuZWwiICJjY2MuZWwiICJkLnR4dCIgImRpci9hLmVsIikKKyAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIj8uZWwiKQorICAgICAg ICAgICAgICAgICAgICcoImEuZWwiICJiLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1n bG9iLXRlc3QvbWF0Y2gtcmVjdXJzaXZlICgpCisgICJUZXN0IHRoYXQgXCIqKlwiIHJlY3Vy c2l2ZWx5IG1hdGNoZXMgZGlyZWN0b3JpZXMuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEu ZWwiICJiLmVsIiAiY2NjLmVsIiAiZC50eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIK KyAgICAgICAgICAgICAgICAgICAgICJkaXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVs IiAic3ltbGluay9zdWIvYS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICIqKi9hLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiZGly L2EuZWwiICJkaXIvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVz dC9tYXRjaC1yZWN1cnNpdmUtZm9sbG93LXN5bWxpbmtzICgpCisgICJUZXN0IHRoYXQgXCIq KipcIiByZWN1cnNpdmVseSBtYXRjaGVzIGRpcmVjdG9yaWVzLCBmb2xsb3dpbmcgc3ltbGlu a3MuIgorICAod2l0aC1mYWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiY2NjLmVsIiAiZC50 eHQiICJkaXIvYS5lbCIgImRpci9zdWIvYS5lbCIKKyAgICAgICAgICAgICAgICAgICAgICJk aXIvc3ltbGluay9hLmVsIiAic3ltbGluay9hLmVsIiAic3ltbGluay9zdWIvYS5lbCIpCisg ICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICIqKiovYS5lbCIpCisg ICAgICAgICAgICAgICAgICAgJygiYS5lbCIgImRpci9hLmVsIiAiZGlyL3N1Yi9hLmVsIiAi ZGlyL3N5bWxpbmsvYS5lbCIKKyAgICAgICAgICAgICAgICAgICAgICJzeW1saW5rL2EuZWwi ICJzeW1saW5rL3N1Yi9hLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3Qv bWF0Y2gtcmVjdXJzaXZlLW1peGVkICgpCisgICJUZXN0IGNvbWJpbmF0aW9uIG9mIFwiKipc IiBhbmQgXCIqKipcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZGlyL2EuZWwiICJkaXIv c3ViL2EuZWwiICJkaXIvc3ViMi9hLmVsIgorICAgICAgICAgICAgICAgICAgICAgImRpci9z eW1saW5rL2EuZWwiICJkaXIvc3ViL3N5bWxpbmsvYS5lbCIgInN5bWxpbmsvYS5lbCIKKyAg ICAgICAgICAgICAgICAgICAgICJzeW1saW5rL3N1Yi9hLmVsIiAic3ltbGluay9zdWIvc3lt bGluay9hLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2Ig IioqL3N1Yi8qKiovYS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZGlyL3N1Yi9hLmVs IiAiZGlyL3N1Yi9zeW1saW5rL2EuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1leHRlbmRlZC1nbG9iICIqKiovc3ViLyoqL2EuZWwiKQorICAgICAgICAgICAgICAgICAg ICcoImRpci9zdWIvYS5lbCIgInN5bWxpbmsvc3ViL2EuZWwiKSkpKSkKKworKGVydC1kZWZ0 ZXN0IGVtLWdsb2ItdGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LWluZGl2aWR1YWwgKCkKKyAg IlRlc3QgXCJbLi4uXVwiIGZvciBpbmRpdmlkdWFsIGNoYXJhY3RlcnMuIgorICAod2l0aC1m YWtlLWZpbGVzICcoImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIvYS5lbCIpCisg ICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWJdLmVsIikKKyAg ICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVh bCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIlteYWJdLmVsIikKKyAgICAgICAgICAgICAgICAg ICAnKCJjLmVsIiAiZC5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21h dGNoLWNoYXJhY3Rlci1zZXQtcmFuZ2UgKCkKKyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFy YWN0ZXIgcmFuZ2VzLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJhLmVsIiAiYi5lbCIgImMu ZWwiICJkLmVsIiAiZGlyL2EuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0 ZW5kZWQtZ2xvYiAiW2EtY10uZWwiKQorICAgICAgICAgICAgICAgICAgICcoImEuZWwiICJi LmVsIiAiYy5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWds b2IgIlteYS1jXS5lbCIpCisgICAgICAgICAgICAgICAgICAgJygiZC5lbCIpKSkpKQorCiso ZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLWNoYXJhY3Rlci1zZXQtY2xhc3MgKCkK KyAgIlRlc3QgXCJbLi4uXVwiIGZvciBjaGFyYWN0ZXIgY2xhc3Nlcy4iCisgICh3aXRoLWZh a2UtZmlsZXMgJygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImRpci9hLmVsIikKKyAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIltbOmFscGhhOl1dLmVs IikKKyAgICAgICAgICAgICAgICAgICAnKCJhLmVsIiAiYi5lbCIgImMuZWwiKSkpCisgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbXls6YWxwaGE6XV0uZWwi KQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVt LWdsb2ItdGVzdC9tYXRjaC1jaGFyYWN0ZXItc2V0LW1peGVkICgpCisgICJUZXN0IFwiWy4u Ll1cIiB3aXRoIG11bHRpcGxlIGtpbmRzIG9mIG1lbWJlcnMgYXQgb25jZS4iCisgICh3aXRo LWZha2UtZmlsZXMgJygiMS5lbCIgImEuZWwiICJiLmVsIiAiYy5lbCIgImQuZWwiICJkaXIv YS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJbYWMt ZFs6ZGlnaXQ6XV0uZWwiKQorICAgICAgICAgICAgICAgICAgICcoIjEuZWwiICJhLmVsIiAi Yy5lbCIgImQuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1n bG9iICJbXmFjLWRbOmRpZ2l0Ol1dLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJiLmVs IikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtZ3JvdXAtYWx0ZXJu YXRpdmUgKCkKKyAgIlRlc3QgXCIoeHx5KVwiIG1hdGNoZXMgZWl0aGVyIFwieFwiIG9yIFwi eVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJlbS1hbGlhcy5lbCIgImVtLWJhbm5lci5l bCIgImVzaC1hcmcuZWwiICJtaXNjLmVsIgorICAgICAgICAgICAgICAgICAgICAgInRlc3Qv ZW0teHRyYS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9i ICJlKG18c2gpLSouZWwiKQorICAgICAgICAgICAgICAgICAgICcoImVtLWFsaWFzLmVsIiAi ZW0tYmFubmVyLmVsIiAiZXNoLWFyZy5lbCIpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tZ2xv Yi10ZXN0L21hdGNoLW4tb3ItbW9yZS1jaGFyYWN0ZXJzICgpCisgICJUZXN0IHRoYXQgXCJ4 I1wiIGFuZCBcIngjXCIgbWF0Y2ggemVybyBvciBtb3JlIGluc3RhbmNlcyBvZiBcInhcIi4i CisgICh3aXRoLWZha2UtZmlsZXMgJygiaC5lbCIgImhhLmVsIiAiaGkuZWwiICJoaWkuZWwi ICJkaXIvaGkuZWwiKQorICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXh0ZW5kZWQtZ2xv YiAiaGkjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJoLmVsIiAiaGkuZWwiICJoaWku ZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMj LmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJoaS5lbCIgImhpaS5lbCIpKSkpKQorCiso ZXJ0LWRlZnRlc3QgZW0tZ2xvYi10ZXN0L21hdGNoLW4tb3ItbW9yZS1ncm91cHMgKCkKKyAg IlRlc3QgdGhhdCBcIih4KSNcIiBhbmQgXCIoeCkjXCIgbWF0Y2ggemVybyBvciBtb3JlIGlu c3RhbmNlcyBvZiBcIih4KVwiLiIKKyAgKHdpdGgtZmFrZS1maWxlcyAnKCJoLmVsIiAiaGEu ZWwiICJoaS5lbCIgImhpaS5lbCIgImRpci9oaS5lbCIpCisgICAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1leHRlbmRlZC1nbG9iICJoaSMuZWwiKQorICAgICAgICAgICAgICAgICAgICco ImguZWwiICJoaS5lbCIgImhpaS5lbCIpKSkKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LWV4dGVuZGVkLWdsb2IgImhpIyMuZWwiKQorICAgICAgICAgICAgICAgICAgICcoImhpLmVs IiAiaGlpLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9iLXRlc3QvbWF0Y2gtbi1v ci1tb3JlLWNoYXJhY3Rlci1zZXRzICgpCisgICJUZXN0IHRoYXQgXCJbeF0jXCIgYW5kIFwi W3hdI1wiIG1hdGNoIHplcm8gb3IgbW9yZSBpbnN0YW5jZXMgb2YgXCJbeF1cIi4iCisgICh3 aXRoLWZha2UtZmlsZXMgJygidy5lbCIgIndoLmVsIiAid2hhLmVsIiAid2hpLmVsIiAid2hh aGEuZWwiICJkaXIvd2hhLmVsIikKKyAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVu ZGVkLWdsb2IgIndbYWhdIy5lbCIpCisgICAgICAgICAgICAgICAgICAgJygidy5lbCIgIndo LmVsIiAid2hhLmVsIiAid2hhaGEuZWwiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1leHRlbmRlZC1nbG9iICJ3W2FoXSMjLmVsIikKKyAgICAgICAgICAgICAgICAgICAnKCJ3 aC5lbCIgIndoYS5lbCIgIndoYWhhLmVsIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1nbG9i LXRlc3QvbWF0Y2gteC1idXQtbm90LXkgKCkKKyAgIlRlc3QgdGhhdCBcInh+eVwiIG1hdGNo ZXMgXCJ4XCIgYnV0IG5vdCBcInlcIi4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiMSIgIjEy IiAiMTIzIiAiNDIiICJkaXIvMSIpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1leHRl bmRlZC1nbG9iICJbWzpkaWdpdDpdXSMjfjQ/IikKKyAgICAgICAgICAgICAgICAgICAnKCIx IiAiMTIiICIxMjMiKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLWdsb2ItdGVzdC9uby1tYXRj aGVzICgpCisgICJUZXN0IGJlaGF2aW9yIHdoZW4gYSBnbG9iIGZhaWxzIHRvIG1hdGNoIGFu eSBmaWxlcy4iCisgICh3aXRoLWZha2UtZmlsZXMgJygiZm9vLmVsIiAiYmFyLmVsIikKKyAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV4dGVuZGVkLWdsb2IgIioudHh0IikKKyAgICAg ICAgICAgICAgICAgICAiKi50eHQiKSkKKyAgICAobGV0ICgoZXNoZWxsLWVycm9yLWlmLW5v LWdsb2IgdCkpCisgICAgICAoc2hvdWxkLWVycm9yIChlc2hlbGwtZXh0ZW5kZWQtZ2xvYiAi Ki50eHQiKSkpKSkKKworOzsgZW0tZ2xvYi10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUu MQoK --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=UTF-8; name="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Add-unit-tests-and-documentation-for-Eshell-predicat.pa"; filename*1="tch" RnJvbSAyM2U1ZjZiMjkyN2ZlMzBmNzdjYWU5NWVlNTExNmFkMzE2YmUwOWVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTI6NDE6MTMgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvM10gQWRkIHVuaXQgdGVzdHMgYW5kIGRvY3VtZW50YXRpb24gZm9yIEVzaGVsbAog cHJlZGljYXRlcy9tb2RpZmllcnMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxs LWV2YWwtYXJndW1lbnQpOiBOZXcgZnVuY3Rpb24uCgoqIGxpc3AvZXNoZWxsL2VtLXByZWQu ZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBDaGFuZ2Ugc29ja2V0IGNoYXIKdG8gJz0n LCBzaW5jZSAncycgY29uZmxpY3RzIHdpdGggc2V0dWlkLgooZXNoZWxsLW1vZGlmaWVyLWFs aXN0KTogRml4ICdFJyAoZXZhbCkgbW9kaWZpZXIgYnkgdXNpbmcKJ2VzaGVsbC1ldmFsLWFy Z3VtZW50Jy4gIEFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBvZiAnTycgKHJldmVyc2VkCnNv cnQpIG1vZGlmaWVyLgooZXNoZWxsLW1vZGlmaWVyLWhlbHAtc3RyaW5nKTogRml4IGRvY3Vt ZW50YXRpb24gb2YgZ2xvYmFsCnN1YnN0aXR1dGlvbiBtb2RpZmllci4KKGVzaGVsbC1qb2lu LW1lbWJlcnMpOiBGaXggam9pbmluZyB3aXRoIGltcGxpY2l0ICIgIiBkZWxpbWl0ZXIuCgoq IHRlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbDogTmV3IGZpbGUuCgoqIGRvYy9t aXNjL2VzaGVsbC50ZXhpIChBcmd1bWVudCBQcmVkaWNhdGlvbik6IE5ldyBzZWN0aW9uLgot LS0KIGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8IDIyMSArKysrKysrKysr KysrCiBsaXNwL2VzaGVsbC9lbS1wcmVkLmVsICAgICAgICAgICAgfCAgMjUgKy0KIGxpc3Av ZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAgICB8ICAgOCArCiB0ZXN0L2xpc3AvZXNoZWxs L2VtLXByZWQtdGVzdHMuZWwgfCA1MjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiA0IGZpbGVzIGNoYW5nZWQsIDc1OSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMuZWwK CmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50 ZXhpCmluZGV4IDRhMWZkY2Y4ZmYuLjM2YWI4NzE0MTggMTAwNjQ0Ci0tLSBhL2RvYy9taXNj L2VzaGVsbC50ZXhpCisrKyBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCkBAIC0xMDAyLDYgKzEw MDIsNyBAQCBFeHBhbnNpb24KIEBtZW51CiAqIERvbGxhcnMgRXhwYW5zaW9uOjoKICogR2xv YmJpbmc6OgorKiBBcmd1bWVudCBQcmVkaWNhdGlvbjo6CiBAZW5kIG1lbnUKIAogQG5vZGUg RG9sbGFycyBFeHBhbnNpb24KQEAgLTExNjEsNiArMTE2MiwyMjYgQEAgR2xvYmJpbmcKIAog QGVuZCB0YWJsZQogCitAbm9kZSBBcmd1bWVudCBQcmVkaWNhdGlvbgorQHNlY3Rpb24gQXJn dW1lbnQgUHJlZGljYXRpb24gYW5kIE1vZGlmaWNhdGlvbgorRXNoZWxsIHN1cHBvcnRzIEBk Zm57YXJndW1lbnQgcHJlZGljYXRpb259LCB0byBmaWx0ZXIgZWxlbWVudHMgb2YgYQorZ2xv YiwgYW5kIEBkZm57YXJndW1lbnQgbW9kaWZpY2F0aW9ufSwgdG8gbWFuaXB1bGF0ZSBhcmd1 bWVudCB2YWx1ZXMuCitUaGVzZSBhcmUgc2ltaWxhciB0byBnbG9iIHF1YWxpZmllcnMgaW4g WnNoIChAcHhyZWZ7R2xvYiBRdWFsaWZpZXJzLCAsCissIHpzaCwgVGhlIFogU2hlbGwgTWFu dWFsfSkuCisKK1ByZWRpY2F0ZXMgYW5kIG1vZGlmaWVycyBhcmUgaW50cm9kdWNlZCB3aXRo IEBjb2RleyggQGRvdHN7fSApfSBhZnRlcgorYW55IGxpc3QgYXJndW1lbnQsIHdoZXJlIEBj b2Rle0Bkb3Rze319IGlzIGEgbGlzdCBvZiBwcmVkaWNhdGVzIG9yCittb2RpZmllcnMuICBG b3IgZXhhbXBsZSwgQHNhbXB7KiguKX0gZXhwYW5kcyB0byBhbGwgcmVndWxhciBmaWxlcyBp bgordGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBAc2FtcHsqKF5AQDpVXnUwKX0gZXhwYW5k cyB0byBhbGwKK25vbi1zeW1saW5rcyBub3Qgb3duZWQgYnkgQGNvZGV7cm9vdH0sIHVwcGVy LWNhc2VkLgorCitUbyBjdXN0b21pemUgdGhlIHN5bnRheCBhbmQgYmVoYXZpb3Igb2YgcHJl ZGljYXRlcyBhbmQgbW9kaWZpZXJzIGluCitFc2hlbGwgc2VlIHRoZSBDdXN0b21pemVAZm9v dG5vdGV7QHhyZWZ7RWFzeSBDdXN0b21pemF0aW9uLCAsICwgZW1hY3MsCitUaGUgR05VIEVt YWNzIE1hbnVhbH0ufSBncm91cCBgYGVzaGVsbC1wcmVkJycuCisKK0BzdWJzZWN0aW9uIEFy Z3VtZW50IFByZWRpY2F0ZXMKK1lvdSBjYW4gdXNlIGFyZ3VtZW50IHByZWRpY2F0ZXMgdG8g ZmlsdGVyIGxpc3RzIG9mIGZpbGUgbmFtZXMgYmFzZWQgb24KK3ZhcmlvdXMgcHJvcGVydGll cyBvZiB0aG9zZSBmaWxlcy4gIFRoaXMgaXMgbW9zdCB1c2VmdWwgd2hlbiBjb21iaW5lZAor d2l0aCBnbG9iYmluZywgYnV0IGNhbiBiZSB1c2VkIG9uIGFueSBsaXN0IG9mIGZpbGVzIG5h bWVzLgorCitUaGUgQGNvZGV7Xn0gYW5kIEBjb2Rley19IG9wZXJhdG9ycyBhcmUgbm90IGFy Z3VtZW50IHByZWRpY2F0ZXMKK3RoZW1zZWx2ZXMsIGJ1dCB0aGV5IG1vZGlmeSB0aGUgYmVo YXZpb3Igb2YgYWxsIHN1YnNlcXVlbnQgcHJlZGljYXRlcy4KK0Bjb2Rle159IGludmVydHMg dGhlIG1lYW5pbmcgb2Ygc3Vic2VxdWVudCBwcmVkaWNhdGVzLCBzbworQHNhbXB7KiheUldY KX0gZXhwYW5kcyB0byBhbGwgZmlsZXMgd2hvc2UgcGVybWlzc2lvbnMgZGlzYWxsb3cgdGhl Cit3b3JsZCBmcm9tIGFjY2Vzc2luZyB0aGVtIGluIGFueSB3YXkgKGkuZS4sIHJlYWRpbmcs IHdyaXRpbmcgdG8sIG9yCittb2RpZnlpbmcgdGhlbSkuICBXaGVuIGV4YW1pbmluZyBhIHN5 bWJvbGljIGxpbmssIEBjb2Rley19IGFwcGxpZXMgdGhlCitzdWJzZXF1ZW50IHByZWRpY2F0 ZXMgdG8gdGhlIGxpbmsncyB0YXJnZXQgaW5zdGVhZCBvZiB0aGUgbGluayBpdHNlbGYuCisK K0VzaGVsbCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50IHByZWRpY2F0ZXM6CisK K0B0YWJsZSBAYXNpcworCitAaXRlbSBAY29kZXsvfQorTWF0Y2hlcyBkaXJlY3Rvcmllcy4K KworQGl0ZW0gQGNvZGV7Ln0gKFBlcmlvZCkKK01hdGNoZXMgcmVndWxhciBmaWxlcy4KKwor QGl0ZW0gQGNvZGV7QEB9CitNYXRjaGVzIHN5bWJvbGljIGxpbmtzLgorCitAaXRlbSBAY29k ZXs9fQorTWF0Y2hlcyBzb2NrZXRzLgorCitAaXRlbSBAY29kZXtwfQorTWF0Y2hlcyBuYW1l ZCBwaXBlcy4KKworQGl0ZW0gQGNvZGV7JX0KK01hdGNoZXMgYmxvY2sgb3IgY2hhcmFjdGVy IGRldmljZXMuCisKK0BpdGVtIEBjb2RleyVifQorTWF0Y2hlcyBibG9jayBkZXZpY2VzLgor CitAaXRlbSBAY29kZXslY30KK01hdGNoZXMgY2hhcmFjdGVyIGRldmljZXMuCisKK0BpdGVt IEBjb2Rleyp9CitNYXRjaGVzIHJlZ3VsYXIgZmlsZXMgdGhhdCBjYW4gYmUgZXhlY3V0ZWQg YnkgdGhlIGN1cnJlbnQgdXNlci4KKworQGl0ZW0gQGNvZGV7cn0KK0BpdGVtIEBjb2Rle0F9 CitAaXRlbSBAY29kZXtSfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSByZWFkYWJsZSBieSB0 aGVpciBvd25lcnMgKEBjb2Rle3J9KSwgdGhlaXIKK2dyb3VwcyAoQGNvZGV7QX0pLCBvciB0 aGUgd29ybGQgKEBjb2Rle1J9KS4KKworQGl0ZW0gQGNvZGV7d30KK0BpdGVtIEBjb2Rle0l9 CitAaXRlbSBAY29kZXtXfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSB3cml0YWJsZSBieSB0 aGVpciBvd25lcnMgKEBjb2Rle3d9KSwgdGhlaXIKK2dyb3VwcyAoQGNvZGV7SX0pLCBvciB0 aGUgd29ybGQgKEBjb2Rle1d9KS4KKworQGl0ZW0gQGNvZGV7eH0KK0BpdGVtIEBjb2Rle0V9 CitAaXRlbSBAY29kZXtYfQorTWF0Y2hlcyBmaWxlcyB0aGF0IGFyZSBleGVjdXRhYmxlIGJ5 IHRoZWlyIG93bmVycyAoQGNvZGV7eH0pLCB0aGVpcgorZ3JvdXBzIChAY29kZXtFfSksIG9y IHRoZSB3b3JsZCAoQGNvZGV7WH0pLgorCitAaXRlbSBAY29kZXtzfQorTWF0Y2hlcyBmaWxl cyB3aXRoIHRoZSBzZXR1aWQgZmxhZyBzZXQuCisKK0BpdGVtIEBjb2Rle1N9CitNYXRjaGVz IGZpbGVzIHdpdGggdGhlIHNldGdpZCBmbGFnIHNldC4KKworQGl0ZW0gQGNvZGV7dH0KK01h dGNoZXMgZmlsZXMgd2l0aCB0aGUgc3RpY2t5IGJpdCBzZXQuCisKK0BpdGVtIEBjb2Rle1V9 CitNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSB1c2VyIElE LgorCitAaXRlbSBAY29kZXtsQG9wdGlvbntbKy1dfUB2YXJ7bn19CitNYXRjaGVzIGZpbGVz IHdpdGggQHZhcntufSBsaW5rcy4gIFdpdGggQG9wdGlvbnsrfSAob3IgQG9wdGlvbnstfSks CittYXRjaGVzIGZpbGVzIHdpdGggbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pIEB2YXJ7bn0g bGlua3MsCityZXNwZWN0aXZlbHkuCisKK0BpdGVtIEBjb2Rle3VAdmFye3VpZH19CitAaXRl bSBAY29kZXt1J0B2YXJ7dXNlci1uYW1lfSd9CitNYXRjaGVzIGZpbGVzIG93bmVkIGJ5IHVz ZXIgSUQgQHZhcnt1aWR9IG9yIHVzZXIgbmFtZSBAdmFye3VzZXItbmFtZX0uCisKK0BpdGVt IEBjb2Rle2dAdmFye2dpZH19CitAaXRlbSBAY29kZXtnJ0B2YXJ7Z3JvdXAtbmFtZX0nfQor TWF0Y2hlcyBmaWxlcyBvd25lZCBieSBncm91cCBJRCBAdmFye2dpZH0gb3IgZ3JvdXAgbmFt ZQorQHZhcntncm91cC1uYW1lfS4KKworQGl0ZW0gQGNvZGV7YUBvcHRpb257W0B2YXJ7dW5p dH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQGNvZGV7YUBvcHRpb257WystXX0n QHZhcntmaWxlfSd9CitNYXRjaGVzIGZpbGVzIGxhc3QgYWNjZXNzZWQgZXhhY3RseSBAdmFy e259IGRheXMgYWdvLiAgV2l0aCBAb3B0aW9ueyt9Cisob3IgQG9wdGlvbnstfSksIG1hdGNo ZXMgZmlsZXMgYWNjZXNzZWQgbW9yZSB0aGFuIChvciBsZXNzIHRoYW4pCitAdmFye259IGRh eXMgYWdvLCByZXNwZWN0aXZlbHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBh IHF1YW50aXR5IGluIHRoYXQgdW5pdCBvZiB0aW1lLCBzbworQHNhbXB7YXctMX0gbWF0Y2hl cyBmaWxlcyBsYXN0IGFjY2Vzc2VkIHdpdGhpbiBvbmUgd2Vlay4gIEB2YXJ7dW5pdH0KK2Nh biBiZSBAY29kZXtNfSAoMzAtZGF5IG1vbnRocyksIEBjb2Rle3d9ICh3ZWVrcyksIEBjb2Rl e2h9IChob3VycyksCitAY29kZXttfSAobWludXRlcyksIG9yIEBjb2Rle3N9IChzZWNvbmRz KS4KKworSWYgQHZhcntmaWxlfSBpcyBzcGVjaWZpZWQgaW5zdGVhZCwgY29tcGFyZSBhZ2Fp bnN0IHRoZSBtb2RpZmljYXRpb24KK3RpbWUgb2YgQGZpbGV7ZmlsZX0uICBUaHVzLCBAc2Ft cHthLSdoZWxsby50eHQnfSBtYXRjaGVzIGFsbCBmaWxlcworYWNjZXNzZWQgYWZ0ZXIgQGZp bGV7aGVsbG8udHh0fSB3YXMgbGFzdCBhY2Nlc3NlZC4KKworQGl0ZW0gQGNvZGV7bUBvcHRp b257W0B2YXJ7dW5pdH1dfUBvcHRpb257WystXX1AdmFye259fQorQGl0ZW0gQGNvZGV7bUBv cHRpb257WystXX0nQHZhcntmaWxlfSd9CitMaWtlIEBjb2Rle2F9LCBidXQgZXhhbWluZXMg bW9kaWZpY2F0aW9uIHRpbWUuCisKK0BpdGVtIEBjb2Rle2NAb3B0aW9ue1tAdmFye3VuaXR9 XX1Ab3B0aW9ue1srLV19QHZhcntufX0KK0BpdGVtIEBjb2Rle2NAb3B0aW9ue1srLV19J0B2 YXJ7ZmlsZX0nfQorTGlrZSBAY29kZXthfSwgYnV0IGV4YW1pbmVzIHN0YXR1cyBjaGFuZ2Ug dGltZS4KKworQGl0ZW0gQGNvZGV7TEBvcHRpb257W0B2YXJ7dW5pdH1dfUBvcHRpb257Wyst XX1AdmFye259fQorTWF0Y2hlcyBmaWxlcyBleGFjdGx5IEB2YXJ7bn0gYnl0ZXMgaW4gc2l6 ZS4gIFdpdGggQG9wdGlvbnsrfSAob3IKK0BvcHRpb257LX0pLCBtYXRjaGVzIGZpbGVzIGxh cmdlciB0aGFuIChvciBzbWFsbGVyIHRoYW4pIEB2YXJ7bn0KK2J5dGVzLCByZXNwZWN0aXZl bHkuCisKK1dpdGggQHZhcnt1bml0fSwgQHZhcntufSBpcyBhIHF1YW50aXR5IGluIHRoYXQg dW5pdCBvZiBzaXplLCBzbworQHNhbXB7TG0rNX0gbWF0Y2hlcyBmaWxlcyBsYXJnZXIgdGhh biA1IE1pQiBpbiBzaXplLiAgQHZhcnt1bml0fSBjYW4KK2JlIG9uZSBvZiB0aGUgZm9sbG93 aW5nIChjYXNlLWluc2Vuc2l0aXZlKSBjaGFyYWN0ZXJzOiBAY29kZXttfQorKG1lZ2FieXRl cyksIEBjb2Rle2t9IChraWxvYnl0ZXMpLCBvciBAY29kZXtwfSAoNTEyLWJ5dGUgYmxvY2tz KS4KKworQGVuZCB0YWJsZQorCitAc3Vic2VjdGlvbiBBcmd1bWVudCBNb2RpZmllcnMKK1lv dSBjYW4gdXNlIGFyZ3VtZW50IG1vZGlmaWVycyB0byBtYW5pcHVsYXRlIGFyZ3VtZW50IHZh bHVlcy4gIEZvcgorZXhhbXBsZSwgeW91IGNhbiBzb3J0IGxpc3RzLCByZW1vdmUgZHVwbGlj YXRlIHZhbHVlcywgY2FwaXRhbGl6ZQord29yZHMsIGV0Yy4gIEFsbCBhcmd1bWVudCBtb2Rp ZmllcnMgYXJlIHByZWZpeGVkIGJ5IEBjb2Rlezp9LCBzbworQHNhbXB7JGV4ZWMtcGF0aCg6 aDp1OngvXlwvaG9tZS8pfSBsaXN0cyBhbGwgb2YgdGhlIHVuaXF1ZSBwYXJlbnQKK2RpcmVj dG9yaWVzIG9mIHRoZSBlbGVtZW50cyBpbiBAY29kZXtleGVjLXBhdGh9LCBleGNsdWRpbmcg dGhvc2UgaW4KK0BmaWxley9ob21lfS4KKworQHRhYmxlIEBjb2RlCisKK0BpdGVtIEUKK1Jl LWV2YWx1YXRlcyB0aGUgdmFsdWUgYXMgYW4gRXNoZWxsIGFyZ3VtZW50LiAgRm9yIGV4YW1w bGUsIGlmCitAdmFye2Zvb30gaXMgQGNvZGV7IiRAe2VjaG8gaGlAfSJ9LCB0aGVuIHRoZSBy ZXN1bHQgb2YgQHNhbXB7JGZvbyg6RSl9CitpcyBAY29kZXtoaX0uCisKK0BpdGVtIEwKK0Nv bnZlcnRzIHRoZSB2YWx1ZSB0byBsb3dlciBjYXNlLgorCitAaXRlbSBVCitDb252ZXJ0cyB0 aGUgdmFsdWUgdG8gdXBwZXIgY2FzZS4KKworQGl0ZW0gQworQ2FwaXRhbGl6ZXMgdGhlIHZh bHVlLgorCitAaXRlbSBoCitUcmVhdGluZyB0aGUgdmFsdWUgYXMgYSBmaWxlIG5hbWUsIGdl dHMgdGhlIGRpcmVjdG9yeSBuYW1lICh0aGUKK2BgaGVhZCcnKS4KKworQGl0ZW0gdAorVHJl YXRpbmcgdGhlIHZhbHVlIGFzIGEgZmlsZSBuYW1lLCBnZXRzIHRoZSBiYXNlIG5hbWUgKHRo ZSBgYHRhaWwnJykuCisKK0BpdGVtIGUKK1RyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhIGZpbGUg bmFtZSwgZ2V0cyB0aGUgZmlsZSBleHRlbnNpb24uCisKK0BpdGVtIHIKK1RyZWF0aW5nIHRo ZSB2YWx1ZSBhcyBhIGZpbGUgbmFtZSwgZ2V0cyB0aGUgZmlsZSBuYW1lIHNhbnMgZXh0ZW5z aW9uLgorCitAaXRlbSBxCitNYXJrcyB0aGF0IHRoZSB2YWx1ZSBzaG91bGQgYmUgaW50ZXJw cmV0ZWQgYnkgRXNoZWxsIGxpdGVyYWxseS4KKworQGl0ZW0gcy9AdmFye3BhdHRlcm59L0B2 YXJ7cmVwbGFjZX0vCitSZXBsYWNlcyB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgdGhlIHJlZ3Vs YXIgZXhwcmVzc2lvbiBAdmFye3BhdHRlcm59Cit3aXRoIEB2YXJ7cmVwbGFjZX0uICBTaWdu YWxzIGFuIGVycm9yIGlmIG5vIG1hdGNoIGlzIGZvdW5kLgorCitAaXRlbSBncy9AdmFye3Bh dHRlcm59L0B2YXJ7cmVwbGFjZX0vCitSZXBsYWNlcyBhbGwgaW5zdGFuY2VzIG9mIHRoZSBy ZWd1bGFyIGV4cHJlc3Npb24gQHZhcntwYXR0ZXJufSB3aXRoCitAdmFye3JlcGxhY2V9Lgor CitAaXRlbSBpL0B2YXJ7cGF0dGVybn0vCitGaWx0ZXJzIGEgbGlzdCBvZiB2YWx1ZXMgdG8g aW5jbHVkZSBvbmx5IHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUKK3JlZ3VsYXIgZXhwcmVz c2lvbiBAdmFye3BhdHRlcm59LgorCitAaXRlbSB4L0B2YXJ7cGF0dGVybn0vCitGaWx0ZXJz IGEgbGlzdCBvZiB2YWx1ZXMgdG8gZXhjbHVkZSBhbGwgdGhlIGVsZW1lbnRzIG1hdGNoaW5n IHRoZQorcmVndWxhciBleHByZXNzaW9uIEB2YXJ7cGF0dGVybn0uCisKK0BpdGVtIFMKK0Bp dGVtIFMvQHZhcntwYXR0ZXJufS8KK1NwbGl0cyB0aGUgdmFsdWUgYnkgdGhlIHJlZ3VsYXIg ZXhwcmVzc2lvbiBAdmFye3BhdHRlcm59LiAgSWYKK0B2YXJ7cGF0dGVybn0gaXMgb21pdHRl ZCwgc3BsaXQgb24gc3BhY2VzLgorCitAaXRlbSBqCitAaXRlbSBqL0B2YXJ7ZGVsaW19Lwor Sm9pbnMgYSBsaXN0IG9mIHZhbHVlcywgc2VwYXJhdGVkIGJ5IHRoZSBzdHJpbmcgQHZhcntk ZWxpbX0uICBJZgorQHZhcntkZWxpbX0gaXMgb21pdHRlZCwgdXNlIGEgc2luZ2xlIHNwYWNl IGFzIHRoZSBkZWxpbWl0ZXIuCisKK0BpdGVtIG8KK1NvcnRzIGEgbGlzdCBvZiBzdHJpbmdz IGluIGFzY2VuZGluZyBsZXhpY29ncmFwaGljIG9yZGVyLgorCitAaXRlbSBPCitTb3J0cyBh IGxpc3Qgb2Ygc3RyaW5ncyBpbiBkZXNjZW5kaW5nIGxleGljb2dyYXBoaWMgb3JkZXIuCisK K0BpdGVtIHUKK1JlbW92ZXMgYW55IGR1cGxpY2F0ZSBlbGVtZW50cyBmcm9tIGEgbGlzdCBv ZiB2YWx1ZXMuCisKK0BpdGVtIFIKK1JldmVyc2VzIHRoZSBvcmRlciBvZiBhIGxpc3Qgb2Yg dmFsdWVzLgorCitAZW5kIHRhYmxlCisKIEBub2RlIElucHV0L091dHB1dAogQGNoYXB0ZXIg SW5wdXQvT3V0cHV0CiBTaW5jZSBFc2hlbGwgZG9lcyBub3QgY29tbXVuaWNhdGUgd2l0aCBh IHRlcm1pbmFsIGxpa2UgbW9zdCBjb21tYW5kCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9l bS1wcmVkLmVsIGIvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbAppbmRleCA5NzAzMjllMTJhLi5l NzVkYTkxY2Y2IDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCisrKyBiL2xp c3AvZXNoZWxsL2VtLXByZWQuZWwKQEAgLTY4LDcgKzY4LDcgQEAgZXNoZWxsLXByZWQtbG9h ZC1ob29rCiAoZGVmY3VzdG9tIGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QKICAgJygoPy8gLiAo ZXNoZWxsLXByZWQtZmlsZS10eXBlID9kKSkgICA7IGRpcmVjdG9yaWVzCiAgICAgKD8uIC4g KGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/LSkpICAgOyByZWd1bGFyIGZpbGVzCi0gICAgKD9z IC4gKGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/cykpICAgOyBzb2NrZXRzCisgICAgKD89IC4g KGVzaGVsbC1wcmVkLWZpbGUtdHlwZSA/cykpICAgOyBzb2NrZXRzCiAgICAgKD9wIC4gKGVz aGVsbC1wcmVkLWZpbGUtdHlwZSA/cCkpICAgOyBuYW1lZCBwaXBlcwogICAgICg/QCAuIChl c2hlbGwtcHJlZC1maWxlLXR5cGUgP2wpKSAgIDsgc3ltYm9saWMgbGlua3MKICAgICAoPyUg LiAoZXNoZWxsLXByZWQtZmlsZS10eXBlID8lKSkgICA7IGFsbG93IHVzZXIgdG8gc3BlY2lm eSAoYyBkZWYuKQpAQCAtOTcsOCArOTcsOCBAQCBlc2hlbGwtcHJlZGljYXRlLWFsaXN0CiAg ICAgICAgICAgICAgICAgIChub3QgKGZpbGUtc3ltbGluay1wIGZpbGUpKQogICAgICAgICAg ICAgICAgICAoZmlsZS1leGVjdXRhYmxlLXAgZmlsZSkpKSkKICAgICAoP2wgLiAoZXNoZWxs LXByZWQtZmlsZS1saW5rcykpCi0gICAgKD91IC4gKGVzaGVsbC1wcmVkLXVzZXItb3ItZ3Jv dXAgP3UgInVzZXIiIDIgJ2VzaGVsbC11c2VyLWlkKSkKLSAgICAoP2cgLiAoZXNoZWxsLXBy ZWQtdXNlci1vci1ncm91cCA/ZyAiZ3JvdXAiIDMgJ2VzaGVsbC1ncm91cC1pZCkpCisgICAg KD91IC4gKGVzaGVsbC1wcmVkLXVzZXItb3ItZ3JvdXAgP3UgInVzZXIiIDIgIydlc2hlbGwt dXNlci1pZCkpCisgICAgKD9nIC4gKGVzaGVsbC1wcmVkLXVzZXItb3ItZ3JvdXAgP2cgImdy b3VwIiAzICMnZXNoZWxsLWdyb3VwLWlkKSkKICAgICAoP2EgLiAoZXNoZWxsLXByZWQtZmls ZS10aW1lID9hICJhY2Nlc3MiIDQpKQogICAgICg/bSAuIChlc2hlbGwtcHJlZC1maWxlLXRp bWUgP20gIm1vZGlmaWNhdGlvbiIgNSkpCiAgICAgKD9jIC4gKGVzaGVsbC1wcmVkLWZpbGUt dGltZSA/YyAiY2hhbmdlIiA2KSkKQEAgLTExMSwxMiArMTExLDcgQEAgZXNoZWxsLXByZWRp Y2F0ZS1hbGlzdAogICA6cmlza3kgdCkKIAogKGRlZmN1c3RvbSBlc2hlbGwtbW9kaWZpZXIt YWxpc3QKLSAgJygoP0UgLiAobGFtYmRhIChsc3QpCi0gICAgICAgICAgICAobWFwY2FyCi0g ICAgICAgICAgICAgKGxhbWJkYSAoc3RyKQotICAgICAgICAgICAgICAgKGVzaGVsbC1zdHJp bmdpZnkKLSAgICAgICAgICAgICAgICAoY2FyIChlc2hlbGwtcGFyc2UtYXJndW1lbnQgc3Ry KSkpKQotICAgICAgICAgICAgIGxzdCkpKQorICAnKCg/RSAuIChsYW1iZGEgKGxzdCkgKG1h cGNhciAjJ2VzaGVsbC1ldmFsLWFyZ3VtZW50IGxzdCkpKQogICAgICg/TCAuIChsYW1iZGEg KGxzdCkgKG1hcGNhciAjJ2Rvd25jYXNlIGxzdCkpKQogICAgICg/VSAuIChsYW1iZGEgKGxz dCkgKG1hcGNhciAjJ3VwY2FzZSBsc3QpKSkKICAgICAoP0MgLiAobGFtYmRhIChsc3QpICht YXBjYXIgIydjYXBpdGFsaXplIGxzdCkpKQpAQCAtMTI5LDEwICsxMjQsMTAgQEAgZXNoZWxs LW1vZGlmaWVyLWFsaXN0CiAgICAgKD9xIC4gKGxhbWJkYSAobHN0KSAobWFwY2FyICMnZXNo ZWxsLWVzY2FwZS1hcmcgbHN0KSkpCiAgICAgKD91IC4gKGxhbWJkYSAobHN0KSAoc2VxLXVu aXEgbHN0KSkpCiAgICAgKD9vIC4gKGxhbWJkYSAobHN0KSAoc29ydCBsc3QgIydzdHJpbmct bGVzc3ApKSkKLSAgICAoP08gLiAobGFtYmRhIChsc3QpIChucmV2ZXJzZSAoc29ydCBsc3Qg IydzdHJpbmctbGVzc3ApKSkpCisgICAgKD9PIC4gKGxhbWJkYSAobHN0KSAoc29ydCBsc3Qg IydzdHJpbmctZ3JlYXRlcnApKSkKICAgICAoP2ogLiAoZXNoZWxsLWpvaW4tbWVtYmVycykp CiAgICAgKD9TIC4gKGVzaGVsbC1zcGxpdC1tZW1iZXJzKSkKLSAgICAoP1IgLiAncmV2ZXJz ZSkKKyAgICAoP1IgLiAjJ3JldmVyc2UpCiAgICAgKD9nIC4gKHByb2duCiAJICAgIChmb3J3 YXJkLWNoYXIpCiAJICAgIChpZiAoZXEgKGNoYXItYmVmb3JlKSA/cykKQEAgLTE0Miw3ICsx MzcsNyBAQCBlc2hlbGwtbW9kaWZpZXItYWxpc3QKICAgIkEgbGlzdCBvZiBtb2RpZmllcnMg dGhhbiBjYW4gYmUgYXBwbGllZCB0byBhbiBhcmd1bWVudCBleHBhbnNpb24uCiBUaGUgZm9y bWF0IG9mIGVhY2ggZW50cnkgaXMKIAotICAoQ0hBUiBFTlRSWVdJU0UtUCBNT0RJRklFUi1G VU5DLVNFWFApIgorICAoQ0hBUiAuIE1PRElGSUVSLUZVTkMtU0VYUCkiCiAgIDp0eXBlICco cmVwZWF0IChjb25zIGNoYXJhY3RlciBzZXhwKSkKICAgOnJpc2t5IHQpCiAKQEAgLTIxNyw4 ICsyMTIsOCBAQCBlc2hlbGwtbW9kaWZpZXItaGVscC1zdHJpbmcKICAgaS9QQVQvICBleGNs dWRlIGFsbCBtZW1iZXJzIG5vdCBtYXRjaGluZyBQQVQKICAgeC9QQVQvICBleGNsdWRlIGFs bCBtZW1iZXJzIG1hdGNoaW5nIFBBVAogCi0gIHMvcGF0L21hdGNoLyAgc3Vic3RpdHV0ZSBQ QVQgd2l0aCBNQVRDSAotICBnL3BhdC9tYXRjaC8gIHN1YnN0aXR1dGUgUEFUIHdpdGggTUFU Q0ggZm9yIGFsbCBvY2N1cnJlbmNlcworICBzL3BhdC9tYXRjaC8gICBzdWJzdGl0dXRlIFBB VCB3aXRoIE1BVENICisgIGdzL3BhdC9tYXRjaC8gIHN1YnN0aXR1dGUgUEFUIHdpdGggTUFU Q0ggZm9yIGFsbCBvY2N1cnJlbmNlcwogCiBFWEFNUExFUzoKICAgKi5jKDpvKSAgc29ydGVk IGxpc3Qgb2YgLmMgZmlsZXMiKQpAQCAtNTY4LDcgKzU2Myw3IEBAIGVzaGVsbC1qb2luLW1l bWJlcnMKICAgKGxldCAoKGRlbGltIChjaGFyLWFmdGVyKSkKIAlzdHIgZW5kKQogICAgIChp ZiAobm90IChtZW1xIGRlbGltICcoPycgPy8pKSkKLQkoc2V0cSBkZWxpbSAiICIpCisJKHNl dHEgc3RyICIgIikKICAgICAgIChmb3J3YXJkLWNoYXIpCiAgICAgICAoc2V0cSBlbmQgKGVz aGVsbC1maW5kLWRlbGltaXRlciBkZWxpbSBkZWxpbSBuaWwgbmlsIHQpCiAJICAgIHN0ciAo YnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkgZW5kKSkKZGlmZiAtLWdp dCBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwgYi9saXNwL2VzaGVsbC9lc2gtY21kLmVsCmlu ZGV4IDhiZTExMzZlMzEuLjQyNjE2ZTcwMzcgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2Vz aC1jbWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbApAQCAtMTAwMiw2ICsxMDAy LDE0IEBAIGVzaGVsbC1pbnZva2UtZGlyZWN0bHkKICAgKGxldCAoKGJhc2UgKGNhZHIgKG50 aCAyIChudGggMiAoY2FkciBjb21tYW5kKSkpKSkpCiAgICAgKGVzaGVsbC0taW52b2tlLWNv bW1hbmQtZGlyZWN0bHkgYmFzZSkpKQogCisoZGVmdW4gZXNoZWxsLWV2YWwtYXJndW1lbnQg KGFyZ3VtZW50KQorICAiRXZhbHVhdGUgYSBzaW5nbGUgRXNoZWxsIEFSR1VNRU5UIGFuZCBy ZXR1cm4gdGhlIHJlc3VsdC4iCisgIChsZXQqICgoZm9ybSAoZXNoZWxsLXdpdGgtdGVtcC1j b21tYW5kIGFyZ3VtZW50CisgICAgICAgICAgICAgICAgIChlc2hlbGwtcGFyc2UtYXJndW1l bnQpKSkKKyAgICAgICAgIChyZXN1bHQgKGVzaGVsbC1kby1ldmFsIGZvcm0gdCkpKQorICAg IChjbC1hc3NlcnQgKGVxIChjYXIgcmVzdWx0KSAncXVvdGUpKQorICAgIChjYWRyIHJlc3Vs dCkpKQorCiAoZGVmdW4gZXNoZWxsLWV2YWwtY29tbWFuZCAoY29tbWFuZCAmb3B0aW9uYWwg aW5wdXQpCiAgICJFdmFsdWF0ZSB0aGUgZ2l2ZW4gQ09NTUFORCBpdGVyYXRpdmVseS4iCiAg IChpZiBlc2hlbGwtY3VycmVudC1jb21tYW5kCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNo ZWxsL2VtLXByZWQtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQtdGVzdHMu ZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjc0NmFhM2RhOAot LS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZW0tcHJlZC10ZXN0cy5lbApA QCAtMCwwICsxLDUyMCBAQAorOzs7IGVtLXByZWQtdGVzdHMuZWwgLS0tIGVtLXByZWQgdGVz dCBzdWl0ZSAgLSotIGxleGljYWwtYmluZGluZzp0IC0qLQorCis7OyBDb3B5cmlnaHQgKEMp IDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworOzsgR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRlc3RzIGZv ciBFc2hlbGwncyBhcmd1bWVudCBwcmVkaWNhdGVzL21vZGlmaWVycy4KKworOzs7IENvZGU6 CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWlyZSAnZXNoLW1vZGUpCisocmVxdWlyZSAnZXNo ZWxsKQorCisocmVxdWlyZSAnZXNoZWxsLXRlc3RzLWhlbHBlcnMKKyAgICAgICAgIChleHBh bmQtZmlsZS1uYW1lICJlc2hlbGwtdGVzdHMtaGVscGVycyIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIChmaWxlLW5hbWUtZGlyZWN0b3J5IChvciBsb2FkLWZpbGUtbmFtZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1 bHQtZGlyZWN0b3J5KSkpKQorCisoZGVmdmFyIGVzaGVsbC10ZXN0LXZhbHVlIG5pbCkKKwor KGRlZnVuIGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAoaW5pdGlhbC12YWx1ZSBwcmVkaWNhdGUp CisgICJFdmFsdWF0ZSBQUkVESUNBVEUgb24gSU5JVElBTC1WQUxVRSwgcmV0dXJuaW5nIHRo ZSByZXN1bHQuCitQUkVESUNBVEUgaXMgYW4gRXNoZWxsIGFyZ3VtZW50IHByZWRpY2F0ZS9t b2RpZmllci4iCisgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSBpbml0aWFsLXZhbHVlKSkK KyAgICAod2l0aC10ZW1wLWVzaGVsbAorICAgICAoZXNoZWxsLWluc2VydC1jb21tYW5kCisg ICAgICAoZm9ybWF0ICJzZXRxIGVzaGVsbC10ZXN0LXZhbHVlICRlc2hlbGwtdGVzdC12YWx1 ZSglcykiIHByZWRpY2F0ZSkpKQorICAgIGVzaGVsbC10ZXN0LXZhbHVlKSkKKworKGRlZnVu IGVzaGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyAoZmlsZSkKKyAgIlBhcnNlIGEg ZmFrZSBGSUxFIG5hbWUgdG8gZGV0ZXJtaW5lIGl0cyBhdHRyaWJ1dGVzLgorRmFrZSBmaWxl IG5hbWVzIGFyZSBmaWxlIG5hbWVzIGJlZ2lubmluZyB3aXRoIFwiL2Zha2UvXCIuICBUaGlz CithbGxvd3MgZGVmaW5pbmcgZmlsZSBuYW1lcyBmb3IgZmFrZSBmaWxlcyB3aXRoIHZhcmlv dXMgcHJvcGVydGllcwordG8gcXVlcnkgdmlhIHByZWRpY2F0ZXMuICBBdHRyaWJ1dGVzIGFy ZSB3cml0dGVuIGFzIGEKK2NvbW1hLXNlcGFyYXRlIGxpc3Qgb2YgQVRUUj1WQUxVRSBwYWly cyBhcyB0aGUgZmlsZSdzIGJhc2UgbmFtZSwKK2xpa2U6CisKKyAgL2Zha2UvdHlwZT0tLG1v ZGVzPTA3NTUuZWwKKworVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSByZWNvZ25pemVk OgorCisgICogXCJ0eXBlXCI6IEEgc2luZ2xlIGNoYXJhY3RlciBkZXNjcmliaW5nIHRoZSBm aWxlIHR5cGU7CisgICAgYWNjZXB0cyB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGZpcnN0IGNo YXJhY3RlciBvZiB0aGUgZmlsZQorICAgIG1vZGVzIGluIGBscyAtbCcuCisgICogXCJtb2Rl c1wiOiBUaGUgZmlsZSdzIHBlcm1pc3Npb24gbW9kZXMsIGluIG9jdGFsLgorICAqIFwibGlu a3NcIjogVGhlIG51bWJlciBvZiBsaW5rcyB0byB0aGlzIGZpbGUuCisgICogXCJ1aWRcIjog VGhlIFVJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgorICAqIFwiZ2lkXCI6IFRoZSBVSUQgb2Yg dGhlIGZpbGUncyBncm91cC4KKyAgKiBcImF0aW1lXCI6IFRoZSB0aW1lIHRoZSBmaWxlIHdh cyBsYXN0IGFjY2Vzc2VkLCBpbiBzZWNvbmRzCisgICAgc2luY2UgdGhlIFVOSVggZXBvY2gu CisgICogXCJtdGltZVwiOiBBcyBcImF0aW1lXCIsIGJ1dCBmb3IgbW9kaWZpY2F0aW9uIHRp bWUuCisgICogXCJjdGltZVwiOiBBcyBcImF0aW1lXCIsIGJ1dCBmb3IgaW5vZGUgY2hhbmdl IHRpbWUuCisgICogXCJzaXplXCI6IFRoZSBmaWxlJ3Mgc2l6ZSBpbiBieXRlcy4iCisgICht YXBjYXIgKGxhbWJkYSAoaSkKKyAgICAgICAgICAgIChwY2FzZSAoc3BsaXQtc3RyaW5nIGkg Ij0iKQorICAgICAgICAgICAgICAoYCgibW9kZXMiICxtb2RlcykKKyAgICAgICAgICAgICAg IChjb25zICdtb2RlcyAoc3RyaW5nLXRvLW51bWJlciBtb2RlcyA4KSkpCisgICAgICAgICAg ICAgIChgKCwoYW5kIChvciAibGlua3MiICJ1aWQiICJnaWQiICJzaXplIikga2V5KSAsdmFs dWUpCisgICAgICAgICAgICAgICAoY29ucyAoaW50ZXJuIGtleSkgKHN0cmluZy10by1udW1i ZXIgdmFsdWUpKSkKKyAgICAgICAgICAgICAgKGAoLChhbmQgKG9yICJhdGltZSIgIm10aW1l IiAiY3RpbWUiKSBrZXkpICx2YWx1ZSkKKyAgICAgICAgICAgICAgIChjb25zIChpbnRlcm4g a2V5KSAodGltZS1jb252ZXJ0IChzdHJpbmctdG8tbnVtYmVyIHZhbHVlKSkpKQorICAgICAg ICAgICAgICAoYCgsa2V5ICx2YWx1ZSkKKyAgICAgICAgICAgICAgIChjb25zIChpbnRlcm4g a2V5KSB2YWx1ZSkpCisgICAgICAgICAgICAgIChfIChlcnJvciAiaW52YWxpZCBmb3JtYXQg JVMiIGkpKSkpCisgICAgICAgICAgKHNwbGl0LXN0cmluZyAoZmlsZS1uYW1lLWJhc2UgZmls ZSkgIiwiKSkpCisKKyhkZWZtYWNybyBlc2hlbGwtcGFydGlhbC1sZXQtZnVuYyAob3ZlcnJp ZGVzICZyZXN0IGJvZHkpCisgICJUZW1wb3JhcmlseSBiaW5kIHRvIEZVTkNUSU9OLU5BTUVz IGFuZCBldmFsdWF0ZSBCT0RZLgorVGhpcyBpcyByb3VnaGx5IGFuYWxvZ291cyB0byBhZHZp c2luZyBmdW5jdGlvbnMsIGJ1dCBvbmx5IGRvZXMgc28KK3doaWxlIEJPRFkgaXMgZXhlY3V0 aW5nLCBhbmQgb25seSBjYWxscyBORVctRlVOQ1RJT04gaWYgaXRzIGZpcnN0Cithcmd1bWVu dCBpcyBhIHN0cmluZyBiZWdpbm5pbmcgd2l0aCBcIi9mYWtlL1wiLgorCitUaGlzIGFsbG93 cyBzZWxlY3RpdmVseSBvdmVycmlkaW5nIGZ1bmN0aW9ucyB0byB0ZXN0IGZpbGUKK3Byb3Bl cnRpZXMgd2l0aCBmYWtlIGZpbGVzIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGZ1bmN0aW9ucycK K2JlaGF2aW9yIGZvciByZWFsIGZpbGVzLgorCitcKGZuICgoRlVOQ1RJT04tTkFNRSBORVct RlVOQ1RJT04pIC4uLikgQk9EWS4uLikiCisgIChkZWNsYXJlIChpbmRlbnQgMSkpCisgIGAo Y2wtbGV0ZgorICAgICAgICwobWFwY2FyCisgICAgICAgICAobGFtYmRhIChvdmVycmlkZSkK KyAgICAgICAgICAgKGxldCAoKG9yaWctZnVuY3Rpb24gKHN5bWJvbC1mdW5jdGlvbiAoY2Fy IG92ZXJyaWRlKSkpKQorICAgICAgICAgICAgIGAoKHN5bWJvbC1mdW5jdGlvbiAjJywoY2Fy IG92ZXJyaWRlKSkKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGZpbGUgJnJlc3QgcmVzdCkK KyAgICAgICAgICAgICAgICAgKGFwcGx5CisgICAgICAgICAgICAgICAgICAoaWYgKGFuZCAo c3RyaW5ncCBmaWxlKSAoc3RyaW5nLXByZWZpeC1wICIvZmFrZS8iIGZpbGUpKQorICAgICAg ICAgICAgICAgICAgICAgICwoY2FkciBvdmVycmlkZSkKKyAgICAgICAgICAgICAgICAgICAg LG9yaWctZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICBmaWxlIHJlc3QpKSkpKQorICAg ICAgICAgb3ZlcnJpZGVzKQorICAgICAsQGJvZHkpKQorCisoZGVmbWFjcm8gZXNoZWxsLXdp dGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZSAoJnJlc3QgYm9keSkKKyAgIlRlbXBvcmFy aWx5IG92ZXJyaWRlIGZpbGUgYXR0cmlidXRlIGZ1bmN0aW9ucyBhbmQgZXZhbHVhdGUgQk9E WS4iCisgIChkZWNsYXJlIChpbmRlbnQgMCkpCisgIGAoZXNoZWxsLXBhcnRpYWwtbGV0LWZ1 bmMKKyAgICAgICAoKGZpbGUtYXR0cmlidXRlcworICAgICAgICAgKGxhbWJkYSAoZmlsZSAm b3B0aW9uYWwgX2lkLWZvcm1hdCkKKyAgICAgICAgICAgKGxldCAoKGF0dHJzIChlc2hlbGwt cGFyc2UtZmlsZS1uYW1lLWF0dHJpYnV0ZXMgZmlsZSkpKQorICAgICAgICAgICAgIChsaXN0 IChlcXVhbCAoYWxpc3QtZ2V0ICd0eXBlIGF0dHJzKSAiZCIpCisgICAgICAgICAgICAgICAg ICAgKG9yIChhbGlzdC1nZXQgJ2xpbmtzIGF0dHJzKSAxKQorICAgICAgICAgICAgICAgICAg IChvciAoYWxpc3QtZ2V0ICd1aWQgYXR0cnMpIDApCisgICAgICAgICAgICAgICAgICAgKG9y IChhbGlzdC1nZXQgJ2dpZCBhdHRycykgMCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnYXRpbWUgYXR0cnMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnbXRpbWUgYXR0cnMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnY3RpbWUgYXR0cnMpIG5pbCkKKyAgICAgICAgICAgICAgICAgICAob3IgKGFs aXN0LWdldCAnc2l6ZSBhdHRycykgMCkKKyAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIl cy0tLS0tLS0tLSIgKG9yIChhbGlzdC1nZXQgJ3R5cGUgYXR0cnMpICItIikpCisgICAgICAg ICAgICAgICAgICAgbmlsIDAgMCkpKSkKKyAgICAgICAgKGZpbGUtbW9kZXMKKyAgICAgICAg IChsYW1iZGEgKGZpbGUgX25vZm9sbG93KQorICAgICAgICAgICAobGV0ICgoYXR0cnMgKGVz aGVsbC1wYXJzZS1maWxlLW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAgICAgICAg KG9yIChhbGlzdC1nZXQgJ21vZGVzIGF0dHJzKSAwKSkpKQorICAgICAgICAoZmlsZS1leGlz dHMtcCAjJ2Fsd2F5cykKKyAgICAgICAgKGZpbGUtcmVndWxhci1wCisgICAgICAgICAobGFt YmRhIChmaWxlKQorICAgICAgICAgICAobGV0ICgoYXR0cnMgKGVzaGVsbC1wYXJzZS1maWxl LW5hbWUtYXR0cmlidXRlcyBmaWxlKSkpCisgICAgICAgICAgICAgKG1lbWJlciAob3IgKGFs aXN0LWdldCAndHlwZSBhdHRycykgIi0iKSAnKCItIiAibCIpKSkpKQorICAgICAgICAoZmls ZS1zeW1saW5rLXAKKyAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAgICAgICAgIChsZXQg KChhdHRycyAoZXNoZWxsLXBhcnNlLWZpbGUtbmFtZS1hdHRyaWJ1dGVzIGZpbGUpKSkKKyAg ICAgICAgICAgICAoZXF1YWwgKGFsaXN0LWdldCAndHlwZSBhdHRycykgImwiKSkpKQorICAg ICAgICAoZmlsZS1leGVjdXRhYmxlLXAKKyAgICAgICAgIChsYW1iZGEgKGZpbGUpCisgICAg ICAgICAgIChsZXQgKChhdHRycyAoZXNoZWxsLXBhcnNlLWZpbGUtbmFtZS1hdHRyaWJ1dGVz IGZpbGUpKSkKKyAgICAgICAgICAgICA7OyBGb3Igc2ltcGxpY2l0eSwganVzdCByZXR1cm4g d2hldGhlciB0aGUgZmlsZSBpcworICAgICAgICAgICAgIDs7IHdvcmxkLWV4ZWN1dGFibGUu CisgICAgICAgICAgICAgKD0gKGxvZ2FuZCAob3IgKGFsaXN0LWdldCAnbW9kZXMgYXR0cnMp IDApIDEpIDEpKSkpKQorICAgICAsQGJvZHkpKQorCis7OzsgVGVzdHM6CisKKwwKKzs7IEFy Z3VtZW50IHByZWRpY2F0ZXMKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNh dGUtZmlsZS10eXBlcyAoKQorICAiVGVzdCBmaWxlIHR5cGUgcHJlZGljYXRlcy4iCisgIChl c2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVz IChtYXBjYXIgKGxhbWJkYSAoaSkgKGZvcm1hdCAiL2Zha2UvdHlwZT0lcyIgaSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgJygiYiIgImMiICJkLyIgInAiICJzIiAibCIgIi0iKSkp KQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAi JSIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS90eXBlPWIiICIvZmFrZS90eXBl PWMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZp bGVzICIlYiIpICcoIi9mYWtlL3R5cGU9YiIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIiVjIikgJygiL2Zha2UvdHlwZT1jIikpKQor ICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiLyIp ICAnKCIvZmFrZS90eXBlPWQvIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1l dmFsLXByZWRpY2F0ZSBmaWxlcyAiLiIpICAnKCIvZmFrZS90eXBlPS0iKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJwIikgICcoIi9m YWtlL3R5cGU9cCIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIj0iKSAgJygiL2Zha2UvdHlwZT1zIikpKQorICAgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiQCIpICAnKCIvZmFrZS90eXBl PWwiKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWV4ZWN1 dGFibGUgKCkKKyAgIlRlc3QgdGhhdCBcIipcIiBtYXRjaGVzIG9ubHkgcmVndWxhciwgbm9u LXN5bWxpbmsgZXhlY3V0YWJsZSBmaWxlcy4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJp YnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL21vZGVzPTA3Nzci ICIvZmFrZS9tb2Rlcz0wNjY2IgorICAgICAgICAgICAgICAgICAgICIvZmFrZS90eXBlPWQs bW9kZXM9MDc3NyIgIi9mYWtlL3R5cGU9bCxtb2Rlcz0wNzc3IikpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiKiIpCisgICAgICAgICAg ICAgICAgICAgICAnKCIvZmFrZS9tb2Rlcz0wNzc3IikpKSkpKQorCisoZGVmbWFjcm8gZW0t cHJlZC10ZXN0LS1maWxlLW1vZGVzLWRlZnRlc3QgKG5hbWUgbW9kZS10ZW1wbGF0ZSBwcmVk aWNhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJm9wdGlvbmFsIGRvY3N0cmluZykKKyAgIkRlZmluZSBOQU1FIGFzIGEgZmlsZS1tb2Rl IHRlc3QuCitNT0RFLVRFTVBMQVRFIGlzIGEgZm9ybWF0IHN0cmluZyB0byBjb252ZXJ0IGFu IGludGVnZXIgZnJvbSAwIHRvCis3IHRvIGFuIG9jdGFsIGZpbGUgbW9kZS4gIFBSRURJQ0FU RVMgaXMgYSBsaXN0IG9mIHN0cmluZ3MgZm9yIHRoZQorcmVhZCwgd3JpdGUsIGFuZCBleGVj dXRlIHByZWRpY2F0ZXMgdG8gcXVlcnkgdGhlIGZpbGUncyBtb2Rlcy4iCisgIChkZWNsYXJl IChpbmRlbnQgNCkgKGRvYy1zdHJpbmcgNCkpCisgIGAoZXJ0LWRlZnRlc3QgLG5hbWUgKCkK KyAgICAgLGRvY3N0cmluZworICAgICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZy b20tbmFtZQorICAgICAgIChsZXQgKChmaWxlLXRlbXBsYXRlIChjb25jYXQgIi9mYWtlL21v ZGVzPSIgLG1vZGUtdGVtcGxhdGUpKSkKKyAgICAgICAgIChjbC1mbGV0ICgobWFrZS1maWxl cyAocGVybXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAobGFt YmRhIChpKSAoZm9ybWF0IGZpbGUtdGVtcGxhdGUgaSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZXJtcykpKQorICAgICAgICAgICAocGNhc2UtbGV0ICgo ZmlsZXMgKG1ha2UtZmlsZXMgKG51bWJlci1zZXF1ZW5jZSAwIDcpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgKGAoLHJlYWQgLHdyaXRlICxleGVjKSAscHJlZGljYXRlcykpCisgICAg ICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyBy ZWFkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoNCA1IDYg NykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlIGZpbGVzIChjb25jYXQgIl4iIHJlYWQpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChtYWtlLWZpbGVzICcoMCAxIDIgMykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIHdyaXRlKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMiAzIDYgNykpKSkKKyAgICAgICAgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25jYXQg Il4iIHdyaXRlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1maWxlcyAn KDAgMSA0IDUpKSkpCisgICAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyBleGVjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICht YWtlLWZpbGVzICcoMSAzIDUgNykpKSkKKyAgICAgICAgICAgICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzIChjb25jYXQgIl4iIGV4ZWMpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChtYWtlLWZpbGVzICcoMCAyIDQgNikpKSkpKSkpKSkK KworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVk aWNhdGUtZmlsZS1tb2Rlcy1vd25lcgorICAgICIwJW8wMCIgJygiciIgInciICJ4IikKKyAg ICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgb3duZXIu IikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9w cmVkaWNhdGUtZmlsZS1tb2Rlcy1ncm91cAorICAgICIwMCVvMCIgJygiQSIgIkkiICJFIikK KyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUgZ3Jv dXAuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQtdGVz dC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy13b3JsZAorICAgICIwMDAlbyIgJygiUiIgIlciICJY IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBmaWxlIHBlcm1pc3Npb25zIGZvciB0aGUg d29ybGQuIikKKworKGVtLXByZWQtdGVzdC0tZmlsZS1tb2Rlcy1kZWZ0ZXN0IGVtLXByZWQt dGVzdC9wcmVkaWNhdGUtZmlsZS1tb2Rlcy1mbGFncworICAgICIlbzAwMCIgJygicyIgIlMi ICJ0IikKKyAgICAiVGVzdCBwcmVkaWNhdGVzIGZvciBcInNcIiAoc2V0dWlkKSwgXCJTXCIg KHNldGdpZCksIGFuZCBcInRcIiAoc3RpY2t5KS4iKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJl ZC10ZXN0L3ByZWRpY2F0ZS1lZmZlY3RpdmUtdWlkICgpCisgICJUZXN0IHRoYXQgXCJVXCIg bWF0Y2hlcyBmaWxlcyBvd25lZCBieSB0aGUgZWZmZWN0aXZlIFVJRC4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGNsLWxldGYgKCgoc3ltYm9s LWZ1bmN0aW9uICd1c2VyLXVpZCkgKGxhbWJkYSAoKSAxKSkpCisgICAgICAobGV0ICgoZmls ZXMgJygiL2Zha2UvdWlkPTEiICIvZmFrZS91aWQ9MiIpKSkKKyAgICAgICAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiVSIpCisgICAgICAgICAgICAg ICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9wcmVkaWNhdGUtbGlua3MgKCkKKyAgIlRlc3QgdGhhdCBcImxcIiBmaWx0ZXJz IGJ5IG51bWJlciBvZiBsaW5rcy4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMt ZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL2xpbmtzPTEiICIvZmFrZS9s aW5rcz0yIiAiL2Zha2UvbGlua3M9MyIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgImwxIikKKyAgICAgICAgICAgICAgICAgICAgICco Ii9mYWtlL2xpbmtzPTEiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwt cHJlZGljYXRlIGZpbGVzICJsKzEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uv bGlua3M9MiIgIi9mYWtlL2xpbmtzPTMiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNo ZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJsLTMiKQorICAgICAgICAgICAgICAgICAgICAg JygiL2Zha2UvbGlua3M9MSIgIi9mYWtlL2xpbmtzPTIiKSkpKSkpCisKKyhlcnQtZGVmdGVz dCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLXVpZCAoKQorICAiVGVzdCB0aGF0IFwidVwiIGZp bHRlcnMgYnkgVUlEL3VzZXIgbmFtZS4iCisgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0 ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9mYWtlL3VpZD0xIiAiL2Zha2Uv dWlkPTIiKSkKKyAgICAgICAgICAodXNlci1uYW1lcyAnKCJyb290IiAib25lIiAidHdvIikp KQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAi dTEiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdWlkPTEiKSkpCisgICAgICAo Y2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2VzaGVsbC11c2VyLWlkKQorICAgICAgICAg ICAgICAgICAobGFtYmRhIChuYW1lKSAoc2VxLXBvc2l0aW9uIHVzZXItbmFtZXMgbmFtZSkp KSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAidSdvbmUnIikKKyAgICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2UvdWlkPTEiKSkp CisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMg InV7b25lfSIpCisgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3VpZD0xIikpKSkp KSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtZ2lkICgpCisgICJU ZXN0IHRoYXQgXCJnXCIgZmlsdGVycyBieSBHSUQvZ3JvdXAgbmFtZS4iCisgIChlc2hlbGwt d2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCisgICAgKGxldCAoKGZpbGVzICcoIi9m YWtlL2dpZD0xIiAiL2Zha2UvZ2lkPTIiKSkKKyAgICAgICAgICAoZ3JvdXAtbmFtZXMgJygi cm9vdCIgIm9uZSIgInR3byIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgZmlsZXMgImcxIikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtl L2dpZD0xIikpKQorICAgICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdlc2hlbGwt Z3JvdXAtaWQpCisgICAgICAgICAgICAgICAgIChsYW1iZGEgKG5hbWUpIChzZXEtcG9zaXRp b24gZ3JvdXAtbmFtZXMgbmFtZSkpKSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiZydvbmUnIikKKyAgICAgICAgICAgICAgICAgICAg ICAgJygiL2Zha2UvZ2lkPTEiKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUgZmlsZXMgImd7b25lfSIpCisgICAgICAgICAgICAgICAgICAgICAg ICcoIi9mYWtlL2dpZD0xIikpKSkpKSkKKworKGRlZm1hY3JvIGVtLXByZWQtdGVzdC0tdGlt ZS1kZWZ0ZXN0IChuYW1lIGZpbGUtYXR0cmlidXRlIHByZWRpY2F0ZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcHRpb25hbCBkb2NzdHJpbmcpCisg ICJEZWZpbmUgTkFNRSBhcyBhIGZpbGUtdGltZSB0ZXN0LgorRklMRS1BVFRSSUJVVEUgaXMg dGhlIGZpbGUncyBhdHRyaWJ1dGUgdG8gc2V0IChlLmcuIFwiYXRpbWVcIikuCitQUkVESUNB VEUgaXMgdGhlIHByZWRpY2F0ZSB1c2VkIHRvIHF1ZXJ5IHRoYXQgYXR0cmlidXRlLiIKKyAg KGRlY2xhcmUgKGluZGVudCA0KSAoZG9jLXN0cmluZyA0KSkKKyAgYChlcnQtZGVmdGVzdCAs bmFtZSAoKQorICAgICAsZG9jc3RyaW5nCisgICAgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJp YnV0ZXMtZnJvbS1uYW1lCisgICAgICAgKGNsLWZsZXQgKChtYWtlLWZpbGUgKHRpbWUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiL2Zha2UvJXM9JWQiICxmaWxl LWF0dHJpYnV0ZSB0aW1lKSkpCisgICAgICAgICAobGV0KiAoKG5vdyAodGltZS1jb252ZXJ0 IG5pbCAnaW50ZWdlcikpCisgICAgICAgICAgICAgICAgKHllc3RlcmRheSAoLSBub3cgODY0 MDApKQorICAgICAgICAgICAgICAgIChmaWxlcyAobWFwY2FyICMnbWFrZS1maWxlIChsaXN0 IG5vdyB5ZXN0ZXJkYXkpKSkpCisgICAgICAgICAgIDs7IFRlc3QgY29tcGFyaXNvbiBhZ2Fp bnN0IGEgbnVtYmVyIG9mIGRheXMuCisgICAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzIChj b25jYXQgLHByZWRpY2F0ZSAiLTEiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h cGNhciAjJ21ha2UtZmlsZSAobGlzdCBub3cpKSkpCisgICAgICAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiKzEiKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hcGNhciAjJ21ha2UtZmlsZSAobGlzdCB5ZXN0ZXJkYXkpKSkpCisgICAgICAg ICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiKzIiKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgbmlsKSkKKyAgICAgICAgICAgOzsgVGVzdCBjb21wYXJp c29uIGFnYWluc3QgYSBudW1iZXIgb2YgaG91cnMuCisgICAgICAgICAgIChzaG91bGQgKGVx dWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGVzIChjb25jYXQgLHByZWRpY2F0ZSAiaC0xIikpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXBjYXIgIydtYWtlLWZpbGUgKGxpc3Qgbm93KSkpKQorICAgICAgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWxlcyAoY29uY2F0ICxwcmVkaWNhdGUgImgrMSIpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAobWFwY2FyICMnbWFrZS1maWxlIChsaXN0IHllc3RlcmRheSkp KSkKKyAgICAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMgKGNvbmNhdCAscHJlZGljYXRlICIr NDgiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsKSkKKyAgICAgICAgICAgOzsg VGVzdCBjb21wYXJpc29uIGFnYWluc3QgYW5vdGhlciBmaWxlLgorICAgICAgICAgICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBmaWxlcyAoZm9ybWF0ICIlcy0nJXMnIiAscHJlZGljYXRlIChtYWtlLWZpbGUg bm93KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkpCisgICAgICAgICAgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpbGVzIChmb3JtYXQgIiVzKyclcyciICxwcmVkaWNhdGUgKG1ha2UtZmls ZSBub3cpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ21ha2UtZmls ZSAobGlzdCB5ZXN0ZXJkYXkpKSkpKSkpKSkKKworKGVtLXByZWQtdGVzdC0tdGltZS1kZWZ0 ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtYWNjZXNzLXRpbWUKKyAgICAiYXRpbWUiICJh IgorICAgICJUZXN0IHRoYXQgXCJhXCIgZmlsdGVycyBieSBhY2Nlc3MgdGltZS4iKQorCiso ZW0tcHJlZC10ZXN0LS10aW1lLWRlZnRlc3QgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1tb2Rp ZmljYXRpb24tdGltZQorICAgICJtdGltZSIgIm0iCisgICAgIlRlc3QgdGhhdCBcIm1cIiBm aWx0ZXJzIGJ5IGNoYW5nZSB0aW1lLiIpCisKKyhlbS1wcmVkLXRlc3QtLXRpbWUtZGVmdGVz dCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWNoYW5nZS10aW1lCisgICAgImN0aW1lIiAiYyIK KyAgICAiVGVzdCB0aGF0IFwiY1wiIGZpbHRlcnMgYnkgY2hhbmdlIHRpbWUuIikKKworKGVy dC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtc2l6ZSAoKQorICAiVGVzdCB0aGF0 IFwiTFwiIGZpbHRlcnMgYnkgZmlsZSBzaXplLiIKKyAgKGVzaGVsbC13aXRoLWZpbGUtYXR0 cmlidXRlcy1mcm9tLW5hbWUKKyAgICAobGV0ICgoZmlsZXMgJygiL2Zha2Uvc2l6ZT0wIgor ICAgICAgICAgICAgICAgICAgIDs7IDEgYW5kIDIgS2lCLgorICAgICAgICAgICAgICAgICAg ICIvZmFrZS9zaXplPTEwMjQiICIvZmFrZS9zaXplPTIwNDgiCisgICAgICAgICAgICAgICAg ICAgOzsgMSBhbmQgMiBNaUIuCisgICAgICAgICAgICAgICAgICAgIi9mYWtlL3NpemU9MTA0 ODU3NiIgIi9mYWtlL3NpemU9MjA5NzE1MiIpKSkKKyAgICAgIDs7IFNpemUgaW4gYnl0ZXMu CisgICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJM MjA0OCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTIwNDgiKSkpCisg ICAgICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMKzIw NDgiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zh a2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiTC0yMDQ4IikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9m YWtlL3NpemU9MCIgIi9mYWtlL3NpemU9MTAyNCIpKSkKKyAgICAgIDs7IFNpemUgaW4gYmxv Y2tzLgorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxl cyAiTHA0IikKKyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MjA0OCIpKSkK KyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxw KzQiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0xMDQ4NTc2IiAiL2Zh a2Uvc2l6ZT0yMDk3MTUyIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSBmaWxlcyAiTHAtNCIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFr ZS9zaXplPTAiICIvZmFrZS9zaXplPTEwMjQiKSkpCisgICAgICA7OyBTaXplIGluIEtpQi4K KyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgZmlsZXMgIkxr MiIpCisgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTIwNDgiKSkpCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMaysyIikK KyAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MTA0ODU3NiIgIi9mYWtlL3Np emU9MjA5NzE1MiIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIkxrLTIiKQorICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6 ZT0wIiAiL2Zha2Uvc2l6ZT0xMDI0IikpKQorICAgICAgOzsgU2l6ZSBpbiBNaUIuCisgICAg ICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMTTEiKQor ICAgICAgICAgICAgICAgICAgICAgJygiL2Zha2Uvc2l6ZT0xMDQ4NTc2IikpKQorICAgICAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSBmaWxlcyAiTE0rMSIpCisg ICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS9zaXplPTIwOTcxNTIiKSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlIGZpbGVzICJMTS0xIikKKyAg ICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL3NpemU9MCIgIi9mYWtlL3NpemU9MTAyNCIg Ii9mYWtlL3NpemU9MjA0OCIpKSkpKSkKKworDAorOzsgQXJndW1lbnQgbW9kaWZpZXJzCisK KyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9kaWZpZXItZXZhbCAoKQorICAiVGVzdCB0 aGF0IFwiOkVcIiByZS1ldmFsdWF0ZXMgdGhlIHZhbHVlLiIKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiJHtlY2hvIGhpfSIgIjpFIikgImhpIikpCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAg ICcoIiR7ZWNobyBoaX0iICIkKHVwY2FzZSBcImJ5ZVwiKSIpICI6RSIpCisgICAgICAgICAg ICAgICAgICcoImhpIiAiQllFIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9t b2RpZmllci1kb3duY2FzZSAoKQorICAiVGVzdCB0aGF0IFwiOkxcIiBkb3duY2FzZXMgdmFs dWVzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiRk9PIiAi OkwiKSAiZm9vIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUg JygiRk9PIiAiQkFSIikgIjpMIikKKyAgICAgICAgICAgICAgICAgJygiZm9vIiAiYmFyIikp KSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci11cGNhc2UgKCkKKyAg IlRlc3QgdGhhdCBcIjpVXCIgdXBjYXNlcyB2YWx1ZXMuIgorICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6VSIpICJGT08iKSkKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiKSAiOlUiKQorICAg ICAgICAgICAgICAgICAnKCJGT08iICJCQVIiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJl ZC10ZXN0L21vZGlmaWVyLWNhcGl0YWxpemUgKCkKKyAgIlRlc3QgdGhhdCBcIjpDXCIgY2Fw aXRhbGl6ZXMgdmFsdWVzLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSAiZm9vIGJhciIgIjpDIikgIkZvbyBCYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVz aGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28gYmFyIiAiYmF6IikgIjpDIikKKyAgICAgICAg ICAgICAgICAgJygiRm9vIEJhciIgIkJheiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVk LXRlc3QvbW9kaWZpZXItZGlybmFtZSAoKQorICAiVGVzdCB0aGF0IFwiOmhcIiByZXR1cm5z IHRoZSBkaXJuYW1lLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAiL3BhdGgvdG8vZmlsZS5lbCIgIjpoIikgIi9wYXRoL3RvLyIpKQorICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlCisgICAgICAgICAgICAgICAgICAnKCIvcGF0 aC90by9maWxlLmVsIiAiL290aGVyL3BhdGgvIikgIjpoIikKKyAgICAgICAgICAgICAgICAg JygiL3BhdGgvdG8vIiAiL290aGVyL3BhdGgvIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9tb2RpZmllci1iYXNlbmFtZSAoKQorICAiVGVzdCB0aGF0IFwiOnRcIiByZXR1 cm5zIHRoZSBiYXNlbmFtZS4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgIi9wYXRoL3RvL2ZpbGUuZWwiICI6dCIpICJmaWxlLmVsIikpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICcoIi9w YXRoL3RvL2ZpbGUuZWwiICIvb3RoZXIvcGF0aC8iKSAiOnQiKQorICAgICAgICAgICAgICAg ICAnKCJmaWxlLmVsIiAiIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2Rp Zmllci1leHRlbnNpb24gKCkKKyAgIlRlc3QgdGhhdCBcIjplXCIgcmV0dXJucyB0aGUgZXh0 ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiL3Bh dGgvdG8vZmlsZS5lbCIgIjplIikgImVsIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUKKyAgICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUuZWwi ICIvb3RoZXIvcGF0aC8iKSAiOmUiKQorICAgICAgICAgICAgICAgICAnKCJlbCIgbmlsKSkp KQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNhbnMtZXh0ZW5zaW9u ICgpCisgICJUZXN0IHRoYXQgXCI6clwiIHJldHVybnMgdGhlIGZpbGUgbmFtZSBzYW4gZXh0 ZW5zaW9uLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiL3Bh dGgvdG8vZmlsZS5lbCIgIjpyIikKKyAgICAgICAgICAgICAgICAgIi9wYXRoL3RvL2ZpbGUi KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZQorICAgICAgICAg ICAgICAgICAgJygiL3BhdGgvdG8vZmlsZS5lbCIgIi9vdGhlci9wYXRoLyIpICI6ciIpCisg ICAgICAgICAgICAgICAgICcoIi9wYXRoL3RvL2ZpbGUiICIvb3RoZXIvcGF0aC8iKSkpKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXF1b3RlICgpCisgICJUZXN0 IHRoYXQgXCI6cVwiIHF1b3RlcyBhcmd1bWVudHMuIgorICAoc2hvdWxkIChlcXVhbC1pbmNs dWRpbmctcHJvcGVydGllcworICAgICAgICAgICAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICco ImZvbyIgImJhciIpICI6cSIpCisgICAgICAgICAgIChsaXN0IChlc2hlbGwtZXNjYXBlLWFy ZyAiZm9vIikgKGVzaGVsbC1lc2NhcGUtYXJnICJiYXIiKSkpKSkKKworKGVydC1kZWZ0ZXN0 IGVtLXByZWQtdGVzdC9tb2RpZmllci1zdWJzdGl0dXRlICgpCisgICJUZXN0IHRoYXQgXCI6 cy9QQVQvUkVQL1wiIHJlcGxhY2VzIFBBVCB3aXRoIFJFUCBvbmNlLiIKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOnMvYS8qLyIpICJiKnIiKSkK KyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOnN8YXwq fCIpICJiKnIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAn KCJmb28iICJiYXIiICJiYXoiKSAiOnMvW2FvXS8qLyIpCisgICAgICAgICAgICAgICAgICAn KCJmKm8iICJiKnIiICJiKnoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1w cmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpzfFthb118KnwiKQorICAgICAgICAg ICAgICAgICAgJygiZipvIiAiYipyIiAiYip6IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9tb2RpZmllci1nbG9iYWwtc3Vic3RpdHV0ZSAoKQorICAiVGVzdCB0aGF0IFwi OnMvUEFUL1JFUC9cIiByZXBsYWNlcyBQQVQgd2l0aCBSRVAgZm9yIGFsbCBvY2N1cnJlbmNl cy4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpn cy9hLyovIikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlICJmb28iICI6Z3N8YXwqfCIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVs bC1ldmFsLXByZWRpY2F0ZSAiYmFyIiAiOmdzL2EvKi8iKSAiYipyIikpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImJhciIgIjpnc3xhfCp8IikgImIqciIp KQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJh ciIgImJheiIpICI6Z3MvW2FlaW91XS8qLyIpCisgICAgICAgICAgICAgICAgICcoImYqKiIg ImIqciIgImIqeiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOmdzfFthZWlvdV18KnwiKQorICAgICAgICAgICAg ICAgICAnKCJmKioiICJiKnIiICJiKnoiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10 ZXN0L21vZGlmaWVyLWluY2x1ZGUgKCkKKyAgIlRlc3QgdGhhdCBcIjppL1BBVC9cIiBmaWx0 ZXJzIGVsZW1lbnRzIHRvIGluY2x1ZGUgb25seSBvbmVzIG1hdGNoaW5nIFBBVC4iCisgIChz aG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjppL2EvIikgbmls KSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOml8 YXwiKSBuaWwpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJi YXIiICI6aS9hLyIpICJiYXIiKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiYmFyIiAiOml8YXwiKSAiYmFyIikpCisgIChzaG91bGQgKGVxdWFsIChlc2hl bGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjppL2EvIikKKyAgICAg ICAgICAgICAgICAgJygiYmFyIiAiYmF6IikpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6aXxhfCIpCisgICAgICAg ICAgICAgICAgICcoImJhciIgImJheiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRl c3QvbW9kaWZpZXItZXhjbHVkZSAoKQorICAiVGVzdCB0aGF0IFwiOngvUEFUL1wiIGZpbHRl cnMgZWxlbWVudHMgdG8gZXhjbHVkZSBhbnkgbWF0Y2hpbmcgUEFULiIKKyAgKHNob3VsZCAo ZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOngvYS8iKSAiZm9vIikpCisg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjp4fGF8Iikg ImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJiYXIi ICI6eC9hLyIpIG5pbCkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUgImJhciIgIjp4fGF8IikgbmlsKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOngvYS8iKQorICAgICAgICAgICAg ICAgICAnKCJmb28iKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNh dGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjp4fGF8IikKKyAgICAgICAgICAgICAgICAgJygi Zm9vIikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zcGxpdCAo KQorICAiVGVzdCB0aGF0IFwiOlNcIiBhbmQgXCI6Uy9QQVQvXCIgc3BsaXQgZWxlbWVudHMg Ynkgc3BhY2VzIChvciBQQVQpLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAiZm9vIGJhciBiYXoiICI6UyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIg ImJhciIgImJheiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAnKCJmb28gYmFyIiAiYmF6IikgIjpTIikKKyAgICAgICAgICAgICAgICAgJygoImZvbyIg ImJhciIpICgiYmF6IikpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSAiZm9vLWJhci1iYXoiICI6Uy8tLyIpCisgICAgICAgICAgICAgICAgICcoImZvbyIg ImJhciIgImJheiIpKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0 ZSAnKCJmb28tYmFyIiAiYmF6IikgIjpTLy0vIikKKyAgICAgICAgICAgICAgICAgJygoImZv byIgImJhciIpICgiYmF6IikpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvbW9k aWZpZXItam9pbiAoKQorICAiVGVzdCB0aGF0IFwiOmpcIiBhbmQgXCI6ai9ERUxJTS9cIiBq b2luIGVsZW1lbnRzIGJ5IHNwYWNlcyAob3IgREVMSU0pLiIKKyAgKHNob3VsZCAoZXF1YWwg KGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAiZm9vIiAiOmoiKSAiZm9vIikpCisgIChzaG91bGQg KGVxdWFsIChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IikgIjpq IikKKyAgICAgICAgICAgICAgICAgImZvbyBiYXIgYmF6IikpCisgIChzaG91bGQgKGVxdWFs IChlc2hlbGwtZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpqLy0vIikgImZvbyIpKQorICAoc2hv dWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIp ICI6ai8tLyIpCisgICAgICAgICAgICAgICAgICJmb28tYmFyLWJheiIpKSkKKworKGVydC1k ZWZ0ZXN0IGVtLXByZWQtdGVzdC9tb2RpZmllci1zb3J0ICgpCisgICJUZXN0IHRoYXQgXCI6 b1wiIHNvcnRzIGVsZW1lbnRzIGluIGxleGljb2dyYXBoaWMgb3JkZXIuIgorICAoc2hvdWxk IChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRlICJmb28iICI6byIpICJmb28iKSkKKyAg KHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJi YXoiKSAiOm8iKQorICAgICAgICAgICAgICAgICAnKCJiYXIiICJiYXoiICJmb28iKSkpKQor CisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21vZGlmaWVyLXNvcnQtcmV2ZXJzZSAoKQor ICAiVGVzdCB0aGF0IFwiOm9cIiBzb3J0cyBlbGVtZW50cyBpbiByZXZlcnNlIGxleGljb2dy YXBoaWMgb3JkZXIuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGljYXRl ICJmb28iICI6TyIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOk8iKQorICAgICAgICAgICAgICAgICAn KCJmb28iICJiYXoiICJiYXIiKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L21v ZGlmaWVyLXVuaXF1ZSAoKQorICAiVGVzdCB0aGF0IFwiOnVcIiBmaWx0ZXJzIG91dCBkdXBs aWNhdGUgZWxlbWVudHMuIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLWV2YWwtcHJlZGlj YXRlICJmb28iICI6dSIpICJmb28iKSkKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFs LXByZWRpY2F0ZSAnKCJmb28iICJiYXIiICJiYXoiKSAiOnUiKQorICAgICAgICAgICAgICAg ICAnKCJmb28iICJiYXIiICJiYXoiKSkpCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZh bC1wcmVkaWNhdGUgJygiZm9vIiAiYmFyIiAiYmF6IiAiZm9vIikgIjp1IikKKyAgICAgICAg ICAgICAgICAgJygiZm9vIiAiYmFyIiAiYmF6IikpKSkKKworKGVydC1kZWZ0ZXN0IGVtLXBy ZWQtdGVzdC9tb2RpZmllci1yZXZlcnNlICgpCisgICJUZXN0IHRoYXQgXCI6clwiIHJldmVy c2VzIHRoZSBvcmRlciBvZiBlbGVtZW50cy4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwt ZXZhbC1wcmVkaWNhdGUgImZvbyIgIjpSIikgImZvbyIpKQorICAoc2hvdWxkIChlcXVhbCAo ZXNoZWxsLWV2YWwtcHJlZGljYXRlICcoImZvbyIgImJhciIgImJheiIpICI6UiIpCisgICAg ICAgICAgICAgICAgICcoImJheiIgImJhciIgImZvbyIpKSkpCisKKwwKKzs7IENvbWJpbmF0 aW9ucworCisoZXJ0LWRlZnRlc3QgZW0tcHJlZC10ZXN0L2NvbWJpbmUtcHJlZGljYXRlLWFu ZC1tb2RpZmllciAoKQorICAiVGVzdCBjb21iaW5hdGlvbiBvZiBwcmVkaWNhdGVzIGFuZCBt b2RpZmllcnMuIgorICAoZXNoZWxsLXdpdGgtZmlsZS1hdHRyaWJ1dGVzLWZyb20tbmFtZQor ICAgIChsZXQgKChmaWxlcyAnKCIvZmFrZS90eXBlPS0uZWwiICIvZmFrZS90eXBlPS0udHh0 IiAiL2Zha2UvdHlwZT1zLmVsIgorICAgICAgICAgICAgICAgICAgICIvZmFrZS9zdWJkaXIv dHlwZT0tLmVsIikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXByZWRp Y2F0ZSBmaWxlcyAiLjplOnUiKQorICAgICAgICAgICAgICAgICAgICAgJygiZWwiICJ0eHQi KSkpKSkpCisKKzs7IGVtLXByZWQtdGVzdHMuZWwgZW5kcyBoZXJlCi0tIAoyLjI1LjEKCg== --------------C0019A5743A1697E327601E5 Content-Type: text/plain; charset=UTF-8; name="0003-Add-G-argument-predicate-in-Eshell.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-G-argument-predicate-in-Eshell.patch" RnJvbSBhMzljNTM4N2JkMGYyMTNkMGM0YjVmZTE5ZTE4NDRjOWRkMmJiMzYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTkgTWFyIDIwMjIgMTc6NTI6NTUgLTA3MDAKU3ViamVjdDogW1BB VENIIDMvM10gQWRkICdHJyBhcmd1bWVudCBwcmVkaWNhdGUgaW4gRXNoZWxsCgoqIGxpc3Av ZXNoZWxsL2VtLXByZWQuZWwgKGVzaGVsbC1wcmVkaWNhdGUtYWxpc3QpOiBBZGQgJ0cnIHBy ZWRpY2F0ZS4KKGVzaGVsbC1wcmVkaWNhdGUtaGVscC1zdHJpbmcpOiBEb2N1bWVudCBpdC4K CiogdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVsCihlbS1wcmVkLXRlc3QvcHJl ZGljYXRlLWVmZmVjdGl2ZS1naWQpOiBOZXcgdGVzdC4KCiogZG9jL21pc2MvZXNoZWxsLnRl eHQgKEFyZ3VtZW50IFByZWRpY2F0aW9uKTogRG9jdW1lbnQgJ0cnIHByZWRpY2F0ZS4KLS0t CiBkb2MvbWlzYy9lc2hlbGwudGV4aSAgICAgICAgICAgICAgfCAzICsrKwogbGlzcC9lc2hl bGwvZW0tcHJlZC5lbCAgICAgICAgICAgIHwgOSArKysrKy0tLS0KIHRlc3QvbGlzcC9lc2hl bGwvZW0tcHJlZC10ZXN0cy5lbCB8IDggKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9l c2hlbGwudGV4aSBiL2RvYy9taXNjL2VzaGVsbC50ZXhpCmluZGV4IDM2YWI4NzE0MTguLmMx ZjlhMjc3M2QgMTAwNjQ0Ci0tLSBhL2RvYy9taXNjL2VzaGVsbC50ZXhpCisrKyBiL2RvYy9t aXNjL2VzaGVsbC50ZXhpCkBAIC0xMjUzLDYgKzEyNTMsOSBAQCBBcmd1bWVudCBQcmVkaWNh dGlvbgogQGl0ZW0gQGNvZGV7VX0KIE1hdGNoZXMgZmlsZXMgb3duZWQgYnkgdGhlIGN1cnJl bnQgZWZmZWN0aXZlIHVzZXIgSUQuCiAKK0BpdGVtIEBjb2Rle0d9CitNYXRjaGVzIGZpbGVz IG93bmVkIGJ5IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSBncm91cCBJRC4KKwogQGl0ZW0gQGNv ZGV7bEBvcHRpb257WystXX1AdmFye259fQogTWF0Y2hlcyBmaWxlcyB3aXRoIEB2YXJ7bn0g bGlua3MuICBXaXRoIEBvcHRpb257K30gKG9yIEBvcHRpb257LX0pLAogbWF0Y2hlcyBmaWxl cyB3aXRoIG1vcmUgdGhhbiAob3IgbGVzcyB0aGFuKSBAdmFye259IGxpbmtzLApkaWZmIC0t Z2l0IGEvbGlzcC9lc2hlbGwvZW0tcHJlZC5lbCBiL2xpc3AvZXNoZWxsL2VtLXByZWQuZWwK aW5kZXggZTc1ZGE5MWNmNi4uOGQyNmIyOTBkMiAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwv ZW0tcHJlZC5lbAorKysgYi9saXNwL2VzaGVsbC9lbS1wcmVkLmVsCkBAIC04OCwxMCArODgs MTAgQEAgZXNoZWxsLXByZWRpY2F0ZS1hbGlzdAogICAgICAgICAgICAgKGlmIChmaWxlLWV4 aXN0cy1wIGZpbGUpCiAgICAgICAgICAgICAgICAgKD0gKGZpbGUtYXR0cmlidXRlLXVzZXIt aWQgKGZpbGUtYXR0cmlidXRlcyBmaWxlKSkKICAgICAgICAgICAgICAgICAgICAodXNlci11 aWQpKSkpKQotICAgIDs7ICg/RyAuIChsYW1iZGEgKGZpbGUpICAgICAgICAgICAgICAgOyBv d25lZCBieSBlZmZlY3RpdmUgZ2lkCi0gICAgOzsgICAgICAgICAoaWYgKGZpbGUtZXhpc3Rz LXAgZmlsZSkKLSAgICA7OyAgICAgICAgICAgICAoPSAoZmlsZS1hdHRyaWJ1dGUtdXNlci1p ZCAoZmlsZS1hdHRyaWJ1dGVzIGZpbGUpKQotICAgIDs7ICAgICAgICAgICAgICAgICh1c2Vy LXVpZCkpKSkpCisgICAgKD9HIC4gKGxhbWJkYSAoZmlsZSkgICAgICAgICAgICAgICA7IG93 bmVkIGJ5IGVmZmVjdGl2ZSBnaWQKKyAgICAgICAgICAgIChpZiAoZmlsZS1leGlzdHMtcCBm aWxlKQorICAgICAgICAgICAgICAgICg9IChmaWxlLWF0dHJpYnV0ZS1ncm91cC1pZCAoZmls ZS1hdHRyaWJ1dGVzIGZpbGUpKQorICAgICAgICAgICAgICAgICAgIChncm91cC1naWQpKSkp KQogICAgICg/KiAuIChsYW1iZGEgKGZpbGUpCiAgICAgICAgICAgICAoYW5kIChmaWxlLXJl Z3VsYXItcCBmaWxlKQogICAgICAgICAgICAgICAgICAobm90IChmaWxlLXN5bWxpbmstcCBm aWxlKSkKQEAgLTE2MSw2ICsxNjEsNyBAQCBlc2hlbGwtcHJlZGljYXRlLWhlbHAtc3RyaW5n CiAKIE9XTkVSU0hJUDoKICAgVSAgICAgICAgICAgICAgIG93bmVkIGJ5IGVmZmVjdGl2ZSB1 aWQKKyAgRyAgICAgICAgICAgICAgIG93bmVkIGJ5IGVmZmVjdGl2ZSBnaWQKICAgdShVSUR8 XFw9J3VzZXJcXD0nKSAgIG93bmVkIGJ5IFVJRC91c2VyCiAgIGcoR0lEfFxcPSdncm91cFxc PScpICBvd25lZCBieSBHSUQvZ3JvdXAKIApkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VzaGVs bC9lbS1wcmVkLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lbS1wcmVkLXRlc3RzLmVs CmluZGV4IGY3NDZhYTNkYTguLjljNGU5NzVkZDAgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9l c2hlbGwvZW0tcHJlZC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VtLXByZWQt dGVzdHMuZWwKQEAgLTIyNSw2ICsyMjUsMTQgQEAgZW0tcHJlZC10ZXN0L3ByZWRpY2F0ZS1l ZmZlY3RpdmUtdWlkCiAgICAgICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtZXZhbC1wcmVk aWNhdGUgZmlsZXMgIlUiKQogICAgICAgICAgICAgICAgICAgICAgICAnKCIvZmFrZS91aWQ9 MSIpKSkpKSkpCiAKKyhlcnQtZGVmdGVzdCBlbS1wcmVkLXRlc3QvcHJlZGljYXRlLWVmZmVj dGl2ZS1naWQgKCkKKyAgIlRlc3QgdGhhdCBcIkdcIiBtYXRjaGVzIGZpbGVzIG93bmVkIGJ5 IHRoZSBlZmZlY3RpdmUgR0lELiIKKyAgKGVzaGVsbC13aXRoLWZpbGUtYXR0cmlidXRlcy1m cm9tLW5hbWUKKyAgICAoY2wtbGV0ZiAoKChzeW1ib2wtZnVuY3Rpb24gJ2dyb3VwLWdpZCkg KGxhbWJkYSAoKSAxKSkpCisgICAgICAobGV0ICgoZmlsZXMgJygiL2Zha2UvZ2lkPTEiICIv ZmFrZS9naWQ9MiIpKSkKKyAgICAgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC1ldmFsLXBy ZWRpY2F0ZSBmaWxlcyAiRyIpCisgICAgICAgICAgICAgICAgICAgICAgICcoIi9mYWtlL2dp ZD0xIikpKSkpKSkKKwogKGVydC1kZWZ0ZXN0IGVtLXByZWQtdGVzdC9wcmVkaWNhdGUtbGlu a3MgKCkKICAgIlRlc3QgdGhhdCBcImxcIiBmaWx0ZXJzIGJ5IG51bWJlciBvZiBsaW5rcy4i CiAgIChlc2hlbGwtd2l0aC1maWxlLWF0dHJpYnV0ZXMtZnJvbS1uYW1lCi0tIAoyLjI1LjEK Cg== --------------C0019A5743A1697E327601E5-- ------------=_1650180841-1763-1-- From unknown Fri Aug 15 16:57:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 17 Apr 2022 18:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54470 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 54470@debbugs.gnu.org, eliz@gnu.org Received: via spool by 54470-submit@debbugs.gnu.org id=B54470.165022070717223 (code B ref 54470); Sun, 17 Apr 2022 18:39:02 +0000 Received: (at 54470) by debbugs.gnu.org; 17 Apr 2022 18:38:27 +0000 Received: from localhost ([127.0.0.1]:37186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ng9n1-0004Tj-7k for submit@debbugs.gnu.org; Sun, 17 Apr 2022 14:38:27 -0400 Received: from mail-pj1-f49.google.com ([209.85.216.49]:33518) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ng9mz-0004TT-Ef for 54470@debbugs.gnu.org; Sun, 17 Apr 2022 14:38:25 -0400 Received: by mail-pj1-f49.google.com with SMTP id n11-20020a17090a73cb00b001d1d3a7116bso2672319pjk.0 for <54470@debbugs.gnu.org>; Sun, 17 Apr 2022 11:38:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:references:from:message-id:date:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=JOR67uo3NNgsX9ukpFKik30dhkEOdttuQlM3fcErH6k=; b=GxymkdqU9MeTLvGEz7heRPnbCiOLf6fvv1y65ZDjG3KDnAVF0dGH1QbXxC9Owf8ogG waMA8vqhvGkqEKMkjxTfAetFeu7IKJrPEyPGJe6TvE7lAXG7ANe47o9xuWccJ8QiorMf VFD7TKew/ADyii4Qy2Mdv2+V0ByzlC0QUCmui3bi1jc4upINRrTj4lanjTAoQ2NFJQI2 D9M48gdq+GDsaqPMwn6pIXsp+GcUN6VkDRFSUT+229doPGSiBGYjb+sod2QOeEYWgLnR jKa2QyxmlX+lXoVy2dVAO0gEgdc1Q4ZeS5Xt2oUaVdunP1WYp+Q0ny1IVeYT9c5KPhn7 2HFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:references:from:message-id:date :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=JOR67uo3NNgsX9ukpFKik30dhkEOdttuQlM3fcErH6k=; b=n8/MPBWZ3L0LttuK8p5MRvM47fQyZHn5VNKdhS6tefJFV4YW6xoUhoeB/hwAnq2O63 9ttIyw6dnPlKmIEdSQaMSf2ewdHbWB2RjemKoRzrzzoE6QxDwwPhPQdCd9UlUmp16dtq 5oxG7GR3ZDJ8arZ6ah3WIPC9Tnc12mJhf6EZDQvU9mdzjlWR3KXAOpUCCmk6qKrJk5vh tnvH/7AG7vtFIoCOVgJeCA4gfkDrLNiQgTZVrcoSZ2ie/XXj//hYXCwP/jpZY+/Fxlg3 MB0SE1VN3AwEq1jy3wXqyxBem2Y0thQ8SJq3ST+qjcyejWu8y5603IpEZ2IffSOJLCcj GNnA== X-Gm-Message-State: AOAM531vZAameuV6WkS+k+vFz0h/v2aHRDmvW9qX+HxKaeeI7voQBDSM 4cjoI1d3fA5E2Ii1tA3wbaCy6/v10P4= X-Google-Smtp-Source: ABdhPJz7PbTe+cww7a+K+Ew70ut4UZJmOvCCZc4/o8dgLMokOiSJjskMyX8+HuEGgdqii10zsmXfAg== X-Received: by 2002:a17:90a:7e97:b0:1d2:7bcb:ee78 with SMTP id j23-20020a17090a7e9700b001d27bcbee78mr5311941pjl.40.1650220699629; Sun, 17 Apr 2022 11:38:19 -0700 (PDT) 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 p1-20020a17090a0e4100b001ce188720e5sm10379249pja.53.2022.04.17.11.38.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 17 Apr 2022 11:38:19 -0700 (PDT) References: <83bky1f6jk.fsf@gnu.org> <83k0ca7fo6.fsf@gnu.org> <83zgkm1p4v.fsf@gnu.org> <25d222b3-9633-708e-6ac7-568c7a89e806@gmail.com> <83a6cl1fsv.fsf@gnu.org> <55f95cab-e56f-42ef-43fb-de4fef99ea10@gmail.com> <834k2syxk5.fsf@gnu.org> From: Jim Porter Message-ID: Date: Sun, 17 Apr 2022 11:38:20 -0700 MIME-Version: 1.0 In-Reply-To: <834k2syxk5.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 4/17/2022 12:32 AM, Eli Zaretskii wrote: > Thanks, installed on the master branch, and closing the bug. > > Please in the future always mention the bug number in the commit log > messages (I added that for you in this case). Thanks, I'll try to remember that for the future.