From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id QE39GhybFGOhNwAAbAwnHQ (envelope-from ) for ; Sun, 04 Sep 2022 14:33:32 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id aInkGhybFGMIawEA9RJhRA (envelope-from ) for ; Sun, 04 Sep 2022 14:33:32 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 0060024121 for ; Sun, 4 Sep 2022 14:33:31 +0200 (CEST) Received: from localhost ([::1]:41116 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oUoZN-0004mA-Vp for larch@yhetil.org; Sun, 04 Sep 2022 08:17:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39808) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oUoYf-0004le-Py for emacs-orgmode@gnu.org; Sun, 04 Sep 2022 08:17:01 -0400 Received: from ciao.gmane.io ([116.202.254.214]:44512) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oUoYd-00032X-4s for emacs-orgmode@gnu.org; Sun, 04 Sep 2022 08:17:01 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oUoYZ-0001FI-85 for emacs-orgmode@gnu.org; Sun, 04 Sep 2022 14:16:55 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [PATCH v2] org.el: Fix percent substitutions in `org-open-file' Date: Sun, 4 Sep 2022 19:16:47 +0700 Message-ID: References: <874kih92nb.fsf@kyleam.com> <87mtw8fupl.fsf@kyleam.com> <87tu5qm11q.fsf@localhost> <87o7vw983m.fsf@localhost> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------uDgoY90BWq1SbD0Y1Bypq4h0" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US In-Reply-To: <87o7vw983m.fsf@localhost> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 18 X-Spam_score: 1.8 X-Spam_bar: + X-Spam_report: (1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, FUZZY_CPILL=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-0.978, NML_ADSP_CUSTOM_MED=0.9, 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: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1662294812; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=CCFjFbcfUKRpEUxEjNZeqtfqkRxmfRO/kOf3IepapB8=; b=cgZhmz2Im9SsNHh0CrFIP96rB2py/2i73iLY10W4rad0SzbZ1m4wLCCezZfVFC71ihelEX Sws9XTluUFaQvAzt3N/etBSJJBXgKD62B4bbj/LwcjMAeG10Woe8myM9j9zgdGwSwVbNKL ea+hiFs4IRJkAO/CrzZajQiT1bmXgJ95Tvsk190/kXwQWoNZPHR0Jf4eCmqzSl4wzkKfEG 7VbG/K+Fypxmlo8pYZ1YgsWA2ic93rxE5qvZstRsnKEjH12qEp3gYEyzD8c7FyMQZfnyl9 po/x9IASXSClCDapgCykES4SJaEHbVBJ8eR3rluTcHLep/sKnI61F1YAGEecKQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1662294812; a=rsa-sha256; cv=none; b=N76mCccyWWcr9vJBATCGBSRmlxBMjj6I88jpn65FiqhLFnDPZcWWpLavYa+goIZTN0tGpN WukJn9NfolKXg7K3scoZQm7ORtrFp8XOygaywYZVY31++apnKWQzLhsOvQsGDulfDZdtUp z86Tz3A1/Tm/4HnUqhHcYq4Y7YADtwFw4Indw0xX2pfHAjS/6nTEEzI1qXDfr6OF77SlNA dj+5p9wZOI2p4gECGKLKmv6hQ/Znp8NTfrxbPssu22x8oP7aCS8zNhAsFb517BojfRSg6Z YyiheYBO0zs+vERWG/DbJ/WbiihhmHNxQqhqRgfr9ZEFmcQ9cDBrz0hkY3DUog== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 4.02 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 0060024121 X-Spam-Score: 4.02 X-Migadu-Scanner: scn1.migadu.com X-TUID: r6BkYruex4nf This is a multi-part message in MIME format. --------------uDgoY90BWq1SbD0Y1Bypq4h0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 03/09/2022 15:26, Ihor Radchenko wrote: > Max Nikulin writes: >> The only problems >> is that adding entries programmatically breaks easy customization >> interface for `org-file-apps'. Currently there is the same issue with >> `org-link-parameters' that is a defcustom variables with entries added >> by various org extensions. > > We may alter the :type specifier in `org-file-apps' to something like > > :type `(repeat > (choice > ,org-file-apps-presets > ...)) > > `org-file-apps-presets' will then contain :type specs for some common > file types and the apps. The variable can be easily populated by > third-party packages as well. I mean another problem. A user adds (require 'some-package) that defines new link type. Later the user invokes easy customization interface to adjust a link unrelated to some-package. At this step links from some-package are added to user's init file. Ideally it should not happen and after removing of (require 'some-package) there should be no link types from the package in the init file at all, including customization section. From my point of view entries added to `org-link-parameters', `org-file-apps', etc. by packages should not affect entries managed through customization. >> I added the example with hope to better explain the purpose of this >> function. > > I do not think that it is needed in the `org--open-file-format-command' > docstring. If you wish, it would be better to add examples of the > arguments and return values of `org--open-file-format-command' instead > of showing `org-file-apps' examples. I have removed most parts of the example. In addition I fixed some issues with references in the docstring (man mailcap is not recognized as a link for some reason yet). I changed the function to consider trailing backslash as a format error. See the following message for my new idea concerning providing configuration for PDF viewers. Single elisp function should be more robust than 6 shell commands and it is better to add code than instructions. Max Nikulin. Re: Org mode links: Open a PDF file at a given page and highlight a given string. Sat, 3 Sep 2022 20:00:47 +0700. https://list.orgmode.org/tevj61$17d8$1@ciao.gmane.io --------------uDgoY90BWq1SbD0Y1Bypq4h0 Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-org.el-Fix-percent-substitutions-in-org-open-file.patch" Content-Disposition: attachment; filename*0="v2-0001-org.el-Fix-percent-substitutions-in-org-open-file.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1YzdhMzhiMWQ2MWM0NGVlNDQxNGYwMWM5NGFiYzg0MWJkMjAzMTkxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXggTmlrdWxpbiA8bWFuaWt1bGluQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCAyNyBBdWcgMjAyMiAyMzo1MToyNCArMDcwMApTdWJqZWN0OiBbUEFU Q0ggdjJdIG9yZy5lbDogRml4IHBlcmNlbnQgc3Vic3RpdHV0aW9ucyBpbiBgb3JnLW9wZW4t ZmlsZScKCiogbGlzcC9vcmcuZWwgKG9yZy0tb3Blbi1maWxlLWZvcm1hdC1jb21tYW5kKTog TmV3IGZ1bmN0aW9uIHdpdGggYmV0dGVyCmNvdmVyYWdlIG9mIG1haWxjYXAgUkZDIDE1MjQg c3ludGF4LiAgRG8gbm90IHJlcGxhY2UgcGVyY2VudCBjaGFyYWN0ZXIKaW4gZmlsZSBuYW1l IG9yIGxpbmsgY29tcG9uZW50LCBmaXggc3Vic3RpdHV0aW9uIG9mIG11bHRpcGxlIHJlZ3Vs YXIKZXhwcmVzc2lvbiBncm91cHMgbWF0Y2hlZCBpbiB0aGUgbGluayB0YXJnZXQuCihvcmct b3Blbi1maWxlKTogVXNlIGBvcmctLW9wZW4tZmlsZS1mb3JtYXQtY29tbWFuZCcgaW5zdGVh ZCBvZiBpbmxpbmUKY29kZS4KKiB0ZXN0aW5nL2xpc3AvdGVzdC1vcmcuZWwgKG9yZy10ZXN0 L29yZy0tb3Blbi1maWxlLWZvcm1hdC1jb21tYW5kKToKVGVzdHMgZm9yIGBvcmctLW9wZW4t ZmlsZS1mb3JtYXQtY29tbWFuZCcuCgpUaGUgcHJpbWFyeSBnb2FsIG9mIG1vdmluZyBjb2Rl IG91dHNpZGUgb2YgYG9yZy1vcGVuLWZpbGUnIGZ1bmN0aW9uIGlzIHRvCm1ha2UgaXQgdGVz dGFibGUuCgpJdCBzaG91bGQgZml4IHRoZSBmb2xsb3dpbmcgaXNzdWVzOgotIE1heGltIE5p a3VsaW4uIGdyZWVkeSBzdWJzdGl0dXRpb24gaW4gb3JnLW9wZW4tZmlsZS4KICBXZWQsIDIw IEphbiAyMDIxIDIzOjA4OjM1ICswNzAwLgogIGh0dHBzOi8vbGlzdC5vcmdtb2RlLm9yZy9y dTlraTQkdDVlJDFAY2lhby5nbWFuZS5pbwotIFJvZHJpZ28gTW9yYWxlcy4gT3JnIG1vZGUg bGlua3M6IE9wZW4gYSBQREYgZmlsZSBhdCBhIGdpdmVuIHBhZ2UKICBhbmQgaGlnaGxpZ2h0 IGEgZ2l2ZW4gc3RyaW5nLiBUdWUsIDAyIE1hciAyMDIxIDE1OjA3OjMyIC0wNTAwLgogIGh0 dHBzOi8vbGlzdC5vcmdtb2RlLm9yZy84N2xmYjVwYmVqLmZzZkBnbWFpbC5jb20KLS0tCiBs aXNwL29yZy5lbCAgICAgICAgICAgICAgfCAxMDMgKysrKysrKysrKysrKysrKysrKystLS0t LQogdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsIHwgMTYwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNDIgaW5zZXJ0aW9ucygr KSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9vcmcuZWwgYi9saXNwL29y Zy5lbAppbmRleCA2ZmFmZWQ4ZjEuLjljNDQwYmQ2NyAxMDA2NDQKLS0tIGEvbGlzcC9vcmcu ZWwKKysrIGIvbGlzcC9vcmcuZWwKQEAgLTEyOTksNiArMTI5OSwxNyBAQCBQb3NzaWJsZSB2 YWx1ZXMgZm9yIHRoZSBmaWxlIGlkZW50aWZpZXIgYXJlOgogXCJldmluY2UgLXAgJTEgJXNc IikKICAgICAgICAgICAgICAgICAgICAgIHRvIG9wZW4gW1tmaWxlOmRvY3VtZW50LnBkZjo6 NV1dIHdpdGggZXZpbmNlIGF0IHBhZ2UgNS4KIAorICAgICAgICAgICAgICAgICBMaWtlbHkg eW91IHdpbGwgbmVlZCBtb3JlIGVudHJpZXM6IHdpdGhvdXQgcGFnZQorICAgICAgICAgICAg ICAgICBudW1iZXIsIHdpdGggc2VhcmNoIHBhdHRlcm4sIHdpdGgKKyAgICAgICAgICAgICAg ICAgY3Jvc3MtcmVmZXJlbmNlIGFuY2hvciwgc29tZSBjb21iaW5hdGlvbiBvZgorICAgICAg ICAgICAgICAgICBvcHRpb25zLiAgQ29uc2lkZXIgc2ltcGxlIHBhdHRlcm4gaGVyZSBhbmQg YQorICAgICAgICAgICAgICAgICBsaXNwIGZ1bmN0aW9uIHRvIGRldGVybWluZSBjb21tYW5k IGxpbmUKKyAgICAgICAgICAgICAgICAgYXJndW1lbnRzIGluc3RlYWQuICBQYXNzaW5nIGFy Z3VtZW50IGxpc3QgdG8KKyAgICAgICAgICAgICAgICAgYGNhbGwtcHJvY2Vzcycgb3IgYG1h a2UtcHJvY2VzcycgZGlyZWN0bHkgYWxsb3dzCisgICAgICAgICAgICAgICAgIHRvIGF2b2lk IHRyZWF0aW5nIHNvbWUgY2hhcmFjdGVyIGluIHBlY3VsaWFyCisgICAgICAgICAgICAgICAg IGZpbGUgbmFtZXMgYXMgc2hlbGwgc3BlY2lhbGxzIGNhdXNpbmcgZXhlY3V0aW5nCisgICAg ICAgICAgICAgICAgIHBhcnQgb2YgZmlsZSBuYW1lIGFzIGEgc3ViY29tbWFuZC4KKwogIGBk aXJlY3RvcnknICAgTWF0Y2hlcyBhIGRpcmVjdG9yeQogIGByZW1vdGUnICAgICAgTWF0Y2hl cyBhIHJlbW90ZSBmaWxlLCBhY2Nlc3NpYmxlIHRocm91Z2ggdHJhbXAgb3IgZWZzLgogICAg ICAgICAgICAgICAgUmVtb3RlIGZpbGVzIG1vc3QgbGlrZWx5IHNob3VsZCBiZSB2aXNpdGVk IHRocm91Z2ggRW1hY3MKQEAgLTgwMTUsNiArODAyNiw3NSBAQCBvcGVuZWQgaW4gRW1hY3Mu IgogICAgKHdoZW4gYWRkLWF1dG8tbW9kZQogICAgICAobWFwY2FyIChsYW1iZGEgKHgpIChj b25zIChjYXIgeCkgJ2VtYWNzKSkgYXV0by1tb2RlLWFsaXN0KSkpKQogCisoZGVmdW4gb3Jn LS1vcGVuLWZpbGUtZm9ybWF0LWNvbW1hbmQKKyAgICAobWFpbGNhcC1jb21tYW5kIGZpbGUg bGluayBtYXRjaC1kYXRhKQorICAiRm9ybWF0IE1BSUxDQVAtQ09NTUFORCB0byBsYXVuY2gg dmlld2VyIGZvciB0aGUgRklMRS4KKworTUFJTENBUC1DT01NQU5EIG1heSBiZSBhbiBlbnRy eSBmcm9tIHRoZSBgb3JnLWZpbGUtYXBwcycgbGlzdCBvcgordmlld2VyIGZpZWxkIGZyb20g bWFpbGNhcCBmaWxlIGxvYWRlZCB0byBgbWFpbGNhcC1taW1lLWRhdGEnLiBTZWUKK1wiUkZD IDE1MjQuIEEgVXNlciBBZ2VudCBDb25maWd1cmF0aW9uIE1lY2hhbmlzbSBGb3IgTXVsdGlt ZWRpYQorTWFpbCBGb3JtYXQgSW5mb3JtYXRpb25cIiAoVVJMCitgaHR0cHM6Ly93d3cucmZj LWVkaXRvci5vcmcvcmZjL3JmYzE1MjQuaHRtbCcpIGZvciBkZXRhaWxzLCBtYW4KK3BhZ2Ug YG1haWxjYXAoNSknIGZvciBicmllZiBzdW1tYXJ5LCBhbmQgSW5mbyBub2RlIGAoZW1hY3Mt bWltZSkKK21haWxjYXAnIGZvciBzcGVjaWZpYyByZWxhdGVkIHRvIEVtYWNzLiAgT25seSBh IHBhcnQgb2YgbWFpbGNhcAorc3BlY2lmaWNhdGlvbiBpcyBzdXBwb3J0ZWQuCisKK1RoZSBm b2xsb3dpbmcgc3Vic3RpdHV0aW9ucyBhcmUgaW50ZXJwb2xhdGVkIGluIHRoZQorTUFJTENB UC1DT01NQU5EIHN0cmluZzoKKworLSBcIiVzXCIgdG8gRklMRSBuYW1lIHBhc3NlZCB0aHJv dWdoCisgIGBjb252ZXJ0LXN0YW5kYXJkLWZpbGVuYW1lJywgc28gaXQgbXVzdCBiZSBhYnNv bHV0ZSBwYXRoLAorCistIFwiJTFcIiB0byBcIiU5XCIgZ3JvdXBzIGZyb20gTUFUQ0gtREFU QSBmb3VuZCBpbiB0aGUgTElOSworICBzdHJpbmcgYnkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lv biBpbiB0aGUga2V5IHBhcnQgb2YgdGhlIGBvcmctZmlsZS1hcHBzJyBlbnRyeS4KKyAgKHBl cmZvcm1lZCBieSBjYWxsZXIpLiAgTm90IHJlY29tbWVuZGVkLCBjb25zaWRlciBhIGxpc3AK KyAgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIHNoZWxsIGNvbW1hbmQuICBGb3IgZXhhbXBsZSB0 aGUgZm9sbG93aW5nCisgIGxpbmsgaW4gYW4gT3JnIGZpbGUKKworICAgICAgIDxmaWxlOi8v L3Vzci9zaGFyZS9kb2MvYmFzaC9iYXNocmVmLnBkZjo6I1JlZGlyZWN0aW9uczo6YWxsb2Nh dGUgYSBmaWxlPgorCisgICBtYXkgYmUgaGFuZGxlZCBieSBhbiBgb3JnLWZpbGUtYXBwcycg ZW50cnkgbGlrZQorCisgICAgICAgKFwiXFxcXC5wZGZcXFxcKD86XFxcXC5bZ3hdelxcXFx8 XFxcXC5iejJcXFxcKT86OlxcXFwoI1teOl0rXFxcXCk6OlxcXFwoLitcXFxcKVxcXFxcXD0n XCIKKyAgICAgICAgLiBcIm9rdWxhciAtLWZpbmQgJTIgJXMlMVwiKQorCitVc2UgYmFja3Ns YXNoIFwiXFxcIiB0byBxdW90ZSBwZXJjZW50IFwiJVwiIG9yIGFueSBvdGhlciBjaGFyYWN0 ZXIKK2luY2x1ZGluZyBiYWNrc2xhc2ggaXRzZWxmLgorCitJbiBhZGRpdGlvbiwgZWFjaCBh cmd1bWVudCBpcyBwYXNzZWQgdGhyb3VnaAorYHNoZWxsLXF1b3RlLWFyZ3VtZW50Jywgc28g cXVvdGVzIGFyb3VuZCBzdWJzdGl0dXRpb25zIHNob3VsZCBub3QKK2JlIHVzZWQuICBGb3Ig Y29tcGxpYW5jZSB3aXRoIG1haWxjYXAgZmlsZXMgc2hpcHBlZCBlLmcuIGluCitEZWJpYW4g R05VL0xpbnV4LCBzaW5nbGUgb3IgZG91YmxlIHF1b3RlcyBhcm91bmQgc3Vic3RpdHV0aW9u cworYXJlIHN0cmlwcGVkLiBJdCBkZXZpYXRlcyBmcm9tIG1haWxjYXAgc3BlY2lmaWNhdGlv biB0aGF0CityZXF1aXJlcyBmaWxlIG5hbWUgdG8gYmUgc2FmZSBmb3Igc2hlbGwgYW5kIGZv ciB0aGUgYXBwbGljYXRpb24uIgorICAobGV0ICgoc3BlYyAobGlzdCAoY29ucyA/cyAgKGNv bnZlcnQtc3RhbmRhcmQtZmlsZW5hbWUgZmlsZSkpKSkKKyAgICAgICAgKG5ncm91cHMgKG1p biA5ICgtICgvIChsZW5ndGggbWF0Y2gtZGF0YSkgMikgMSkpKSkKKyAgICAod2hlbiAoPiBu Z3JvdXBzIDApCisgICAgICAoc2V0LW1hdGNoLWRhdGEgbWF0Y2gtZGF0YSkKKyAgICAgIChk b2xpc3QgKGkgKG51bWJlci1zZXF1ZW5jZSAxIG5ncm91cHMpKQorICAgICAgICAocHVzaCAo Y29ucyAoKyA/MCBpKSAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgaSBsaW5rKSkgc3Bl YykpKQorICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgKHJ4IChvciAoYW5k ICJcXCIgKG9yIChncm91cCBhbnl0aGluZykgc3RyaW5nLWVuZCkpCisgICAgICAgICAgICAg KGFuZCAob3B0aW9uYWwgKGdyb3VwIChhbnkgIidcIiIpKSkKKyAgICAgICAgICAgICAgICAg ICIlIgorICAgICAgICAgICAgICAgICAgKG9yIChncm91cCBhbnl0aGluZykgc3RyaW5nLWVu ZCkKKyAgICAgICAgICAgICAgICAgIChvcHRpb25hbCAoZ3JvdXAgKGJhY2tyZWYgMikpKSkp KQorICAgICAobGFtYmRhIChmbXQpCisgICAgICAgKGxldCogKChiYWNrc2xhc2ggKG1hdGNo LXN0cmluZy1uby1wcm9wZXJ0aWVzIDEgZm10KSkKKyAgICAgICAgICAgICAgKGtleSAobWF0 Y2gtc3RyaW5nIDMgZm10KSkKKyAgICAgICAgICAgICAgKHZhbHVlIChhbmQga2V5IChhbGlz dC1nZXQgKHN0cmluZy10by1jaGFyIGtleSkgc3BlYykpKSkKKyAgICAgICAgIChjb25kCisg ICAgICAgICAgKGJhY2tzbGFzaCkKKyAgICAgICAgICAodmFsdWUgKGxldCAoKHF1b3QgKG1h dGNoLXN0cmluZyAyIGZtdCkpCisgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdCAoc2hl bGwtcXVvdGUtYXJndW1lbnQgdmFsdWUpKSkKKyAgICAgICAgICAgICAgICAgICA7OyBSZW1v dmUgcXVvdGVzIGFyb3VuZCB0aGUgZmlsZSBuYW1lIC0gd2UgdXNlCisgICAgICAgICAgICAg ICAgICAgOzsgYHNoZWxsLXF1b3RlLWFyZ3VtZW50Jy4KKyAgICAgICAgICAgICAgICAgICAo aWYgKG1hdGNoLXN0cmluZyA0IGZtdCkKKyAgICAgICAgICAgICAgICAgICAgICAgc3Vic3QK KyAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgcXVvdCBzdWJzdCkpKSkKKyAgICAgICAg ICAodCAoZXJyb3IgIkludmFsaWQgZm9ybWF0IGAlcyciIGZtdCkpKSkpCisgICAgIG1haWxj YXAtY29tbWFuZCBuaWwgJ2xpdGVyYWwpKSkKKwogOzs7IyMjYXV0b2xvYWQKIChkZWZ1biBv cmctb3Blbi1maWxlIChwYXRoICZvcHRpb25hbCBpbi1lbWFjcyBsaW5lIHNlYXJjaCkKICAg Ik9wZW4gdGhlIGZpbGUgYXQgUEFUSC4KQEAgLTgxMTIsMjcgKzgxOTIsOCBAQCBJZiB0aGUg ZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhyb3cgYW4gZXJyb3IuIgogCSAgICAgICAobm90IG9y Zy1vcGVuLW5vbi1leGlzdGluZy1maWxlcykpCiAgICAgICAodXNlci1lcnJvciAiTm8gc3Vj aCBmaWxlOiAlcyIgZmlsZSkpCiAgICAgKGNvbmQKLSAgICAgKChhbmQgKHN0cmluZ3AgY21k KSAobm90IChzdHJpbmctbWF0Y2ggIl5cXHMtKiQiIGNtZCkpKQotICAgICAgOzsgUmVtb3Zl IHF1b3RlcyBhcm91bmQgdGhlIGZpbGUgbmFtZSAtIHdlJ2xsIHVzZSBzaGVsbC1xdW90ZS1h cmd1bWVudC4KLSAgICAgICh3aGlsZSAoc3RyaW5nLW1hdGNoICJbJ1wiXSVzWydcIl0iIGNt ZCkKLQkoc2V0cSBjbWQgKHJlcGxhY2UtbWF0Y2ggIiVzIiB0IHQgY21kKSkpCi0gICAgICAo c2V0cSBjbWQgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZwotCQkgIiVzIgotCQkgKHNoZWxs LXF1b3RlLWFyZ3VtZW50IChjb252ZXJ0LXN0YW5kYXJkLWZpbGVuYW1lIGZpbGUpKQotCQkg Y21kCi0JCSBuaWwgdCkpCi0KLSAgICAgIDs7IFJlcGxhY2UgIiUxIiwgIiUyIiBldGMuIGlu IGNvbW1hbmQgd2l0aCBncm91cCBtYXRjaGVzIGZyb20gcmVnZXgKLSAgICAgIChzYXZlLW1h dGNoLWRhdGEKLQkobGV0ICgobWF0Y2gtaW5kZXggMSkKLQkgICAgICAobnVtYmVyLW9mLWdy b3VwcyAoLSAoLyAobGVuZ3RoIGxpbmstbWF0Y2gtZGF0YSkgMikgMSkpKQotCSAgKHNldC1t YXRjaC1kYXRhIGxpbmstbWF0Y2gtZGF0YSkKLQkgICh3aGlsZSAoPD0gbWF0Y2gtaW5kZXgg bnVtYmVyLW9mLWdyb3VwcykKLQkgICAgKGxldCAoKHJlZ2V4IChjb25jYXQgIiUiIChudW1i ZXItdG8tc3RyaW5nIG1hdGNoLWluZGV4KSkpCi0JCSAgKHJlcGxhY2Utd2l0aCAobWF0Y2gt c3RyaW5nIG1hdGNoLWluZGV4IGRsaW5rKSkpCi0JICAgICAgKHdoaWxlIChzdHJpbmctbWF0 Y2ggcmVnZXggY21kKQotCQkoc2V0cSBjbWQgKHJlcGxhY2UtbWF0Y2ggcmVwbGFjZS13aXRo IHQgdCBjbWQpKSkpCi0JICAgIChzZXRxIG1hdGNoLWluZGV4ICgrIG1hdGNoLWluZGV4IDEp KSkpKQorICAgICAoKG9yZy1zdHJpbmctbnctcCBjbWQpCisgICAgICAoc2V0cSBjbWQgKG9y Zy0tb3Blbi1maWxlLWZvcm1hdC1jb21tYW5kIGNtZCBmaWxlIGRsaW5rIGxpbmstbWF0Y2gt ZGF0YSkpCiAKICAgICAgIChzYXZlLXdpbmRvdy1leGN1cnNpb24KIAkobWVzc2FnZSAiUnVu bmluZyAlcy4uLmRvbmUiIGNtZCkKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9y Zy5lbCBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbAppbmRleCBiMTRjYmViMjYuLjAwNGU4 OTczMiAxMDA2NDQKLS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCisrKyBiL3Rlc3Rp bmcvbGlzcC90ZXN0LW9yZy5lbApAQCAtODQyMSw2ICs4NDIxLDE2NiBAQCB0d28KICAgICAg KGNhbGwtaW50ZXJhY3RpdmVseSAjJ29yZy1wYXN0ZS1zdWJ0cmVlKQogICAgICAoYnVmZmVy LXN0cmluZykpKSkpCiAKKyhlcnQtZGVmdGVzdCB0ZXN0LW9yZy9vcmctLW9wZW4tZmlsZS1m b3JtYXQtY29tbWFuZCAoKQorICAiVGVzdCBgb3JnLS1vcGVuLWZpbGUtZm9ybWF0LWNvbW1h bmQnIGhlbHBlciBmb3IgYG9yZy1vcGVuLWZpbGUnLiIKKyAgKGxldCAoKHN5c3RlbS10eXBl ICdnbnUvbGludXgpKSA7IEZpeCBiZWhhdmlvciBvZiBgc2hlbGwtcXVvdGUtYXJndW1lbnQn LgorICAgIDs7IE5vIGFkZGl0aW9uYWwgZ3JvdXBzIGluIGBvcmctZmlsZS1hcHBzJyBrZXku CisgICAgKGxldCAoKGZpbGUgIi9maWxlLnBkZiIpCisgICAgICAgICAgKHBhdHRlcm4gIlxc LnBkZlxcJyIpKQorICAgICAgKHNob3VsZAorICAgICAgIChlcXVhbCAic2ltcGxlIC9maWxl LnBkZiIKKyAgICAgICAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoIHBhdHRlcm4gZmlsZSkK KyAgICAgICAgICAgICAgICAgICAob3JnLS1vcGVuLWZpbGUtZm9ybWF0LWNvbW1hbmQKKyAg ICAgICAgICAgICAgICAgICAgInNpbXBsZSAlcyIgZmlsZSBmaWxlIChtYXRjaC1kYXRhKSkp KSkKKyAgICAgIChzaG91bGQKKyAgICAgICAoZXF1YWwgInNpbmdsZS1xdW90ZXMgL2ZpbGUu cGRmIgorICAgICAgICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2ggcGF0dGVybiBmaWxlKQor ICAgICAgICAgICAgICAgICAgIChvcmctLW9wZW4tZmlsZS1mb3JtYXQtY29tbWFuZAorICAg ICAgICAgICAgICAgICAgICAic2luZ2xlLXF1b3RlcyAnJXMnIiBmaWxlIGZpbGUgKG1hdGNo LWRhdGEpKSkpKQorICAgICAgKHNob3VsZAorICAgICAgIChlcXVhbCAiZG91YmxlLXF1b3Rl cyAvZmlsZS5wZGYiCisgICAgICAgICAgICAgIChhbmQgKHN0cmluZy1tYXRjaCBwYXR0ZXJu IGZpbGUpCisgICAgICAgICAgICAgICAgICAgKG9yZy0tb3Blbi1maWxlLWZvcm1hdC1jb21t YW5kCisgICAgICAgICAgICAgICAgICAgICJkb3VibGUtcXVvdGVzIFwiJXNcIiIgZmlsZSBm aWxlIChtYXRjaC1kYXRhKSkpKSkKKyAgICAgIChzaG91bGQKKyAgICAgICAoZXF1YWwgInF1 b3RlcyAnbWlzbWF0Y2ggXCIvZmlsZS5wZGYnIgorICAgICAgICAgICAgICAoYW5kIChzdHJp bmctbWF0Y2ggcGF0dGVybiBmaWxlKQorICAgICAgICAgICAgICAgICAgIChvcmctLW9wZW4t ZmlsZS1mb3JtYXQtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAicXVvdGVzICdtaXNt YXRjaCBcIiVzJyIgZmlsZSBmaWxlIChtYXRjaC1kYXRhKSkpKSkKKyAgICAgIChzaG91bGQK KyAgICAgICAoZXF1YWwgIm5vIHN1YnN0IgorICAgICAgICAgICAgICAoYW5kIChzdHJpbmct bWF0Y2ggcGF0dGVybiBmaWxlKQorICAgICAgICAgICAgICAgICAgIChvcmctLW9wZW4tZmls ZS1mb3JtYXQtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAibm8gc3Vic3QiIGZpbGUg ZmlsZSAobWF0Y2gtZGF0YSkpKSkpCisgICAgICAoc2hvdWxkCisgICAgICAgKGVxdWFsICIl IGxpdGVyYWwgcGVyY2VudCAxMDAlICVzIgorICAgICAgICAgICAgICAoYW5kIChzdHJpbmct bWF0Y2ggcGF0dGVybiBmaWxlKQorICAgICAgICAgICAgICAgICAgIChvcmctLW9wZW4tZmls ZS1mb3JtYXQtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAiXFwlIGxpdGVyYWwgcGVy Y2VudCAxMDBcXCUgXFwlcyIgZmlsZSBmaWxlIChtYXRjaC1kYXRhKSkpKSkKKyAgICAgIChz aG91bGQKKyAgICAgICAoZXF1YWwgImVzY2FwZSBcIi9maWxlLnBkZlwiIFxcIG1vcmUiCisg ICAgICAgICAgICAgIChhbmQgKHN0cmluZy1tYXRjaCBwYXR0ZXJuIGZpbGUpCisgICAgICAg ICAgICAgICAgICAgKG9yZy0tb3Blbi1maWxlLWZvcm1hdC1jb21tYW5kCisgICAgICAgICAg ICAgICAgICAgIDs7IFNlY29uZCBxdW90ZSBpcyBub3QgZXNjYXBlZC4KKyAgICAgICAgICAg ICAgICAgICAgImVzY2FwZSBcXFwiJXNcIiBcXFxcIG1vcmUiIGZpbGUgZmlsZSAobWF0Y2gt ZGF0YSkpKSkpCisgICAgICAoc2hvdWxkCisgICAgICAgKGVxdWFsICIvZmlsZS5wZGYgZmls ZSBhdCBzdGFydCIKKyAgICAgICAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoIHBhdHRlcm4g ZmlsZSkKKyAgICAgICAgICAgICAgICAgICAob3JnLS1vcGVuLWZpbGUtZm9ybWF0LWNvbW1h bmQKKyAgICAgICAgICAgICAgICAgICAgIiVzIGZpbGUgYXQgc3RhcnQiIGZpbGUgZmlsZSAo bWF0Y2gtZGF0YSkpKSkpCisgICAgICAoc2hvdWxkCisgICAgICAgKGVxdWFsICJiYWNrc2xh c2gtbmV3bGluZVxuL2ZpbGUucGRmIgorICAgICAgICAgICAgICAoYW5kIChzdHJpbmctbWF0 Y2ggcGF0dGVybiBmaWxlKQorICAgICAgICAgICAgICAgICAgIChvcmctLW9wZW4tZmlsZS1m b3JtYXQtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAiYmFja3NsYXNoLW5ld2xpbmVc XFxuJXMiIGZpbGUgZmlsZSAobWF0Y2gtZGF0YSkpKSkpKQorICAgIDs7IEFuY2hvcnMgd2l0 aGluIHRhcmdldCBmaWxlLgorICAgIChsZXQgKChmaWxlICIvcGFnZS1zZWFyY2gucGRmIikK KyAgICAgICAgICAobGluayAiL3BhZ2Utc2VhcmNoLnBkZjo6MTA6OnNvbWUgd29yZHMiKQor ICAgICAgICAgIChwYXR0ZXJuICJcXC5wZGY6OlxcKFswLTldK1xcKTo6XFwoLipcXClcXCci KSkKKyAgICAgIChzaG91bGQKKyAgICAgICAoZXF1YWwgInphdGh1cmEgLS1wYWdlIDEwIC0t ZmluZCBzb21lXFwgd29yZHMgL3BhZ2Utc2VhcmNoLnBkZiIKKyAgICAgICAgICAgICAgKGFu ZCAoc3RyaW5nLW1hdGNoIHBhdHRlcm4gbGluaykKKyAgICAgICAgICAgICAgICAgICAob3Jn LS1vcGVuLWZpbGUtZm9ybWF0LWNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgInphdGh1 cmEgLS1wYWdlICclMScgLS1maW5kICUyIFwiJXNcIiIgZmlsZSBsaW5rIChtYXRjaC1kYXRh KSkpKSkKKyAgICAgIDs7IFVudXNlZCAlMi4KKyAgICAgIChzaG91bGQKKyAgICAgICAoZXF1 YWwgImZpcmVmb3ggZmlsZTovLy9wYWdlLXNlYXJjaC5wZGZcXCNwYWdlPTEwIgorICAgICAg ICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2ggcGF0dGVybiBsaW5rKQorICAgICAgICAgICAg ICAgICAgIChvcmctLW9wZW4tZmlsZS1mb3JtYXQtY29tbWFuZAorICAgICAgICAgICAgICAg ICAgICAiZmlyZWZveCBmaWxlOi8vJXNcXFxcI3BhZ2U9JTEiIGZpbGUgbGluayAobWF0Y2gt ZGF0YSkpKSkpCisgICAgICAoc2hvdWxkCisgICAgICAgKGVxdWFsICJhZGp1Y2VudC1zdWJz dCAvcGFnZS1zZWFyY2gucGRmc29tZVxcIHdvcmRzMTBzb21lXFwgd29yZHMiCisgICAgICAg ICAgICAgIChhbmQgKHN0cmluZy1tYXRjaCBwYXR0ZXJuIGxpbmspCisgICAgICAgICAgICAg ICAgICAgKG9yZy0tb3Blbi1maWxlLWZvcm1hdC1jb21tYW5kCisgICAgICAgICAgICAgICAg ICAgICJhZGp1Y2VudC1zdWJzdCAlcyUyJyUxJyUyIiBmaWxlIGxpbmsgKG1hdGNoLWRhdGEp KSkpKSkKKyAgICA7OyBObyBtb3JlIHRoYW4gOSBzdWJzdGl0dXRpb25zIGFyZSBzdXBwb3J0 ZWQuCisgICAgKGxldCAoKGZpbGUgIi9tYW55LnBkZiIpCisgICAgICAgICAgKGxpbmsgIi9t YW55LnBkZjo6b25lOjI6Mzo0OjU6Njo3Ojg6OTphOmI6YyIpCisgICAgICAgICAgKHBhdHRl cm4gKGNvbmNhdCAiXFwucGRmOiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBj b25jYXQgKGxhbWJkYSAoXykgIjpcXChbXjpdK1xcKSIpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChudW1iZXItc2VxdWVuY2UgMSAxMikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAiXFwnIikpKQorICAgICAgKHNob3VsZAorICAgICAgIChlcXVhbCAib3ZlcmZsb3cg L21hbnkucGRmOjpvbmU6MjozOjQ6NTo2Ojc6ODo5Om9uZTA6b25lMTpvbmUyIgorICAgICAg ICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2ggcGF0dGVybiBsaW5rKQorICAgICAgICAgICAg ICAgICAgIChvcmctLW9wZW4tZmlsZS1mb3JtYXQtY29tbWFuZAorICAgICAgICAgICAgICAg ICAgICAib3ZlcmZsb3cgJXM6OiUxOiUyOiUzOiU0OiU1OiU2OiU3OiU4OiU5OiUxMDolMTE6 JTEyIgorICAgICAgICAgICAgICAgICAgICBmaWxlIGxpbmsgKG1hdGNoLWRhdGEpKSkpKSkK KyAgICA7OyBQZXJjZW50IGNoYXJhY3RlciBpbiBsaW5rIGZpZWxkcyBkb2VzIG5vdCBjYXVz ZSBhbnkgcHJvYmxlbS4KKyAgICAobGV0ICgoZmlsZSAiL2ZpbGUtJTIucGRmIikKKyAgICAg ICAgICAobGluayAiL2ZpbGUtJTIucGRmOjphbmNob3ItJTM6OnNlYXJjaCAlMSIpCisgICAg ICAgICAgKHBhdHRlcm4gIlxcLnBkZjo6XFwoW146XStcXCk6OlxcKC4rXFwpXFwnIikpCisg ICAgICAoc2hvdWxkCisgICAgICAgKGVxdWFsICJwZXJjZW50cyAtLWZpbmQgc2VhcmNoXFwg XFwlMSBmaWxlOi8vL2ZpbGUtXFwlMi5wZGZcXCNhbmNob3ItXFwlMyIKKyAgICAgICAgICAg ICAgKGFuZCAoc3RyaW5nLW1hdGNoIHBhdHRlcm4gbGluaykKKyAgICAgICAgICAgICAgICAg ICAob3JnLS1vcGVuLWZpbGUtZm9ybWF0LWNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAg InBlcmNlbnRzIC0tZmluZCAlMiBmaWxlOi8vJXNcXFxcIyUxIgorICAgICAgICAgICAgICAg ICAgICBmaWxlIGxpbmsgKG1hdGNoLWRhdGEpKSkpKSkKKyAgICA7OyBFcnJvcnMuCisgICAg KGxldCAoKGZpbGUgIi9lcnJvci5wZGYiKQorICAgICAgICAgIChwYXR0ZXJuICJcXC5wZGZc XCciKSkKKyAgICAgIChsZXQqICgoZXJyIChzaG91bGQtZXJyb3IKKyAgICAgICAgICAgICAg ICAgICAoYW5kIChzdHJpbmctbWF0Y2ggcGF0dGVybiBmaWxlKQorICAgICAgICAgICAgICAg ICAgICAgICAgKG9yZy0tb3Blbi1maWxlLWZvcm1hdC1jb21tYW5kCisgICAgICAgICAgICAg ICAgICAgICAgICAgInRyYWlsaW5nLXBlcmNlbnQgJXMgJSIgZmlsZSBmaWxlIChtYXRjaC1k YXRhKSkpCisgICAgICAgICAgICAgICAgICAgOnR5cGUgJ2Vycm9yKSkKKyAgICAgICAgICAg ICAoZXJyLXRleHQgKGNhZHIgZXJyKSkpCisgICAgICAgIChzaG91bGQtbm90ICh1bmxlc3Mg KGFuZCAoc3RyaW5ncCBlcnItdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHJpbmctbWF0Y2gtcCAiXFxgSW52YWxpZCBmb3JtYXQgLiolIiBlcnItdGV4dCkp CisgICAgICAgICAgICAgICAgICAgICAgZXJyKSkpCisgICAgICAobGV0KiAoKGVyciAoc2hv dWxkLWVycm9yCisgICAgICAgICAgICAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoIHBhdHRl cm4gZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChvcmctLW9wZW4tZmlsZS1mb3Jt YXQtY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFpbGluZy1iYWNrc2xh c2ggJXMgXFwiIGZpbGUgZmlsZSAobWF0Y2gtZGF0YSkpKQorICAgICAgICAgICAgICAgICAg IDp0eXBlICdlcnJvcikpCisgICAgICAgICAgICAgKGVyci10ZXh0IChjYWRyIGVycikpKQor ICAgICAgICAoc2hvdWxkLW5vdCAodW5sZXNzIChhbmQgKHN0cmluZ3AgZXJyLXRleHQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgIlxcYElu dmFsaWQgZm9ybWF0IC4qXFxcXCIgZXJyLXRleHQpKQorICAgICAgICAgICAgICAgICAgICAg IGVycikpKQorICAgICAgKGxldCogKChlcnIgKHNob3VsZC1lcnJvcgorICAgICAgICAgICAg ICAgICAgIChhbmQgKHN0cmluZy1tYXRjaCBwYXR0ZXJuIGZpbGUpCisgICAgICAgICAgICAg ICAgICAgICAgICAob3JnLS1vcGVuLWZpbGUtZm9ybWF0LWNvbW1hbmQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAicGVyY2VudC1uZXdsaW5lICVcbiVzIiBmaWxlIGZpbGUgKG1hdGNo LWRhdGEpKSkKKyAgICAgICAgICAgICAgICAgICA6dHlwZSAnZXJyb3IpKQorICAgICAgICAg ICAgIChlcnItdGV4dCAoY2FkciBlcnIpKSkKKyAgICAgICAgKHNob3VsZC1ub3QgKHVubGVz cyAoYW5kIChzdHJpbmdwIGVyci10ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHN0cmluZy1tYXRjaC1wICJcXGBJbnZhbGlkIGZvcm1hdCAuKiVcbiIgZXJyLXRl eHQpKQorICAgICAgICAgICAgICAgICAgICAgIGVycikpKQorICAgICAgOzsgTWFpbGNhcCBl c2NhcGUgZm9yICIlIiBpcyAiXCUiLCBub3QgIiUlIi4KKyAgICAgIChsZXQqICgoZXJyIChz aG91bGQtZXJyb3IKKyAgICAgICAgICAgICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2ggcGF0 dGVybiBmaWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgKG9yZy0tb3Blbi1maWxlLWZv cm1hdC1jb21tYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgInBlcmNlbnQtcGVyY2Vu dCAlcyUlIiBmaWxlIGZpbGUgKG1hdGNoLWRhdGEpKSkKKyAgICAgICAgICAgICAgICAgICA6 dHlwZSAnZXJyb3IpKQorICAgICAgICAgICAgIChlcnItdGV4dCAoY2FkciBlcnIpKSkKKyAg ICAgICAgKHNob3VsZC1ub3QgKHVubGVzcyAoYW5kIChzdHJpbmdwIGVyci10ZXh0KQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wICJcXGBJbnZh bGlkIGZvcm1hdCAuKiUlIiBlcnItdGV4dCkpCisgICAgICAgICAgICAgICAgICAgICAgZXJy KSkpCisgICAgICA7OyBNYWlsY2FwIGFsbG93cyAiJXQiIGZvciBNSU1FIHR5cGUsIGJ1dCBP cmcgaGFzIG5vIHN1Y2ggaW5mb3JtYXRpb24uCisgICAgICAobGV0KiAoKGVyciAoc2hvdWxk LWVycm9yCisgICAgICAgICAgICAgICAgICAgKGFuZCAoc3RyaW5nLW1hdGNoIHBhdHRlcm4g ZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChvcmctLW9wZW4tZmlsZS1mb3JtYXQt Y29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICJwZXJjZW50LXQtdW5zdXBwb3J0 ZWQgLS10eXBlICcldCcgJXMiIGZpbGUgZmlsZSAobWF0Y2gtZGF0YSkpKQorICAgICAgICAg ICAgICAgICAgIDp0eXBlICdlcnJvcikpCisgICAgICAgICAgICAgKGVyci10ZXh0IChjYWRy IGVycikpKQorICAgICAgICAoc2hvdWxkLW5vdCAodW5sZXNzIChhbmQgKHN0cmluZ3AgZXJy LXRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNo LXAgIlxcYEludmFsaWQgZm9ybWF0IC4qJXQiIGVyci10ZXh0KSkKKyAgICAgICAgICAgICAg ICAgICAgICBlcnIpKSkpCisgICAgOzsgT3B0aW9uYWwgcmVndWxhciBleHByZXNzaW9uIGdy b3VwcyBoYXZlIG5vIHBvaW50IGluIGBvcmctZmlsZS1hcHBzJyBwYXR0ZXJucy4KKyAgICAo bGV0KiAoKGZpbGUgIi9lcnJvci5wZGYiKQorICAgICAgICAgICAobGluayAiL2Vycm9yLnBk Zjo6MSIpCisgICAgICAgICAgIChwYXR0ZXJuICJcXC5wZGY6OlxcKFteOl0rXFwpXFwoPzo6 OlxcKC4rXFwpXFwpP1xcJyIpCisgICAgICAgICAgIChlcnIgKHNob3VsZC1lcnJvcgorICAg ICAgICAgICAgICAgICAoYW5kIChzdHJpbmctbWF0Y2ggcGF0dGVybiBsaW5rKQorICAgICAg ICAgICAgICAgICAgICAgIChvcmctLW9wZW4tZmlsZS1mb3JtYXQtY29tbWFuZAorICAgICAg ICAgICAgICAgICAgICAgICAibm8tc3VjaC1tYXRjaCAtLXNlYXJjaCAlMiAlcyIgZmlsZSBs aW5rIChtYXRjaC1kYXRhKSkpCisgICAgICAgICAgICAgICAgIDp0eXBlICdlcnJvcikpCisg ICAgICAgICAgIChlcnItdGV4dCAoY2FkciBlcnIpKSkKKyAgICAgIChzaG91bGQtbm90ICh1 bmxlc3MgKGFuZCAoc3RyaW5ncCBlcnItdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyaW5nLW1hdGNoLXAgIlxcYEludmFsaWQgZm9ybWF0LiolMiIgZXJyLXRl eHQpKQorICAgICAgICAgICAgICAgICAgICBlcnIpKSkpKQorCiAocHJvdmlkZSAndGVzdC1v cmcpCiAKIDs7OyB0ZXN0LW9yZy5lbCBlbmRzIGhlcmUKLS0gCjIuMjUuMQoK --------------uDgoY90BWq1SbD0Y1Bypq4h0--