From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 6H/9AwJ2ymS4YAEASxT56A (envelope-from ) for ; Wed, 02 Aug 2023 17:28:02 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id aFIVAwJ2ymRl/wAAG6o9tA (envelope-from ) for ; Wed, 02 Aug 2023 17:28:02 +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 5A66450728 for ; Wed, 2 Aug 2023 17:28:01 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=I9uM02a4; 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"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1690990081; 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=qpx4tLb2bBFgOdnvHxQJdbmiq28zjR7Wvxn331MjLE0=; b=F65Yjf1MzFCkBm2t72sij3louEIcJmwUkb2b49L46xYsoRtpSbclZAGRqZGPaY5GfN99F3 1aB4pQJIdhWe/oxBTh+/IKFRcSAxgX/skseIkeqi1Wt16Ig8oeWAjcGjW2otEuy4Eu7jpI fASXB1ojHn33jbHtvNOh5Icly4V2YTymBVu709gT8Us/i1VbvDYxBYj2jD8T6eN/134RnG GBvWvfyx1sd83Ld1xnzVigvbgA5DdbxDVlSLmaGeKgQAFVPZlwR/LPM6xlKMsClkeVhQaY 8yHZwc0o5717652hGL9Rwz4WirFNlTJcB+2Mo8olba0daXO7yAS/IJp1gluRcA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1690990081; a=rsa-sha256; cv=none; b=tEs5rMbl9VsD2V/s8qJqHrrpiZa+M81LuaOzUsQ7F3jRLXaY1UbW9imXZ78IDjF3ATPMf2 1a65liRCpHiW8+IOZDcvZBkc9TUbo20BL0L6QLu+Ad2ojIqBIW2GvHrFzvp0lpnomypZA9 rom0Tk8K6CQ9N3ZmDWvoZatLQW4K4yZc+u8jrvs3mqZFB4jnoze1LhXwUuPIEsjqw/3zHl Xx1tvOj5HtgXdS1EmBNLiLZrPghR2q+ct1pYKdftAHhuUKi6v6nT8yC+euRdoL1ZqEd6AS aP/2t5ep6A4hKQST2wuGs+lVZb7bmFqqPncyZpbj6oCpiy9XmLZAJffJrFDYeQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=I9uM02a4; 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"; dmarc=pass (policy=none) header.from=gmail.com Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qRD8g-00016M-V2; Wed, 02 Aug 2023 10:47:51 -0400 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 1qRD8c-0000u1-Em for emacs-orgmode@gnu.org; Wed, 02 Aug 2023 10:47:46 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qRD8V-0007Tk-Jr for emacs-orgmode@gnu.org; Wed, 02 Aug 2023 10:47:42 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-6bb07d274feso5661792a34.0 for ; Wed, 02 Aug 2023 07:47:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690987653; x=1691592453; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qpx4tLb2bBFgOdnvHxQJdbmiq28zjR7Wvxn331MjLE0=; b=I9uM02a4VWDqVXfFf9hbVbQIQkXE1OVb89YgWHMpESqyKK+qU+232ZclI+B+S8vkny OkfHuPycPfQio8NSiSEGs2YguZJ0NcoiVDSYzopMVkANFJCbcTOQHIlevYcOIX6eNylJ hy/gW1VmCypKqBWxDNBzsLsWW/2PgPXi/xDIGZjHAUaZ926ka85m1R7BSdms0r55kp8m pxQ2N0E+7KMS7U2M8+tnewTvgVITxjryVadCyrtoyY5dU/DxYtC7mSC2p8ksBcQq2rnH Y8zJSOHwen1l2AfOA9F0ekdVJnnLIIgH62CyXPZX2/QP9XeUHvhAJW1cioQIh5lMc191 j6ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690987653; x=1691592453; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=qpx4tLb2bBFgOdnvHxQJdbmiq28zjR7Wvxn331MjLE0=; b=Nfmi/7yQMsu9AJIQinzqI65cSTy+cxV0FbMX3agjB2YTN/t5gjaIGtVLL6mxY79tKB cGvFSotvw8C2b9UPrTZdGokaJ8rGzu9M5LcJykb/Tt5269QpfWTOTloxWe5actTq/CFx PfhMEmlXyR2hrUHYs5I9yjh6IlsIj3mbsQQ4ZoE4dgyX4NJEMLyc6gL6dYmB9gfk+kni C2SOCIPl70gqfueYh/5YoeJCRkAqFnqsDHhfSLeIxdRu26bl9Peec0y0zKfmvzCQdijy teT0xmYEKs59NDjRVn6VphNLrXEkubUW3QYczgJQ0v6GVq1YAXsk3Ro6Hs/Dbh7S95mQ 72tw== X-Gm-Message-State: ABy/qLbQGmvnrF/dmwTjvmE5ISFTbqYcgdtKcle/0JZwOZnx9wKRIUut WHYrEQJqkzI7y/Q2RTpFVN/1+Fm1MdrwaDSxyQGQLRpzsurPGQ== X-Google-Smtp-Source: APBJJlFm71fZHJkmcIMBKrdNVIrUgfagyIpkG/txIc3rSAGW0YJsCmpOXvt3E5EOEXqfLcjYRxcswdnNEqdWQY67inI= X-Received: by 2002:a9d:5e82:0:b0:6b8:9705:5035 with SMTP id f2-20020a9d5e82000000b006b897055035mr15858553otl.33.1690987653222; Wed, 02 Aug 2023 07:47:33 -0700 (PDT) MIME-Version: 1.0 References: <8735451u20.fsf@gmail.com> <874jokbjsk.fsf@localhost> <87zg6ch2dm.fsf@gmail.com> <87sfc4a0ce.fsf@localhost> <87r0ro9mzc.fsf@gmail.com> <87zg69zq49.fsf@localhost> <87r0rg1lwe.fsf@gmail.com> <87leho3y0n.fsf@localhost> <87a5y3vzpe.fsf@gmail.com> <87jzx6ylrm.fsf@localhost> <87ttw8kd9u.fsf@gmail.com> <87fs5ppcx7.fsf@localhost> <875y6hwqqe.fsf@localhost> <87o7k48jcf.fsf@localhost> <87v8e8m0ao.fsf@localhost> <87tttkghou.fsf@localhost> In-Reply-To: From: Mehmet Tekman Date: Wed, 2 Aug 2023 16:46:56 +0200 Message-ID: Subject: Re: [ANN] lisp/ob-tangle-sync.el To: Ihor Radchenko Cc: emacs-orgmode@gnu.org Content-Type: multipart/mixed; boundary="0000000000006425a40601f1bee3" Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=mtekman89@gmail.com; helo=mail-ot1-x333.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, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -3.92 X-Spam-Score: -3.92 X-Migadu-Queue-Id: 5A66450728 X-Migadu-Scanner: mx0.migadu.com X-TUID: mD9keQOsxqkb --0000000000006425a40601f1bee3 Content-Type: text/plain; charset="UTF-8" Hello again, I've attached two patches: 1. Tests for the existing merge parameters function, based on your last edits to my previous patch. 2. A rewrite of the entire merge parameters function, with the new tangle sync actions. It's a big patch mostly, because there were no intermediate commits in which the org framework wouldn't be broken. Hope that's okay! ** Brief Explanation of (2) This attempts to address the problem of having an :any keyword in a mutually exclusive group such as: #+begin_src elisp '((tangle yes no :any) (import export skip sync)) #+end_src Since every parameter (e.g. "export") is tested against both of these groups, and since a parameter that matches `:any' could be anything, then a parameter like "export" will match in both groups. To get around this, a merge strategy (see: `org-babel--merge-headers') builds an alist of exclusion groups that a parameter could belong to. e.g for a header with `:tangle myfile.txt skip' would give an alist of #+begin_src elisp (setq params-alist '(("skip" "tangle" "import") ("myfile.txt" "tangle"))) #+end_src Note that the exclusion groups are referenced by the first element in the group, acting as an alist key of sorts. This assumes that each exclusion group has a unique car. Parameters with two or more cdr elements are stripped of the exclusion group that have the `:any' parameter (i.e. "tangle"), resulting in: #+begin_src elisp (setq params-alist '(("skip" "import") ("myfile.txt" "tangle"))) #+end_src This alist is then inverted so that the group exclusion car becomes the key, and rearranged so that it follows the order of exclusion group definition (in this case, "tangle" group first then then "import" group). #+begin_src elisp (setq group-alist '(("tangle" "myfile.txt") ("import" "skip"))) #+end_src As the merge parameters function is called repeatedly for the same header, this builds to hold the whole related hierarchy of the org: #+begin_src org ,#+PROPERTIES: header-args :tangle topfile.txt import ,* One :PROPERTIES: :header-args: :tangle skip :END: ,#+begin_src bash :tangle myfile.txt ,#+end_src #+end_src which would yield: #+begin_src elisp (setq group-alist '(("tangle" "myfile.txt" "no" "topfile.txt") ("import" "skip" "import"))) #+end_src Assuming the hierarchy is given in the reverse order of this alist, the correct action is then taken as the car of these groups: `:tangle myfile.txt skip' ** Problems It seems to work well for most tests, except for the "file with spaces.txt" which I'm not sure how to proceed with. I feel like patching at the level `org-babel--merge-params' is the wrong way to go, and that I should patch it further upstream. That upstream leads to `org-babel-read' which currently chomps the quotes off anything it gets: #+begin_src elisp (org-babel-read " \"my file with quotes\" ") #+end_src I don't know if this is the expected behaviour for quoted strings with spaces, so before I proceed trying to patch this I thought I would check in with you and ask whether I should start patching here or not. Best, Mehmet --0000000000006425a40601f1bee3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-testing-lisp-test-ob.el-New-tests-for-merge-params.patch" Content-Disposition: attachment; filename="0001-testing-lisp-test-ob.el-New-tests-for-merge-params.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lktuclju1 RnJvbSBkYzJiYjM0YjYyYjM3MjUwMTVlZTk0NTdjNzQzOTdhOWIwZjExMTA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNVCA8bXRla21hbjg5QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAx IEF1ZyAyMDIzIDA1OjE0OjQ2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxLzJdICogdGVzdGluZy9s aXNwL3Rlc3Qtb2IuZWw6IE5ldyB0ZXN0cyBmb3IgbWVyZ2UtcGFyYW1zCgoodGVzdC1vYi9nZXQt c3JjLWJsb2NrLXByb3BlcnR5KToKKHRlc3Qtb2IvbWVyZ2UtcGFyYW1zKTogYWRkIG5ldyB0ZXN0 cyBmb3IgdGhlIG1lcmdlLXBhcmFtcyBzb3VyY2UKYmxvY2sgaGVhZGVyIGhhbmRsaW5nIGZ1bmN0 aW9uLgotLS0KIHRlc3RpbmcvbGlzcC90ZXN0LW9iLmVsIHwgMTM4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMzggaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9iLmVsIGIvdGVzdGluZy9saXNwL3Rl c3Qtb2IuZWwKaW5kZXggYzhkYmQ0NGY0Li5mMTI1MzMyNTggMTAwNjQ0Ci0tLSBhL3Rlc3Rpbmcv bGlzcC90ZXN0LW9iLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9iLmVsCkBAIC0zMTQsNiAr MzE0LDE0NCBAQCB0aGlzIGlzIHNpbXBsZSIKICAgICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2Nr KQogICAgIChzaG91bGQgKD0gMTQgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jaykpKSkpCiAK KyhkZWZ1biB0ZXN0LW9iL2dldC1zcmMtYmxvY2stcHJvcGVydHkgKHByb3BlcnRpZXMpCisgICJH ZXQgcGxpc3Qgb2YgUFJPUEVSVElFUyBhbmQgdmFsdWVzIGZvciB0aGUgZmlyc3Qgc3JjIGJsb2Nr IGluIGJ1ZmZlci4KK1BST1BFUlRJRVMgaXMgYSBsaXN0IG9mIHByb3BlcnR5IGtleXdvcmRzIG9y IGEgc2luZ2xlIGtleXdvcmQuIgorICAob3JnLXdpdGgtd2lkZS1idWZmZXIKKyAgIChnb3RvLWNo YXIgKHBvaW50LW1pbikpCisgICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2NrKQorICAgKG9yZy1z ZXQtcmVnZXhwcy1hbmQtb3B0aW9ucykKKyAgIChsZXQgKChhbGwtcHJvcHMgKG50aCAyIChvcmct YmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvKSkpKQorICAgICAoaWYgKGxpc3RwIHByb3BlcnRpZXMp CisgICAgICAgICAoYXBwbHkgIyduY29uYyAobWFwY2FyIChsYW1iZGEgKHApIChsaXN0IHAgKGNk ciAoYXNzb2MgcCBhbGwtcHJvcHMpKSkpIHByb3BlcnRpZXMpKQorICAgICAgIChsaXN0IHByb3Bl cnRpZXMgKGNkciAoYXNzb2MgcHJvcGVydGllcyBhbGwtcHJvcHMpKSkpKSkpCisKKyhlcnQtZGVm dGVzdCB0ZXN0LW9iL21lcmdlLXBhcmFtcyAoKQorICAiVGVzdCB0aGUgb3V0cHV0IG9mIG1lcmdp bmcgbXVsdGlwbGUgaGVhZGVyIHBhcmFtZXRlcnMuIgorICAoc2hvdWxkIDs7IDEuIGluaGVyaXQt ZG9jdW1lbnQtaGVhZGVyLWFyZ3MKKyAgIChlcXVhbCAnKDp0YW5nbGUgIi90bXAvZGVmYXVsdF90 YW5nbGUudHh0IikKKyAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKyAgICAgICAg ICAgICAgIlwKKyMrUFJPUEVSVFk6IGhlYWRlci1hcmdzIDp0YW5nbGUgL3RtcC9kZWZhdWx0X3Rh bmdsZS50eHQKKyogT25lCisjK2JlZ2luX3NyYyBjb25mCisjK2VuZF9zcmMiCisgICAgICAgICAg ICAodGVzdC1vYi9nZXQtc3JjLWJsb2NrLXByb3BlcnR5IDp0YW5nbGUpKSkpCisgIChzaG91bGQt bm90IDs7IDIuIGluaGVyaXQtZG9jdW1lbnQtaGVhZGVyLXdpdGgtbG9jYWwtc3luYy1hY3Rpb24K KyAgIDs7IFRoaXMgc2hvdWxkIHBhc3Mgd2l0aCBuZXdlciBtZXJnZSBmdW5jdGlvbiB3aXRoIG11 bHRpcGxlIHRhbmdsZSBwYXJhbWV0ZXJzCisgICAoZXF1YWwgJyg6dGFuZ2xlICIvdG1wL2RlZmF1 bHRfdGFuZ2xlLnR4dCBza2lwIikKKyAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQK KyAgICAgICAgICAgICAgIlwKKyMrUFJPUEVSVFk6IGhlYWRlci1hcmdzIDp0YW5nbGUgL3RtcC9k ZWZhdWx0X3RhbmdsZS50eHQKKyogVHdvCisjK2JlZ2luX3NyYyBjb25mIDp0YW5nbGUgc2tpcAor IytlbmRfc3JjIgorICAgICAgICAgICAgKHRlc3Qtb2IvZ2V0LXNyYy1ibG9jay1wcm9wZXJ0eSA6 dGFuZ2xlKSkpKQorICAoc2hvdWxkIDs7IDMuIG92ZXJyaWRlLWRvY3VtZW50LWhlYWRlci13aXRo LWxvY2FsLXRmaWxlCisgICAoZXF1YWwgJyg6dGFuZ2xlICJyYW5kb21maWxlIHN5bmMiKQorICAg ICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAorICAgICAgICAgICAgICAiXAorIytQUk9Q RVJUWTogaGVhZGVyLWFyZ3MgOnRhbmdsZSAvdG1wL2RlZmF1bHRfdGFuZ2xlLnR4dAorKiBUaHJl ZQorIytiZWdpbl9zcmMgY29uZiA6dGFuZ2xlIHJhbmRvbWZpbGUgc3luYworIytlbmRfc3JjIgor ICAgICAgICAgICAgKHRlc3Qtb2IvZ2V0LXNyYy1ibG9jay1wcm9wZXJ0eSA6dGFuZ2xlKSkpKQor ICAoc2hvdWxkICA7OyA0LiBvdmVycmlkZS1kb2N1bWVudC1hbmQtcGFyZW50LWhlYWRlci13aXRo LWxvY2FsLXRmaWxlLWFuZC1hY3Rpb24KKyAgIChlcXVhbCAnKDp0YW5nbGUgInJhbmRvbWZpbGUg c3luYyIpCisgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0CisgICAgICAgICAgICAg ICJcCisjK1BST1BFUlRZOiBoZWFkZXItYXJncyA6dGFuZ2xlIC90bXAvZGVmYXVsdF90YW5nbGUu dHh0CisqIEZvdXIKKzpQUk9QRVJUSUVTOgorOmhlYWRlci1hcmdzOiA6dGFuZ2xlIFwibmV3Zmls ZS50eHRcIiBpbXBvcnQKKzpFTkQ6CisqKiBBCisjK2JlZ2luX3NyYyBjb25mIDp0YW5nbGUgcmFu ZG9tZmlsZSBzeW5jCisjK2VuZF9zcmMiCisgICAgICAgICAgICAodGVzdC1vYi9nZXQtc3JjLWJs b2NrLXByb3BlcnR5IDp0YW5nbGUpKSkpCisgIChzaG91bGQgOzsgNS4gdGVzdC10YW5nbGUtYW5k LWRlZmF1bHQtcmVzdWx0cy1wYXJhbS10b2dldGhlcgorICAgKGVxdWFsICcoOnRhbmdsZSAicmFu ZG9tZmlsZSIgOnJlc3VsdHMgInJlcGxhY2UiKQorICAgICAgICAgIChvcmctdGVzdC13aXRoLXRl bXAtdGV4dAorICAgICAgICAgICAgICAiXAorKiBGaXZlCisjK2JlZ2luX3NyYyBjb25mICA6dGFu Z2xlIHJhbmRvbWZpbGUKKyMrZW5kX3NyYyIKKyAgICAgICAgICAgICh0ZXN0LW9iL2dldC1zcmMt YmxvY2stcHJvcGVydHkgJyg6dGFuZ2xlIDpyZXN1bHRzKSkpKSkKKyAgKHNob3VsZC1ub3QgIDs7 IDYuIGluaGVyaXQtZG9jdW1lbnQtdGZpbGUtdGFrZS1vbmx5LWxhc3QtbG9jYWwtc3luYy1hY3Rp b24KKyAgIDs7IFRoaXMgc2hvdWxkIHBhc3Mgd2l0aCBuZXdlciBtZXJnZSBmdW5jdGlvbiB3aXRo IG11bHRpcGxlIHRhbmdsZSBwYXJhbWV0ZXJzCisgICAoZXF1YWwgJyg6dGFuZ2xlICIvdG1wL2Rl ZmF1bHRfdGFuZ2xlLnR4dCBleHBvcnQiKQorICAgICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAt dGV4dAorICAgICAgICAgICAgICAiXAorIytQUk9QRVJUWTogaGVhZGVyLWFyZ3MgOnRhbmdsZSAv dG1wL2RlZmF1bHRfdGFuZ2xlLnR4dAorKiBTaXgKKyMrYmVnaW5fc3JjIGNvbmYgIDp0YW5nbGUg aW1wb3J0IGV4cG9ydAorIytlbmRfc3JjIgorICAgICAgICAgICAgKHRlc3Qtb2IvZ2V0LXNyYy1i bG9jay1wcm9wZXJ0eSA6dGFuZ2xlKSkpKQorICAoc2hvdWxkLW5vdCAgOzsgNy4gaWdub3JlLWRv Y3VtZW50LWhlYWRlci10YWtlLWxhc3QtdGZpbGUtYW5kLXN5bmMtYWN0aW9uCisgICA7OyBUaGlz IHNob3VsZCBwYXNzIHdpdGggbmV3ZXIgbWVyZ2UgZnVuY3Rpb24gd2l0aCBtdWx0aXBsZSB0YW5n bGUgcGFyYW1ldGVycworICAgKGVxdWFsICcoOnRhbmdsZSAiZm5hbWUyIGV4cG9ydCIpCisgICAg ICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0CisgICAgICAgICAgICAgICJcCisjK1BST1BF UlRZOiBoZWFkZXItYXJncyA6dGFuZ2xlIC90bXAvZGVmYXVsdF90YW5nbGUudHh0CisqIFNldmVu CisjK2JlZ2luX3NyYyBjb25mICA6dGFuZ2xlIGZuYW1lMSBmbmFtZTIgc3luYyBleHBvcnQKKyMr ZW5kX3NyYyIKKyAgICAgICAgICAgICh0ZXN0LW9iL2dldC1zcmMtYmxvY2stcHJvcGVydHkgOnRh bmdsZSkpKSkKKyAgKHNob3VsZCAgOzsgOC4gdGVzdC1yZXN1bHRzLWFuZC1leHBvcnRzCisgICAo ZXF1YWwgJyg6cmVzdWx0cyAid3JhcCBmaWxlIHJlcGxhY2UiIDpleHBvcnRzICJjb2RlIikKKyAg ICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKyAgICAgICAgICAgICAgIlwKKyogRWln aHQKKyMrYmVnaW5fc3JjIHNoIDpyZXN1bHRzIGZpbGUgd3JhcAorIytlbmRfc3JjIgorICAgICAg ICAgICAgKHRlc3Qtb2IvZ2V0LXNyYy1ibG9jay1wcm9wZXJ0eSAnKDpyZXN1bHRzIDpleHBvcnRz KSkpKSkKKyAgKHNob3VsZCAgOzsgOS4gZG8tbm90LXRhbmdsZS10aGlzLWJsb2NrIC0tCisgICAo ZXF1YWwgJyg6dGFuZ2xlICJubyIpCisgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0 CisgICAgICAgICAgICAgICJcCisjK1BST1BFUlRZOiBoZWFkZXItYXJncyA6dGFuZ2xlIC90bXAv ZGVmYXVsdF90YW5nbGUudHh0CisqIE5pbmUKKyMrYmVnaW5fc3JjIGNvbmYgOnRhbmdsZSBubwor IytlbmRfc3JjIgorICAgICAgICAgICAgKHRlc3Qtb2IvZ2V0LXNyYy1ibG9jay1wcm9wZXJ0eSA6 dGFuZ2xlKSkpKQorICAoc2hvdWxkICA7OyAxMC4gdGVzdC10YW5nbGUtZXhwb3J0cy1hbmQtY29t bWVudHMKKyAgIChlcXVhbCAnKDp0YW5nbGUgImZvby50eHQiIDpleHBvcnRzICJ2ZXJiYXRpbSBj b2RlIiA6Y29tbWVudHMgImxpbmsiKQorICAgICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dAorICAgICAgICAgICAgICAiXAorIytQUk9QRVJUWTogaGVhZGVyLWFyZ3MgOnRhbmdsZSAvdG1w L2RlZmF1bHRfdGFuZ2xlLnR4dAorKiBUZW4KKzpQUk9QRVJUSUVTOgorOmhlYWRlci1hcmdzOiA6 dGFuZ2xlIG5vIDpleHBvcnRzIHZlcmJhdGltCis6RU5EOgorIytiZWdpbl9zcmMgY29uZiA6dGFu Z2xlIFwiZm9vLnR4dFwiIDpjb21tZW50cyBsaW5rCisjK2VuZF9zcmMiCisgICAgICAgICAgICAo dGVzdC1vYi9nZXQtc3JjLWJsb2NrLXByb3BlcnR5ICcoOnRhbmdsZSA6ZXhwb3J0cyA6Y29tbWVu dHMpKSkpKQorICAoc2hvdWxkLW5vdCAgOzsgMTEuIG92ZXJyaWRlLWRvY3VtZW50LWFuZC1oZWFk aW5nLXRmaWxlLXdpdGgteWVzCisgICA7OyBUaGlzIHNob3VsZCBwYXNzIHdpdGggbmV3ZXIgbWVy Z2UgZnVuY3Rpb24gd2l0aCBtdWx0aXBsZSB0YW5nbGUgcGFyYW1ldGVycworICAgKGVxdWFsICco OnRhbmdsZSAiZm9vLnR4dCIpCisgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Cisg ICAgICAgICAgICAgICJcCisjK1BST1BFUlRZOiBoZWFkZXItYXJncyA6dGFuZ2xlIC90bXAvZGVm YXVsdF90YW5nbGUudHh0CisqIEVsZXZlbgorOlBST1BFUlRJRVM6Cis6aGVhZGVyLWFyZ3M6IDp0 YW5nbGUgXCJmb28udHh0XCIKKzpFTkQ6CisjK2JlZ2luX3NyYyBjb25mIDp0YW5nbGUgeWVzCisj K2VuZF9zcmMiCisgICAgICAgICAgICAodGVzdC1vYi9nZXQtc3JjLWJsb2NrLXByb3BlcnR5IDp0 YW5nbGUpKSkpCisgIChzaG91bGQgIDs7IDEyLiB0YW5nbGUtZmlsZS13aXRoLXNwYWNlcworICAg KGVxdWFsICcoOnRhbmdsZSAiZmlsZSB3aXRoIHNwYWNlcy50eHQiKQorICAgICAgICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dAorICAgICAgICAgICAgICAiXAorKiBUd2VsdmUKKzpQUk9QRVJU SUVTOgorOmhlYWRlci1hcmdzOiA6dGFuZ2xlIFwiZm9vLnR4dFwiCis6RU5EOgorKiogQQorIyti ZWdpbl9zcmMgY29uZiA6dGFuZ2xlIFwiZmlsZSB3aXRoIHNwYWNlcy50eHRcIgorIytlbmRfc3Jj IgorICAgICAgICAgICAgKHRlc3Qtb2IvZ2V0LXNyYy1ibG9jay1wcm9wZXJ0eSA6dGFuZ2xlKSkp KSkKKwogKGVydC1kZWZ0ZXN0IHRlc3Qtb2IvaW5saW5lLXNyYy1ibG9ja3MgKCkKICAgKHNob3Vs ZAogICAgKD0gMQotLSAKMi40MS4wCgo= --0000000000006425a40601f1bee3 Content-Type: text/x-patch; charset="UTF-8"; name="0002-lisp-ob-core.el-Rewrite-of-merge-babel-headers.patch" Content-Disposition: attachment; filename="0002-lisp-ob-core.el-Rewrite-of-merge-babel-headers.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lktuclim0 RnJvbSAyMDMxNTNiZmIzZTQ5YzgyOTk1ZjcyMTUxODU5NmEyYjAwMTI3NDY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNVCA8bXRla21hbjg5QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAx MCBNYXkgMjAyMyAxNzozODoyMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSAqIGxpc3Avb2It Y29yZS5lbDogUmV3cml0ZSBvZiBtZXJnZSBiYWJlbCBoZWFkZXJzCgoob3JnLWJhYmVsLW1lcmdl LXBhcmFtcyk6IG1lcmdlIGhlYWRlcnMgc3RyYXRlZ3kgc3BsaXQgb3V0IGludG8gbmV3CmRlZGlj YXRlZCBmdW5jdGlvbiBgLS1tZXJnZS1oZWFkZXJzJwoob3JnLWJhYmVsLS1tZXJnZS1oZWFkZXJz KTogbmV3IGZ1bmN0aW9uIHRoYXQgcmVzb2x2ZXMgaGVhZGVycyBiYXNlZApvbiB0aGVpciBtdXR1 YWxseSBleGNsdXNpdmUgZ3JvdXBzLCB3aXRoIGJldHRlciBzdXBwb3J0IGZvciBncm91cHMKd2l0 aCBgOmFueScga2V5d29yZHMuCihvcmctYmFiZWwtY29tbW9uLWhlYWRlci1hcmdzLXctdmFsdWVz KTogQWRkZWQgbXV0dWFsbHkgZXhjbHVzaXZlCnRhbmdsZSBncm91cHMgcmVsYXRpbmcgdG8gZGVz aXJlZCB0YW5nbGUgc3luYyBhY3Rpb25zCgoqIHRlc3RpbmcvbGlzcC90ZXN0LW9iLmVsOiB1cGRh dGUgdGVzdHMgYWNjb3JkaW5nIHRvIG5ldyBtZXJnZQpzdHJhdGVneSwgd2l0aCBlbXBoYXNpcyBv biBgOnRhbmdsZScgaGVhZGVycyBmb3Igc3luY2luZyBhY3Rpb25zLgotLS0KIGxpc3Avb2ItY29y ZS5lbCAgICAgICAgIHwgMTQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0KIHRlc3RpbmcvbGlzcC90ZXN0LW9iLmVsIHwgIDExICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwg MTE2IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3Avb2It Y29yZS5lbCBiL2xpc3Avb2ItY29yZS5lbAppbmRleCA2MDZjM2VmZWMuLjQ4MzM3NDA2YSAxMDA2 NDQKLS0tIGEvbGlzcC9vYi1jb3JlLmVsCisrKyBiL2xpc3Avb2ItY29yZS5lbApAQCAtNDM3LDcg KzQzNyw4IEBAIHRoZW4gcnVuIGBvcmctYmFiZWwtc3dpdGNoLXRvLXNlc3Npb24nLiIKICAgICAo c2VwCS4gOmFueSkKICAgICAoc2Vzc2lvbgkuIDphbnkpCiAgICAgKHNoZWJhbmcJLiA6YW55KQot ICAgICh0YW5nbGUJLiAoKHRhbmdsZSB5ZXMgbm8gOmFueSkpKQorICAgICh0YW5nbGUJLiAoKHRh bmdsZSB5ZXMgbm8gOmFueSkKKyAgICAgICAgICAgICAgICAgIChpbXBvcnQgZXhwb3J0IHNraXAg c3luYykpKQogICAgICh0YW5nbGUtbW9kZSAuICgoI283NTUgI281NTUgI280NDQgOmFueSkpKQog ICAgICh2YXIJLiA6YW55KQogICAgICh3cmFwICAgICAgIC4gOmFueSkpCkBAIC0yODM2LDYgKzI4 MzcsODkgQEAgc3BlY2lmaWVkIGFzIGFuIGFuIFwiYXR0YWNobWVudDpcIiBzdHlsZSBsaW5rLiIK ICAgICAgIChnb3RvLWNoYXIgYm9keS1zdGFydCkKICAgICAgIChpbnNlcnQgYm9keSkpKSkKIAor KGRlZnVuIG9yZy1iYWJlbC0tbWVyZ2UtaGVhZGVycyAoZXhjbHVzaXZlLWdyb3VwcyAmcmVzdCBy ZXN1bHQtcGFyYW1zKQorICAiTWFpbnRhaW4gZXhjbHVzaXZpdHkgb2YgbXV0dWFsbHkgZXhjbHVz aXZlIHBhcmFtZXRlcnMsIGFzIGRlZmluZWQKK2luIEVYQ0xVU0lWRS1HUk9VUFMgd2hpbGUgbWVy Z2luZyBsaXN0cyBpbiBSRVNVTFQtUEFSQU1TLiIKKyAgKGNsLWZsZXQgKChhbGlzdC1hcHBlbmQg KGFsaXN0IGtleSB2YWwpCisgICAgICAgICAgICAgIChsZXQgKChleGlzdGluZyAoY2RyIChhc3Nv YyBrZXkgYWxpc3QpKSkpCisgICAgICAgICAgICAgICAgKGlmIGV4aXN0aW5nCisgICAgICAgICAg ICAgICAgICAgIChzZXRjZHIgKGFzc29jIGtleSBhbGlzdCkgKGFwcGVuZCBleGlzdGluZyAobGlz dCB2YWwpKSkKKyAgICAgICAgICAgICAgICAgIChzZXRxIGFsaXN0IChjb25zIChjb25zIGtleSAo bGlzdCB2YWwpKSBhbGlzdCkpKQorICAgICAgICAgICAgICAgIGFsaXN0KSkpCisgICAgOzsKKyAg ICA7OyBQcm9ibGVtOiBIYXZpbmcgYW4gOmFueSBrZXl3b3JkIGluIGFuIGV4Y2x1c2lvbiBncm91 cCBtZWFucworICAgIDs7ICAgICAgICAgIHRoYXQgYSBwYXJhbWV0ZXIgb2YgInllcyIgY291bGQg bWF0Y2ggdG8gYW4gZXhjbHVzaW9uCisgICAgOzsgICAgICAgICAgZ3JvdXAgdGhhdCBjb250YWlu cyBib3RoICJ5ZXMiIEFORCAiOmFueSIuCisgICAgOzsKKyAgICA7OyBTb2x1dGlvbjogRm9yIGVh Y2ggcGFyYW1ldGVyLCBidWlsZCBhIGxpc3Qgb2YgZXhjbHVzaW9uIGdyb3VwcworICAgIDs7ICAg ICAgICAgICBpdCBjb3VsZCBiZWxvbmcgdG8uIElmIGEgcGFyYW1ldGVyIGJlbG9uZ3MgdG8gdHdv CisgICAgOzsgICAgICAgICAgIGdyb3VwcywgZWxpbWluYXRlIGl0IGZyb20gdGhlIGdyb3VwIHRo YXQgY29udGFpbnMgdGhlCisgICAgOzsgICAgICAgICAgICI6YW55IiBrZXl3b3JkLgorICAgIDs7 CisgICAgOzsgIERldGFpbHM6IEV4Y2x1c2lvbiBncm91cHMgKGUuZy4nKCJ0YW5nbGUiICJ5ZXMi ICJubyIgIjphbnkiKSApCisgICAgOzsgICAgICAgICAgIGFyZSByZWZlcmVuY2VkIHRvIGJ5IHRo ZWlyIGNhciAoInRhbmdsZSIpLCBhY3RpbmcgYXMKKyAgICA7OyAgICAgICAgICAgYSBrZXkgZm9y IHRoZSBlbnRpcmUgZ3JvdXAuCisgICAgOzsKKyAgICA7OyBBc3N1bXB0aW9uOiBUaGUgb3JkZXIg b2YgUkVTVUxULVBBUkFNUyBkaWN0YXRlIHRoZSBoaWVyYXJjaHkgb2YKKyAgICA7OyAgICAgICAg ICAgICB0aGUgY2FzY2FkaW5nIGhlYWRlcnMuCisgICAgOzsKKyAgICAobGV0ICgoYW55LWdyb3Vw LWtleSAgICAgICA7OyBleGNsdXNpb24gZ3JvdXAga2V5IGZvciBncm91cCB3aXRoIDphbnkga2V5 d29yZAorICAgICAgICAgICAoY2FhciAoY2wtcmVtb3ZlLWlmLW5vdCAobGFtYmRhICh4KSAobWVt YmVyICI6YW55IiB4KSkgZXhjbHVzaXZlLWdyb3VwcykpKQorICAgICAgICAgIHBhcmFtcy1hbGlz dCAgICAgICAgIDs7IHBhcmFtIC0+IGxpc3QoIGV4Y2x1c2lvbiBncm91cCBrZXlzICkKKyAgICAg ICAgICB1bmV4cGxhaW5lZC1wYXJhbXMpICA7OyBhbnkgcGFyYW1zIHRoYXQgd2VyZSBub3QgY2F1 Z2h0CisKKyAgICAgIDs7IEl0ZXJhdGUgcGFyYW1ldGVycywgYWNyb3NzIGVhY2ggZXhjbHVzaW9u IGdyb3VwLgorICAgICAgOzsgLSBQb3B1bGF0ZSBwYXJhbXMtYWxpc3QKKyAgICAgIChkb2xpc3Qg KG5ldy1wYXJhbXMgcmVzdWx0LXBhcmFtcykKKyAgICAgICAgKGRvbGlzdCAobmV3LXBhcmFtIG5l dy1wYXJhbXMpCisgICAgICAgICAgKGRvbGlzdCAoZXhjbHVzaXZlLWdyb3VwIGV4Y2x1c2l2ZS1n cm91cHMpCisgICAgICAgICAgICAoaWYgKG9yIChtZW1iZXIgbmV3LXBhcmFtIGV4Y2x1c2l2ZS1n cm91cCkKKyAgICAgICAgICAgICAgICAgICAgKGFuZCAoc3RyaW5nPSAoY2FyIGV4Y2x1c2l2ZS1n cm91cCkgYW55LWdyb3VwLWtleSkKKyAgICAgICAgICAgICAgICAgICAgICAgICA7OyBwYXJhbSAq ZG9lc24ndCogbWF0Y2ggYSBrZXl3b3JkIGluIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAg ICA7OyA6YW55IGdyb3VwPyBDb3VsZCBiZSA6YW55LgorICAgICAgICAgICAgICAgICAgICAgICAg IChub3QgKG1lbWJlciBuZXctcGFyYW0gZXhjbHVzaXZlLWdyb3VwKSkpKQorICAgICAgICAgICAg ICAgIChsZXQgKChncm91cC1rZXkgKGNhciBleGNsdXNpdmUtZ3JvdXApKSkKKyAgICAgICAgICAg ICAgICAgIChzZXRxIHBhcmFtcy1hbGlzdCAoYWxpc3QtYXBwZW5kIHBhcmFtcy1hbGlzdCBuZXct cGFyYW0gZ3JvdXAta2V5KSkpCisgICAgICAgICAgICAgIDs7IFNvbWUgcGFyYW1ldGVycyBmaXQg aW50byBubyBncm91cHMsIHN0b3JlIHRoZW0gYW5kIHByb2Nlc3MgbGF0ZXIuCisgICAgICAgICAg ICAgIChwdXNoIG5ldy1wYXJhbSB1bmV4cGxhaW5lZC1wYXJhbXMpKSkpKQorCisgICAgICAoZGVs ZXRlLWR1cHMgdW5leHBsYWluZWQtcGFyYW1zKQorCisgICAgICA7OyBGaW5kIHBhcmFtZXRlcnMg bGlzdGVkIGluIDIgb3IgbW9yZSBleGNsdXNpdmUgZ3JvdXBzLCBhbmQga2ljaworICAgICAgOzsg dGhlbSBvdXQgb2YgYW55IG5vbi0iOmFueSIgZ3JvdXAuCisgICAgICA7OyAtIFVwZGF0ZSBwYXJh bXMtYWxpc3QKKyAgICAgIDs7IC0gUmVtb3ZlIHVuaXF1ZWx5IGtub3duIHBhcmFtcyBmcm9tIHVu ZXhwbGFpbmVkLXBhcmFtcworICAgICAgKGRvbGlzdCAocGFybS12YWxzIHBhcmFtcy1hbGlzdCkK KyAgICAgICAgKGxldCAoKHBhcm0gKGNhciBwYXJtLXZhbHMpKQorICAgICAgICAgICAgICAoZ3Jv dXAta2V5cyAoY2RyIHBhcm0tdmFscykpKQorICAgICAgICAgIChpZiAobWVtYmVyIHBhcm0gdW5l eHBsYWluZWQtcGFyYW1zKQorICAgICAgICAgICAgICAoc2V0cSB1bmV4cGxhaW5lZC1wYXJhbXMg KGRlbGV0ZSBwYXJtIHVuZXhwbGFpbmVkLXBhcmFtcykpKQorICAgICAgICAgIChpZiAoPiAobGVu Z3RoIGdyb3VwLWtleXMpIDEpCisgICAgICAgICAgICAgIChkb2xpc3QgKGdrZXkgZ3JvdXAta2V5 cykKKyAgICAgICAgICAgICAgICAoaWYgKHN0cmluZz0gZ2tleSBhbnktZ3JvdXAta2V5KQorICAg ICAgICAgICAgICAgICAgICAoc2V0Y2RyIChhc3NvYyBwYXJtIHBhcmFtcy1hbGlzdCkgKGRlbGV0 ZSBna2V5IGdyb3VwLWtleXMpKSkpKSkpCisKKyAgICAgIDs7IENvbGxhcHNlIHBhcmFtZXRlcnMg aW50byBleGNsdXNpb24gZ3JvdXBzCisgICAgICA7OyAtIGNvbnZlcnQgcGFyYW1zIOKGkiBsaXN0 KGV4Y2x1c2lvbiBncm91cCBrZXlzKSB0byAgZXhjbHVzaW9uLWdyb3VwLWtleSDihpIgbGlzdChw YXJhbXMpCisgICAgICA7OyAtIGUuZy4nKCgic3luYyIgImltcG9ydCIpKCIvdG1wL3N1YmxvdyIg InRhbmdsZSIpKCIvdG1wL2xvdyIgInRhbmdsZSIpKCJubyIgInRhbmdsZSIpKQorICAgICAgKGxl dCAoZ3JvdXAtYWxpc3QpCisgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoeCkgKHNldHEgZ3JvdXAt YWxpc3QgKGFsaXN0LWFwcGVuZCBncm91cC1hbGlzdCAoY2FkciB4KSAoY2FyIHgpKSkpIHBhcmFt cy1hbGlzdCkKKyAgICAgICAgOzsgLSBlLmcuICcoKCJ0YW5nbGUiICIvdG1wL3N1YmxvdyIgIi90 bXAvbG93IiAibm8iKSAoImltcG9ydCIgInN5bmMiKSkpCisgICAgICAgIDs7Ozsoc2V0cSBncm91 cC1hbGlzdCAobWFwY2FyICMnY2FkciBncm91cC1hbGlzdCkpCisKKyAgICAgICAgOzsgU2V0IHZh bHVlcyBpbiB0aGUgc2FtZSBvcmRlciB0aGF0IHRoZSBleGNsdXNpb24gZ3JvdXBzIGFyZSBkZWZp bmVkCisgICAgICAgIChsZXQgKChncm91cC1rZXktb3JkZXIgKG1hcGNhciAjJ2NhciBleGNsdXNp dmUtZ3JvdXBzKSkpCisgICAgICAgICAgKHNldHEgZ3JvdXAtYWxpc3QgKGNsLXJlbW92ZS1pZi1u b3QgIydpZGVudGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChtYXBjYXIgKGxhbWJkYSAoeCkgKGNhciAoYWxpc3QtZ2V0IHggZ3JvdXAtYWxpc3QpKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdy b3VwLWtleS1vcmRlcikpKSkKKworICAgICAgICA7OyBGaW5hbCBTYW5pdHkgQ2hlY2s6IHdlcmUg YWxsIHBhcmFtZXRlcnMgZXhwbGFpbmVkPworICAgICAgICA7OyAtIGlmIG5vdCwgYXBwZW5kIHRv IHJlc3VsdAorICAgICAgICAoaWYgdW5leHBsYWluZWQtcGFyYW1zCisgICAgICAgICAgICAoc2V0 cSBncm91cC1hbGlzdCAoYXBwZW5kIHVuZXhwbGFpbmVkLXBhcmFtcyBncm91cC1hbGlzdCkpKQor ICAgICAgICBncm91cC1hbGlzdCkpKSkKKworCiAoZGVmdW4gb3JnLWJhYmVsLW1lcmdlLXBhcmFt cyAoJnJlc3QgcGxpc3RzKQogICAiQ29tYmluZSBhbGwgcGFyYW1ldGVyIGFzc29jaWF0aW9uIGxp c3RzIGluIFBMSVNUUy4KIExhdGVyIGVsZW1lbnRzIG9mIFBMSVNUUyBvdmVycmlkZSB0aGUgdmFs dWVzIG9mIHByZXZpb3VzIGVsZW1lbnRzLgpAQCAtMjg0NywyNiArMjkzMSwxNSBAQCBwYXJhbWV0 ZXJzIHdoZW4gbWVyZ2luZyBsaXN0cy4iCiAJIChleHBvcnRzLWV4Y2x1c2l2ZS1ncm91cHMKIAkg IChtYXBjYXIgKGxhbWJkYSAoZ3JvdXApIChtYXBjYXIgIydzeW1ib2wtbmFtZSBncm91cCkpCiAJ CSAgKGNkciAoYXNzcSAnZXhwb3J0cyBvcmctYmFiZWwtY29tbW9uLWhlYWRlci1hcmdzLXctdmFs dWVzKSkpKQotCSAobWVyZ2UKLQkgIChsYW1iZGEgKGV4Y2x1c2l2ZS1ncm91cHMgJnJlc3QgcmVz dWx0LXBhcmFtcykKLQkgICAgOzsgTWFpbnRhaW4gZXhjbHVzaXZpdHkgb2YgbXV0dWFsbHkgZXhj bHVzaXZlIHBhcmFtZXRlcnMsCi0JICAgIDs7IGFzIGRlZmluZWQgaW4gRVhDTFVTSVZFLUdST1VQ UyB3aGlsZSBtZXJnaW5nIGxpc3RzIGluCi0JICAgIDs7IFJFU1VMVC1QQVJBTVMuCi0JICAgIChs ZXQgKG91dHB1dCkKLQkgICAgICAoZG9saXN0IChuZXctcGFyYW1zIHJlc3VsdC1wYXJhbXMgKGRl bGV0ZS1kdXBzIG91dHB1dCkpCi0JCShkb2xpc3QgKG5ldy1wYXJhbSBuZXctcGFyYW1zKQotCQkg IChkb2xpc3QgKGV4Y2x1c2l2ZS1ncm91cCBleGNsdXNpdmUtZ3JvdXBzKQotCQkgICAgKHdoZW4g KG1lbWJlciBuZXctcGFyYW0gZXhjbHVzaXZlLWdyb3VwKQotCQkgICAgICAoc2V0cSBvdXRwdXQg KGNsLXJlbW92ZS1pZgotCQkJCSAgICAobGFtYmRhIChvKSAobWVtYmVyIG8gZXhjbHVzaXZlLWdy b3VwKSkKLQkJCQkgICAgb3V0cHV0KSkpKQotCQkgIChwdXNoIG5ldy1wYXJhbSBvdXRwdXQpKSkp KSkKKyAgICAgICAgICh0YW5nbGUtZXhjbHVzaXZlLWdyb3VwcworCSAgKG1hcGNhciAobGFtYmRh IChncm91cCkgKG1hcGNhciAjJ3N5bWJvbC1uYW1lIGdyb3VwKSkKKwkJICAoY2RyIChhc3NxICd0 YW5nbGUgb3JnLWJhYmVsLWNvbW1vbi1oZWFkZXItYXJncy13LXZhbHVlcykpKSkKIAkgKHZhcmlh YmxlLWluZGV4IDApCQk7SGFuZGxlIHBvc2l0aW9uYWwgYXJndW1lbnRzLgogCSBjbGVhcm5hbWVz CiAJIHBhcmFtcwkJCQk7RmluYWwgcGFyYW1ldGVycyBsaXN0LgogCSA7OyBTb21lIGtleXdvcmRz IGFjY2VwdCBtdWx0aXBsZSB2YWx1ZXMuICBXZSBuZWVkIHRvIHRyZWF0CiAJIDs7IHRoZW0gc3Bl Y2lhbGx5LgotCSB2YXJzIHJlc3VsdHMgZXhwb3J0cykKKwkgdmFycyByZXN1bHRzIGV4cG9ydHMg dGFuZ2xlKQogICAgIChkb2xpc3QgKHBsaXN0IHBsaXN0cykKICAgICAgIChkb2xpc3QgKHBhaXIg cGxpc3QpCiAJKHBjYXNlIHBhaXIKQEAgLTI5MDEsMjIgKzI5NzQsMjggQEAgcGFyYW1ldGVycyB3 aGVuIG1lcmdpbmcgbGlzdHMuIgogCSAgICAgICh0IChlcnJvciAiVmFyaWFibGUgXCIlc1wiIG11 c3QgYmUgYXNzaWduZWQgYSBkZWZhdWx0IHZhbHVlIgogCQkJKGNkciBwYWlyKSkpKSkpCiAJICAo YCg6cmVzdWx0cyAuICx2YWx1ZSkKLQkgICAoc2V0cSByZXN1bHRzIChmdW5jYWxsIG1lcmdlCi0J CQkJICByZXN1bHRzLWV4Y2x1c2l2ZS1ncm91cHMKLQkJCQkgIHJlc3VsdHMKLQkJCQkgIChzcGxp dC1zdHJpbmcKLQkJCQkgICAoY29uZCAoKHN0cmluZ3AgdmFsdWUpIHZhbHVlKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGZ1bmN0aW9ucCB2YWx1ZSkgKGZ1bmNh bGwgdmFsdWUpKQorCSAgIChzZXRxIHJlc3VsdHMgKG9yZy1iYWJlbC0tbWVyZ2UtaGVhZGVycwor CQkJICByZXN1bHRzLWV4Y2x1c2l2ZS1ncm91cHMKKwkJCSAgcmVzdWx0cworCQkJICAoc3BsaXQt c3RyaW5nCisJCQkgICAoY29uZCAoKHN0cmluZ3AgdmFsdWUpIHZhbHVlKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKChmdW5jdGlvbnAgdmFsdWUpIChmdW5jYWxsIHZhbHVlKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgRklYTUU6IEFyYml0 cmFyeSBjb2RlIGV2YWx1YXRpb24uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh0IChldmFsIHZhbHVlIHQpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodCAoZXZhbCB2YWx1ZSB0KSkpKSkpKQogCSAgKGAoOmV4cG9ydHMgLiAsdmFsdWUp Ci0JICAgKHNldHEgZXhwb3J0cyAoZnVuY2FsbCBtZXJnZQotCQkJCSAgZXhwb3J0cy1leGNsdXNp dmUtZ3JvdXBzCi0JCQkJICBleHBvcnRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHNwbGl0LXN0cmluZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u ZCAoKGFuZCB2YWx1ZSAoZnVuY3Rpb25wIHZhbHVlKSkgKGZ1bmNhbGwgdmFsdWUpKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgdmFsdWUpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0ICIiKSkpKSkpCisJICAgKHNldHEg ZXhwb3J0cyAob3JnLWJhYmVsLS1tZXJnZS1oZWFkZXJzCisJCQkgIGV4cG9ydHMtZXhjbHVzaXZl LWdyb3VwcworCQkJICBleHBvcnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzcGxpdC1z dHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25kICgoYW5kIHZhbHVlIChmdW5j dGlvbnAgdmFsdWUpKSAoZnVuY2FsbCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAodmFsdWUgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo dCAiIikpKSkpKQorICAgICAgICAgIChgKDp0YW5nbGUgLiAsdmFsdWUpCisgICAgICAgICAgIChz ZXRxIHRhbmdsZSAob3JnLWJhYmVsLS1tZXJnZS1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAg ICAgICAgdGFuZ2xlLWV4Y2x1c2l2ZS1ncm91cHMKKyAgICAgICAgICAgICAgICAgICAgICAgICB0 YW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nCisgICAgICAgICAg ICAgICAgICAgICAgICAgIChvciB2YWx1ZSAiIikpKSkpCiAgICAgICAgICAgKChvciAnKDpkaXIg LiBhdHRhY2gpICcoOmRpciAuICInYXR0YWNoIikpCiAgICAgICAgICAgICh1bmxlc3MgKG9yZy1h dHRhY2gtZGlyIG5pbCB0KQogICAgICAgICAgICAgIChlcnJvciAiTm8gYXR0YWNobWVudCBkaXJl Y3RvcnkgZm9yIGVsZW1lbnQgKGFkZCA6SUQ6IG9yIDpESVI6IHByb3BlcnR5KSIpKQpAQCAtMjk0 Miw3ICszMDIxLDggQEAgcGFyYW1ldGVycyB3aGVuIG1lcmdpbmcgbGlzdHMuIgogCQkJICAgICAg cGFyYW1zKSkpKSkKICAgICA7OyBIYW5kbGUgb3RoZXIgc3BlY2lhbCBrZXl3b3Jkcywgd2hpY2gg YWNjZXB0IG11bHRpcGxlIHZhbHVlcy4KICAgICAoc2V0cSBwYXJhbXMgKG5jb25jIChsaXN0IChj b25zIDpyZXN1bHRzIChtYXBjb25jYXQgIydpZGVudGl0eSByZXN1bHRzICIgIikpCi0JCQkgICAg ICAoY29ucyA6ZXhwb3J0cyAobWFwY29uY2F0ICMnaWRlbnRpdHkgZXhwb3J0cyAiICIpKSkKKwkJ CSAgICAgIChjb25zIDpleHBvcnRzIChtYXBjb25jYXQgIydpZGVudGl0eSBleHBvcnRzICIgIikp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyA6dGFuZ2xlIChtYXBjb25jYXQg IydpZGVudGl0eSB0YW5nbGUgIiAiKSkpCiAJCQlwYXJhbXMpKQogICAgIDs7IFJldHVybiBtZXJn ZWQgcGFyYW1zLgogICAgIChvcmctYmFiZWwtZXZhbC1oZWFkZXJzIHBhcmFtcykpKQpkaWZmIC0t Z2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb2IuZWwgYi90ZXN0aW5nL2xpc3AvdGVzdC1vYi5lbApp bmRleCBmMTI1MzMyNTguLmE1OGE0NzA1MiAxMDA2NDQKLS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qt b2IuZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2IuZWwKQEAgLTMzNyw3ICszMzcsNyBAQCBQ Uk9QRVJUSUVTIGlzIGEgbGlzdCBvZiBwcm9wZXJ0eSBrZXl3b3JkcyBvciBhIHNpbmdsZSBrZXl3 b3JkLiIKICMrYmVnaW5fc3JjIGNvbmYKICMrZW5kX3NyYyIKICAgICAgICAgICAgICh0ZXN0LW9i L2dldC1zcmMtYmxvY2stcHJvcGVydHkgOnRhbmdsZSkpKSkKLSAgKHNob3VsZC1ub3QgOzsgMi4g aW5oZXJpdC1kb2N1bWVudC1oZWFkZXItd2l0aC1sb2NhbC1zeW5jLWFjdGlvbgorICAoc2hvdWxk IDs7IDIuIGluaGVyaXQtZG9jdW1lbnQtaGVhZGVyLXdpdGgtbG9jYWwtc3luYy1hY3Rpb24KICAg IDs7IFRoaXMgc2hvdWxkIHBhc3Mgd2l0aCBuZXdlciBtZXJnZSBmdW5jdGlvbiB3aXRoIG11bHRp cGxlIHRhbmdsZSBwYXJhbWV0ZXJzCiAgICAoZXF1YWwgJyg6dGFuZ2xlICIvdG1wL2RlZmF1bHRf dGFuZ2xlLnR4dCBza2lwIikKICAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKQEAg LTM3Nyw3ICszNzcsNyBAQCBQUk9QRVJUSUVTIGlzIGEgbGlzdCBvZiBwcm9wZXJ0eSBrZXl3b3Jk cyBvciBhIHNpbmdsZSBrZXl3b3JkLiIKICMrYmVnaW5fc3JjIGNvbmYgIDp0YW5nbGUgcmFuZG9t ZmlsZQogIytlbmRfc3JjIgogICAgICAgICAgICAgKHRlc3Qtb2IvZ2V0LXNyYy1ibG9jay1wcm9w ZXJ0eSAnKDp0YW5nbGUgOnJlc3VsdHMpKSkpKQotICAoc2hvdWxkLW5vdCAgOzsgNi4gaW5oZXJp dC1kb2N1bWVudC10ZmlsZS10YWtlLW9ubHktbGFzdC1sb2NhbC1zeW5jLWFjdGlvbgorICAoc2hv dWxkICA7OyA2LiBpbmhlcml0LWRvY3VtZW50LXRmaWxlLXRha2Utb25seS1sYXN0LWxvY2FsLXN5 bmMtYWN0aW9uCiAgICA7OyBUaGlzIHNob3VsZCBwYXNzIHdpdGggbmV3ZXIgbWVyZ2UgZnVuY3Rp b24gd2l0aCBtdWx0aXBsZSB0YW5nbGUgcGFyYW1ldGVycwogICAgKGVxdWFsICcoOnRhbmdsZSAi L3RtcC9kZWZhdWx0X3RhbmdsZS50eHQgZXhwb3J0IikKICAgICAgICAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQKQEAgLTM4Nyw3ICszODcsNyBAQCBQUk9QRVJUSUVTIGlzIGEgbGlzdCBvZiBw cm9wZXJ0eSBrZXl3b3JkcyBvciBhIHNpbmdsZSBrZXl3b3JkLiIKICMrYmVnaW5fc3JjIGNvbmYg IDp0YW5nbGUgaW1wb3J0IGV4cG9ydAogIytlbmRfc3JjIgogICAgICAgICAgICAgKHRlc3Qtb2Iv Z2V0LXNyYy1ibG9jay1wcm9wZXJ0eSA6dGFuZ2xlKSkpKQotICAoc2hvdWxkLW5vdCAgOzsgNy4g aWdub3JlLWRvY3VtZW50LWhlYWRlci10YWtlLWxhc3QtdGZpbGUtYW5kLXN5bmMtYWN0aW9uCisg IChzaG91bGQgIDs7IDcuIGlnbm9yZS1kb2N1bWVudC1oZWFkZXItdGFrZS1sYXN0LXRmaWxlLWFu ZC1zeW5jLWFjdGlvbgogICAgOzsgVGhpcyBzaG91bGQgcGFzcyB3aXRoIG5ld2VyIG1lcmdlIGZ1 bmN0aW9uIHdpdGggbXVsdGlwbGUgdGFuZ2xlIHBhcmFtZXRlcnMKICAgIChlcXVhbCAnKDp0YW5n bGUgImZuYW1lMiBleHBvcnQiKQogICAgICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dApA QCAtNDI2LDkgKzQyNiw4IEBAIFBST1BFUlRJRVMgaXMgYSBsaXN0IG9mIHByb3BlcnR5IGtleXdv cmRzIG9yIGEgc2luZ2xlIGtleXdvcmQuIgogIytiZWdpbl9zcmMgY29uZiA6dGFuZ2xlIFwiZm9v LnR4dFwiIDpjb21tZW50cyBsaW5rCiAjK2VuZF9zcmMiCiAgICAgICAgICAgICAodGVzdC1vYi9n ZXQtc3JjLWJsb2NrLXByb3BlcnR5ICcoOnRhbmdsZSA6ZXhwb3J0cyA6Y29tbWVudHMpKSkpKQot ICAoc2hvdWxkLW5vdCAgOzsgMTEuIG92ZXJyaWRlLWRvY3VtZW50LWFuZC1oZWFkaW5nLXRmaWxl LXdpdGgteWVzCi0gICA7OyBUaGlzIHNob3VsZCBwYXNzIHdpdGggbmV3ZXIgbWVyZ2UgZnVuY3Rp b24gd2l0aCBtdWx0aXBsZSB0YW5nbGUgcGFyYW1ldGVycwotICAgKGVxdWFsICcoOnRhbmdsZSAi Zm9vLnR4dCIpCisgIChzaG91bGQgIDs7IDExLiBvdmVycmlkZS1kb2N1bWVudC1hbmQtaGVhZGlu Zy10ZmlsZS13aXRoLXllcworICAgKGVxdWFsICcoOnRhbmdsZSAieWVzIikKICAgICAgICAgICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKICAgICAgICAgICAgICAgIlwKICMrUFJPUEVSVFk6IGhl YWRlci1hcmdzIDp0YW5nbGUgL3RtcC9kZWZhdWx0X3RhbmdsZS50eHQKLS0gCjIuNDEuMAoK --0000000000006425a40601f1bee3--