From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#54470: 29.0.50; [PATCH] Add documentation/tests for Eshell argument expansion Date: Sat, 19 Mar 2022 18:34:44 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------C0019A5743A1697E327601E5" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26593"; mail-complaints-to="usenet@ciao.gmane.io" To: 54470@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Mar 20 02:35:15 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nVkTT-0006g0-2d for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 20 Mar 2022 02:35:15 +0100 Original-Received: from localhost ([::1]:37694 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nVkTR-0003dO-VC for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 19 Mar 2022 21:35:14 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:48542) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nVkTH-0003dB-7z for bug-gnu-emacs@gnu.org; Sat, 19 Mar 2022 21:35:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38714) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nVkTG-0002Ok-Un for bug-gnu-emacs@gnu.org; Sat, 19 Mar 2022 21:35:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nVkTG-00037w-MX for bug-gnu-emacs@gnu.org; Sat, 19 Mar 2022 21:35:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: 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 X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.164774010112008 (code B ref -1); Sun, 20 Mar 2022 01:35:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 20 Mar 2022 01:35:01 +0000 Original-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 Original-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 Original-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 Original-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 Original-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) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id 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 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-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:228611 Archived-At: 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--