From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id oDwwFi2AMGFV4wAAgWs5BA (envelope-from ) for ; Thu, 02 Sep 2021 09:41:33 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id cBGVES2AMGErbgAAbx9fmQ (envelope-from ) for ; Thu, 02 Sep 2021 07:41:33 +0000 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 7D931287A for ; Thu, 2 Sep 2021 09:41:32 +0200 (CEST) Received: from localhost ([::1]:54490 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mLhLl-0007sd-62 for larch@yhetil.org; Thu, 02 Sep 2021 03:41:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59592) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLhKn-0007qM-DG for emacs-orgmode@gnu.org; Thu, 02 Sep 2021 03:40:30 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:44650) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mLhKk-0007gk-Cl for emacs-orgmode@gnu.org; Thu, 02 Sep 2021 03:40:29 -0400 Received: by mail-wr1-x42d.google.com with SMTP id g18so1334878wrc.11 for ; Thu, 02 Sep 2021 00:40:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vicarious-living-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jo8jood1nfazC7BbFzbBTzrPXjK+9lRr0MswBphqvAs=; b=WLrotJVoAqXFz4qY0Iw84JM+MSIi+/QAl/2FPAc1Pr54lpLZBWalnWFwebYLAicymH SvvOwssZYt+bNvsOMorcotCAKRJDI9O4r8F40T/d4+VKpniM3tMYP4jk+uqS3Ya9HP6Q u0UofsrH0+szsQkBeEhjItgFZIQs40NtAIWNJVg6H0XkYCIsiClMHPtWTRyArK2d4Mmc 5YNyiM8uVtsxEysd8EQulQaxfacEEiH+hPhmbV3Uyb0wg2Hqy1IvEDeRk4O05Oc0hyWX UKXb0GCPVYRA3XyIbi4EuKiyLcZ1DE3QWjWn9ibpgk5VptWfZSph/lcjGefcwC8HSqrS sIdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jo8jood1nfazC7BbFzbBTzrPXjK+9lRr0MswBphqvAs=; b=lKa8dbCNVK7yJezn9Jjb+KVXxI5ZGOQUbKSpoQRubH1wCrqz68mbCA2H/o7zqCShLi LQfY7TksA39Mo9IX9zrqvw/5c7bG6n0aDDnCAlb2y0CMiDTA5TMvhHy8dcr/nrCAg1Pl BLFj634P+eYVwAx1cVC/TSO08FjSEXYJK+SsIXQM4NR1dWVRSxUYl+/PaN0K1fES9tiH G4V0+4HrYPOxvkrdSmm4sVIcTp4QgFPiKWNm8qhbOfVCRIaDekdA9pbbEXuZZJmhxEWP /rk0eDTPcRauhsrznxzx/yvwZ1HFEiGZlIzfmXRaNI6ubAzA/ZUdf/67IwtuHrl4oonh +YJg== X-Gm-Message-State: AOAM531ijwtvw2JV9DIu2aEIJMhgFN3/yCS5t6maFD2xpXCUg8yBtgZW bcx4RLwhtzZmsu0jg5jIvxmWJSpAQfNi3Qs+m4eV+g== X-Google-Smtp-Source: ABdhPJwpi0ir53Mqczp1JJ4BbPbkcE9I96HGFk8bLnMdgiFH0Lxnk+CCQlzxDXuhp3s2c7sQslz+BNM2stRqEMxfXIc= X-Received: by 2002:adf:90c1:: with SMTP id i59mr2012815wri.88.1630568424788; Thu, 02 Sep 2021 00:40:24 -0700 (PDT) MIME-Version: 1.0 References: <878s0hq2kc.fsf@gmail.com> <87lf4gxskm.fsf@localhost> In-Reply-To: From: Ryan Scott Date: Thu, 2 Sep 2021 00:40:14 -0700 Message-ID: Subject: [PATCH] Re: New source block results option for attaching file to node To: Ihor Radchenko Content-Type: multipart/mixed; boundary="000000000000bdf6d405cafe4bd6" Received-SPF: none client-ip=2a00:1450:4864:20::42d; envelope-from=ryan@vicarious-living.com; helo=mail-wr1-x42d.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org, Timothy Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1630568492; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc: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:dkim-signature; bh=x/8jMSUcg70y3sbqborPoWlxPjBJ7MKtNnds53Cch9Q=; b=qdghCsJrFzqM5q9KaB2NA7F/uT0qlXkZU+GiZgFodqKO01VAYUlfYBu7SHcBjVdT4/7Egs pVbUkaqZPJ10N8UxFFukBNRhJD6R/UyLArrbSi33zhnXuaQjVdVOdOmd4YWIcxBll06RuA y6fof1tkoNifMJIW/Yy6rHG6uEuz/REnAEtyHwSZTP+6LcVtx+lXDevQn2l4rH44mQlDDr Xn2hpWfm8Yjm1h/jYasVVevkkDLoJYIkC4NQMxKT71ty9j5zTlRPvMkYFGMjRcLJItHslS 9du6NJJTAZNgdfjoE4sNpzUkvPThXXihRWxtC9LdIWwJr9W8I4CHUQKUZfOY5g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1630568492; a=rsa-sha256; cv=none; b=LT+FXrwhT34iOw3E/ToF1M4vBeydZv24ESp9ipP1L1xUfp44dW9huu+Y+Ob+5dvrfWsvvC Oe6pPw4e3MSmxGQzfmqYIhqrNOEyWxiidJl7Hb+ku/JUPGva/ontkS8kW+i/4h7oC+vWXY CIS58/2TGE68OfUtqJAYwnlEoLrQXJxMsMwZThKOOlFS67Qi1vErlq6sEXZlcA99D7TXUj Vv4vpspGc7Ul6zkZei+3RNQmRurb1XIX0evSZUI8rqgwVqxjPk7zu1qxVr/de+fE8+jJ3o +tl9B9w/JaLv5Z/lmXIzq3wgBActpcOxdVJuSqHHVh2YCsIVHhdEoAR8Gmj//w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=vicarious-living-com.20150623.gappssmtp.com header.s=20150623 header.b=WLrotJVo; dmarc=none; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Spam-Score: -1.42 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=vicarious-living-com.20150623.gappssmtp.com header.s=20150623 header.b=WLrotJVo; dmarc=none; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Queue-Id: 7D931287A X-Spam-Score: -1.42 X-Migadu-Scanner: scn1.migadu.com X-TUID: knfIfr5u3DkQ --000000000000bdf6d405cafe4bd6 Content-Type: multipart/alternative; boundary="000000000000bdf6d105cafe4bd4" --000000000000bdf6d105cafe4bd4 Content-Type: text/plain; charset="UTF-8" Updated patch; fixed typos and wrapped the commit message to 72 characters Thinking about the input files issue some more, I wonder if an attach keyword wouldn't better function as setting the working directory to the node's attachment directory and then fixing up any inserted link to use "attachment:" if it's relative to that. I've been working with this for a bit in my own workflow and it's been useful, but I'll see about maybe experimenting with some other approaches as well. Moving the referenced file to the attachment directory never felt completely right to me. On Wed, Sep 1, 2021 at 1:01 PM Ryan Scott wrote: > I hadn't thought about input directories much as my usage of > graphviz/gnuplots is through [essentially] DSLs that I made for them, so > the blocks are actually elisp. > Perhaps a convenient way of setting the working directory to the > attachment directory per-block makes sense? > > My own personal coding style doesn't include a hard line limit, so it just > wasn't on my mind. > > I'll get my patch updated and submitted shortly. Thanks for the help! > > On Wed, Sep 1, 2021 at 7:44 AM Ihor Radchenko wrote: > >> Ryan Scott writes: >> >> The patch looks fine for me except a typo: >> >> > + by the source block to the nodes attachmen directory (as >> ^attachment >> >> > org-attach-dir is a function for me (latest org pulled using >> straight.el) >> > org/lisp/org-attach.el:327. >> >> Timothy probably does not have (require 'org-attach) in his personal >> config. However, it should not be an issue for your patch with the >> autoload you added. >> >> > The primary use case is src blocks that generate files, in my case >> usually >> > gnuplot or graphviz, and return a file path. With a collection of org >> files >> > in a directory, organization can get messy, and creating an >> organizational >> > scheme essentially recreates the attachment directory design. >> >> I am also using attach directories for gnuplot output. Your approach is >> fine, but what about input directory? I find it a bit awkward to store >> input files alongside with the main .org file, while keeping the output >> images as attachments. >> >> I personally prefer to set the working dir for gnuplot like >> >> #+begin_src gnuplot :dir (org-attach-dir) >> >> With my approach, both the input and output files are going to be in the >> attach dir. >> >> I even go as far as making attach dir my default directory of all the >> code blocks. >> >> Though your patch may be useful when input directory is read-only or >> even remote. >> >> > Another approach would be to instead only modify org to have hooks (or >> any >> > other callback mechanism really) that are run on link insertion and have >> > access to the result-params for the block. The rest of this could then >> be a >> > separate package easily enough. Would that be a better approach as it >> would >> > allow the org core to not be so tightly coupled to org-attach? >> >> org-attach is in the Org core. It should not be a problem supporting >> org-attach in org babel. >> >> > I'm using magit; I just don't normally restrain myself to the line >> length. >> > I'll make sure to do that for submitted patches here. >> >> You may find flycheck-mode useful to hint things like line length. >> >> > In terms of this mailing list and overall contribution process, how >> best to >> > remedy things for the patch? Just modify it and reply with the modified >> > patch as an attachment? >> >> Yep. Just submit the updated patch. Preferably, also add [PATCH] at the >> beginning of the message topic. Then, the patch will also be shown in >> updates.orgmode.org >> >> Best, >> Ihor >> > --000000000000bdf6d105cafe4bd4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Updated patch; fixed typos and wrapped the commit mes= sage to 72 characters

Thinking about the input= files issue some more, I wonder if an attach keyword wouldn't better f= unction as setting the working directory to the node's attachment direc= tory and then fixing up any inserted link to use "attachment:" if= it's relative to that.

I've been working = with this for a bit in my own workflow and it's been useful, but I'= ll see about maybe experimenting with some other approaches as well. Moving= the referenced file to the attachment directory never felt completely righ= t to me.

On Wed, Sep 1, 2021 at 1:01 PM Ryan Scott <ryan@vicarious-living.com> wr= ote:
I hadn't thought about input directories much as my usage of= graphviz/gnuplots is through [essentially] DSLs that I made for them, so t= he blocks are actually elisp.
Perhaps a convenient way of setting= the working directory to the attachment directory per-block makes sense?

My own personal coding style doesn't include a = hard line limit, so it just wasn't on my mind.

=
I'll get my patch updated and submitted shortly. Thanks for the he= lp!

On Wed, Sep 1, 2021 at 7:44 AM Ihor Radchenko <yantar92@gmail.com> wrot= e:
Ryan Scott &l= t;ryan@vicar= ious-living.com> writes:

The patch looks fine for me except a typo:

> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 by the source block to the nodes a= ttachmen directory (as
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 ^attachment

> org-attach-dir is a function for me (latest org pulled using straight.= el)
> org/lisp/org-attach.el:327.

Timothy probably does not have (require 'org-attach) in his personal config. However, it should not be an issue for your patch with the
autoload you added.

> The primary use case is src blocks that generate files, in my case usu= ally
> gnuplot or graphviz, and return a file path. With a collection of org = files
> in a directory, organization can get messy, and creating an organizati= onal
> scheme essentially recreates the attachment directory design.

I am also using attach directories for gnuplot output. Your approach is
fine, but what about input directory? I find it a bit awkward to store
input files alongside with the main .org file, while keeping the output
images as attachments.

I personally prefer to set the working dir for gnuplot like

#+begin_src gnuplot :dir (org-attach-dir)

With my approach, both the input and output files are going to be in the attach dir.

I even go as far as making attach dir my default directory of all the
code blocks.

Though your patch may be useful when input directory is read-only or
even remote.

> Another approach would be to instead only modify org to have hooks (or= any
> other callback mechanism really) that are run on link insertion and ha= ve
> access to the result-params for the block. The rest of this could then= be a
> separate package easily enough. Would that be a better approach as it = would
> allow the org core to not be so tightly coupled to org-attach?

org-attach is in the Org core. It should not be a problem supporting
org-attach in org babel.

> I'm using magit; I just don't normally restrain myself to the = line length.
> I'll make sure to do that for submitted patches here.

You may find flycheck-mode useful to hint things like line length.

> In terms of this mailing list and overall contribution process, how be= st to
> remedy things for the patch? Just modify it and reply with the modifie= d
> patch as an attachment?

Yep. Just submit the updated patch. Preferably, also add [PATCH] at the
beginning of the message topic. Then, the patch will also be shown in
updates.orgmode.org

Best,
Ihor
--000000000000bdf6d105cafe4bd4-- --000000000000bdf6d405cafe4bd6 Content-Type: application/octet-stream; name="0001-ob-core-Added-option-for-attaching-file-from-babel-s.patch" Content-Disposition: attachment; filename="0001-ob-core-Added-option-for-attaching-file-from-babel-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kt2m4g6v0 RnJvbSBjYmU5NzU4N2RmNGI2NjBmNTZlNDIwMDE1MjIyZTRmMzU1OTU4OGEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUnlhbiBDLiBTY290dCIgPHJ5YW5ANXBtY2FzdWFsLmNvbT4K RGF0ZTogV2VkLCAyNSBBdWcgMjAyMSAwMjoxNTowOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIG9i LWNvcmU6IEFkZGVkIG9wdGlvbiBmb3IgYXR0YWNoaW5nIGZpbGUgZnJvbSBiYWJlbApzcmMgYmxv Y2sgcmVzdWx0CgoqIG9iLWNvcmUuZWwgKG9yZy1iYWJlbC1mb3JtYXQtcmVzdWx0KTogQWRkZWQg YDpyZXN1bHRzLXBhcmFtJyBvcHRpb24KYGF0dGFjaCcgd2hpY2ggd2hlbiB1c2VkIHdpdGggYGZp bGUnIHdpbGwgY2F1c2UgdGhlIHJlc3VsdGFudCBmaWxlIHBhdGgKdG8gYmUgbW92ZWQgdG8gdGhl IGBvcmctYXR0YWNoLWRpcicgZm9yIHRoZSBub2RlLgoob3JnLWJhYmVsLXJlc3VsdC10by1maWxl KTogQWRkZWQgb3B0aW9uYWwgM3JkIHBhcmFtZXRlciBgdHlwZScgd2hpY2gKd2lsbCBiZSB1c2Vk IGluIHBsYWNlIG9mICJmaWxlIiBpbiBsaW5rIHR5cGUsIGlmIHByZXNlbnQuCihvcmctYmFiZWwt cmVzdWx0LXRvLWZpbGUtYXR0YWNobWVudCk6IE5ldyBmdW5jdGlvbiB0aGF0IG1vdmVzIHRoZSBm aWxlCmF0IHRoZSBwcm92aWRlZCBgcmVzdWx0JyBwYXRoIHRvIHRoZSBub2RlcyBhdHRhY2htZW50 IGRpcmVjdG9yeSwKY3JlYXRpbmcgaXQgYXMgbmVjZXNzYXJ5IHVzaW5nIGBvcmctYXR0YWNoLWRp cicuICBBIG5ldyBmdW5jdGlvbiB3YXMKY3JlYXRlZCB0byBhZGhlcmUgdG8gdGhlIGRlc2lnbiBv ZiB0aGUgQVBJIGFuZCBub3QgY29tcGxpY2F0ZWQKYG9yZy1iYWJlbC1yZXN1bHQtdG8tZmlsZScg d2l0aCB0aGUgbW92ZW1lbnQgdG8gdGhlIGF0dGFjaG1lbnQKZGlyZWN0b3J5LgoKKiBvcmctYXR0 YWNoLmVsIChvcmctYXR0YWNoLWRpcik6IEFkZGVkIGF1dG9sb2FkIGhlYWRlciB0byBzaW1wbGlm eQpkZXBlbmRlbmNpZXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgdGhpcyBmZWF0dXJlIChjYWxsZWQg aW4KYG9yZy1iYWJlbC1yZXN1bHQtdG8tZmlsZS1hdHRhY2htZW50JykuCi0tLQogbGlzcC9vYi1j b3JlLmVsICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogbGlzcC9vcmct YXR0YWNoLmVsIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3Avb2ItY29yZS5lbCBiL2xpc3Avb2ItY29yZS5l bAppbmRleCA4NTdlMDNlNTUuLmMxZDFiNzdlMCAxMDA2NDQKLS0tIGEvbGlzcC9vYi1jb3JlLmVs CisrKyBiL2xpc3Avb2ItY29yZS5lbApAQCAtMjE4OCw2ICsyMTg4LDEwIEBAIHNpbGVudCAtLSBu byByZXN1bHRzIGFyZSBpbnNlcnRlZCBpbnRvIHRoZSBPcmcgYnVmZmVyIGJ1dAogZmlsZSAtLS0t IHRoZSByZXN1bHRzIGFyZSBpbnRlcnByZXRlZCBhcyBhIGZpbGUgcGF0aCwgYW5kIGFyZQogICAg ICAgICAgIGluc2VydGVkIGludG8gdGhlIGJ1ZmZlciB1c2luZyB0aGUgT3JnIGZpbGUgc3ludGF4 LgogCithdHRhY2ggLS0gdXNlZCB3aXRoIGBmaWxlJywgd2lsbCBtb3ZlIHRoZSBmaWxlIGF0IHRo ZSBwYXRoIHJldHVybmVkCisgICAgICAgICAgYnkgdGhlIHNvdXJjZSBibG9jayB0byB0aGUgbm9k ZXMgYXR0YWNobWVudCBkaXJlY3RvcnkgKGFzCisgICAgICAgICAgcmVwb3J0ZWQgYnkgYG9yZy1h dHRhY2gtZGlyJy4KKwogbGlzdCAtLS0tIHRoZSByZXN1bHRzIGFyZSBpbnRlcnByZXRlZCBhcyBh biBPcmcgbGlzdC4KIAogcmF3IC0tLS0tIHJlc3VsdHMgYXJlIGFkZGVkIGRpcmVjdGx5IHRvIHRo ZSBPcmcgZmlsZS4gIFRoaXMgaXMKQEAgLTIyNDEsOSArMjI0NSwxMyBAQCBJTkZPIG1heSBwcm92 aWRlIHRoZSB2YWx1ZXMgb2YgdGhlc2UgaGVhZGVyIGFyZ3VtZW50cyAoaW4gdGhlCiAgIChjb25k ICgoc3RyaW5ncCByZXN1bHQpCiAJIChzZXRxIHJlc3VsdCAob3JnLW5vLXByb3BlcnRpZXMgcmVz dWx0KSkKIAkgKHdoZW4gKG1lbWJlciAiZmlsZSIgcmVzdWx0LXBhcmFtcykKLQkgICAoc2V0cSBy ZXN1bHQgKG9yZy1iYWJlbC1yZXN1bHQtdG8tZmlsZQotCQkJIHJlc3VsdAotCQkJIChvcmctYmFi ZWwtLWZpbGUtZGVzYyAobnRoIDIgaW5mbykgcmVzdWx0KSkpKSkKKwkgICAoc2V0cSByZXN1bHQg KGlmIChtZW1iZXIgImF0dGFjaCIgcmVzdWx0LXBhcmFtcykKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAob3JnLWJhYmVsLXJlc3VsdC10by1maWxlLWF0dGFjaG1lbnQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChv cmctYmFiZWwtLWZpbGUtZGVzYyAobnRoIDIgaW5mbykgcmVzdWx0KSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgKG9yZy1iYWJlbC1yZXN1bHQtdG8tZmlsZQorCQkJICAgcmVzdWx0CisJCQkg ICAob3JnLWJhYmVsLS1maWxlLWRlc2MgKG50aCAyIGluZm8pIHJlc3VsdCkpKSkpKQogCSgobGlz dHAgcmVzdWx0KSkKIAkodCAoc2V0cSByZXN1bHQgKGZvcm1hdCAiJVMiIHJlc3VsdCkpKSkKICAg KGlmIChhbmQgcmVzdWx0LXBhcmFtcyAobWVtYmVyICJzaWxlbnQiIHJlc3VsdC1wYXJhbXMpKQpA QCAtMjU0OCw3ICsyNTU2LDcgQEAgaW4gdGhlIGJ1ZmZlci4iCiAJCSAobGluZS1iZWdpbm5pbmct cG9zaXRpb24gMikpCiAJICAgICAocG9pbnQpKSkpKSkKIAotKGRlZnVuIG9yZy1iYWJlbC1yZXN1 bHQtdG8tZmlsZSAocmVzdWx0ICZvcHRpb25hbCBkZXNjcmlwdGlvbikKKyhkZWZ1biBvcmctYmFi ZWwtcmVzdWx0LXRvLWZpbGUgKHJlc3VsdCAmb3B0aW9uYWwgZGVzY3JpcHRpb24gdHlwZSkKICAg IkNvbnZlcnQgUkVTVUxUIGludG8gYW4gT3JnIGxpbmsgd2l0aCBvcHRpb25hbCBERVNDUklQVElP Ti4KIElmIHRoZSBgZGVmYXVsdC1kaXJlY3RvcnknIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250 YWluaW5nCiBmaWxlJ3MgZGlyZWN0b3J5IHRoZW4gZXhwYW5kIHJlbGF0aXZlIGxpbmtzLiIKQEAg LTI1NTksNyArMjU2Nyw4IEBAIGZpbGUncyBkaXJlY3RvcnkgdGhlbiBleHBhbmQgcmVsYXRpdmUg bGlua3MuIgogCQkJICAgIChleHBhbmQtZmlsZS1uYW1lCiAJCQkgICAgIChmaWxlLW5hbWUtZGly ZWN0b3J5CiAJCQkgICAgICAoYnVmZmVyLWZpbGUtbmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkp KSkpKSkpCi0gICAgICAoZm9ybWF0ICJbW2ZpbGU6JXNdJXNdIgorICAgICAgKGZvcm1hdCAiW1sl czolc10lc10iCisgICAgICAgICAgICAgIChvciB0eXBlICJmaWxlIikKIAkgICAgICAoaWYgKGFu ZCBkZWZhdWx0LWRpcmVjdG9yeQogCQkgICAgICAgKGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1i YXNlLWJ1ZmZlcikpIHNhbWUtZGlyZWN0b3J5PykKIAkJICAoaWYgKGVxIG9yZy1saW5rLWZpbGUt cGF0aC10eXBlICdhZGFwdGl2ZSkKQEAgLTI1NzEsNiArMjU4MCwxOCBAQCBmaWxlJ3MgZGlyZWN0 b3J5IHRoZW4gZXhwYW5kIHJlbGF0aXZlIGxpbmtzLiIKIAkJcmVzdWx0KQogCSAgICAgIChpZiBk ZXNjcmlwdGlvbiAoY29uY2F0ICJbIiBkZXNjcmlwdGlvbiAiXSIpICIiKSkpKSkKIAorKGRlZnVu IG9yZy1iYWJlbC1yZXN1bHQtdG8tZmlsZS1hdHRhY2htZW50IChyZXN1bHQgJm9wdGlvbmFsIGRl c2NyaXB0aW9uKQorICAiQ29udmVydCBSRVNVTFQgaW50byBhbiBPcmcgbGluayBhZnRlciBtb3Zp bmcgdGhlIHByb3ZpZGVkIHBhdGggdG8gdGhlIGN1cnJlbnQgbm9kZSdzIGF0dGFjaG1lbnQgZGly ZWN0b3J5IGFzIHJlcG9ydGVkIGJ5IGBvcmctYXR0YWNoLWRpcicsIHVzaW5nIHRoZSBvcHRpb25h bCBERVNDUklQVElPTiBpZiBwcm92aWRlZC4KK1NlZSBgb3JnLWJhYmVsLXJlc3VsdC10by1maWxl JyBmb3IgZnVydGhlciBsaW5rIGdlbmVyYXRpb24gZGV0YWlscy4iCisKKyAgKGxldCogKChkaXIg KGZpbGUtcmVsYXRpdmUtbmFtZQorICAgICAgICAgICAgICAgKG9yZy1hdHRhY2gtZGlyIHQpKSkK KyAgICAgICAgIChmaWxlbmFtZSAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSByZXN1bHQpKQorICAg ICAgICAgKG5ld25hbWUgKGZvcm1hdCAiJXMvJXMiIGRpciBmaWxlbmFtZSkpKQorCisgICAgKHJl bmFtZS1maWxlIHJlc3VsdCBuZXduYW1lIHQpCisgICAgKG9yZy1iYWJlbC1yZXN1bHQtdG8tZmls ZSBmaWxlbmFtZSBkZXNjcmlwdGlvbiAiYXR0YWNobWVudCIpKSkKKwogKGRlZnVuIG9yZy1iYWJl bC1leGFtcGxpZnktcmVnaW9uIChiZWcgZW5kICZvcHRpb25hbCByZXN1bHRzLXN3aXRjaGVzIGlu bGluZSkKICAgIkNvbW1lbnQgb3V0IHJlZ2lvbiB1c2luZyB0aGUgaW5saW5lIGA9PScgb3IgYDog JyBvcmcgZXhhbXBsZSBxdW90ZS4iCiAgIChpbnRlcmFjdGl2ZSAiKnIiKQpkaWZmIC0tZ2l0IGEv bGlzcC9vcmctYXR0YWNoLmVsIGIvbGlzcC9vcmctYXR0YWNoLmVsCmluZGV4IGU4ZThhZGU4My4u OWYxODAyNTVhIDEwMDY0NAotLS0gYS9saXNwL29yZy1hdHRhY2guZWwKKysrIGIvbGlzcC9vcmct YXR0YWNoLmVsCkBAIC0zMjMsNiArMzIzLDcgQEAgU2hvd3MgYSBsaXN0IG9mIGNvbW1hbmRzIGFu ZCBwcm9tcHRzIGZvciBhbm90aGVyIGtleSB0byBleGVjdXRlIGEgY29tbWFuZC4iCiAJICAgIChj YWxsLWludGVyYWN0aXZlbHkgY29tbWFuZCkKIAkgIChlcnJvciAiTm8gc3VjaCBhdHRhY2htZW50 IGNvbW1hbmQ6ICVjIiBjKSkpKSkpCiAKKzs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gb3JnLWF0dGFj aC1kaXIgKCZvcHRpb25hbCBjcmVhdGUtaWYtbm90LWV4aXN0cy1wIG5vLWZzLWNoZWNrKQogICAi UmV0dXJuIHRoZSBkaXJlY3RvcnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IG91dGxpbmUg bm9kZS4KIEZpcnN0IGNoZWNrIGZvciBESVIgcHJvcGVydHksIHRoZW4gSUQgcHJvcGVydHkuCi0t IAoyLjMyLjAud2luZG93cy4yCgo= --000000000000bdf6d405cafe4bd6--