From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id cBqtLFFLf2StcwEASxT56A (envelope-from ) for ; Tue, 06 Jun 2023 17:05:53 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id gMyBLFFLf2RbswAAauVa8A (envelope-from ) for ; Tue, 06 Jun 2023 17:05:53 +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 0816B37D15 for ; Tue, 6 Jun 2023 17:05:53 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q6YEW-0004dp-O1; Tue, 06 Jun 2023 11:04:28 -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 1q6YEU-0004X1-Py for emacs-orgmode@gnu.org; Tue, 06 Jun 2023 11:04:26 -0400 Received: from mail-oo1-xc36.google.com ([2607:f8b0:4864:20::c36]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q6YER-000883-If for emacs-orgmode@gnu.org; Tue, 06 Jun 2023 11:04:26 -0400 Received: by mail-oo1-xc36.google.com with SMTP id 006d021491bc7-5523bd97c64so4801371eaf.0 for ; Tue, 06 Jun 2023 08:04:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686063861; x=1688655861; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=lEYl+MeUmeyQMzMa06Pv7kSCsRYYf4DByfFqth7D1fQ=; b=JEo+Zgvz857W1q5v+65Uifm0GnrTCIrOkEmAYgqtet3M5edtfzboMIYCWgTSvYO0VP 4FDaRgOTjI6p2+zlEyTvpepBoizlct2s3as7nOvLvwfCMEorRkDyMHCv460dE92HfSZq Ay6Zvh21aWIyHV2zhMycHnNJ8QZy8Tb+o6lPLV0lKYmlEuPA1hFXrzrKRuBvQcH3JlwR Kb2yE/Yl+o9hmXZqlRjziHgoRMjRPabeMtrcZRNR24ydnYR/8FRBcUf31rg8HkzAFSkQ m7OZBL0IPyKGhkumK7Fx1W1Fa0VveUTktS7E4RU3LZd0dMgiNq+PVu9MOOqyIyVtP1KG RC4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686063861; x=1688655861; 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=lEYl+MeUmeyQMzMa06Pv7kSCsRYYf4DByfFqth7D1fQ=; b=WbIr3Zeem18i/FI+qTLPj5k98pbnvHe6K8Be86EmA/zEkrUnbrZSMj7fMvmsAKhETX RXuL9RZwEGfNjWsrFxp42z19IBALhhsi1mqltyojk92c8cWM1PWFlinNvRSCK5oGP/Jd /UDFsF0Bb6GVIlxQ1JXiNvZjbzcOqzs6E2bVmTCqVCOToxOQc+W1ZuAe09Ddl8uoRDLp qUIHA50bqX13lTGkb+fXPL8W1ADwfp9WqDNNxnytKmZnva2nXJDkxUrlHQXQ66rd+QRI beJVyWTcg4hwjelhchs+mgUFew5FPfsIFejhp+0xC1UYIbS+5wONVULraoH3/PSA5nqN xH1A== X-Gm-Message-State: AC+VfDz+I7FuNoB3IUCO0gqnryvq1DEsMKeEf/NIQc9ZRIUViINRJntm d9QkNSSjbRtpMC89fPMiMVVvrxFdvqstHzl4vcg= X-Google-Smtp-Source: ACHHUZ6ye5QxGbZVbA0jZ3FHeqXGh7oStINkz9Z3Zd9a1Nk9fHiY4FRnHD6mSpY0swP+l+G2Wqq76+4/sefyQyqHBz4= X-Received: by 2002:a05:6808:234d:b0:38e:e0d2:6080 with SMTP id ef13-20020a056808234d00b0038ee0d26080mr1279759oib.19.1686063861526; Tue, 06 Jun 2023 08:04:21 -0700 (PDT) MIME-Version: 1.0 References: <877cusauyq.fsf@localhost> <871ql0ar16.fsf@localhost> <230E1B66-880A-468E-BEB0-33A3C88858D1@gmail.com> <87y1n7ao17.fsf@localhost> <87edokt499.fsf@localhost> In-Reply-To: From: Carlo Tambuatco Date: Tue, 6 Jun 2023 11:03:45 -0400 Message-ID: Subject: Re: [BUG] Org-9.6.x org templates hang on 'clipboard pasted as level 2 subtree'... To: Ihor Radchenko Cc: Org-Mode Mailing List Content-Type: multipart/mixed; boundary="0000000000008987e505fd775568" Received-SPF: pass client-ip=2607:f8b0:4864:20::c36; envelope-from=oraclmaster@gmail.com; helo=mail-oo1-xc36.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, HTML_MESSAGE=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-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1686063953; a=rsa-sha256; cv=none; b=aTXrNDsH/YSFpQ8N7bDkQSStKiJmPbp6KbCvuT/Qs12xNzdDILWCB0YvBnPNw5osykPETc 91it1UsIzjfmf86K++XbSYKr8tf9Dym8p4l81Ikc7qN6Wk14FqewnL+eh0+fISyCGKMKcO KF4cgQzsLL8DjZ2AulcFhrHYdQGfRTYaR4gMIn3bxOlbLXTuzqsPHraGSkhESsxIJvaE6F nIPAD/1lVGMjg3RVKQJUMslRuY2S6rT607AHZKQKNhOC5ZDklT5/eDgtehkyLxAbdt3DWk NfTqtO8Xj5hi0xVfUuKLGMa/E5D7PYBrva1sLc5Mva/dvhz3yhad01QPAjRIyQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20221208 header.b=JEo+Zgvz; dmarc=fail reason="SPF not aligned (relaxed)" 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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1686063953; 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=XYzU5i3SVfJMrcixjJ8sicAOzDL3qj1lSzKPFUB/Mi4=; b=iCyR+7TLcqtmsEVa8ZfGdxddr1624meRmnvlhZT1gHr7zey4OLBXJDh/keoUgU9m6JqhnV JNWFeSTKoZH/CCphNtLlHH4JxIicnQyqhxnERyGvTe+5vLqTOYEzM9VRff+ti8M861+pfy L0jueqXYoA8eP5yokLGG5QvEBJFIJs5jQ1qs82mt+qT8eUcApob4itKpfrL5JuDJ0H0Q5l o4v2sNnBB3jlzfQtj3llAE1/eLMbllLACcSwJwfHeWrGvZFvLmPxwSeLbX08wvp8gvRAiX YMju7oqMZ6EfS2M3Sr/zxFvZRjoJ769vNpJOfhOEwuvrBaJsf8LRzlAehuGD3Q== Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20221208 header.b=JEo+Zgvz; dmarc=fail reason="SPF not aligned (relaxed)" 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-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -1.09 X-Spam-Score: -1.09 X-Migadu-Queue-Id: 0816B37D15 X-TUID: ubqnBEvqCz9R --0000000000008987e505fd775568 Content-Type: multipart/alternative; boundary="0000000000008987e405fd775566" --0000000000008987e405fd775566 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hey Ihor, I recently upgraded my emacs to emacs@29 via homebrew, and I know this is an old thread, but now that my new emacs version comes with org-9.6.6, I am getting the same issues as I detailed in this thread with my org capture templates. I tried to do a reproduce with emacs -q but the error does not reproduce in those conditions, so it might be an issue with org mode interacting with some of my other packages installed. I will include a list of emacs packages I have installed, and my org-init.el file. Maybe you could see if anything jumps out at you that is causing this weird behavior. On Mon, Apr 17, 2023 at 6:40=E2=80=AFAM Carlo Tambuatco wrote: > I've decided to delete the org-9.6 folder entirely and go with the > built-in org-9.5.5 that comes with my emacs distribution, emacs-28.2 (9.0= ). > > Maybe for some reason newer versions of org are just incompatible with > my version of emacs 28.2. Maybe the version of emacs you're using is > newer or somehow more compatible with these bleeding edge development > versions of org-mode, but I suppose when I upgrade my emacs the version > of org that comes with it (9.6, I suppose) will just work out of the box. > > At any rate, I can't spend any more time and energy on this. I'll stick t= o > what works. Thanks for the help. > > On Sun, Apr 16, 2023 at 8:09=E2=80=AFAM Ihor Radchenko > wrote: > >> Carlo Tambuatco writes: >> >> > I restarted emacs with org 9.6.3 and reloaded it uncompiled and >> > did M-x toggle-debug-on-error to turn on backtrace on error. >> > >> > I have also attached a copy of what my org-capture-templates >> > variable looks like. >> > >> > Comparing these backtraces to my org-capture-templates, >> > you can see that only some of them fail (the ones corresponding to >> > 'd', 'e', 'r', 'Rr', 'Rg', and 'Cc') >> > >> > They all worked up until Org 9.6. They still work under Org 9.5.5, so >> > I don't know what changed. >> >> I tried your templates locally and I am not seeing any problem. >> >> May you try to reproduce starting from emacs -Q? >> Or, alternatively, try to use the following version of Org capture, use >> C-g to exit, and report the (hopefully) more detailed backtrace. >> >> (defun org-capture (&optional goto keys) >> "Capture something. >> \\ >> This will let you select a template from `org-capture-templates', and >> then file the newly captured information. The text is immediately >> inserted at the target location, and an indirect buffer is shown where >> you can edit it. Pressing `\\[org-capture-finalize]' brings you back to >> the \ >> previous >> state of Emacs, so that you can continue your work. >> >> When called interactively with a `\\[universal-argument]' prefix argumen= t >> \ >> GOTO, don't >> capture anything, just go to the file/headline where the selected >> template stores its notes. >> >> With a `\\[universal-argument] \\[universal-argument]' prefix argument, >> go to \ >> the last note stored. >> >> When called with a `C-0' (zero) prefix, insert a template at point. >> >> When called with a `C-1' (one) prefix, force prompting for a date when >> a datetree entry is made. >> >> ELisp programs can set KEYS to a string associated with a template >> in `org-capture-templates'. In this case, interactive selection >> will be bypassed. >> >> If `org-capture-use-agenda-date' is non-nil, capturing from the >> agenda will use the date at point as the default date. Then, a >> `C-1' prefix will tell the capture process to use the HH:MM time >> of the day at point (if any) or the current HH:MM time." >> (interactive "P") >> (when (and org-capture-use-agenda-date >> (eq major-mode 'org-agenda-mode)) >> (setq org-overriding-default-time >> (org-get-cursor-date (equal goto 1)))) >> (cond >> ((equal goto '(4)) (org-capture-goto-target keys)) >> ((equal goto '(16)) (org-capture-goto-last-stored)) >> (t >> (let* ((orig-buf (current-buffer)) >> (annotation (if (and (boundp >> 'org-capture-link-is-already-stored) >> org-capture-link-is-already-stored) >> (plist-get org-store-link-plist :annotation) >> (ignore-errors (org-store-link nil)))) >> (entry (or org-capture-entry (org-capture-select-template >> keys))) >> initial) >> (setq initial (or org-capture-initial >> (and (org-region-active-p) >> (buffer-substring (point) (mark))))) >> (when (stringp initial) >> (remove-text-properties 0 (length initial) '(read-only t) >> initial)) >> (when (stringp annotation) >> (remove-text-properties 0 (length annotation) >> '(read-only t) annotation)) >> (cond >> ((equal entry "C") >> (customize-variable 'org-capture-templates)) >> ((equal entry "q") >> (user-error "Abort")) >> (t >> (org-capture-set-plist entry) >> (org-capture-get-template) >> (org-capture-put :original-buffer orig-buf >> :original-file (or (buffer-file-name orig-buf) >> (and (featurep 'dired) >> (car (rassq orig-buf >> >> dired-buffers)))) >> :original-file-nondirectory >> (and (buffer-file-name orig-buf) >> (file-name-nondirectory >> (buffer-file-name orig-buf))) >> :annotation annotation >> :initial initial >> :return-to-wconf (current-window-configuration) >> :default-time (or org-overriding-default-time >> (org-current-time))) >> (org-capture-set-target-location (and (equal goto 0) 'here)) >> (condition-case error >> (org-capture-put :template (org-capture-fill-template)) >> ((error quit) >> (if (get-buffer "*Capture*") (kill-buffer "*Capture*")) >> (error "Capture abort: %s" (error-message-string error)))) >> >> (setq org-capture-clock-keep (org-capture-get :clock-keep)) >> (org-capture-place-template >> (eq (car (org-capture-get :target)) 'function)) >> (when (and (derived-mode-p 'org-mode) (org-capture-get :clock-in= )) >> (condition-case nil >> (progn >> (when (org-clock-is-active) >> (org-capture-put :interrupted-clock >> (copy-marker org-clock-marker))) >> (org-clock-in) >> (setq-local org-capture-clock-was-started >> (copy-marker org-clock-marker))) >> (error "Could not start the clock in this capture buffer"))) >> (when (org-capture-get :immediate-finish) >> (org-capture-finalize)))))))) >> >> -- >> Ihor Radchenko // yantar92, >> Org mode contributor, >> Learn more about Org mode at . >> Support Org development at , >> or support my work at >> > --0000000000008987e405fd775566 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hey Ihor, I recently upgraded my emacs to= emacs@29 via homebrew, and I know this is an=C2=A0
old thread, but now= that my new emacs version comes with org-9.6.6, I am getting the same=C2= =A0
issues as I detailed in this thread with my org capture templ= ates. I tried to do a reproduce=C2=A0
with emacs -q but the error= does not reproduce in those conditions, so it might be an issue=C2=A0
with org mode interacting with some of my other packages installed.= =C2=A0

I will include a list of emacs packages I h= ave installed, and my org-init.el file. Maybe you=C2=A0
could see= if anything jumps out at you that is causing this weird=C2=A0behavior.=C2= =A0

On Mon, Apr 17, 2023 at 6:40=E2=80=AFAM Carlo Tambuatco <oraclmaster@gmail.com> wrote:
=
I&= #39;ve decided to delete the org-9.6 folder entirely and go with the=C2=A0<= div>built-in org-9.5.5 that comes with my emacs distribution, emacs-28.2 (9= .0).

Maybe for some=C2=A0reason newer versions of = org are just incompatible with=C2=A0
my version of emacs 28.2. Ma= ybe the version of emacs you're using is=C2=A0
newer or someh= ow more compatible with these bleeding edge development=C2=A0
ver= sions of org-mode, but I suppose when I upgrade my emacs the version=C2=A0<= /div>
of org that comes with it (9.6, I suppose) will just work out of = the box.=C2=A0

At any rate, I can't spend any = more time and energy on this. I'll stick to=C2=A0
what works.= Thanks for the help.

On Sun, Apr 16, 2023 at 8:09=E2=80=AFAM Ihor Rad= chenko <yantar9= 2@posteo.net> wrote:
Carlo Tambuatco <oraclmaster@gmail.com> writes:

> I restarted emacs with org 9.6.3 and reloaded it uncompiled and
> did M-x toggle-debug-on-error to turn on backtrace on error.
>
> I have also attached a copy of what my org-capture-templates
> variable looks like.
>
> Comparing these backtraces to my org-capture-templates,
> you can see that only some of them fail (the ones corresponding to
> 'd', 'e', 'r', 'Rr', 'Rg', and= 'Cc')
>
> They all worked up until Org 9.6. They still work under Org 9.5.5, so<= br> > I don't know what changed.

I tried your templates locally and I am not seeing any problem.

May you try to reproduce starting from emacs -Q?
Or, alternatively, try to use the following version of Org capture, use
C-g to exit, and report the (hopefully) more detailed backtrace.

(defun org-capture (&optional goto keys)
=C2=A0 "Capture something.
\\<org-capture-mode-map>
This will let you select a template from `org-capture-templates', and then file the newly captured information.=C2=A0 The text is immediately
inserted at the target location, and an indirect buffer is shown where
you can edit it.=C2=A0 Pressing `\\[org-capture-finalize]' brings you b= ack to the \
previous
state of Emacs, so that you can continue your work.

When called interactively with a `\\[universal-argument]' prefix argume= nt \
GOTO, don't
capture anything, just go to the file/headline where the selected
template stores its notes.

With a `\\[universal-argument] \\[universal-argument]' prefix argument,= go to \
the last note stored.

When called with a `C-0' (zero) prefix, insert a template at point.

When called with a `C-1' (one) prefix, force prompting for a date when<= br> a datetree entry is made.

ELisp programs can set KEYS to a string associated with a template
in `org-capture-templates'.=C2=A0 In this case, interactive selection will be bypassed.

If `org-capture-use-agenda-date' is non-nil, capturing from the
agenda will use the date at point as the default date.=C2=A0 Then, a
`C-1' prefix will tell the capture process to use the HH:MM time
of the day at point (if any) or the current HH:MM time."
=C2=A0 (interactive "P")
=C2=A0 (when (and org-capture-use-agenda-date
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(eq major-mode 'org-age= nda-mode))
=C2=A0 =C2=A0 (setq org-overriding-default-time
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-get-cursor-date (equal goto 1)))) =C2=A0 (cond
=C2=A0 =C2=A0((equal goto '(4))=C2=A0 (org-capture-goto-target keys)) =C2=A0 =C2=A0((equal goto '(16)) (org-capture-goto-last-stored))
=C2=A0 =C2=A0(t
=C2=A0 =C2=A0 (let* ((orig-buf (current-buffer))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(annotation (if (and (boundp '= org-capture-link-is-already-stored)
=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 org-capture-link-is-already-stored)<= br> =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(plist-get org-store-link-plist :annotation)
=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(ignore-errors (org-store-link nil))))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(entry (or org-capture-entry (org-= capture-select-template keys)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0initial)
=C2=A0 =C2=A0 =C2=A0 (setq initial (or org-capture-initial
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (and (org-region-active-p)
=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(buffer-substring (point) (mark)))))
=C2=A0 =C2=A0 =C2=A0 (when (stringp initial)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (remove-text-properties 0 (length initial) '= ;(read-only t) initial))
=C2=A0 =C2=A0 =C2=A0 (when (stringp annotation)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (remove-text-properties 0 (length annotation) =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 '(read-only t) annotation))
=C2=A0 =C2=A0 =C2=A0 (cond
=C2=A0 =C2=A0 =C2=A0 =C2=A0((equal entry "C")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (customize-variable 'org-capture-templates)= )
=C2=A0 =C2=A0 =C2=A0 =C2=A0((equal entry "q")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (user-error "Abort"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0(t
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture-set-plist entry)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture-get-template)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture-put :original-buffer orig-buf
=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:original-file (or (buffer-file-name orig-buf)
=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 (and (featurep 'dired)
=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 =C2=A0 =C2=A0(car (rassq orig-buf
=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 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0dired-= buffers))))
=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:original-file-nondirectory
=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(and (buffer-file-name orig-buf)
=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 (file-name-nondirectory
=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(buffer-file-name orig-buf)))
=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:annotation annotation
=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:initial initial
=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:return-to-wconf (current-window-configuration)
=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:default-time (or org-overriding-default-time
=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(org-current-time)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture-set-target-location (and (equal go= to 0) 'here))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (condition-case error
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture-put :template (org-c= apture-fill-template))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ((error quit)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(if (get-buffer "*Capture*&qu= ot;) (kill-buffer "*Capture*"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(error "Capture abort: %s&quo= t; (error-message-string error))))

=C2=A0 =C2=A0 =C2=A0 =C2=A0 (setq org-capture-clock-keep (org-capture-get := clock-keep))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture-place-template
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(eq (car (org-capture-get := target)) 'function))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (when (and (derived-mode-p 'org-mode) (org-= capture-get :clock-in))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (condition-case nil
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (progn
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (when (org-clock-is= -active)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture= -put :interrupted-clock
=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(copy-marker org-clock-= marker)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-clock-in)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (setq-local org-cap= ture-clock-was-started
=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 (copy-marker org-clock-marker)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (error "Could not start the = clock in this capture buffer")))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (when (org-capture-get :immediate-finish)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (org-capture-finalize))))))))

--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,=
or support my work at <https://liberapay.com/yantar92>
--0000000000008987e405fd775566-- --0000000000008987e505fd775568 Content-Type: text/plain; charset="US-ASCII"; name="emacs-packages.txt" Content-Disposition: attachment; filename="emacs-packages.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_liket2in1 MGJsYXlvdXQtcmVhZG1lLnR4dAphLTIwMjEwOTI5LjE1MTAKYWJ5c3MtdGhlbWUtcmVhZG1lLnR4 dAphYy1hbmFjb25kYS1yZWFkbWUudHh0CmFjLWh0bWwtMjAxNTEwMDUuNzMxCmFjLWh0bWwtYW5n dWxhci1yZWFkbWUudHh0CmFjLWh0bWwtY3Nzd2F0Y2hlci1yZWFkbWUudHh0CmFjLWlzcGVsbC0y MDE1MTEwMS4yMjYKYWMtcGhwLTIwMjMwNTIyLjEzMjkKYWMtcGhwLWNvcmUtMjAyMzA1MjkuMTQw NAphYy1weXRob24tMjAxMTA1MTkKYWMtc2xpbWUtMjAxNzEwMjcuMjEwMAphY2UtZmx5c3BlbGwt cmVhZG1lLnR4dAphY2hpZXZlbWVudHMtcmVhZG1lLnR4dAphZGp1c3QtcGFyZW5zLXJlYWRtZS50 eHQKYWlvLTIwMjAwNjEwLjE5MDQKYWxlcnQtMjAyMjEyMTMuMTYxOQphcmNoaXZlcwphc3luYy0y MDIzMDUyOC42MjIKYXRvbS1kYXJrLXRoZW1lLTIwMjIwMTE0LjE5MDIKYXVjdGV4LTEzLjIuMAph dWN0ZXgtMTMuMi4wLnNpZ25lZAphdXRvLWNvbXBsZXRlLTIwMjIxMjMxLjE2MzMKYmJkYi0yMDIy MDcwNi40MzMKYmluZC1rZXktMjAyMzAyMDMuMjAwNApjaGVzcy0yLjAuNQpjaGVzcy0yLjAuNS5z aWduZWQKY2lkZXItMS43LjAKY2xvanVyZS1tb2RlLTUuMTYuMApjb2ZmZWUtbW9kZS0yMDIwMDMx NS4xMTMzCmNvbW1lbnRlci0yMDE2MDIxOS4xNjI3CmNvbXBhbnktMjAyMzA0MTYuMjAzNApjb21w YW55LWlyb255LTIwMTkwMTI0LjIzNDYKY29tcGF0LTI5LjEuNC4xCmNvbXBhdC0yOS4xLjQuMS5z aWduZWQKY29uY3VycmVudC0yMDE3MDYwMS40MzUKY3Jlb2xlLTIwMTQwOTI0LjE1MDAKY3N2LXJl YWRtZS50eHQKY3RhYmxlLTIwMjEwMTI4LjYyOQpkYXJ0LW1vZGUtMjAyMjA0MDEuMApkYXNoLTIw MjMwNTAyLjEzMjQKZGItMjAxNDA0MjEuMjExMQpkYi1wZy1yZWFkbWUudHh0CmRiLXJlYWRtZS50 eHQKZGVmZXJyZWQtMjAxNzA5MDEuMTMzMAplYmYtcmVhZG1lLnR4dAplY2xpbS1yZWFkbWUudHh0 CmVnbG90LTIwMjIxMDIwLjEwMTAKZWxkb2MtMS4xNC4wCmVsZG9jLTEuMTQuMC5zaWduZWQKZWxu b2RlLTIwMTkwNzAyLjE1MDkKZWxweS0yMDIzMDQwMi4xOTQ2CmVudi12YXItaW1wb3J0LTIuMQpl cGMtMjAxNDA2MTAuNTM0CmVwbC0yMDE4MDIwNS4yMDQ5CmVzcy0yMDIzMDQxOS4xNTI3CmV4ZWMt cGF0aC1mcm9tLXNoZWxsLTIwMjIwODI2LjE1MzUKZXh0ZW5kLWRuZC1yZWFkbWUudHh0CmV5dW1s LXJlYWRtZS50eHQKZi0yMDIzMDExNi4xMDMyCmZha2lyLTIwMTQwNzI5LjE2NTIKZmx5Y2hlY2st MjAyMzAzMDYuNDE0CmZseWNoZWNrLWlyb255LTIwMTgwNjA0LjIxNTIKZmx5Y2hlY2sta290bGlu LTIwMjMwMTExLjE5MDcKZmx5Y2hlY2stbmltc3VnZ2VzdC0yMDE3MTAyNy4yMjA4CmZseWNoZWNr LXBlcmw2LTIwMTgwNTA5LjIyMDEKZmx5Y2hlY2stc3dpZnQtcmVhZG1lLnR4dApmbHltYWtlLTEu My40CmZseW1ha2UtMS4zLjQuc2lnbmVkCmZseXNwZWxsLWNvcnJlY3QtcmVhZG1lLnR4dApnZWVr bm90ZS1yZWFkbWUudHh0CmdoLXJlYWRtZS50eHQKZ2l0LWNvbW1pdC0yMDIzMDUyMS4yMzQ0Cmdu dHAtMjAxNDEwMjUuMjUwCmdudXBnCmdudXBsb3QtMjAyMzAzMjMuMTQwMApnbnVwbG90LW1vZGUt MjAxNzEwMTMuMTYxNgpnbnVwbG90LW1vZGUtcmVhZG1lLnR4dApnby1tb2RlLTIwMjIxMjI4LjE3 MDYKZ3JhZGxlLW1vZGUtMjAxNTAzMTMuMTkwNQpoYWNrZXJuZXdzLXJlYWRtZS50eHQKaGVsbS0y MDIzMDUyOS4xNDUyCmhlbG0tY29yZS0yMDIzMDUwNS44MDIKaGVsbS1wZXJsZG9jLXJlYWRtZS50 eHQKaGVsbS1wcm9qZWN0aWxlLTIwMjIxMjE1LjYxMwpoaWdobGlnaHQtaW5kZW50YXRpb24tMjAy MTAyMjEuMTQxOApob3Jvc2NvcGUtcmVhZG1lLnR4dApodC0yMDIzMDIxNC4xNjMyCmh0bWxpemUt MjAyMDA4MTYuNzQ2Cmh0bWxpemUtMjAyMTA4MjUuMjE1MApodW1hbm9pZC10aGVtZXMtMjAyMzAz MDguMjEyOQppbmRpdW0tMjAyMTAzMDkuMTIxMAppbmtwb3QtdGhlbWUtMjAyMzA1MTEuMTE2Cmlw eXRob24uZWwKaXJvbnktMjAyMjAxMTAuODQ5Cmlyb255LWVsZG9jLTIwMjAwNjIyLjIyMTQKaXZ5 LTIwMjMwNDEwLjE4MTUKamFwYW5sYXctcmVhZG1lLnR4dApqZGVlLTIwMTkxMTAyLjE0MjYKamVk aS0yMDE5MTAxMS4xNzUwCmplZGktY29yZS0yMDIxMDUwMy4xMzE1CmpzMi1tb2RlLTIwMjMwNTA5 LjIyNDQKanMyLXJlZmFjdG9yLTIwMjEwMzA2LjIwMDMKanNvbi1wcm9jZXNzLWNsaWVudC0yMDIx MDUyNS43MzMKanVsaWEtbW9kZS0yMDIzMDUxMC43NDUKa290bGluLW1vZGUtMjAyMzAxMjMuMTg1 OQprdWJlcm5ldGVzLXJlYWRtZS50eHQKa3YtMjAxNDAxMDguMTUzNApsYXRleC1leHRyYS0yMDIy MDgxNy41CmxldC1hbGlzdC0xLjAuNgpsZXQtYWxpc3QtMS4wLjYuc2lnbmVkCmxvZzRlLTIwMjEx MDE5Ljk0OApsc3AtbW9kZS0yMDIzMDUyNC4xODIwCmx1YS1tb2RlLTIwMjIxMjE4LjYwNQpsdi0y MDIwMDUwNy4xNTE4Cm1hY3Jvc3RlcC0yMDIzMDUxOC4xOTExCm1hZ2l0LTIwMjMwNTMwLjE0MDMK bWFnaXQtc2VjdGlvbi0yMDIzMDUyMS4xODAzCm1hcmtkb3duLW1vZGUrLTIwMTcwMzIwLjIxMDQK bWFya2Rvd24tbW9kZS0yMDIzMDUyMi4xNDcKbWVnaGFuYWRhLXJlYWRtZS50eHQKbWVtb2l6ZS0y MDIwMDEwMy4yMDM2Cm1vZHVzLW9wZXJhbmRpLXRoZW1lLTIwMjAxMTE0LjcyOQptb2R1cy12aXZl bmRpLXRoZW1lLTIwMjAxMTE0LjcyOQptdWx0aXBsZS1jdXJzb3JzLTIwMjMwMzA5LjEyMDQKbXVz ZS0zLjIwLjIKbXVzZS0zLjIwLjIuc2lnbmVkCm11c2UtcmVhZG1lLnR4dApuaW0tbW9kZS0yMDIx MTEwMi45MTcKbm9mbGV0LTIwMTQxMTAyLjE0NTQKb2Ita290bGluLTIwMTgwODIzLjEzMjEKb3Jj YS1yZWFkbWUudHh0Cm9yZy05LjUuNQpvcmctYWMtcmVhZG1lLnR4dApvcmctYWdlbmRhLXByb3Bl cnR5LXJlYWRtZS50eHQKb3JnLWFsZXJ0LTIwMjMwNTIwLjE0NDkKb3JnLWFuYWx5emVyLTIwMTkx MDAxLjE3MTcKb3JnLWF1dG9saXN0LTIwMjIwNTMwLjE2MjAKb3JnLWJvYXJkLXJlYWRtZS50eHQK b3JnLWJyYWluLXJlYWRtZS50eHQKb3JnLWJ1bGxldHMtMjAyMDAzMTcuMTc0MApvcmctY2F0ZWdv cnktY2FwdHVyZS1yZWFkbWUudHh0Cm9yZy1jaGVmLXJlYWRtZS50eHQKb3JnLWRyb3Bib3gtcmVh ZG1lLnR4dApvcmctZWh0bWwtcmVhZG1lLnR4dApvcmctZXZpbC1yZWFkbWUudHh0Cm9yZy1nY2Fs LTIwMjIxMjEyLjE4MTcKb3JnLWdyZXAtMjAyMzA0MjQuMjAwNQpvcmctaWYtcmVhZG1lLnR4dApv cmcta2FuYmFuLXJlYWRtZS50eHQKb3JnLW1pbmQtbWFwLXJlYWRtZS50eHQKb3JnLW5vdGVib29r LXJlYWRtZS50eHQKb3JnLW91dGxvb2stcmVhZG1lLnR4dApvcmctcmFuZG9tLXRvZG8tcmVhZG1l LnR4dApvcmctcmVjdXItcmVhZG1lLnR4dApvcmctc3VwZXItYWdlbmRhLXJlYWRtZS50eHQKb3Jn LXRyZWUtc2xpZGUtcmVhZG1lLnR4dApvcmdpdC1yZWFkbWUudHh0Cm9yZ2x1ZS1yZWFkbWUudHh0 Cm9zeC1kaWN0aW9uYXJ5LXJlYWRtZS50eHQKb3N4LXBsaXN0LXJlYWRtZS50eHQKcGFyZWRpdC0y MDIyMTEyNy4xNDUyCnBhcnNlY2xqLTIwMjIwNDIyLjkzNgpwYXJzZWVkbi0yMDIyMDUyMC44MzUK cGRmLXRvb2xzLTIwMjMwNDA0LjMyNwpwZXJsNi1tb2RlLTIwMjAwNDE0LjE5MzAKcGVyc2lzdC0w LjUKcGVyc2lzdC0wLjUuc2lnbmVkCnBocC1leHRyYXMtMi4yLjAuMjAxNDA0MDUKcGhwLW1vZGUt MjAyMzA1MjEuMTcwMApwaW5lbnRyeS0wLjEKcGluZW50cnktMC4xLnNpZ25lZApwaW5lbnRyeS1y ZWFkbWUudHh0CnBrZy1pbmZvLTIwMTUwNTE3LjExNDMKcG9kY2FzdGVyLXJlYWRtZS50eHQKcG9w dXAtMjAyMjEyMzEuMTYzNApwcm9qZWN0LTAuOS44CnByb2plY3QtMC45Ljguc2lnbmVkCnByb2pl Y3RpbGUtMjAyMzAzMTcuMTEwMQpweXRob24tZW52aXJvbm1lbnQtMjAxNTAzMTAuODUzCnB5dGhv bi1pbmZvLTIwMTUxMjI4LjE4NTIKcHl0aG9uLW1vZGUtMjAyMzA1MTUuNzIyCnB5dmVudi0yMDIx MTAxNC43MDcKcXVldWUtMC4yCnF1ZXVlLTAuMi5zaWduZWQKcmVmb3JtYXR0ZXItMjAyMjA2Mjcu ODI1CnJlcXVlc3QtMjAyMzAxMjcuNDE3CnJlcXVlc3QtZGVmZXJyZWQtMjAyMjA2MTQuMTYwNApy Zy0yMDIzMDQzMC43MjEKcnVieS1hZGRpdGlvbmFsLXJlYWRtZS50eHQKcnVzdC1tb2RlLTIwMjMw MTEyLjI3CnJ1c3RpYy0yMDIzMDEzMC45MTIKcnctaHVuc3BlbGwtMC4yCnMtMjAyMjA5MDIuMTUx MQpzZXEtMi4yMgpzZXEtMi4yMi5zaWduZWQKc2VxLTIuMjMKc2VxLTIuMjMuc2lnbmVkCnNlc21h bi0yMDE5MDkwOS4xNzU0CnNlc21hbi0yMDIxMDkwMS4xMTM0CnNreXBlLXJlYWRtZS50eHQKc2xp bWUtMjAyMzAzMTQuOTE1CnNvbGFyaXplZC10aGVtZS0yMDIzMDUwNy4xNDEzCnNwYWNlbWFjcy10 aGVtZS0yMDIzMDUzMC4xNzUxCnNwaW5uZXItMS43LjQKc3Bpbm5lci0xLjcuNC5zaWduZWQKc3dh bmstY2R0LTEuMC4xCnN3ZWV0Z3JlZW4tcmVhZG1lLnR4dApzd2lmdC1tb2RlLTIwMjMwNTA3Ljcx Nwpzd2lmdDMtbW9kZS1yZWFkbWUudHh0CnN3aXBlci0yMDIzMDQxMC4xODE1CnN3aXBlci1oZWxt LTIwMTgwMTMxLjE3NDQKc3dpcGVyLWhlbG0tcmVhZG1lLnR4dApzeC1yZWFkbWUudHh0CnRORkEt cmVhZG1lLnR4dAp0YWJsaXN0LTIwMjMwMzIxLjcwNQp0ZXN0LXNpbXBsZS1yZWFkbWUudHh0CnRy YW5zaWVudC0yMDIzMDYwMS4xODU0CnRyeS0yMDE4MTIwNC4yMzYKdHJ5LXJlYWRtZS50eHQKdXNl LXBhY2thZ2UtMjAyMzA0MjYuMjMyNAp2cy1kYXJrLXRoZW1lLTIwMjMwNDE1LjQzNQp3ZWItMjAx NDEyMzEuMjAwMQp3ZWItbW9kZS0yMDIzMDMyOS42MDEKd2dyZXAtMjAyMzAyMDMuMTIxNAp3aW51 bS0yMDE5MDkxMS4xNjA3CndpdGgtZWRpdG9yLTIwMjMwNTExLjIxNDIKd29yZi1yZWFkbWUudHh0 Cnhjc2NvcGUtMjAyMTA3MTkuODI4CnhyZWYtMS42LjMKeHJlZi0xLjYuMy5zaWduZWQKeHRlcm0t Y29sb3ItMjAyMzAzMjEuMwp5YXNuaXBwZXQtMjAyMDA2MDQuMjQ2CnppZy1tb2RlLTIwMjMwMzA3 LjEyMTUK --0000000000008987e505fd775568 Content-Type: application/octet-stream; name="org-init.el" Content-Disposition: attachment; filename="org-init.el" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_liket2il0 Ozsgb3JnLWluaXQuZWwgLS0tIE9yZyBtb2RlIGluaXRpYWxpemF0aW9uIHNldHRpbmdzCgo7OyBD b3B5cmlnaHQgKEMpIDIwMTcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCjs7Cjs7IEF1 dGhvcjogQ2FybG8gVGFtYnVhdGNvIDxjYXJsb2Z0YW1idWF0Y29AaU1hYy5sb2NhbD4KOzsgTWFp bnRhaW5lcjogQ2FybG8gVGFtYnVhdGNvIDxjYXJsb2Z0YW1idWF0Y29AaU1hYy5sb2NhbD4KOzsg Q3JlYXRlZDogMjIgU2VwIDIwMTcKOzsgVmVyc2lvbjogMC4wMQo7OyBLZXl3b3JkcwoKOzsgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQo7OyBhbnkgbGF0ZXIgdmVyc2lv bi4KOzsKOzsgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKOzsgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KOzsKOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKOzsgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKOzsgRm91bmRhdGlv biwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCgoKCjs7IElu aXRpYWxpemUgT3JnIE1vZGUKKHJlcXVpcmUgJ29yZykKOyhyZXF1aXJlICdvcmctaW5zdGFsbCkg OyBOb3QgcmVxdWlyZWQgd2l0aCBlbWFjc0AyOQoocmVxdWlyZSAnb3JnLWdjYWwpCihyZXF1aXJl ICdvcmctYXV0b2xpc3QpCihyZXF1aXJlICdwaW5lbnRyeSkKKHJlcXVpcmUgJ29yZy1hbmFseXpl cikKKHJlcXVpcmUgJ29yZy1hbGVydCkKKHJlcXVpcmUgJ29yZy1hdHRhY2gtZ2l0KQoKOzs7IExv YWQgT3JnIG1hcmtkb3duIGV4cG9ydGVyCihyZXF1aXJlICdveC1tZCBuaWwgdCkKCjs7O0N1c3Rv bWl6ZSBvcmcgbW9kdWxlcwooc2V0cSBvcmctbW9kdWxlcyAnKG9sLWJiZGIKICAgICAgICAgICAg ICAgICAgICAgIG9sLWdudXMKICAgICAgICAgICAgICAgICAgICAgIG9yZy1oYWJpdAogICAgICAg ICAgICAgICAgICAgICAgb2wtaXJjCiAgICAgICAgICAgICAgICAgICAgICBvcmctbW91c2UKICAg ICAgICAgICAgICAgICAgICAgIG9yZy1jcnlwdAogICAgICAgICAgICAgICAgICAgICAgb3JnLXBy b3RvY29sCiAgICAgICAgICAgICAgICAgICAgICBvbC13M20KICAgICAgICAgICAgICAgICAgICAg IG9sLWJpYnRleAogICAgICAgICAgICAgICAgICAgICAgb2wtZG9jdmlldwogICAgICAgICAgICAg ICAgICAgICAgb2wtaW5mbwogICAgICAgICAgICAgICAgICAgICAgb2wtbWhlCiAgICAgICAgICAg ICAgICAgICAgICBvbC1ybWFpbCkpCgooZXZhbC1hZnRlci1sb2FkICdvcmcKICcob3JnLWxvYWQt bW9kdWxlcy1tYXliZSB0KSkKCjs7OyBTZXQgZGVmYXVsdCBhbGVydCBzeXN0ZW0KKHNldHEgYWxl cnQtZGVmYXVsdC1zdHlsZSAnbm90aWZpZXIpCjs7OyBTZXQgZGVmYXVsdCBpbnRlcnZhbCBmb3Ig cmVjZWl2aW5nIGFsZXJ0cwo7OzsgU2V0IHRvIDEyMCBtaW51dGVzCihzZXRxIG9yZy1hbGVydC1p bnRlcnZhbCAoKiAyIDYwIDYwKSkKOzs7IEVuYWJsZSBPcmcgQWxlcnQKKG9yZy1hbGVydC1lbmFi bGUpCgo7OzsgVXNlIG9yZy1idWxsZXRzIHRvIG1ha2UgZXZlcnl0aGluZyBuaWNlIGFuZCBhd2Vz b21lCihyZXF1aXJlICdvcmctYnVsbGV0cykKKGFkZC1ob29rICdvcmctbW9kZS1ob29rIChsYW1i ZGEgKCkgKG9yZy1idWxsZXRzLW1vZGUgMSkpKQoKOzs7IEVuYWJsZSBhdXRvbGlzdCBtb2RlIGlu IGFsbCBvcmcgYnVmZmVycwooYWRkLWhvb2sgJ29yZy1tb2RlLWhvb2sgKGxhbWJkYSAoKSAob3Jn LWF1dG9saXN0LW1vZGUpKSkKCjs7O09yZyBkaXJlY3RvcnkKKHNldGYgb3JnLWRpcmVjdG9yeSAi fi9Eb2N1bWVudHMvT3JnIikKCjs7O0RpcmVjdG9yeSBmb3IgT3JnLUFuYWx5emVyCihzZXRmIG9y Zy1hbmFseXplci1kaXJlY3RvcnkgIn4vRG9jdW1lbnRzL09yZy9Qcm9ncmFtbWluZy8iKQoKOzs7 T3JnIG1vZGUga2V5YmluZGluZ3MKKGdsb2JhbC1zZXQta2V5ICJcQy1jbCIgJ29yZy1zdG9yZS1s aW5rKQooZ2xvYmFsLXNldC1rZXkgIlxDLWNhIiAnb3JnLWFnZW5kYS1saXN0KQooZ2xvYmFsLXNl dC1rZXkgIlxDLWNBIiAnb3JnLWFnZW5kYSkKKGdsb2JhbC1zZXQta2V5ICJcQy1jYyIgJ29yZy1j YXB0dXJlKQooZ2xvYmFsLXNldC1rZXkgIlxDLWNiIiAnb3JnLWlzd2l0Y2hiKQooZ2xvYmFsLXNl dC1rZXkgKGtiZCAiPGY1PiIpICdvcmctcmV2ZXJ0LWFsbC1vcmctYnVmZmVycykKOzs7KGlmIChk aXNwbGF5LWdyYXBoaWMtcCkgKGdsb2JhbC1zZXQta2V5IChrYmQgIjxmNT4iKSAnb3JnLWFnZW5k YSkpCjs7O09wZW4gYWxsIGRpcmVjdG9yeSBsaW5rcyBpbiBkaXJlZAooYWRkLXRvLWxpc3QgJ29y Zy1maWxlLWFwcHMgJyhkaXJlY3RvcnkgLiBlbWFjcykpCgo7OztPcmcgSGFiaXQgQ29sdW1uIEdy YXBoCihzZXRxIG9yZy1oYWJpdC1ncmFwaC1jb2x1bW4gNzApCihzZXRxIG9yZy1oYWJpdC1zaG93 LWhhYml0cy1vbmx5LWZvci10b2RheSBuaWwpCgo7OztPcmcgZGVmYXVsdCBzcGFuIGZvciBhZ2Vu ZGEgdmlldwooc2V0cSBvcmctYWdlbmRhLXNwYW4gJ2RheSkKCjs7O0tlZXAgbG9nIHRpbWVzIGhp ZGRlbgooc2V0cSBvcmctbG9nLWludG8tZHJhd2VyICJMT0dCT09LIikKKHNldHEgb3JnLWNsb2Nr LWludG8tZHJhd2VyIDEpCgo7OztTZXQgYmVoYXZpb3Igb2Ygc2NoZWR1bGVkIGl0ZW1zIHdpdGgg ZGVhZGxpbmVzCjs7IE5vbi1uaWwgbWVhbnMgc2tpcCBzY2hlZHVsaW5nIGxpbmUgaWYgc2FtZSBl bnRyeSBzaG93cyBiZWNhdXNlIG9mIGRlYWRsaW5lLgoKOzsgSW4gdGhlIGFnZW5kYSBvZiB0b2Rh eSwgYW4gZW50cnkgY2FuIHNob3cgdXAgbXVsdGlwbGUgdGltZXMKOzsgYmVjYXVzZSBpdCBpcyBi b3RoIHNjaGVkdWxlZCBhbmQgaGFzIGEgbmVhcmJ5IGRlYWRsaW5lLCBhbmQgbWF5YmUKOzsgYSBw bGFpbiB0aW1lIHN0YW1wIGFzIHdlbGwuCgo7OyBXaGVuIHRoaXMgdmFyaWFibGUgaXMgbmlsLCB0 aGUgZW50cnkgd2lsbCBiZSBzaG93biBzZXZlcmFsIHRpbWVzLgoKOzsgV2hlbiBzZXQgdG8gdCwg dGhlbiBvbmx5IHRoZSBkZWFkbGluZSBpcyBzaG93biBhbmQgdGhlIGZhY3QgdGhhdAo7OyB0aGUg ZW50cnkgaXMgc2NoZWR1bGVkIHRvZGF5IG9yIHdhcyBzY2hlZHVsZWQgcHJldmlvdXNseSBpcyBu b3QKOzsgc2hvd24uCgo7OyBXaGVuIHNldCB0byB0aGUgc3ltYm9sIOKAmG5vdC10b2RheeKAmSwg c2tpcCBzY2hlZHVsZWQgcHJldmlvdXNseSwKOzsgYnV0IG5vdCBzY2hlZHVsZWQgdG9kYXkuCgo7 OyBXaGVuIHNldCB0byB0aGUgc3ltYm9sIOKAmHJlcGVhdGVkLWFmdGVyLWRlYWRsaW5l4oCZLCBz a2lwIHNjaGVkdWxlZAo7OyBpdGVtcyBpZiB0aGV5IGFyZSByZXBlYXRlZCBiZXlvbmQgdGhlIGN1 cnJlbnQgZGVhZGxpbmUuCihzZXRxIG9yZy1hZ2VuZGEtc2tpcC1zY2hlZHVsZWQtaWYtZGVhZGxp bmUtaXMtc2hvd24gJ3JlcGVhdGVkLWFmdGVyLWRlYWRsaW5lKQoKOzs7RW5hYmxlIG9yZyBwcm9w ZXJ0eSBpbmhlcml0YW5jZQooc2V0cSBvcmctdXNlLXByb3BlcnR5LWluaGVyaXRhbmNlIHQpCgo7 O0Rpc2FibGUgYXV0by1zYXZpbmcKKHNldHEgYXV0by1zYXZlLWRlZmF1bHQgbmlsKQoKCjs7IFNl dCBPcmcgZGlyZWN0b3JpZXMgW1JlbWVtYmVyIHRvIHVwZGF0ZSB3aXRoIGpvdXJuYWwgYm9va3Nd CihzZXRxIG9yZy1hZ2VuZGEtZmlsZXMgKGxpc3QgIn4vRG9jdW1lbnRzL09yZyIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAifi9Eb2N1bWVudHMvT3JnL1BlcnNvbmFsIgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ+L0RvY3VtZW50cy9PcmcgSm91cm5hbHMvVHJhaW5pbmciCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIn4vRG9jdW1lbnRzL09yZy9Qcm9ncmFtbWluZyIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifi9Eb2N1bWVudHMvT3JnL1dvcmsiCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIn4vRG9jdW1lbnRzL09yZyBKb3VybmFscy9Qcm9ncmFt bWluZyBKb3VybmFsIikpCgo7OztTZXQgVE9ETyBkZWZhdWx0IHNlcXVlbmNlCihzZXRxIG9yZy10 b2RvLWtleXdvcmRzCiAgICAgICcoKHNlcXVlbmNlICJUT0RPKHQpIiAiSU5fUFJPR1JFU1MoaSki ICJ8IiAiRE9ORShkISkiICJQT1NUUE9ORUQocEApIiAiQ0FOQ0VMTEVEKGNAKSIpCiAgICAgICAg KHNlcXVlbmNlICJURVNUKGUpIiAiVEVTVElORyhzKSIgInwiICJQQVNTKHAhKSIgIkZBSUwoZkAp IikpKQoKOzs7U2V0IFRPRE8ga2V5d29yZCBmYWNlcwooc2V0cSBvcmctdG9kby1rZXl3b3JkLWZh Y2VzCiAgICAgICcoKCJUT0RPIiAuICg6Zm9yZWdyb3VuZCAiI0ZGQUFBQSIpKQogICAgICAgICgi VEVTVCIgLiAoOmZvcmVncm91bmQgIiNGRkFBQUEiKSkKICAgICAgICAoIlBSQUNUSUNFIiAuICg6 Zm9yZWdyb3VuZCAiI0ZGQUFBQSIpKQogICAgICAgICgiU1RVRFkiIC4gKDpmb3JlZ3JvdW5kICIj RkZBQUFBIikpCiAgICAgICAgKCJUSEVPUlkiIC4gKDpmb3JlZ3JvdW5kICIjRkZBQUFBIikpCiAg ICAgICAgKCJXT1JLT1VUIiAuICg6Zm9yZWdyb3VuZCAiIzlFQzlFQSIgOnVuZGVybGluZSB0KSkK ICAgICAgICAoIlJBQ0UiIC4gKDpmb3JlZ3JvdW5kICIjRkFGQTAxIiA6d2VpZ2h0IGJvbGQpKQog ICAgICAgICgiV0FUQ0giIC4gKDpmb3JlZ3JvdW5kICIjRkQwMEQ2IikpCiAgICAgICAgKCJJTl9Q Uk9HUkVTUyIgLiAoOmZvcmVncm91bmQgIiMwMEUwRTciKSkKICAgICAgICAoIlRFU1RJTkciIC4g KDpmb3JlZ3JvdW5kICIjMDBFMEU3IikpCiAgICAgICAgKCJQT1NUUE9ORUQiIC4gKDpmb3JlZ3Jv dW5kICIjRkY3NzAwIikpCiAgICAgICAgKCJDQU5DRUxMRUQiIC4gKDpmb3JlZ3JvdW5kICIjRDQy ODAwIiA6d2VpZ2h0IGJvbGQpKQogICAgICAgICgiTUlTU0VEIiAuICg6Zm9yZWdyb3VuZCAiI0Q0 MjgwMCIgOndlaWdodCBib2xkKSkKCSgiSUdOT1JFRCIgLiAoOmZvcmVncm91bmQgIiNENzI4MDAi IDp3ZWlnaHQgYm9sZCkpCiAgICAgICAgKCJGQUlMIiAuICg6Zm9yZWdyb3VuZCAiI0Q0MjgwMCIg OndlaWdodCBib2xkKSkpKQoKOzs7U2V0IGxvd2VzdCBwcmlvcml0eSB0byBHIChhc2NpaSA3MSkg Zm9yIHNldmVuIHBpb3JpdHkgbGV2ZWxzCihzZXRxIG9yZy1sb3dlc3QtcHJpb3JpdHkgNzEpCgo7 OztPcmcgbW9kZSBsb2cgVE9ETyB0aW1lc3RhbXAKKHNldHEgb3JnLWxvZy1kb25lICd0aW1lKQoK Ozs7KHNldHEgb3JnLWFnZW5kYS1sb2ctbW9kZS1pdGVtcyAnKGNsb3NlZCBjbG9jaykpCgo7OztP cmcgbW9kZSB1c2UgYW0vcG0gdGltZSBncmlkIHN0eWxlCihzZXRxIG9yZy1hZ2VuZGEtdGltZWdy aWQtdXNlLWFtcG0gdCkKCjs7O0FyY2hpdmluZyBEaXJlY3RvcnkgZm9yIGNvbXBsZXRlZCB0YXNr cwooc2V0cSBvcmctYXJjaGl2ZS1sb2NhdGlvbiAifi9Eb2N1bWVudHMvT3JnL0NvbXBsZXRlZC5v cmc6OiogRnJvbSAlcyIpCgo7OztPcmcgZW5mb3JjZSBvcmRlcmVkIHByb3BlcnRpZXMsIGJsb2Nr aW5nCihzZXRxIG9yZy1lbmZvcmNlLXRvZG8tZGVwZW5kZW5jaWVzIHQpCgo7OztUdXJuIG9uIGFi YnJldi1tb2RlIGluIG9yZy1tb2RlCihhZGQtaG9vayAnb3JnLW1vZGUtaG9vayAnYWJicmV2LW1v ZGUpCihhZGQtaG9vayAnb3JnLW1vZGUtaG9vayAnaGVsbS1tb2RlKQooYWRkLWhvb2sgJ29yZy1t b2RlLWhvb2sgKGxhbWJkYSAoKSAoZ2xvYmFsLWF1dG8tY29tcGxldGUtbW9kZSAtMSkpKQoKOzsg RW5hYmxlIHN5bW1ldHJpYyBlbmNycHl0aW9uIHN1cHBvcnQKKHJlcXVpcmUgJ29yZy1jcnlwdCkK KHNldHEgZXBnLWdwZy1wcm9ncmFtICJncGciKQoob3JnLWNyeXB0LXVzZS1iZWZvcmUtc2F2ZS1t YWdpYykKKHNldHEgb3JnLXRhZ3MtZXhjbHVkZS1mcm9tLWluaGVyaXRhbmNlIChxdW90ZSAoImNy eXB0IikpKQo7OyBHUEcga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbgo7OyBFaXRoZXIgdGhlIEtl eSBJRCBvciBzZXQgdG8gbmlsIHRvIHVzZSBzeW1tZXRyaWMgZW5jcnlwdGlvbi4KKHNldHEgb3Jn LWNyeXB0LWtleSBuaWwpCihzZXRmIGVwYS1waW5lbnRyeS1tb2RlICdsb29wYmFjaykKKHBpbmVu dHJ5LXN0YXJ0KQo7KGZzZXQgJ2VwZy13YWl0LWZvci1zdGF0dXMgJ2lnbm9yZSkgOzsgZ3BnIHRl bmRzIHRvIHN0YWxsIG9uIGVuY3J5cHRpb24KCjs7IFNldCB0aGUgZW5jb2RpbmcgdG8gdXRmLTgK KHNldHEgb3JnLWV4cG9ydC1jb2Rpbmctc3lzdGVtICd1dGYtOCkKKHByZWZlci1jb2Rpbmctc3lz dGVtICd1dGYtOCkKKHNldC1jaGFyc2V0LXByaW9yaXR5ICd1bmljb2RlKQooc2V0cSBkZWZhdWx0 LXByb2Nlc3MtY29kaW5nLXN5c3RlbSAnKHV0Zi04LXVuaXggLiB1dGYtOC11bml4KSkKCjs7aUNh bGVuZGFyIGV4cG9ydCBmaWxlIHNldHRpbmdzCihzZXRxIG9yZy1pY2FsZW5kYXItaW5jbHVkZS10 b2RvIHQpCihzZXRxIG9yZy1pY2FsZW5kYXItdXNlLWRlYWRsaW5lICcoZXZlbnQtaWYtdG9kbyB0 b2RvLWR1ZSkpCihzZXRxIG9yZy1pY2FsZW5kYXItdXNlLXNjaGVkdWxlZCAnKGV2ZW50LWlmLXRv ZG8pKQoKOzsgRG9uJ3QgYWxsb3cgZWRpdGluZyBvZiBmb2xkZWQgcmVnaW9ucwooc2V0cSBvcmct Y2F0Y2gtaW52aXNpYmxlLWVkaXRzICdlcnJvcikKCjs7IFN0YXJ0IHRoZSB3ZWVrbHkgYWdlbmRh IG9uIE1vbmRheQooc2V0cSBvcmctYWdlbmRhLXN0YXJ0LW9uLXdlZWtkYXkgMSkKCjs7IEVuYWJs ZSBpbmRlbnRhdGlvbiB2aWV3LCBkb2VzIG5vdCBlZmZlY3QgZmlsZS4KKHNldHEgb3JnLXN0YXJ0 dXAtaW5kZW50ZWQgdCkKCjs7IE1ha2UgYXR0YWNobWVudHMgYmUgY29waWVkIC8gYXNzaWduZWQg YSB1dWlkCjs7IGFuZCBwbGFjZWQgaW4gYSBhcHByb3BpYXRlIGZvbGRlcgooc2V0cSBvcmctaWQt bWV0aG9kIChxdW90ZSB1dWlkZ2VuKSkKKHNldHEgb3JnLWF0dGFjaC1kaXJlY3RvcnkgImF0dGFj aC8iKQoKKHNldHEgb3JnLXRhZy1wZXJzaXN0ZW50LWFsaXN0ICcoKCJAY29kaW5nIiAuID94KSAo IkBkZXNpZ24iIC4gP2QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiQHN0dWR5 aW5nIiAuID9zKSAoIkBlcnJhbmRzIiAuID9lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoIkBwdXJjaGFzZXMiIC4gP3ApICgiY3J5cHQiIC4gP2MpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgiQGltcG9ydGFudCIgLiA/aSkgKCJAY2hvcmUiIC4gP2gpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiQGFwcG9pbnRtZW50IiAuID9hKSAoIkBzdWJq ZWN0IiAuID9iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIkBlbnRlcnRhaW5t ZW50IiAuID9tKSAoIkBldmVudCIgLiA/dikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKCJAcHJvamVjdCIgLiA/aikgKCJAcmVtaW5kZXIiIC4gP3IpKSkKCjs7IFN5bmMgR29vZ2xl IGNhbGVuZGFycyB0byB5b3VyIG9yZyBmaWxlcwoocmVxdWlyZSAnb3JnLWdjYWwpCgo7OyBPcmcg R3JlcAo7OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3BpbmFyZC9vcmctZ3JlcCBmb3IgdXNhZ2UK KGF1dG9sb2FkICdvcmctZ3JlcCAib3JnLWdyZXAiIG5pbCB0KQooZGVmaW5lLWtleSBvcmctbW9k ZS1tYXAgIlxDLWNuZyIgJ29yZy1ncmVwLWZ1bGwpCihkZWZpbmUta2V5IG9yZy1tb2RlLW1hcCAi XEMtY29nIiAnb3JnLWdyZXApCgo7O0NvbnZlcnQgYWxsIGxpbmVzIGluIGEgc2VsZWN0ZWQgcmVn aW9uIHRvIGFuIHVub3JkZXJlZCBsaXN0CihkZWZ1biBvcmctY29udmVydC1saW5lcy10by1jaGVj a2xpc3QgKGJlZyBlbmQpCiAgIkNvbnZlcnQgYWxsIHBsYWluIGxpbmVzIGluIHJlZ2lvbiB0byBh IHBsYWluIGxpc3Qgd2l0aApjaGVja2JveGVzLiIKICAoaW50ZXJhY3RpdmUgInIiKQogIChzYXZl LWV4Y3Vyc2lvbgogICAgKGdvdG8tY2hhciBiZWcpCiAgICAoZG90aW1lcyAoXyAoLSAobGluZS1u dW1iZXItYXQtcG9zIGVuZCkgKGxpbmUtbnVtYmVyLWF0LXBvcyBiZWcpKSkKICAgICAgKGluc2Vy dCAiLSBbIF0gIikKICAgICAgKGluZGVudC1hY2NvcmRpbmctdG8tbW9kZSkKICAgICAgKGZvcndh cmQtbGluZSAxKSkpKQoKKGRlZnVuIG9yZy1jb252ZXJ0LWxpbmVzLXRvLXVub3JkZXJlZC1saXN0 IChiZWcgZW5kKQogICJDb252ZXJ0IGFsbCBwbGFpbiBsaW5lcyBpbiByZWdpb24gdG8gYSBwbGFp biBsaXN0IHdpdGhvdXQKY2hlY2tib3hlcy4iCiAgKGludGVyYWN0aXZlICJyIikKICAoc2F2ZS1l eGN1cnNpb24KICAgIChnb3RvLWNoYXIgYmVnKQogICAgKGRvdGltZXMgKF8gKC0gKGxpbmUtbnVt YmVyLWF0LXBvcyBlbmQpIChsaW5lLW51bWJlci1hdC1wb3MgYmVnKSkpCiAgICAgIChpbnNlcnQg Ii0gIikKICAgICAgKGluZGVudC1hY2NvcmRpbmctdG8tbW9kZSkKICAgICAgKGZvcndhcmQtbGlu ZSAxKSkpKQoKOzsgT3JnIGNhcHR1cmUgc2V0dGluZ3MKCgo7OyBBbGxvdyBzZXR0aW5nIG9mIHRh Z3Mgd2l0aGluZyBvcmcgY2FwdHVyZSBidWZmZXIKKGFkZC1ob29rICdvcmctY2FwdHVyZS1tb2Rl LWhvb2sKICAgICAgICAgIChsYW1iZGEgKCkKICAgICAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24K ICAgICAgICAgICAgICAod2lkZW4pCiAgICAgICAgICAgICAgKHNldHEtbG9jYWwgb3JnLXRhZy1h bGlzdCAob3JnLWdldC1idWZmZXItdGFncykpKSkpCgo7OyBPcmcgY2FwdHVyZSB0ZW1wbGF0ZXMK KHNldGYgb3JnLWNhcHR1cmUtdGVtcGxhdGVzICcoKCJOIiAiTmV3IE5vdGUiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoIk5wIiAiUGVyc29uYWwgTm90ZSIgZW50cnkgKGZpbGUraGVh ZGxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJ+L0RvY3VtZW50cy9PcmcvUGVyc29uYWwvTm90ZXMub3JnIgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBlcnNvbmFsIE5v dGVzIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqICU/IFxuQ2FwdHVyZWQgT246 ICV0IFxuJWlcbiIgOmVtcHR5LWxpbmVzIDEpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoIk5zIiAiU3R1ZHkgTm90ZSIgZW50cnkgKGZpbGUraGVhZGxpbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ+L0RvY3VtZW50cy9Pcmcv UHJvZ3JhbW1pbmcvTm90ZXMub3JnIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlN0dWR5IE5vdGVzIikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIqICU/IFxuQ2FwdHVyZWQgT246ICV0IFxuJWlcbiIgOmVtcHR5LWxpbmVzIDEp CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIk53IiAiV29yayBOb3RlIiBlbnRyeSAo ZmlsZStoZWFkbGluZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIn4vRG9jdW1lbnRzL09yZy9Xb3JrL05vdGVzLm9yZyIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXb3JrIE5vdGVzIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqICU/IFxuQ2FwdHVyZWQgT246ICVedCBc biVpXG4iIDplbXB0eS1saW5lcyAxKQoJCQkgICAgICAoImEiICJBcHBvaW50bWVudCIgZW50cnkg KGZpbGUraGVhZGxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAifi9Eb2N1bWVudHMvT3JnL1BlcnNvbmFsL1BlcnNvbmFsX1NjaGVkdWxl Lm9yZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiQXBwb2ludG1lbnRzIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIFRP RE8gJT8gXG5TQ0hFRFVMRUQ6ICVee3doZW59dCBERUFETElORTogJV57d2hlbn10XG46UFJPUEVS VElFUzpcbjpDT09LSUVfREFUQTogJV57Q09PS0lFX0RBVEF8dG9kbyByZWN1cnNpdmV8cmVjdXJz aXZlfG5pbH1wXG46T1JERVJFRDogJV57T1JERVJFRHx0fG5pbH1wXG46RU5EOlxuIiA6ZW1wdHkt bGluZXMgMSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiZCIgIkR1ZSBEYXRlIiBl bnRyeSAoZmlsZStoZWFkbGluZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ+L0RvY3VtZW50cy9PcmcvUGVyc29uYWwvUGVyc29uYWxfU2No ZWR1bGUub3JnIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJEdWUgRGF0ZXMiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiog VE9ETyAlPyBcbkRFQURMSU5FOiAlXnt3aGVufXRcbjpQUk9QRVJUSUVTOlxuOkNPT0tJRV9EQVRB OiAlXntDT09LSUVfREFUQXx0b2RvIHJlY3Vyc2l2ZXxyZWN1cnNpdmV8bmlsfXBcbjpFTkQ6XG4i IDplbXB0eS1saW5lcyAxKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJlIiAiRXZl bnQiIGVudHJ5IChmaWxlK2hlYWRsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIn4vRG9jdW1lbnRzL09yZy9QZXJzb25hbC9QZXJzb25h bF9TY2hlZHVsZS5vcmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkV2ZW50cyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi KiBUT0RPICU/IFxuU0NIRURVTEVEOiAlXnt3aGVufXRcbiIgOmVtcHR5LWxpbmVzIDEpCgkJCSAg ICAgICgidCIgIlRWIFNob3ciIGVudHJ5IChmaWxlK2hlYWRsaW5lCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn4vRG9jdW1lbnRzL09yZy9Q ZXJzb25hbC9UVl9TY2hlZHVsZS5vcmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkN1cnJlbnQgVFYgU2hvd3M6IikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIqIFdBVENIICU/IFsvXVxuU0NIRURVTEVEOiAlXnt3aGVufXRc bjpQUk9QRVJUSUVTOlxuOkNPT0tJRV9EQVRBOiAlXntDT09LSUVfREFUQXxjaGVja2JveCByZWN1 cnNpdmV8cmVjdXJzaXZlfG5pbH1wXG46TmV0d29yazogJV57TmV0d29ya3xOZXRmbGl4fEFaIFBy aW1lfEhCT3xDaW5lbWF4fFNob3d0aW1lfENXfEFNQ3xGWHxGb3h8RmFjZWJvb2t8VVNBfG5pbH1w XG46T1JERVJFRDogJV57T1JERVJFRHx0fG5pbH1wXG46U1RZTEU6ICVee1NUWUxFfGhhYml0fG5p bH1wXG46RU5EOlxuOkxPR0JPT0s6XG46RU5EOlxuRXBpc29kZXM6XG4xLiBbIF0gIiA6ZW1wdHkt bGluZXMgMSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgibSIgIk1vdmllcyAvIFRW IC8gU3RyZWFtaW5nIEV2ZW50cyIgZW50cnkgKGZpbGUraGVhZGxpbmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifi9Eb2N1bWVudHMvT3Jn L1BlcnNvbmFsL1RWX1NjaGVkdWxlLm9yZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiTW92aWVzIC8gVFYgLyBTdHJlYW1pbmcgRXZlbnRz IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIFdBVENIICU/IFxuU0NIRURVTEVE OiAlXnt3aGVufXRcbjpQUk9QRVJUSUVTOlxuOk5ldHdvcms6ICVee05ldHdvcmt8TmV0ZmxpeHxB WiBQcmltZXxIQk98Q2luZW1heHxTaG93dGltZXxDV3xBTUN8Rlh8Rm94fFVTQXxEVkR8bmlsfXBc bjpFTkQ6XG4iIDplbXB0eS1saW5lcyAxKQoKCQkJICAgICAgKCJCIiAiTmV3IEJvb2siKQoJCQkg ICAgICAoIkJuIiAiTm92ZWwiIGVudHJ5IChmaWxlK2hlYWRsaW5lCgkJCQkJCSAgICJ+L0RvY3Vt ZW50cy9PcmcvUGVyc29uYWwvQm9va3NfUmVhZC5vcmciCgkJCQkJCSAgICJOb3ZlbHMgUmVhZCIp CgkJCSAgICAgICAiKiBUT0RPICU/IFxuOlBST1BFUlRJRVM6XG46QVVUSE9SOiAlXntBVVRIT1J9 cFxuOkVORDpcbiIKCQkJICAgICAgIDplbXB0eS1saW5lcyAxKQoKCQkJICAgICAgKCJCZiIgIk5v bmZpY3Rpb24iIGVudHJ5IChmaWxlK2hlYWRsaW5lCgkJCQkJCSAgICJ+L0RvY3VtZW50cy9Pcmcv UGVyc29uYWwvQm9va3NfUmVhZC5vcmciCgkJCQkJCSAgICJOb25maWN0aW9uIFJlYWQiKQoJCQkg ICAgICAgIiogVE9ETyAlPyBcbjpQUk9QRVJUSUVTOlxuOkFVVEhPUjogJV57QVVUSE9SfXBcbjpU T1BJQzogJV57VE9QSUN9cFxuOkVORDpcbiIKCQkJICAgICAgIDplbXB0eS1saW5lcyAxKQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJyIiAiUmFjZSIgZW50cnkgKGZpbGUraGVhZGxp bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ+L0Rv Y3VtZW50cy9PcmcvUGVyc29uYWwvV29ya291dHMub3JnIgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNjaGVkdWxlZCBSYWNlcyIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiKiBSQUNFICU/IFxuU0NIRURVTEVEOiAlXnt3aGVufXQiIDpl bXB0eS1saW5lcyAxKQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJSIiAiTmV3IFJl bWluZGVyIikKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiUnIiICJSZW1pbmRlciIg ZW50cnkgKGZpbGUraGVhZGxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAifi9Eb2N1bWVudHMvT3JnL1BlcnNvbmFsL1BlcnNvbmFsX1NjaGVk dWxlLm9yZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiUmVtaW5kZXJzIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIFRPRE8g JT8gXG46UFJPUEVSVElFUzpcbjpDT09LSUVfREFUQTogJV57Q09PS0lFX0RBVEF8dG9kbyByZWN1 cnNpdmV8cmVjdXJzaXZlfG5pbH1wXG46T1JERVJFRDogJV57T1JERVJFRHx0fG5pbH1wXG46U1RZ TEU6ICVee1NUWUxFfGhhYml0fG5pbH1wXG46RU5EOlxuIiA6ZW1wdHktbGluZXMgMSkKCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgiUmciICJHYW1lIFJlbGVhc2UgRGF0ZSIgZW50cnkg KGZpbGUraGVhZGxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAifi9Eb2N1bWVudHMvT3JnL1BlcnNvbmFsL1BlcnNvbmFsX1NjaGVkdWxlLm9y ZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi UmVtaW5kZXJzIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIFRPRE8gJT8gXG5T Q0hFRFVMRUQ6ICVee3doZW59dFxuOlBST1BFUlRJRVM6XG46Q29uc29sZTogJV57Q29uc29sZXxQ UzV8UEN9cFxuOkVORDpcbiIgOmVtcHR5LWxpbmVzIDEpCgoJCQkgICAgICAoIkMiICJOZXcgQ2hv cmUocykvVGFzayhzKSIpCgoJCQkgICAgICAoIkN0IiAiVGFzayIgZW50cnkgKGZpbGUraGVhZGxp bmUKCQkJCQkJICAifi9Eb2N1bWVudHMvT3JnL1BlcnNvbmFsL1BlcnNvbmFsX1NjaGVkdWxlLm9y ZyIKCQkJCQkJICAiVGFza3MiKQoJCQkgICAgICAgIiogVE9ETyAlPyBcblNDSEVEVUxFRDogJV57 d2hlbn10XG46UFJPUEVSVElFUzpcbjpDT09LSUVfREFUQTogJV57Q09PS0lFX0RBVEF8dG9kbyBy ZWN1cnNpdmV8Y2hlY2tib3ggcmVjdXJzaXZlfHJlY3Vyc2l2ZXxuaWx9cFxuOk9SREVSRUQ6ICVe e09SREVSRUR8bmlsfHR9cFxuOkVORDpcbiIgOmVtcHR5LWxpbmVzIDEpCgkJCSAgICAgICgiQ2gi ICJDaG9yZXMiIGVudHJ5IChmaWxlK2hlYWRsaW5lCgkJCQkJCSAgIn4vRG9jdW1lbnRzL09yZy9Q ZXJzb25hbC9QZXJzb25hbF9TY2hlZHVsZS5vcmciCgkJCQkJCSAgIkNob3JlcyIpCgkJCSAgICAg ICAiKiBUT0RPICU/IFxuU0NIRURVTEVEOiAlXnt3aGVufXRcbjpQUk9QRVJUSUVTOlxuOkNPT0tJ RV9EQVRBOiAlXntDT09LSUVfREFUQXx0b2RvIHJlY3Vyc2l2ZXxjaGVja2JveCByZWN1cnNpdmV8 cmVjdXJzaXZlfG5pbH1wXG46T1JERVJFRDogJV57T1JERVJFRHxuaWx8dH1wXG46RU5EOlxuIiA6 ZW1wdHktbGluZXMgMSkKCQkJICAgICAgKSkKCjs7SGlkZSBhbGwgc2NoZWR1bGVkIHRhc2tzIGlm IERPTkUKKHNldGYgb3JnLWFnZW5kYS1za2lwLXNjaGVkdWxlZC1pZi1kb25lIHQpCgo7O09yZyBD dXN0b20gQ29tbWFuZHMKCjs7QXBwb2ludG1lbnRzLCBSZW1pbmRlcnMgYW5kIENob3JlcwooYWRk LXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzCiAgICAgICAgICAgICAnKCJyIiAu ICJSZW1pbmRlcnMsIEFwcG9pbnRtZW50cyBhbmQgQ2hvcmVzIikpCihhZGQtdG8tbGlzdCAnb3Jn LWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoInJyIiAiUmVtaW5kZXJzIiB0 YWdzICIrQHJlbWluZGVyLyFUT0RPIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20t Y29tbWFuZHMKICAgICAgICAgICAgICcoInJhIiAiQXBwb2ludG1lbnRzIiB0YWdzICIrQGFwcG9p bnRtZW50LyFUT0RPIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMK ICAgICAgICAgICAgICcoInJoIiAiQ2hvcmVzIChEb21lc3RpYykiIHRhZ3MgIitAY2hvcmUvIVRP RE98SU5fUFJPR1JFU1MiKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5k cwogICAgICAgICAgICAgJygicmQiICJUb2RheSdzIERhaWx5IENob3JlcyIgdGFncyAiK1NDSEVE VUxFRDxcIjx0b21vcnJvdz5cIitDQVRFR09SWT1cIkRhaWx5X0Nob3Jlc1wiIikpCihhZGQtdG8t bGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoInJ0IiAiVG9k YXkncyBUYXNrcyIgdGFncyAiK1NDSEVEVUxFRDxcIjx0b21vcnJvdz5cIitDQVRFR09SWT1cIlRh c2tcIi8hLURPTkUtRklOSVNIRUQtV0FUQ0hFRCIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEt Y3VzdG9tLWNvbW1hbmRzCiAgICAgICAgICAgICAnKCJyQSIgIlRvZGF5J3MgQ29tcGxldGVkIFRh c2tzIiB0YWdzICIrVElNRVNUQU1QX0lBPj1cIjx0b2RheT5cIitUSU1FU1RBTVBfSUE8XCI8dG9t b3Jyb3c+XCIiKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAg ICAgICAgICAgICAnKCJyZyIgIkdhbWUgUmVsZWFzZSBEYXRlcyIgdGFncyAiK0NvbnNvbGU9XCJQ UzRcInxDb25zb2xlPVwiUFM1XCIvIVRPRE8iKSkKCjs7V29ya291dHMKKGFkZC10by1saXN0ICdv cmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAgJygiVyIgIldvcmtvdXRzIiB0 YWdzICIrQGNvbmRpdGlvbmluZy8hV09SS09VVHxJTl9QUk9HUkVTUyIpKQoKOztBbGwgVGFza3Mg aW4gUHJvZ3Jlc3Mgb3IgUG9zdHBvbmVkCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20t Y29tbWFuZHMKICAgICAgICAgICAgICcoIlAiIC4gIlRhc2tzIEluIFByb2dyZXNzL1Bvc3Rwb25l ZCIgKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAg ICAgJygiUGkiICJJbiBQcm9ncmVzcyIgdGFncyAiL0lOX1BST0dSRVNTIikpCihhZGQtdG8tbGlz dCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoIlBwIiAiUG9zdHBv bmVkIiB0YWdzICIvUE9TVFBPTkVEIikpCgo7O1Rlc3RpbmcKKGFkZC10by1saXN0ICdvcmctYWdl bmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAgJygidCIgLiAiVGVzdHMiKSkKKGFkZC10 by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAgJygidGkiICJU ZXN0cyBpbiBQcm9ncmVzcyIgdGFncyAiL1RFU1RJTkciKSkKKGFkZC10by1saXN0ICdvcmctYWdl bmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAgJygidHAiICJUZXN0cyBQYXNzZWQiIHRh Z3MgIi9QQVNTIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAg ICAgICAgICAgICcoInRmIiAiVGVzdHMgRmFpbGVkIiB0YWdzICIvRkFJTCIpKQoKOztEZWFkbGlu ZXMKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAg JygiZCIgLiAiRGVhZGxpbmVzIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29t bWFuZHMKICAgICAgICAgICAgICcoImRhIiAiQWxsIERlYWRsaW5lcyIgdGFncyAiK0RFQURMSU5F Pj1cIjxub3c+XCIvISIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRz CiAgICAgICAgICAgICAnKCJkaSIgIkltbWluZW50IERlYWRsaW5lcyIgdGFncyAiK0RFQURMSU5F PD1cIjwrMnc+XCIvISIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRz CiAgICAgICAgICAgICAnKCJkSSIgIkltcG9ydGFudCBEZWFkbGluZXMiIHRhZ3MgIit7QGltcG9y dGFudH0rREVBRExJTkU+PVwiPG5vdz5cIi8hIikpCgo7O011c2ljIFByYWN0aWNlCihhZGQtdG8t bGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoImkiIC4gIk11 c2ljIEluc3RydW1lbnQgUHJhY3RpY2UiKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3Rv bS1jb21tYW5kcwogICAgICAgICAgICAgJygiaWciICJHdWl0YXIgUHJhY3RpY2UiIHRhZ3MgIkd1 aXRhciIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzCiAgICAgICAg ICAgICAnKCJpcCIgIlBpYW5vIFByYWN0aWNlIiB0YWdzICJQaWFubyIpKQoKOztFdmVudHMgYW5k IEVudGVydGFpbm1lbnQKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwog ICAgICAgICAgICAgJygiRSIgLiAiRXZlbnRzIGFuZCBFbnRlcnRhaW5tZW50IikpCihhZGQtdG8t bGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoIkVhIiAiQWxs IEV2ZW50cyIgdGFncyAiK3tAZXZlbnR9LyFUT0RPfFdBVENIIikpCihhZGQtdG8tbGlzdCAnb3Jn LWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoIkV1IiAiVXBjb21pbmcgRXZl bnRzIChOZXh0IDIgd2Vla3MpIiB0YWdzICIrU0NIRURVTEVEPD1cIjwrMnc+XCIre0BldmVudH0v IVRPRE98V0FUQ0giKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwog ICAgICAgICAgICAgJygiRXQiICJUZWxldmlzaW9uIGFuZCBNb3ZpZXMiIHRhZ3MgIit7QHRlbGV2 aXNpb25cfEBzdHJlYW1pbmdcfEBlbnRlcnRhaW5tZW50fS8hV0FUQ0giKSkKCjs7U3ViamVjdHMK KGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAgJygi YiIgLiAiU3R1ZHkgU3ViamVjdHMgYW5kIEJvb2tzIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5k YS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoImJhIiAiQWxsIFN1YmplY3RzIiB0YWdz ICIrQHN1YmplY3QtQHVuaW1wb3J0YW50LyFUT0RPfElOX1BST0dSRVNTIikpCihhZGQtdG8tbGlz dCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoImJ1IiAiVW5pbXBv cnRhbnQgU3ViamVjdHMiIHRhZ3MgIitAdW5pbXBvcnRhbnQvIVRPRE98SU5fUFJPR1JFU1MiKSkK KGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAgJygi YmMiICJDdXJyZW50IFN1YmplY3RzIiB0YWdzICIrQHN1YmplY3QtQHVuaW1wb3J0YW50K1RJTUVT VEFNUF9JQT49XCI8LTIxZD5cIisvIVRPRE98SU5fUFJPR1JFU1MiKSkKKGFkZC10by1saXN0ICdv cmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwogICAgICAgICAgICAgJygiYnIiICJSZWNlbnQgU3Vi amVjdHMiIHRhZ3MgIitAc3ViamVjdC1AdW5pbXBvcnRhbnQrVElNRVNUQU1QX0lBPj1cIjwtNGQ+ XCIrLyFUT0RPfElOX1BST0dSRVNTIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20t Y29tbWFuZHMKICAgICAgICAgICAgICcoImJsIiAiTGVzcyBSZWNlbnQgU3ViamVjdHMiCiAgICAg ICAgICAgICAgIHRhZ3MgIitAc3ViamVjdC1AdW5pbXBvcnRhbnQrVElNRVNUQU1QX0lBPFwiPC00 ZD5cIitUSU1FU1RBTVBfSUE+PVwiPC0xMGQ+XCIrLyFUT0RPfElOX1BST0dSRVNTIikpCihhZGQt dG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMKICAgICAgICAgICAgICcoImJpIiAi Q3VycmVudCBpZ25vcmVkIHN1YmplY3RzIgogICAgICAgICAgICAgICB0YWdzICIrQHN1YmplY3Qt QHVuaW1wb3J0YW50K1RJTUVTVEFNUF9JQT49XCI8LTIxZD5cIitUSU1FU1RBTVBfSUE8XCI8LTEw ZD5cIisvIVRPRE98SU5fUFJPR1JFU1MiKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3Rv bS1jb21tYW5kcwoJICAgICAgICAgJygiYmIiIC4gIkJvb2tzIikpCihhZGQtdG8tbGlzdCAnb3Jn LWFnZW5kYS1jdXN0b20tY29tbWFuZHMKCSAgICAgICAgICcoImJiciIgIlJlY2VudCBCb29rcyIK ICAgICAgICAgICAgICAgdGFncyAiK0Bib29rcytUSU1FU1RBTVBfSUE+PVwiPDIwMjMtMDEtMDE+ XCIiKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwoJICAgICAgICAg JygiYmJuIiAiQ3VycmVudCBub3ZlbHMiCgkgICAgICAgICAgIHRhZ3MgIitDQVRFR09SWT1cIm5v dmVsXCIrLyFJTl9QUk9HUkVTUyIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNv bW1hbmRzCgkgICAgICAgICAnKCJiYk4iICJBbGwgbm92ZWxzIgoJICAgICAgICAgICB0YWdzICIr Q0FURUdPUlk9XCJub3ZlbFwiIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29t bWFuZHMKCSAgICAgICAgICcoImJiYiIgIkN1cnJlbnQgbm9uZmljdGlvbiIKCSAgICAgICAgICAg dGFncyAiK0NBVEVHT1JZPVwibm9uZmljdGlvblwiKy8hSU5fUFJPR1JFU1MiKSkKKGFkZC10by1s aXN0ICdvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcwoJICAgICAgICAgJygiYmJCIiAiQWxsIG5v bmZpY3Rpb24iCgkgICAgICAgICAgIHRhZ3MgIitDQVRFR09SWT1cIm5vbmZpY3Rpb25cIiIpKQoo YWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzCgkgICAgICAgICAnKCJiYnQi ICJDdXJyZW50IHRleHRib29rcyIKCSAgICAgICAgICAgdGFncyAiK0NBVEVHT1JZPVwidGV4dGJv b2tcIisvIUlOX1BST0dSRVNTIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20tY29t bWFuZHMKCSAgICAgICAgICcoImJiVCIgIkFsbCB0ZXh0Ym9va3MiCgkgICAgICAgICAgIHRhZ3Mg IitDQVRFR09SWT1cInRleHRib29rXCIiKSkKKGFkZC10by1saXN0ICdvcmctYWdlbmRhLWN1c3Rv bS1jb21tYW5kcwoJICAgICAnKCJiYkkiICJBbGwgSW4gUHJvZ3Jlc3MiCgkgICAgICAgdGFncyAi K0Bib29rcysvIUlOX1BST0dSRVNTIikpCihhZGQtdG8tbGlzdCAnb3JnLWFnZW5kYS1jdXN0b20t Y29tbWFuZHMKCSAgICAgJygiYmJVIiAiQWxsIFVucmVhZCIKCSAgICAgICB0YWdzICIrQGJvb2tz Ky8hVE9ETyIpKQoKOztOb3RlcwooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNvbW1h bmRzCiAgICAgICAgICAgICAnKCJOIiAuICJOb3RlcyIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2Vu ZGEtY3VzdG9tLWNvbW1hbmRzCiAgICAgICAgICAgICAnKCJOcCIgIlBlcnNvbmFsIE5vdGVzIiB0 YWdzICJQZXJzb25hbF9Ob3RlcyIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNv bW1hbmRzCiAgICAgICAgICAgICAnKCJOcyIgIlN0dWR5IE5vdGVzIiB0YWdzICJTdHVkeV9Ob3Rl cyIpKQooYWRkLXRvLWxpc3QgJ29yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzCiAgICAgICAgICAg ICAnKCJOdyIgIldvcmsgTm90ZXMiIHRhZ3MgIldvcmtfTm90ZXMiKSkKCjs7IC0tLS0tLS0tLS0t LS0tLS0KOzsgSm91cm5hbCBTWVNURU0gIQo7OyAtLS0tLS0tLS0tLS0tLS0tCgo7OyBTRVRVUCBB IFJPQlVTVCAvIEdFTkVSQUwgSk9VUk5BTCBTWVNURU0KOzsgSSBoYXZlIG1vZGlmaWVkIHRoaXMg ZnJvbToKOzsgaHR0cHM6Ly9hcWVlbGFrYmVyLmNvbS8yMDE2LzEyLzIxL2VtYWNzLW9yZy1tb2Rl LWpvdXJuYWwtYW5kLWxvZy8KOzsgT3B0aW9uYWwgSm91cm5hbGluZyBzeXN0ZW0sIHJlY29yZAoK OzsgQXV0aG9yIG5hbWUgdG8gYmUgYXV0byBpbnNlcnRlZCBpbiBlbnRyaWVzCihzZXRxIGpvdXJu YWwtYXV0aG9yICJDYXJsbyBUYW1idWF0Y28iKQoKOzsgVGhpcyBpcyB0aGUgYmFzZSBmb2xkZXIg d2hlcmUgYWxsIHlvdXIgImJvb2tzIgo7OyB3aWxsIGJlIHN0b3JlZC4KKHNldHEgam91cm5hbC1i YXNlLWRpciAifi9Eb2N1bWVudHMvT3JnIEpvdXJuYWxzLyIpCgo7OyBKb3VybmFsIEtleSBiaW5k aW5ncwooZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy1jIGoiKSAnam91cm5hbC10b2RheSkKKGdsb2Jh bC1zZXQta2V5IChrYmQgIkMtYyBlIikgJ2Jyb3dzZS1qb3VybmFsKQoKCjs7IFRoZXNlIGFyZSB5 b3VyICJib29rcyIgKGZvbGRlcnMpLCBhZGQgYXMgbWFueSBhcyB5b3UgbGlrZS4KOzsgTm90ZTog InN1YiB2b2x1bWVzIiBhcmUgYWNoZWl2YWJsZSB3aXRoIHN1YiBmb2xkZXJzLgooc2V0cSBqb3Vy bmFsLWJvb2tzICcoIlRyYWluaW5nIgogICAgICAgICAgICAgICAgICAgICAgIkJsZW5kZXIiCiAg ICAgICAgICAgICAgICAgICAgICAiUHJvZ3JhbW1pbmcgSm91cm5hbCIKICAgICAgICAgICAgICAg ICAgICAgICJQZXJzb25hbCBKb3VybmFsIgogICAgICAgICAgICAgICAgICAgICAgIkphcGFuZXNl IgogICAgICAgICAgICAgICAgICAgICAgIkd1aXRhciIKICAgICAgICAgICAgICAgICAgICAgICJJ bnZlc3RpbmciCiAgICAgICAgICAgICAgICAgICAgICAiUGlhbm8iCiAgICAgICAgICAgICAgICAg ICAgICApKQoKCjs7IEZ1bmN0aW9ucyBmb3Igam91cm5hbAooZGVmdW4gZ2V0LWpvdXJuYWwtZmls ZS10b2RheSAoYm9vaykKICAiUmV0dXJuIHRvZGF5J3MgZmlsZW5hbWUgZm9yIGEgYm9va3Mgam91 cm5hbCBmaWxlLiIKICAoaW50ZXJhY3RpdmUgKGxpc3QgKGNvbXBsZXRpbmctcmVhZCAiQm9vazog IiBqb3VybmFsLWJvb2tzKSApKQogIChleHBhbmQtZmlsZS1uYW1lCiAgIChjb25jYXQgam91cm5h bC1iYXNlLWRpciBib29rICIvSiIKCSAgIChmb3JtYXQtdGltZS1zdHJpbmcgIiVZLSVtLSVkIikg Ii5vcmciICkpICkKCihkZWZ1biBqb3VybmFsLXRvZGF5ICgpCiAgIkxvYWQgdG9kYXlzIGpvdXJu YWwgZW50cnkgZm9yIGJvb2siCiAgKGludGVyYWN0aXZlKQogIChmaW5kLWZpbGUgKGNhbGwtaW50 ZXJhY3RpdmVseSAnZ2V0LWpvdXJuYWwtZmlsZS10b2RheSkpICkKCihkZWZ1biBnby10by1qb3Vy bmFsLWRpciAoYm9vaykKICAiR28gdG8gYSBqb3VybmFsIGRpcmVjdG9yeSBiYXNlZCBvbiBhIGdp dmVuIEJvb2siCiAgKGludGVyYWN0aXZlIChsaXN0IChjb21wbGV0aW5nLXJlYWQgIkdvdG8gQm9v azogIiBqb3VybmFsLWJvb2tzKSkpCiAgICAgICAgICAoY29uY2F0IGpvdXJuYWwtYmFzZS1kaXIg Ym9vaykKICApCgooZGVmdW4gYnJvd3NlLWpvdXJuYWwgKCkKICAiQnJvd3NlIGFuIGV4aXN0aW5n IGpvdXJuYWwgZGlyZWN0b3J5IgogIChpbnRlcmFjdGl2ZSkKICAoZGlyZWQgKGNhbGwtaW50ZXJh Y3RpdmVseSAnZ28tdG8tam91cm5hbC1kaXIpKSkKCgooZGVmdW4gam91cm5hbC1lbnRyeS1kYXRl ICgpCiAgIkluc2VydHMgdGhlIGpvdXJuYWwgaGVhZGluZyBiYXNlZCBvbiB0aGUgZmlsZSdzIG5h bWUuIgogICh3aGVuIChzdHJpbmctbWF0Y2gKCSAiXFwoSlxcKVxcKDIwWzAtOV1bMC05XVxcKVxc LVxcKFswLTldWzAtOV1cXClcXC1cXChbMC05XVswLTldXFwpXFwoLm9yZ1xcKSIKCSAoYnVmZmVy LW5hbWUpKQogICAgKGxldCAoKHllYXIgIChzdHJpbmctdG8tbnVtYmVyIChtYXRjaC1zdHJpbmcg MiAoYnVmZmVyLW5hbWUpKSkpCiAgICAgICAgICAobW9udGggKHN0cmluZy10by1udW1iZXIgKG1h dGNoLXN0cmluZyAzIChidWZmZXItbmFtZSkpKSkKICAgICAgICAgIChkYXkgICAoc3RyaW5nLXRv LW51bWJlciAobWF0Y2gtc3RyaW5nIDQgKGJ1ZmZlci1uYW1lKSkpKQogICAgICAgICAgKGRhdGlt IG5pbCkpCiAgICAgIChzZXRxIGRhdGltIChlbmNvZGUtdGltZSAwIDAgMCBkYXkgbW9udGggeWVh cikpCiAgICAgIChmb3JtYXQtdGltZS1zdHJpbmcgIiVZLSVtLSVkICglQSkiIGRhdGltKSkpKQoK OzsgQXV0by1pbnNlcnQgam91cm5hbCBoZWFkZXIKKGF1dG8taW5zZXJ0LW1vZGUpCihldmFsLWFm dGVyLWxvYWQgJ2F1dG9pbnNlcnQKICAnKGRlZmluZS1hdXRvLWluc2VydAogICAgICcoIlxcKEpc XClcXCgyMFswLTldWzAtOV1cXClcXC1cXChbMC05XVswLTldXFwpXFwtXFwoWzAtOV1bMC05XVxc KVxcKC5vcmdcXCkiIC4gIkpvdXJuYWwgSGVhZGVyIikKICAgICAnKCJTaG9ydCBkZXNjcmlwdGlv bjogIgogICAgICAgIiMrVElUTEU6IEpvdXJuYWwgRW50cnkgLSAiCiAgICAgICAoY2FyCgkobGFz dAoJIChzcGxpdC1zdHJpbmcKCSAgKGZpbGUtbmFtZS1kaXJlY3RvcnkgYnVmZmVyLWZpbGUtbmFt ZSkgIi9PcmcvIikpKSBcbgogICAgICAgKGNvbmNhdCAiIytBVVRIT1I6ICIgam91cm5hbC1hdXRo b3IpIFxuCiAgICAgICAiIytEQVRFOiAiIChqb3VybmFsLWVudHJ5LWRhdGUpIFxuCiAgICAgICAi IytGSUxFVEFHUzogOiIKICAgICAgIChjYXIgKHNwbGl0LXN0cmluZyAoY2FyCgkgICAgICAgICAg ICAgIChsYXN0CgkgICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nCgkgICAgICAgICAgICAgICAg KGZpbGUtbmFtZS1kaXJlY3RvcnkgYnVmZmVyLWZpbGUtbmFtZSkgIi9PcmcvIikpKSAiLyIpKSAi OiIgXG4gXG4KICAgICAgID4gXyBcbgogICAgICAgKSkpCgoKCjs7IE9yZyBCYWJlbCBjdXN0b21p emF0aW9uIGZvciBldmFsdWF0aW5nIGxhbmd1YWdlcwoob3JnLWJhYmVsLWRvLWxvYWQtbGFuZ3Vh Z2VzCiAnb3JnLWJhYmVsLWxvYWQtbGFuZ3VhZ2VzCiAnKChlbWFjcy1saXNwIC4gdCkKICAgKFIg LiB0KQogICAoY2FsYyAuIHQpCiAgIChnbnVwbG90IC4gdCkKICAgKGphdmEgLiB0KSkpCgo7O1Vz ZSB0aGUgZm9sbG93aW5nIGluIGEgc291cmNlIGJsb2NrIHRvIGFsbG93IGNoYW5naW5nIG9mIERP TkUgc3RhdGUKOztidWZmZXIgbG9jYWwgb25seQoKOzsgU2V0IFRPRE8gZW50cnkgdG8gRE9ORSB3 aGVuIGFsbCBjaGlsZHJlbiBhcmUgRE9ORQo7OyAgKGRlZnVuIG9yZy1zdW1tYXJ5LXRvZG8gKG4t ZG9uZSBuLW5vdC1kb25lKQo7OyAgICAiU3dpdGNoIGVudHJ5IHRvIERPTkUgd2hlbiBhbGwgc3Vi ZW50cmllcyBhcmUgZG9uZSwgdG8gVE9ETyBvdGhlcndpc2UuIgo7OyAgICAobGV0IChvcmctbG9n LWRvbmUgb3JnLWxvZy1zdGF0ZXMpICAgOyB0dXJuIG9mZiBsb2dnaW5nCjs7ICAgICAgKG9yZy10 b2RvIChpZiAoPSBuLW5vdC1kb25lIDApICJET05FIiAiVE9ETyIpKSkpCgo7OyAoYWRkLWhvb2sg J29yZy1hZnRlci10b2RvLXN0YXRpc3RpY3MtaG9vayAnb3JnLXN1bW1hcnktdG9kbyBuaWwgdCkK Cjs7OyBvcmctaW5pdC5lbCBlbmRzIGhlcmUK --0000000000008987e505fd775568--