From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Mauro Aranda Newsgroups: gmane.emacs.bugs Subject: bug#66663: 30.0.50; Allow dir locals file selection in *-dir-local-variable functions Date: Sat, 21 Oct 2023 11:06:28 -0300 Message-ID: References: <03e5c99d-f900-4c8f-88b3-e7b458c0c777@gmail.com> <83o7gsqh3i.fsf@gnu.org> <514ef416-843b-4b80-abcf-cb4621b4b58d@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------EFmtouJOj1YeXyDcPviGJ66C" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39324"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 66663@debbugs.gnu.org, juri@linkov.net To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Oct 21 16:07:50 2023 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 1quCdp-000A1O-88 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 21 Oct 2023 16:07:49 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1quCdb-0004H5-LZ; Sat, 21 Oct 2023 10:07:35 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1quCda-0004Gv-AI for bug-gnu-emacs@gnu.org; Sat, 21 Oct 2023 10:07:34 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1quCdZ-00069U-Uu for bug-gnu-emacs@gnu.org; Sat, 21 Oct 2023 10:07:33 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1quCe1-0002Dz-Nb for bug-gnu-emacs@gnu.org; Sat, 21 Oct 2023 10:08:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mauro Aranda Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 21 Oct 2023 14:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66663 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 66663-submit@debbugs.gnu.org id=B66663.16978972298238 (code B ref 66663); Sat, 21 Oct 2023 14:08:01 +0000 Original-Received: (at 66663) by debbugs.gnu.org; 21 Oct 2023 14:07:09 +0000 Original-Received: from localhost ([127.0.0.1]:44764 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quCdA-00028n-UZ for submit@debbugs.gnu.org; Sat, 21 Oct 2023 10:07:09 -0400 Original-Received: from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b]:55499) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quCd7-00028D-5F for 66663@debbugs.gnu.org; Sat, 21 Oct 2023 10:07:07 -0400 Original-Received: by mail-pg1-x52b.google.com with SMTP id 41be03b00d2f7-5ac88d2cfaaso1379765a12.2 for <66663@debbugs.gnu.org>; Sat, 21 Oct 2023 07:06:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697897191; x=1698501991; darn=debbugs.gnu.org; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=1gP4iZKb3RSJ18U6oOAnkQqiQLR/6Deuzc3Jx81uc4s=; b=MBnxcf9rY7vvF/IvAP64PpsRMTVszPZWcs7ZBG4JwsqAFCvSWsd0J6pO5bHyG8fYOC PvAubYpK2AojitUiidig2xqESGdiZQBSUn8DPeBkCjS3k7FwVMJIPGIo1pUPmDEVyU3w 6ov8p6yCRM2kroTWQT9uoECPEaVyWOGDIeHJi+DwSqVk52hnvbWap9OMJjzcw+1kEH/1 cwZeAwifNMqooaVDTd/7UPtrE6e3s4p7PQ8RazD6iu5VD67GiznjBYbXuhxt/3GKaSu1 Ilf6zKVuG+afG3AiE98JQw3yDsCisWNGg70cEBYUbRQY6cXqqyJJBdAf174TF0iMsgdA YccQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697897191; x=1698501991; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=1gP4iZKb3RSJ18U6oOAnkQqiQLR/6Deuzc3Jx81uc4s=; b=QTBDdhtCcPBXzB4IUHjGOagBJlHjqerZRDBr5QAftjfNb4fOZLa1BurbQZpJmpNewQ 1i7ZMwCBzPe2pdhwiHHKJmg7dvZH6Fxb+oGrhY+Y/pI44AoG4oizUeJa/U97AGFevX1T H6u60w0GErvqj9thf/LJc+bYKy4og0aUkcHY4ytP9OLvYz4QKG/KqSRV1DV9blyaU62S u7bIqwJ9qoG6HaYC65ZM5VdKMafT/T111fXpLui7xgf+Ur2E4d4ivKtgE7HOaIzKjZTY qDz57B/a4MeAJqaXClFX9RjOA4d+kil6OIkPPopDaS9alRA0tQtBdoFt31pWaH8TijAI k7og== X-Gm-Message-State: AOJu0YyKwoNjPy6AfyReWpptnFqOsuuVdXCvRQHgmyvJ1ARCWOL1QU3t 3yin0tbrt+jMDQkqxJeowrA= X-Google-Smtp-Source: AGHT+IE++P07EZT1o4h4wxoL57o89IjrP8TP0GsQbbLQ5Yh+vf/Fm54P6R+bIxnO4pmUht56CSnkNw== X-Received: by 2002:a17:902:facb:b0:1ca:85ae:3b59 with SMTP id ld11-20020a170902facb00b001ca85ae3b59mr4970064plb.9.1697897191360; Sat, 21 Oct 2023 07:06:31 -0700 (PDT) Original-Received: from [192.168.0.234] ([152.168.142.156]) by smtp.gmail.com with ESMTPSA id q21-20020a170902789500b001c8836a3795sm3217916pll.271.2023.10.21.07.06.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 21 Oct 2023 07:06:30 -0700 (PDT) Content-Language: en-US In-Reply-To: <514ef416-843b-4b80-abcf-cb4621b4b58d@gmail.com> 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:272908 Archived-At: This is a multi-part message in MIME format. --------------EFmtouJOj1YeXyDcPviGJ66C Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 21/10/23 10:49, Mauro Aranda wrote: > On 21/10/23 09:45, Eli Zaretskii wrote: > >> Cc: Juri Linkov > >> Date: Sat, 21 Oct 2023 09:16:28 -0300 > >> From: Mauro Aranda > >> > >> +Since both @file{.dir-locals.el} and @file{.dir-locals-2.el} file > >> +might exist in the same directory, there may be some clash about which > >> +file you want to modify when executing the above three commands. To > >> +solve that, all three of them take a prefix argument, to indicate > >> +which file you want to modify. When both files exist, a prefix > >> +argument means to prefer to modify @file{.dir-locals.el} instead of > >> +@file{.dir-locals-2.el}. When one of the files doesn't exist, and > >> +you're adding a variable or copying the file-local variables, a prefix > >> +argument means to modify (i.e., create) the file that doesn't yet > >> +exist. > > > > I think a better UI is to ask the user when the command is invoked > > with a prefix argument. > > Yes, that makes sense. I'll try that approach. I reworked the patch to implement that UI instead. Patch attached. --------------EFmtouJOj1YeXyDcPviGJ66C Content-Type: text/x-patch; charset=UTF-8; name="0001-Allow-specifying-the-dir-locals-file-to-edit-Bug-666.patch" Content-Disposition: attachment; filename*0="0001-Allow-specifying-the-dir-locals-file-to-edit-Bug-666.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwNzdhNmE4YjgzY2QxZmI2ZWZhOWYxNjk4MzFhZDZhZGVjNTIzMTJhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXVybyBBcmFuZGEgPG1hdXJvb2FyYW5kYUBnbWFp bC5jb20+CkRhdGU6IFNhdCwgMjEgT2N0IDIwMjMgMTE6MDI6MzYgLTAzMDAKU3ViamVjdDog W1BBVENIXSBBbGxvdyBzcGVjaWZ5aW5nIHRoZSBkaXIgbG9jYWxzIGZpbGUgdG8gZWRpdCAo QnVnIzY2NjYzKQoKKiBsaXNwL2ZpbGVzLXguZWwgKG1vZGlmeS1kaXItbG9jYWwtdmFyaWFi bGUpOiBUYWtlIGEgNXRoIG9wdGlvbmFsCmFyZ3VtZW50LCB0aGUgZmlsZW5hbWUgb2YgdGhl IGRpciBsb2NhbHMgZmlsZSB0byBtb2RpZnkuCihhZGQtZGlyLWxvY2FsLXZhcmlhYmxlLCBk ZWxldGUtZGlyLWxvY2FsLXZhcmlhYmxlKQooY29weS1maWxlLWxvY2Fscy10by1kaXItbG9j YWxzKTogT3B0aW9uYWxseSByZWFkIHRoZSBmaWxlbmFtZSB0bwptb2RpZnksIGFuZCBwYXNz IGl0IHRvIG1vZGlmeS1kaXItbG9jYWwtdmFyaWFibGUuCiogZXRjL05FV1M6IEFubm91bmNl IHRoZSBjaGFuZ2UuCiogZG9jL2VtYWNzL2N1c3RvbS50ZXhpIChEaXJlY3RvcnkgVmFyaWFi bGVzKTogRG9jdW1lbnQgdGhlIG5ldwpmdW5jdGlvbmFsaXR5LgotLS0KIGRvYy9lbWFjcy9j dXN0b20udGV4aSB8ICAgOCArKy0KIGV0Yy9ORVdTICAgICAgICAgICAgICB8ICAxMCArKysr CiBsaXNwL2ZpbGVzLXguZWwgICAgICAgfCAxMTAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyks IDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9jdXN0b20udGV4aSBi L2RvYy9lbWFjcy9jdXN0b20udGV4aQppbmRleCA4YzMwZjI2YmJmNy4uYWRlY2M4NzMxNjMg MTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy9jdXN0b20udGV4aQorKysgYi9kb2MvZW1hY3MvY3Vz dG9tLnRleGkKQEAgLTE1MDcsNyArMTUwNywxMyBAQCBEaXJlY3RvcnkgVmFyaWFibGVzCiBl bnRyeSBkZWZpbmluZyB0aGUgZGlyZWN0b3J5LWxvY2FsIHZhcmlhYmxlLiAgQGtiZHtNLXgK IGRlbGV0ZS1kaXItbG9jYWwtdmFyaWFibGV9IGRlbGV0ZXMgYW4gZW50cnkuICBAa2Jke00t eAogY29weS1maWxlLWxvY2Fscy10by1kaXItbG9jYWxzfSBjb3BpZXMgdGhlIGZpbGUtbG9j YWwgdmFyaWFibGVzIGluIHRoZQotY3VycmVudCBmaWxlIGludG8gQGZpbGV7LmRpci1sb2Nh bHMuZWx9LgorY3VycmVudCBmaWxlIGludG8gQGZpbGV7LmRpci1sb2NhbHMuZWx9LCBvciBA ZmlsZXsuZGlyLWxvY2Fscy0yLmVsfSBpZgordGhhdCBmaWxlIGlzIGFsc28gcHJlc2VudC4K KworV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgYWxsIHRocmVlIGNvbW1hbmRzIHByb21wdCBm b3IgdGhlIGZpbGUgeW91Cit3YW50IHRvIG1vZGlmeS4gIEFsdGhvdWdoIGl0IGRvZXNuJ3Qg aGF2ZSB0byBleGlzdCwgeW91IG11c3QgZW50ZXIgYQordmFsaWQgZmlsZW5hbWUsIGVpdGhl ciBAZmlsZXsuZGlyLWxvY2Fscy5lbH0gb3IKK0BmaWxley5kaXItbG9jYWxzLTIuZWx9Lgog CiBAZmluZGV4IGRpci1sb2NhbHMtc2V0LWNsYXNzLXZhcmlhYmxlcwogQGZpbmRleCBkaXIt bG9jYWxzLXNldC1kaXJlY3RvcnktY2xhc3MKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRj L05FV1MKaW5kZXggM2Q0Y2RkODc2YjMuLmQ0ODQ2NmJlMzA1IDEwMDY0NAotLS0gYS9ldGMv TkVXUworKysgYi9ldGMvTkVXUwpAQCAtMTg3LDYgKzE4NywxMSBAQCByaWdodC1hbGlnbmVk IHRvIGlzIGNvbnRyb2xsZWQgYnkgdGhlIG5ldyB1c2VyIG9wdGlvbgogSXQgY2FuIGJlIHVz ZWQgdG8gYWRkLCByZW1vdmUgYW5kIHJlb3JkZXIgZnVuY3Rpb25zIHRoYXQgY2hhbmdlCiB0 aGUgYXBwZWFyYW5jZSBvZiBldmVyeSB0YWIgb24gdGhlIHRhYiBiYXIuCiAKKysrKworKiog TmV3IG9wdGlvbmFsIGFyZ3VtZW50IGZvciBtb2RpZnlpbmcgZGlyZWN0b3J5IGxvY2FsIHZh cmlhYmxlcworVGhlIGNvbW1hbmRzICdhZGQtZGlyLWxvY2FsLXZhcmlhYmxlJywgJ2RlbGV0 ZS1kaXItbG9jYWwtdmFyaWFibGUnIGFuZAorJ2NvcHktZmlsZS1sb2NhbHMtdG8tZGlyLWxv Y2Fscycgbm93IHRha2UgYW4gb3B0aW9uYWwgcHJlZml4IGFyZ3VtZW50LAordG8gZW50ZXIg dGhlIGZpbGUgeW91IHdhbnQgdG8gbW9kaWZ5LgogKiogTWlzY2VsbGFuZW91cwogCiAtLS0K QEAgLTEzMzcsNiArMTM0MiwxMSBAQCBTaW5jZSBjaXJjdWxhciBhbGlhcyBjaGFpbnMgbm93 IGNhbm5vdCBvY2N1ciwgJ2Z1bmN0aW9uLWFsaWFzLXAnLAogJ2luZGlyZWN0LWZ1bmN0aW9u JyBhbmQgJ2luZGlyZWN0LXZhcmlhYmxlJyB3aWxsIG5ldmVyIHNpZ25hbCBhbiBlcnJvci4K IFRoZWlyICdub2Vycm9yJyBhcmd1bWVudHMgaGF2ZSBubyBlZmZlY3QgYW5kIGFyZSB0aGVy ZWZvcmUgb2Jzb2xldGUuCiAKKy0tLQorKiogTmV3IG9wdGlvbmFsIGFyZ3VtZW50IHRvICdt b2RpZnktZGlyLWxvY2FsLXZhcmlhYmxlJworQSA1dGggYXJndW1lbnQsIG9wdGlvbmFsLCBo YXMgYmVlbiBhZGRlZCB0bworJ21vZGlmeS1kaXItbG9jYWwtdmFyaWFibGUnLiAgSXQgY2Fu IGJlIHVzZWQgdG8gc3BlY2lmeSB3aGljaAorZGlyLWxvY2FscyBmaWxlIHRvIG1vZGlmeS4K IAwKICogQ2hhbmdlcyBpbiBFbWFjcyAzMC4xIG9uIE5vbi1GcmVlIE9wZXJhdGluZyBTeXN0 ZW1zCiAKZGlmZiAtLWdpdCBhL2xpc3AvZmlsZXMteC5lbCBiL2xpc3AvZmlsZXMteC5lbApp bmRleCAzYmE3NjMyZDI1My4uZWYzYWRjYjljZDMgMTAwNjQ0Ci0tLSBhL2xpc3AvZmlsZXMt eC5lbAorKysgYi9saXNwL2ZpbGVzLXguZWwKQEAgLTMxLDYgKzMxLDcgQEAKIDs7OyBDb2Rl OgogCiAoZXZhbC13aGVuLWNvbXBpbGUgKHJlcXVpcmUgJ3N1YnIteCkpIDsgZm9yIHN0cmlu Zy10cmltLXJpZ2h0CisoZGVjbGFyZS1mdW5jdGlvbiBkb3NpZmllZC1maWxlLW5hbWUgImRv cy1mbnMiIChmaWxlLW5hbWUpKQogCiAMCiA7OzsgQ29tbWFuZHMgdG8gYWRkL2RlbGV0ZSBm aWxlLWxvY2FsL2RpcmVjdG9yeS1sb2NhbCB2YXJpYWJsZXMuCkBAIC00MTAsNyArNDExLDcg QEAgZGVsZXRlLWZpbGUtbG9jYWwtdmFyaWFibGUtcHJvcC1saW5lCiAKIChkZWZ2YXIgYXV0 by1pbnNlcnQpIDsgZnJvbSBhdXRvaW5zZXJ0LmVsCiAKLShkZWZ1biBtb2RpZnktZGlyLWxv Y2FsLXZhcmlhYmxlIChtb2RlIHZhcmlhYmxlIHZhbHVlIG9wKQorKGRlZnVuIG1vZGlmeS1k aXItbG9jYWwtdmFyaWFibGUgKG1vZGUgdmFyaWFibGUgdmFsdWUgb3AgJm9wdGlvbmFsIGZp bGUpCiAgICJNb2RpZnkgZGlyZWN0b3J5LWxvY2FsIFZBUklBQkxFIGluIC5kaXItbG9jYWxz LmVsIGRlcGVuZGluZyBvbiBvcGVyYXRpb24gT1AuCiAKIElmIE9QIGlzIGBhZGQtb3ItcmVw bGFjZScgdGhlbiBkZWxldGUgYWxsIGV4aXN0aW5nIHNldHRpbmdzIG9mCkBAIC00MjIsMjgg KzQyMywzNyBAQCBtb2RpZnktZGlyLWxvY2FsLXZhcmlhYmxlCiB0aGlzIGZpbGUgaW4gdGhl IGN1cnJlbnQgZGlyZWN0b3J5LgogCiBJZiBPUCBpcyBgZGVsZXRlJyB0aGVuIGRlbGV0ZSBh bGwgZXhpc3Rpbmcgc2V0dGluZ3Mgb2YgVkFSSUFCTEUKLWZyb20gdGhlIE1PREUgYWxpc3Qg aWdub3JpbmcgdGhlIGlucHV0IGFyZ3VtZW50IFZBTFVFLiIKK2Zyb20gdGhlIE1PREUgYWxp c3QgaWdub3JpbmcgdGhlIGlucHV0IGFyZ3VtZW50IFZBTFVFLgorCitPcHRpb25hbCBhcmd1 bWVudCBGSUxFLCB3aGVuIG5vbi1uaWwsIHNwZWNpZmllcyB3aGF0IGZpbGUgdG8gbW9kaWZ5 LiAgSXQKK3Nob3VsZCBiZSBhbiBleHBhbmRlZCBmaWxlbmFtZS4iCiAgIChjYXRjaCAnZXhp dAogICAgICh1bmxlc3MgZW5hYmxlLWxvY2FsLXZhcmlhYmxlcwogICAgICAgKHRocm93ICdl eGl0IChtZXNzYWdlICJEaXJlY3RvcnktbG9jYWwgdmFyaWFibGVzIGFyZSBkaXNhYmxlZCIp KSkKLSAgICAobGV0KiAoKGRpci1vci1jYWNoZSAoYW5kIChidWZmZXItZmlsZS1uYW1lKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZmlsZS1yZW1vdGUtcCAoYnVm ZmVyLWZpbGUtbmFtZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpci1s b2NhbHMtZmluZC1maWxlIChidWZmZXItZmlsZS1uYW1lKSkpKQotICAgICAgICAgICAodmFy aWFibGVzLWZpbGUKLSAgICAgICAgICAgIDs7IElmIHRoZXJlIGFyZSBzZXZlcmFsIC5kaXIt bG9jYWxzLCB0aGUgdXNlciBwcm9iYWJseQotICAgICAgICAgICAgOzsgd2FudHMgdG8gZWRp dCB0aGUgbGFzdCBvbmUgKHRoZSBoaWdoZXN0IHByaW9yaXR5KS4KLSAgICAgICAgICAgIChj b25kICgoc3RyaW5ncCBkaXItb3ItY2FjaGUpCi0gICAgICAgICAgICAgICAgICAgKGNhciAo bGFzdCAoZGlyLWxvY2Fscy0tYWxsLWZpbGVzIGRpci1vci1jYWNoZSkpKSkKLSAgICAgICAg ICAgICAgICAgICgoY29uc3AgZGlyLW9yLWNhY2hlKQk7IHJlc3VsdCBmcm9tIGNhY2hlCi0g ICAgICAgICAgICAgICAgICAgOzsgSWYgY2FjaGUgZWxlbWVudCBoYXMgYW4gbXRpbWUsIGFz c3VtZSBpdCBjYW1lCi0gICAgICAgICAgICAgICAgICAgOzsgZnJvbSBhIGZpbGUuICBPdGhl cndpc2UsIGFzc3VtZSBpdCB3YXMgc2V0Ci0gICAgICAgICAgICAgICAgICAgOzsgZGlyZWN0 bHkuCi0gICAgICAgICAgICAgICAgICAgKGlmIChudGggMiBkaXItb3ItY2FjaGUpCi0gICAg ICAgICAgICAgICAgICAgICAgIChjYXIgKGxhc3QgKGRpci1sb2NhbHMtLWFsbC1maWxlcyAo Y2FyIGRpci1vci1jYWNoZSkpKSkKLSAgICAgICAgICAgICAgICAgICAgIChjYWRyIGRpci1v ci1jYWNoZSkpKQotICAgICAgICAgICAgICAgICAgOzsgVHJ5IHRvIG1ha2UgYSBwcm9wZXIg ZmlsZS1uYW1lLgotICAgICAgICAgICAgICAgICAgKHQgKGV4cGFuZC1maWxlLW5hbWUgZGly LWxvY2Fscy1maWxlKSkpKQotICAgICAgICAgICB2YXJpYWJsZXMpCisgICAgKGxldCAoKHZh cmlhYmxlcy1maWxlCisgICAgICAgICAgIChpZiAoc3RyaW5ncCBmaWxlKQorICAgICAgICAg ICAgICAgZmlsZQorICAgICAgICAgICAgIChsZXQgKChkaXItb3ItY2FjaGUKKyAgICAgICAg ICAgICAgICAgICAgKGFuZCAoYnVmZmVyLWZpbGUtbmFtZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAobm90IChmaWxlLXJlbW90ZS1wIChidWZmZXItZmlsZS1uYW1lKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgKGRpci1sb2NhbHMtZmluZC1maWxlIChidWZmZXItZmls ZS1uYW1lKSkpKSkKKyAgICAgICAgICAgICAgIDs7IElmIHRoZXJlIGFyZSBzZXZlcmFsIC5k aXItbG9jYWxzLCB0aGUgdXNlciBwcm9iYWJseQorICAgICAgICAgICAgICAgOzsgd2FudHMg dG8gZWRpdCB0aGUgbGFzdCBvbmUgKHRoZSBoaWdoZXN0IHByaW9yaXR5KS4KKyAgICAgICAg ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgKChzdHJpbmdwIGRpci1vci1jYWNoZSkK KyAgICAgICAgICAgICAgICAgKGNhciAobGFzdCAoZGlyLWxvY2Fscy0tYWxsLWZpbGVzIGRp ci1vci1jYWNoZSkpKSkKKyAgICAgICAgICAgICAgICAoKGNvbnNwIGRpci1vci1jYWNoZSkJ OyByZXN1bHQgZnJvbSBjYWNoZQorICAgICAgICAgICAgICAgICA7OyBJZiBjYWNoZSBlbGVt ZW50IGhhcyBhbiBtdGltZSwgYXNzdW1lIGl0IGNhbWUKKyAgICAgICAgICAgICAgICAgOzsg ZnJvbSBhIGZpbGUuICBPdGhlcndpc2UsIGFzc3VtZSBpdCB3YXMgc2V0CisgICAgICAgICAg ICAgICAgIDs7IGRpcmVjdGx5LgorICAgICAgICAgICAgICAgICAoaWYgKG50aCAyIGRpci1v ci1jYWNoZSkKKyAgICAgICAgICAgICAgICAgICAgIChjYXIgKGxhc3QgKGRpci1sb2NhbHMt LWFsbC1maWxlcyAoY2FyIGRpci1vci1jYWNoZSkpKSkKKyAgICAgICAgICAgICAgICAgICAo Y2FkciBkaXItb3ItY2FjaGUpKSkKKyAgICAgICAgICAgICAgICA7OyBUcnkgdG8gbWFrZSBh IHByb3BlciBmaWxlLW5hbWUuCisgICAgICAgICAgICAgICAgKHQgKGV4cGFuZC1maWxlLW5h bWUgKGlmIChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZG9zaWZpZWQtZmlsZS1uYW1lIGRpci1sb2NhbHMtZmls ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpci1sb2NhbHMt ZmlsZSkpKSkpKSkKKyAgICAgICAgICB2YXJpYWJsZXMpCiAgICAgICA7OyBJIGNhbid0IGJl IGJvdGhlcmVkIHRvIGhhbmRsZSB0aGlzIGNhc2UgcmlnaHQgbm93LgogICAgICAgOzsgRGly IGxvY2FscyB3ZXJlIHNldCBkaXJlY3RseSBmcm9tIGEgY2xhc3MuICBZb3UgbmVlZCB0bwog ICAgICAgOzsgZGlyZWN0bHkgbW9kaWZ5IHRoZSBjbGFzcyBpbiBkaXItbG9jYWxzLWNsYXNz LWFsaXN0LgpAQCAtNTI3LDMzICs1MzcsNjkgQEAgZGlyLWxvY2Fscy10by1zdHJpbmcKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIG1vZGUtdmFyaWFibGVz KSAiXG4iKSkpKQogICAgICAgICAgICB2YXJpYWJsZXMgIlxuIikpKQogCisoZGVmdW4gcmVh ZC1kaXItbG9jYWxzLWZpbGUgKCkKKyAgIlJlYWQgYSBkaXItbG9jYWxzIGZpbGVuYW1lIHVz aW5nIGNvbXBsZXRpb24uCitJbnRlbmRlZCB0byBiZSB1c2VkIGluIHRoZSBgaW50ZXJhY3Rp dmUnIHNwZWMgb2YgYGFkZC1kaXItbG9jYWwtdmFyaWFibGUnLAorYGRlbGV0ZS1kaXItbG9j YWwtdmFyaWFibGUnIGFuZCBgY29weS1maWxlLWxvY2Fscy10by1kaXItbG9jYWxzJy4KKwor UmV0dXJucyB0aGUgZmlsZW5hbWUsIGV4cGFuZGVkLiIKKyAgKGV4cGFuZC1maWxlLW5hbWUK KyAgIChyZWFkLWZpbGUtbmFtZSAiRmlsZSIgbmlsIG5pbAorICAgICAgICAgICAgICAgICAg IChsYW1iZGEgKGZuYW1lKQorICAgICAgICAgICAgICAgICAgICAgKG1lbWJlciAoZmlsZS1u YW1lLW5vbmRpcmVjdG9yeSBmbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpc3QgZGlyLWxvY2Fscy1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIuZWwkIiAiLTIuZWwiIGRpci1sb2NhbHMtZmlsZSkpKSkKKyAgICAg ICAgICAgICAgICAgICBkaXItbG9jYWxzLWZpbGUpKSkKKwogOzs7IyMjYXV0b2xvYWQKLShk ZWZ1biBhZGQtZGlyLWxvY2FsLXZhcmlhYmxlIChtb2RlIHZhcmlhYmxlIHZhbHVlKQotICAi QWRkIGRpcmVjdG9yeS1sb2NhbCBWQVJJQUJMRSB3aXRoIGl0cyBWQUxVRSBhbmQgTU9ERSB0 byAuZGlyLWxvY2Fscy5lbC4iCisoZGVmdW4gYWRkLWRpci1sb2NhbC12YXJpYWJsZSAobW9k ZSB2YXJpYWJsZSB2YWx1ZSAmb3B0aW9uYWwgZmlsZSkKKyAgIkFkZCBkaXJlY3RvcnktbG9j YWwgVkFSSUFCTEUgd2l0aCBpdHMgVkFMVUUgYW5kIE1PREUgdG8gLmRpci1sb2NhbHMuZWwu CisKK1dpdGggYSBwcmVmaXggYXJndW1lbnQsIHByb21wdCBmb3IgdGhlIGZpbGUgdG8gbW9k aWZ5LgorCitXaGVuIGNhbGxlZCBmcm9tIExpc3AsIEZJTEUgbWF5IGJlIHRoZSBleHBhbmRl ZCBuYW1lIG9mIHRoZSBkaXItbG9jYWxzIGZpbGUKK3doZXJlIHRvIGFkZCBWQVJJQUJMRS4i CiAgIChpbnRlcmFjdGl2ZQogICAgKGxldCAodmFyaWFibGUpCiAgICAgIChsaXN0CiAgICAg ICAocmVhZC1maWxlLWxvY2FsLXZhcmlhYmxlLW1vZGUpCiAgICAgICAoc2V0cSB2YXJpYWJs ZSAocmVhZC1maWxlLWxvY2FsLXZhcmlhYmxlICJBZGQgZGlyZWN0b3J5LWxvY2FsIHZhcmlh YmxlIikpCi0gICAgICAocmVhZC1maWxlLWxvY2FsLXZhcmlhYmxlLXZhbHVlIHZhcmlhYmxl KSkpKQotICAobW9kaWZ5LWRpci1sb2NhbC12YXJpYWJsZSBtb2RlIHZhcmlhYmxlIHZhbHVl ICdhZGQtb3ItcmVwbGFjZSkpCisgICAgICAocmVhZC1maWxlLWxvY2FsLXZhcmlhYmxlLXZh bHVlIHZhcmlhYmxlKQorICAgICAgKHdoZW4gY3VycmVudC1wcmVmaXgtYXJnCisgICAgICAg IChyZWFkLWRpci1sb2NhbHMtZmlsZSkpKSkpCisgIChtb2RpZnktZGlyLWxvY2FsLXZhcmlh YmxlIG1vZGUgdmFyaWFibGUgdmFsdWUgJ2FkZC1vci1yZXBsYWNlIGZpbGUpKQogCiA7Ozsj IyNhdXRvbG9hZAotKGRlZnVuIGRlbGV0ZS1kaXItbG9jYWwtdmFyaWFibGUgKG1vZGUgdmFy aWFibGUpCi0gICJEZWxldGUgYWxsIE1PREUgc2V0dGluZ3Mgb2YgZmlsZS1sb2NhbCBWQVJJ QUJMRSBmcm9tIC5kaXItbG9jYWxzLmVsLiIKKyhkZWZ1biBkZWxldGUtZGlyLWxvY2FsLXZh cmlhYmxlIChtb2RlIHZhcmlhYmxlICZvcHRpb25hbCBmaWxlKQorICAiRGVsZXRlIGFsbCBN T0RFIHNldHRpbmdzIG9mIGRpci1sb2NhbCBWQVJJQUJMRSBmcm9tIC5kaXItbG9jYWxzLmVs LgorCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBwcm9tcHQgZm9yIHRoZSBmaWxlIHRvIG1v ZGlmeS4KKworV2hlbiBjYWxsZWQgZnJvbSBMaXNwLCBGSUxFIG1heSBiZSB0aGUgZXhwYW5k ZWQgbmFtZSBvZiB0aGUgZGlyLWxvY2FscyBmaWxlCitmcm9tIHdoZXJlIHRvIGRlbGV0ZSBW QVJJQUJMRS4iCiAgIChpbnRlcmFjdGl2ZQogICAgKGxpc3QKICAgICAocmVhZC1maWxlLWxv Y2FsLXZhcmlhYmxlLW1vZGUpCi0gICAgKHJlYWQtZmlsZS1sb2NhbC12YXJpYWJsZSAiRGVs ZXRlIGRpcmVjdG9yeS1sb2NhbCB2YXJpYWJsZSIpKSkKLSAgKG1vZGlmeS1kaXItbG9jYWwt dmFyaWFibGUgbW9kZSB2YXJpYWJsZSBuaWwgJ2RlbGV0ZSkpCisgICAgKHJlYWQtZmlsZS1s b2NhbC12YXJpYWJsZSAiRGVsZXRlIGRpcmVjdG9yeS1sb2NhbCB2YXJpYWJsZSIpCisgICAg KHdoZW4gY3VycmVudC1wcmVmaXgtYXJnCisgICAgICAocmVhZC1kaXItbG9jYWxzLWZpbGUp KSkpCisgIChtb2RpZnktZGlyLWxvY2FsLXZhcmlhYmxlIG1vZGUgdmFyaWFibGUgbmlsICdk ZWxldGUgZmlsZSkpCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gY29weS1maWxlLWxvY2Fs cy10by1kaXItbG9jYWxzICgpCi0gICJDb3B5IGZpbGUtbG9jYWwgdmFyaWFibGVzIHRvIC5k aXItbG9jYWxzLmVsLiIKLSAgKGludGVyYWN0aXZlKQorKGRlZnVuIGNvcHktZmlsZS1sb2Nh bHMtdG8tZGlyLWxvY2FscyAoJm9wdGlvbmFsIGZpbGUpCisgICJDb3B5IGZpbGUtbG9jYWwg dmFyaWFibGVzIHRvIC5kaXItbG9jYWxzLmVsLgorCitXaXRoIGEgcHJlZml4IGFyZ3VtZW50 LCBwcm9tcHQgZm9yIHRoZSBmaWxlIHRvIG1vZGlmeS4KKworV2hlbiBjYWxsZWQgZnJvbSBM aXNwLCBGSUxFIG1heSBiZSB0aGUgZXhwYW5kZWQgbmFtZSBvZiB0aGUgZGlyLWxvY2FscyBm aWxlCit3aGVyZSB0byBjb3B5IHRoZSBmaWxlLWxvY2FsIHZhcmlhYmxlcy4iCisgIChpbnRl cmFjdGl2ZQorICAgKGxpc3QgKHdoZW4gY3VycmVudC1wcmVmaXgtYXJnCisgICAgICAgICAg IChyZWFkLWRpci1sb2NhbHMtZmlsZSkpKSkKICAgKGRvbGlzdCAoZWx0IGZpbGUtbG9jYWwt dmFyaWFibGVzLWFsaXN0KQogICAgICh1bmxlc3MgKGFzc3EgKGNhciBlbHQpIGRpci1sb2Nh bC12YXJpYWJsZXMtYWxpc3QpCi0gICAgICAoYWRkLWRpci1sb2NhbC12YXJpYWJsZSBtYWpv ci1tb2RlIChjYXIgZWx0KSAoY2RyIGVsdCkpKSkpCisgICAgICAoYWRkLWRpci1sb2NhbC12 YXJpYWJsZSBtYWpvci1tb2RlIChjYXIgZWx0KSAoY2RyIGVsdCkgZmlsZSkpKSkKIAogOzs7 IyMjYXV0b2xvYWQKIChkZWZ1biBjb3B5LWRpci1sb2NhbHMtdG8tZmlsZS1sb2NhbHMgKCkK LS0gCjIuMzQuMQoK --------------EFmtouJOj1YeXyDcPviGJ66C--