From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id kPF7NBUCGmMqWQEAbAwnHQ (envelope-from ) for ; Thu, 08 Sep 2022 16:54:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id wA5hNBUCGmMhdQAA9RJhRA (envelope-from ) for ; Thu, 08 Sep 2022 16:54:13 +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 8B777D86D for ; Thu, 8 Sep 2022 16:54:13 +0200 (CEST) Received: from localhost ([::1]:51252 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oWIg4-0008IK-GT for larch@yhetil.org; Thu, 08 Sep 2022 10:38:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36424) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWIfO-0008I8-1G for emacs-orgmode@gnu.org; Thu, 08 Sep 2022 10:38:06 -0400 Received: from ciao.gmane.io ([116.202.254.214]:37458) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWIfL-0007iY-UV for emacs-orgmode@gnu.org; Thu, 08 Sep 2022 10:38:05 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oWIfH-0003Yn-ND for emacs-orgmode@gnu.org; Thu, 08 Sep 2022 16:37:59 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [PATCH v2] org.el: Preserve case for link subgroups from `org-file-apps' Date: Thu, 8 Sep 2022 21:37:49 +0700 Message-ID: References: <8735d4wvsy.fsf@localhost> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------8Dsm0X64nGVZkV6f5WEbJmxo" 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: <8735d4wvsy.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: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 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, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-3.142, 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=1662648853; 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=ayYo11L8Dx+8NicH1jcbSNjbAlAZp3ktWJk6t8/aZgA=; b=K77GG/h5PMKq4ehz3MQOBV6bJaB6ac7WOP1RS4vAUlcdAFfJG2yYnPlIIhqzSdAIosz8cW Y0mM+ANksR9Pv4F5dXrQNF6YD3ClNpE+fL77EF9TLm3oth83o9FcDHSnx4/4ewbHNHmVav 4bXrYnKRiHvnQ0I/aQCci77dHxPJdxIXuSPwzXUImaj8vcChWmakogOPGHabpqJ9ypPDoW HS3Vd6MkcVwROm21hgHAdZtGPLzpLZXV2fYVV8e3u000TPR7SpQwdqJOakysLEZZFG+hT1 bysNkk9PQ2xPmM8IE6Ygj4z+htLZ9wQANoGOXQTjL95JU/rlyevO0djeGzKpOA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1662648853; a=rsa-sha256; cv=none; b=aA7UUQSFda81Hef4XvpEh8adUHnjS7M3hhYFyyHtoL9Uj84rSCzNgB67EIehbPWJNZ3HbS WBpCkgBVFGdZXJVZad4jrMSdwXv5D4XZ+VpqUpJnu3Ceir9Y4bbZmxbjwaAwmoAtttiPpg R4HIHgTSnfOPz/jyBGU+UheyfYJ6fwcuEwTAXzS4Kb11JV1DXSnLYeR3XSyKefR03Z+ZDx We8707hlvAMlTDbGTdUQVXIl5zvfFT42hnqe6HocEgT07+u/MW+yLXS6pE3l8kEkZu9aQ9 vlG1B1Qs8i68A8A0oj6mjVoDH4lcD+ktsNNQPxV1/GhSXhwUpjCNPPT5YQbm0w== 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: 8B777D86D X-Spam-Score: 4.02 X-Migadu-Scanner: scn1.migadu.com X-TUID: VnaZj808YH9a This is a multi-part message in MIME format. --------------8Dsm0X64nGVZkV6f5WEbJmxo Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 06/09/2022 19:07, Ihor Radchenko wrote: > Max Nikulin writes: > >> Debugging `org-file-apps' and `org-open-file' regexp subgroups I noticed >> an issue: the code distorts case of the link components making them >> invalid. The patch to fix the bug is attached, the commit message >> contains an example of the problem. >> >> Maybe I break some use case, but I am unaware when namely downcased link >> must be used. > > I tracked this dlink business down to > 75563bf71e6df356a5ae77a93152fcf913378107. > The relevant ML discussion is in > https://orgmode.org/list/4B51D104.9090502@jboecker.de It is the thread I mentioned in the commit message. > So, it is probably safe to drop it, especially if tests are passing. There is no tests for `org-open-file'. Checking of file existence, running an asynchronous process make it harder to create such tests. >> ;; First, try matching against apps-dlink if we >> ;; get a match here, store the match data for >> ;; later. >> - (let ((match (assoc-default dlink apps-dlink >> - 'string-match))) >> + (let* ((case-fold-search t) >> + (match (assoc-default link apps-dlink >> + 'string-match))) > > With this patch, `apps-dlink' name becomes completely confusing. > Is there any way to get rid of it as well? (or maybe rename to something > more reasonable). Evey attempt to read this function gives a new surprise. I agree that dlink has no sense any more, see the new patches. --------------8Dsm0X64nGVZkV6f5WEbJmxo Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-org.el-Pass-link-match-data-to-org-file-apps-func.patch" Content-Disposition: attachment; filename*0="v2-0001-org.el-Pass-link-match-data-to-org-file-apps-func.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyODNiMjcyMTg1NzM1MGU5ZWJhNGI4MDU2YjQzMzc2NGJmMTIxMjIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXggTmlrdWxpbiA8bWFuaWt1bGluQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCA4IFNlcCAyMDIyIDE5OjAyOjM3ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MiAxLzNdIG9yZy5lbDogUGFzcyBsaW5rIG1hdGNoIGRhdGEgdG8gYG9yZy1maWxlLWFw cHMnCiBmdW5jdGlvbnMKCiogbGlzcC9vcmcuZWwgKG9yZy0tZmlsZS1hcHBzLWVudHJ5LWRs aW5rLXApOiBGaXggaXQgdG8gcGFzcyBtYXRjaCBkYXRhCnRvIGhhbmRsZXIgZnVuY3Rpb25z IGZyb20gYG9yZy1vcGVuLWZpbGUnIGFsaXN0IHdoZW4gcGF0dGVybiBmaWVsZCBvZgpgb3Jn LWZpbGUtYXBwcycgY29udGFpbnMgcmVnZXhwIHN1Ymdyb3Vwcy4KClVwZGF0ZSBgb3JnLS1m aWxlLWFwcHMtZW50cnktZGxpbmstcCcgdG8gdXNlIGN1cnJlbnQgY29udmVudGlvbiBmb3Ig YWN0aW9uCmZpZWxkIG9mIGBvcmctZmlsZS1hcHBzJyBzdHJ1Y3R1cmUuICBDdXJyZW50bHkg aXQgbWF5IGJlIGEgZnVuY3Rpb24gd2hpbGUKZWFybGllciBzLWV4cHJlc3Npb24gd2FzIGFs bG93ZWQuICBPYnNvbGV0ZSB0ZXN0IHdyb25nbHkgc2VwYXJhdGVkIGFjdGlvbnMKYWJsZSB0 byBoYW5kbGUgcmVnZXhwIHN1Ymdyb3VwcyBtYXRjaGVkIGluIHRoZSBsaW5rLiAgQW4gZXhh bXBsZSB3aGVuCm1hdGNoIGRhdGEgd2VyZSBub3QgcGFzc2VkIHRvIHRoZSBoYW5kbGVyIGZ1 bmN0aW9uOgoKICAgIChhZGQtdG8tbGlzdAogICAgICdvcmctZmlsZS1hcHBzCiAgICAgJygi XFwucGRmXFwoPzpcXC5nelxcfFxcLmJ6MlxcfFxcLnh6XFwpP1xcKD86OjouKlxcKT9cXCci CiAgICAgICAgLiBteS1vcGVuLXBkZi1sb2NhdG9yKSkKCk5vdGljZSB0aGF0IGxhbWJkYSBm dW5jdGlvbnMgcGFzc2VkIGBjb25zcCcgdGVzdCwgc28gbmFtZWx5CmBkZWZ1bicgaXMgcmVx dWlyZWQgdG8gcmVwcm9kdWNlIHRoZSBpc3N1ZS4KClRoaXMgY2hhbmdlIHdhcyBtaXNzZWQg aW4gdGhlIGNvbW1pdDoKCiAgICAgYzhhM2FiMWU0IDIwMTYtMDItMDMgMTg6MzA6MTcgKzAx MDAKICAgICBOaWNvbGFzIEdvYXppb3U6IGBvcmctZmlsZS1hcHBzJyBhY2NlcHQgZnVuY3Rp b25zIGluc3RlYWQgb2Ygc2V4cAoKRm9yIGRpc2N1c3Npb24gb2YgdGhlIGlzc3VlIHdpdGgg ZXZhbHVhdGlvbiBvZiBhcmJpdHJhcnkgZXhwcmVzc2lvbiBzZWUKaHR0cHM6Ly9saXN0Lm9y Z21vZGUub3JnL0NBTG4zem9oK0FDU1UwOWVSdXJmd0tqbUNudzdpLV8wS1g3dEEyaldxdHU9 dnZRZXBMUUBtYWlsLmdtYWlsLmNvbS9ULyN1Ck1pY2hhZWwgQnJhbmQuIG9yZy1wbGF5ZXIg YW5kIHN3aXRjaCB0byBsZXhpY2FsIGJpbmRpbmcgaW4gb3JnLmVsLgpTdW4sIDE3IEphbiAy MDE2IDE5OjU4OjM4ICswMTAwCi0tLQogbGlzcC9vcmcuZWwgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saXNw L29yZy5lbCBiL2xpc3Avb3JnLmVsCmluZGV4IDM0NTYwYzgzZi4uM2QyZmJkMmNiIDEwMDY0 NAotLS0gYS9saXNwL29yZy5lbAorKysgYi9saXNwL29yZy5lbApAQCAtODAwMiw3ICs4MDAy LDcgQEAgYSBwYXJhbWV0ZXIuIgogCSAgKD4gKHJlZ2V4cC1vcHQtZGVwdGggc2VsZWN0b3Ip IDApCiAJICAob3IgKGFuZCAoc3RyaW5ncCBhY3Rpb24pCiAJCSAgIChzdHJpbmctbWF0Y2gg IiVbMC05XSIgYWN0aW9uKSkKLQkgICAgICAoY29uc3AgYWN0aW9uKSkpKQorCSAgICAgIChm dW5jdGlvbnAgYWN0aW9uKSkpKQogICAgIChfIG5pbCkpKQogCiAoZGVmdW4gb3JnLS1maWxl LWFwcHMtcmVnZXhwLWFsaXN0IChsaXN0ICZvcHRpb25hbCBhZGQtYXV0by1tb2RlKQotLSAK Mi4yNS4xCgo= --------------8Dsm0X64nGVZkV6f5WEbJmxo Content-Type: text/x-patch; charset=UTF-8; name="v2-0002-org.el-Preserve-case-for-link-subgroups-from-org-.patch" Content-Disposition: attachment; filename*0="v2-0002-org.el-Preserve-case-for-link-subgroups-from-org-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2ODAwOTgxNzEyODU1Zjc2Yzg4NzAzYjBjYTk5MDVlYzBhZjU1N2NkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXggTmlrdWxpbiA8bWFuaWt1bGluQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCA1IFNlcCAyMDIyIDEzOjU0OjI1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MiAyLzNdIG9yZy5lbDogUHJlc2VydmUgY2FzZSBmb3IgbGluayBzdWJncm91cHMgZnJv bQogYG9yZy1maWxlLWFwcHMnCgoqIGxpc3Avb3JnLmVsIChvcmctb3Blbi1maWxlKTogQXZv aWQgbWF0Y2hpbmcgb2YgYG9yZy1maWxlLWFwcHMnIHJlY29yZHMKYWdhaW5zdCB0aGUgbGlu ayBjb252ZXJ0ZWQgdG8gZG93bmNhc2Ugc2luY2UgaXQgY2F1c2VkIGluY29ycmVjdApzdWJz dGl0dXRpb25zIHRvIHRoZSBjb21tYW5kLgoKQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBlbnRy eQoKICAgIChhZGQtdG8tbGlzdAogICAgICdvcmctZmlsZS1hcHBzCiAgICAgJygiXFwuUERG XFwoPzpcXC5bZ3hdelxcfFxcLmJ6MlxcKT86OlxcKCNbXjpdKlxcKTo6XFwoLitcXClcXCci CiAgICAgIC4gIm9rdWxhciAtLWZpbmQgJTIgLS0gJXMlMSIpKQoKYW5kIHRoZSBsaW5rCjxm aWxlOi8vL3Vzci9zaGFyZS9kb2MvYmFzaC9iYXNocmVmLnBkZjo6I1JlZGlyZWN0aW9uczo6 YmVmb3JlPgpXaXRob3V0IHRoZSBwYXRjaAoKICAgIG9rdWxhciAtLWZpbmQgYmVmb3JlIC0t IC91c3Ivc2hhcmUvZG9jL2Jhc2gvYmFzaHJlZi5wZGZcI3JlZGlyZWN0aW9ucwoKY29tbWFu ZCBpcyBleGVjdXRlZCBhbmQgdGhlIGFwcGxpY2F0aW9uIGNhbiBub3QgcmVzb2x2ZSBpbnRl cm5hbApjcm9zcy1yZWZlcmVuY2UgYW5jaG9yLgoKSW4gaHR0cHM6Ly9saXN0Lm9yZ21vZGUu b3JnLzRCNTFEMTA0LjkwOTA1MDJAamJvZWNrZXIuZGUvVC8jdQpodHRwczovL2xpc3Qub3Jn bW9kZS5vcmcvazJqZmIyZWI2ODExMDA0MDQxNzMzemYxNzZlMGFxODM2NzkyNDc0NmRiODFm NUBtYWlsLmdtYWlsLmNvbS9ULyN1CnRoZSBwdXJwb3NlIG9mIGBkbGluaycgaXMgbm90IGNs YXJpZmllZCwgc28gSSBhc3N1bWUgdGhhdCB0aGUgb25seQpwdXJwb3NlIGlzIHRvIGFsbG93 IG1hdGNoaW5nIGZpbGUgc3VmZml4ZXMsIGUuZy4gIi5wZGYiIHZzICIuUERGIi4KLS0tCiBs aXNwL29yZy5lbCB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9vcmcuZWwgYi9saXNwL29y Zy5lbAppbmRleCAzZDJmYmQyY2IuLjIzNjk2OTY0OSAxMDA2NDQKLS0tIGEvbGlzcC9vcmcu ZWwKKysrIGIvbGlzcC9vcmcuZWwKQEAgLTgxMzQsNyArODEzNCw2IEBAIElmIHRoZSBmaWxl IGRvZXMgbm90IGV4aXN0LCB0aHJvdyBhbiBlcnJvci4iCiAJIChsaW5rIChjb25kIChsaW5l IChjb25jYXQgZmlsZSAiOjoiIChudW1iZXItdG8tc3RyaW5nIGxpbmUpKSkKIAkJICAgICAo c2VhcmNoIChjb25jYXQgZmlsZSAiOjoiIHNlYXJjaCkpCiAJCSAgICAgKHQgZmlsZSkpKQot CSAoZGxpbmsgKGRvd25jYXNlIGxpbmspKQogCSAoZXh0CiAJICAoYW5kIChzdHJpbmctbWF0 Y2ggIlxcYC4qP1xcLlxcKFthLXpBLVowLTldK1xcKFxcLmd6XFwpP1xcKVxcJyIgZGZpbGUp CiAJICAgICAgIChtYXRjaC1zdHJpbmcgMSBkZmlsZSkpKQpAQCAtODE1OSw4ICs4MTU4LDkg QEAgSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIHRocm93IGFuIGVycm9yLiIKIAkJICAg IDs7IEZpcnN0LCB0cnkgbWF0Y2hpbmcgYWdhaW5zdCBhcHBzLWRsaW5rIGlmIHdlCiAJCSAg ICA7OyBnZXQgYSBtYXRjaCBoZXJlLCBzdG9yZSB0aGUgbWF0Y2ggZGF0YSBmb3IKIAkJICAg IDs7IGxhdGVyLgotCQkgICAgKGxldCAoKG1hdGNoIChhc3NvYy1kZWZhdWx0IGRsaW5rIGFw cHMtZGxpbmsKLQkJCQkJCSdzdHJpbmctbWF0Y2gpKSkKKwkJICAgIChsZXQqICgoY2FzZS1m b2xkLXNlYXJjaCB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChhc3Nv Yy1kZWZhdWx0IGxpbmsgYXBwcy1kbGluaworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdzdHJpbmctbWF0Y2gpKSkKIAkJICAgICAgKGlmIG1h dGNoCiAJCQkgIChwcm9nbiAoc2V0cSBsaW5rLW1hdGNoLWRhdGEgKG1hdGNoLWRhdGEpKQog CQkJCSBtYXRjaCkKQEAgLTgxOTEsNyArODE5MSw3IEBAIElmIHRoZSBmaWxlIGRvZXMgbm90 IGV4aXN0LCB0aHJvdyBhbiBlcnJvci4iCiAgICAgICAodXNlci1lcnJvciAiTm8gc3VjaCBm aWxlOiAlcyIgZmlsZSkpCiAgICAgKGNvbmQKICAgICAgKChvcmctc3RyaW5nLW53LXAgY21k KQotICAgICAgKHNldHEgY21kIChvcmctLW9wZW4tZmlsZS1mb3JtYXQtY29tbWFuZCBjbWQg ZmlsZSBkbGluayBsaW5rLW1hdGNoLWRhdGEpKQorICAgICAgKHNldHEgY21kIChvcmctLW9w ZW4tZmlsZS1mb3JtYXQtY29tbWFuZCBjbWQgZmlsZSBsaW5rIGxpbmstbWF0Y2gtZGF0YSkp CiAKICAgICAgIChzYXZlLXdpbmRvdy1leGN1cnNpb24KIAkobWVzc2FnZSAiUnVubmluZyAl cy4uLmRvbmUiIGNtZCkKLS0gCjIuMjUuMQoK --------------8Dsm0X64nGVZkV6f5WEbJmxo Content-Type: text/x-patch; charset=UTF-8; name="v2-0003-org.el-Avoid-dlink-identifiers-in-org-open-file.patch" Content-Disposition: attachment; filename*0="v2-0003-org.el-Avoid-dlink-identifiers-in-org-open-file.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSAyOGIzNzQwOWNiYmNlOGEyZWFlMmQ3OWNiZjgwN2NlOGYzYzdkZWIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXggTmlrdWxpbiA8bWFuaWt1bGluQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCA4IFNlcCAyMDIyIDE5OjEzOjM1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MiAzLzNdIG9yZy5lbDogQXZvaWQgZGxpbmsgaWRlbnRpZmllcnMgaW4gYG9yZy1vcGVu LWZpbGUnCgoqIGxpc3Avb3JnLmVsIChvcmctLWZpbGUtYXBwcy1lbnRyeS1sb2NhdG9yLXAp OiBSZW5hbWUgZnJvbQpgb3JnLS1maWxlLWFwcHMtZW50cnktZGxpbmstcCcuCihvcmctb3Bl bi1maWxlKTogQXZvaWQgY29uZnVzaW5nICJkbGluayIgcGFydCBvZiBzb21lIGlkZW50aWZp ZXJzLgpFYXJsaWVyIGBkbGluaycgbG9jYWwgdmFyaWFibGUgd2FzIHJlbW92ZWQgdG8gcHJl dmVudCBhbiBpc3N1ZSB3aXRoCmRpc3RvcnRlZCBjYXNlIG9mIGxpbmsgY29tcG9uZW50cy4K LS0tCiBsaXNwL29yZy5lbCB8IDE0ICsrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3Avb3Jn LmVsIGIvbGlzcC9vcmcuZWwKaW5kZXggMjM2OTY5NjQ5Li42NDEyZDMwOTAgMTAwNjQ0Ci0t LSBhL2xpc3Avb3JnLmVsCisrKyBiL2xpc3Avb3JnLmVsCkBAIC03OTg4LDcgKzc5ODgsNyBA QCBUaGlzIGlzIHNhdmVkIGluIGNhc2UgdGhlIG5lZWQgYXJpc2VzIHRvIHJlc3RvcmUgaXQu IikKICAgICAoYHdpbmRvd3MtbnQgb3JnLWZpbGUtYXBwcy13aW5kb3dzbnQpCiAgICAgKF8g b3JnLWZpbGUtYXBwcy1nbnUpKSkKIAotKGRlZnVuIG9yZy0tZmlsZS1hcHBzLWVudHJ5LWRs aW5rLXAgKGVudHJ5KQorKGRlZnVuIG9yZy0tZmlsZS1hcHBzLWVudHJ5LWxvY2F0b3ItcCAo ZW50cnkpCiAgICJOb24tbmlsIGlmIEVOVFJZIHNob3VsZCBiZSBtYXRjaGVkIGFnYWluc3Qg dGhlIGxpbmsgYnkgYG9yZy1vcGVuLWZpbGUnLgogCiBJdCBhc3N1bWVzIHRoYXQgaXMgdGhl IGNhc2Ugd2hlbiB0aGUgZW50cnkgdXNlcyBhIHJlZ3VsYXIKQEAgLTgxMTksOSArODExOSw5 IEBAIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aHJvdyBhbiBlcnJvci4iCiAgIChs ZXQqICgoZmlsZSAoaWYgKGVxdWFsIHBhdGggIiIpIGJ1ZmZlci1maWxlLW5hbWUKIAkJIChz dWJzdGl0dXRlLWluLWZpbGUtbmFtZSAoZXhwYW5kLWZpbGUtbmFtZSBwYXRoKSkpKQogCSAo ZmlsZS1hcHBzIChhcHBlbmQgb3JnLWZpbGUtYXBwcyAob3JnLS1maWxlLWRlZmF1bHQtYXBw cykpKQotCSAoYXBwcyAoY2wtcmVtb3ZlLWlmICMnb3JnLS1maWxlLWFwcHMtZW50cnktZGxp bmstcCBmaWxlLWFwcHMpKQotCSAoYXBwcy1kbGluayAoY2wtcmVtb3ZlLWlmLW5vdCAjJ29y Zy0tZmlsZS1hcHBzLWVudHJ5LWRsaW5rLXAKLQkJCQkgICAgICAgZmlsZS1hcHBzKSkKKwkg KGFwcHMgKGNsLXJlbW92ZS1pZiAjJ29yZy0tZmlsZS1hcHBzLWVudHJ5LWxvY2F0b3ItcCBm aWxlLWFwcHMpKQorCSAoYXBwcy1sb2NhdG9yIChjbC1yZW1vdmUtaWYtbm90ICMnb3JnLS1m aWxlLWFwcHMtZW50cnktbG9jYXRvci1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZpbGUtYXBwcykpCiAJIChyZW1wIChhbmQgKGFzc3EgJ3JlbW90ZSBh cHBzKSAoZmlsZS1yZW1vdGUtcCBmaWxlKSkpCiAJIChkaXJwICh1bmxlc3MgcmVtcCAoZmls ZS1kaXJlY3RvcnktcCBmaWxlKSkpCiAJIChmaWxlIChpZiAoYW5kIGRpcnAgb3JnLW9wZW4t ZGlyZWN0b3J5LW1lYW5zLWluZGV4LWRvdC1vcmcpCkBAIC04MTU1LDE3ICs4MTU1LDE3IEBA IElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aHJvdyBhbiBlcnJvci4iCiAgICAgICh0 CiAgICAgICAoc2V0cSBjbWQgKG9yIChhbmQgcmVtcCAoY2RyIChhc3NxICdyZW1vdGUgYXBw cykpKQogCQkgICAgKGFuZCBkaXJwIChjZHIgKGFzc3EgJ2RpcmVjdG9yeSBhcHBzKSkpCi0J CSAgICA7OyBGaXJzdCwgdHJ5IG1hdGNoaW5nIGFnYWluc3QgYXBwcy1kbGluayBpZiB3ZQor CQkgICAgOzsgRmlyc3QsIHRyeSBtYXRjaGluZyBhZ2FpbnN0IGFwcHMtbG9jYXRvciBpZiB3 ZQogCQkgICAgOzsgZ2V0IGEgbWF0Y2ggaGVyZSwgc3RvcmUgdGhlIG1hdGNoIGRhdGEgZm9y CiAJCSAgICA7OyBsYXRlci4KIAkJICAgIChsZXQqICgoY2FzZS1mb2xkLXNlYXJjaCB0KQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChhc3NvYy1kZWZhdWx0IGxpbmsg YXBwcy1kbGluaworICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChhc3NvYy1k ZWZhdWx0IGxpbmsgYXBwcy1sb2NhdG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3N0cmluZy1tYXRjaCkpKQogCQkgICAgICAoaWYgbWF0 Y2gKIAkJCSAgKHByb2duIChzZXRxIGxpbmstbWF0Y2gtZGF0YSAobWF0Y2gtZGF0YSkpCiAJ CQkJIG1hdGNoKQogCQkJKHByb2duIChzZXRxIGluLWVtYWNzIChvciBpbi1lbWFjcyBsaW5l IHNlYXJjaCkpCi0JCQkgICAgICAgbmlsKSkpIDsgaWYgd2UgaGF2ZSBubyBtYXRjaCBpbiBh cHBzLWRsaW5rLAorCQkJICAgICAgIG5pbCkpKSA7IGlmIHdlIGhhdmUgbm8gbWF0Y2ggaW4g YXBwcy1sb2NhdG9yLAogCQkJCQk7IGFsd2F5cyBvcGVuIHRoZSBmaWxlIGluIGVtYWNzIGlm IGxpbmUgb3Igc2VhcmNoCiAJCQkJCTsgaXMgZ2l2ZW4gKGZvciBiYWNrd2FyZHMgY29tcGF0 aWJpbGl0eSkKIAkJICAgIChhc3NvYy1kZWZhdWx0IGRmaWxlCi0tIAoyLjI1LjEKCg== --------------8Dsm0X64nGVZkV6f5WEbJmxo--