GNU bug report logs - #46326
27.1.50; Excessive memory allocations with minibuffer-with-setup-hook

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: mail@HIDDEN; dated Fri, 5 Feb 2021 13:44:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 46326 <at> debbugs.gnu.org:


Received: (at 46326) by debbugs.gnu.org; 5 Feb 2021 17:07:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 05 12:07:16 2021
Received: from localhost ([127.0.0.1]:44614 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l84Zg-0007P8-AC
	for submit <at> debbugs.gnu.org; Fri, 05 Feb 2021 12:07:16 -0500
Received: from server.qxqx.de ([178.63.65.180]:54590 helo=mail.qxqx.de)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1l83h5-00060B-6t
 for 46326 <at> debbugs.gnu.org; Fri, 05 Feb 2021 11:10:51 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qxqx.de;
 s=mail1392553390; 
 h=Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:Content-Transfer-Encoding:Content-Type:MIME-Version;
 bh=zzO9clrWwHQ4JujdUBj+Hdxf/+YBQ3GewtnpUhM+u6A=; 
 b=GC5yAk6+j17It3mnZparYRgvxl/x3aNVZrQZs7yti53qTL+9XHVLiaSgjxJhvsD05OyQp3/LizCiG4PGJoLOxishsHyCG5qgOBDhmqxhk3gQ/Rl3ctykChMohlvAIclM0sH//8qkySSyXWuMgrnKEG9aaXO0+8ntYM+282HdyiY=;
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
Date: Fri, 05 Feb 2021 17:10:46 +0100
From: mail@HIDDEN
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#46326: 27.1.50; Excessive memory allocations with
 minibuffer-with-setup-hook
In-Reply-To: <83a6sipkv0.fsf@HIDDEN>
References: <62c490ed0d8d24d8b259ac1ba55ea79e@HIDDEN>
 <83eehuppx6.fsf@HIDDEN> <4aab2ef892b1df213ca67210021bcd47@HIDDEN>
 <83a6sipkv0.fsf@HIDDEN>
Message-ID: <631e918824625b8bde45b69664347398@HIDDEN>
X-Sender: mail@HIDDEN
User-Agent: Roundcube Webmail/1.2-git
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 46326
X-Mailman-Approved-At: Fri, 05 Feb 2021 12:07:15 -0500
Cc: 46326 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hello Eli!

> If you are saying that the Lisp code in question conses too many
> objects unnecessarily, then the solution is to modify the code to cons
> less objects.  That doesn't necessarily indicates the existence of a
> bug in Emacs, certainly not with its memory management.

My code certainly *does not allocate* too much. It is the add-hook 
implementation
or more precisely the minibuffer-with-setup-hook implementation which is
responsible for the excessive allocations. For this reason this is an 
upstream
bug. In my workaround, I am replacing the upstream version of 
minibuffer-with-setup-hook
with my own version to show the difference. This does not mean that I 
consider
the problem to be gone. I rather decided to report the problem instead.

> So if you already have a solution for the problem, what is it that you
> want us as Emacs maintainers to investigate and fix here?

I am actually not sure what the proper upstream fix is. I see the 
following
options.

1. Replace minibuffer-with-setup-hook with my version if you think
    my version is better and an acceptable fix.
2. Investigate the reasons why add-hook with priorities somehow copies
    large closures during sorting. This is unacceptably costly.

To give you a better picture of the overall situation - it looks like 
this:

     (minibuffer-with-setup-hook
         (lambda () ...large closure...)
       (minibuffer-with-setup-hook
           (lambda () ...another large closure...)
         (minibuffer-with-setup-hook
             (:append (lambda () ...and yet another one...))
           (completing-read ...))))

The bug is that the large closures are copied for some unknown reason in 
the
add-hook calls which I am not controlling as a library author. My 
replacement
adds the hooks in another way, by creating a symbol+fset instead of 
putting the
lambda directly in the minibuffer-setup-hook variable.

Daniel




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#46326; Package emacs. Full text available.

Message received at 46326 <at> debbugs.gnu.org:


Received: (at 46326) by debbugs.gnu.org; 5 Feb 2021 17:07:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 05 12:07:16 2021
Received: from localhost ([127.0.0.1]:44613 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l84Zg-0007P5-75
	for submit <at> debbugs.gnu.org; Fri, 05 Feb 2021 12:07:16 -0500
Received: from server.qxqx.de ([178.63.65.180]:38704 helo=mail.qxqx.de)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1l82uB-0004n4-3T
 for 46326 <at> debbugs.gnu.org; Fri, 05 Feb 2021 10:20:19 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qxqx.de;
 s=mail1392553390; 
 h=Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date:Content-Type:MIME-Version;
 bh=taxZuz8kqvX5SnDeUBof7LV4NuEyGDVN1MB6eMRqthY=; 
 b=UHyybuDyMBpLwdwetGpMsLPiSvep0ydiSaPawh6HTxNj2btcvuzcNr0DmBQ82W6tJj8UkcmDBr8By8n3Qcko6N2pAR1TcJr575MXkFNkN4uHdsXTnHpIYK1d6O/TbCVvhsd5UMEwdE5V7pod9mN8vFSAjlaALSofANpC1z69R2M=;
MIME-Version: 1.0
Content-Type: multipart/mixed;
 boundary="=_8eacb995e016baed37890613fffd2ad6"
Date: Fri, 05 Feb 2021 16:20:13 +0100
From: mail@HIDDEN
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#46326: 27.1.50; Excessive memory allocations with
 minibuffer-with-setup-hook
In-Reply-To: <83eehuppx6.fsf@HIDDEN>
References: <62c490ed0d8d24d8b259ac1ba55ea79e@HIDDEN>
 <83eehuppx6.fsf@HIDDEN>
Message-ID: <4aab2ef892b1df213ca67210021bcd47@HIDDEN>
X-Sender: mail@HIDDEN
User-Agent: Roundcube Webmail/1.2-git
X-Debbugs-Envelope-To: 46326
X-Mailman-Approved-At: Fri, 05 Feb 2021 12:07:15 -0500
Cc: 46326 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

--=_8eacb995e016baed37890613fffd2ad6
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII;
 format=flowed

Hello Eli,

thank you for your prompt answer!

> Please show information about the memory consumption.  (The so-called
> "memory profile" doesn't actually measure memory consumption at all,
> it just uses memory allocation calls as a poor-man's profiling
> signal.)

Yes, I am aware. I am not saying that live memory is the problem, but 
the
excessive amount of allocations is a problem, which creates unnecessary 
garbage
collector pauses. Therefore I can also not show you a profile of the 
memory
consumption, since it is not relevant.

> Please show a recipe starting from "emacs -Q" where a lot of memory is
> being consumed, and please show how much memory does the recipe
> consume.  Also, I presume invoking "M-x garbage-collect RET" doesn't
> release that memory?  If so, please show the return value of
> garbage-collect.

I hope it is not asking too much to load a single elisp file 
(consult.el)? The
package file has no further dependencies besides Emacs. Then I can give 
you the
following reproducible. The only difference between the two files is 
that in one
case minibuffer-with-setup-hook is used and in the other case
consult--minibuffer-with-setup-hook is used. I appended the two files. 
The hashes
correspond to the git commit hashes in case you want to pull the files 
from the
git repository.

     ;; excessive allocations - using minibuffer-with-setup-hook
     (load "consult-2a197310923a732033bdb757b20c6f90cfad784a.el")

     ;; no suspicious allocations - using 
consult--minibuffer-with-setup-hook
     ;;(load "consult-27e055e7c75e2148449e7b0be4d464b03c36a1bd.el")

     (profiler-start 'mem)
     (dotimes (count 100)
       (run-at-time 0 nil (lambda ()
         		     (message "%s" count)
         		     (setq unread-command-events '(?\C-g))))
       (condition-case _
           (consult-buffer)
         (quit)))
     (profiler-stop)
     (profiler-report)

>> See the issue https://github.com/minad/consult/issues/193 for 
>> reference.
> 
> I don't see any memory information in that discussion.  I guess you
> thought the memory profiler somehow shows memory consumption, but it
> doesn't.

The profile in the issue shows the memory allocation profile. I think 
you refer
to my comment
https://github.com/minad/consult/issues/193#issuecomment-770416491, 
where I
stated my confusion, since the creator of the issue talked about "memory 
usage".
I was only wondering what the profiler actually measures and I looked 
into the
profiler code to confirm that it indeed measures allocations.

> What exactly caused you to run the profiler? is the code slow or
> something?  If so, the problem may be something other than memory
> consumption.

Yes, it is slow. Add-hook performs unnecessary allocations causing 
pauses. After
replacing the minibuffer-with-setup-hook default implementation with my
workaround the memory allocations went away and the command is much 
faster. The
add-hook calls do not appear in the memory profile anymore. See the 
comment
https://github.com/minad/consult/issues/193#issuecomment-770650405.

      56,846,572  89%       - consult-buffer
      56,846,572  89%        - consult--buffer
      56,846,572  89%         - consult--multi
      53,076,020  83%          - consult--read
      53,076,020  83%           - apply
      53,076,020  83%            - #<compiled -0x1bf0d3486ff553f9>
      53,076,020  83%             - consult--with-async-1
      53,076,020  83%              - #<compiled 0x3e0275e58912bf7>
      53,076,020  83%               - consult--with-preview-1
      53,074,964  83%                - #<compiled -0xbfb98ce1324d29c>
      53,074,964  83%                 - completing-read
      53,074,964  83%                  - selectrum-completing-read
       5,530,436   8%                   + selectrum-read
          70,240   0%          + consult--multi-candidates
           4,360   0%            consult--multi-predicate
           1,056   0%          + consult--multi-preprocess

Daniel Mendler

--=_8eacb995e016baed37890613fffd2ad6
Content-Transfer-Encoding: base64
Content-Type: text/plain;
 name=consult-2a197310923a732033bdb757b20c6f90cfad784a.el
Content-Disposition: attachment;
 filename=consult-2a197310923a732033bdb757b20c6f90cfad784a.el;
 size=141407

Ozs7IGNvbnN1bHQuZWwgLS0tIENvbnN1bHRpbmcgY29tcGxldGluZy1yZWFkIC0qLSBsZXhpY2Fs
LWJpbmRpbmc6IHQgLSotCgo7OyBBdXRob3I6IERhbmllbCBNZW5kbGVyLCBDb25zdWx0IGFuZCBT
ZWxlY3RydW0gY29udHJpYnV0b3JzCjs7IE1haW50YWluZXI6IERhbmllbCBNZW5kbGVyCjs7IENy
ZWF0ZWQ6IDIwMjAKOzsgTGljZW5zZTogR1BMLTMuMC1vci1sYXRlcgo7OyBWZXJzaW9uOiAwLjMK
OzsgUGFja2FnZS1SZXF1aXJlczogKChlbWFjcyAiMjYuMSIpKQo7OyBIb21lcGFnZTogaHR0cHM6
Ly9naXRodWIuY29tL21pbmFkL2NvbnN1bHQKCjs7IFRoaXMgZmlsZSBpcyBub3QgcGFydCBvZiBH
TlUgRW1hY3MuCgo7OyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OyB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgo7OyAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUKOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCjs7IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6
Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKOzs7IENvbW1lbnRhcnk6Cgo7OyBDb25zdWx0IGlt
cGxlbWVudHMgYSBzZXQgb2YgYGNvbnN1bHQtPHRoaW5nPicgY29tbWFuZHMgd2hpY2ggdXNlCjs7
IGBjb21wbGV0aW5nLXJlYWQnIHRvIHNlbGVjdCBmcm9tIGEgbGlzdCBvZiBjYW5kaWRhdGVzLiBD
b25zdWx0Cjs7IHByb3ZpZGVzIGFuIGVuaGFuY2VkIGJ1ZmZlciBzd2l0Y2hlciBgY29uc3VsdC1i
dWZmZXInIGFuZCBtYW55Cjs7IHNlYXJjaCBhbmQgbmF2aWdhdGlvbiBjb21tYW5kcyBsaWtlIGBj
b25zdWx0LWltZW51JyBhbmQKOzsgYGNvbnN1bHQtbGluZScuIFNlYXJjaGluZyB0aHJvdWdoIG11
bHRpcGxlIGZpbGVzIGlzIHN1cHBvcnRlZCBieQo7OyB0aGUgcG93ZXJmdWwgYXN5bmNocm9ub3Vz
IGBjb25zdWx0LWdyZXAnIGNvbW1hbmQuIE1hbnkgQ29uc3VsdAo7OyBjb21tYW5kcyBhbGxvdyBw
cmV2aWV3aW5nIGNhbmRpZGF0ZXMgLSBpZiBhIGNhbmRpZGF0ZSBpcyBzZWxlY3RlZAo7OyBpbiB0
aGUgY29tcGxldGlvbiB2aWV3LCB0aGUgYnVmZmVyIHNob3dzIHRoZSBjYW5kaWRhdGUgaW1tZWRp
YXRlbHkuCgo7OyBUaGUgQ29uc3VsdCBjb21tYW5kcyBhcmUgY29tcGF0aWJsZSB3aXRoIGNvbXBs
ZXRpb24gc3lzdGVtcyBiYXNlZAo7OyBvbiB0aGUgRW1hY3MgYGNvbXBsZXRpbmctcmVhZCcgQVBJ
LCBub3RhYmx5IHRoZSBkZWZhdWx0IGNvbXBsZXRpb24KOzsgc3lzdGVtLCBJY29tcGxldGUsIFNl
bGVjdHJ1bSBhbmQgRW1iYXJrLgoKOzsgQ29uc3VsdCBoYXMgYmVlbiBpbnNwaXJlZCBieSBDb3Vu
c2VsLiBTb21lIG9mIHRoZSBDb25zdWx0IGNvbW1hbmRzCjs7IG9yaWdpbmF0ZWQgaW4gdGhlIFNl
bGVjdHJ1bSB3aWtpLiBTZWUgdGhlIFJFQURNRSBmb3IgYSBmdWxsIGxpc3Qgb2YKOzsgY29udHJp
YnV0b3JzLgoKOzs7IENvZGU6CgooZXZhbC13aGVuLWNvbXBpbGUKICAocmVxdWlyZSAnY2wtbGli
KQogIChyZXF1aXJlICdzdWJyLXgpKQoocmVxdWlyZSAnYm9va21hcmspCihyZXF1aXJlICdjb21w
aWxlKQoocmVxdWlyZSAnaW1lbnUpCihyZXF1aXJlICdrbWFjcm8pCihyZXF1aXJlICdvdXRsaW5l
KQoocmVxdWlyZSAncmVjZW50ZikKKHJlcXVpcmUgJ3JpbmcpCihyZXF1aXJlICdzZXEpCgooZGVm
Z3JvdXAgY29uc3VsdCBuaWwKICAiQ29uc3VsdGluZyBgY29tcGxldGluZy1yZWFkJy4iCiAgOmdy
b3VwICdjb252ZW5pZW5jZQogIDpwcmVmaXggImNvbnN1bHQtIikKCjs7OzsgQ3VzdG9taXphdGlv
bgoKKGRlZmN1c3RvbSBjb25zdWx0LW5hcnJvdy1rZXkgbmlsCiAgIlByZWZpeCBrZXkgZm9yIG5h
cnJvd2luZyBkdXJpbmcgY29tcGxldGlvbi4KCkdvb2QgY2hvaWNlcyBmb3IgdGhpcyBrZXkgYXJl
IChrYmQgXCI8XCIpIG9yIChrYmQgXCJDLStcIikgZm9yIGV4YW1wbGUuCgpUaGUga2V5IG11c3Qg
YmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgdmVjdG9yLgpUaGlzIGlzIHRoZSBrZXkgcmVwcmVzZW50
YXRpb24gYWNjZXB0ZWQgYnkgYGRlZmluZS1rZXknLiIKICA6dHlwZSAnKGNob2ljZSB2ZWN0b3Ig
c3RyaW5nIChjb25zdCBuaWwpKSkKCihkZWZjdXN0b20gY29uc3VsdC13aWRlbi1rZXkgbmlsCiAg
IktleSB1c2VkIGZvciB3aWRlbmluZyBkdXJpbmcgY29tcGxldGlvbi4KCklmIHRoaXMga2V5IGlz
IHVuc2V0LCBkZWZhdWx0cyB0byAnY29uc3VsdC1uYXJyb3cta2V5IFNQQycuCgpUaGUga2V5IG11
c3QgYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgdmVjdG9yLgpUaGlzIGlzIHRoZSBrZXkgcmVwcmVz
ZW50YXRpb24gYWNjZXB0ZWQgYnkgYGRlZmluZS1rZXknLiIKICA6dHlwZSAnKGNob2ljZSB2ZWN0
b3Igc3RyaW5nIChjb25zdCBuaWwpKSkKCihkZWZjdXN0b20gY29uc3VsdC1wcm9qZWN0LXJvb3Qt
ZnVuY3Rpb24gbmlsCiAgIkZ1bmN0aW9uIHdoaWNoIHJldHVybnMgcHJvamVjdCByb290IGRpcmVj
dG9yeS4KClRoZSByb290IGRpcmVjdG9yeSBpcyB1c2VkIGJ5IGBjb25zdWx0LWJ1ZmZlcicgYW5k
IGBjb25zdWx0LWdyZXAnLiIKICA6dHlwZSAnKGNob2ljZSBmdW5jdGlvbiAoY29uc3QgbmlsKSkp
CgooZGVmY3VzdG9tIGNvbnN1bHQtYXN5bmMtcmVmcmVzaC1kZWxheSAwLjI1CiAgIlJlZnJlc2hp
bmcgZGVsYXkgb2YgdGhlIGNvbXBsZXRpb24gdWkgZm9yIGFzeW5jaHJvbm91cyBjb21tYW5kcy4K
ClRoZSBjb21wbGV0aW9uIHVpIGlzIG9ubHkgdXBkYXRlZCBldmVyeSBgY29uc3VsdC1hc3luYy1y
ZWZyZXNoLWRlbGF5JwpzZWNvbmRzLiBUaGlzIGFwcGxpZXMgdG8gYXN5bmNocm9ub3VzIGNvbW1h
bmRzIGxpa2UgZm9yIGV4YW1wbGUKYGNvbnN1bHQtZ3JlcCcuIgogIDp0eXBlICdmbG9hdCkKCihk
ZWZjdXN0b20gY29uc3VsdC1hc3luYy1pbnB1dC10aHJvdHRsZSAwLjUKICAiSW5wdXQgdGhyb3R0
bGUgZm9yIGFzeW5jaHJvbm91cyBjb21tYW5kcy4KClRoZSBhc3luY2hyb25vdXMgcHJvY2VzcyBp
cyBzdGFydGVkIG9ubHkgZXZlcnkKYGNvbnN1bHQtYXN5bmMtaW5wdXQtdGhyb3R0bGUnIHNlY29u
ZHMuIFRoaXMgYXBwbGllcyB0byBhc3luY2hyb25vdXMKY29tbWFuZHMsIGUuZy4sIGBjb25zdWx0
LWdyZXAnLiIKICA6dHlwZSAnZmxvYXQpCgooZGVmY3VzdG9tIGNvbnN1bHQtYXN5bmMtaW5wdXQt
ZGVib3VuY2UgMC4yNQogICJJbnB1dCBkZWJvdW5jZSBmb3IgYXN5bmNocm9ub3VzIGNvbW1hbmRz
LgoKVGhlIGFzeW5jaHJvbm91cyBwcm9jZXNzIGlzIHN0YXJ0ZWQgb25seSB3aGVuIHRoZXJlIGhh
cyBub3QgYmVlbiBuZXcKaW5wdXQgZm9yIGBjb25zdWx0LWFzeW5jLWlucHV0LWRlYm91bmNlJyBz
ZWNvbmRzLiBUaGlzIGFwcGxpZXMgdG8KYXN5bmNocm9ub3VzIGNvbW1hbmRzLCBlLmcuLCBgY29u
c3VsdC1ncmVwJy4iCiAgOnR5cGUgJ2Zsb2F0KQoKKGRlZmN1c3RvbSBjb25zdWx0LWFzeW5jLW1p
bi1pbnB1dCAzCiAgIk1pbmltdW0gbnVtYmVyIG9mIGxldHRlcnMgbmVlZGVkLCBiZWZvcmUgYXN5
bmNocm9ub3VzIHByb2Nlc3MgaXMgY2FsbGVkLgoKVGhpcyBhcHBsaWVzIHRvIGFzeW5jaHJvbm91
cyBjb21tYW5kcywgZS5nLiwgYGNvbnN1bHQtZ3JlcCcuIgogIDp0eXBlICdpbnRlZ2VyKQoKKGRl
ZmN1c3RvbSBjb25zdWx0LWFzeW5jLWRlZmF1bHQtc3BsaXQgIiMiCiAgIkRlZmF1bHQgYXN5bmMg
aW5wdXQgc2VwYXJhdG9yIHVzZWQgZm9yIHNwbGl0dGluZy4KCkNhbiBhbHNvIGJlIG5pbCBpbiBv
cmRlciB0byBub3QgYXV0b21hdGljYWxseSBpbnNlcnQgYSBzZXBhcmF0b3IuIFRoaXMKYXBwbGll
cyB0byBhc3luY2hyb25vdXMgY29tbWFuZHMsIGUuZy4sIGBjb25zdWx0LWdyZXAnLiIKICA6dHlw
ZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBjb25zdWx0LW1vZGUtaGlzdG9yaWVzCiAgJygoZXNoZWxs
LW1vZGUgLiBlc2hlbGwtaGlzdG9yeS1yaW5nKQogICAgKGNvbWludC1tb2RlIC4gY29taW50LWlu
cHV0LXJpbmcpCiAgICAodGVybS1tb2RlICAgLiB0ZXJtLWlucHV0LXJpbmcpKQogICJBbGlzdCBv
ZiAobW9kZSAuIGhpc3RvcnkpIHBhaXJzIG9mIG1vZGUgaGlzdG9yaWVzLgpUaGUgaGlzdG9yaWVz
IGNhbiBiZSByaW5ncyBvciBsaXN0cy4iCiAgOnR5cGUgJyhsaXN0IChjb25zIHN5bWJvbCBzeW1i
b2wpKSkKCihkZWZjdXN0b20gY29uc3VsdC10aGVtZXMgbmlsCiAgIkxpc3Qgb2YgdGhlbWVzIHRv
IGJlIHByZXNlbnRlZCBmb3Igc2VsZWN0aW9uLgpuaWwgc2hvd3MgYWxsIGBjdXN0b20tYXZhaWxh
YmxlLXRoZW1lcycuIgogIDp0eXBlICcocmVwZWF0IHN5bWJvbCkpCgooZGVmY3VzdG9tIGNvbnN1
bHQtYWZ0ZXItanVtcC1ob29rICcocmVjZW50ZXIpCiAgIkZ1bmN0aW9uIGNhbGxlZCBhZnRlciBq
dW1waW5nIHRvIGEgbG9jYXRpb24uCgpDb21tb25seSB1c2VkIGZ1bmN0aW9ucyBmb3IgdGhpcyBo
b29rIGFyZSBgcmVjZW50ZXInIGFuZApgcmVwb3NpdGlvbi13aW5kb3cnLgoKVGhpcyBpcyBjYWxs
ZWQgZHVyaW5nIHByZXZpZXcgYW5kIGZvciB0aGUganVtcCBhZnRlciBzZWxlY3Rpb24uCllvdSBt
YXkgd2FudCB0byBhZGQgYSBmdW5jdGlvbiB3aGljaCBwdWxzZXMgdGhlIGN1cnJlbnQgbGluZSwg
ZS5nLiwKYHhyZWYtcHVsc2UtbW9tZW50YXJpbHknLiIKICA6dHlwZSAnaG9vaykKCihkZWZjdXN0
b20gY29uc3VsdC1saW5lLXBvaW50LXBsYWNlbWVudCAnbWF0Y2gtYmVnaW5uaW5nCiAgIldoZXJl
IHRvIGxlYXZlIHBvaW50IGFmdGVyIGBjb25zdWx0LWxpbmUnIGp1bXBzIHRvIGEgbWF0Y2guIgog
IDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJCZWdpbm5pbmcgb2YgdGhlIGxpbmUiIGxpbmUt
YmVnaW5uaW5nKQogICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJCZWdpbm5pbmcgb2YgdGhl
IG1hdGNoIiBtYXRjaC1iZWdpbm5pbmcpCiAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkVu
ZCBvZiB0aGUgbWF0Y2giIG1hdGNoLWVuZCkpKQoKKGRlZmN1c3RvbSBjb25zdWx0LWxpbmUtbnVt
YmVycy13aWRlbiB0CiAgIlNob3cgYWJzb2x1dGUgbGluZSBudW1iZXJzIHdoZW4gbmFycm93aW5n
IGlzIGFjdGl2ZS4KClNlZSBhbHNvIGBkaXNwbGF5LWxpbmUtbnVtYmVycy13aWRlbicuIgogIDp0
eXBlICdib29sZWFuKQoKKGRlZmN1c3RvbSBjb25zdWx0LWdvdG8tbGluZS1udW1iZXJzIHQKICAi
U2hvdyBsaW5lIG51bWJlcnMgZm9yIGBjb25zdWx0LWdvdG8tbGluZScuIgogIDp0eXBlICdib29s
ZWFuKQoKKGRlZmN1c3RvbSBjb25zdWx0LWZvbnRpZnktbWF4LXNpemUgMTA0ODU3NgogICJCdWZm
ZXJzIGxhcmdlciB0aGFuIHRoaXMgYnl0ZSBsaW1pdCBhcmUgbm90IGZvbnRpZmllZC4KClRoaXMg
aXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByZXZlbnQgYSBsYXJnZSBzdGFydHVwIHRpbWUKZm9y
IG5hdmlnYXRpb24gY29tbWFuZHMgbGlrZSBgY29uc3VsdC1saW5lJy4iCiAgOnR5cGUgJ2ludGVn
ZXIpCgooZGVmY3VzdG9tIGNvbnN1bHQtaW1lbnUtbmFycm93CiAgJygoZW1hY3MtbGlzcC1tb2Rl
IC4gKCg/ZiAuICJGdW5jdGlvbnMiKQogICAgICAgICAgICAgICAgICAgICAgICAoP20gLiAiTWFj
cm9zIikKICAgICAgICAgICAgICAgICAgICAgICAgKD9wIC4gIlBhY2thZ2VzIikKICAgICAgICAg
ICAgICAgICAgICAgICAgKD90IC4gIlR5cGVzIikKICAgICAgICAgICAgICAgICAgICAgICAgKD92
IC4gIlZhcmlhYmxlcyIpKSkpCiAgIk5hcnJvd2luZyBrZXlzIHVzZWQgYnkgYGNvbnN1bHQtaW1l
bnUnLiIKICA6dHlwZSAnYWxpc3QpCgooZGVmY3VzdG9tIGNvbnN1bHQtaW1lbnUtdG9wbGV2ZWwK
ICAnKChlbWFjcy1saXNwLW1vZGUgLiAiRnVuY3Rpb25zIikpCiAgIkNhdGVnb3J5IG9mIHRvcGxl
dmVsIGl0ZW1zLCB1c2VkIGJ5IGBjb25zdWx0LWltZW51Jy4KClRoZSBpbWVudSByZXByZXNlbnRh
dGlvbiBwcm92aWRlZCBieSB0aGUgYmFja2VuZCB1c3VhbGx5IHB1dHMKZnVuY3Rpb25zIGRpcmVj
dGx5IGF0IHRoZSB0b3BsZXZlbC4gYGNvbnN1bHQtaW1lbnUnIG1vdmVzIHRoZW0gaW5zdGVhZAp1
bmRlciB0aGUgY2F0ZWdvcnkgc3BlY2lmaWVkIGJ5IHRoaXMgdmFyaWFibGUuIgogIDp0eXBlICdh
bGlzdCkKCihkZWZjdXN0b20gY29uc3VsdC1idWZmZXItZmlsdGVyCiAgJygiXiAiKQogICJGaWx0
ZXIgcmVnZXhwcyBmb3IgYGNvbnN1bHQtYnVmZmVyJy4KClRoZSBkZWZhdWx0IHNldHRpbmcgaXMg
dG8gZmlsdGVyIG9ubHkgZXBoZW1lcmFsIGJ1ZmZlciBuYW1lcyBiZWdpbm5pbmcKd2l0aCBhIHNw
YWNlIGNoYXJhY3Rlci4iCiAgOnR5cGUgJyhyZXBlYXQgcmVnZXhwKSkKCihkZWZjdXN0b20gY29u
c3VsdC1idWZmZXItc291cmNlcwogICcoY29uc3VsdC0tc291cmNlLWhpZGRlbi1idWZmZXIKICAg
IGNvbnN1bHQtLXNvdXJjZS1idWZmZXIKICAgIGNvbnN1bHQtLXNvdXJjZS1maWxlCiAgICBjb25z
dWx0LS1zb3VyY2UtYm9va21hcmsKICAgIGNvbnN1bHQtLXNvdXJjZS1wcm9qZWN0LWJ1ZmZlcgog
ICAgY29uc3VsdC0tc291cmNlLXByb2plY3QtZmlsZSkKICAiU291cmNlcyB1c2VkIGJ5IGBjb25z
dWx0LWJ1ZmZlcicuCgpTZWUgYGNvbnN1bHQtLW11bHRpJyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0
aGUgc291cmNlIHZhbHVlcy4iCiAgOnR5cGUgJ2xpc3QpCgooZGVmY3VzdG9tIGNvbnN1bHQtbW9k
ZS1jb21tYW5kLWZpbHRlcgogICcoOzsgRmlsdGVyIGNvbW1hbmRzCiAgICAiLW1vZGUkIiAiLS0i
CiAgICA7OyBGaWx0ZXIgd2hvbGUgZmVhdHVyZXMKICAgIHNpbXBsZSBtd2hlZWwgdGltZSBzby1s
b25nIHJlY2VudGYpCiAgIkZpbHRlciBjb21tYW5kcyBmb3IgYGNvbnN1bHQtbW9kZS1jb21tYW5k
Jy4iCiAgOnR5cGUgJyhyZXBlYXQgKGNob2ljZSBzeW1ib2wgcmVnZXhwKSkpCgooZGVmY3VzdG9t
IGNvbnN1bHQtZ2l0LWdyZXAtY29tbWFuZAogICJnaXQgLS1uby1wYWdlciBncmVwIC0tbnVsbCAt
LWNvbG9yPWFsd2F5cyAtLWV4dGVuZGVkLXJlZ2V4cFwKICAgLS1saW5lLW51bWJlciAtSSAtZSBB
UkcgT1BUUyIKICAiQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgZ2l0LWdyZXAsIHNlZSBgY29u
c3VsdC1naXQtZ3JlcCcuIgogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGNvbnN1bHQtZ3Jl
cC1jb21tYW5kCiAgImdyZXAgLS1udWxsIC0tbGluZS1idWZmZXJlZCAtLWNvbG9yPWFsd2F5cyAt
LWV4dGVuZGVkLXJlZ2V4cFwKICAgLS1leGNsdWRlLWRpcj0uZ2l0IC0tbGluZS1udW1iZXIgLUkg
LXIgLiAtZSBBUkcgT1BUUyIKICAiQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgZ3JlcCwgc2Vl
IGBjb25zdWx0LWdyZXAnLiIKICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBjb25zdWx0LXJp
cGdyZXAtY29tbWFuZAogICJyZyAtLW51bGwgLS1saW5lLWJ1ZmZlcmVkIC0tY29sb3I9YWx3YXlz
IC0tbWF4LWNvbHVtbnM9NTAwXAogICAtLW5vLWhlYWRpbmcgLS1saW5lLW51bWJlciAuIC1lIEFS
RyBPUFRTIgogICJDb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciByaXBncmVwLCBzZWUgYGNvbnN1
bHQtcmlwZ3JlcCcuIgogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGNvbnN1bHQtZmluZC1j
b21tYW5kCiAgImZpbmQgLiAtbm90ICggLXdob2xlbmFtZSAqLy4qIC1wcnVuZSApIC1pcGF0aCAq
QVJHKiBPUFRTIgogICJDb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBmaW5kLCBzZWUgYGNvbnN1
bHQtZmluZCcuIgogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGNvbnN1bHQtbG9jYXRlLWNv
bW1hbmQKICAibG9jYXRlIC0taWdub3JlLWNhc2UgLS1leGlzdGluZyAtLXJlZ2V4cCBBUkcgT1BU
UyIKICAiQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgbG9jYXRlLCBzZWUgYGNvbnN1bHQtbG9j
YXRlJy4iCiAgOnR5cGUgJ3N0cmluZykKCihkZWZjdXN0b20gY29uc3VsdC1tYW4tY29tbWFuZAog
ICJtYW4gLWsgQVJHIE9QVFMiCiAgIkNvbW1hbmQgbGluZSBhcmd1bWVudHMgZm9yIG1hbiBhcHJv
cG9zLCBzZWUgYGNvbnN1bHQtbWFuJy4iCiAgOnR5cGUgJ3N0cmluZykKCihkZWZjdXN0b20gY29u
c3VsdC1wcmV2aWV3LWtleSAnYW55CiAgIlByZXZpZXcgdHJpZ2dlciBrZXlzLCBjYW4gYmUgbmls
LCAnYW55LCBhIHNpbmdsZSBrZXkgb3IgYSBsaXN0IG9mIGtleXMuIgogIDp0eXBlICcoY2hvaWNl
IChjb25zdCBhbnkpIChjb25zdCBuaWwpIHZlY3RvciBzdHJpbmcgKHJlcGVhdCAoY2hvaWNlIHZl
Y3RvciBzdHJpbmcpKSkpCgooZGVmY3VzdG9tIGNvbnN1bHQtcHJldmlldy1tYXgtc2l6ZSAxMDQ4
NTc2MAogICJGaWxlcyBsYXJnZXIgdGhhbiB0aGlzIGJ5dGUgbGltaXQgYXJlIG5vdCBwcmV2aWV3
ZWQuIgogIDp0eXBlICdpbnRlZ2VyKQoKKGRlZmN1c3RvbSBjb25zdWx0LXByZXZpZXctbWF4LWNv
dW50IDEwCiAgIk51bWJlciBvZiBmaWxlcyB0byBrZWVwIG9wZW4gYXQgb25jZSBkdXJpbmcgcHJl
dmlldy4iCiAgOnR5cGUgJ2ludGVnZXIpCgooZGVmY3VzdG9tIGNvbnN1bHQtcmVnaXN0ZXItbmFy
cm93CiAgYCgoP24gIk51bWJlciIgLCMnbnVtYmVycCkKICAgICg/cyAiU3RyaW5nIiAsIydzdHJp
bmdwKQogICAgKD9yICJSZWN0YW5nbGUiICwobGFtYmRhICh4KSAoc3RyaW5ncCAoY2FyLXNhZmUg
eCkpKSkKICAgIDs7IGZyYW1lc2V0LXJlZ2lzdGVyLXAgYW5kIGttYWNyby1yZWdpc3Rlci1wIGV4
aXN0cyBzaW5jZSAyNy4xCiAgICAoP2YgIkZyYW1lc2V0IiAsKGxhbWJkYSAoeCkgKGVxICh0eXBl
LW9mIHgpICdmcmFtZXNldC1yZWdpc3RlcikpKQogICAgKD9rICJLbWFjcm8iICwobGFtYmRhICh4
KSAoZXEgKHR5cGUtb2YgeCkgJ2ttYWNyby1yZWdpc3RlcikpKQogICAgKD9wICJQb2ludCIgLChs
YW1iZGEgKHgpIChvciAobWFya2VycCB4KSAoZXEgKGNhci1zYWZlIHgpICdmaWxlLXF1ZXJ5KSkp
KQogICAgKD93ICJXaW5kb3ciICwobGFtYmRhICh4KSAod2luZG93LWNvbmZpZ3VyYXRpb24tcCAo
Y2FyLXNhZmUgeCkpKSkpCiAgIlJlZ2lzdGVyIG5hcnJvd2luZyBjb25maWd1cmF0aW9uLgoKRWFj
aCBlbGVtZW50IG9mIHRoZSBsaXN0IG11c3QgaGF2ZSB0aGUgZm9ybSAnKGNoYXIgbmFtZSBwcmVk
aWNhdGUpLiIKICA6dHlwZSAnbGlzdCkKCihkZWZjdXN0b20gY29uc3VsdC1ib29rbWFyay1uYXJy
b3cKICBgKCg/ZiAiRmlsZSIgIydib29rbWFyay1kZWZhdWx0LWhhbmRsZXIpCiAgICAoP2ggIkhl
bHAiICMnaGVscC1ib29rbWFyay1qdW1wKQogICAgKD9pICJJbmZvIiAjJ0luZm8tYm9va21hcmst
anVtcCkKICAgICg/cCAiUGljdHVyZSIgIydpbWFnZS1ib29rbWFyay1qdW1wKQogICAgKD9kICJE
b2N2aWV3IiAjJ2RvYy12aWV3LWJvb2ttYXJrLWp1bXApCiAgICAoP20gIk1hbiIgIydNYW4tYm9v
a21hcmstanVtcCkKICAgICg/dyAiV29tYW4iICMnd29tYW4tYm9va21hcmstanVtcCkKICAgICg/
ZyAiR251cyIgIydnbnVzLXN1bW1hcnktYm9va21hcmstanVtcCkpCiAgIkJvb2ttYXJrIG5hcnJv
d2luZyBjb25maWd1cmF0aW9uLgoKRWFjaCBlbGVtZW50IG9mIHRoZSBsaXN0IG11c3QgaGF2ZSB0
aGUgZm9ybSAnKGNoYXIgbmFtZSBoYW5kbGVyKS4iCiAgOnR5cGUgJ2xpc3QpCgooZGVmY3VzdG9t
IGNvbnN1bHQtY29uZmlnIG5pbAogICJDb21tYW5kIGNvbmZpZ3VyYXRpb24gYWxpc3RzLCB3aGlj
aCBhbGxvd3MgZmluZS1ncmFpbmVkIGNvbmZpZ3VyYXRpb24uCgpUaGUgb3B0aW9ucyBzZXQgaGVy
ZSB3aWxsIGJlIHBhc3NlZCB0byBgY29uc3VsdC0tcmVhZCcsIHdoZW4gY2FsbGVkCmZyb20gdGhl
IGNvcnJlc3BvbmRpbmcgY29tbWFuZC4gTm90ZSB0aGF0IHRoZSBvcHRpb25zIGRlcGVuZCBvbiB0
aGUKcHJpdmF0ZSBgY29uc3VsdC0tcmVhZCcgQVBJIGFuZCBzaG91bGQgbm90IGJlIGNvbnNpZGVy
ZWQgYXMgc3RhYmxlIGFzCnRoZSBwdWJsaWMgQVBJLiIKICA6dHlwZSAnKGxpc3QgKGNvbnMgc3lt
Ym9sIHBsaXN0KSkpCgo7Ozs7IEZhY2VzCgooZGVmZ3JvdXAgY29uc3VsdC1mYWNlcyBuaWwKICAi
RmFjZXMgdXNlZCBieSBDb25zdWx0LiIKICA6Z3JvdXAgJ2NvbnN1bHQKICA6Z3JvdXAgJ2ZhY2Vz
KQoKKGRlZmZhY2UgY29uc3VsdC1wcmV2aWV3LWxpbmUKICAnKCh0IDppbmhlcml0IHJlZ2lvbikp
CiAgIkZhY2UgdXNlZCB0byBmb3IgbGluZSBwcmV2aWV3cy4iKQoKKGRlZmZhY2UgY29uc3VsdC1w
cmV2aWV3LW1hdGNoCiAgJygodCA6aW5oZXJpdCBtYXRjaCkpCiAgIkZhY2UgdXNlZCB0byBmb3Ig
bWF0Y2ggcHJldmlld3MgaW4gYGNvbnN1bHQtZ3JlcCcuIikKCihkZWZmYWNlIGNvbnN1bHQtcHJl
dmlldy1jdXJzb3IKICAnKCh0IDppbmhlcml0IGNvbnN1bHQtcHJldmlldy1tYXRjaCkpCiAgIkZh
Y2UgdXNlZCB0byBmb3IgY3Vyc29yIHByZXZpZXdzIGFuZCBtYXJrcyBpbiBgY29uc3VsdC1tYXJr
Jy4iKQoKKGRlZmZhY2UgY29uc3VsdC1wcmV2aWV3LWVycm9yCiAgJygodCA6aW5oZXJpdCBpc2Vh
cmNoLWZhaWwpKQogICJGYWNlIHVzZWQgdG8gZm9yIGN1cnNvciBwcmV2aWV3cyBhbmQgbWFya3Mg
aW4gYGNvbnN1bHQtZXJyb3InLiIpCgooZGVmZmFjZSBjb25zdWx0LXByZXZpZXcteWFuawogICco
KHQgOmluaGVyaXQgY29uc3VsdC1wcmV2aWV3LWxpbmUpKQogICJGYWNlIHVzZWQgdG8gZm9yIHlh
bmsgcHJldmlld3MgaW4gYGNvbnN1bHQteWFuaycuIikKCihkZWZmYWNlIGNvbnN1bHQtbmFycm93
LWluZGljYXRvcgogICcoKHQgOmluaGVyaXQgd2FybmluZykpCiAgIkZhY2UgdXNlZCBmb3IgdGhl
IG5hcnJvd2luZyBpbmRpY2F0b3IuIikKCihkZWZmYWNlIGNvbnN1bHQtYXN5bmMtcnVubmluZwog
ICcoKHQgOmluaGVyaXQgY29uc3VsdC1uYXJyb3ctaW5kaWNhdG9yKSkKICAiRmFjZSB1c2VkIGlm
IGFzeW5jaHJvbm91cyBwcm9jZXNzIGlzIHJ1bm5pbmcuIikKCihkZWZmYWNlIGNvbnN1bHQtYXN5
bmMtZmluaXNoZWQKICAnKCh0IDppbmhlcml0IHN1Y2Nlc3MpKQogICJGYWNlIHVzZWQgaWYgYXN5
bmNocm9ub3VzIHByb2Nlc3MgaGFzIGZpbmlzaGVkLiIpCgooZGVmZmFjZSBjb25zdWx0LWFzeW5j
LWZhaWxlZAogICcoKHQgOmluaGVyaXQgZXJyb3IpKQogICJGYWNlIHVzZWQgaWYgYXN5bmNocm9u
b3VzIHByb2Nlc3MgaGFzIGZhaWxlZC4iKQoKKGRlZmZhY2UgY29uc3VsdC1hc3luYy1zcGxpdAog
ICcoKHQgOmluaGVyaXQgZm9udC1sb2NrLW5lZ2F0aW9uLWNoYXItZmFjZSkpCiAgIkZhY2UgdXNl
ZCB0byBoaWdobGlnaHQgcHVuY3R1YXRpb24gY2hhcmFjdGVyLiIpCgooZGVmZmFjZSBjb25zdWx0
LWhlbHAKICAnKCh0IDppbmhlcml0IHNoYWRvdykpCiAgIkZhY2UgdXNlZCB0byBoaWdobGlnaHQg
aGVscCwgZS5nLiwgaW4gYGNvbnN1bHQtcmVnaXN0ZXItc3RvcmUnLiIpCgooZGVmZmFjZSBjb25z
dWx0LWtleQogICcoKHQgOmluaGVyaXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpCiAgIkZhY2Ug
dXNlZCB0byBoaWdobGlnaHQga2V5cywgZS5nLiwgaW4gYGNvbnN1bHQtcmVnaXN0ZXInLiIpCgoo
ZGVmZmFjZSBjb25zdWx0LWltZW51LXByZWZpeAogICcoKHQgOmluaGVyaXQgY29uc3VsdC1rZXkp
KQogICJGYWNlIHVzZWQgdG8gaGlnaGxpZ2h0IGltZW51IHByZWZpeCBpbiBgY29uc3VsdC1pbWVu
dScuIikKCihkZWZmYWNlIGNvbnN1bHQtbGluZS1udW1iZXIKICAnKCh0IDppbmhlcml0IGNvbnN1
bHQta2V5KSkKICAiRmFjZSB1c2VkIHRvIGhpZ2hsaWdodCBsb2NhdGlvbiBsaW5lIGluIGBjb25z
dWx0LWdsb2JhbC1tYXJrJy4iKQoKKGRlZmZhY2UgY29uc3VsdC1maWxlCiAgJygodCA6aW5oZXJp
dCBmb250LWxvY2stZnVuY3Rpb24tbmFtZS1mYWNlKSkKICAiRmFjZSB1c2VkIHRvIGhpZ2hsaWdo
dCBmaWxlcyBpbiBgY29uc3VsdC1idWZmZXInLiIpCgooZGVmZmFjZSBjb25zdWx0LWJvb2ttYXJr
CiAgJygodCA6aW5oZXJpdCBmb250LWxvY2stY29uc3RhbnQtZmFjZSkpCiAgIkZhY2UgdXNlZCB0
byBoaWdobGlnaHQgYm9va21hcmtzIGluIGBjb25zdWx0LWJ1ZmZlcicuIikKCihkZWZmYWNlIGNv
bnN1bHQtYnVmZmVyCiAgJygodCkpCiAgIkZhY2UgdXNlZCB0byBoaWdobGlnaHQgYnVmZmVycyBp
biBgY29uc3VsdC1idWZmZXInLiIpCgooZGVmZmFjZSBjb25zdWx0LWxpbmUtbnVtYmVyLXByZWZp
eAogICcoKHQgOmluaGVyaXQgbGluZS1udW1iZXIpKQogICJGYWNlIHVzZWQgdG8gaGlnaGxpZ2h0
IGxpbmUgbnVtYmVycyBpbiBzZWxlY3Rpb25zLiIpCgo7OyBmYWNlIGRlZmluaXRpb24gdGFrZW4g
ZnJvbSBFbWJhcmsKKGRlZmZhY2UgY29uc3VsdC16ZWJyYQogICcoKGRlZmF1bHQgOmV4dGVuZCB0
KQogICAgKCgoY2xhc3MgY29sb3IpIChtaW4tY29sb3JzIDg4KSAoYmFja2dyb3VuZCBsaWdodCkp
CiAgICAgOmJhY2tncm91bmQgIiNlZmVmZWYiKQogICAgKCgoY2xhc3MgY29sb3IpIChtaW4tY29s
b3JzIDg4KSAoYmFja2dyb3VuZCBkYXJrKSkKICAgICA6YmFja2dyb3VuZCAiIzI0MjQyNCIpKQog
ICJGYWNlIHRvIGhpZ2hsaWdodCBhbHRlcm5hdGluZyByb3dzIGluIGBjb25zdWx0LXJlZ2lzdGVy
LXdpbmRvdycuIikKCjs7OzsgSGlzdG9yeSB2YXJpYWJsZXMKCihkZWZ2YXIgY29uc3VsdC0ta2Vl
cC1saW5lcy1oaXN0b3J5IG5pbCkKKGRlZnZhciBjb25zdWx0LS1lcnJvci1oaXN0b3J5IG5pbCkK
KGRlZnZhciBjb25zdWx0LS1ncmVwLWhpc3RvcnkgbmlsKQooZGVmdmFyIGNvbnN1bHQtLWZpbmQt
aGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0tbWFuLWhpc3RvcnkgbmlsKQooZGVmdmFyIGNv
bnN1bHQtLWxpbmUtaGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0tYXByb3Bvcy1oaXN0b3J5
IG5pbCkKKGRlZnZhciBjb25zdWx0LS10aGVtZS1oaXN0b3J5IG5pbCkKKGRlZnZhciBjb25zdWx0
LS1taW5vci1tb2RlLW1lbnUtaGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0tbW9kZS1jb21t
YW5kLWhpc3RvcnkgbmlsKQooZGVmdmFyIGNvbnN1bHQtLWttYWNyby1oaXN0b3J5IG5pbCkKKGRl
ZnZhciBjb25zdWx0LS1idWZmZXItaGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0taW1lbnUt
aGlzdG9yeSBuaWwpCgo7Ozs7IEludGVybmFsIHZhcmlhYmxlcwoKKGRlZnZhciBjb25zdWx0LS1j
YWNoZSBuaWwKICAiQ2FjaGVkIGRhdGEgcG9wdWxhdGVkIGJ5IGBjb25zdWx0LS1kZWZpbmUtY2Fj
aGUnLiIpCgooZGVmdmFyIGNvbnN1bHQtLWNvbXBsZXRpb24tZmlsdGVyLWhvb2sKICAobGlzdCAj
J2NvbnN1bHQtLWRlZmF1bHQtY29tcGxldGlvbi1maWx0ZXIpCiAgIk9idGFpbiBtYXRjaCBmdW5j
dGlvbiBmcm9tIGNvbXBsZXRpb24gc3lzdGVtLiIpCgooZGVmdmFyIGNvbnN1bHQtLWNvbXBsZXRp
b24tY2FuZGlkYXRlLWhvb2sKICAobGlzdCAjJ2NvbnN1bHQtLWRlZmF1bHQtY29tcGxldGlvbi1j
YW5kaWRhdGUpCiAgIkdldCBjYW5kaWRhdGUgZnJvbSBjb21wbGV0aW9uIHN5c3RlbS4iKQoKKGRl
ZnZhciBjb25zdWx0LS1jb21wbGV0aW9uLXJlZnJlc2gtaG9vayBuaWwKICAiUmVmcmVzaCBjb21w
bGV0aW9uIHN5c3RlbS4iKQoKKGRlZnZhci1sb2NhbCBjb25zdWx0LS1wcmV2aWV3LWZ1bmN0aW9u
IG5pbAogICJNaW5pYnVmZmVyLWxvY2FsIHZhcmlhYmxlIHdoaWNoIGV4cG9zZXMgdGhlIGN1cnJl
bnQgcHJldmlldyBmdW5jdGlvbi4KVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGJ5IGN1c3Rv
bSBjb21wbGV0aW9uIHN5c3RlbXMgZnJvbSBvdXRzaWRlIHRoZSBtaW5pYnVmZmVyLgpUaGUgcHJl
dmlldyBmdW5jdGlvbiBleHBlY3RzIHR3byBhcmd1bWVudHMsIHRoZSBjdXJyZW50IGlucHV0IHN0
cmluZyBhbmQgdGhlIGNhbmRpZGF0ZSBzdHJpbmcuIikKCihkZWZjb25zdCBjb25zdWx0LS10b2Z1
LWNoYXIgI3gxMDAwMDAKICAiU3BlY2lhbCBjaGFyYWN0ZXIgdXNlZCB0byBlbmNvZGUgbGluZSBw
cmVmaXhlcyBmb3IgZGlzYW1iaWd1YXRpb24uCldlIHVzZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9m
IHRoZSBwcml2YXRlIHVuaWNvZGUgcGxhbmUgYi4iKQoKKGRlZmNvbnN0IGNvbnN1bHQtLXRvZnUt
cmFuZ2UgI3hGRkZFCiAgIlNwZWNpYWwgY2hhcmFjdGVyIHJhbmdlLgpTaXplIG9mIHByaXZhdGUg
dW5pY29kZSBwbGFuZSBiLiIpCgooZGVmdmFyLWxvY2FsIGNvbnN1bHQtLW5hcnJvdyBuaWwKICAi
Q3VycmVudCBuYXJyb3dpbmcga2V5LiIpCgooZGVmdmFyLWxvY2FsIGNvbnN1bHQtLW5hcnJvdy1w
cmVmaXhlcyBuaWwKICAiTmFycm93aW5nIHByZWZpeGVzIG9mIHRoZSBjdXJyZW50IGNvbXBsZXRp
b24uIikKCihkZWZ2YXItbG9jYWwgY29uc3VsdC0tbmFycm93LXByZWRpY2F0ZSBuaWwKICAiTmFy
cm93aW5nIHByZWRpY2F0ZSBvZiB0aGUgY3VycmVudCBjb21wbGV0aW9uLiIpCgooZGVmdmFyLWxv
Y2FsIGNvbnN1bHQtLW5hcnJvdy1vdmVybGF5IG5pbAogICJOYXJyb3dpbmcgaW5kaWNhdG9yIG92
ZXJsYXkuIikKCihkZWZ2YXIgY29uc3VsdC0tZ2MtdGhyZXNob2xkIDY3MTA4ODY0CiAgIkxhcmdl
IGdjIHRocmVzaG9sZCBmb3IgdGVtcG9yYXJ5IGluY3JlYXNlLiIpCgooZGVmdmFyIGNvbnN1bHQt
LWdjLXBlcmNlbnRhZ2UgMC41CiAgIkxhcmdlIGdjIHBlcmNlbnRhZ2UgZm9yIHRlbXBvcmFyeSBp
bmNyZWFzZS4iKQoKKGRlZnZhciBjb25zdWx0LS1hc3luYy1sb2cKICAiICpjb25zdWx0LWFzeW5j
LWxvZyoiCiAgIkJ1ZmZlciBmb3IgYXN5bmMgbG9nZ2luZyBvdXRwdXQgdXNlZCBieSBgY29uc3Vs
dC0tYXN5bmMtcHJvY2VzcycuIikKCihkZWZ2YXItbG9jYWwgY29uc3VsdC0taW1lbnUtY2FjaGUg
bmlsCiAgIkJ1ZmZlciBsb2NhbCBjYWNoZWQgaW1lbnUuIikKCihkZWZjb25zdCBjb25zdWx0LS1n
cmVwLXJlZ2V4cCAiXFwoW15cMFxuXStcXClcMFxcKFteOlwwXStcXClbOlwwXSIKICAiUmVnZXhw
IHVzZWQgdG8gbWF0Y2ggZmlsZSBhbmQgbGluZSBvZiBncmVwIG91dHB1dC4iKQoKKGRlZmNvbnN0
IGNvbnN1bHQtLWdyZXAtbWF0Y2gtcmVnZXhwICJcZVxcW1swLTk7XSttXFwoLio/XFwpXGVcXFtb
MC05O10qbSIKICAiUmVnZXhwIHVzZWQgdG8gZmluZCBtYXRjaGVzIGluIGdyZXAgb3V0cHV0LiIp
CgooZGVmdmFyLWxvY2FsIGNvbnN1bHQtLWZvY3VzLWxpbmVzLW92ZXJsYXlzIG5pbAogICJPdmVy
bGF5cyB1c2VkIGJ5IGBjb25zdWx0LWZvY3VzLWxpbmVzJy4iKQoKOzs7OyBIZWxwZXIgZnVuY3Rp
b25zIGFuZCBtYWNyb3MKCihkZWZtYWNybyBjb25zdWx0LS1kZWZpbmUtY2FjaGUgKG5hbWUgJnJl
c3QgYm9keSkKICAiRGVmaW5lIGNhY2hlZCB2YWx1ZSB3aXRoIE5BTUUgYW5kIEJPRFkuIgogIChk
ZWNsYXJlIChpbmRlbnQgMSkpCiAgYChkZWZ1biAsbmFtZSAoKQogICAgIChvciAoYWxpc3QtZ2V0
ICcsbmFtZSBjb25zdWx0LS1jYWNoZSkKICAgICAgICAgKHNldGYgKGFsaXN0LWdldCAnLG5hbWUg
Y29uc3VsdC0tY2FjaGUpCiAgICAgICAgICAgICAgICwobWFjcm9leHAtcHJvZ24gYm9keSkpKSkp
CgooZGVmc3Vic3QgY29uc3VsdC0tY29tcGxldGlvbi1maWx0ZXIgKGNhdGVnb3J5IGhpZ2hsaWdo
dCkKICAiUmV0dXJuIGZpbHRlciBmdW5jdGlvbiB1c2VkIGJ5IGNvbXBsZXRpb24gc3lzdGVtLgoK
Q0FURUdPUlkgaXMgdGhlIGNvbXBsZXRpb24gY2F0ZWdvcnkuCkhJR0hMSUdIVCBtdXN0IGJlIHQg
aWYgaGlnaGxpZ2h0aW5nIGlzIG5lZWRlZC4iCiAgKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1z
dWNjZXNzICdjb25zdWx0LS1jb21wbGV0aW9uLWZpbHRlci1ob29rIGNhdGVnb3J5IGhpZ2hsaWdo
dCkpCgooZGVmdW4gY29uc3VsdC0tY29tcGxldGlvbi1maWx0ZXItY29tcGxlbWVudCAoY2F0ZWdv
cnkpCiAgIlJldHVybiBjb21wbGVtZW50IG9mIHRoZSBmaWx0ZXIgZnVuY3Rpb24gdXNlZCBieSB0
aGUgY29tcGxldGlvbiBzeXN0ZW0uCgpDQVRFR09SWSBpcyB0aGUgY29tcGxldGlvbiBjYXRlZ29y
eS4iCiAgKGxldCAoKGZpbHRlciAoY29uc3VsdC0tY29tcGxldGlvbi1maWx0ZXIgY2F0ZWdvcnkg
bmlsKSkpCiAgICAobGFtYmRhIChpbnB1dCBjYW5kcykKICAgICAgKGxldCAoKGh0IChjb25zdWx0
LS1zdHJpbmctaGFzaCAoZnVuY2FsbCBmaWx0ZXIgaW5wdXQgY2FuZHMpKSkpCiAgICAgICAgKHNl
cS1yZW1vdmUgKGxhbWJkYSAoeCkgKGdldGhhc2ggeCBodCkpIGNhbmRzKSkpKSkKCihkZWZ1biBj
b25zdWx0LS1jb21wbGV0aW9uLWZpbHRlci1kaXNwYXRjaCAoY2F0ZWdvcnkgaGlnaGxpZ2h0KQog
ICJSZXR1cm4gZGlzcGF0Y2hpbmcgZmlsdGVyIGZ1bmN0aW9uLgoKRWl0aGVyIGRpc3BhdGNoIHRv
IGBjb25zdWx0LS1jb21wbGV0aW9uLWZpbHRlcicgb3IgdG8KYGNvbnN1bHQtLWNvbXBsZXRpb24t
ZmlsdGVyLWNvbXBsZW1lbnQnLgpDQVRFR09SWSBpcyB0aGUgY29tcGxldGlvbiBjYXRlZ29yeS4K
SElHSExJR0hUIG11c3QgYmUgdCBpZiBoaWdobGlnaHRpbmcgaXMgbmVlZGVkLiIKICAobGV0ICgo
ZmlsdGVyIChjb25zdWx0LS1jb21wbGV0aW9uLWZpbHRlciBjYXRlZ29yeSBoaWdobGlnaHQpKQog
ICAgICAgIChmaWx0ZXItbm90IChjb25zdWx0LS1jb21wbGV0aW9uLWZpbHRlci1jb21wbGVtZW50
IGNhdGVnb3J5KSkpCiAgICAobGFtYmRhIChpbnB1dCBjYW5kcykKICAgICAgKGNvbmQKICAgICAg
ICgoc3RyaW5nLW1hdGNoLXAgIl4hPyA/JCIgaW5wdXQpIGNhbmRzKSA7OyBlbXB0eSBpbnB1dAog
ICAgICAgKChzdHJpbmctcHJlZml4LXAgIiEgIiBpbnB1dCkgKGZ1bmNhbGwgZmlsdGVyLW5vdCAo
c3Vic3RyaW5nIGlucHV0IDIpIGNhbmRzKSkKICAgICAgICh0IChmdW5jYWxsIGZpbHRlciBpbnB1
dCBjYW5kcykpKSkpKQoKKGRlZm1hY3JvIGNvbnN1bHQtLWVhY2gtbGluZSAoYmVnIGVuZCAmcmVz
dCBib2R5KQogICJJdGVyYXRlIG92ZXIgZWFjaCBsaW5lLgoKVGhlIGxpbmUgYmVnaW5uaW5nL2Vu
ZGluZyBCRUcvRU5EIGlzIGJvdW5kIGluIEJPRFkuIgogIChkZWNsYXJlIChpbmRlbnQgMikpCiAg
KGxldCAoKG1heCAobWFrZS1zeW1ib2wgIm1heCIpKSkKICAgIGAoc2F2ZS1leGN1cnNpb24KICAg
ICAgIChsZXQgKCgsYmVnIChwb2ludC1taW4pKSAoLG1heCAocG9pbnQtbWF4KSkgZW5kKQogICAg
ICAgICAod2hpbGUgKDwgLGJlZyAsbWF4KQogICAgICAgICAgIChnb3RvLWNoYXIgLGJlZykKICAg
ICAgICAgICAoc2V0cSAsZW5kIChsaW5lLWVuZC1wb3NpdGlvbikpCiAgICAgICAgICAgLEBib2R5
CiAgICAgICAgICAgKHNldHEgLGJlZyAoMSsgLGVuZCkpKSkpKSkKCihkZWZ1biBjb25zdWx0LS1z
dHJpbmctaGFzaCAoc3RyaW5ncykKICAiQ3JlYXRlIGhhc2h0YWJsZSBmcm9tIFNUUklOR1MuIgog
IChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwgOnNpemUgKGxlbmd0aCBz
dHJpbmdzKSkpKQogICAgKGRvbGlzdCAoc3RyIHN0cmluZ3MpCiAgICAgIChwdXRoYXNoIHN0ciB0
IGh0KSkKICAgIGh0KSkKCihkZWZtYWNybyBjb25zdWx0LS1sb2NhbC1sZXQgKGJpbmRzICZyZXN0
IGJvZHkpCiAgIkJ1ZmZlciBsb2NhbCBsZXQgQklORFMgb2YgZHluYW1pYyB2YXJpYWJsZXMgaW4g
Qk9EWS4iCiAgKGRlY2xhcmUgKGluZGVudCAxKSkKICAobGV0ICgoYnVmZmVyIChtYWtlLXN5bWJv
bCAiYnVmZmVyIikpCiAgICAgICAgKGxvY2FsIChtYXBjYXIgKGxhbWJkYSAoeCkgKGNvbnMgKG1h
a2Utc3ltYm9sICJsb2NhbCIpIChjYXIgeCkpKSBiaW5kcykpKQogICAgYChsZXQgKCgsYnVmZmVy
IChjdXJyZW50LWJ1ZmZlcikpCiAgICAgICAgICAgLEAobWFwY2FyIChsYW1iZGEgKHgpIGAoLChj
YXIgeCkgKGxvY2FsLXZhcmlhYmxlLXAgJywoY2RyIHgpKSkpIGxvY2FsKSkKICAgICAgICh1bndp
bmQtcHJvdGVjdAogICAgICAgICAgIChwcm9nbgogICAgICAgICAgICAgLEAobWFwY2FyIChsYW1i
ZGEgKHgpIGAobWFrZS1sb2NhbC12YXJpYWJsZSAnLChjYXIgeCkpKSBiaW5kcykKICAgICAgICAg
ICAgIChsZXQgKCxAYmluZHMpCiAgICAgICAgICAgICAgICxAYm9keSkpCiAgICAgICAgICh3aGVu
IChidWZmZXItbGl2ZS1wICxidWZmZXIpCiAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIg
LGJ1ZmZlcgogICAgICAgICAgICAgLEAobWFwY2FyIChsYW1iZGEgKHgpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBgKHVubGVzcyAsKGNhciB4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGtpbGwtbG9jYWwtdmFyaWFibGUgJywoY2RyIHgpKSkpCiAgICAgICAgICAgICAgICAgICAgICAg
bG9jYWwpKSkpKSkpCgooZGVmdW4gY29uc3VsdC0tcmVnZXhwLWZpbHRlciAocmVnZXhwcykKICAi
Q3JlYXRlIGZpbHRlciByZWdleHAgZnJvbSBSRUdFWFBTLiIKICAoc3RyaW5nLWpvaW4gKG1hcGNh
ciAobGFtYmRhICh4KSAoY29uY2F0ICJcXCg/OiIgeCAiXFwpIikpIHJlZ2V4cHMpICJcXHwiKSkK
CihkZWZ1biBjb25zdWx0LS1mb250LWxvY2sgKHN0cikKICAiQXBwbHkgYGZvbnQtbG9jaycgZmFj
ZXMgaW4gU1RSLCBjb3B5IHRoZW0gdG8gYGZhY2UnLiIKICAobGV0ICgocG9zIDApIChsZW4gKGxl
bmd0aCBzdHIpKSkKICAgICh3aGlsZSAoPCBwb3MgbGVuKQogICAgICAobGV0KiAoKGZhY2UgKGdl
dC10ZXh0LXByb3BlcnR5IHBvcyAnZm9udC1sb2NrLWZhY2Ugc3RyKSkKICAgICAgICAgICAgIChl
bmQgKG9yICh0ZXh0LXByb3BlcnR5LW5vdC1hbGwgcG9zIGxlbiAnZm9udC1sb2NrLWZhY2UgZmFj
ZSBzdHIpIGxlbikpKQogICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBwb3MgZW5kICdmYWNlIGZh
Y2Ugc3RyKQogICAgICAgIChzZXRxIHBvcyBlbmQpKSkKICAgIHN0cikpCgooZGVmdW4gY29uc3Vs
dC0tZm9ybWF0LWRpcmVjdG9yeS1wcm9tcHQgKHByb21wdCBkaXIpCiAgIkZvcm1hdCBQUk9NUFQs
IGV4cGFuZCBkaXJlY3RvcnkgRElSIGFuZCByZXR1cm4gdGhlbSBhcyBhIHBhaXIuIgogIChzYXZl
LW1hdGNoLWRhdGEKICAgIChsZXQgKChlZGlyIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IChleHBh
bmQtZmlsZS1uYW1lIGRpcikpKQogICAgICAgICAgKGRkaXIgKGZpbGUtbmFtZS1hcy1kaXJlY3Rv
cnkgKGV4cGFuZC1maWxlLW5hbWUgZGVmYXVsdC1kaXJlY3RvcnkpKSkpCiAgICAgIChjb25zCiAg
ICAgICAoaWYgKHN0cmluZz0gZGRpciBlZGlyKQogICAgICAgICAgIChjb25jYXQgcHJvbXB0ICI6
ICIpCiAgICAgICAgIChsZXQgKChhZGlyIChhYmJyZXZpYXRlLWZpbGUtbmFtZSBlZGlyKSkpCiAg
ICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggIi9cXChbXi9dK1xcKS9cXChbXi9dK1xcKS8kIiBh
ZGlyKQogICAgICAgICAgICAgICAoZm9ybWF0ICIlcyBpbiDigKYvJXMvJXMvOiAiIHByb21wdAog
ICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSBhZGlyKSAobWF0Y2gtc3RyaW5n
IDIgYWRpcikpCiAgICAgICAgICAgICAoZm9ybWF0ICIlcyBpbiAlczogIiBwcm9tcHQgYWRpcikp
KSkKICAgICAgIGVkaXIpKSkpCgooZGVmdW4gY29uc3VsdC0tZGlyZWN0b3J5LXByb21wdCAocHJv
bXB0IGRpcikKICAiUmV0dXJuIHByb21wdCBhbmQgZGlyZWN0b3J5LgoKUFJPTVBUIGlzIHRoZSBw
cm9tcHQgcHJlZml4LiBUaGUgZGlyZWN0b3J5CmlzIGFwcGVuZGVkIHRvIHRoZSBwcm9tcHQgcHJl
Zml4LiBGb3IgcHJvamVjdHMKb25seSB0aGUgcHJvamVjdCBuYW1lIGlzIHNob3duLiBUaGUgYGRl
ZmF1bHQtZGlyZWN0b3J5JwppcyBub3Qgc2hvd24uIE90aGVyIGRpcmVjdG9yaWVzIGFyZSBhYmJy
ZXZpYXRlZCBhbmQKb25seSB0aGUgbGFzdCB0d28gcGF0aCBjb21wb25lbnRzIGFyZSBzaG93bi4K
CklmIERJUiBpcyBhIHN0cmluZywgaXQgaXMgcmV0dXJuZWQuCklmIERJUiBpcyBhIHRydWUgdmFs
dWUsIHRoZSB1c2VyIGlzIGFza2VkLgpUaGVuIHRoZSBgY29uc3VsdC1wcm9qZWN0LXJvb3QtZnVu
Y3Rpb24nIGlzIHRyaWVkLgpPdGhlcndpc2UgdGhlIGBkZWZhdWx0LWRpcmVjdG9yeScgaXMgcmV0
dXJuZWQuIgogIChjb25kCiAgICgoc3RyaW5ncCBkaXIpIChjb25zdWx0LS1mb3JtYXQtZGlyZWN0
b3J5LXByb21wdCBwcm9tcHQgZGlyKSkKICAgKGRpciAoY29uc3VsdC0tZm9ybWF0LWRpcmVjdG9y
eS1wcm9tcHQgcHJvbXB0IChyZWFkLWRpcmVjdG9yeS1uYW1lICJEaXJlY3Rvcnk6ICIgbmlsIG5p
bCB0KSkpCiAgICgod2hlbi1sZXQgKHJvb3QgKGFuZCBjb25zdWx0LXByb2plY3Qtcm9vdC1mdW5j
dGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgY29uc3VsdC1wcm9qZWN0LXJv
b3QtZnVuY3Rpb24pKSkKICAgICAgKHNhdmUtbWF0Y2gtZGF0YQogICAgICAgIChpZiAoc3RyaW5n
LW1hdGNoICIvXFwoW14vXStcXCkvJCIgcm9vdCkKICAgICAgICAgICAgKGNvbnMgKGZvcm1hdCAi
JXMgaW4gcHJvamVjdCAlczogIiBwcm9tcHQgKG1hdGNoLXN0cmluZyAxIHJvb3QpKSByb290KQog
ICAgICAgICAgKGNvbnN1bHQtLWZvcm1hdC1kaXJlY3RvcnktcHJvbXB0IHByb21wdCByb290KSkp
KSkKICAgKHQgKGNvbnN1bHQtLWZvcm1hdC1kaXJlY3RvcnktcHJvbXB0IHByb21wdCBkZWZhdWx0
LWRpcmVjdG9yeSkpKSkKCihkZWZzdWJzdCBjb25zdWx0LS1zdHJpcC1hbnNpLWVzY2FwZSAoc3Ry
KQogICJTdHJpcCBBTlNJIGVzY2FwZSBzZXF1ZW5jZXMgZnJvbSBTVFIuIgogIChyZXBsYWNlLXJl
Z2V4cC1pbi1zdHJpbmcgIlxlXFxbWzAtOTtdKlttS10iICIiIHN0cikpCgooZGVmc3Vic3QgY29u
c3VsdC0tZm9ybWF0LWxvY2F0aW9uIChmaWxlIGxpbmUpCiAgIkZvcm1hdCBsb2NhdGlvbiBzdHJp
bmcgJ0ZJTEU6TElORTonLiIKICAoY29uY2F0CiAgIChwcm9wZXJ0aXplIGZpbGUgJ2ZhY2UgJ2Nv
bnN1bHQtZmlsZSkgIjoiCiAgIChwcm9wZXJ0aXplIChudW1iZXItdG8tc3RyaW5nIGxpbmUpICdm
YWNlICdjb25zdWx0LWxpbmUtbnVtYmVyKSAiOiIpKQoKKGRlZnVuIGNvbnN1bHQtLWxpbmUtcG9z
aXRpb24gKGxpbmUpCiAgIkNvbXB1dGUgY2hhcmFjdGVyIHBvc2l0aW9uIGZyb20gTElORSBudW1i
ZXIuIgogIChzYXZlLWV4Y3Vyc2lvbgogICAgKHNhdmUtcmVzdHJpY3Rpb24KICAgICAgKHdoZW4g
Y29uc3VsdC1saW5lLW51bWJlcnMtd2lkZW4KICAgICAgICAod2lkZW4pKQogICAgICAoZ290by1j
aGFyIChwb2ludC1taW4pKQogICAgICAoZm9yd2FyZC1saW5lICgtIGxpbmUgMSkpCiAgICAgIChw
b2ludCkpKSkKCihkZWZtYWNybyBjb25zdWx0LS1vdmVybGF5IChiZWcgZW5kICZyZXN0IHByb3Bz
KQogICJNYWtlIGNvbnN1bHQgb3ZlcmxheSBiZXR3ZWVuIEJFRyBhbmQgRU5EIHdpdGggUFJPUFMu
IgogIChsZXQgKChvdiAobWFrZS1zeW1ib2wgIm92IikpCiAgICAgICAgKHB1dHMpKQogICAgKHdo
aWxlIHByb3BzCiAgICAgIChwdXNoIGAob3ZlcmxheS1wdXQgLG92ICwoY2FyIHByb3BzKSAsKGNh
ZHIgcHJvcHMpKSBwdXRzKQogICAgICAoc2V0cSBwcm9wcyAoY2RkciBwcm9wcykpKQogICAgYChs
ZXQgKCgsb3YgKG1ha2Utb3ZlcmxheSAsYmVnICxlbmQpKSkKICAgICAgICxAcHV0cwogICAgICAg
LG92KSkpCgooZGVmdW4gY29uc3VsdC0tcmVtb3ZlLWR1cHMgKGxpc3QgJm9wdGlvbmFsIGtleSkK
ICAiUmVtb3ZlIGR1cGxpY2F0ZSBzdHJpbmdzIGZyb20gTElTVC4gS2VlcCBmaXJzdCBvY2N1cnJl
bmNlIG9mIGEga2V5LgoKS0VZIGlzIHRoZSBrZXkgZnVuY3Rpb24uIgogIChsZXQgKChodCAobWFr
ZS1oYXNoLXRhYmxlIDp0ZXN0ICMnZXF1YWwgOnNpemUgKGxlbmd0aCBsaXN0KSkpCiAgICAgICAg
KGFjY3VtKQogICAgICAgIChrZXkgKG9yIGtleSAjJ2lkZW50aXR5KSkpCiAgICAoZG9saXN0IChl
bnRyeSBsaXN0IChucmV2ZXJzZSBhY2N1bSkpCiAgICAgIChsZXQgKChrIChmdW5jYWxsIGtleSBl
bnRyeSkpKQogICAgICAgICh1bmxlc3MgKGdldGhhc2ggayBodCkKICAgICAgICAgIChwdXRoYXNo
IGsgdCBodCkKICAgICAgICAgIChwdXNoIGVudHJ5IGFjY3VtKSkpKSkpCgooZGVmc3Vic3QgY29u
c3VsdC0taW4tcmFuZ2UtcCAocG9zKQogICJSZXR1cm4gdCBpZiBwb3NpdGlvbiBQT1MgbGllcyBp
biByYW5nZSBgcG9pbnQtbWluJyB0byBgcG9pbnQtbWF4Jy4iCiAgKDw9IChwb2ludC1taW4pIHBv
cyAocG9pbnQtbWF4KSkpCgooZGVmdW4gY29uc3VsdC0tZ2V0LWFubm90YXRpb24gKGNhbmQpCiAg
IlJldHVybiAnY29uc3VsdC0tYW5ub3RhdGlvbiBwcm9wZXJ0eSBmcm9tIENBTkQuIgogIChnZXQt
dGV4dC1wcm9wZXJ0eSAwICdjb25zdWx0LS1hbm5vdGF0aW9uIGNhbmQpKQoKKGRlZnVuIGNvbnN1
bHQtLWxvb2t1cC1lbGVtIChfIGNhbmRpZGF0ZXMgY2FuZCkKICAiTG9va3VwIENBTkQgaW4gQ0FO
RElEQVRFUyBhbGlzdCwgcmV0dXJuIGVsZW1lbnQuIgogIChhc3NvYyBjYW5kIGNhbmRpZGF0ZXMp
KQoKKGRlZnVuIGNvbnN1bHQtLWxvb2t1cC1jZHIgKF8gY2FuZGlkYXRlcyBjYW5kKQogICJMb29r
dXAgQ0FORCBpbiBDQU5ESURBVEVTIGFsaXN0LCByZXR1cm4gY2RyIG9mIGVsZW1lbnQuIgogIChj
ZHIgKGFzc29jIGNhbmQgY2FuZGlkYXRlcykpKQoKKGRlZnVuIGNvbnN1bHQtLWxvb2t1cC1jYWRy
IChfIGNhbmRpZGF0ZXMgY2FuZCkKICAiTG9va3VwIENBTkQgaW4gQ0FORElEQVRFUyBhbGlzdCwg
cmV0dXJuIGNhZHIgb2YgZWxlbWVudC4iCiAgKGNhZHIgKGFzc29jIGNhbmQgY2FuZGlkYXRlcykp
KQoKKGRlZnVuIGNvbnN1bHQtLWxvb2t1cC1sb2NhdGlvbiAoXyBjYW5kaWRhdGVzIGNhbmQpCiAg
Ikxvb2t1cCBDQU5EIGluIENBTkRJREFURVMgbGlzdCBvZiAnY29uc3VsdC1sb2NhdGlvbiBjYXRl
Z29yeSwgcmV0dXJuIHRoZSBtYXJrZXIuIgogICh3aGVuLWxldCAoZm91bmQgKG1lbWJlciBjYW5k
IGNhbmRpZGF0ZXMpKQogICAgKGNhciAoZ2V0LXRleHQtcHJvcGVydHkgMCAnY29uc3VsdC1sb2Nh
dGlvbiAoY2FyIGZvdW5kKSkpKSkKCihkZWZ1biBjb25zdWx0LS1mb3JiaWQtbWluaWJ1ZmZlciAo
KQogICJSYWlzZSBhbiBlcnJvciBpZiBleGVjdXRlZCBmcm9tIHRoZSBtaW5pYnVmZmVyLiIKICAo
d2hlbiAobWluaWJ1ZmZlcnApCiAgICAodXNlci1lcnJvciAiYCVzJyBjYWxsZWQgaW5zaWRlIHRo
ZSBtaW5pYnVmZmVyIiB0aGlzLWNvbW1hbmQpKSkKCihkZWZ1biBjb25zdWx0LS1yZXF1aXJlLW1p
bmlidWZmZXIgKCkKICAiUmFpc2UgYW4gZXJyb3IgaWYgZXhlY3V0ZWQgb3V0c2lkZSB0aGUgbWlu
aWJ1ZmZlci4iCiAgKHVubGVzcyAobWluaWJ1ZmZlcnApCiAgICAodXNlci1lcnJvciAiYCVzJyBt
dXN0IGJlIGNhbGxlZCBpbnNpZGUgdGhlIG1pbmlidWZmZXIiIHRoaXMtY29tbWFuZCkpKQoKKGRl
ZnVuIGNvbnN1bHQtLWZvbnRpZnktYWxsICgpCiAgIkVuc3VyZSB0aGF0IHRoZSB3aG9sZSBidWZm
ZXIgaXMgZm9udGlmaWVkLiIKICA7OyBGb250LWxvY2tpbmcgaXMgbGF6eSwgaS5lLiwgaWYgYSBs
aW5lIGhhcyBub3QgYmVlbiBsb29rZWQgYXQgeWV0LCB0aGUgbGluZQogIDs7IGlzIG5vdCBmb250
LWxvY2tlZC4gV2Ugd291bGQgb2JzZXJ2ZSB0aGlzIGlmIGNvbnN1bHRpbmcgYW4gdW5mb250aWZp
ZWQKICA7OyBsaW5lLiBUaGVyZWZvcmUgd2UgaGF2ZSB0byBlbmZvcmNlIGZvbnQtbG9ja2luZyBu
b3csIHdoaWNoIGlzIHNsb3cuIEluCiAgOzsgb3JkZXIgdG8gcHJldmVudCBpcyBoYW5nLXVwIHdl
IGNoZWNrIHRoZSBidWZmZXIgc2l6ZSBhZ2FpbnN0CiAgOzsgYGNvbnN1bHQtZm9udGlmeS1tYXgt
c2l6ZScuCiAgKHdoZW4gKGFuZCBqaXQtbG9jay1tb2RlICg8IChidWZmZXItc2l6ZSkgY29uc3Vs
dC1mb250aWZ5LW1heC1zaXplKSkKICAgIChqaXQtbG9jay1mb250aWZ5LW5vdykpKQoKKGRlZnN1
YnN0IGNvbnN1bHQtLWZvbnRpZnktcmVnaW9uIChzdGFydCBlbmQpCiAgIkVuc3VyZSB0aGF0IHJl
Z2lvbiBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQgaXMgZm9udGlmaWVkLiIKICAod2hlbiBqaXQtbG9j
ay1tb2RlCiAgICAoaml0LWxvY2stZm9udGlmeS1ub3cgc3RhcnQgZW5kKSkpCgooZGVmdW4gY29u
c3VsdC0tZGVmaW5lLWtleSAobWFwIGtleSBjbWQgZGVzYykKICAiQmluZCBDTUQgdG8gS0VZIGlu
IE1BUCBhbmQgYWRkIHdoaWNoLWtleSBkZXNjcmlwdGlvbiBERVNDLiIKICAoZGVmaW5lLWtleSBt
YXAga2V5IGNtZCkKICA7OyBUaGUgd2hpY2gta2V5IGRlc2NyaXB0aW9uIGlzIHBvdGVudGlhbGx5
IGZyYWdpbGUgaWYgc29tZXRoaW5nIGlzIGNoYW5nZWQgb24gdGhlIHNpZGUKICA7OyBvZiB3aGlj
aC1rZXkuIEtlZXAgYW4gZXllIG9uIHRoYXQuIEFuIGFsdGVybmF0aXZlIG1vcmUgc3RhbmRhcmQt
Y29tcGxpYW50IG1ldGhvZAogIDs7IHdvdWxkIGJlIHRvIHVzZSBgbWVudS1pdGVtJywgYnV0IHRo
aXMgaXMgdW5mb3J0dW5hdGVseSBub3QgeWV0IHN1cHBvcnRlZCBieSB3aGljaC1rZXkKICA7OyBh
bmQgYGRlc2NyaWJlLWJ1ZmZlci1iaW5kaW5ncycuCiAgOzsgU2VlIGh0dHBzOi8vZ2l0aHViLmNv
bS9qdXN0YnVyL2VtYWNzLXdoaWNoLWtleS9pc3N1ZXMvMTc3CiAgKGxldCAoKGlkeCAoLSAobGVu
Z3RoIGtleSkgMSkpKQogICAgKGRlZmluZS1rZXkgbWFwICh2Y29uY2F0IChzZXEtdGFrZSBrZXkg
aWR4KSAodmVjdG9yICd3aGljaC1rZXkgKGVsdCBrZXkgaWR4KSkpCiAgICAgIGAod2hpY2gta2V5
ICgsKGNvcHktc2VxdWVuY2UgZGVzYykpKSkpKQoKKGRlZm1hY3JvIGNvbnN1bHQtLXdpdGgtaW5j
cmVhc2VkLWdjICgmcmVzdCBib2R5KQogICJUZW1wb3JhcmlseSBpbmNyZWFzZSB0aGUgZ2MgbGlt
aXQgaW4gQk9EWSB0byBvcHRpbWl6ZSBmb3IgdGhyb3VnaHB1dC4iCiAgYChsZXQqICgob3Zlcndy
aXRlICg+IGNvbnN1bHQtLWdjLXRocmVzaG9sZCBnYy1jb25zLXRocmVzaG9sZCkpCiAgICAgICAg
ICAoZ2MtY29ucy10aHJlc2hvbGQgKGlmIG92ZXJ3cml0ZSBjb25zdWx0LS1nYy10aHJlc2hvbGQg
Z2MtY29ucy10aHJlc2hvbGQpKQogICAgICAgICAgKGdjLWNvbnMtcGVyY2VudGFnZSAoaWYgb3Zl
cndyaXRlIGNvbnN1bHQtLWdjLXBlcmNlbnRhZ2UgZ2MtY29ucy1wZXJjZW50YWdlKSkpCiAgICAg
LEBib2R5KSkKCihkZWZ1biBjb25zdWx0LS1jb3VudC1saW5lcyAocG9zKQogICJNb3ZlIHRvIHBv
c2l0aW9uIFBPUyBhbmQgcmV0dXJuIG51bWJlciBvZiBsaW5lcy4iCiAgKGxldCAoKGxpbmUgMCkp
CiAgICAod2hpbGUgKDwgKHBvaW50KSBwb3MpCiAgICAgIChmb3J3YXJkLWxpbmUpCiAgICAgICh3
aGVuICg8PSAocG9pbnQpIHBvcykKICAgICAgICAoc2V0cSBsaW5lICgxKyBsaW5lKSkpKQogICAg
KGdvdG8tY2hhciBwb3MpCiAgICBsaW5lKSkKCjs7IFdlIG11c3QgZGlzYW1iaWd1YXRlIHRoZSBs
aW5lcyBieSBhZGRpbmcgYSBwcmVmaXggc3VjaCB0aGF0IHR3byBsaW5lcyB3aXRoCjs7IHRoZSBz
YW1lIHRleHQgY2FuIGJlIGRpc3Rpbmd1aXNoZWQuIEluIG9yZGVyIHRvIGF2b2lkIG1hdGNoaW5n
IHRoZSBsaW5lCjs7IG51bWJlciwgc3VjaCB0aGF0IHRoZSB1c2VyIGNhbiBzZWFyY2ggZm9yIG51
bWJlcnMgd2l0aCBgY29uc3VsdC1saW5lJywgd2UKOzsgZW5jb2RlIHRoZSBsaW5lIG51bWJlciBh
cyB1bmljb2RlIGNoYXJhY3RlcnMgaW4gdGhlIHN1cHBsZW1lbnRhcnkgcHJpdmF0ZSB1c2UKOzsg
cGxhbmUgYi4gQnkgZG9pbmcgdGhhdCwgaXQgaXMgdW5saWtlbHkgdGhhdCBhY2NpZGVudGlhbCBt
YXRjaGluZyBvY2N1cnMuCihkZWZzdWJzdCBjb25zdWx0LS1lbmNvZGUtbG9jYXRpb24gKG1hcmtl
cikKICAiR2VuZXJhdGUgdW5pcXVlIHN0cmluZyBmb3IgTUFSS0VSLgpESVNQTEFZIGlzIHRoZSBz
dHJpbmcgdG8gZGlzcGxheSBpbnN0ZWFkIG9mIHRoZSB1bmlxdWUgc3RyaW5nLiIKICAobGV0ICgo
c3RyICIiKSAobiBtYXJrZXIpKQogICAgKHdoaWxlIChwcm9nbgogICAgICAgICAgICAgKHNldHEg
c3RyIChjb25jYXQgc3RyIChjaGFyLXRvLXN0cmluZyAoKyBjb25zdWx0LS10b2Z1LWNoYXIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCUgbiBj
b25zdWx0LS10b2Z1LXJhbmdlKSkpKSkKICAgICAgICAgICAgIChhbmQgKD49IG4gY29uc3VsdC0t
dG9mdS1yYW5nZSkgKHNldHEgbiAoLyBuIGNvbnN1bHQtLXRvZnUtcmFuZ2UpKSkpKQogICAgc3Ry
KSkKCihkZWZzdWJzdCBjb25zdWx0LS1saW5lLW51bWJlci1wcmVmaXggKG1hcmtlciBsaW5lIHdp
ZHRoKQogICJGb3JtYXQgTElORSBudW1iZXIgcHJlZml4IG51bWJlciB3aXRoIHBhZGRpbmcuCgpN
QVJLRVIgYW5kIExJTkUgYXJlIGFkZGVkIGFzICdjb25zdWx0LWxvY2F0aW9uIHRleHQgcHJvcGVy
dHkuCldJRFRIIGlzIHRoZSBsaW5lIG51bWJlciB3aWR0aC4iCiAgKGxldCogKCh1bmlxdWUtc3Ry
IChjb25zdWx0LS1lbmNvZGUtbG9jYXRpb24gbWFya2VyKSkKICAgICAgICAgKGxpbmUtc3RyIChu
dW1iZXItdG8tc3RyaW5nIGxpbmUpKQogICAgICAgICAocHJlZml4LXN0ciAoY29uY2F0CiAgICAg
ICAgICAgICAgICAgICAgICAobWFrZS1zdHJpbmcgKC0gd2lkdGggKGxlbmd0aCBsaW5lLXN0cikp
IDMyKQogICAgICAgICAgICAgICAgICAgICAgbGluZS1zdHIKICAgICAgICAgICAgICAgICAgICAg
ICIgIikpKQogICAgKHB1dC10ZXh0LXByb3BlcnR5IDAgKGxlbmd0aCBwcmVmaXgtc3RyKSAnZmFj
ZSAnY29uc3VsdC1saW5lLW51bWJlci1wcmVmaXggcHJlZml4LXN0cikKICAgIChhZGQtdGV4dC1w
cm9wZXJ0aWVzIDAgKGxlbmd0aCB1bmlxdWUtc3RyKQogICAgICAgICAgICAgICAgICAgICAgICAg
YChkaXNwbGF5ICxwcmVmaXgtc3RyIGNvbnN1bHQtbG9jYXRpb24gKCxtYXJrZXIgLiAsbGluZSkp
CiAgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWUtc3RyKQogICAgdW5pcXVlLXN0cikpCgoo
ZGVmdW4gY29uc3VsdC0tYWRkLWxpbmUtbnVtYmVyIChtYXgtbGluZSBjYW5kaWRhdGVzKQogICJB
ZGQgbGluZSBudW1iZXJzIHRvIHVuZm9ybWF0dGVkIENBTkRJREFURVMgYXMgcHJlZml4LgpUaGUg
TUFYLUxJTkUgaXMgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgd2lkdGguClNpbmNlIHRoZSBsaW5l
IG51bWJlciBpcyBwYXJ0IG9mIHRoZSBjYW5kaWRhdGUgaXQgd2lsbCBiZSBtYXRjaGVkLW9uIGR1
cmluZyBjb21wbGV0aW9uLiIKICAobGV0ICgod2lkdGggKGxlbmd0aCAobnVtYmVyLXRvLXN0cmlu
ZyBtYXgtbGluZSkpKSkKICAgIChtYXBjYXIgKHBjYXNlLWxhbWJkYSAoYCgsbWFya2VyICxsaW5l
ICxzdHIpKQogICAgICAgICAgICAgIChjb25jYXQKICAgICAgICAgICAgICAgKGNvbnN1bHQtLWxp
bmUtbnVtYmVyLXByZWZpeCBtYXJrZXIgbGluZSB3aWR0aCkKICAgICAgICAgICAgICAgc3RyKSkK
ICAgICAgICAgICAgY2FuZGlkYXRlcykpKQoKKGRlZnN1YnN0IGNvbnN1bHQtLXJlZ2lvbi13aXRo
LWN1cnNvciAoYmVnaW4gZW5kIG1hcmtlcikKICAiUmV0dXJuIHJlZ2lvbiBzdHJpbmcgd2l0aCBh
IG1hcmtpbmcgYXQgdGhlIGN1cnNvciBwb3NpdGlvbi4KCkJFR0lOIGlzIHRoZSBiZWdpbiBwb3Np
dGlvbi4KRU5EIGlzIHRoZSBlbmQgcG9zaXRpb24uCk1BUktFUiBpcyB0aGUgY3Vyc29yIHBvc2l0
aW9uLiIKICAobGV0ICgoc3RyIChidWZmZXItc3Vic3RyaW5nIGJlZ2luIGVuZCkpKQogICAgKGlm
ICg+PSBtYXJrZXIgZW5kKQogICAgICAgIChjb25jYXQgc3RyIChwcm9wZXJ0aXplICIgIiAnZmFj
ZSAnY29uc3VsdC1wcmV2aWV3LWN1cnNvcikpCiAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAoLSBt
YXJrZXIgYmVnaW4pICgtICgxKyBtYXJrZXIpIGJlZ2luKQogICAgICAgICAgICAgICAgICAgICAg
ICAgJ2ZhY2UgJ2NvbnN1bHQtcHJldmlldy1jdXJzb3Igc3RyKQogICAgICBzdHIpKSkKCihkZWZz
dWJzdCBjb25zdWx0LS1saW5lLXdpdGgtY3Vyc29yIChtYXJrZXIpCiAgIlJldHVybiBjdXJyZW50
IGxpbmUgd2hlcmUgdGhlIGN1cnNvciBNQVJLRVIgaXMgaGlnaGxpZ2h0ZWQuIgogIChjb25zdWx0
LS1yZWdpb24td2l0aC1jdXJzb3IKICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKQogICAobGlu
ZS1lbmQtcG9zaXRpb24pCiAgIG1hcmtlcikpCgooZGVmdW4gY29uc3VsdC0tbWVyZ2UtY29uZmln
IChhcmdzKQogICJNZXJnZSBgY29uc3VsdC1jb25maWcnIHBsaXN0cyBpbnRvIHRoZSBrZXl3b3Jk
IGFyZ3VtZW50cyBvZiBBUkdTLiIKICAoaWYtbGV0IChjb25maWcgKGFsaXN0LWdldCB0aGlzLWNv
bW1hbmQgY29uc3VsdC1jb25maWcpKQogICAgICAoYXBwZW5kIChzZXEtdGFrZS13aGlsZSAobGFt
YmRhICh4KSAobm90IChrZXl3b3JkcCB4KSkpIGFyZ3MpIGNvbmZpZwogICAgICAgICAgICAgIChz
ZXEtY29weSAoc2VxLWRyb3Atd2hpbGUgKGxhbWJkYSAoeCkgKG5vdCAoa2V5d29yZHAgeCkpKSBh
cmdzKSkpCiAgICBhcmdzKSkKCjs7OzsgUHJldmlldyBzdXBwb3J0CgooZGVmdW4gY29uc3VsdC0t
a2lsbC1jbGVhbi1idWZmZXIgKGJ1ZikKICAiS2lsbCBCVUYgaWYgaXQgaGFzIG5vdCBiZWVuIG1v
ZGlmaWVkLiIKICAodW5sZXNzIChvciAoZXEgYnVmIChjdXJyZW50LWJ1ZmZlcikpIChidWZmZXIt
bW9kaWZpZWQtcCBidWYpKQogICAgKGtpbGwtYnVmZmVyIGJ1ZikpKQoKKGRlZnVuIGNvbnN1bHQt
LWZpbGUtcHJldmlldy1zZXR1cCAoKQogICJSZXR1cm4gYSBmdW5jdGlvbiB0byBvcGVuIGZpbGVz
IHRlbXBvcmFyaWx5LiIKICAobGV0KiAoKG5ldy1idWZmZXJzKQogICAgICAgICAocmVjZW50Zi1z
aG91bGQtcmVzdG9yZSByZWNlbnRmLW1vZGUpCiAgICAgICAgIChyZWNlbnRmLXNhdmVkLWxpc3Qg
KHdoZW4gcmVjZW50Zi1zaG91bGQtcmVzdG9yZSAoY29weS1zZXF1ZW5jZSByZWNlbnRmLWxpc3Qp
KSkpCiAgICAobGFtYmRhICgmb3B0aW9uYWwgbmFtZSkKICAgICAgKGlmIChub3QgbmFtZSkKICAg
ICAgICAgICh3aGVuIHJlY2VudGYtc2hvdWxkLXJlc3RvcmUKICAgICAgICAgICAgKHNldHEgcmVj
ZW50Zi1saXN0IHJlY2VudGYtc2F2ZWQtbGlzdCkKICAgICAgICAgICAgKHdoZW4gKG1lbWJlciAo
Y3VycmVudC1idWZmZXIpIG5ldy1idWZmZXJzKQogICAgICAgICAgICAgIChyZWNlbnRmLWFkZC1m
aWxlIChidWZmZXItZmlsZS1uYW1lIChjdXJyZW50LWJ1ZmZlcikpKSkpCiAgICAgICAgKG9yIChn
ZXQtZmlsZS1idWZmZXIgbmFtZSkKICAgICAgICAgICAgKHdoZW4tbGV0IChhdHRycyAoZmlsZS1h
dHRyaWJ1dGVzIG5hbWUpKQogICAgICAgICAgICAgIChpZiAoPiAoZmlsZS1hdHRyaWJ1dGUtc2l6
ZSBhdHRycykgY29uc3VsdC1wcmV2aWV3LW1heC1zaXplKQogICAgICAgICAgICAgICAgICAoYW5k
IChtaW5pYnVmZmVyLW1lc3NhZ2UgIkZpbGUgYCVzJyB0b28gbGFyZ2UgZm9yIHByZXZpZXciIG5h
bWUpIG5pbCkKICAgICAgICAgICAgICAgIChsZXQgKChidWYgKGZpbmQtZmlsZS1ub3NlbGVjdCBu
YW1lICdub3dhcm4pKSkKICAgICAgICAgICAgICAgICAgKHB1c2ggYnVmIG5ldy1idWZmZXJzKQog
ICAgICAgICAgICAgICAgICA7OyBPbmx5IGtlZXAgYSBmZXcgYnVmZmVycyBhbGl2ZQogICAgICAg
ICAgICAgICAgICAod2hpbGUgKD4gKGxlbmd0aCBuZXctYnVmZmVycykgY29uc3VsdC1wcmV2aWV3
LW1heC1jb3VudCkKICAgICAgICAgICAgICAgICAgICAoY29uc3VsdC0ta2lsbC1jbGVhbi1idWZm
ZXIgKGNhciAobGFzdCBuZXctYnVmZmVycykpKQogICAgICAgICAgICAgICAgICAgIChzZXRxIG5l
dy1idWZmZXJzIChuYnV0bGFzdCBuZXctYnVmZmVycykpKQogICAgICAgICAgICAgICAgICBidWYp
KSkpKSkpKQoKKGRlZm1hY3JvIGNvbnN1bHQtLXdpdGgtZmlsZS1wcmV2aWV3IChhcmdzICZyZXN0
IGJvZHkpCiAgIlByb3ZpZGUgYSBmdW5jdGlvbiB0byBvcGVuIGZpbGVzIHRlbXBvcmFyaWx5LgpU
aGUgZmlsZXMgYXJlIGNsb3NlZCBhdXRvbWF0aWNhbGx5IGluIHRoZSBlbmQuCgpBUkdTIGlzIHRo
ZSBvcGVuIGZ1bmN0aW9uIGFyZ3VtZW50IGZvciBCT0RZLiIKICAoZGVjbGFyZSAoaW5kZW50IDEp
KQogIGAobGV0ICgoLEBhcmdzIChjb25zdWx0LS1maWxlLXByZXZpZXctc2V0dXApKSkKICAgICAo
dW53aW5kLXByb3RlY3QKICAgICAgICAgLChtYWNyb2V4cC1wcm9nbiBib2R5KQogICAgICAgKGZ1
bmNhbGwgLEBhcmdzKSkpKQoKOzsgRGVyaXZlZCBmcm9tIGN0cmxmLCBvcmlnaW5hbGx5IGlzZWFy
Y2gKKGRlZnVuIGNvbnN1bHQtLWludmlzaWJsZS1zaG93ICgmb3B0aW9uYWwgcGVybWFuZW50bHkp
CiAgIkRpc2FibGUgYW55IG92ZXJsYXlzIHRoYXQgYXJlIGN1cnJlbnRseSBoaWRpbmcgcG9pbnQu
ClBFUk1BTkVOVExZIG5vbi1uaWwgbWVhbnMgdGhlIG92ZXJsYXlzIHdpbGwgbm90IGJlIHJlc3Rv
cmVkIGxhdGVyLiIKICAobGV0ICgob3BlbmVkKSkKICAgIChkb2xpc3QgKG92IChvdmVybGF5cy1p
biAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpIG9wZW5lZCkK
ICAgICAgKHdoZW4gKGFuZCAoaW52aXNpYmxlLXAgKG92ZXJsYXktZ2V0IG92ICdpbnZpc2libGUp
KQogICAgICAgICAgICAgICAgIChvdmVybGF5LWdldCBvdiAnaXNlYXJjaC1vcGVuLWludmlzaWJs
ZSkpCiAgICAgICAgKGlmIHBlcm1hbmVudGx5CiAgICAgICAgICAgIChmdW5jYWxsIChvdmVybGF5
LWdldCBvdiAnaXNlYXJjaC1vcGVuLWludmlzaWJsZSkgb3YpCiAgICAgICAgICAocHVzaCAoY29u
cyBvdiAob3ZlcmxheS1nZXQgb3YgJ2ludmlzaWJsZSkpIG9wZW5lZCkKICAgICAgICAgIChpZi1s
ZXQgKGZ1bmMgKG92ZXJsYXktZ2V0IG92ICdpc2VhcmNoLW9wZW4taW52aXNpYmxlLXRlbXBvcmFy
eSkpCiAgICAgICAgICAgICAgKGZ1bmNhbGwgZnVuYyBuaWwpCiAgICAgICAgICAgIChvdmVybGF5
LXB1dCBvdiAnaW52aXNpYmxlIG5pbCkpKSkpKSkKCjs7IERlcml2ZWQgZnJvbSBjdHJsZiwgb3Jp
Z2luYWxseSBpc2VhcmNoCihkZWZ1biBjb25zdWx0LS1pbnZpc2libGUtcmVzdG9yZSAob3Zlcmxh
eXMpCiAgIlJlc3RvcmUgYW55IG9wZW5lZCBPVkVSTEFZUyB0aGF0IHdlcmUgcHJldmlvdXNseSBk
aXNhYmxlZC4iCiAgKGRvbGlzdCAob3Ygb3ZlcmxheXMpCiAgICAoaWYtbGV0IChmdW5jIChvdmVy
bGF5LWdldCAoY2FyIG92KSAnaXNlYXJjaC1vcGVuLWludmlzaWJsZS10ZW1wb3JhcnkpKQogICAg
ICAgIChmdW5jYWxsIGZ1bmMgdCkKICAgICAgKG92ZXJsYXktcHV0IChjYXIgb3YpICdpbnZpc2li
bGUgKGNkciBvdikpKSkpCgooZGVmdW4gY29uc3VsdC0tanVtcC0xIChwb3MpCiAgIkdvIHRvIFBP
UyBhbmQgcmVjZW50ZXIuIgogIChjb25kCiAgICgoYW5kIChtYXJrZXJwIHBvcykgKG5vdCAoYnVm
ZmVyLWxpdmUtcCAobWFya2VyLWJ1ZmZlciBwb3MpKSkpCiAgICA7OyBPbmx5IHByaW50IGEgbWVz
c2FnZSwgbm8gZXJyb3IgaW4gb3JkZXIgdG8gbm90IG1lc3MKICAgIDs7IHdpdGggdGhlIG1pbmli
dWZmZXIgdXBkYXRlIGhvb2suCiAgICAobWVzc2FnZSAiQnVmZmVyIGlzIGRlYWQiKSkKICAgKHQK
ICAgIDs7IFN3aXRjaCB0byBidWZmZXIgaWYgaXQgaXMgbm90IHZpc2libGUKICAgICh3aGVuIChh
bmQgKG1hcmtlcnAgcG9zKSAobm90IChlcSAoY3VycmVudC1idWZmZXIpIChtYXJrZXItYnVmZmVy
IHBvcykpKSkKICAgICAgKHN3aXRjaC10by1idWZmZXIgKG1hcmtlci1idWZmZXIgcG9zKSkpCiAg
ICA7OyBXaWRlbiBpZiB3ZSBjYW5ub3QganVtcCB0byB0aGUgcG9zaXRpb24gKGlkZWEgZnJvbSBm
bHljaGVjay1qdW1wLXRvLWVycm9yKQogICAgKHVubGVzcyAoPSAoZ290by1jaGFyIHBvcykgKHBv
aW50KSkKICAgICAgKHdpZGVuKQogICAgICAoZ290by1jaGFyIHBvcykpCiAgICAocnVuLWhvb2tz
ICdjb25zdWx0LWFmdGVyLWp1bXAtaG9vaykpKSkKCihkZWZ1biBjb25zdWx0LS1qdW1wIChwb3Mp
CiAgIlB1c2ggY3VycmVudCBwb3NpdGlvbiB0byBtYXJrIHJpbmcsIGdvIHRvIFBPUyBhbmQgcmVj
ZW50ZXIuIgogICh3aGVuIHBvcwogICAgOzsgV2hlbiB0aGUgbWFya2VyIGlzIGluIHRoZSBzYW1l
IGJ1ZmZlciwKICAgIDs7IHJlY29yZCBwcmV2aW91cyBsb2NhdGlvbiBzdWNoIHRoYXQgdGhlIHVz
ZXIgY2FuIGp1bXAgYmFjayBxdWlja2x5LgogICAgKHVubGVzcyAoYW5kIChtYXJrZXJwIHBvcykg
KG5vdCAoZXEgKGN1cnJlbnQtYnVmZmVyKSAobWFya2VyLWJ1ZmZlciBwb3MpKSkpCiAgICAgIChw
dXNoLW1hcmsgKHBvaW50KSB0KSkKICAgIChjb25zdWx0LS1qdW1wLTEgcG9zKQogICAgKGNvbnN1
bHQtLWludmlzaWJsZS1zaG93IHQpKQogIG5pbCkKCjs7IE1hdGNoZWQgc3RyaW5ncyBhcmUgbm90
IGhpZ2hsaWdodGVkIGFzIG9mIG5vdy4KOzsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taW5hZC9j
b25zdWx0L2lzc3Vlcy83CihkZWZ1biBjb25zdWx0LS1wcmV2aWV3LXBvc2l0aW9uICgmb3B0aW9u
YWwgZmFjZSkKICAiVGhlIHByZXZpZXcgZnVuY3Rpb24gdXNlZCBpZiBzZWxlY3RpbmcgZnJvbSBh
IGxpc3Qgb2YgY2FuZGlkYXRlIHBvc2l0aW9ucy4KVGhlIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGFz
IHRoZSBgOnByZXZpZXcnIGFyZ3VtZW50IG9mIGBjb25zdWx0LS1yZWFkJy4KRkFDRSBpcyB0aGUg
Y3Vyc29yIGZhY2UuIgogIChsZXQgKChvdmVybGF5cykKICAgICAgICAoaW52aXNpYmxlKQogICAg
ICAgIChmYWNlIChvciBmYWNlICdjb25zdWx0LXByZXZpZXctY3Vyc29yKSkKICAgICAgICAoc2F2
ZWQtbWluIChwb2ludC1taW4tbWFya2VyKSkKICAgICAgICAoc2F2ZWQtbWF4IChwb2ludC1tYXgt
bWFya2VyKSkKICAgICAgICAoc2F2ZWQtcG9zIChwb2ludC1tYXJrZXIpKSkKICAgIChsYW1iZGEg
KGNhbmQgcmVzdG9yZSkKICAgICAgKGNvbnN1bHQtLWludmlzaWJsZS1yZXN0b3JlIGludmlzaWJs
ZSkKICAgICAgKG1hcGMgIydkZWxldGUtb3ZlcmxheSBvdmVybGF5cykKICAgICAgKGNvbmQKICAg
ICAgIChyZXN0b3JlCiAgICAgICAgKGlmIChub3QgKGJ1ZmZlci1saXZlLXAgKG1hcmtlci1idWZm
ZXIgc2F2ZWQtcG9zKSkpCiAgICAgICAgICAgIChtZXNzYWdlICJCdWZmZXIgaXMgZGVhZCIpCiAg
ICAgICAgICAobmFycm93LXRvLXJlZ2lvbiBzYXZlZC1taW4gc2F2ZWQtbWF4KQogICAgICAgICAg
KGdvdG8tY2hhciBzYXZlZC1wb3MpKSkKICAgICAgIDs7IEp1bXAgdG8gcG9zaXRpb24KICAgICAg
IChjYW5kCiAgICAgICAgKGNvbnN1bHQtLWp1bXAtMSBjYW5kKQogICAgICAgIChzZXRxIGludmlz
aWJsZSAoY29uc3VsdC0taW52aXNpYmxlLXNob3cpKQogICAgICAgIChsZXQgKChwb3MgKHBvaW50
KSkpCiAgICAgICAgICAoc2V0cSBvdmVybGF5cwogICAgICAgICAgICAgICAgKGxpc3QgKGNvbnN1
bHQtLW92ZXJsYXkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhY2UgJ2NvbnN1bHQtcHJldmlldy1saW5lKQogICAg
ICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLW92ZXJsYXkgcG9zICgxKyBwb3MpICdmYWNlIGZh
Y2UpKSkpKQogICAgICAgOzsgSWYgcG9zaXRpb24gY2Fubm90IGJlIHByZXZpZXdlZCwgcmV0dXJu
IHRvIHNhdmVkIHBvc2l0aW9uCiAgICAgICAodCAoY29uc3VsdC0tanVtcC0xIHNhdmVkLXBvcykp
KSkpKQoKKGRlZnVuIGNvbnN1bHQtLXdpdGgtcHJldmlldy0xIChwcmV2aWV3LWtleSBwcmV2aWV3
IHRyYW5zZm9ybSBjYW5kaWRhdGUgZnVuKQogICJBZGQgcHJldmlldyBzdXBwb3J0IGZvciBGVU4u
CgpTZWUgY29uc3VsdC0td2l0aC1wcmV2aWV3IGZvciB0aGUgYXJndW1lbnRzIFBSRVZJRVctS0VZ
LCBQUkVWSUVXLCBUUkFOU0ZPUk0gYW5kIENBTkRJREFURS4iCiAgKGxldCAoKGlucHV0ICIiKSAo
c2VsZWN0ZWQpKQogICAgKG1pbmlidWZmZXItd2l0aC1zZXR1cC1ob29rCiAgICAgICAgKGlmIChh
bmQgcHJldmlldyBwcmV2aWV3LWtleSkKICAgICAgICAgICAgKGxhbWJkYSAoKQogICAgICAgICAg
ICAgIChzZXRxIGNvbnN1bHQtLXByZXZpZXctZnVuY3Rpb24KICAgICAgICAgICAgICAgICAgICAo
bGV0ICgobGFzdC1wcmV2aWV3KSkKICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGlucCBj
YW5kKQogICAgICAgICAgICAgICAgICAgICAgICAoY2wtYXNzZXJ0ICh3aW5kb3ctbWluaWJ1ZmZl
ci1wKSkKICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoZXF1YWwgbGFzdC1wcmV2aWV3
IGNhbmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGgtc2VsZWN0ZWQtd2luZG93IChv
ciAobWluaWJ1ZmZlci1zZWxlY3RlZC13aW5kb3cpIChuZXh0LXdpbmRvdykpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoZnVuY2FsbCBwcmV2aWV3IChmdW5jYWxsIHRyYW5zZm9ybSBpbnAg
Y2FuZCkgbmlsKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBsYXN0LXByZXZpZXcg
Y2FuZCkpKSkpCiAgICAgICAgICAgICAgKGxldCAoKHBvc3QtY29tbWFuZC1zeW0gKG1ha2Utc3lt
Ym9sICJjb25zdWx0LS1wcmV2aWV3LXBvc3QtY29tbWFuZCIpKSkKICAgICAgICAgICAgICAgIChm
c2V0IHBvc3QtY29tbWFuZC1zeW0KICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCkKICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgaW5wdXQgKG1pbmlidWZmZXItY29udGVudHMtbm8t
cHJvcGVydGllcykpCiAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChvciAoZXEgcHJldmll
dy1rZXkgJ2FueSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChrZXlz
ICh0aGlzLXNpbmdsZS1jb21tYW5kLWtleXMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHNlcS1maW5kIChsYW1iZGEgKHgpIChlcXVhbCAodmNvbmNhdCB4KSBrZXlzKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAobGlzdHAg
cHJldmlldy1rZXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJldmlldy1rZXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxpc3QgcHJldmlldy1rZXkpKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICh3aGVuLWxldCAoY2FuZCAoZnVuY2FsbCBjYW5kaWRhdGUpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGZ1bmNhbGwgY29uc3VsdC0tcHJldmlldy1mdW5jdGlvbiBpbnB1dCBjYW5kKSkp
KSkKICAgICAgICAgICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhvb2sgcG9zdC1jb21t
YW5kLXN5bSBuaWwgdCkpKQogICAgICAgICAgKGxhbWJkYSAoKQogICAgICAgICAgICAobGV0ICgo
cG9zdC1jb21tYW5kLXN5bSAobWFrZS1zeW1ib2wgImNvbnN1bHQtLXByZXZpZXctcG9zdC1jb21t
YW5kIikpKQogICAgICAgICAgICAgIChmc2V0IHBvc3QtY29tbWFuZC1zeW0gKGxhbWJkYSAoKSAo
c2V0cSBpbnB1dCAobWluaWJ1ZmZlci1jb250ZW50cy1uby1wcm9wZXJ0aWVzKSkpKQogICAgICAg
ICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhvb2sgcG9zdC1jb21tYW5kLXN5bSBuaWwg
dCkpKSkKICAgICAgKHVud2luZC1wcm90ZWN0CiAgICAgICAgICAoY29ucyAoc2V0cSBzZWxlY3Rl
ZCAod2hlbi1sZXQgKHJlc3VsdCAoZnVuY2FsbCBmdW4pKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZnVuY2FsbCB0cmFuc2Zvcm0gaW5wdXQgcmVzdWx0KSkpCiAgICAgICAgICAg
ICAgICBpbnB1dCkKICAgICAgICA7OyBJZiB0aGVyZSBpcyBhIHByZXZpZXcgZnVuY3Rpb24sIGFs
d2F5cyBjYWxsIHJlc3RvcmUhCiAgICAgICAgOzsgVGhlIHByZXZpZXcgZnVuY3Rpb24gc2hvdWxk
IGJlIHNlZW4gYXMgYSBzdGF0ZWZ1bCBvYmplY3QsCiAgICAgICAgOzsgYW5kIHdlIGNhbGwgdGhl
IGRlc3RydWN0b3IgaGVyZS4KICAgICAgICAod2hlbiBwcmV2aWV3CiAgICAgICAgICAoZnVuY2Fs
bCBwcmV2aWV3IHNlbGVjdGVkIHQpKSkpKSkKCihkZWZtYWNybyBjb25zdWx0LS13aXRoLXByZXZp
ZXcgKHByZXZpZXcta2V5IHByZXZpZXcgdHJhbnNmb3JtIGNhbmRpZGF0ZSAmcmVzdCBib2R5KQog
ICJBZGQgcHJldmlldyBzdXBwb3J0IHRvIEJPRFkuCgpQUkVWSUVXIGlzIHRoZSBwcmV2aWV3IGZ1
bmN0aW9uLgpUUkFOU0ZPUk0gaXMgdGhlIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uLgpDQU5ESURB
VEUgaXMgdGhlIGZ1bmN0aW9uIHJldHVybmluZyB0aGUgY3VycmVudCBjYW5kaWRhdGUuClBSRVZJ
RVctS0VZIGFyZSB0aGUga2V5cyB3aGljaCB0cmlnZ2VycyB0aGUgcHJldmlldy4KClRoZSBwcmV2
aWV3IGZ1bmN0aW9uIHRha2VzIHR3byBhcmd1bWVudHMsIHRoZSBzZWxlY3RlZCBjYW5kaWRhdGUg
YW5kIGEgcmVzdG9yZQpmbGFnLiBJdCBpcyBjYWxsZWQgZXZlcnkgdGltZSB3aXRoIHJlc3RvcmU9
bmlsIGFmdGVyIGEgcHJldmlldy1rZXkga2V5cHJlc3MsIGFzCmxvbmcgYXMgYSBuZXcgY2FuZGlk
YXRlIGlzIHNlbGVjdGVkLiBGaW5hbGx5IHRoZSBwcmV2aWV3IGZ1bmN0aW9uIGlzIGNhbGxlZCBp
bgphbnkgY2FzZSB3aXRoIHJlc3RvcmU9dCBldmVuIGlmIG5vIHByZXZpZXcgaGFzIGFjdHVhbGx5
IHRha2VuIHBsYWNlLiBUaGUKY2FuZGlkYXRlIGFyZ3VtZW50IGNhbiBiZSBuaWwgaWYgdGhlIHNl
bGVjdGlvbiBoYXMgYmVlbiBhYm9ydGVkLiIKICAoZGVjbGFyZSAoaW5kZW50IDQpKQogIGAoY29u
c3VsdC0td2l0aC1wcmV2aWV3LTEgLHByZXZpZXcta2V5ICxwcmV2aWV3ICx0cmFuc2Zvcm0gLGNh
bmRpZGF0ZSAobGFtYmRhICgpICxAYm9keSkpKQoKOzs7OyBOYXJyb3dpbmcgc3VwcG9ydAoKKGRl
ZnVuIGNvbnN1bHQtLXdpZGVuLWtleSAoKQogICJSZXR1cm4gd2lkZW5pbmcga2V5LCBpZiBgY29u
c3VsdC13aWRlbi1rZXknIGlzIG5vdCBzZXQsIGRlZmF1bHQgdG8gJ2NvbnN1bHQtbmFycm93LWtl
eSBTUEMnLiIKICAob3IgY29uc3VsdC13aWRlbi1rZXkgKGFuZCBjb25zdWx0LW5hcnJvdy1rZXkg
KHZjb25jYXQgY29uc3VsdC1uYXJyb3cta2V5ICIgIikpKSkKCihkZWZ1biBjb25zdWx0LW5hcnJv
dyAoa2V5KQogICJOYXJyb3cgY3VycmVudCBjb21wbGV0aW9uIHdpdGggS0VZLgoKVGhpcyBjb21t
YW5kIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgbmFycm93aW5nIHN5c3RlbSBvZiBgY29uc3Vs
dC0tcmVhZCcuIgogIChpbnRlcmFjdGl2ZQogICAobGlzdCAodW5sZXNzIChlcXVhbCAodGhpcy1z
aW5nbGUtY29tbWFuZC1rZXlzKSAoY29uc3VsdC0td2lkZW4ta2V5KSkKICAgICAgICAgICBsYXN0
LWNvbW1hbmQtZXZlbnQpKSkKICAoY29uc3VsdC0tcmVxdWlyZS1taW5pYnVmZmVyKQogIChzZXRx
IGNvbnN1bHQtLW5hcnJvdyBrZXkpCiAgKHdoZW4gY29uc3VsdC0tbmFycm93LXByZWRpY2F0ZQog
ICAgKHNldHEgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXByZWRpY2F0ZSAoYW5kIGNvbnN1bHQtLW5h
cnJvdyBjb25zdWx0LS1uYXJyb3ctcHJlZGljYXRlKSkpCiAgKHdoZW4gY29uc3VsdC0tbmFycm93
LW92ZXJsYXkKICAgIChkZWxldGUtb3ZlcmxheSBjb25zdWx0LS1uYXJyb3ctb3ZlcmxheSkpCiAg
KHdoZW4gY29uc3VsdC0tbmFycm93CiAgICAoc2V0cSBjb25zdWx0LS1uYXJyb3ctb3ZlcmxheQog
ICAgICAgICAgKGNvbnN1bHQtLW92ZXJsYXkKICAgICAgICAgICAoLSAobWluaWJ1ZmZlci1wcm9t
cHQtZW5kKSAxKSAobWluaWJ1ZmZlci1wcm9tcHQtZW5kKQogICAgICAgICAgICdiZWZvcmUtc3Ry
aW5nCiAgICAgICAgICAgKHByb3BlcnRpemUgKGZvcm1hdCAiIFslc10iIChjZHIgKGFzc29jIGtl
eSBjb25zdWx0LS1uYXJyb3ctcHJlZml4ZXMpKSkKICAgICAgICAgICAgICAgICAgICAgICAnZmFj
ZSAnY29uc3VsdC1uYXJyb3ctaW5kaWNhdG9yKSkpKQogIChydW4taG9va3MgJ2NvbnN1bHQtLWNv
bXBsZXRpb24tcmVmcmVzaC1ob29rKSkKCihkZWZjb25zdCBjb25zdWx0LS1uYXJyb3ctZGVsZXRl
CiAgYChtZW51LWl0ZW0KICAgICIiIG5pbCA6ZmlsdGVyCiAgICAsKGxhbWJkYSAoJm9wdGlvbmFs
IF8pCiAgICAgICAod2hlbiAoc3RyaW5nPSAobWluaWJ1ZmZlci1jb250ZW50cy1uby1wcm9wZXJ0
aWVzKSAiIikKICAgICAgICAgKGNvbnN1bHQtbmFycm93IG5pbCkKICAgICAgICAgIydpZ25vcmUp
KSkpCgooZGVmY29uc3QgY29uc3VsdC0tbmFycm93LXNwYWNlCiAgYChtZW51LWl0ZW0KICAgICIi
IG5pbCA6ZmlsdGVyCiAgICAsKGxhbWJkYSAoJm9wdGlvbmFsIF8pCiAgICAgICAobGV0ICgoc3Ry
IChtaW5pYnVmZmVyLWNvbnRlbnRzLW5vLXByb3BlcnRpZXMpKSkKICAgICAgICAgKHdoZW4tbGV0
IChwYWlyIChvciAoYW5kICg9IDEgKGxlbmd0aCBzdHIpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFzc29jIChhcmVmIHN0ciAwKSBjb25zdWx0LS1uYXJyb3ctcHJlZml4ZXMp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKHN0cmluZz0gc3RyICIiKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFzc29jIDMyIGNvbnN1bHQtLW5hcnJvdy1w
cmVmaXhlcykpKSkKICAgICAgICAgICAoZGVsZXRlLW1pbmlidWZmZXItY29udGVudHMpCiAgICAg
ICAgICAgKGNvbnN1bHQtbmFycm93IChjYXIgcGFpcikpCiAgICAgICAgICAgIydpZ25vcmUpKSkp
KQoKKGRlZnVuIGNvbnN1bHQtbmFycm93LWhlbHAgKCkKICAiUHJpbnQgbmFycm93aW5nIGhlbHAg
YXMgYSBgbWluaWJ1ZmZlci1tZXNzYWdlJy4KClRoaXMgY29tbWFuZCBjYW4gYmUgYm91bmQgdG8g
YSBrZXkgaW4gYGNvbnN1bHQtbmFycm93LW1hcCcsCnRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciBj
b21tYW5kcyB3aXRoIG5hcnJvd2luZy4iCiAgKGludGVyYWN0aXZlKQogIChjb25zdWx0LS1yZXF1
aXJlLW1pbmlidWZmZXIpCiAgKGxldCAoKG1pbmlidWZmZXItbWVzc2FnZS10aW1lb3V0IDEwMDAw
MDApKQogICAgKG1pbmlidWZmZXItbWVzc2FnZQogICAgIChzdHJpbmctam9pbgogICAgICAobWFw
Y2FyIChsYW1iZGEgKHgpIChjb25jYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3Bl
cnRpemUgKGNoYXItdG8tc3RyaW5nIChjYXIgeCkpICdmYWNlICdjb25zdWx0LWtleSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9w
ZXJ0aXplIChjZHIgeCkgJ2ZhY2UgJ2NvbnN1bHQtaGVscCkpKQogICAgICAgICAgICAgIChzZXEt
ZmlsdGVyIChsYW1iZGEgKHgpICgvPSAoY2FyIHgpIDMyKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdWx0LS1uYXJyb3ctcHJlZml4ZXMpKQogICAgICAiICIpKSkpCgooZGVmdW4gY29u
c3VsdC0tbmFycm93LXNldHVwIChzZXR0aW5ncyBtYXApCiAgIlNldHVwIG5hcnJvd2luZyB3aXRo
IFNFVFRJTkdTIGFuZCBrZXltYXAgTUFQLiIKICAoaWYgKGZ1bmN0aW9ucCAoY2FyIHNldHRpbmdz
KSkKICAgICAgKHNldHEgY29uc3VsdC0tbmFycm93LXByZWRpY2F0ZSAoY2FyIHNldHRpbmdzKQog
ICAgICAgICAgICBjb25zdWx0LS1uYXJyb3ctcHJlZml4ZXMgKGNkciBzZXR0aW5ncykpCiAgICAo
c2V0cSBjb25zdWx0LS1uYXJyb3ctcHJlZGljYXRlIG5pbAogICAgICAgICAgY29uc3VsdC0tbmFy
cm93LXByZWZpeGVzIHNldHRpbmdzKSkKICAod2hlbiBjb25zdWx0LW5hcnJvdy1rZXkKICAgIChk
b2xpc3QgKHBhaXIgY29uc3VsdC0tbmFycm93LXByZWZpeGVzKQogICAgICAod2hlbiAoLz0gKGNh
ciBwYWlyKSAzMikKICAgICAgICAoY29uc3VsdC0tZGVmaW5lLWtleSBtYXAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodmNvbmNhdCBjb25zdWx0LW5hcnJvdy1rZXkgKHZlY3RvciAoY2Fy
IHBhaXIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2NvbnN1bHQtbmFycm93IChj
ZHIgcGFpcikpKSkpCiAgKHdoZW4tbGV0ICh3aWRlbiAoY29uc3VsdC0td2lkZW4ta2V5KSkKICAg
IChjb25zdWx0LS1kZWZpbmUta2V5IG1hcCB3aWRlbiAjJ2NvbnN1bHQtbmFycm93ICJBbGwiKSkp
Cgo7Ozs7IEFzeW5jIHN1cHBvcnQKCihkZWZ1biBjb25zdWx0LS13aXRoLWFzeW5jLTEgKGFzeW5j
IGZ1bikKICAiU2V0dXAgQVNZTkMgZm9yIEZVTi4iCiAgKGlmIChub3QgKGZ1bmN0aW9ucCBhc3lu
YykpIChmdW5jYWxsIGZ1biAobGFtYmRhIChfKSBhc3luYykpCiAgICAobWluaWJ1ZmZlci13aXRo
LXNldHVwLWhvb2sKICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAoZnVuY2FsbCBhc3luYyAn
c2V0dXApCiAgICAgICAgICA7OyBQdXNoIGlucHV0IHN0cmluZyB0byByZXF1ZXN0IHJlZnJlc2gu
CiAgICAgICAgICA7OyBXZSB1c2UgYSBzeW1ib2wgaW4gb3JkZXIgdG8gYXZvaWQgYWRkaW5nIGxh
bWJkYXMgdG8gdGhlIGhvb2sgdmFyaWFibGUuCiAgICAgICAgICAobGV0ICgoc3ltIChtYWtlLXN5
bWJvbCAiY29uc3VsdC0tYXN5bmMtYWZ0ZXItY2hhbmdlIikpKQogICAgICAgICAgICAoZnNldCBz
eW0gKGxhbWJkYSAoJnJlc3QgXykgKGZ1bmNhbGwgYXN5bmMgKG1pbmlidWZmZXItY29udGVudHMt
bm8tcHJvcGVydGllcykpKSkKICAgICAgICAgICAgKHJ1bi1hdC10aW1lIDAgbmlsIHN5bSkKICAg
ICAgICAgICAgKGFkZC1ob29rICdhZnRlci1jaGFuZ2UtZnVuY3Rpb25zIHN5bSBuaWwgdCkpKQog
ICAgICAodW53aW5kLXByb3RlY3QKICAgICAgICAgIChmdW5jYWxsIGZ1biBhc3luYykKICAgICAg
ICAoZnVuY2FsbCBhc3luYyAnZGVzdHJveSkpKSkpCgooZGVmbWFjcm8gY29uc3VsdC0td2l0aC1h
c3luYyAoYXN5bmMgJnJlc3QgYm9keSkKICAiU2V0dXAgQVNZTkMgZm9yIEJPRFkuIgogIChkZWNs
YXJlIChpbmRlbnQgMSkpCiAgYChjb25zdWx0LS13aXRoLWFzeW5jLTEgLEAoY2RyIGFzeW5jKSAo
bGFtYmRhICgsKGNhciBhc3luYykpICxAYm9keSkpKQoKKGRlZnVuIGNvbnN1bHQtLWFzeW5jLXNp
bmsgKCkKICAiQ3JlYXRlIEFTWU5DIHNpbmsgZnVuY3Rpb24uCgpUaGUgYXN5bmMgZnVuY3Rpb24g
c2hvdWxkIGFjY2VwdCBhIHNpbmdsZSBhY3Rpb24gYXJndW1lbnQuCk9ubHkgZm9yIHRoZSAnc2V0
dXAgYWN0aW9uLCBpdCBpcyBndWFyYW50ZWVkIHRoYXQgdGhlIGNhbGwKb3JpZ2luYXRlcyBmcm9t
IHRoZSBtaW5pYnVmZmVyLiBGb3IgdGhlIG90aGVyIGFjdGlvbnMgbm8KYXNzdW1wdGlvbnMgY2Fu
IGJlIG1hZGUuCkRlcGVuZGluZyBvbiB0aGUgYXJndW1lbnQsIHRoZSBjYWxsZXIgY29udGV4dCBk
aWZmZXIuCgonc2V0dXAgICBTZXR1cCB0aGUgaW50ZXJuYWwgc3RhdGUuCidkZXN0cm95IERlc3Ry
b3kgdGhlIGludGVybmFsIHN0YXRlLgonZmx1c2ggICBGbHVzaCB0aGUgbGlzdCBvZiBjYW5kaWRh
dGVzLgoncmVmcmVzaCBSZXF1ZXN0IFVJIHJlZnJlc2guCidnZXQgICAgIEdldCB0aGUgbGlzdCBv
ZiBjYW5kaWRhdGVzLgpMaXN0ICAgICBBcHBlbmQgdGhlIGxpc3QgdG8gdGhlIGxpc3Qgb2YgY2Fu
ZGlkYXRlcy4KU3RyaW5nICAgVGhlIGlucHV0IHN0cmluZywgY2FsbGVkIHdoZW4gdGhlIHVzZXIg
ZW50ZXJzIHNvbWV0aGluZy4iCiAgKGxldCAoKGNhbmRpZGF0ZXMpKQogICAgKGxhbWJkYSAoYWN0
aW9uKQogICAgICAocGNhc2UtZXhoYXVzdGl2ZSBhY3Rpb24KICAgICAgICAoKG9yIChwcmVkIHN0
cmluZ3ApICdzZXR1cCAnZGVzdHJveSkgbmlsKQogICAgICAgICgnZmx1c2ggKHNldHEgY2FuZGlk
YXRlcyBuaWwpKQogICAgICAgICgnZ2V0IGNhbmRpZGF0ZXMpCiAgICAgICAgKCdyZWZyZXNoCiAg
ICAgICAgICh3aGVuLWxldCAod2luIChhY3RpdmUtbWluaWJ1ZmZlci13aW5kb3cpKQogICAgICAg
ICAgICh3aXRoLXNlbGVjdGVkLXdpbmRvdyB3aW4KICAgICAgICAgICAgIChydW4taG9va3MgJ2Nv
bnN1bHQtLWNvbXBsZXRpb24tcmVmcmVzaC1ob29rKSkpKQogICAgICAgICgocHJlZCBsaXN0cCkg
KHNldHEgY2FuZGlkYXRlcyAobmNvbmMgY2FuZGlkYXRlcyBhY3Rpb24pKSkpKSkpCgooZGVmdW4g
Y29uc3VsdC0tYXN5bmMtc3BsaXQtc3RyaW5nIChzdHIpCiAgIlNwbGl0IFNUUiBpbiBhc3luYyBp
bnB1dCBhbmQgZmlsdGVyaW5nIHBhcnQuCklmIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgYSBwdW5j
dHVhdGlvbiBjaGFyYWN0ZXIgaXQgZGV0ZXJtaW5lcwp0aGUgc2VwYXJhdG9yLiBFeGFtcGxlczog
XCIvYXN5bmMvZmlsdGVyXCIsIFwiI2FzeW5jI2ZpbHRlclwiLiIKICAoaWYgKHN0cmluZy1tYXRj
aC1wICJeW1s6cHVuY3Q6XV0iIHN0cikKICAgICAgKHNhdmUtbWF0Y2gtZGF0YQogICAgICAgIChs
ZXQgKChxIChyZWdleHAtcXVvdGUgKHN1YnN0cmluZyBzdHIgMCAxKSkpKQogICAgICAgICAgKHN0
cmluZy1tYXRjaCAoY29uY2F0ICJeIiBxICJcXChbXiIgcSAiXSpcXCkiIHEgIj8iKSBzdHIpCiAg
ICAgICAgICAoY29ucyAobWF0Y2gtc3RyaW5nIDEgc3RyKSAobWF0Y2gtZW5kIDApKSkpCiAgICAo
Y29ucyBzdHIgKGxlbmd0aCBzdHIpKSkpCgooZGVmbWFjcm8gY29uc3VsdC0tYXN5bmMtc3BsaXQt
d3JhcCAoc3VmZml4KQogICJDcmVhdGUgY29tcGxldGlvbiBzdHlsZSBmdW5jdGlvbiB3aXRoIG5h
bWUgU1VGRklYLiIKICAobGV0ICgobmFtZSAoaW50ZXJuIChmb3JtYXQgImNvbnN1bHQtLWFzeW5j
LXNwbGl0LSVzIiBzdWZmaXgpKSkpCiAgICBgKHByb2duCiAgICAgICAoZGVmdW4gLG5hbWUgKHN0
ciB0YWJsZSBwcmVkIHBvaW50ICZvcHRpb25hbCBtZXRhZGF0YSkKICAgICAgICAgKGxldCAoKGNv
bXBsZXRpb24tc3R5bGVzIChjZHIgY29tcGxldGlvbi1zdHlsZXMpKQogICAgICAgICAgICAgICAo
cG9zIChjZHIgKGNvbnN1bHQtLWFzeW5jLXNwbGl0LXN0cmluZyBzdHIpKSkpCiAgICAgICAgICAg
KCwoaW50ZXJuIChmb3JtYXQgImNvbXBsZXRpb24tJXMiIHN1ZmZpeCkpCiAgICAgICAgICAgIChz
dWJzdHJpbmcgc3RyIHBvcykgdGFibGUgcHJlZCAoLSBwb2ludCBwb3MpIG1ldGFkYXRhKSkpCiAg
ICAgICAnLG5hbWUpKSkKCihkZWZ1biBjb25zdWx0LS1hc3luYy1zcGxpdC1zZXR1cCAoKQogICJT
ZXR1cCBgY29uc3VsdC0tYXN5bmMtc3BsaXQnIGNvbXBsZXRpb24gc3R5bGVzLiIKICAoc2V0cS1s
b2NhbCBjb21wbGV0aW9uLXN0eWxlcy1hbGlzdAogICAgICAgICAgICAgIChjb25zIChsaXN0ICdj
b25zdWx0LS1hc3luYy1zcGxpdAogICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdWx0LS1h
c3luYy1zcGxpdC13cmFwIHRyeS1jb21wbGV0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICAg
IChjb25zdWx0LS1hc3luYy1zcGxpdC13cmFwIGFsbC1jb21wbGV0aW9ucykgIiIpCiAgICAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbi1zdHlsZXMtYWxpc3QpKQogIChzZXRxLWxvY2FsIGNvbXBs
ZXRpb24tc3R5bGVzCiAgICAgICAgICAgICAgKGNvbnMgJ2NvbnN1bHQtLWFzeW5jLXNwbGl0IGNv
bXBsZXRpb24tc3R5bGVzKSkpCgooZGVmdW4gY29uc3VsdC0tYXN5bmMtc3BsaXQgKGFzeW5jKQog
ICJDcmVhdGUgYXN5bmMgZnVuY3Rpb24sIHdoaWNoIHNwbGl0cyB0aGUgaW5wdXQgc3RyaW5nLgoK
VGhlIGlucHV0IHN0cmluZyBpcyBzcGxpdCBhdCB0aGUgZmlyc3QgY29tbWEuIFRoZSBwYXJ0IGJl
Zm9yZQp0aGUgY29tbWEgaXMgcGFzc2VkIHRvIEFTWU5DLCB0aGUgc2Vjb25kIHBhcnQgaXMgdXNl
ZCBmb3IgZmlsdGVyaW5nLiIKICAobGFtYmRhIChhY3Rpb24pCiAgICAocGNhc2UgYWN0aW9uCiAg
ICAgICgnc2V0dXAKICAgICAgIChjb25zdWx0LS1hc3luYy1zcGxpdC1zZXR1cCkKICAgICAgIChm
dW5jYWxsIGFzeW5jICdzZXR1cCkpCiAgICAgICgocHJlZCBzdHJpbmdwKQogICAgICAgKGxldCog
KChwYWlyIChjb25zdWx0LS1hc3luYy1zcGxpdC1zdHJpbmcgYWN0aW9uKSkKICAgICAgICAgICAg
ICAoaW5wdXQtbGVuIChsZW5ndGggYWN0aW9uKSkKICAgICAgICAgICAgICAoYXN5bmMtc3RyIChj
YXIgcGFpcikpCiAgICAgICAgICAgICAgKGFzeW5jLWxlbiAobGVuZ3RoIGFzeW5jLXN0cikpCiAg
ICAgICAgICAgICAgKGVuZCAobWluaWJ1ZmZlci1wcm9tcHQtZW5kKSkpCiAgICAgICAgIDs7IEhp
Z2hsaWdodCBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzCiAgICAgICAgIChyZW1vdmUtbGlzdC1vZi10
ZXh0LXByb3BlcnRpZXMgZW5kICgrIGVuZCBpbnB1dC1sZW4pICcoZmFjZSkpCiAgICAgICAgICh3
aGVuICg+IGlucHV0LWxlbiBhc3luYy1sZW4pCiAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5
IGVuZCAoMSsgZW5kKSAnZmFjZSAnY29uc3VsdC1hc3luYy1zcGxpdCkKICAgICAgICAgICAod2hl
biAoPiBpbnB1dC1sZW4gKDErIGFzeW5jLWxlbikpCiAgICAgICAgICAgICAocHV0LXRleHQtcHJv
cGVydHkgKCsgMSBlbmQgYXN5bmMtbGVuKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgrIDIgZW5kIGFzeW5jLWxlbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFj
ZSAnY29uc3VsdC1hc3luYy1zcGxpdCkpKQogICAgICAgICAoZnVuY2FsbCBhc3luYwogICAgICAg
ICAgICAgICAgICA7OyBQYXNzIHRocm91Z2ggaWYgZm9yY2VkIGJ5IHR3byBwdW5jdHVhdGlvbiBj
aGFyYWN0ZXJzCiAgICAgICAgICAgICAgICAgIDs7IG9yIGlmIHRoZSBpbnB1dCBpcyBsb25nIGVu
b3VnaCEKICAgICAgICAgICAgICAgICAgKGlmIChvciAoPj0gaW5wdXQtbGVuICgrIDIgYXN5bmMt
bGVuKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoPj0gYXN5bmMtbGVuIGNvbnN1bHQtYXN5
bmMtbWluLWlucHV0KSkKICAgICAgICAgICAgICAgICAgICAgIGFzeW5jLXN0cgogICAgICAgICAg
ICAgICAgICAgIDs7IFByZXRlbmQgdGhhdCB0aGVyZSBpcyBubyBpbnB1dAogICAgICAgICAgICAg
ICAgICAgICIiKSkpKQogICAgICAoXyAoZnVuY2FsbCBhc3luYyBhY3Rpb24pKSkpKQoKKGRlZnVu
IGNvbnN1bHQtLWFzeW5jLWxvZyAoZm9ybWF0dGVkICZyZXN0IGFyZ3MpCiAgIkxvZyBGT1JNQVRU
RUQgQVJHUyB0byBgY29uc3VsdC0tYXN5bmMtbG9nJy4iCiAgKHdpdGgtY3VycmVudC1idWZmZXIg
KGdldC1idWZmZXItY3JlYXRlIGNvbnN1bHQtLWFzeW5jLWxvZykKICAgIChnb3RvLWNoYXIgKHBv
aW50LW1heCkpCiAgICAoaW5zZXJ0IChhcHBseSAjJ2Zvcm1hdCBmb3JtYXR0ZWQgYXJncykpKSkK
CihkZWZ1biBjb25zdWx0LS1hc3luYy1wcm9jZXNzIChhc3luYyBjbWQpCiAgIkNyZWF0ZSBwcm9j
ZXNzIHNvdXJjZSBhc3luYyBmdW5jdGlvbi4KCkFTWU5DIGlzIHRoZSBhc3luYyBmdW5jdGlvbiB3
aGljaCByZWNlaXZlcyB0aGUgY2FuZGlkYXRlcy4KQ01EIGlzIHRoZSBjb21tYW5kIGFyZ3VtZW50
IGxpc3QuIgogIChsZXQgKChwcm9jKSAobGFzdC1hcmdzKSAoaW5kaWNhdG9yKSkKICAgIChsYW1i
ZGEgKGFjdGlvbikKICAgICAgKHBjYXNlIGFjdGlvbgogICAgICAgICgiIiA7OyBJZiBubyBpbnB1
dCBpcyBwcm92aWRlZCBraWxsIGN1cnJlbnQgcHJvY2VzcwogICAgICAgICAoaWdub3JlLWVycm9y
cyAoZGVsZXRlLXByb2Nlc3MgcHJvYykpCiAgICAgICAgIChzZXRxIGxhc3QtYXJncyBuaWwpKQog
ICAgICAgICgocHJlZCBzdHJpbmdwKQogICAgICAgICAobGV0ICgoYXJncyAoZnVuY2FsbCBjbWQg
YWN0aW9uKSkKICAgICAgICAgICAgICAgKGZsdXNoIHQpCiAgICAgICAgICAgICAgIChyZXN0ICIi
KSkKICAgICAgICAgICAodW5sZXNzIChlcXVhbCBhcmdzIGxhc3QtYXJncykKICAgICAgICAgICAg
IChzZXRxIGxhc3QtYXJncyBhcmdzKQogICAgICAgICAgICAgKGlnbm9yZS1lcnJvcnMgKGRlbGV0
ZS1wcm9jZXNzIHByb2MpKQogICAgICAgICAgICAgKHdoZW4gYXJncwogICAgICAgICAgICAgICAo
b3ZlcmxheS1wdXQgaW5kaWNhdG9yICdkaXNwbGF5IChwcm9wZXJ0aXplICIqIiAnZmFjZSAnY29u
c3VsdC1hc3luYy1ydW5uaW5nKSkKICAgICAgICAgICAgICAgKGNvbnN1bHQtLWFzeW5jLWxvZyAi
Y29uc3VsdC0tYXN5bmMtcHJvY2VzcyBzdGFydGVkICVTXG4iIGFyZ3MpCiAgICAgICAgICAgICAg
IChzZXRxCiAgICAgICAgICAgICAgICBwcm9jCiAgICAgICAgICAgICAgICAobWFrZS1wcm9jZXNz
CiAgICAgICAgICAgICAgICAgOmNvbm5lY3Rpb24tdHlwZSAncGlwZQogICAgICAgICAgICAgICAg
IDpuYW1lIChjYXIgYXJncykKICAgICAgICAgICAgICAgICA6c3RkZXJyIGNvbnN1bHQtLWFzeW5j
LWxvZwogICAgICAgICAgICAgICAgIDpub3F1ZXJ5IHQKICAgICAgICAgICAgICAgICA6Y29tbWFu
ZCBhcmdzCiAgICAgICAgICAgICAgICAgOmZpbHRlcgogICAgICAgICAgICAgICAgIChsYW1iZGEg
KF8gb3V0KQogICAgICAgICAgICAgICAgICAgKHdoZW4gZmx1c2gKICAgICAgICAgICAgICAgICAg
ICAgKHNldHEgZmx1c2ggbmlsKQogICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBhc3luYyAn
Zmx1c2gpKQogICAgICAgICAgICAgICAgICAgKGxldCAoKGxpbmVzIChzcGxpdC1zdHJpbmcgb3V0
ICJcbiIpKSkKICAgICAgICAgICAgICAgICAgICAgKGlmIChub3QgKGNkciBsaW5lcykpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSByZXN0IChjb25jYXQgcmVzdCAoY2FyIGxpbmVzKSkp
CiAgICAgICAgICAgICAgICAgICAgICAgKHNldGNhciBsaW5lcyAoY29uY2F0IHJlc3QgKGNhciBs
aW5lcykpKQogICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHJlc3QgKGNhciAobGFzdCBsaW5l
cykpKQogICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGFzeW5jIChuYnV0bGFzdCBsaW5l
cykpKSkpCiAgICAgICAgICAgICAgICAgOnNlbnRpbmVsCiAgICAgICAgICAgICAgICAgKGxhbWJk
YSAoXyBldmVudCkKICAgICAgICAgICAgICAgICAgIChjb25zdWx0LS1hc3luYy1sb2cgImNvbnN1
bHQtLWFzeW5jLXByb2Nlc3Mgc2VudGluZWw6ICVzXG4iIGV2ZW50KQogICAgICAgICAgICAgICAg
ICAgKHdoZW4gZmx1c2gKICAgICAgICAgICAgICAgICAgICAgKHNldHEgZmx1c2ggbmlsKQogICAg
ICAgICAgICAgICAgICAgICAoZnVuY2FsbCBhc3luYyAnZmx1c2gpKQogICAgICAgICAgICAgICAg
ICAgKG92ZXJsYXktcHV0IGluZGljYXRvciAnZGlzcGxheQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjb25kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5n
LXByZWZpeC1wICJraWxsZWQiIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHByb3BlcnRpemUgIjsiICdmYWNlICdjb25zdWx0LWFzeW5jLWZhaWxlZCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLXByZWZpeC1wICJmaW5pc2hlZCIgZXZl
bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZSAiOiIgJ2Zh
Y2UgJ2NvbnN1bHQtYXN5bmMtZmluaXNoZWQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAodCAocHJvcGVydGl6ZSAiISIgJ2ZhY2UgJ2NvbnN1bHQtYXN5bmMtZmFpbGVkKSkpKQog
ICAgICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoc3RyaW5nLXByZWZpeC1wICJmaW5pc2hlZCIg
ZXZlbnQpIChub3QgKHN0cmluZz0gcmVzdCAiIikpKQogICAgICAgICAgICAgICAgICAgICAoZnVu
Y2FsbCBhc3luYyAobGlzdCByZXN0KSkpKSkpKSkpKQogICAgICAgICgnZGVzdHJveQogICAgICAg
ICAoaWdub3JlLWVycm9ycyAoZGVsZXRlLXByb2Nlc3MgcHJvYykpCiAgICAgICAgIChkZWxldGUt
b3ZlcmxheSBpbmRpY2F0b3IpCiAgICAgICAgIChmdW5jYWxsIGFzeW5jICdkZXN0cm95KSkKICAg
ICAgICAoJ3NldHVwCiAgICAgICAgIChzZXRxIGluZGljYXRvciAobWFrZS1vdmVybGF5ICgtICht
aW5pYnVmZmVyLXByb21wdC1lbmQpIDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgtIChtaW5pYnVmZmVyLXByb21wdC1lbmQpIDEpKSkKICAgICAgICAgKGZ1bmNhbGwg
YXN5bmMgJ3NldHVwKSkKICAgICAgICAoXyAoZnVuY2FsbCBhc3luYyBhY3Rpb24pKSkpKSkKCihk
ZWZ1biBjb25zdWx0LS1hc3luYy10aHJvdHRsZSAoYXN5bmMgJm9wdGlvbmFsIHRocm90dGxlIGRl
Ym91bmNlKQogICJDcmVhdGUgYXN5bmMgZnVuY3Rpb24gZnJvbSBBU1lOQyB3aGljaCB0aHJvdHRs
ZXMgaW5wdXQuCgpUaGUgVEhST1RUTEUgZGVsYXkgZGVmYXVsdHMgdG8gYGNvbnN1bHQtYXN5bmMt
aW5wdXQtdGhyb3R0bGUnLgpUaGUgREVCT1VOQ0UgZGVsYXkgZGVmYXVsdHMgdG8gYGNvbnN1bHQt
YXN5bmMtaW5wdXQtZGVib3VuY2UnLiIKICAobGV0KiAoKHRocm90dGxlIChvciB0aHJvdHRsZSBj
b25zdWx0LWFzeW5jLWlucHV0LXRocm90dGxlKSkKICAgICAgICAgKGRlYm91bmNlIChvciBkZWJv
dW5jZSBjb25zdWx0LWFzeW5jLWlucHV0LWRlYm91bmNlKSkKICAgICAgICAgKGlucHV0ICIiKQog
ICAgICAgICAodW5sb2NrZWQgdCkKICAgICAgICAgKHRocm90dGxlLXRpbWVyKQogICAgICAgICAo
ZGVib3VuY2UtdGltZXIpKQogICAgKGxhbWJkYSAoYWN0aW9uKQogICAgICAocGNhc2UgYWN0aW9u
CiAgICAgICAgKCdzZXR1cAogICAgICAgICAoZnVuY2FsbCBhc3luYyAnc2V0dXApCiAgICAgICAg
IChzZXRxIHRocm90dGxlLXRpbWVyIChydW4tYXQtdGltZSB0aHJvdHRsZSB0aHJvdHRsZSAobGFt
YmRhICgpIChzZXRxIHVubG9ja2VkIHQpKSkpKQogICAgICAgICgocHJlZCBzdHJpbmdwKQogICAg
ICAgICAod2hlbiBkZWJvdW5jZS10aW1lcgogICAgICAgICAgIChjYW5jZWwtdGltZXIgZGVib3Vu
Y2UtdGltZXIpKQogICAgICAgICAodW5sZXNzIChzdHJpbmc9IGFjdGlvbiBpbnB1dCkKICAgICAg
ICAgICAoZnVuY2FsbCBhc3luYyAoc2V0cSBpbnB1dCAiIikpIDs7IGNhbmNlbCBydW5uaW5nIHBy
b2Nlc3MKICAgICAgICAgICAodW5sZXNzIChzdHJpbmc9IGFjdGlvbiAiIikKICAgICAgICAgICAg
IChzZXRxIGRlYm91bmNlLXRpbWVyIChydW4tYXQtdGltZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgrIGRlYm91bmNlIChpZiB1bmxvY2tlZCAwIHRocm90dGxlKSkgbmlsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoKSAoZnVuY2FsbCBhc3lu
YyAoc2V0cSB1bmxvY2tlZCBuaWwgaW5wdXQgYWN0aW9uKSkpKSkpKSkKICAgICAgICAoJ2Rlc3Ry
b3kKICAgICAgICAgKGNhbmNlbC10aW1lciB0aHJvdHRsZS10aW1lcikKICAgICAgICAgKHdoZW4g
ZGVib3VuY2UtdGltZXIKICAgICAgICAgICAoY2FuY2VsLXRpbWVyIGRlYm91bmNlLXRpbWVyKSkK
ICAgICAgICAgKGZ1bmNhbGwgYXN5bmMgJ2Rlc3Ryb3kpKQogICAgICAgIChfIChmdW5jYWxsIGFz
eW5jIGFjdGlvbikpKSkpKQoKKGRlZnVuIGNvbnN1bHQtLWFzeW5jLXJlZnJlc2gtaW1tZWRpYXRl
IChhc3luYykKICAiQ3JlYXRlIGFzeW5jIGZ1bmN0aW9uIGZyb20gQVNZTkMsIHdoaWNoIHJlZnJl
c2hlcyB0aGUgZGlzcGxheS4KClRoZSByZWZyZXNoIGhhcHBlbnMgaW1tZWRpYXRlbHkgd2hlbiBj
YW5kaWRhdGVzIGFyZSBwdXNoZWQuIgogIChsYW1iZGEgKGFjdGlvbikKICAgIChwY2FzZSBhY3Rp
b24KICAgICAgKChvciAocHJlZCBsaXN0cCkgKHByZWQgc3RyaW5ncCkgJ2ZsdXNoKQogICAgICAg
KHByb2cxIChmdW5jYWxsIGFzeW5jIGFjdGlvbikKICAgICAgICAgKGZ1bmNhbGwgYXN5bmMgJ3Jl
ZnJlc2gpKSkKICAgICAgKF8gKGZ1bmNhbGwgYXN5bmMgYWN0aW9uKSkpKSkKCihkZWZ1biBjb25z
dWx0LS1hc3luYy1yZWZyZXNoLXRpbWVyIChhc3luYyAmb3B0aW9uYWwgZGVsYXkpCiAgIkNyZWF0
ZSBhc3luYyBmdW5jdGlvbiBmcm9tIEFTWU5DLCB3aGljaCByZWZyZXNoZXMgdGhlIGRpc3BsYXku
CgpUaGUgcmVmcmVzaCBoYXBwZW5zIGFmdGVyIGEgREVMQVksIGRlZmF1bHRpbmcgdG8gYGNvbnN1
bHQtYXN5bmMtcmVmcmVzaC1kZWxheScuIgogIChsZXQgKCh0aW1lcikgKHJlZnJlc2ggdCkgKGRl
bGF5IChvciBkZWxheSBjb25zdWx0LWFzeW5jLXJlZnJlc2gtZGVsYXkpKSkKICAgIChsYW1iZGEg
KGFjdGlvbikKICAgICAgKHBjYXNlIGFjdGlvbgogICAgICAgICgob3IgKHByZWQgbGlzdHApIChw
cmVkIHN0cmluZ3ApICdyZWZyZXNoICdmbHVzaCkKICAgICAgICAgKHNldHEgcmVmcmVzaCB0KSkK
ICAgICAgICAoJ2Rlc3Ryb3kgKGNhbmNlbC10aW1lciB0aW1lcikpCiAgICAgICAgKCdzZXR1cAog
ICAgICAgICAoc2V0cSB0aW1lciAocnVuLWF0LXRpbWUKICAgICAgICAgICAgICAgICAgICAgIGRl
bGF5IGRlbGF5CiAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAgICAg
ICAgICAgICAgICh3aGVuIHJlZnJlc2gKICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBy
ZWZyZXNoIG5pbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBhc3luYyAncmVm
cmVzaCkpKSkpKSkKICAgICAgKGZ1bmNhbGwgYXN5bmMgYWN0aW9uKSkpKQoKKGRlZm1hY3JvIGNv
bnN1bHQtLWFzeW5jLXRyYW5zZm9ybSAoYXN5bmMgJnJlc3QgdHJhbnNmb3JtKQogICJVc2UgRlVO
IHRvIFRSQU5TRk9STSBjYW5kaWRhdGVzIG9mIEFTWU5DLiIKICAobGV0ICgoYXN5bmMtdmFyICht
YWtlLXN5bWJvbCAiYXN5bmMiKSkKICAgICAgICAoYWN0aW9uLXZhciAobWFrZS1zeW1ib2wgImFj
dGlvbiIpKSkKICAgIGAobGV0ICgoLGFzeW5jLXZhciAsYXN5bmMpKQogICAgICAgKGxhbWJkYSAo
LGFjdGlvbi12YXIpCiAgICAgICAgIChmdW5jYWxsICxhc3luYy12YXIgKGlmIChsaXN0cCAsYWN0
aW9uLXZhcikgKCxAdHJhbnNmb3JtICxhY3Rpb24tdmFyKSAsYWN0aW9uLXZhcikpKSkpKQoKKGRl
ZnVuIGNvbnN1bHQtLWFzeW5jLW1hcCAoYXN5bmMgZnVuKQogICJNYXAgY2FuZGlkYXRlcyBvZiBB
U1lOQyBieSBGVU4uIgogIChjb25zdWx0LS1hc3luYy10cmFuc2Zvcm0gYXN5bmMgbWFwY2FyIGZ1
bikpCgooZGVmdW4gY29uc3VsdC0tYXN5bmMtZmlsdGVyIChhc3luYyBmdW4pCiAgIkZpbHRlciBj
YW5kaWRhdGVzIG9mIEFTWU5DIGJ5IEZVTi4iCiAgKGNvbnN1bHQtLWFzeW5jLXRyYW5zZm9ybSBh
c3luYyBzZXEtZmlsdGVyIGZ1bikpCgooZGVmdW4gY29uc3VsdC0tY29tbWFuZC1hcmdzIChjbWQp
CiAgIlNwbGl0IGNvbW1hbmQgYXJndW1lbnRzIGFuZCBhcHBlbmQgdG8gQ01ELiIKICAoc2V0cSBj
bWQgKHNwbGl0LXN0cmluZy1hbmQtdW5xdW90ZSBjbWQpKQogIChsYW1iZGEgKGlucHV0KQogICAg
KHNhdmUtbWF0Y2gtZGF0YQogICAgICAobGV0ICgob3B0cykpCiAgICAgICAgKHdoZW4gKHN0cmlu
Zy1tYXRjaCAiICstLVxcKCArXFx8JFxcKSIgaW5wdXQpCiAgICAgICAgICA7OyBzcGxpdC1zdHJp
bmctYW5kLXVucXVvdGUgbW9kaWZpZXMgdGhlIG1hdGNoIGRhdGEKICAgICAgICAgIDs7IGFuZCBm
YWlscyBpZiB0aGUgcXVvdGVzIGFyZSBpbnZhbGlkLiBJZ25vcmUgaXQuCiAgICAgICAgICAoc2V0
cSBvcHRzIChzdWJzdHJpbmcgaW5wdXQgKG1hdGNoLWVuZCAwKSkKICAgICAgICAgICAgICAgIGlu
cHV0IChzdWJzdHJpbmcgaW5wdXQgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQogICAgICAgICAgICAg
ICAgb3B0cyAoaWdub3JlLWVycm9ycyAoc3BsaXQtc3RyaW5nLWFuZC11bnF1b3RlIG9wdHMpKSkp
CiAgICAgICAgKG1hcGNhbiAobGFtYmRhICh4KQogICAgICAgICAgICAgICAgICAoaWYgKHN0cmlu
Zz0geCAiT1BUUyIpCiAgICAgICAgICAgICAgICAgICAgICBvcHRzCiAgICAgICAgICAgICAgICAg
ICAgKGxpc3QgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiQVJHIiBpbnB1dCB4ICdmaXhlZGNh
c2UgJ2xpdGVyYWwpKSkpCiAgICAgICAgICAgICAgICBjbWQpKSkpKQoKKGRlZm1hY3JvIGNvbnN1
bHQtLWFzeW5jLWNvbW1hbmQgKGNtZCAmcmVzdCB0cmFuc2Zvcm1zKQogICJBc3luY2hyb25vdXMg
Q01EIHBpcGVsaW5lIHdpdGggVFJBTlNGT1JNUy4iCiAgKGRlY2xhcmUgKGluZGVudCAxKSkKICBg
KHRocmVhZC1maXJzdCAoY29uc3VsdC0tYXN5bmMtc2luaykKICAgICAoY29uc3VsdC0tYXN5bmMt
cmVmcmVzaC10aW1lcikKICAgICAsQHRyYW5zZm9ybXMKICAgICAoY29uc3VsdC0tYXN5bmMtcHJv
Y2VzcyAoY29uc3VsdC0tY29tbWFuZC1hcmdzICxjbWQpKQogICAgIChjb25zdWx0LS1hc3luYy10
aHJvdHRsZSkKICAgICAoY29uc3VsdC0tYXN5bmMtc3BsaXQpKSkKCjs7OzsgU3BlY2lhbCBrZXlt
YXBzCgooZGVmdmFyIGNvbnN1bHQtYXN5bmMtbWFwIChtYWtlLXNwYXJzZS1rZXltYXApCiAgIktl
eW1hcCBhZGRlZCBmb3IgY29tbWFuZHMgd2l0aCBhc3luY2hyb25vdXMgY2FuZGlkYXRlcy4iKQoK
KGRlZnZhciBjb25zdWx0LXByZXZpZXctbWFwIChtYWtlLXNwYXJzZS1rZXltYXApCiAgIktleW1h
cCBhZGRlZCBmb3IgY29tbWFuZHMgd2l0aCBwcmV2aWV3LiIpCgooZGVmdmFyIGNvbnN1bHQtbmFy
cm93LW1hcAogIChsZXQgKChtYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkpKQogICAgKGRlZmluZS1r
ZXkgbWFwICIgIiBjb25zdWx0LS1uYXJyb3ctc3BhY2UpCiAgICAoZGVmaW5lLWtleSBtYXAgWzEy
N10gY29uc3VsdC0tbmFycm93LWRlbGV0ZSkKICAgIG1hcCkKICAiTmFycm93aW5nIGtleW1hcCB3
aGljaCBpcyBhZGRlZCB0byB0aGUgbG9jYWwgbWluaWJ1ZmZlciBtYXAuCk5vdGUgdGhhdCBgY29u
c3VsdC1uYXJyb3cta2V5JyBhbmQgYGNvbnN1bHQtd2lkZW4ta2V5JyBhcmUgYm91bmQgZHluYW1p
Y2FsbHkuIikKCjs7OzsgSW50ZXJuYWwgQVBJOiBjb25zdWx0LS1yZWFkCgooZGVmdW4gY29uc3Vs
dC0tYWRkLWhpc3RvcnkgKGl0ZW1zKQogICJBZGQgSVRFTVMgdG8gdGhlIG1pbmlidWZmZXIgaGlz
dG9yeSB2aWEgYG1pbmlidWZmZXItZGVmYXVsdC1hZGQtZnVuY3Rpb24nLiIKICAoc2V0cS1sb2Nh
bCBtaW5pYnVmZmVyLWRlZmF1bHQtYWRkLWZ1bmN0aW9uCiAgICAgICAgICAgICAgKGxhbWJkYSAo
KQogICAgICAgICAgICAgICAgKGNvbnN1bHQtLXJlbW92ZS1kdXBzCiAgICAgICAgICAgICAgICAg
KGFwcGVuZAogICAgICAgICAgICAgICAgICA7OyB0aGUgZGVmYXVsdHMgYXJlIGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGZ1dHVyZSBoaXN0b3J5CiAgICAgICAgICAgICAgICAgIChpZiAobGlzdHAg
bWluaWJ1ZmZlci1kZWZhdWx0KQogICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1kZWZh
dWx0CiAgICAgICAgICAgICAgICAgICAgKGxpc3QgbWluaWJ1ZmZlci1kZWZhdWx0KSkKICAgICAg
ICAgICAgICAgICAgOzsgdGhlbiBvdXIgY3VzdG9tIGl0ZW1zCiAgICAgICAgICAgICAgICAgIChk
ZWxldGUgIiIgKGRlbHEgbmlsIChpZiAobGlzdHAgaXRlbXMpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpdGVtcwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChsaXN0IGl0ZW1zKSkpKQogICAgICAgICAgICAgICAgICA7OyB0aGVuIGFs
bCB0aGUgY29tcGxldGlvbnMKICAgICAgICAgICAgICAgICAgKGFsbC1jb21wbGV0aW9ucyAiIgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmlidWZmZXItY29tcGxldGlvbi10
YWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmlidWZmZXItY29tcGxl
dGlvbi1wcmVkaWNhdGUpKSkpKSkKCihkZWZ1biBjb25zdWx0LS1zZXR1cC1rZXltYXAgKGtleW1h
cCBhc3luYyBuYXJyb3cgcHJldmlldy1rZXkpCiAgIlNldHVwIG1pbmlidWZmZXIga2V5bWFwLgoK
S0VZTUFQIGlzIGEgY29tbWFuZC1zcGVjaWZpYyBLRVlNQVAuCkFTWU5DIG11c3QgYmUgdCBmb3Ig
YXN5bmMuCk5BUlJPVyBhcmUgdGhlIG5hcnJvdyBzZXR0aW5ncy4KUFJFVklFVy1LRVkgaXMgdGhl
IHByZXZpZXcga2V5LiIKICAobGV0ICgob2xkLW1hcCAoY3VycmVudC1sb2NhbC1tYXApKQogICAg
ICAgIChtYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkpKQoKICAgIDs7IEFzeW5jIGtleXMgb3Zlcndy
aXRpbmcgc29tZSB1bnVzYWJsZSBkZWZhdWx0cyBmb3IgdGhlIGRlZmF1bHQgY29tcGxldGlvbgog
ICAgKHdoZW4gYXN5bmMKICAgICAgKHdoZW4gKGVxIChsb29rdXAta2V5IG9sZC1tYXAgIiAiKSAj
J21pbmlidWZmZXItY29tcGxldGUtd29yZCkKICAgICAgICAoZGVmaW5lLWtleSBtYXAgIiAiICMn
c2VsZi1pbnNlcnQtY29tbWFuZCkpCiAgICAgICh3aGVuIChlcSAobG9va3VwLWtleSBvbGQtbWFw
ICJcdCIpICMnbWluaWJ1ZmZlci1jb21wbGV0ZSkKICAgICAgICAoZGVmaW5lLWtleSBtYXAgIlx0
IiAjJ21pbmlidWZmZXItY29tcGxldGlvbi1oZWxwKSkpCgogICAgOzsgQWRkIG5hcnJvdyBrZXlz
CiAgICAod2hlbiBuYXJyb3cKICAgICAgKGNvbnN1bHQtLW5hcnJvdy1zZXR1cCBuYXJyb3cgbWFw
KSkKCiAgICA7OyBQcmV2aWV3IHRyaWdnZXIga2V5cwogICAgKHdoZW4gKGFuZCBwcmV2aWV3LWtl
eSAobm90IChlcSBwcmV2aWV3LWtleSAnYW55KSkpCiAgICAgIChsZXQgKChwcmV2aWV3LWtleSAo
aWYgKGxpc3RwIHByZXZpZXcta2V5KSBwcmV2aWV3LWtleSAobGlzdCBwcmV2aWV3LWtleSkpKSkK
ICAgICAgICAoZG9saXN0IChrZXkgcHJldmlldy1rZXkpCiAgICAgICAgICAodW5sZXNzIChsb29r
dXAta2V5IG9sZC1tYXAga2V5KQogICAgICAgICAgICAoZGVmaW5lLWtleSBtYXAga2V5ICMnaWdu
b3JlKSkpKSkKCiAgICA7OyBQdXQgdGhlIGtleW1hcCB0b2dldGhlcgogICAgKHVzZS1sb2NhbC1t
YXAKICAgICAobWFrZS1jb21wb3NlZC1rZXltYXAKICAgICAgKGRlbHEgbmlsIChsaXN0IGtleW1h
cAogICAgICAgICAgICAgICAgICAgICAgKGFuZCBhc3luYyBjb25zdWx0LWFzeW5jLW1hcCkKICAg
ICAgICAgICAgICAgICAgICAgIChhbmQgbmFycm93IGNvbnN1bHQtbmFycm93LW1hcCkKICAgICAg
ICAgICAgICAgICAgICAgIChhbmQgcHJldmlldy1rZXkgY29uc3VsdC1wcmV2aWV3LW1hcCkKICAg
ICAgICAgICAgICAgICAgICAgIG1hcCkpCiAgICAgIG9sZC1tYXApKSkpCgooZGVmdW4gY29uc3Vs
dC0tZnJ5LXRoZS10b2Z1cyAoJnJlc3QgXykKICAiRnJ5IHRoZSB0b2Z1cyBpbiB0aGUgbWluaWJ1
ZmZlci4iCiAgKGxldCogKChtaW4gKG1pbmlidWZmZXItcHJvbXB0LWVuZCkpCiAgICAgICAgICht
YXggKHBvaW50LW1heCkpCiAgICAgICAgIChwb3MgbWluKQogICAgICAgICAoY21pbiBjb25zdWx0
LS10b2Z1LWNoYXIpCiAgICAgICAgIChjbWF4ICgtICgrIGNvbnN1bHQtLXRvZnUtY2hhciBjb25z
dWx0LS10b2Z1LXJhbmdlKSAxKSkpCiAgICAod2hpbGUgKGFuZCAoPCBwb3MgbWF4KSAoPD0gY21p
biAoY2hhci1hZnRlciBwb3MpIGNtYXgpKQogICAgICAoc2V0cSBwb3MgKDErIHBvcykpKQogICAg
KHdoZW4gKD4gcG9zIG1pbikKICAgICAgKHJlbW92ZS1saXN0LW9mLXRleHQtcHJvcGVydGllcyBt
aW4gcG9zICcoZGlzcGxheSkpCiAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBtaW4gcG9zICdpbnZp
c2libGUgdCkpKSkKCihjbC1kZWZ1biBjb25zdWx0LS1yZWFkLXNldHVwIChfcHJvbXB0IGNhbmRp
ZGF0ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleSBrZXltYXAg
YWRkLWhpc3RvcnkgbmFycm93IHByZXZpZXcta2V5ICZhbGxvdy1vdGhlci1rZXlzKQogICJNaW5p
YnVmZmVyIHNldHVwIGZvciBgY29uc3VsdC0tcmVhZCcuCgpTZWUgYGNvbnN1bHQtLXJlYWQnIGZv
ciB0aGUgQ0FORElEQVRFUywgS0VZTUFQLCBBREQtSElTVE9SWSwgTkFSUk9XIGFuZCBQUkVWSUVX
LUtFWSBhcmd1bWVudHMuIgogIChhZGQtaG9vayAnYWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucyAjJ2Nv
bnN1bHQtLWZyeS10aGUtdG9mdXMgbmlsIHQpCiAgKGNvbnN1bHQtLXNldHVwLWtleW1hcCBrZXlt
YXAgKGZ1bmN0aW9ucCBjYW5kaWRhdGVzKSBuYXJyb3cgcHJldmlldy1rZXkpCiAgKGNvbnN1bHQt
LWFkZC1oaXN0b3J5IGFkZC1oaXN0b3J5KSkKCihkZWZtYWNybyBjb25zdWx0LS1yZWFkLWRlZmF1
bHRzICgmcmVzdCBkZWZhdWx0KQogICJTZXQgREVGQVVMVCBvcHRpb25zLiIKICAobWFjcm9leHAt
cHJvZ24KICAgKG1hcGNhcgogICAgKHBjYXNlLWxhbWJkYSAoYCgsa2V5ICx2YWwpKQogICAgICBg
KHVubGVzcyAocGxpc3QtbWVtYmVyIG9wdGlvbnMgLChpbnRlcm4gKGZvcm1hdCAiOiVzIiBrZXkp
KSkKICAgICAgICAgKHNldHEgb3B0aW9ucyAocGxpc3QtcHV0IG9wdGlvbnMgLChpbnRlcm4gKGZv
cm1hdCAiOiVzIiBrZXkpKSAoc2V0cSAsa2V5ICx2YWwpKSkpKQogICAgZGVmYXVsdCkpKQoKKGNs
LWRlZnVuIGNvbnN1bHQtLXJlYWQgKHByb21wdCBjYW5kaWRhdGVzICZyZXN0IG9wdGlvbnMgJmtl
eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWRpY2F0ZSByZXF1aXJlLW1hdGNo
IGhpc3RvcnkgZGVmYXVsdCBrZXltYXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
YXRlZ29yeSBpbml0aWFsIG5hcnJvdyBhZGQtaGlzdG9yeSBhbm5vdGF0ZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByZXZpZXcgcHJldmlldy1rZXkgc29ydCBkZWZhdWx0LXRvcCBs
b29rdXApCiAgIkVuaGFuY2VkIGNvbXBsZXRpbmcgcmVhZCBmdW5jdGlvbi4KCkFyZ3VtZW50czoK
ClBST01QVCBpcyB0aGUgc3RyaW5nIHRvIHByb21wdCB3aXRoLgpDQU5ESURBVEVTIGlzIHRoZSBj
YW5kaWRhdGUgbGlzdCBvciBhbGlzdC4KCktleXdvcmQgT1BUSU9OUzoKClBSRURJQ0FURSBpcyBh
IGZpbHRlciBmdW5jdGlvbiBmb3IgdGhlIGNhbmRpZGF0ZXMuClJFUVVJUkUtTUFUQ0ggZXF1YWxz
IHQgbWVhbnMgdGhhdCBhbiBleGFjdCBtYXRjaCBpcyByZXF1aXJlZC4KSElTVE9SWSBpcyB0aGUg
c3ltYm9sIG9mIHRoZSBoaXN0b3J5IHZhcmlhYmxlLgpERUZBVUxUIGlzIHRoZSBkZWZhdWx0IHNl
bGVjdGVkIHZhbHVlLgpBREQtSElTVE9SWSBpcyBhIGxpc3Qgb2YgaXRlbXMgdG8gYWRkIHRvIHRo
ZSBoaXN0b3J5LgpDQVRFR09SWSBpcyB0aGUgY29tcGxldGlvbiBjYXRlZ29yeS4KU09SVCBzaG91
bGQgYmUgc2V0IHRvIG5pbCBpZiB0aGUgY2FuZGlkYXRlcyBhcmUgYWxyZWFkeSBzb3J0ZWQuCkxP
T0tVUCBpcyBhIGZ1bmN0aW9uIHdoaWNoIGlzIGFwcGxpZWQgdG8gdGhlIHJlc3VsdC4KQU5OT1RB
VEUgaXMgdGhlIGFubm90YXRpb24gZnVuY3Rpb24uCklOSVRJQUwgaXMgaW5pdGlhbCBpbnB1dC4K
REVGQVVMVC1UT1AgbXVzdCBiZSBuaWwgaWYgdGhlIGRlZmF1bHQgY2FuZGlkYXRlIHNob3VsZCBu
b3QgYmUgbW92ZWQgdG8gdGhlIHRvcC4KUFJFVklFVyBpcyBhIHByZXZpZXcgZnVuY3Rpb24sIHNl
ZSBgY29uc3VsdC0td2l0aC1wcmV2aWV3Jy4KUFJFVklFVy1LRVkgYXJlIHRoZSBwcmV2aWV3IGtl
eXMgKG5pbCwgJ2FueSwgYSBzaW5nbGUga2V5IG9yIGEgbGlzdCBvZiBrZXlzKS4KTkFSUk9XIGlz
IGFuIGFsaXN0IG9mIG5hcnJvd2luZyBwcmVmaXggc3RyaW5ncyBhbmQgZGVzY3JpcHRpb24uCktF
WU1BUCBpcyBhIGNvbW1hbmQtc3BlY2lmaWMga2V5bWFwLiIKICA7OyBzdXBwb3J0ZWQgdHlwZXMK
ICAoY2wtYXNzZXJ0IChvciAoZnVuY3Rpb25wIGNhbmRpZGF0ZXMpICAgICA7OyBhc3luYyB0YWJs
ZQogICAgICAgICAgICAgICAgIChub3QgY2FuZGlkYXRlcykgICAgICAgICAgIDs7IG5pbCwgZW1w
dHkgbGlzdAogICAgICAgICAgICAgICAgIChvYmFycmF5cCBjYW5kaWRhdGVzKSAgICAgIDs7IG9i
YXJyYXkKICAgICAgICAgICAgICAgICAoc3RyaW5ncCAoY2FyIGNhbmRpZGF0ZXMpKSA7OyBzdHJp
bmcgbGlzdAogICAgICAgICAgICAgICAgIChzeW1ib2xwIChjYXIgY2FuZGlkYXRlcykpIDs7IHN5
bWJvbCBsaXN0CiAgICAgICAgICAgICAgICAgKGNvbnNwIChjYXIgY2FuZGlkYXRlcykpKSkgOzsg
YWxpc3QKICAoaWdub3JlIGRlZmF1bHQtdG9wIG5hcnJvdyBhZGQtaGlzdG9yeSBrZXltYXApCiAg
KGNvbnN1bHQtLXJlYWQtZGVmYXVsdHMKICAgKHByZXZpZXcta2V5IGNvbnN1bHQtcHJldmlldy1r
ZXkpCiAgIChzb3J0IHQpCiAgIChkZWZhdWx0LXRvcCB0KQogICAobG9va3VwIChsYW1iZGEgKF9p
bnB1dCBfY2FuZHMgeCkgeCkpKQogIChtaW5pYnVmZmVyLXdpdGgtc2V0dXAtaG9vawogICAgICAo
OmFwcGVuZCAobGFtYmRhICgpIChhcHBseSAjJ2NvbnN1bHQtLXJlYWQtc2V0dXAgcHJvbXB0IGNh
bmRpZGF0ZXMgb3B0aW9ucykpKQogICAgKGNvbnN1bHQtLXdpdGgtYXN5bmMgKGFzeW5jIGNhbmRp
ZGF0ZXMpCiAgICAgIDs7IE5PVEU6IERvIG5vdCB1bm5lY2Vzc2FyaWx5IGxldC1iaW5kIHRoZSBs
YW1iZGFzIHRvIGF2b2lkCiAgICAgIDs7IG92ZXJjYXB0dXJpbmcgaW4gdGhlIGludGVycHJldGVy
LiBUaGlzIHdpbGwgbWFrZSBjbG9zdXJlcyBhbmQgdGhlCiAgICAgIDs7IGxhbWJkYSBzdHJpbmcg
cmVwcmVzZW50YXRpb24gbGFyZ2VyLCB3aGljaCBtYWtlcyBkZWJ1Z2dpbmcgbXVjaCB3b3JzZS4K
ICAgICAgOzsgRm9ydHVuYXRlbHkgdGhlIG92ZXJjYXB0dXJpbmcgcHJvYmxlbSBkb2VzIG5vdCBh
ZmZlY3QgdGhlIGJ5dGVjb2RlCiAgICAgIDs7IGludGVycHJldGVyIHdoaWNoIGRvZXMgYSBwcm9w
ZXIgc2NvcGUgYW5hbHlpcy4KICAgICAgKGxldCAoKHJlc3VsdAogICAgICAgICAgICAgKGNvbnN1
bHQtLXdpdGgtcHJldmlldyBwcmV2aWV3LWtleSBwcmV2aWV3CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYW1iZGEgKGlucHV0IGNhbmQpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgbG9va3VwIGlucHV0IChmdW5jYWxsIGFzeW5jICdn
ZXQpIGNhbmQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHktcGFy
dGlhbGx5ICMncnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uc3VsdC0tY29tcGxldGlv
bi1jYW5kaWRhdGUtaG9vaykKICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZCBwcm9tcHQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChzdHIgcHJlZCBhY3Rpb24p
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIGFjdGlvbiAnbWV0YWRh
dGEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYChtZXRhZGF0YQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLEAod2hlbiBhbm5vdGF0ZSBgKChh
bm5vdGF0aW9uLWZ1bmN0aW9uIC4gLGFubm90YXRlKSkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAsQCh3aGVuIGNhdGVnb3J5IGAoKGNhdGVnb3J5IC4gLGNhdGVnb3J5
KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQCh1bmxlc3Mgc29y
dCAnKChjeWNsZS1zb3J0LWZ1bmN0aW9uIC4gaWRlbnRpdHkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5LXNvcnQtZnVuY3Rp
b24gLiBpZGVudGl0eSkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bXBsZXRlLXdpdGgtYWN0aW9uIGFjdGlvbiAoZnVuY2FsbCBhc3luYyAnZ2V0KSBzdHIgcHJlZCkp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWRpY2F0ZSByZXF1aXJlLW1hdGNo
IGluaXRpYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN5bWJvbHAgaGlz
dG9yeSkgaGlzdG9yeSAoY2FkciBoaXN0b3J5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0KSkpKQogICAgICAgIChwY2FzZS1leGhhdXN0aXZlIGhpc3RvcnkKICAgICAg
ICAgIChgKDppbnB1dCAsdmFyKQogICAgICAgICAgIChzZXQgdmFyIChjZHIgKHN5bWJvbC12YWx1
ZSB2YXIpKSkKICAgICAgICAgICAoYWRkLXRvLWhpc3RvcnkgdmFyIChjZHIgcmVzdWx0KSkpCiAg
ICAgICAgICAoKHByZWQgc3ltYm9scCkpKQogICAgICAgIChjYXIgcmVzdWx0KSkpKSkKCihhZHZp
Y2UtYWRkICMnY29uc3VsdC0tcmVhZCA6ZmlsdGVyLWFyZ3MgIydjb25zdWx0LS1tZXJnZS1jb25m
aWcpCgo7Ozs7IEludGVybmFsIEFQSTogY29uc3VsdC0tbXVsdGkKCihkZWZzdWJzdCBjb25zdWx0
LS1tdWx0aS1zb3VyY2UgKHNvdXJjZXMgY2FuZCkKICAiTG9va3VwIHNvdXJjZSBmb3IgQ0FORCBm
cm9tIFNPVVJDRVMgbGlzdC4iCiAgKG50aCAoLSAoYXJlZiBjYW5kIDApIGNvbnN1bHQtLXRvZnUt
Y2hhcikgc291cmNlcykpCgooZGVmdW4gY29uc3VsdC0tbXVsdGktcHJlZGljYXRlIChzb3VyY2Vz
KQogICJSZXR1cm4gcHJlZGljYXRlIGZ1bmN0aW9uIHVzZWQgYnkgYGNvbnN1bHQtLW11bHRpJyB3
aXRoIFNPVVJDRVMuIgogIChsYW1iZGEgKGNhbmQpCiAgICAobGV0KiAoKG5hcnJvdyAocGxpc3Qt
Z2V0IChjb25zdWx0LS1tdWx0aS1zb3VyY2Ugc291cmNlcyBjYW5kKSA6bmFycm93KSkKICAgICAg
ICAgICAodHlwZSAob3IgKGNhci1zYWZlIG5hcnJvdykgbmFycm93IC0xKSkpCiAgICAgIChpZiAo
ZXEgY29uc3VsdC0tbmFycm93IDMyKSA7OyBuYXJyb3dlZCB0byBoaWRkZW4gY2FuZGlkYXRlcwog
ICAgICAgICAgKD0gdHlwZSAzMikKICAgICAgICAoYW5kCiAgICAgICAgICgvPSB0eXBlIDMyKSA7
OyBub24taGlkZGVuIGNhbmRpZGF0ZXMKICAgICAgICAgKG9yIChub3QgY29uc3VsdC0tbmFycm93
KSAoPSB0eXBlIGNvbnN1bHQtLW5hcnJvdykpKSkpKSkKCihkZWZ1biBjb25zdWx0LS1tdWx0aS1u
YXJyb3cgKHNvdXJjZXMpCiAgIlJldHVybiBuYXJyb3cgbGlzdCB1c2VkIGJ5IGBjb25zdWx0LS1t
dWx0aScgd2l0aCBTT1VSQ0VTLiIKICAoZGVscSBuaWwgKG1hcGNhciAobGFtYmRhIChzcmMpCiAg
ICAgICAgICAgICAgICAgICAgICAobGV0ICgobmFycm93IChwbGlzdC1nZXQgc3JjIDpuYXJyb3cp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgKHBsaXN0LWdldCBzcmMgOm5hbWUp
KSkKICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmQKICAgICAgICAgICAgICAgICAgICAgICAg
ICgoY29uc3AgbmFycm93KSBuYXJyb3cpCiAgICAgICAgICAgICAgICAgICAgICAgICAoKGFuZCBu
YXJyb3cgbmFtZSkgKGNvbnMgbmFycm93IG5hbWUpKSkpKQogICAgICAgICAgICAgICAgICAgIHNv
dXJjZXMpKSkKCihkZWZ1biBjb25zdWx0LS1tdWx0aS1hbm5vdGF0ZSAoc291cmNlcyBtYXgtbGVu
KQogICJSZXR1cm4gYW5ub3RhdGlvbiBmdW5jdGlvbiB1c2VkIGJ5IGBjb25zdWx0LS1tdWx0aScg
d2l0aCBTT1VSQ0VTLgoKTUFYLUxFTiBpcyB0aGUgbWF4aW11bSBjYW5kaWRhdGUgbGVuZ3RoLiIK
ICAobGFtYmRhIChjYW5kKQogICAgKGxldCogKChzcmMgKGNvbnN1bHQtLW11bHRpLXNvdXJjZSBz
b3VyY2VzIGNhbmQpKQogICAgICAgICAgIChhbm5vdGF0ZSAocGxpc3QtZ2V0IHNyYyA6YW5ub3Rh
dGUpKQogICAgICAgICAgIChhbm4gKGlmIGFubm90YXRlCiAgICAgICAgICAgICAgICAgICAgKGZ1
bmNhbGwgYW5ub3RhdGUgKGNkciAoZ2V0LXRleHQtcHJvcGVydHkgMCAnY29uc3VsdC1tdWx0aSBj
YW5kKSkpCiAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgc3JjIDpuYW1lKSkpKQogICAgICAo
d2hlbiBhbm4KICAgICAgICAoY29uY2F0IChwcm9wZXJ0aXplICIgIiAnZGlzcGxheSBgKHNwYWNl
IDphbGlnbi10byAoKyBsZWZ0ICxtYXgtbGVuKSkpIGFubikpKSkpCgooZGVmdW4gY29uc3VsdC0t
bXVsdGktbG9va3VwIChzb3VyY2VzKQogICJMb29rdXAgZnVuY3Rpb24gdXNlZCBieSBgY29uc3Vs
dC0tbXVsdGknIHdpdGggU09VUkNFUy4iCiAgKGxhbWJkYSAoXyBjYW5kaWRhdGVzIGNhbmQpCiAg
ICAoaWYtbGV0IChmb3VuZCAobWVtYmVyIGNhbmQgY2FuZGlkYXRlcykpCiAgICAgICAgKGNvbnMg
KGNkciAoZ2V0LXRleHQtcHJvcGVydHkgMCAnY29uc3VsdC1tdWx0aSAoY2FyIGZvdW5kKSkpCiAg
ICAgICAgICAgICAgKGNvbnN1bHQtLW11bHRpLXNvdXJjZSBzb3VyY2VzIGNhbmQpKQogICAgICAo
dW5sZXNzIChzdHJpbmctYmxhbmstcCBjYW5kKQogICAgICAgIChsaXN0IGNhbmQpKSkpKQoKKGRl
ZnVuIGNvbnN1bHQtLW11bHRpLWNhbmRpZGF0ZXMgKHNvdXJjZXMpCiAgIlJldHVybiBjYW5kaWRh
dGVzIGZyb20gU09VUkNFUyBmb3IgYGNvbnN1bHQtLW11bHRpJy4iCiAgKGxldCAoKGlkeCAwKSAo
bWF4LWxlbiAwKSAoY2FuZGlkYXRlcykpCiAgICAoZG9saXN0IChzcmMgc291cmNlcyAoY29ucyAo
KyAzIG1heC1sZW4pIChucmV2ZXJzZSBjYW5kaWRhdGVzKSkpCiAgICAgIChsZXQqICgoZmFjZSAo
cGxpc3QtZ2V0IHNyYyA6ZmFjZSkpCiAgICAgICAgICAgICAoY2F0IChwbGlzdC1nZXQgc3JjIDpj
YXRlZ29yeSkpCiAgICAgICAgICAgICAoaXRlbXMgKHBsaXN0LWdldCBzcmMgOml0ZW1zKSkKICAg
ICAgICAgICAgIChpdGVtcyAoaWYgKGZ1bmN0aW9ucCBpdGVtcykgKGZ1bmNhbGwgaXRlbXMpIGl0
ZW1zKSkpCiAgICAgICAgKGRvbGlzdCAoaXRlbSBpdGVtcykKICAgICAgICAgIChsZXQqICgoY2Fu
ZCAoY29uY2F0IChjaGFyLXRvLXN0cmluZyAoKyBjb25zdWx0LS10b2Z1LWNoYXIgaWR4KSkgaXRl
bSkpCiAgICAgICAgICAgICAgICAgKGxlbiAobGVuZ3RoIGNhbmQpKSkKICAgICAgICAgICAgKGFk
ZC10ZXh0LXByb3BlcnRpZXMgMCAxIChsaXN0ICdpbnZpc2libGUgdCAnY29uc3VsdC1tdWx0aSAo
Y29ucyBjYXQgaXRlbSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmQpCiAg
ICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSAxIGxlbiAnZmFjZSBmYWNlIGNhbmQpCiAgICAg
ICAgICAgICh3aGVuICg+IGxlbiBtYXgtbGVuKSAoc2V0cSBtYXgtbGVuIGxlbikpCiAgICAgICAg
ICAgIChwdXNoIGNhbmQgY2FuZGlkYXRlcykpKSkKICAgICAgKHNldHEgaWR4ICgxKyBpZHgpKSkp
KQoKKGRlZnVuIGNvbnN1bHQtLW11bHRpLXByZXByb2Nlc3MgKHNvdXJjZXMpCiAgIlByZXByb2Nl
c3MgU09VUkNFUywgZmlsdGVyIGJ5IHByZWRpY2F0ZS4iCiAgKHNlcS1maWx0ZXIgKGxhbWJkYSAo
c3JjKQogICAgICAgICAgICAgICAgKGlmLWxldCAocHJlZCAocGxpc3QtZ2V0IHNyYyA6cHJlZGlj
YXRlKSkKICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBwcmVkKQogICAgICAgICAgICAgICAg
ICB0KSkKICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKHNyYykKICAgICAgICAgICAgICAg
ICAgICAgICAgKGlmIChzeW1ib2xwIHNyYykgKHN5bWJvbC12YWx1ZSBzcmMpIHNyYykpCiAgICAg
ICAgICAgICAgICAgICAgICBzb3VyY2VzKSkpCgooZGVmdW4gY29uc3VsdC0tbXVsdGkgKHByb21w
dCBzb3VyY2VzICZyZXN0IG9wdGlvbnMpCiAgIlNlbGVjdCBmcm9tIGNhbmRpZGF0ZXMgdGFrZW4g
ZnJvbSBhIGxpc3Qgb2YgU09VUkNFUy4KClBST01QVCBpcyB0aGUgbWluaWJ1ZmZlciBwcm9tcHQu
Ck9QVElPTlMgaXMgdGhlIHBsaXN0IG9mIG9wdGlvbnMgcGFzc2VkIHRvIGBjb25zdWx0LS1yZWFk
Jy4KClRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzZWxlY3RlZCBjYW5kaWRhdGUgaW4gdGhlIGZv
cm0gKGNvbnMgY2FuZGlkYXRlCnNvdXJjZS12YWx1ZSkuIFRoZSBzb3VyY2VzIG9mIHRoZSBzb3Vy
Y2UgbGlzdCBjYW4gZWl0aGVyIGJlIHN5bWJvbHMgb2Ygc291cmNlCnZhcmlhYmxlcyBvciBzb3Vy
Y2UgdmFsdWVzLiBTb3VyY2UgdmFsdWVzIG11c3QgYmUgcGxpc3RzIHdpdGggdGhlIGZvbGxvd2lu
ZwpmaWVsZHM6CgpSZXF1aXJlZCBzb3VyY2UgZmllbGRzOgoqIDpjYXRlZ29yeSAtIENvbXBsZXRp
b24gY2F0ZWdvcnkuCiogOml0ZW1zIC0gTGlzdCBvZiBjYW5kaWRhdGUgc3RyaW5ncyBvciBmdW5j
dGlvbiByZXR1cm5pbmcgbGlzdCBvZiBzdHJpbmdzLgoKT3B0aW9uYWwgc291cmNlIGZpZWxkczoK
KiA6bmFtZSAtIE5hbWUgb2YgdGhlIHNvdXJjZSwgdXNlZCBmb3IgbmFycm93aW5nIGFuZCBhbm5v
dGF0aW9uLgoqIDpuYXJyb3cgLSBOYXJyb3dpbmcgY2hhcmFjdGVyIG9yIChjaGFyYWN0ZXIgLiBz
dHJpbmcpIHBhaXIuCiogOnByZWRpY2F0ZSAtIEZ1bmN0aW9uIHdoaWNoIG11c3QgcmV0dXJuIHQg
aWYgdGhlIHNvdXJjZSBpcyBlbmFibGVkLgoqIDpmYWNlIC0gRmFjZSB1c2VkIGZvciBoaWdobGln
aHRpbmcgdGhlIGNhbmRpZGF0ZXMuCiogOmFubm90YXRlIC0gQW5ub3RhdGlvbiBmdW5jdGlvbiBj
YWxsZWQgZm9yIGVhY2ggY2FuZGlkYXRlLCByZXR1cm5zIHN0cmluZy4KKiA6aGlzdG9yeSAtIE5h
bWUgb2YgaGlzdG9yeSB2YXJpYWJsZSB0byBhZGQgc2VsZWN0ZWQgY2FuZGlkYXRlLgoqIEFyYml0
cmFyeSBvdGhlciBmaWVsZHMgc3BlY2lmaWMgdG8geW91ciB1c2UgY2FzZS4iCiAgKGxldCogKChz
b3VyY2VzIChjb25zdWx0LS1tdWx0aS1wcmVwcm9jZXNzIHNvdXJjZXMpKQogICAgICAgICAoY2Fu
ZGlkYXRlcwogICAgICAgICAgKGNvbnN1bHQtLXdpdGgtaW5jcmVhc2VkLWdjCiAgICAgICAgICAg
KGxldCAoKGNvbnN1bHQtLWNhY2hlKSkKICAgICAgICAgICAgIChjb25zdWx0LS1tdWx0aS1jYW5k
aWRhdGVzIHNvdXJjZXMpKSkpCiAgICAgICAgIChzZWxlY3RlZCAoYXBwbHkgIydjb25zdWx0LS1y
ZWFkIHByb21wdAogICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgY2FuZGlkYXRlcykKICAg
ICAgICAgICAgICAgICAgICAgICAgICA6Y2F0ZWdvcnkgICdjb25zdWx0LW11bHRpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgOnByZWRpY2F0ZSAoY29uc3VsdC0tbXVsdGktcHJlZGljYXRlIHNv
dXJjZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOm5hcnJvdyAgICAoY29uc3VsdC0tbXVs
dGktbmFycm93IHNvdXJjZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOmFubm90YXRlICAo
Y29uc3VsdC0tbXVsdGktYW5ub3RhdGUgc291cmNlcyAoY2FyIGNhbmRpZGF0ZXMpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgIDpsb29rdXAgICAgKGNvbnN1bHQtLW11bHRpLWxvb2t1cCBzb3Vy
Y2VzKQogICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMpKSkKICAgICh3aGVuLWxldCAo
aGlzdG9yeSAocGxpc3QtZ2V0IChjZHIgc2VsZWN0ZWQpIDpoaXN0b3J5KSkKICAgICAgKGFkZC10
by1oaXN0b3J5IGhpc3RvcnkgKGNhciBzZWxlY3RlZCkpKQogICAgc2VsZWN0ZWQpKQoKOzs7OyBJ
bnRlcm5hbCBBUEk6IGNvbnN1bHQtLXByb21wdAoKKGNsLWRlZnVuIGNvbnN1bHQtLXByb21wdCAo
cHJvbXB0ICZrZXkgaGlzdG9yeSBhZGQtaGlzdG9yeSBpbml0aWFsIGRlZmF1bHQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGtleW1hcCBwcmV2aWV3IChwcmV2aWV3LWtleSBjb25z
dWx0LXByZXZpZXcta2V5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5z
Zm9ybSAobGFtYmRhIChfIHgpIHgpKSkKICAiUmVhZCBmcm9tIG1pbmlidWZmZXIuCgpQUk9NUFQg
aXMgdGhlIHN0cmluZyB0byBwcm9tcHQgd2l0aC4KVFJBTlNGT1JNIGlzIGEgZnVuY3Rpb24gd2hp
Y2ggaXMgYXBwbGllZCB0byB0aGUgY3VycmVudCBpbnB1dCBzdHJpbmcuCkhJU1RPUlkgaXMgdGhl
IHN5bWJvbCBvZiB0aGUgaGlzdG9yeSB2YXJpYWJsZS4KSU5JVElBTCBpcyBpbml0aWFsIGlucHV0
LgpERUZBVUxUIGlzIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHZhbHVlLgpBREQtSElTVE9SWSBpcyBh
IGxpc3Qgb2YgaXRlbXMgdG8gYWRkIHRvIHRoZSBoaXN0b3J5LgpQUkVWSUVXIGlzIGEgcHJldmll
dyBmdW5jdGlvbiwgc2VlIGBjb25zdWx0LS13aXRoLXByZXZpZXcnLgpQUkVWSUVXLUtFWSBhcmUg
dGhlIHByZXZpZXcga2V5cyAobmlsLCAnYW55LCBhIHNpbmdsZSBrZXkgb3IgYSBsaXN0IG9mIGtl
eXMpLgpLRVlNQVAgaXMgYSBjb21tYW5kLXNwZWNpZmljIGtleW1hcC4iCiAgKG1pbmlidWZmZXIt
d2l0aC1zZXR1cC1ob29rCiAgICAgICg6YXBwZW5kIChsYW1iZGEgKCkKICAgICAgICAgICAgICAg
ICAoY29uc3VsdC0tc2V0dXAta2V5bWFwIGtleW1hcCBuaWwgbmlsIHByZXZpZXcta2V5KQogICAg
ICAgICAgICAgICAgIChjb25zdWx0LS1hZGQtaGlzdG9yeSBhZGQtaGlzdG9yeSkpKQogICAgKGNv
bnN1bHQtLXdpdGgtcHJldmlldyBwcmV2aWV3LWtleSBwcmV2aWV3IHRyYW5zZm9ybSAjJ21pbmli
dWZmZXItY29udGVudHMtbm8tcHJvcGVydGllcwogICAgICAocmVhZC1mcm9tLW1pbmlidWZmZXIg
cHJvbXB0IGluaXRpYWwgbmlsIG5pbCBoaXN0b3J5IGRlZmF1bHQpKSkpCgooYWR2aWNlLWFkZCAj
J2NvbnN1bHQtLXByb21wdCA6ZmlsdGVyLWFyZ3MgIydjb25zdWx0LS1tZXJnZS1jb25maWcpCgo7
Ozs7IENvbW1hbmRzCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LW11bHRpLW9jY3VyCgo7OyBzZWUg
aHR0cHM6Ly9naXRodWIuY29tL3JheG9kNTAyL3NlbGVjdHJ1bS9pc3N1ZXMvMjI2Cjs7OyMjI2F1
dG9sb2FkCihkZWZ1biBjb25zdWx0LW11bHRpLW9jY3VyIChidWZzIHJlZ2V4cCAmb3B0aW9uYWwg
bmxpbmVzKQogICJJbXByb3ZlZCB2ZXJzaW9uIG9mIGBtdWx0aS1vY2N1cicgYmFzZWQgb24gYGNv
bXBsZXRpbmctcmVhZC1tdWx0aXBsZScuCgpTZWUgYG11bHRpLW9jY3VyJyBmb3IgdGhlIG1lYW5p
bmcgb2YgdGhlIGFyZ3VtZW50cyBCVUZTLCBSRUdFWFAgYW5kIE5MSU5FUy4iCiAgKGludGVyYWN0
aXZlIChjb25zCiAgICAgICAgICAgICAgICAobWFwY2FyICMnZ2V0LWJ1ZmZlcgogICAgICAgICAg
ICAgICAgICAgICAgICAoY29tcGxldGluZy1yZWFkLW11bHRpcGxlICJCdWZmZXI6ICIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2ludGVybmFsLWNv
bXBsZXRlLWJ1ZmZlcikpCiAgICAgICAgICAgICAgICAob2NjdXItcmVhZC1wcmltYXJ5LWFyZ3Mp
KSkKICAob2NjdXItMSByZWdleHAgbmxpbmVzIGJ1ZnMpKQoKOzs7OzsgQ29tbWFuZDogY29uc3Vs
dC1vdXRsaW5lCgooZGVmdW4gY29uc3VsdC0tb3V0bGluZS1jYW5kaWRhdGVzICgpCiAgIlJldHVy
biBhbGlzdCBvZiBvdXRsaW5lIGhlYWRpbmdzIGFuZCBwb3NpdGlvbnMuIgogIChjb25zdWx0LS1m
b3JiaWQtbWluaWJ1ZmZlcikKICAoY29uc3VsdC0tZm9udGlmeS1hbGwpCiAgKGxldCogKChsaW5l
IChsaW5lLW51bWJlci1hdC1wb3MgKHBvaW50LW1pbikgY29uc3VsdC1saW5lLW51bWJlcnMtd2lk
ZW4pKQogICAgICAgICAoaGVhZGluZy1yZWdleHAgKGNvbmNhdCAiXlxcKD86IiBvdXRsaW5lLXJl
Z2V4cCAiXFwpIikpCiAgICAgICAgIChjYW5kaWRhdGVzKSkKICAgIChzYXZlLWV4Y3Vyc2lvbgog
ICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICAgICAod2hpbGUgKHNhdmUtZXhjdXJzaW9u
IChyZS1zZWFyY2gtZm9yd2FyZCBoZWFkaW5nLXJlZ2V4cCBuaWwgdCkpCiAgICAgICAgKHNldHEg
bGluZSAoKyBsaW5lIChjb25zdWx0LS1jb3VudC1saW5lcyAobWF0Y2gtYmVnaW5uaW5nIDApKSkp
CiAgICAgICAgKHB1c2ggKGxpc3QgKHBvaW50LW1hcmtlcikgbGluZQogICAgICAgICAgICAgICAg
ICAgIChidWZmZXItc3Vic3RyaW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5k
LXBvc2l0aW9uKSkpCiAgICAgICAgICAgICAgY2FuZGlkYXRlcykKICAgICAgICAodW5sZXNzIChl
b2JwKSAoZm9yd2FyZC1jaGFyIDEpKSkpCiAgICAodW5sZXNzIGNhbmRpZGF0ZXMKICAgICAgKHVz
ZXItZXJyb3IgIk5vIGhlYWRpbmdzIikpCiAgICAoY29uc3VsdC0tYWRkLWxpbmUtbnVtYmVyIGxp
bmUgKG5yZXZlcnNlIGNhbmRpZGF0ZXMpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3Vs
dC1vdXRsaW5lICgpCiAgIkp1bXAgdG8gYW4gb3V0bGluZSBoZWFkaW5nLCBvYnRhaW5lZCBieSBt
YXRjaGluZyBhZ2FpbnN0IGBvdXRsaW5lLXJlZ2V4cCcuCgpUaGlzIGNvbW1hbmQgc3VwcG9ydHMg
Y2FuZGlkYXRlIHByZXZpZXcuClRoZSBzeW1ib2wgYXQgcG9pbnQgaXMgYWRkZWQgdG8gdGhlIGZ1
dHVyZSBoaXN0b3J5LiIKICAoaW50ZXJhY3RpdmUpCiAgKGNvbnN1bHQtLWp1bXAKICAgKGNvbnN1
bHQtLXJlYWQKICAgICJHbyB0byBoZWFkaW5nOiAiCiAgICAoY29uc3VsdC0td2l0aC1pbmNyZWFz
ZWQtZ2MgKGNvbnN1bHQtLW91dGxpbmUtY2FuZGlkYXRlcykpCiAgICA6Y2F0ZWdvcnkgJ2NvbnN1
bHQtbG9jYXRpb24KICAgIDpzb3J0IG5pbAogICAgOnJlcXVpcmUtbWF0Y2ggdAogICAgOmxvb2t1
cCAjJ2NvbnN1bHQtLWxpbmUtbWF0Y2gKICAgIDpoaXN0b3J5ICcoOmlucHV0IGNvbnN1bHQtLWxp
bmUtaGlzdG9yeSkKICAgIDphZGQtaGlzdG9yeSAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkKICAg
IDpwcmV2aWV3IChjb25zdWx0LS1wcmV2aWV3LXBvc2l0aW9uKSkpKQoKOzs7OzsgQ29tbWFuZDog
Y29uc3VsdC1lcnJvcgoKKGRlZnVuIGNvbnN1bHQtLWVycm9yLWNhbmRpZGF0ZXMgKCkKICAiUmV0
dXJuIGFsaXN0IG9mIGVycm9ycyBhbmQgcG9zaXRpb25zLiIKICAobGV0ICgoY2FuZGlkYXRlcykK
ICAgICAgICAocG9zIChwb2ludC1taW4pKSkKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAod2hp
bGUgKHNldHEgcG9zIChjb21waWxhdGlvbi1uZXh0LXNpbmdsZS1wcm9wZXJ0eS1jaGFuZ2UgcG9z
ICdjb21waWxhdGlvbi1tZXNzYWdlKSkKICAgICAgICAod2hlbi1sZXQqICgobXNnIChnZXQtdGV4
dC1wcm9wZXJ0eSBwb3MgJ2NvbXBpbGF0aW9uLW1lc3NhZ2UpKQogICAgICAgICAgICAgICAgICAg
IChsb2MgKGNvbXBpbGF0aW9uLS1tZXNzYWdlLT5sb2MgbXNnKSkpCiAgICAgICAgICAoZ290by1j
aGFyIHBvcykKICAgICAgICAgIChwdXNoIChsaXN0CiAgICAgICAgICAgICAgICAgKGNvbnN1bHQt
LWZvbnQtbG9jayAoYnVmZmVyLXN1YnN0cmluZyBwb3MgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCiAg
ICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIKICAgICAgICAgICAgICAgICAgICAg
OzsgdGFrZW4gZnJvbSBjb21waWxlLmVsCiAgICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2Nv
bXBpbGF0aW9uLWZpbmQtZmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50LW1h
cmtlcikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWFyIChjb21waWxhdGlvbi0tbG9j
LT5maWxlLXN0cnVjdCBsb2MpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhZGFyIChj
b21waWxhdGlvbi0tbG9jLT5maWxlLXN0cnVjdCBsb2MpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvbXBpbGF0aW9uLS1maWxlLXN0cnVjdC0+Zm9ybWF0cwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChjb21waWxhdGlvbi0tbG9jLT5maWxlLXN0cnVjdCBsb2MpKSkKICAgICAg
ICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICAgICAgICAgICAgICA7
OyBsb2NhdGlvbiBtaWdodCBiZSBpbnZhbGlkIGJ5IG5vdwogICAgICAgICAgICAgICAgICAgKGln
bm9yZS1lcnJvcnMKICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSAoLSAoY29tcGls
YXRpb24tLWxvYy0+bGluZSBsb2MpIDEpKQogICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1j
aGFyIChjb21waWxhdGlvbi0tbG9jLT5jb2wgbG9jKSkpCiAgICAgICAgICAgICAgICAgICAocG9p
bnQtbWFya2VyKSkKICAgICAgICAgICAgICAgICAocGNhc2UgKGNvbXBpbGF0aW9uLS1tZXNzYWdl
LT50eXBlIG1zZykKICAgICAgICAgICAgICAgICAgICgwID9pKQogICAgICAgICAgICAgICAgICAg
KDEgP3cpCiAgICAgICAgICAgICAgICAgICAoXyA/ZSkpKQogICAgICAgICAgICAgICAgY2FuZGlk
YXRlcykpKSkKICAgIChucmV2ZXJzZSBjYW5kaWRhdGVzKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVm
dW4gY29uc3VsdC1lcnJvciAoKQogICJKdW1wIHRvIGEgY29tcGlsYXRpb24gZXJyb3IgaW4gdGhl
IGN1cnJlbnQgYnVmZmVyLgoKVGhpcyBjb21tYW5kIHdvcmtzIGluIGNvbXBpbGF0aW9uIGJ1ZmZl
cnMgYW5kIGdyZXAgYnVmZmVycy4KVGhlIGNvbW1hbmQgc3VwcG9ydHMgcHJldmlldyBvZiB0aGUg
Y3VycmVudGx5IHNlbGVjdGVkIGVycm9yLiIKICAoaW50ZXJhY3RpdmUpCiAgKHVubGVzcyAoY29t
cGlsYXRpb24tYnVmZmVyLXAgKGN1cnJlbnQtYnVmZmVyKSkKICAgICh1c2VyLWVycm9yICJOb3Qg
YSBjb21waWxhdGlvbiBidWZmZXIiKSkKICAoY29uc3VsdC0tanVtcAogICAoY29uc3VsdC0tcmVh
ZAogICAgIkdvIHRvIGVycm9yOiAiCiAgICAoY29uc3VsdC0td2l0aC1pbmNyZWFzZWQtZ2MgKGNv
bnN1bHQtLWVycm9yLWNhbmRpZGF0ZXMpKQogICAgOmNhdGVnb3J5ICdjb25zdWx0LWVycm9yCiAg
ICA6c29ydCBuaWwKICAgIDpyZXF1aXJlLW1hdGNoIHQKICAgIDpsb29rdXAgIydjb25zdWx0LS1s
b29rdXAtY2FkcgogICAgOm5hcnJvdyBgKCwobGFtYmRhIChjYW5kKSAoPSAoY2FkZHIgY2FuZCkg
Y29uc3VsdC0tbmFycm93KSkKICAgICAgICAgICAgICAoP2UgLiAiRXJyb3IiKQogICAgICAgICAg
ICAgICg/dyAuICJXYXJuaW5nIikKICAgICAgICAgICAgICAoP2kgLiAiSW5mbyIpKQogICAgOmhp
c3RvcnkgJyg6aW5wdXQgY29uc3VsdC0tZXJyb3ItaGlzdG9yeSkKICAgIDpwcmV2aWV3CiAgICAo
Y29uc3VsdC0tcHJldmlldy1wb3NpdGlvbiAnY29uc3VsdC1wcmV2aWV3LWVycm9yKSkpKQoKOzs7
OzsgQ29tbWFuZDogY29uc3VsdC1tYXJrCgooZGVmdW4gY29uc3VsdC0tbWFyay1jYW5kaWRhdGVz
ICgpCiAgIlJldHVybiBhbGlzdCBvZiBsaW5lcyBjb250YWluaW5nIG1hcmtlcnMuClRoZSBhbGlz
dCBjb250YWlucyAoc3RyaW5nIC4gcG9zaXRpb24pIHBhaXJzLiIKICAoY29uc3VsdC0tZm9yYmlk
LW1pbmlidWZmZXIpCiAgKHVubGVzcyAobWFya2VyLXBvc2l0aW9uIChtYXJrLW1hcmtlcikpCiAg
ICAodXNlci1lcnJvciAiTm8gbWFya3MiKSkKICAoY29uc3VsdC0tZm9udGlmeS1hbGwpCiAgKGxl
dCogKChtYXgtbGluZSAwKQogICAgICAgICAoY2FuZGlkYXRlcykpCiAgICAoc2F2ZS1leGN1cnNp
b24KICAgICAgKGRvbGlzdCAobWFya2VyIChjb25zIChtYXJrLW1hcmtlcikgbWFyay1yaW5nKSkK
ICAgICAgICAobGV0ICgocG9zIChtYXJrZXItcG9zaXRpb24gbWFya2VyKSkpCiAgICAgICAgICAo
d2hlbiAoY29uc3VsdC0taW4tcmFuZ2UtcCBwb3MpCiAgICAgICAgICAgIChnb3RvLWNoYXIgcG9z
KQogICAgICAgICAgICA7OyBgbGluZS1udW1iZXItYXQtcG9zJyBpcyBhIHZlcnkgc2xvdyBmdW5j
dGlvbiwgd2hpY2ggc2hvdWxkIGJlIHJlcGxhY2VkIGV2ZXJ5d2hlcmUuCiAgICAgICAgICAgIDs7
IEhvd2V2ZXIgaW4gdGhpcyBjYXNlIHRoZSBzbG93IGxpbmUtbnVtYmVyLWF0LXBvcyBkb2VzIG5v
dCBodXJ0IG11Y2gsIHNpbmNlCiAgICAgICAgICAgIDs7IHRoZSBtYXJrIHJpbmcgaXMgdXN1YWxs
eSBzbWFsbCBzaW5jZSBpdCBpcyBsaW1pdGVkIGJ5IGBtYXJrLXJpbmctbWF4Jy4KICAgICAgICAg
ICAgKGxldCAoKGxpbmUgKGxpbmUtbnVtYmVyLWF0LXBvcyBwb3MgY29uc3VsdC1saW5lLW51bWJl
cnMtd2lkZW4pKSkKICAgICAgICAgICAgICAoc2V0cSBtYXgtbGluZSAobWF4IGxpbmUgbWF4LWxp
bmUpKQogICAgICAgICAgICAgIChwdXNoIChsaXN0IG1hcmtlciBsaW5lIChjb25zdWx0LS1saW5l
LXdpdGgtY3Vyc29yIG1hcmtlcikpCiAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcykpKSkp
KQogICAgKG5yZXZlcnNlIChjb25zdWx0LS1yZW1vdmUtZHVwcyAoY29uc3VsdC0tYWRkLWxpbmUt
bnVtYmVyIG1heC1saW5lIGNhbmRpZGF0ZXMpKSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNv
bnN1bHQtbWFyayAoKQogICJKdW1wIHRvIGEgbWFya2VyIGluIHRoZSBidWZmZXItbG9jYWwgYG1h
cmstcmluZycuCgpUaGUgY29tbWFuZCBzdXBwb3J0cyBwcmV2aWV3IG9mIHRoZSBjdXJyZW50bHkg
c2VsZWN0ZWQgbWFya2VyIHBvc2l0aW9uLgpUaGUgc3ltYm9sIGF0IHBvaW50IGlzIGFkZGVkIHRv
IHRoZSBmdXR1cmUgaGlzdG9yeS4iCiAgKGludGVyYWN0aXZlKQogIChjb25zdWx0LS1qdW1wCiAg
IChjb25zdWx0LS1yZWFkCiAgICAiR28gdG8gbWFyazogIgogICAgKGNvbnN1bHQtLXdpdGgtaW5j
cmVhc2VkLWdjIChjb25zdWx0LS1tYXJrLWNhbmRpZGF0ZXMpKQogICAgOmNhdGVnb3J5ICdjb25z
dWx0LWxvY2F0aW9uCiAgICA6c29ydCBuaWwKICAgIDpyZXF1aXJlLW1hdGNoIHQKICAgIDpsb29r
dXAgIydjb25zdWx0LS1sb29rdXAtbG9jYXRpb24KICAgIDpoaXN0b3J5ICcoOmlucHV0IGNvbnN1
bHQtLWxpbmUtaGlzdG9yeSkKICAgIDphZGQtaGlzdG9yeSAodGhpbmctYXQtcG9pbnQgJ3N5bWJv
bCkKICAgIDpwcmV2aWV3IChjb25zdWx0LS1wcmV2aWV3LXBvc2l0aW9uKSkpKQoKOzs7OzsgQ29t
bWFuZDogY29uc3VsdC1nbG9iYWwtbWFyawoKKGRlZnVuIGNvbnN1bHQtLWdsb2JhbC1tYXJrLWNh
bmRpZGF0ZXMgKCkKICAiUmV0dXJuIGFsaXN0IG9mIGxpbmVzIGNvbnRhaW5pbmcgbWFya2Vycy4K
ClRoZSBhbGlzdCBjb250YWlucyAoc3RyaW5nIC4gcG9zaXRpb24pIHBhaXJzLiIKICAoY29uc3Vs
dC0tZm9yYmlkLW1pbmlidWZmZXIpCiAgKGxldCAoKGNhbmRpZGF0ZXMpKQogICAgKHNhdmUtZXhj
dXJzaW9uCiAgICAgIChkb2xpc3QgKG1hcmtlciBnbG9iYWwtbWFyay1yaW5nKQogICAgICAgIChs
ZXQgKChwb3MgKG1hcmtlci1wb3NpdGlvbiBtYXJrZXIpKQogICAgICAgICAgICAgIChidWYgKG1h
cmtlci1idWZmZXIgbWFya2VyKSkpCiAgICAgICAgICAod2hlbiAoYW5kIHBvcyAoYnVmZmVyLWxp
dmUtcCBidWYpIChub3QgKG1pbmlidWZmZXJwIGJ1ZikpKQogICAgICAgICAgICAod2l0aC1jdXJy
ZW50LWJ1ZmZlciBidWYKICAgICAgICAgICAgICAod2hlbiAoY29uc3VsdC0taW4tcmFuZ2UtcCBw
b3MpCiAgICAgICAgICAgICAgICAoZ290by1jaGFyIHBvcykKICAgICAgICAgICAgICAgIDs7IGBs
aW5lLW51bWJlci1hdC1wb3MnIGlzIHNsb3csIHNlZSBjb21tZW50IGluIGBjb25zdWx0LS1tYXJr
LWNhbmRpZGF0ZXMnLgogICAgICAgICAgICAgICAgKGxldCogKChsaW5lIChsaW5lLW51bWJlci1h
dC1wb3MgcG9zIGNvbnN1bHQtbGluZS1udW1iZXJzLXdpZGVuKSkKICAgICAgICAgICAgICAgICAg
ICAgICAoYmVnaW4gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKICAgICAgICAgICAgICAgICAg
ICAgICAoZW5kIChsaW5lLWVuZC1wb3NpdGlvbikpCiAgICAgICAgICAgICAgICAgICAgICAgKGxv
YyAoY29uc3VsdC0tZm9ybWF0LWxvY2F0aW9uIChidWZmZXItbmFtZSBidWYpIGxpbmUpKSkKICAg
ICAgICAgICAgICAgICAgKGNvbnN1bHQtLWZvbnRpZnktcmVnaW9uIGJlZ2luIGVuZCkKICAgICAg
ICAgICAgICAgICAgKHB1c2ggKGNvbmNhdAogICAgICAgICAgICAgICAgICAgICAgICAgKHByb3Bl
cnRpemUKICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IChwcm9wZXJ0aXplIChjb25z
dWx0LS1lbmNvZGUtbG9jYXRpb24gbWFya2VyKSAnaW52aXNpYmxlIHQpIGxvYykKICAgICAgICAg
ICAgICAgICAgICAgICAgICAnY29uc3VsdC1sb2NhdGlvbiAoY29ucyBtYXJrZXIgbGluZSkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAoY29uc3VsdC0tcmVnaW9uLXdpdGgtY3Vyc29yIGJlZ2lu
IGVuZCBtYXJrZXIpKQogICAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzKSkpKSkpKSkK
ICAgICh1bmxlc3MgY2FuZGlkYXRlcwogICAgICAodXNlci1lcnJvciAiTm8gZ2xvYmFsIG1hcmtz
IikpCiAgICAobnJldmVyc2UgKGNvbnN1bHQtLXJlbW92ZS1kdXBzIGNhbmRpZGF0ZXMpKSkpCgo7
OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1nbG9iYWwtbWFyayAoKQogICJKdW1wIHRvIGEg
bWFya2VyIGluIGBnbG9iYWwtbWFyay1yaW5nJy4KClRoZSBjb21tYW5kIHN1cHBvcnRzIHByZXZp
ZXcgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBtYXJrZXIgcG9zaXRpb24uClRoZSBzeW1ib2wg
YXQgcG9pbnQgaXMgYWRkZWQgdG8gdGhlIGZ1dHVyZSBoaXN0b3J5LiIKICAoaW50ZXJhY3RpdmUp
CiAgKGNvbnN1bHQtLWp1bXAKICAgKGNvbnN1bHQtLXJlYWQKICAgICJHbyB0byBnbG9iYWwgbWFy
azogIgogICAgKGNvbnN1bHQtLXdpdGgtaW5jcmVhc2VkLWdjIChjb25zdWx0LS1nbG9iYWwtbWFy
ay1jYW5kaWRhdGVzKSkKICAgIDs7IFdoaWxlIGBjb25zdWx0LWdsb2JhbC1tYXJrJyBmb3JtYXRz
IHRoZSBjYW5kaWRhdGVzIGluIGdyZXAtbGlrZQogICAgOzsgc3R5bGUsIHdlIGFyZSBzdGlsbCBu
b3QgdXNpbmcgdGhlICd4cmVmLWxvY2F0aW9uIGNhdGVnb3J5LAogICAgOzsgc2luY2UgdGhlIGxv
Y2F0aW9ucyBhcmUgZm9ybWF0dGVkIHVzaW5nIGFiYnJldmlhdGVkIGJ1ZmZlcgogICAgOzsgbmFt
ZXMgaW5zdGVhZCBvZiBmaWxlIHBhdGhzLiBJZiB0aGUgJ3hyZWYtbG9jYXRpb24gY2F0ZWdvcnkK
ICAgIDs7IHdvdWxkIGJlIHVzZWQsIEVtYmFyayB3b3VsZCBlbWJhcmstZXhwb3J0IHRvIGEgYnJv
a2VuIGdyZXAtbW9kZQogICAgOzsgYnVmZmVyLiBCeSB1c2luZyB0aGUgJ2NvbnN1bHQtbG9jYXRp
b24gY2F0ZWdvcnksIEVtYmFyayB3aWxsCiAgICA7OyBleHBvcnQgdG8gYW4gb2NjdXIgYnVmZmVy
IGluc3RlYWQhIFNlZSBhbHNvCiAgICA7OyBodHRwczovL2dpdGh1Yi5jb20vbWluYWQvY29uc3Vs
dC9pc3N1ZXMvMTA3LgogICAgOmNhdGVnb3J5ICdjb25zdWx0LWxvY2F0aW9uCiAgICA6c29ydCBu
aWwKICAgIDpyZXF1aXJlLW1hdGNoIHQKICAgIDpsb29rdXAgIydjb25zdWx0LS1sb29rdXAtbG9j
YXRpb24KICAgIDpoaXN0b3J5ICcoOmlucHV0IGNvbnN1bHQtLWxpbmUtaGlzdG9yeSkKICAgIDph
ZGQtaGlzdG9yeSAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkKICAgIDpwcmV2aWV3IChjb25zdWx0
LS1wcmV2aWV3LXBvc2l0aW9uKSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC1saW5lCgooZGVm
dW4gY29uc3VsdC0tbGluZS1jYW5kaWRhdGVzICgpCiAgIlJldHVybiBhbGlzdCBvZiBsaW5lcyBh
bmQgcG9zaXRpb25zLiIKICAoY29uc3VsdC0tZm9yYmlkLW1pbmlidWZmZXIpCiAgKGNvbnN1bHQt
LWZvbnRpZnktYWxsKQogIChsZXQqICgoZGVmYXVsdC1jYW5kKQogICAgICAgICAoY2FuZGlkYXRl
cykKICAgICAgICAgKGxpbmUgKGxpbmUtbnVtYmVyLWF0LXBvcyAocG9pbnQtbWluKSBjb25zdWx0
LWxpbmUtbnVtYmVycy13aWRlbikpCiAgICAgICAgIChjdXJyLWxpbmUgKGxpbmUtbnVtYmVyLWF0
LXBvcyAocG9pbnQpIGNvbnN1bHQtbGluZS1udW1iZXJzLXdpZGVuKSkKICAgICAgICAgKGxpbmUt
d2lkdGggKGxlbmd0aCAobnVtYmVyLXRvLXN0cmluZyAobGluZS1udW1iZXItYXQtcG9zCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludC1tYXgpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bHQtbGlu
ZS1udW1iZXJzLXdpZGVuKSkpKQogICAgICAgICAoZGVmYXVsdC1jYW5kLWRpc3QgbW9zdC1wb3Np
dGl2ZS1maXhudW0pKQogICAgKGNvbnN1bHQtLWVhY2gtbGluZSBiZWcgZW5kCiAgICAgIChsZXQg
KChzdHIgKGJ1ZmZlci1zdWJzdHJpbmcgYmVnIGVuZCkpKQogICAgICAgICh1bmxlc3MgKHN0cmlu
Zy1ibGFuay1wIHN0cikKICAgICAgICAgIChsZXQgKChjYW5kIChjb25jYXQKICAgICAgICAgICAg
ICAgICAgICAgICAoY29uc3VsdC0tbGluZS1udW1iZXItcHJlZml4IChwb2ludC1tYXJrZXIpIGxp
bmUgbGluZS13aWR0aCkKICAgICAgICAgICAgICAgICAgICAgICBzdHIpKQogICAgICAgICAgICAg
ICAgKGRpc3QgKGFicyAoLSBjdXJyLWxpbmUgbGluZSkpKSkKICAgICAgICAgICAgKHdoZW4gKDwg
ZGlzdCBkZWZhdWx0LWNhbmQtZGlzdCkKICAgICAgICAgICAgICAoc2V0cSBkZWZhdWx0LWNhbmQg
Y2FuZAogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQtY2FuZC1kaXN0IGRpc3QpKQogICAgICAg
ICAgICAocHVzaCBjYW5kIGNhbmRpZGF0ZXMpKSkKICAgICAgICAoc2V0cSBsaW5lICgxKyBsaW5l
KSkpKQogICAgKHVubGVzcyBjYW5kaWRhdGVzCiAgICAgICh1c2VyLWVycm9yICJObyBsaW5lcyIp
KQogICAgKGNvbnMgZGVmYXVsdC1jYW5kIChucmV2ZXJzZSBjYW5kaWRhdGVzKSkpKQoKKGRlZnVu
IGNvbnN1bHQtLWxpbmUtbWF0Y2ggKGlucHV0IGNhbmRpZGF0ZXMgY2FuZCkKICAiTG9va3VwIHBv
c2l0aW9uIG9mIG1hdGNoLgoKSU5QVVQgaXMgdGhlIGlucHV0IHN0cmluZyBlbnRlcmVkIGJ5IHRo
ZSB1c2VyLgpDQU5ESURBVEVTIGlzIHRoZSBsaW5lIGNhbmRpZGF0ZXMgYWxpc3QuCkNBTkQgaXMg
dGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYW5kaWRhdGUuIgogICh3aGVuLWxldCAocG9zIChjb25z
dWx0LS1sb29rdXAtbG9jYXRpb24gaW5wdXQgY2FuZGlkYXRlcyBjYW5kKSkKICAgIChpZiAob3Ig
KHN0cmluZy1ibGFuay1wIGlucHV0KQogICAgICAgICAgICAoZXEgY29uc3VsdC1saW5lLXBvaW50
LXBsYWNlbWVudCAnbGluZS1iZWdpbm5pbmcpKQogICAgICAgIHBvcwogICAgICA7OyBTdHJpcCB1
bmlxdWUgbGluZSBudW1iZXIgcHJlZml4CiAgICAgIChsZXQgKChpIDApCiAgICAgICAgICAgIChu
IChsZW5ndGggY2FuZCkpCiAgICAgICAgICAgIChjbWluIGNvbnN1bHQtLXRvZnUtY2hhcikKICAg
ICAgICAgICAgKGNtYXggKC0gKCsgY29uc3VsdC0tdG9mdS1jaGFyIGNvbnN1bHQtLXRvZnUtcmFu
Z2UpIDEpKSkKICAgICAgICAod2hpbGUgKGFuZCAoPCBpIG4pICg8PSBjbWluIChhcmVmIGNhbmQg
aSkgY21heCkpCiAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpCiAgICAgICAgKHdoZW4gKD4gaSAw
KQogICAgICAgICAgKHNldHEgY2FuZCAoc3Vic3RyaW5nIGNhbmQgaSkpKSkKICAgICAgKGxldCAo
KGJlZyAwKQogICAgICAgICAgICAoZW5kIChsZW5ndGggY2FuZCkpCiAgICAgICAgICAgIDs7IFVz
ZSBjb25zdWx0LWxvY2F0aW9uIGNvbXBsZXRpb24gY2F0ZWdvcnkgd2hlbiBmaWx0ZXJpbmcgbGlu
ZXMKICAgICAgICAgICAgKGZpbHRlciAoY29uc3VsdC0tY29tcGxldGlvbi1maWx0ZXIgJ2NvbnN1
bHQtbG9jYXRpb24gbmlsKSkpCiAgICAgICAgOzsgRmluZCBtYXRjaCBlbmQgcG9zaXRpb24sIHJl
bW92ZSBjaGFyYWN0ZXJzIGZyb20gbGluZSBlbmQgdW50aWwKICAgICAgICA7OyBtYXRjaGluZyBm
YWlscwogICAgICAgIChsZXQgKChzdGVwIDE2KSkKICAgICAgICAgICh3aGlsZSAoPiBzdGVwIDAp
CiAgICAgICAgICAgICh3aGlsZSAoYW5kICg+ICgtIGVuZCBzdGVwKSAwKQogICAgICAgICAgICAg
ICAgICAgICAgICAoZnVuY2FsbCBmaWx0ZXIgaW5wdXQgKGxpc3QgKHN1YnN0cmluZyBjYW5kIDAg
KC0gZW5kIHN0ZXApKSkpKQogICAgICAgICAgICAgIChzZXRxIGVuZCAoLSBlbmQgc3RlcCkpKQog
ICAgICAgICAgICAoc2V0cSBzdGVwICgvIHN0ZXAgMikpKSkKICAgICAgICA7OyBGaW5kIG1hdGNo
IGJlZ2lubmluZyBwb3NpdGlvbiwgcmVtb3ZlIGNoYXJhY3RlcnMgZnJvbSBsaW5lIGJlZ2lubmlu
ZwogICAgICAgIDs7IHVudGlsIG1hdGNoaW5nIGZhaWxzCiAgICAgICAgKHdoZW4gKGVxIGNvbnN1
bHQtbGluZS1wb2ludC1wbGFjZW1lbnQgJ21hdGNoLWJlZ2lubmluZykKICAgICAgICAgIChsZXQg
KChzdGVwIDE2KSkKICAgICAgICAgICAgKHdoaWxlICg+IHN0ZXAgMCkKICAgICAgICAgICAgICAo
d2hpbGUgKGFuZCAoPCAoKyBiZWcgc3RlcCkgZW5kKQogICAgICAgICAgICAgICAgICAgICAgICAg
IChmdW5jYWxsIGZpbHRlciBpbnB1dCAobGlzdCAoc3Vic3RyaW5nIGNhbmQgKCsgYmVnIHN0ZXAp
IGVuZCkpKSkKICAgICAgICAgICAgICAgIChzZXRxIGJlZyAoKyBiZWcgc3RlcCkpKQogICAgICAg
ICAgICAgIChzZXRxIHN0ZXAgKC8gc3RlcCAyKSkpCiAgICAgICAgICAgIChzZXRxIGVuZCBiZWcp
KSkKICAgICAgICA7OyBNYXJrZXIgY2FuIGJlIGRlYWQKICAgICAgICAoaWdub3JlLWVycm9ycyAo
KyBwb3MgZW5kKSkpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1saW5lICgmb3B0
aW9uYWwgaW5pdGlhbCkKICAiU2VhcmNoIGZvciBhIG1hdGNoaW5nIGxpbmUgYW5kIGp1bXAgdG8g
dGhlIGxpbmUgYmVnaW5uaW5nLgoKVGhlIGRlZmF1bHQgY2FuZGlkYXRlIGlzIGEgbm9uLWVtcHR5
IGxpbmUgY2xvc2VzdCB0byBwb2ludC4KVGhpcyBjb21tYW5kIG9iZXlzIG5hcnJvd2luZy4gT3B0
aW9uYWxseSBJTklUSUFMIGlucHV0IGNhbiBiZSBwcm92aWRlZC4KVGhlIHN5bWJvbCBhdCBwb2lu
dCBhbmQgdGhlIGxhc3QgYGlzZWFyY2gtc3RyaW5nJyBpcyBhZGRlZCB0byB0aGUgZnV0dXJlIGhp
c3RvcnkuIgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgoY2FuZGlkYXRlcyAoY29uc3VsdC0td2l0
aC1pbmNyZWFzZWQtZ2MgKGNvbnN1bHQtLWxpbmUtY2FuZGlkYXRlcykpKSkKICAgIChjb25zdWx0
LS1qdW1wCiAgICAgKGNvbnN1bHQtLXJlYWQKICAgICAgIkdvIHRvIGxpbmU6ICIgKGNkciBjYW5k
aWRhdGVzKQogICAgICA6Y2F0ZWdvcnkgJ2NvbnN1bHQtbG9jYXRpb24KICAgICAgOnNvcnQgbmls
CiAgICAgIDpkZWZhdWx0LXRvcCBuaWwKICAgICAgOnJlcXVpcmUtbWF0Y2ggdAogICAgICA7OyBB
bHdheXMgYWRkIGxhc3QgaXNlYXJjaCBzdHJpbmcgdG8gZnV0dXJlIGhpc3RvcnkKICAgICAgOmFk
ZC1oaXN0b3J5IChsaXN0ICh0aGluZy1hdC1wb2ludCAnc3ltYm9sKSBpc2VhcmNoLXN0cmluZykK
ICAgICAgOmhpc3RvcnkgJyg6aW5wdXQgY29uc3VsdC0tbGluZS1oaXN0b3J5KQogICAgICA6bG9v
a3VwICMnY29uc3VsdC0tbGluZS1tYXRjaAogICAgICA6ZGVmYXVsdCAoY2FyIGNhbmRpZGF0ZXMp
CiAgICAgIDs7IEFkZCBpc2VhcmNoLXN0cmluZyBhcyBpbml0aWFsIGlucHV0IGlmIHN0YXJ0aW5n
IGZyb20gaXNlYXJjaAogICAgICA6aW5pdGlhbCAob3IgaW5pdGlhbCAoYW5kIGlzZWFyY2gtbW9k
ZSBpc2VhcmNoLXN0cmluZykpCiAgICAgIDpwcmV2aWV3IChjb25zdWx0LS1wcmV2aWV3LXBvc2l0
aW9uKSkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQta2VlcC1saW5lcwoKKGRlZnN1YnN0IGNv
bnN1bHQtLWtlZXAtbGluZXMtcmVwbGFjZSAoY29udGVudCAmb3B0aW9uYWwgcG9zKQogICJSZXBs
YWNlIGJ1ZmZlciBjb250ZW50IHdpdGggQ09OVEVOVCBhbmQgbW92ZSBwb2ludCB0byBQT1MuIgog
IChkZWxldGUtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpKQogIChpbnNlcnQgY29udGVu
dCkKICAoZ290by1jaGFyIChvciBwb3MgKHBvaW50LW1pbikpKSkKCihkZWZ1biBjb25zdWx0LS1r
ZWVwLWxpbmVzLXN0YXRlIChmaWx0ZXIpCiAgIlN0YXRlIGZ1bmN0aW9uIGZvciBgY29uc3VsdC1r
ZWVwLWxpbmVzJyB3aXRoIEZJTFRFUiBmdW5jdGlvbi4iCiAgKGxldCAoKGxpbmVzKQogICAgICAg
IChidWZmZXItb3JpZyAoY3VycmVudC1idWZmZXIpKQogICAgICAgIChmb250LWxvY2stb3JpZyBm
b250LWxvY2stbW9kZSkKICAgICAgICAocG9pbnQtb3JpZyAocG9pbnQpKQogICAgICAgIChjb250
ZW50LW9yaWcgKGJ1ZmZlci1zdHJpbmcpKQogICAgICAgIChsYXN0LWlucHV0KSkKICAgIChjb25z
dWx0LS1lYWNoLWxpbmUgYmVnIGVuZAogICAgICAocHVzaCAoYnVmZmVyLXN1YnN0cmluZyBiZWcg
ZW5kKSBsaW5lcykpCiAgICAoc2V0cSBsaW5lcyAobnJldmVyc2UgbGluZXMpKQogICAgKGxhbWJk
YSAoaW5wdXQgcmVzdG9yZSkKICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyLW9yaWcK
ICAgICAgICA7OyBSZXN0b3JpbmcgY29udGVudCBhbmQgcG9pbnQgcG9zaXRpb24KICAgICAgICAo
d2hlbiAoYW5kIHJlc3RvcmUgbGFzdC1pbnB1dCkKICAgICAgICAgIDs7IE5vIHVuZG8gcmVjb3Jk
aW5nLCBtb2RpZmljYXRpb24gaG9va3MsIGJ1ZmZlciBtb2RpZmllZC1zdGF0dXMKICAgICAgICAg
ICh3aXRoLXNpbGVudC1tb2RpZmljYXRpb25zIChjb25zdWx0LS1rZWVwLWxpbmVzLXJlcGxhY2Ug
Y29udGVudC1vcmlnIHBvaW50LW9yaWcpKSkKICAgICAgICA7OyBDb21taXR0aW5nIG9yIG5ldyBp
bnB1dCBwcm92aWRlZCAtPiBVcGRhdGUKICAgICAgICAod2hlbiAoYW5kIGlucHV0IDs7IElucHV0
IGhhcyBiZWVuIHBvdmlkZWQKICAgICAgICAgICAgICAgICAgIChvcgogICAgICAgICAgICAgICAg
ICAgIDs7IENvbW1pdHRpbmcsIGJ1dCBub3Qgd2l0aCBlbXB0eSBpbnB1dAogICAgICAgICAgICAg
ICAgICAgIChhbmQgcmVzdG9yZSAobm90IChzdHJpbmctbWF0Y2gtcCAiXiE/ID8kIiBpbnB1dCkp
KQogICAgICAgICAgICAgICAgICAgIDs7IElucHV0IGhhcyBjaGFuZ2VkCiAgICAgICAgICAgICAg
ICAgICAgKG5vdCAoZXF1YWwgaW5wdXQgbGFzdC1pbnB1dCkpKSkKICAgICAgICAgIChsZXQgKChm
aWx0ZXJlZC1jb250ZW50CiAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2gtcCAiXiE/
ID8kIiBpbnB1dCkKICAgICAgICAgICAgICAgICAgICAgOzsgU3BlY2lhbCBjYXNlIHRoZSBlbXB0
eSBpbnB1dCBmb3IgcGVyZm9ybWFuY2UuCiAgICAgICAgICAgICAgICAgICAgIDs7IE90aGVyd2lz
ZSBpdCBjb3VsZCBoYXBwZW4gdGhhdCB0aGUgbWluaWJ1ZmZlciBpcyBlbXB0eSwKICAgICAgICAg
ICAgICAgICAgICAgOzsgYnV0IHRoZSBidWZmZXIgaGFzIG5vdCBiZWVuIHVwZGF0ZWQuCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRlbnQtb3JpZwogICAgICAgICAgICAgICAgICAgKGlmIHJlc3Rv
cmUKICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gKGZ1bmNhbGwgZmlsdGVyIGlu
cHV0IGxpbmVzKSAiXG4iKQogICAgICAgICAgICAgICAgICAgICAod2hpbGUtbm8taW5wdXQKICAg
ICAgICAgICAgICAgICAgICAgICA7OyBIZWF2eSBjb21wdXRhdGlvbiBpcyBpbnRlcnJ1cHRpYmxl
IGlmICpub3QqIGNvbW1pdHRpbmchCiAgICAgICAgICAgICAgICAgICAgICAgOzsgQWxsb2NhdGUg
bmV3IHN0cmluZyBjYW5kaWRhdGVzIHNpbmNlIHRoZSBtYXRjaGluZyBmdW5jdGlvbiBtdXRhdGVz
IQogICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctam9pbiAoZnVuY2FsbCBmaWx0ZXIgaW5w
dXQgKG1hcGNhciAjJ2NvcHktc2VxdWVuY2UgbGluZXMpKSAiXG4iKSkpKSkpCiAgICAgICAgICAg
ICh3aGVuIChzdHJpbmdwIGZpbHRlcmVkLWNvbnRlbnQpCiAgICAgICAgICAgICAgKHdoZW4gZm9u
dC1sb2NrLW1vZGUgKGZvbnQtbG9jay1tb2RlIC0xKSkKICAgICAgICAgICAgICAoaWYgcmVzdG9y
ZQogICAgICAgICAgICAgICAgICAoYXRvbWljLWNoYW5nZS1ncm91cAogICAgICAgICAgICAgICAg
ICAgIDs7IERpc2FibGUgbW9kaWZpY2F0aW9uIGhvb2tzIGZvciBwZXJmb3JtYW5jZQogICAgICAg
ICAgICAgICAgICAgIChsZXQgKChpbmhpYml0LW1vZGlmaWNhdGlvbi1ob29rcyB0KSkKICAgICAg
ICAgICAgICAgICAgICAgIChjb25zdWx0LS1rZWVwLWxpbmVzLXJlcGxhY2UgZmlsdGVyZWQtY29u
dGVudCkpKQogICAgICAgICAgICAgICAgOzsgTm8gdW5kbyByZWNvcmRpbmcsIG1vZGlmaWNhdGlv
biBob29rcywgYnVmZmVyIG1vZGlmaWVkLXN0YXR1cwogICAgICAgICAgICAgICAgKHdpdGgtc2ls
ZW50LW1vZGlmaWNhdGlvbnMKICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLWtlZXAtbGluZXMt
cmVwbGFjZSBmaWx0ZXJlZC1jb250ZW50KQogICAgICAgICAgICAgICAgICAoc2V0cSBsYXN0LWlu
cHV0IGlucHV0KSkpKSkpCiAgICAgICAgOzsgUmVzdG9yZSBmb250LWxvY2sKICAgICAgICAod2hl
biAoYW5kIHJlc3RvcmUgZm9udC1sb2NrLW9yaWcgKG5vdCBmb250LWxvY2stbW9kZSkpCiAgICAg
ICAgICAoZm9udC1sb2NrLW1vZGUpKSkpKSkKCihkZWZ1biBjb25zdWx0LWtlZXAtbGluZXMgKCZv
cHRpb25hbCBmaWx0ZXIgaW5pdGlhbCkKICAiU2VsZWN0IGEgc3Vic2V0IG9mIHRoZSBsaW5lcyBp
biB0aGUgY3VycmVudCBidWZmZXIgd2l0aCBsaXZlIHByZXZpZXcuCgpUaGUgbGluZXMgc2VsZWN0
ZWQgYXJlIHRob3NlIHRoYXQgbWF0Y2ggdGhlIG1pbmlidWZmZXIgaW5wdXQuClRoaXMgY29tbWFu
ZCBvYmV5cyBuYXJyb3dpbmcuCkZJTFRFUiBpcyB0aGUgZmlsdGVyIGZ1bmN0aW9uLgpJTklUSUFM
IGlzIHRoZSBpbml0aWFsIGlucHV0LiIKICA7OyBVc2UgY29uc3VsdC1sb2NhdGlvbiBjb21wbGV0
aW9uIGNhdGVnb3J5IHdoZW4gZmlsdGVyaW5nIGxpbmVzCiAgKGludGVyYWN0aXZlIChsaXN0IChj
b25zdWx0LS1jb21wbGV0aW9uLWZpbHRlci1kaXNwYXRjaCAnY29uc3VsdC1sb2NhdGlvbiAnaGln
aGxpZ2h0KSkpCiAgKGNvbnN1bHQtLWZvcmJpZC1taW5pYnVmZmVyKQogIChiYXJmLWlmLWJ1ZmZl
ci1yZWFkLW9ubHkpCiAgKGNvbnN1bHQtLXdpdGgtaW5jcmVhc2VkLWdjCiAgIChjb25zdWx0LS1m
b250aWZ5LWFsbCkKICAgKGNvbnN1bHQtLXByb21wdAogICAgIktlZXAgbGluZXM6ICIKICAgIDpp
bml0aWFsIGluaXRpYWwKICAgIDpoaXN0b3J5ICdjb25zdWx0LS1rZWVwLWxpbmVzLWhpc3RvcnkK
ICAgIDpwcmV2aWV3IChjb25zdWx0LS1rZWVwLWxpbmVzLXN0YXRlIGZpbHRlcikpKSkKCjs7Ozs7
IENvbW1hbmQ6IGNvbnN1bHQtZm9jdXMtbGluZXMKCihkZWZ1biBjb25zdWx0LS1mb2N1cy1saW5l
cy1zdGF0ZSAoZmlsdGVyKQogICJTdGF0ZSBmdW5jdGlvbiBmb3IgYGNvbnN1bHQtZm9jdXMtbGlu
ZXMnIHdpdGggRklMVEVSIGZ1bmN0aW9uLiIKICAobGV0ICgobGluZXMpIChvdmVybGF5cykgKGxh
c3QtaW5wdXQpKQogICAgKGNvbnN1bHQtLWVhY2gtbGluZSBiZWcgZW5kCiAgICAgIChwdXNoIChi
dWZmZXItc3Vic3RyaW5nIGJlZyBlbmQpIGxpbmVzKQogICAgICAocHVzaCAobWFrZS1vdmVybGF5
IGJlZyAoMSsgZW5kKSkgb3ZlcmxheXMpKQogICAgKGxhbWJkYSAoaW5wdXQgcmVzdG9yZSkKICAg
ICAgOzsgTmV3IGlucHV0IHByb3ZpZGVkIC0+IFVwZGF0ZQogICAgICAod2hlbiAoYW5kIGlucHV0
IChub3QgKGVxdWFsIGlucHV0IGxhc3QtaW5wdXQpKSkKICAgICAgICAoaWYgKHN0cmluZy1tYXRj
aC1wICJeIT8gPyQiIGlucHV0KQogICAgICAgICAgICA7OyBTcGVjaWFsIGNhc2UgdGhlIGVtcHR5
IGlucHV0IGZvciBwZXJmb3JtYW5jZS4KICAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAg
KGRvbGlzdCAob3Ygb3ZlcmxheXMpCiAgICAgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2lu
dmlzaWJsZSBuaWwpKQogICAgICAgICAgICAgIChzZXRxIGxhc3QtaW5wdXQgaW5wdXQpKQogICAg
ICAgICAgKGxldCogKChub3QgKHN0cmluZy1wcmVmaXgtcCAiISAiIGlucHV0KSkKICAgICAgICAg
ICAgICAgICAoc3RyaXBwZWQgKHN0cmluZy1yZW1vdmUtcHJlZml4ICIhICIgaW5wdXQpKQogICAg
ICAgICAgICAgICAgIDs7IEhlYXZ5IGNvbXB1dGF0aW9uIGlzIGludGVycnVwdGlibGUgaWYgKm5v
dCogY29tbWl0dGluZyEKICAgICAgICAgICAgICAgICAoaHQgKGlmIHJlc3RvcmUKICAgICAgICAg
ICAgICAgICAgICAgICAgIChjb25zdWx0LS1zdHJpbmctaGFzaCAoZnVuY2FsbCBmaWx0ZXIgc3Ry
aXBwZWQgbGluZXMpKQogICAgICAgICAgICAgICAgICAgICAgICh3aGlsZS1uby1pbnB1dAogICAg
ICAgICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLXN0cmluZy1oYXNoIChmdW5jYWxsIGZpbHRl
ciBzdHJpcHBlZCBsaW5lcykpKSkpKQogICAgICAgICAgICAod2hlbiAoaGFzaC10YWJsZS1wIGh0
KQogICAgICAgICAgICAgIChsZXQgKChvdiBvdmVybGF5cykgKGxpIGxpbmVzKSkKICAgICAgICAg
ICAgICAgICh3aGlsZSBvdgogICAgICAgICAgICAgICAgICAob3ZlcmxheS1wdXQgKGNhciBvdikg
J2ludmlzaWJsZSAoZXEgbm90IChnZXRoYXNoIChjYXIgbGkpIGh0KSkpCiAgICAgICAgICAgICAg
ICAgIChzZXRxIGxpIChjZHIgbGkpIG92IChjZHIgb3YpKSkpCiAgICAgICAgICAgICAgKHNldHEg
bGFzdC1pbnB1dCBpbnB1dCkpKSkpCiAgICAgIDs7IFN1Y2Vzc2Z1bGx5IHRlcm1pbmF0ZWQgLT4g
UmVtZW1iZXIgaW52aXNpYmxlIG92ZXJsYXlzCiAgICAgICh3aGVuIChhbmQgaW5wdXQgcmVzdG9y
ZSkKICAgICAgICAoZG9saXN0IChvdiBvdmVybGF5cykKICAgICAgICAgIChpZiAob3ZlcmxheS1n
ZXQgb3YgJ2ludmlzaWJsZSkKICAgICAgICAgICAgICAocHVzaCBvdiBjb25zdWx0LS1mb2N1cy1s
aW5lcy1vdmVybGF5cykKICAgICAgICAgICAgKGRlbGV0ZS1vdmVybGF5IG92KSkpCiAgICAgICAg
KHNldHEgb3ZlcmxheXMgbmlsKSkKICAgICAgOzsgV2hlbiB0ZXJtaW5hdGluZyAtPiBEZXN0cm95
IHJlbWFpbmluZyBvdmVybGF5cwogICAgICAod2hlbiByZXN0b3JlCiAgICAgICAgKG1hcGMgIydk
ZWxldGUtb3ZlcmxheSBvdmVybGF5cykpKSkpCgooZGVmdW4gY29uc3VsdC1mb2N1cy1saW5lcyAo
Jm9wdGlvbmFsIHNob3cgZmlsdGVyIGluaXRpYWwpCiAgIkhpZGUgb3Igc2hvdyBsaW5lcyBhY2Nv
cmRpbmcgdG8gRklMVEVSIGZ1bmN0aW9uLgoKT3B0aW9uYWxseSBJTklUSUFMIGlucHV0IGNhbiBi
ZSBwcm92aWRlZC4KU0hPVyBtdXN0IGJlIHQgaW4gb3JkZXIgdG8gc2hvdyB0aGUgaGlkZGVuIGxp
bmVzLiIKICAoaW50ZXJhY3RpdmUKICAgOzsgVXNlIGNvbnN1bHQtbG9jYXRpb24gY29tcGxldGlv
biBjYXRlZ29yeSB3aGVuIGZpbHRlcmluZyBsaW5lcwogICAobGlzdCBjdXJyZW50LXByZWZpeC1h
cmcgKGNvbnN1bHQtLWNvbXBsZXRpb24tZmlsdGVyICdjb25zdWx0LWxvY2F0aW9uIG5pbCkpKQog
IChjb25zdWx0LS1mb3JiaWQtbWluaWJ1ZmZlcikKICAoaWYgc2hvdwogICAgICAocHJvZ24KICAg
ICAgICAobWFwYyAjJ2RlbGV0ZS1vdmVybGF5IGNvbnN1bHQtLWZvY3VzLWxpbmVzLW92ZXJsYXlz
KQogICAgICAgIChzZXRxIGNvbnN1bHQtLWZvY3VzLWxpbmVzLW92ZXJsYXlzIG5pbCkpCiAgICAo
Y29uc3VsdC0td2l0aC1pbmNyZWFzZWQtZ2MKICAgICAoY29uc3VsdC0tZm9udGlmeS1hbGwpCiAg
ICAgKGNvbnN1bHQtLXByb21wdAogICAgICAiRm9jdXMgb24gbGluZXM6ICIKICAgICAgOmluaXRp
YWwgaW5pdGlhbAogICAgICA6aGlzdG9yeSAnY29uc3VsdC0ta2VlcC1saW5lcy1oaXN0b3J5CiAg
ICAgIDpwcmV2aWV3IChjb25zdWx0LS1mb2N1cy1saW5lcy1zdGF0ZSBmaWx0ZXIpKSkpKQoKOzs7
OzsgQ29tbWFuZDogY29uc3VsdC1nb3RvLWxpbmUKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25z
dWx0LWdvdG8tbGluZSAoKQogICJSZWFkIGxpbmUgbnVtYmVyIGFuZCBqdW1wIHRvIHRoZSBsaW5l
IHdpdGggcHJldmlldy4KClRoZSBjb21tYW5kIHJlc3BlY3RzIG5hcnJvd2luZyBhbmQgdGhlIHNl
dHRpbmdzCmBjb25zdWx0LWdvdG8tbGluZS1udW1iZXJzJyBhbmQgYGNvbnN1bHQtbGluZS1udW1i
ZXJzLXdpZGVuJy4iCiAgKGludGVyYWN0aXZlKQogIChjb25zdWx0LS1mb3JiaWQtbWluaWJ1ZmZl
cikKICAoY29uc3VsdC0tbG9jYWwtbGV0ICgoZGlzcGxheS1saW5lLW51bWJlcnMgY29uc3VsdC1n
b3RvLWxpbmUtbnVtYmVycykKICAgICAgICAgICAgICAgICAgICAgICAoZGlzcGxheS1saW5lLW51
bWJlcnMtd2lkZW4gY29uc3VsdC1saW5lLW51bWJlcnMtd2lkZW4pKQogICAgKHdoaWxlIChsZXQg
KChyZXQgKGNvbnN1bHQtLXByb21wdAogICAgICAgICAgICAgICAgICAgICAgICJHbyB0byBsaW5l
OiAiCiAgICAgICAgICAgICAgICAgICAgICAgOnByZXZpZXcgKGNvbnN1bHQtLXByZXZpZXctcG9z
aXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgOnRyYW5zZm9ybQogICAgICAgICAgICAgICAg
ICAgICAgIChsYW1iZGEgKF8gc3RyKQogICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4tbGV0
ICgobGluZSAoYW5kIHN0cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChzdHJpbmctbWF0Y2gtcCAiXltbOmRpZ2l0Ol1dKyQiIHN0cikKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRvLW51bWJlciBzdHIp
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvcyAoYW5kIGxpbmUgKGNv
bnN1bHQtLWxpbmUtcG9zaXRpb24gbGluZSkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGFuZCAoY29uc3VsdC0taW4tcmFuZ2UtcCBwb3MpIHBvcykpKSkpKQogICAgICAgICAgICAgKGlm
LWxldCAocG9zIChjYXIgcmV0KSkKICAgICAgICAgICAgICAgICAoY29uc3VsdC0tanVtcCBwb3Mp
CiAgICAgICAgICAgICAgIChtaW5pYnVmZmVyLW1lc3NhZ2UgKGlmIChzdHJpbmctbWF0Y2gtcCAi
XltbOmRpZ2l0Ol1dKyQiIChjZHIgcmV0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkxpbmUgbnVtYmVyIG91dCBvZiByYW5nZS4iCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiUGxlYXNlIGVudGVyIGEgbnVtYmVyLiIpKQogICAgICAgICAgICAg
ICB0KSkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtcmVjZW50LWZpbGUKCihkZWZ1biBjb25z
dWx0LS1yZWNlbnQtZmlsZS1yZWFkICgpCiAgIlJlYWQgcmVjZW50IGZpbGUgdmlhIGBjb21wbGV0
aW5nLXJlYWQnLiIKICAoY29uc3VsdC0tcmVhZAogICAiRmluZCByZWNlbnQgZmlsZTogIgogICAo
b3IgKG1hcGNhciAjJ2FiYnJldmlhdGUtZmlsZS1uYW1lIHJlY2VudGYtbGlzdCkKICAgICAgICh1
c2VyLWVycm9yICJObyByZWNlbnQgZmlsZXMiKSkKICAgOnNvcnQgbmlsCiAgIDpyZXF1aXJlLW1h
dGNoIHQKICAgOmNhdGVnb3J5ICdmaWxlCiAgIDpoaXN0b3J5ICdmaWxlLW5hbWUtaGlzdG9yeSkp
Cgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1yZWNlbnQtZmlsZSAoKQogICJGaW5kIHJl
Y2VudCB1c2luZyBgY29tcGxldGluZy1yZWFkJy4iCiAgKGludGVyYWN0aXZlKQogIChmaW5kLWZp
bGUgKGNvbnN1bHQtLXJlY2VudC1maWxlLXJlYWQpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBj
b25zdWx0LXJlY2VudC1maWxlLW90aGVyLWZyYW1lICgpCiAgIkZpbmQgcmVjZW50IHVzaW5nIGBj
b21wbGV0aW5nLXJlYWQnLiIKICAoaW50ZXJhY3RpdmUpCiAgKGZpbmQtZmlsZS1vdGhlci1mcmFt
ZSAoY29uc3VsdC0tcmVjZW50LWZpbGUtcmVhZCkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNv
bnN1bHQtcmVjZW50LWZpbGUtb3RoZXItd2luZG93ICgpCiAgIkZpbmQgcmVjZW50IHVzaW5nIGBj
b21wbGV0aW5nLXJlYWQnLiIKICAoaW50ZXJhY3RpdmUpCiAgKGZpbmQtZmlsZS1vdGhlci13aW5k
b3cgKGNvbnN1bHQtLXJlY2VudC1maWxlLXJlYWQpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQt
ZmlsZS1leHRlcm5hbGx5Cgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1maWxlLWV4dGVy
bmFsbHkgKGZpbGUpCiAgIk9wZW4gRklMRSBleHRlcm5hbGx5IHVzaW5nIHRoZSBkZWZhdWx0IGFw
cGxpY2F0aW9uIG9mIHRoZSBzeXN0ZW0uIgogIChpbnRlcmFjdGl2ZSAiZk9wZW4gZXh0ZXJuYWxs
eTogIikKICAoaWYgKGFuZCAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpCiAgICAgICAgICAg
KGZib3VuZHAgJ3czMi1zaGVsbC1leGVjdXRlKSkKICAgICAgKHczMi1zaGVsbC1leGVjdXRlICJv
cGVuIiBmaWxlKQogICAgKGNhbGwtcHJvY2VzcyAocGNhc2Ugc3lzdGVtLXR5cGUKICAgICAgICAg
ICAgICAgICAgICAoJ2RhcndpbiAib3BlbiIpCiAgICAgICAgICAgICAgICAgICAgKCdjeWd3aW4g
ImN5Z3N0YXJ0IikKICAgICAgICAgICAgICAgICAgICAoXyAieGRnLW9wZW4iKSkKICAgICAgICAg
ICAgICAgICAgbmlsIDAgbmlsCiAgICAgICAgICAgICAgICAgIChleHBhbmQtZmlsZS1uYW1lIGZp
bGUpKSkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LWNvbXBsZXRpb24taW4tcmVnaW9uCgo7OyBV
c2UgbWluaWJ1ZmZlciBjb21wbGV0aW9uIGFzIHRoZSBVSSBmb3IgY29tcGxldGlvbi1hdC1wb2lu
dAo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1jb21wbGV0aW9uLWluLXJlZ2lvbiAoc3Rh
cnQgZW5kIGNvbGxlY3Rpb24gJm9wdGlvbmFsIHByZWRpY2F0ZSkKICAiUHJvbXB0IGZvciBjb21w
bGV0aW9uIG9mIHJlZ2lvbiBpbiB0aGUgbWluaWJ1ZmZlciBpZiBub24tdW5pcXVlLgoKVGhlIGZ1
bmN0aW9uIGlzIGNhbGxlZCB3aXRoIDQgYXJndW1lbnRzOiBTVEFSVCBFTkQgQ09MTEVDVElPTiBQ
UkVESUNBVEUuClRoZSBhcmd1bWVudHMgYW5kIGV4cGVjdGVkIHJldHVybiB2YWx1ZSBhcmUgYXMg
c3BlY2lmaWVkIGZvcgpgY29tcGxldGlvbi1pbi1yZWdpb24nLiBVc2UgYXMgYSB2YWx1ZSBmb3Ig
YGNvbXBsZXRpb24taW4tcmVnaW9uLWZ1bmN0aW9uJy4iCiAgKGxldCogKChpbml0aWFsIChidWZm
ZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3RhcnQgZW5kKSkKICAgICAgICAgKGxpbWl0IChj
YXIgKGNvbXBsZXRpb24tYm91bmRhcmllcyBpbml0aWFsIGNvbGxlY3Rpb24gcHJlZGljYXRlICIi
KSkpCiAgICAgICAgIChtZXRhZGF0YSAoY29tcGxldGlvbi1tZXRhZGF0YSBpbml0aWFsIGNvbGxl
Y3Rpb24gcHJlZGljYXRlKSkKICAgICAgICAgKGNhdGVnb3J5IChjb21wbGV0aW9uLW1ldGFkYXRh
LWdldCBtZXRhZGF0YSAnY2F0ZWdvcnkpKQogICAgICAgICAoYWxsIChjb21wbGV0aW9uLWFsbC1j
b21wbGV0aW9ucyBpbml0aWFsIGNvbGxlY3Rpb24gcHJlZGljYXRlCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsZW5ndGggaW5pdGlhbCkpKQogICAgICAgICAoZXhp
dC1zdGF0dXMgJ2ZpbmlzaGVkKQogICAgICAgICAoY29tcGxldGlvbgogICAgICAgICAgKGNvbmQK
ICAgICAgICAgICAoKGF0b20gYWxsKSBuaWwpCiAgICAgICAgICAgKChhbmQgKGNvbnNwIGFsbCkg
KGF0b20gKGNkciBhbGwpKSkKICAgICAgICAgICAgKHNldHEgZXhpdC1zdGF0dXMgJ3NvbGUpCiAg
ICAgICAgICAgIChjb25jYXQgKHN1YnN0cmluZyBpbml0aWFsIDAgbGltaXQpIChjYXIgYWxsKSkp
CiAgICAgICAgICAgKHQgKGxldCAoKGVuYWJsZS1yZWN1cnNpdmUtbWluaWJ1ZmZlcnMgdCkpCiAg
ICAgICAgICAgICAgICAoaWYgKGVxIGNhdGVnb3J5ICdmaWxlKQogICAgICAgICAgICAgICAgICAg
IDs7IFdoZW4gY29tcGxldGluZyBmaWxlcyB3aXRoIGNvbnN1bHQtY29tcGxldGlvbi1pbi1yZWdp
b24sIHRoZSBwb2ludCBpbiB0aGUKICAgICAgICAgICAgICAgICAgICA7OyBtaW5pYnVmZmVyIGdl
dHMgcGxhY2VkIGluaXRpYWxseSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsYXN0IHBhdGggY29t
cG9uZW50LgogICAgICAgICAgICAgICAgICAgIDs7IEJ5IHVzaW5nIHRoZSBmaWxlbmFtZSBhcyBE
SVIgYXJndW1lbnQgKHNlY29uZCBhcmd1bWVudCBvZiByZWFkLWZpbGUtbmFtZSksIGl0CiAgICAg
ICAgICAgICAgICAgICAgOzsgc3RhcnRzIGF0IHRoZSBlbmQgb2YgbWluaWJ1ZmZlciBjb250ZW50
cywgYXMgZm9yIG90aGVyIHR5cGVzIG9mIGNvbXBsZXRpb24uCiAgICAgICAgICAgICAgICAgICAg
OzsgSG93ZXZlciB0aGlzIGlzIHVuZGVmaW5lZCBiZWhhdmlvciBzaW5jZSBpbml0aWFsIGRvZXMg
bm90IG9ubHkgY29udGFpbiB0aGUKICAgICAgICAgICAgICAgICAgICA7OyBkaXJlY3RvcnksIGJ1
dCBhbHNvIHRoZSBmaWxlbmFtZS4KICAgICAgICAgICAgICAgICAgICAocmVhZC1maWxlLW5hbWUK
ICAgICAgICAgICAgICAgICAgICAgIkNvbXBsZXRpb246ICIgaW5pdGlhbCBpbml0aWFsIHQgbmls
IHByZWRpY2F0ZSkKICAgICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAogICAgICAgICAg
ICAgICAgICAgIkNvbXBsZXRpb246ICIgY29sbGVjdGlvbiBwcmVkaWNhdGUgdCBpbml0aWFsKSkp
KSkpKQogICAgKGlmIChudWxsIGNvbXBsZXRpb24pCiAgICAgICAgKHByb2duIChtZXNzYWdlICJO
byBjb21wbGV0aW9uIikgbmlsKQogICAgICAoZGVsZXRlLXJlZ2lvbiBzdGFydCBlbmQpCiAgICAg
IChpbnNlcnQgKHN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGNvbXBsZXRpb24pKQogICAgICAod2hl
bi1sZXQgKGV4aXQgKHBsaXN0LWdldCBjb21wbGV0aW9uLWV4dHJhLXByb3BlcnRpZXMgOmV4aXQt
ZnVuY3Rpb24pKQogICAgICAgIChmdW5jYWxsIGV4aXQgY29tcGxldGlvbiBleGl0LXN0YXR1cykp
CiAgICAgIHQpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtbW9kZS1jb21tYW5kCgooZGVmdW4g
Y29uc3VsdC0tbW9kZS1uYW1lIChtb2RlKQogICJSZXR1cm4gbmFtZSBwYXJ0IG9mIE1PREUuIgog
IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcKICAgImdsb2JhbC1cXCguKlxcKS1tb2RlIiAiXFwx
IgogICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCiAgICAiXFwoLWdsb2JhbFxcKT8tbW9kZSQi
ICIiCiAgICAoaWYgKGVxIG1vZGUgJ2MtbW9kZSkKICAgICAgICAiY2MiCiAgICAgIChzeW1ib2wt
bmFtZSBtb2RlKSkKICAgICdmaXhlZGNhc2UpCiAgICdmaXhlZGNhc2UpKQoKKGRlZnVuIGNvbnN1
bHQtLW1vZGUtY29tbWFuZC1jYW5kaWRhdGVzIChtb2RlcykKICAiRXh0cmFjdCBjb21tYW5kcyBm
cm9tIE1PREVTLgoKVGhlIGxpc3Qgb2YgZmVhdHVyZXMgaXMgc2VhcmNoZWQgZm9yIGZpbGVzIGJl
bG9uZ2luZyB0byB0aGUgbW9kZXMuCkZyb20gdGhlc2UgZmlsZXMsIHRoZSBjb21tYW5kcyBhcmUg
ZXh0cmFjdGVkLiIKICAobGV0KiAoKGNvbW1hbmQtZmlsdGVyIChjb25zdWx0LS1yZWdleHAtZmls
dGVyIChzZXEtZmlsdGVyICMnc3RyaW5ncCBjb25zdWx0LW1vZGUtY29tbWFuZC1maWx0ZXIpKSkK
ICAgICAgICAgKGZlYXR1cmUtZmlsdGVyIChzZXEtZmlsdGVyICMnc3ltYm9scCBjb25zdWx0LW1v
ZGUtY29tbWFuZC1maWx0ZXIpKQogICAgICAgICAobWlub3ItaGFzaCAoY29uc3VsdC0tc3RyaW5n
LWhhc2ggbWlub3ItbW9kZS1saXN0KSkKICAgICAgICAgKG1pbm9yLWxvY2FsLW1vZGVzIChzZXEt
ZmlsdGVyIChsYW1iZGEgKG0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChhbmQgKGdldGhhc2ggbSBtaW5vci1oYXNoKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChsb2NhbC12YXJpYWJsZS1pZi1zZXQtcCBtKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlcykpCiAgICAgICAgIChtaW5v
ci1nbG9iYWwtbW9kZXMgKHNlcS1maWx0ZXIgKGxhbWJkYSAobSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGdldGhhc2ggbSBtaW5vci1oYXNoKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChsb2NhbC12
YXJpYWJsZS1pZi1zZXQtcCBtKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGVzKSkKICAgICAgICAgKG1ham9yLW1vZGVzIChzZXEtcmVtb3ZlIChsYW1iZGEg
KG0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRoYXNoIG0gbWlub3It
aGFzaCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlcykpCiAgICAgICAg
IChtYWpvci1wYXRocy1oYXNoIChjb25zdWx0LS1zdHJpbmctaGFzaCAobWFwY2FyICMnc3ltYm9s
LWZpbGUgbWFqb3ItbW9kZXMpKSkKICAgICAgICAgKG1pbm9yLWxvY2FsLXBhdGhzLWhhc2ggKGNv
bnN1bHQtLXN0cmluZy1oYXNoIChtYXBjYXIgIydzeW1ib2wtZmlsZSBtaW5vci1sb2NhbC1tb2Rl
cykpKQogICAgICAgICAobWlub3ItZ2xvYmFsLXBhdGhzLWhhc2ggKGNvbnN1bHQtLXN0cmluZy1o
YXNoIChtYXBjYXIgIydzeW1ib2wtZmlsZSBtaW5vci1nbG9iYWwtbW9kZXMpKSkKICAgICAgICAg
KG1ham9yLW5hbWUtcmVnZXhwIChyZWdleHAtb3B0IChtYXBjYXIgIydjb25zdWx0LS1tb2RlLW5h
bWUgbWFqb3ItbW9kZXMpKSkKICAgICAgICAgKG1pbm9yLWxvY2FsLW5hbWUtcmVnZXhwIChyZWdl
eHAtb3B0IChtYXBjYXIgIydjb25zdWx0LS1tb2RlLW5hbWUgbWlub3ItbG9jYWwtbW9kZXMpKSkK
ICAgICAgICAgKG1pbm9yLWdsb2JhbC1uYW1lLXJlZ2V4cCAocmVnZXhwLW9wdCAobWFwY2FyICMn
Y29uc3VsdC0tbW9kZS1uYW1lIG1pbm9yLWdsb2JhbC1tb2RlcykpKQogICAgICAgICAoY29tbWFu
ZHMpKQogICAgKGRvbGlzdCAoZmVhdHVyZSBsb2FkLWhpc3RvcnkgY29tbWFuZHMpCiAgICAgICh3
aGVuLWxldCAobmFtZSAoYWxpc3QtZ2V0ICdwcm92aWRlIGZlYXR1cmUpKQogICAgICAgIChsZXQq
ICgocGF0aCAoY2FyIGZlYXR1cmUpKQogICAgICAgICAgICAgICAoZmlsZSAoZmlsZS1uYW1lLW5v
bmRpcmVjdG9yeSBwYXRoKSkKICAgICAgICAgICAgICAgKGtleSAoY29uZAogICAgICAgICAgICAg
ICAgICAgICAoKG1lbXEgbmFtZSBmZWF0dXJlLWZpbHRlcikgbmlsKQogICAgICAgICAgICAgICAg
ICAgICAoKG9yIChnZXRoYXNoIHBhdGggbWFqb3ItcGF0aHMtaGFzaCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgbWFqb3ItbmFtZS1yZWdleHAgZmlsZSkpCiAgICAg
ICAgICAgICAgICAgICAgICA/bSkKICAgICAgICAgICAgICAgICAgICAgKChvciAoZ2V0aGFzaCBw
YXRoIG1pbm9yLWxvY2FsLXBhdGhzLWhhc2gpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0
cmluZy1tYXRjaC1wIG1pbm9yLWxvY2FsLW5hbWUtcmVnZXhwIGZpbGUpKQogICAgICAgICAgICAg
ICAgICAgICAgP2wpCiAgICAgICAgICAgICAgICAgICAgICgob3IgKGdldGhhc2ggcGF0aCBtaW5v
ci1nbG9iYWwtcGF0aHMtaGFzaCkKICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1h
dGNoLXAgbWlub3ItZ2xvYmFsLW5hbWUtcmVnZXhwIGZpbGUpKQogICAgICAgICAgICAgICAgICAg
ICAgP2cpKSkpCiAgICAgICAgICAod2hlbiBrZXkKICAgICAgICAgICAgKGRvbGlzdCAoY21kIChj
ZHIgZmVhdHVyZSkpCiAgICAgICAgICAgICAgKHdoZW4gKGFuZCAoY29uc3AgY21kKQogICAgICAg
ICAgICAgICAgICAgICAgICAgKGVxIChjYXIgY21kKSAnZGVmdW4pCiAgICAgICAgICAgICAgICAg
ICAgICAgICAoY29tbWFuZHAgKGNkciBjbWQpKQogICAgICAgICAgICAgICAgICAgICAgICAgKG5v
dCAoc3RyaW5nLW1hdGNoLXAgY29tbWFuZC1maWx0ZXIgKHN5bWJvbC1uYW1lIChjZHIgY21kKSkp
KQogICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZ2V0IChjZHIgY21kKSAnYnl0ZS1vYnNv
bGV0ZS1pbmZvKSkpCiAgICAgICAgICAgICAgICAocHVzaCAoY29ucyAoY2RyIGNtZCkga2V5KSBj
b21tYW5kcykpKSkpKSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtbW9kZS1jb21t
YW5kICgmcmVzdCBtb2RlcykKICAiUnVuIGEgY29tbWFuZCBmcm9tIGFueSBvZiB0aGUgZ2l2ZW4g
TU9ERVMuCgpJZiBubyBNT0RFUyBhcmUgc3BlY2lmaWVkLCB1c2UgY3VycmVudGx5IGFjdGl2ZSBt
YWpvciBhbmQgbWlub3IgbW9kZXMuIgogIChpbnRlcmFjdGl2ZSkKICAodW5sZXNzIG1vZGVzCiAg
ICAoc2V0cSBtb2RlcyAoY29ucyBtYWpvci1tb2RlCiAgICAgICAgICAgICAgICAgICAgICAoc2Vx
LWZpbHRlciAobGFtYmRhIChtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YW5kIChib3VuZHAgbSkgKHN5bWJvbC12YWx1ZSBtKSkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtaW5vci1tb2RlLWxpc3QpKSkpCiAgKGNvbW1hbmQtZXhlY3V0ZQogICAoaW50
ZXJuCiAgICAoY29uc3VsdC0tcmVhZAogICAgICJNb2RlIGNvbW1hbmQ6ICIKICAgICAoY29uc3Vs
dC0tbW9kZS1jb21tYW5kLWNhbmRpZGF0ZXMgbW9kZXMpCiAgICAgOnByZWRpY2F0ZQogICAgIChs
YW1iZGEgKGNhbmQpCiAgICAgICAoaWYgY29uc3VsdC0tbmFycm93CiAgICAgICAgICAgKD0gKGNk
ciBjYW5kKSBjb25zdWx0LS1uYXJyb3cpCiAgICAgICAgICgvPSAoY2RyIGNhbmQpID9nKSkpCiAg
ICAgOm5hcnJvdyAnKCg/bSAuICJNYWpvciIpCiAgICAgICAgICAgICAgICg/bCAuICJMb2NhbCBN
aW5vciIpCiAgICAgICAgICAgICAgICg/ZyAuICJHbG9iYWwgTWlub3IiKSkKICAgICA6cmVxdWly
ZS1tYXRjaCB0CiAgICAgOmhpc3RvcnkgJ2NvbnN1bHQtLW1vZGUtY29tbWFuZC1oaXN0b3J5CiAg
ICAgOmNhdGVnb3J5ICdjb21tYW5kKSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC15YW5rCgoo
ZGVmdW4gY29uc3VsdC0teWFuay1yZWFkICgpCiAgIk9wZW4ga2lsbCByaW5nIG1lbnUgYW5kIHJl
dHVybiBzZWxlY3RlZCB0ZXh0LiIKICAoY29uc3VsdC0tcmVhZAogICAiWWFuayB0ZXh0OiAiCiAg
IChjb25zdWx0LS1yZW1vdmUtZHVwcyBraWxsLXJpbmcpCiAgIDpoaXN0b3J5IHQgOzsgZGlzYWJs
ZSBoaXN0b3J5CiAgIDpzb3J0IG5pbAogICA6Y2F0ZWdvcnkgJ2NvbnN1bHQteWFuawogICA6cmVx
dWlyZS1tYXRjaCB0CiAgIDpwcmV2aWV3CiAgIDs7IElmIHByZXZpb3VzIGNvbW1hbmQgaXMgeWFu
aywgaGlkZSBwcmV2aW91c2x5IHlhbmtlZCB0ZXh0CiAgIChsZXQqICgob3YpIChwdCAocG9pbnQp
KSAobWsgKG9yIChhbmQgKGVxIGxhc3QtY29tbWFuZCAneWFuaykgKG1hcmsgdCkpIHB0KSkpCiAg
ICAgKGxhbWJkYSAoY2FuZCByZXN0b3JlKQogICAgICAgKGlmIHJlc3RvcmUKICAgICAgICAgICAo
d2hlbiBvdiAoZGVsZXRlLW92ZXJsYXkgb3YpKQogICAgICAgICAodW5sZXNzIG92IChzZXRxIG92
IChjb25zdWx0LS1vdmVybGF5IChtaW4gcHQgbWspIChtYXggcHQgbWspICdpbnZpc2libGUgdCkp
KQogICAgICAgICA7OyBVc2UgYGFkZC1mYWNlLXRleHQtcHJvcGVydHknIG9uIGEgY29weSBvZiAi
Y2FuZCBpbiBvcmRlciB0byBtZXJnZSBmYWNlIHByb3BlcnRpZXMKICAgICAgICAgKHNldHEgY2Fu
ZCAoY29weS1zZXF1ZW5jZSBjYW5kKSkKICAgICAgICAgKGFkZC1mYWNlLXRleHQtcHJvcGVydHkg
MCAobGVuZ3RoIGNhbmQpICdjb25zdWx0LXByZXZpZXcteWFuayB0IGNhbmQpCiAgICAgICAgIDs7
IFVzZSB0aGUgYGJlZm9yZS1zdHJpbmcnIHByb3BlcnR5IHNpbmNlIHRoZSBvdmVybGF5IG1pZ2h0
IGJlIGVtcHR5LgogICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ2JlZm9yZS1zdHJpbmcgY2FuZCkp
KSkpKQoKOzsgSW5zZXJ0IHNlbGVjdGVkIHRleHQuCjs7IEFkYXB0ZWQgZnJvbSB0aGUgRW1hY3Mg
eWFuayBmdW5jdGlvbi4KOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQteWFuayAoKQogICJT
ZWxlY3QgdGV4dCBmcm9tIHRoZSBraWxsIHJpbmcgYW5kIGluc2VydCBpdC4iCiAgKGludGVyYWN0
aXZlKQogIChsZXQgKCh0ZXh0IChjb25zdWx0LS15YW5rLXJlYWQpKSkKICAgIChzZXRxIHlhbmst
d2luZG93LXN0YXJ0ICh3aW5kb3ctc3RhcnQpKQogICAgKHB1c2gtbWFyaykKICAgIChpbnNlcnQt
Zm9yLXlhbmsgdGV4dCkKICAgIChzZXRxIHRoaXMtY29tbWFuZCAneWFuaykKICAgIG5pbCkpCgo7
OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC15YW5rLXBvcCAoJm9wdGlvbmFsIGFyZykKICAi
SWYgdGhlcmUgaXMgYSByZWNlbnQgeWFuayBhY3QgbGlrZSBgeWFuay1wb3AnLgoKT3RoZXJ3aXNl
IHNlbGVjdCB0ZXh0IGZyb20gdGhlIGtpbGwgcmluZyBhbmQgaW5zZXJ0IGl0LgpTZWUgYHlhbmst
cG9wJyBmb3IgdGhlIG1lYW5pbmcgb2YgQVJHLiIKICAoaW50ZXJhY3RpdmUgIipwIikKICAoaWYg
KGVxIGxhc3QtY29tbWFuZCAneWFuaykKICAgICAgKHlhbmstcG9wIChvciBhcmcgMSkpCiAgICAo
Y29uc3VsdC15YW5rKSkpCgo7OyBSZXBsYWNlIGp1c3QteWFua2VkIHRleHQgd2l0aCBzZWxlY3Rl
ZCB0ZXh0Lgo7OyBBZGFwdGVkIGZyb20gdGhlIEVtYWNzIHlhbmstcG9wIGZ1bmN0aW9uLgo7Ozsj
IyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC15YW5rLXJlcGxhY2UgKCkKICAiU2VsZWN0IHRleHQg
ZnJvbSB0aGUga2lsbCByaW5nLgoKSWYgdGhlcmUgd2FzIG5vIHJlY2VudCB5YW5rLCBpbnNlcnQg
dGhlIHRleHQuCk90aGVyd2lzZSByZXBsYWNlIHRoZSBqdXN0LXlhbmtlZCB0ZXh0IHdpdGggdGhl
IHNlbGVjdGVkIHRleHQuIgogIChpbnRlcmFjdGl2ZSkKICAoaWYgKG5vdCAoZXEgbGFzdC1jb21t
YW5kICd5YW5rKSkKICAgICAgKGNvbnN1bHQteWFuaykKICAgIChsZXQgKCh0ZXh0IChjb25zdWx0
LS15YW5rLXJlYWQpKQogICAgICAgICAgKGluaGliaXQtcmVhZC1vbmx5IHQpCiAgICAgICAgICAo
cHQgKHBvaW50KSkKICAgICAgICAgIChtayAobWFyayB0KSkpCiAgICAgIChzZXRxIHRoaXMtY29t
bWFuZCAneWFuaykKICAgICAgKGZ1bmNhbGwgKG9yIHlhbmstdW5kby1mdW5jdGlvbiAnZGVsZXRl
LXJlZ2lvbikgKG1pbiBwdCBtaykgKG1heCBwdCBtaykpCiAgICAgIChzZXRxIHlhbmstdW5kby1m
dW5jdGlvbiBuaWwpCiAgICAgIChzZXQtbWFya2VyIChtYXJrLW1hcmtlcikgcHQgKGN1cnJlbnQt
YnVmZmVyKSkKICAgICAgKGluc2VydC1mb3IteWFuayB0ZXh0KQogICAgICAoc2V0LXdpbmRvdy1z
dGFydCAoc2VsZWN0ZWQtd2luZG93KSB5YW5rLXdpbmRvdy1zdGFydCB0KQogICAgICAoaWYgKDwg
cHQgbWspCiAgICAgICAgICAoZ290by1jaGFyIChwcm9nMSAobWFyayB0KQogICAgICAgICAgICAg
ICAgICAgICAgIChzZXQtbWFya2VyIChtYXJrLW1hcmtlcikgKHBvaW50KSAoY3VycmVudC1idWZm
ZXIpKSkpKSkpCiAgbmlsKQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC1yZWdpc3RlcgoKOzs7IyMj
YXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtcmVnaXN0ZXItd2luZG93IChidWZmZXIgJm9wdGlvbmFs
IHNob3ctZW1wdHkpCiAgIkVuaGFuY2VkIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIGByZWdpc3Rl
ci1wcmV2aWV3Jy4KCkJVRkZFUiBpcyB0aGUgd2luZG93IGJ1ZmZlci4KU0hPVy1FTVBUWSBtdXN0
IGJlIHQgaWYgdGhlIHdpbmRvdyBzaG91bGQgYmUgc2hvd24gZm9yIGFuIGVtcHR5IHJlZ2lzdGVy
IGxpc3QuIgogIChsZXQgKChyZWdzIChzZXEtZmlsdGVyICMnY2RyIHJlZ2lzdGVyLWFsaXN0KSkp
CiAgICAod2hlbiAob3Igc2hvdy1lbXB0eSByZWdzKQogICAgICAod2l0aC1jdXJyZW50LWJ1ZmZl
ci13aW5kb3cgYnVmZmVyCiAgICAgICAgICAoY29ucyAnZGlzcGxheS1idWZmZXItYmVsb3ctc2Vs
ZWN0ZWQKICAgICAgICAgICAgICAgICcoKHdpbmRvdy1oZWlnaHQgLiBmaXQtd2luZG93LXRvLWJ1
ZmZlcikKCSAgICAgICAgICAocHJlc2VydmUtc2l6ZSAuIChuaWwgLiB0KSkpKQogICAgICAgICAg
bmlsCiAgICAgICAgKHNldHEtbG9jYWwgY3Vyc29yLWluLW5vbi1zZWxlY3RlZC13aW5kb3dzIG5p
bCkKICAgICAgICAoc2V0cS1sb2NhbCBtb2RlLWxpbmUtZm9ybWF0IG5pbCkKICAgICAgICAoc2V0
cS1sb2NhbCB3aW5kb3ctbWluLWhlaWdodCAxKQogICAgICAgIChzZXEtZG8taW5kZXhlZAogICAg
ICAgICAobGFtYmRhIChyZWcgaWR4KQogICAgICAgICAgIChsZXQgKChiZWcgKHBvaW50KSkpCiAg
ICAgICAgICAgICAoaW5zZXJ0IChmdW5jYWxsIHJlZ2lzdGVyLXByZXZpZXctZnVuY3Rpb24gcmVn
KSkKICAgICAgICAgICAgICh3aGVuICgvPSAwICglIGlkeCAyKSkKICAgICAgICAgICAgICAgKGNv
bnN1bHQtLW92ZXJsYXkgYmVnIChwb2ludCkgJ2ZhY2UgJ2NvbnN1bHQtemVicmEpKSkpCiAgICAg
ICAgIChzZXEtc29ydCAjJ2Nhci1sZXNzLXRoYW4tY2FyIHJlZ3MpKSkpKSkKCjs7OyMjI2F1dG9s
b2FkCihkZWZ1biBjb25zdWx0LXJlZ2lzdGVyLWZvcm1hdCAocmVnKQogICJFbmhhbmNlZCBwcmV2
aWV3IG9mIHJlZ2lzdGVyIFJFRy4KClRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYXMgYHJlZ2lz
dGVyLXByZXZpZXctZnVuY3Rpb24nLiIKICAoYXBwbHkgIydjb25jYXQKICAgICAgICAgKG1hcGNh
ciAobGFtYmRhIChzKSAoY29uY2F0ICh0cnVuY2F0ZS1zdHJpbmctdG8td2lkdGggcyAxMDAgMCBu
aWwgIuKApiIpICJcbiIpKQogICAgICAgICAgICAgICAgIChzcGxpdC1zdHJpbmcgKGNvbnN1bHQt
LXJlZ2lzdGVyLWZvcm1hdCByZWcpICJcbiIpKSkpCgooZGVmdW4gY29uc3VsdC0tcmVnaXN0ZXIt
Zm9ybWF0IChyZWcpCiAgIkZvcm1hdCByZWdpc3RlciBSRUcgZm9yIHByZXZpZXcuIgogIChwY2Fz
ZS1sZXQgKChgKCxrZXkgLiAsdmFsKSByZWcpKQogICAgKGxldCogKChrZXktc3RyIChzaW5nbGUt
a2V5LWRlc2NyaXB0aW9uIGtleSkpCiAgICAgICAgICAgKGZtdCAoZm9ybWF0ICIlJS0lZHMgIiAo
bWF4IDMgKGxlbmd0aCBrZXktc3RyKSkpKSkKICAgICAgKGNvbmNhdAogICAgICAgKGZvcm1hdCBm
bXQgKHByb3BlcnRpemUga2V5LXN0ciAnZmFjZSAnY29uc3VsdC1rZXkpKQogICAgICAgOzsgU3Bl
Y2lhbCBwcmludGluZyBmb3IgY2VydGFpbiByZWdpc3RlciB0eXBlcwogICAgICAgKGNvbmQKICAg
ICAgICA7OyBEaXNwbGF5IGZ1bGwgc3RyaW5nCiAgICAgICAgKChvciAoc3RyaW5ncCB2YWwpIChz
dHJpbmdwIChjYXItc2FmZSB2YWwpKSkKICAgICAgICAgKHdoZW4gKGNvbnNwIHZhbCkKICAgICAg
ICAgICAoc2V0cSB2YWwgKG1hcGNvbmNhdCAjJ2lkZW50aXR5IHZhbCAiXG4iKSkpCiAgICAgICAg
IChtYXBjb25jYXQgIydpZGVudGl0eQogICAgICAgICAgICAgICAgICAgIChzZXEtdGFrZSAoc3Bs
aXQtc3RyaW5nIChzdHJpbmctdHJpbSB2YWwpICJcbiIpIDMpCiAgICAgICAgICAgICAgICAgICAg
KGZvcm1hdCBmbXQgIlxuIikpKQogICAgICAgIDs7IERpc3BsYXkgJ2ZpbGUtcXVlcnkKICAgICAg
ICAoKGVxIChjYXItc2FmZSB2YWwpICdmaWxlLXF1ZXJ5KQogICAgICAgICAoZm9ybWF0ICIlcyBh
dCBwb3NpdGlvbiAlZCIKICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZSAoYWJicmV2aWF0ZS1m
aWxlLW5hbWUgKGNhZHIgdmFsKSkgJ2ZhY2UgJ2NvbnN1bHQtZmlsZSkKICAgICAgICAgICAgICAg
ICAoY2FkZHIgdmFsKSkpCiAgICAgICAgOzsgRGlzcGxheSBmdWxsIGxpbmUgb2YgYnVmZmVyCiAg
ICAgICAgKChhbmQgKG1hcmtlcnAgdmFsKSAoYnVmZmVyLWxpdmUtcCAobWFya2VyLWJ1ZmZlciB2
YWwpKSkKICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKG1hcmtlci1idWZmZXIgdmFsKQog
ICAgICAgICAgIChzYXZlLXJlc3RyaWN0aW9uCiAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24K
ICAgICAgICAgICAgICAgKHdpZGVuKQogICAgICAgICAgICAgICAoZ290by1jaGFyIHZhbCkKICAg
ICAgICAgICAgICAgKGNvbmNhdAogICAgICAgICAgICAgICAgKGNvbnN1bHQtLWZvcm1hdC1sb2Nh
dGlvbiAoYnVmZmVyLW5hbWUpIChsaW5lLW51bWJlci1hdC1wb3MpKQogICAgICAgICAgICAgICAg
KGNvbnN1bHQtLWxpbmUtd2l0aC1jdXJzb3IgdmFsKSkpKSkpCiAgICAgICAgOzsgRGVmYXVsdCBw
cmludGluZyBmb3IgdGhlIG90aGVyIHR5cGVzCiAgICAgICAgKHQgKHJlZ2lzdGVyLWRlc2NyaWJl
LW9uZWxpbmUga2V5KSkpKSkpKQoKKGRlZnVuIGNvbnN1bHQtLXJlZ2lzdGVyLWFsaXN0ICgpCiAg
IlJldHVybiByZWdpc3RlciBsaXN0IG9yIHJhaXNlIGFuIGVycm9yIGlmIHRoZSBsaXN0IGlzIGVt
cHR5LiIKICA7OyBTb21ldGltZXMsIHJlZ2lzdGVycyBhcmUgbWFkZSB3aXRob3V0IGEgYGNkcicu
CiAgOzsgU3VjaCByZWdpc3RlcnMgZG9uJ3QgZG8gYW55dGhpbmcsIGFuZCBjYW4gYmUgaWdub3Jl
ZC4KICAob3IgKHNlcS1maWx0ZXIgIydjZHIgcmVnaXN0ZXItYWxpc3QpICh1c2VyLWVycm9yICJB
bGwgcmVnaXN0ZXJzIGFyZSBlbXB0eSIpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0
LXJlZ2lzdGVyICgmb3B0aW9uYWwgYXJnKQogICJMb2FkIHJlZ2lzdGVyIGFuZCBlaXRoZXIganVt
cCB0byBsb2NhdGlvbiBvciBpbnNlcnQgdGhlIHN0b3JlZCB0ZXh0LgoKVGhpcyBjb21tYW5kIGlz
IHVzZWZ1bCB0byBzZWFyY2ggdGhlIHJlZ2lzdGVyIGNvbnRlbnRzLiBGb3IgcXVpY2sgYWNjZXNz
IHRvCnJlZ2lzdGVycyBpdCBpcyBzdGlsbCByZWNvbW1lbmRlZCB0byB1c2UgdGhlIHJlZ2lzdGVy
IGZ1bmN0aW9ucwpgY29uc3VsdC1yZWdpc3Rlci1sb2FkJyBhbmQgYGNvbnN1bHQtcmVnaXN0ZXIt
c3RvcmUnIG9yIHRoZSBidWlsdC1pbiBidWlsdC1pbgpyZWdpc3RlciBhY2Nlc3MgZnVuY3Rpb25z
LiBUaGUgY29tbWFuZCBzdXBwb3J0cyBuYXJyb3dpbmcsIHNlZQpgY29uc3VsdC1yZWdpc3Rlci1u
YXJyb3cnLiBNYXJrZXIgcG9zaXRpb25zIGFyZSBwcmV2aWV3ZWQuIFNlZQpganVtcC10by1yZWdp
c3RlcicgYW5kIGBpbnNlcnQtcmVnaXN0ZXInIGZvciB0aGUgbWVhbmluZyBvZiBBUkcuIgogIChp
bnRlcmFjdGl2ZSAiUCIpCiAgKGNvbnN1bHQtcmVnaXN0ZXItbG9hZAogICAoY29uc3VsdC0tcmVh
ZAogICAgIlJlZ2lzdGVyOiAiCiAgICAobWFwY2FyIChsYW1iZGEgKHJlZykgKGNvbnMgKGNvbnN1
bHQtLXJlZ2lzdGVyLWZvcm1hdCByZWcpIChjYXIgcmVnKSkpCiAgICAgICAgICAgIChzb3J0IChj
b25zdWx0LS1yZWdpc3Rlci1hbGlzdCkgIydjYXItbGVzcy10aGFuLWNhcikpCiAgICA6Y2F0ZWdv
cnkgJ2NvbnN1bHQtcmVnaXN0ZXIKICAgIDpwcmV2aWV3CiAgICAobGV0ICgocHJldmlldyAoY29u
c3VsdC0tcHJldmlldy1wb3NpdGlvbikpKQogICAgICAobGFtYmRhIChjYW5kIHJlc3RvcmUpCiAg
ICAgICAgKGZ1bmNhbGwgcHJldmlldwogICAgICAgICAgICAgICAgIDs7IFByZXZpZXcgbWFya2Vy
cwogICAgICAgICAgICAgICAgICh3aGVuLWxldCAocmVnIChnZXQtcmVnaXN0ZXIgY2FuZCkpCiAg
ICAgICAgICAgICAgICAgICAoYW5kIChtYXJrZXJwIHJlZykgcmVnKSkKICAgICAgICAgICAgICAg
ICByZXN0b3JlKSkpCiAgICA6bmFycm93CiAgICAoY29ucwogICAgIChsYW1iZGEgKGNhbmQpCiAg
ICAgICAobGV0ICgocmVnIChnZXQtcmVnaXN0ZXIgKGNkciBjYW5kKSkpKQogICAgICAgICAoc2Vx
LWZpbmQgKGxhbWJkYSAoeCkKICAgICAgICAgICAgICAgICAgICAgKGFuZAogICAgICAgICAgICAg
ICAgICAgICAgKD0gKGNhciB4KSBjb25zdWx0LS1uYXJyb3cpCiAgICAgICAgICAgICAgICAgICAg
ICAoZnVuY2FsbCAoY2FkZHIgeCkgcmVnKSkpCiAgICAgICAgICAgICAgICAgICBjb25zdWx0LXJl
Z2lzdGVyLW5hcnJvdykpKQogICAgIChtYXBjYXIgKHBjYXNlLWxhbWJkYSAoYCgseCAseSAsXykp
IChjb25zIHggeSkpCiAgICAgICAgICAgICBjb25zdWx0LXJlZ2lzdGVyLW5hcnJvdykpCiAgICA6
c29ydCBuaWwKICAgIDpyZXF1aXJlLW1hdGNoIHQKICAgIDpoaXN0b3J5IHQgOzsgZGlzYWJsZSBo
aXN0b3J5CiAgICA6bG9va3VwICMnY29uc3VsdC0tbG9va3VwLWNkcikKICAgYXJnKSkKCjs7OyMj
I2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LXJlZ2lzdGVyLWxvYWQgKHJlZyAmb3B0aW9uYWwgYXJn
KQogICJEbyB3aGF0IEkgbWVhbiB3aXRoIGEgUkVHLgoKRm9yIGEgd2luZG93IGNvbmZpZ3VyYXRp
b24sIHJlc3RvcmUgaXQuIEZvciBhIG51bWJlciBvciB0ZXh0LCBpbnNlcnQgaXQuIEZvciBhCmxv
Y2F0aW9uLCBqdW1wIHRvIGl0LiBTZWUgYGp1bXAtdG8tcmVnaXN0ZXInIGFuZCBgaW5zZXJ0LXJl
Z2lzdGVyJyBmb3IgdGhlCm1lYW5pbmcgb2YgQVJHLiIKICAoaW50ZXJhY3RpdmUKICAgKGxpc3QK
ICAgIChhbmQgKGNvbnN1bHQtLXJlZ2lzdGVyLWFsaXN0KQogICAgICAgICAocmVnaXN0ZXItcmVh
ZC13aXRoLXByZXZpZXcgIkxvYWQgcmVnaXN0ZXI6ICIpKQogICAgY3VycmVudC1wcmVmaXgtYXJn
KSkKICAoY29uZGl0aW9uLWNhc2UgbmlsCiAgICAgIChqdW1wLXRvLXJlZ2lzdGVyIHJlZyBhcmcp
CiAgICAodXNlci1lcnJvciAoaW5zZXJ0LXJlZ2lzdGVyIHJlZyBhcmcpKSkpCgooZGVmdW4gY29u
c3VsdC0tcmVnaXN0ZXItYWN0aW9uIChhY3Rpb24tbGlzdCkKICAiUmVhZCByZWdpc3RlciBrZXkg
YW5kIGV4ZWN1dGUgYWN0aW9uIGZyb20gQUNUSU9OLUxJU1QuCgpUaGlzIGZ1bmN0aW9uIGlzIGRl
cml2ZWQgZnJvbSBgcmVnaXN0ZXItcmVhZC13aXRoLXByZXZpZXcnLiIKICAobGV0KiAoKGJ1ZmZl
ciAiKlJlZ2lzdGVyIFByZXZpZXcqIikKICAgICAgICAgKHByZWZpeCAoY2FyIGFjdGlvbi1saXN0
KSkKICAgICAgICAgKGFjdGlvbi1saXN0IChjZHIgYWN0aW9uLWxpc3QpKQogICAgICAgICAoYWN0
aW9uIChjYXIgKG50aCAwIGFjdGlvbi1saXN0KSkpCiAgICAgICAgIChyZWcpCiAgICAgICAgIChw
cmV2aWV3CiAgICAgICAgICAobGFtYmRhICgpCgkgICAgKHVubGVzcyAoZ2V0LWJ1ZmZlci13aW5k
b3cgYnVmZmVyKQoJICAgICAgKHJlZ2lzdGVyLXByZXZpZXcgYnVmZmVyICdzaG93LWVtcHR5KQog
ICAgICAgICAgICAgICh3aGVuLWxldCAod2luIChnZXQtYnVmZmVyLXdpbmRvdyBidWZmZXIpKQog
ICAgICAgICAgICAgICAgKHdpdGgtc2VsZWN0ZWQtd2luZG93IHdpbgogICAgICAgICAgICAgICAg
ICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCiAgICAgICAgICAgICAgICAgICAgKGdvdG8t
Y2hhciAocG9pbnQtbWF4KSkKICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0CiAgICAgICAgICAg
ICAgICAgICAgIChwcm9wZXJ0aXplIChjb25jYXQgcHJlZml4ICI6ICAiKSAnZmFjZSAnY29uc3Vs
dC1oZWxwKQogICAgICAgICAgICAgICAgICAgICAobWFwY29uY2F0CiAgICAgICAgICAgICAgICAg
ICAgICAobGFtYmRhICh4KQogICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IChwcm9wZXJ0
aXplIChmb3JtYXQgIk0tJWMiIChjYXIgeCkpICdmYWNlICdjb25zdWx0LWtleSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiICIgKHByb3BlcnRpemUgKGNhZHIgeCkgJ2ZhY2UgJ2Nv
bnN1bHQtaGVscCkpKQogICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLWxpc3QgIiAgIikpCiAg
ICAgICAgICAgICAgICAgICAgKGZpdC13aW5kb3ctdG8tYnVmZmVyKSkpKSkpKQoJICh0aW1lciAo
d2hlbiAobnVtYmVycCByZWdpc3Rlci1wcmV2aWV3LWRlbGF5KQoJICAgICAgICAgIChydW4td2l0
aC10aW1lciByZWdpc3Rlci1wcmV2aWV3LWRlbGF5IG5pbCBwcmV2aWV3KSkpCgkgKGhlbHAtY2hh
cnMgKHNlcS1yZW1vdmUgIydnZXQtcmVnaXN0ZXIgKGNvbnMgaGVscC1jaGFyIGhlbHAtZXZlbnQt
bGlzdCkpKSkKICAgICh1bndpbmQtcHJvdGVjdAogICAgICAgICh3aGlsZSAobm90IHJlZykKCSAg
KHdoaWxlIChtZW1xIChyZWFkLWtleSAocHJvcGVydGl6ZSAoY2FkZHIgKGFzc3EgYWN0aW9uIGFj
dGlvbi1saXN0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2ZhY2UgJ21pbmlidWZmZXItcHJvbXB0KSkKCQkgICAgICAgaGVscC1jaGFycykKICAgICAgICAg
ICAgKGZ1bmNhbGwgcHJldmlldykpCiAgICAgICAgICAoY29uZAogICAgICAgICAgICgob3IgKGVx
ID9cQy1nIGxhc3QtaW5wdXQtZXZlbnQpCiAgICAgICAgICAgICAgICAoZXEgJ2VzY2FwZSBsYXN0
LWlucHV0LWV2ZW50KQogICAgICAgICAgICAgICAgKGVxID9cQy1cWyBsYXN0LWlucHV0LWV2ZW50
KSkKICAgICAgICAgICAgKGtleWJvYXJkLXF1aXQpKQogICAgICAgICAgICgoYW5kIChudW1iZXJw
IGxhc3QtaW5wdXQtZXZlbnQpIChhc3NxIChsb2d4b3IgI3g4MDAwMDAwIGxhc3QtaW5wdXQtZXZl
bnQpIGFjdGlvbi1saXN0KSkKICAgICAgICAgICAgKHNldHEgYWN0aW9uIChsb2d4b3IgI3g4MDAw
MDAwIGxhc3QtaW5wdXQtZXZlbnQpKSkKCSAgICgoY2hhcmFjdGVycCBsYXN0LWlucHV0LWV2ZW50
KQogICAgICAgICAgICAoc2V0cSByZWcgbGFzdC1pbnB1dC1ldmVudCkpCiAgICAgICAgICAgKHQg
KGVycm9yICJOb24tY2hhcmFjdGVyIGlucHV0LWV2ZW50IikpKSkKICAgICAgKHdoZW4gKHRpbWVy
cCB0aW1lcikKICAgICAgICAoY2FuY2VsLXRpbWVyIHRpbWVyKSkKICAgICAgKGxldCAoKHcgKGdl
dC1idWZmZXItd2luZG93IGJ1ZmZlcikpKQogICAgICAgICh3aGVuICh3aW5kb3ctbGl2ZS1wIHcp
CiAgICAgICAgICAoZGVsZXRlLXdpbmRvdyB3KSkpCiAgICAgICh3aGVuIChnZXQtYnVmZmVyIGJ1
ZmZlcikKICAgICAgICAoa2lsbC1idWZmZXIgYnVmZmVyKSkpCiAgICAod2hlbiByZWcKICAgICAg
KGZ1bmNhbGwgKGNhZGRkciAoYXNzcSBhY3Rpb24gYWN0aW9uLWxpc3QpKSByZWcpKSkpCgo7Ozsj
IyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1yZWdpc3Rlci1zdG9yZSAoYXJnKQogICJTdG9yZSBy
ZWdpc3RlciBkZXBlbmRlbnQgb24gY3VycmVudCBjb250ZXh0LCBzaG93aW5nIGFuIGFjdGlvbiBt
ZW51LgoKV2l0aCBhbiBhY3RpdmUgcmVnaW9uLCBzdG9yZS9hcHBlbmQvcHJlcGVuZCB0aGUgY29u
dGVudHMsIG9wdGlvbmFsbHkgZGVsZXRpbmcKdGhlIHJlZ2lvbiB3aGVuIGEgcHJlZml4IEFSRyBp
cyBnaXZlbi4gV2l0aCBhIG51bWVyaWMgcHJlZml4IEFSRywgc3RvcmUvYWRkIHRoZQpudW1iZXIu
IE90aGVyd2lzZSBzdG9yZSBwb2ludCwgZnJhbWVzZXQsIHdpbmRvdyBvciBrbWFjcm8uIgogIChp
bnRlcmFjdGl2ZSAiUCIpCiAgKGNvbnN1bHQtLXJlZ2lzdGVyLWFjdGlvbgogICAoY29uZAogICAg
KCh1c2UtcmVnaW9uLXApCiAgICAgKGxldCAoKGJlZyAocmVnaW9uLWJlZ2lubmluZykpCiAgICAg
ICAgICAgKGVuZCAocmVnaW9uLWVuZCkpKQogICAgICAgYCgiUmVnaW9uIgogICAgICAgICAoP2Mg
ImNvcHkiICJDb3B5IHJlZ2lvbiB0byByZWdpc3RlcjogIiAsKGxhbWJkYSAocikgKGNvcHktdG8t
cmVnaXN0ZXIgciBiZWcgZW5kIGFyZyB0KSkpCiAgICAgICAgICg/YSAiYXBwZW5kIiAiQXBwZW5k
IHJlZ2lvbiB0byByZWdpc3RlcjogIiAsKGxhbWJkYSAocikgKGFwcGVuZC10by1yZWdpc3RlciBy
IGJlZyBlbmQgYXJnKSkpCiAgICAgICAgICg/cCAicHJlcGVuZCIgIlByZXBlbmQgcmVnaW9uIHRv
IHJlZ2lzdGVyOiAiICwobGFtYmRhIChyKSAocHJlcGVuZC10by1yZWdpc3RlciByIGJlZyBlbmQg
YXJnKSkpKSkpCiAgICAoKG51bWJlcnAgYXJnKQogICAgIGAoLChmb3JtYXQgIk51bWJlciAlcyIg
YXJnKQogICAgICAgKD9zICJzdG9yZSIgLChmb3JtYXQgIlN0b3JlICVzIGluIHJlZ2lzdGVyOiAi
IGFyZykgLChsYW1iZGEgKHIpIChudW1iZXItdG8tcmVnaXN0ZXIgYXJnIHIpKSkKICAgICAgICg/
YSAiYWRkIiAsKGZvcm1hdCAiQWRkICVzIHRvIHJlZ2lzdGVyOiAiIGFyZykgLChsYW1iZGEgKHIp
IChpbmNyZW1lbnQtcmVnaXN0ZXIgYXJnIHIpKSkpKQogICAgKHQKICAgICBgKCJTdG9yZSIKICAg
ICAgICg/cCAicG9pbnQiICJQb2ludCB0byByZWdpc3RlcjogIiAsIydwb2ludC10by1yZWdpc3Rl
cikKICAgICAgICg/ZiAiZnJhbWVzZXQiICJGcmFtZXNldCB0byByZWdpc3RlcjogIiAsIydmcmFt
ZXNldC10by1yZWdpc3RlcikKICAgICAgICg/dyAid2luZG93IiAiV2luZG93IHRvIHJlZ2lzdGVy
OiAiICwjJ3dpbmRvdy1jb25maWd1cmF0aW9uLXRvLXJlZ2lzdGVyKQogICAgICAgLEAoYW5kIGxh
c3Qta2JkLW1hY3JvIGAoKD9rICJrbWFjcm8iICJLbWFjcm8gdG8gcmVnaXN0ZXI6ICIgLCMna21h
Y3JvLXRvLXJlZ2lzdGVyKSkpKSkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtYm9va21hcmsK
Cjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LWJvb2ttYXJrIChuYW1lKQogICJJZiBib29r
bWFyayBOQU1FIGV4aXN0cywgb3BlbiBpdCwgb3RoZXJ3aXNlIGNyZWF0ZSBhIG5ldyBib29rbWFy
ayB3aXRoIE5BTUUuCgpUaGUgY29tbWFuZCBzdXBwb3J0cyBwcmV2aWV3IG9mIGZpbGUgYm9va21h
cmtzIGFuZCBuYXJyb3dpbmcuIFNlZSB0aGUKdmFyaWFibGUgYGNvbnN1bHQtYm9va21hcmstbmFy
cm93JyBmb3IgdGhlIG5hcnJvd2luZyBjb25maWd1cmF0aW9uLiIKICAoaW50ZXJhY3RpdmUKICAg
KGxpc3QKICAgIChjb25zdWx0LS13aXRoLWZpbGUtcHJldmlldyAob3BlbikKICAgICAgKGNvbnN1
bHQtLXJlYWQKICAgICAgICJCb29rbWFyazogIgogICAgICAgKGJvb2ttYXJrLWFsbC1uYW1lcykK
ICAgICAgIDs7IEFkZCBkZWZhdWx0IG5hbWVzIHRvIGZ1dHVyZSBoaXN0b3J5LgogICAgICAgOzsg
SWdub3JlIGVycm9ycyBzdWNoIHRoYXQgYGNvbnN1bHQtYm9va21hcmsnIGNhbiBiZSB1c2VkIGlu
CiAgICAgICA7OyBidWZmZXJzIHdoaWNoIGFyZSBub3QgYmFja2VkIGJ5IGEgZmlsZS4KICAgICAg
IDphZGQtaGlzdG9yeSAoaWdub3JlLWVycm9ycyAoYm9va21hcmstcHJvcC1nZXQgKGJvb2ttYXJr
LW1ha2UtcmVjb3JkKSAnZGVmYXVsdHMpKQogICAgICAgOm5hcnJvdwogICAgICAgKGNvbnMKICAg
ICAgICAobGFtYmRhIChjYW5kKQogICAgICAgICAgKGlmLWxldCAoKG4gY29uc3VsdC0tbmFycm93
KQogICAgICAgICAgICAgICAgICAgKGJtIChib29rbWFyay1nZXQtYm9va21hcmstcmVjb3JkCiAg
ICAgICAgICAgICAgICAgICAgICAgIChhc3NvYyBjYW5kIGJvb2ttYXJrLWFsaXN0KSkpKQogICAg
ICAgICAgICAgIChlcSBuIChjYWRkciAoYWxpc3QtZ2V0CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAob3IgKGFsaXN0LWdldCAnaGFuZGxlciBibSkgIydib29rbWFyay1kZWZhdWx0LWhhbmRs
ZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdWx0LWJvb2ttYXJrLW5hcnJvdykp
KQogICAgICAgICAgICB0KSkKICAgICAgICAobWFwY2FyIChwY2FzZS1sYW1iZGEgKGAoLHggLHkg
LF8pKSAoY29ucyB4IHkpKQogICAgICAgICAgICAgICAgY29uc3VsdC1ib29rbWFyay1uYXJyb3cp
KQogICAgICAgOnByZXZpZXcKICAgICAgIChsZXQgKChwcmV2aWV3IChjb25zdWx0LS1wcmV2aWV3
LXBvc2l0aW9uKSkpCiAgICAgICAgIChsYW1iZGEgKGNhbmQgcmVzdG9yZSkKICAgICAgICAgICAo
ZnVuY2FsbAogICAgICAgICAgICBwcmV2aWV3CiAgICAgICAgICAgICh3aGVuLWxldCAoYm0gKGJv
b2ttYXJrLWdldC1ib29rbWFyay1yZWNvcmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFz
c29jIGNhbmQgYm9va21hcmstYWxpc3QpKSkKICAgICAgICAgICAgICAoaWYtbGV0KiAoKGZpbGUg
KGFsaXN0LWdldCAnZmlsZW5hbWUgYm0pKQogICAgICAgICAgICAgICAgICAgICAgICAocG9zIChh
bGlzdC1nZXQgJ3Bvc2l0aW9uIGJtKSkKICAgICAgICAgICAgICAgICAgICAgICAgOzsgT25seSBw
cmV2aWV3IGJvb2ttYXJrcyB3aXRob3V0IGEgaGFuZGxlcgogICAgICAgICAgICAgICAgICAgICAg
ICA7OyBha2EgYGJvb2ttYXJrLWRlZmF1bHQtaGFuZGxlcichCiAgICAgICAgICAgICAgICAgICAg
ICAgIChidWYgKGFuZCAobm90IChhbGlzdC1nZXQgJ2hhbmRsZXIgYm0pKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgb3BlbiBmaWxlKSkpKQogICAgICAgICAgICAg
ICAgICAoc2V0LW1hcmtlciAobWFrZS1tYXJrZXIpIHBvcyBidWYpCiAgICAgICAgICAgICAgICAo
dW5sZXNzIHJlc3RvcmUgKG1pbmlidWZmZXItbWVzc2FnZSAiTm8gcHJldmlldyBmb3Igc3BlY2lh
bCBib29rbWFyayIpKQogICAgICAgICAgICAgICAgbmlsKSkKICAgICAgICAgICAgcmVzdG9yZSkp
KQogICAgICAgOmhpc3RvcnkgJ2Jvb2ttYXJrLWhpc3RvcnkKICAgICAgIDpjYXRlZ29yeSAnYm9v
a21hcmspKSkpCiAgKGJvb2ttYXJrLW1heWJlLWxvYWQtZGVmYXVsdC1maWxlKQogIChpZiAoYXNz
b2MgbmFtZSBib29rbWFyay1hbGlzdCkKICAgICAgKGJvb2ttYXJrLWp1bXAgbmFtZSkKICAgIChi
b29rbWFyay1zZXQgbmFtZSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC1hcHJvcG9zCgo7Ozsj
IyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1hcHJvcG9zICgpCiAgIlNlbGVjdCBwYXR0ZXJuIGFu
ZCBjYWxsIGBhcHJvcG9zJy4KClRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBjb21wbGV0aW9uIGlz
IHRoZSBzeW1ib2wgYXQgcG9pbnQuIgogIChpbnRlcmFjdGl2ZSkKICAobGV0ICgocGF0dGVybgog
ICAgICAgICAoY29uc3VsdC0tcmVhZAogICAgICAgICAgIkFwcm9wb3M6ICIKICAgICAgICAgIG9i
YXJyYXkKICAgICAgICAgIDpwcmVkaWNhdGUgKGxhbWJkYSAoeCkgKG9yIChmYm91bmRwIHgpIChi
b3VuZHAgeCkgKGZhY2VwIHgpIChzeW1ib2wtcGxpc3QgeCkpKQogICAgICAgICAgOmhpc3Rvcnkg
J2NvbnN1bHQtLWFwcm9wb3MtaGlzdG9yeQogICAgICAgICAgOmNhdGVnb3J5ICdzeW1ib2wKICAg
ICAgICAgIDpkZWZhdWx0ICh0aGluZy1hdC1wb2ludCAnc3ltYm9sKSkpKQogICAgKHdoZW4gKHN0
cmluZz0gcGF0dGVybiAiIikKICAgICAgKHVzZXItZXJyb3IgIk5vIHBhdHRlcm4gZ2l2ZW4iKSkK
ICAgIChhcHJvcG9zIHBhdHRlcm4pKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtY29tcGxleC1j
b21tYW5kCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1jb21wbGV4LWNvbW1hbmQgKCkK
ICAiU2VsZWN0IGFuZCBldmFsdWF0ZSBjb21tYW5kIGZyb20gdGhlIGNvbW1hbmQgaGlzdG9yeS4K
ClRoaXMgY29tbWFuZCBjYW4gYWN0IGFzIGEgZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgYHJlcGVh
dC1jb21wbGV4LWNvbW1hbmQnLiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCogKChoaXN0b3J5IChv
ciAoY29uc3VsdC0tcmVtb3ZlLWR1cHMgKG1hcGNhciAjJ3ByaW4xLXRvLXN0cmluZyBjb21tYW5k
LWhpc3RvcnkpKQogICAgICAgICAgICAgICAgICAgICAgKHVzZXItZXJyb3IgIlRoZXJlIGFyZSBu
byBwcmV2aW91cyBjb21wbGV4IGNvbW1hbmRzIikpKQogICAgICAgICAoY21kIChyZWFkIChjb25z
dWx0LS1yZWFkCiAgICAgICAgICAgICAgICAgICAgICJDb21tYW5kOiAiIGhpc3RvcnkKICAgICAg
ICAgICAgICAgICAgICAgOmRlZmF1bHQgKGNhciBoaXN0b3J5KQogICAgICAgICAgICAgICAgICAg
ICA6c29ydCBuaWwKICAgICAgICAgICAgICAgICAgICAgOmhpc3RvcnkgdCA7OyBkaXNhYmxlIGhp
c3RvcnkKICAgICAgICAgICAgICAgICAgICAgOmNhdGVnb3J5ICdleHByZXNzaW9uKSkpKQogICAg
OzsgVGFrZW4gZnJvbSBgcmVwZWF0LWNvbXBsZXgtY29tbWFuZCcKICAgIChhZGQtdG8taGlzdG9y
eSAnY29tbWFuZC1oaXN0b3J5IGNtZCkKICAgIChhcHBseSAjJ2Z1bmNhbGwtaW50ZXJhY3RpdmVs
eQoJICAgKGNhciBjbWQpCgkgICAobWFwY2FyIChsYW1iZGEgKGUpIChldmFsIGUgdCkpIChjZHIg
Y21kKSkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtaGlzdG9yeQoKKGRlZnVuIGNvbnN1bHQt
LWN1cnJlbnQtaGlzdG9yeSAoKQogICJSZXR1cm4gdGhlIGhpc3RvcnkgcmVsZXZhbnQgdG8gdGhl
IGN1cnJlbnQgYnVmZmVyLgoKSWYgdGhlIG1pbmlidWZmZXIgaXMgYWN0aXZlLCByZXR1cm5zIHRo
ZSBtaW5pYnVmZmVyIGhpc3RvcnksCm90aGVyd2lzZSB0aGUgaGlzdG9yeSBjb3JyZXNwb25kaW5n
IHRvIHRoZSBtb2RlIGlzIHJldHVybmVkLgpUaGVyZSBpcyBhIHNwZWNpYWwgY2FzZSBmb3IgYHJl
cGVhdC1jb21wbGV4LWNvbW1hbmQnLApmb3Igd2hpY2ggdGhlIGNvbW1hbmQgaGlzdG9yeSBpcyB1
c2VkLiIKICAoY29uZAogICA7OyBJZiBwcmVzc2luZyAiQy14IE0tOiIsIGkuZS4sIGByZXBlYXQt
Y29tcGxleC1jb21tYW5kJywKICAgOzsgd2UgYXJlIGluc3RlYWQgcXVlcnlpbmcgdGhlIGBjb21t
YW5kLWhpc3RvcnknIGFuZCBnZXQgYSBmdWxsIHMtZXhwcmVzc2lvbi4KICAgOzsgQWx0ZXJuYXRp
dmVseSB5b3UgbWlnaHQgd2FudCB0byB1c2UgYGNvbnN1bHQtY29tcGxleC1jb21tYW5kJywKICAg
Ozsgd2hpY2ggY2FuIGFsc28gYmUgYm91bmQgdG8gIkMteCBNLToiIQogICAoKGVxIGxhc3QtY29t
bWFuZCAncmVwZWF0LWNvbXBsZXgtY29tbWFuZCkKICAgIChtYXBjYXIgIydwcmluMS10by1zdHJp
bmcgY29tbWFuZC1oaXN0b3J5KSkKICAgOzsgSW4gdGhlIG1pbmlidWZmZXIgd2UgdXNlIHRoZSBj
dXJyZW50IG1pbmlidWZmZXIgaGlzdG9yeSwKICAgOzsgd2hpY2ggY2FuIGJlIGNvbmZpZ3VyZWQg
Ynkgc2V0dGluZyBgbWluaWJ1ZmZlci1oaXN0b3J5LXZhcmlhYmxlJy4KICAgKChtaW5pYnVmZmVy
cCkKICAgIChpZiAoZXEgbWluaWJ1ZmZlci1oaXN0b3J5LXZhcmlhYmxlIHQpCiAgICAgICAgKHVz
ZXItZXJyb3IgIk1pbmlidWZmZXIgaGlzdG9yeSBpcyBkaXNhYmxlZCBmb3IgYCVzJyIgdGhpcy1j
b21tYW5kKQogICAgICAoc3ltYm9sLXZhbHVlIG1pbmlidWZmZXItaGlzdG9yeS12YXJpYWJsZSkp
KSA7OyAobWluaWJ1ZmZlci1oaXN0b3J5LXZhbHVlKSBpcyBFbWFjcyAyNyBvbmx5CiAgIDs7IE90
aGVyd2lzZSB3ZSB1c2UgYSBtb2RlLXNwZWNpZmljIGhpc3RvcnksIHNlZSBgY29uc3VsdC1tb2Rl
LWhpc3RvcmllcycuCiAgICh0ICh3aGVuLWxldCAoaGlzdG9yeQogICAgICAgICAgICAgICAgIChv
ciAoc2VxLWZpbmQgKGxhbWJkYSAocmluZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFuZCAoZGVyaXZlZC1tb2RlLXAgKGNhciByaW5nKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYm91bmRwIChjZHIgcmluZykpKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN1bHQtbW9kZS1oaXN0b3JpZXMpCiAgICAgICAgICAgICAgICAgICAg
ICh1c2VyLWVycm9yCiAgICAgICAgICAgICAgICAgICAgICAiTm8gaGlzdG9yeSBjb25maWd1cmVk
IGZvciBgJXMnLCBzZWUgYGNvbnN1bHQtbW9kZS1oaXN0b3JpZXMnIgogICAgICAgICAgICAgICAg
ICAgICAgbWFqb3ItbW9kZSkpKQogICAgICAgIChzeW1ib2wtdmFsdWUgKGNkciBoaXN0b3J5KSkp
KSkpCgo7OyBUaGlzIGNvbW1hbmQgaGFzIGJlZW4gYWRvcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHVi
LmNvbS9vYW50b2xpbi9jb21wbGV0aW5nLWhpc3RvcnkvLgo7OzsjIyNhdXRvbG9hZAooZGVmdW4g
Y29uc3VsdC1oaXN0b3J5ICgmb3B0aW9uYWwgaGlzdG9yeSkKICAiSW5zZXJ0IHN0cmluZyBmcm9t
IEhJU1RPUlkgb2YgY3VycmVudCBidWZmZXIuCgpJbiBvcmRlciB0byBzZWxlY3QgZnJvbSBhIHNw
ZWNpZmljIEhJU1RPUlksIHBhc3MgdGhlIGhpc3RvcnkgdmFyaWFibGUgYXMgYXJndW1lbnQuIgog
IChpbnRlcmFjdGl2ZSkKICAobGV0ICgoc3RyIChjb25zdWx0LS1sb2NhbC1sZXQgKChlbmFibGUt
cmVjdXJzaXZlLW1pbmlidWZmZXJzIHQpKQogICAgICAgICAgICAgICAoY29uc3VsdC0tcmVhZAog
ICAgICAgICAgICAgICAgIkhpc3Rvcnk6ICIKICAgICAgICAgICAgICAgIChsZXQgKChoaXN0b3J5
IChvciBoaXN0b3J5IChjb25zdWx0LS1jdXJyZW50LWhpc3RvcnkpKSkpCiAgICAgICAgICAgICAg
ICAgIChvciAoY29uc3VsdC0tcmVtb3ZlLWR1cHMgKGlmIChyaW5nLXAgaGlzdG9yeSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJpbmctZWxlbWVudHMg
aGlzdG9yeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp
c3RvcnkpKQogICAgICAgICAgICAgICAgICAgICAgKHVzZXItZXJyb3IgIkhpc3RvcnkgaXMgZW1w
dHkiKSkpCiAgICAgICAgICAgICAgICA6aGlzdG9yeSB0IDs7IGRpc2FibGUgaGlzdG9yeQogICAg
ICAgICAgICAgICAgOmNhdGVnb3J5IDs7IFJlcG9ydCBjb21tYW5kIGNhdGVnb3J5IGZvciBNLXgg
aGlzdG9yeQogICAgICAgICAgICAgICAgKGFuZCAobWluaWJ1ZmZlcnApCiAgICAgICAgICAgICAg
ICAgICAgIChlcSBtaW5pYnVmZmVyLWhpc3RvcnktdmFyaWFibGUgJ2V4dGVuZGVkLWNvbW1hbmQt
aGlzdG9yeSkKICAgICAgICAgICAgICAgICAgICAgJ2NvbW1hbmQpCiAgICAgICAgICAgICAgICA6
c29ydCBuaWwpKSkpCiAgICAod2hlbiAobWluaWJ1ZmZlcnApCiAgICAgIChkZWxldGUtbWluaWJ1
ZmZlci1jb250ZW50cykpCiAgICAoaW5zZXJ0IChzdWJzdHJpbmctbm8tcHJvcGVydGllcyBzdHIp
KSkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LWlzZWFyY2gKCihkZWZ1biBjb25zdWx0LWlzZWFy
Y2gtZm9yd2FyZCAoJm9wdGlvbmFsIHJldmVyc2UpCiAgIkNvbnRpbnVlIGlzZWFyY2ggZm9yd2Fy
ZCBvcHRpb25hbGx5IGluIFJFVkVSU0UuIgogIChpbnRlcmFjdGl2ZSkKICAoY29uc3VsdC0tcmVx
dWlyZS1taW5pYnVmZmVyKQogIChzZXRxIGlzZWFyY2gtbmV3LWZvcndhcmQgKG5vdCByZXZlcnNl
KSBpc2VhcmNoLW5ldy1ub25pbmNyZW1lbnRhbCBuaWwpCiAgKGZ1bmNhbGwgKG9yIChjb21tYW5k
LXJlbWFwcGluZyAjJ2V4aXQtbWluaWJ1ZmZlcikgIydleGl0LW1pbmlidWZmZXIpKSkKCihkZWZ1
biBjb25zdWx0LWlzZWFyY2gtcmV2ZXJzZSAoJm9wdGlvbmFsIHJldmVyc2UpCiAgIkNvbnRpbnVl
IGlzZWFyY2ggYmFja3dhcmQgb3B0aW9uYWxseSBpbiBSRVZFUlNFLiIKICAoaW50ZXJhY3RpdmUp
CiAgKGNvbnN1bHQtaXNlYXJjaC1mb3J3YXJkIChub3QgcmV2ZXJzZSkpKQoKKGRlZnZhciBjb25z
dWx0LWlzZWFyY2gtbWFwCiAgKGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICAo
ZGVmaW5lLWtleSBtYXAgIlxDLXMiICMnY29uc3VsdC1pc2VhcmNoLWZvcndhcmQpCiAgICAoZGVm
aW5lLWtleSBtYXAgIlxDLXIiICMnY29uc3VsdC1pc2VhcmNoLXJldmVyc2UpCiAgICBtYXApCiAg
IkFkZGl0aW9uYWwga2V5bWFwIHVzZWQgYnkgYGNvbnN1bHQtaXNlYXJjaCcuIikKCihkZWZ1biBj
b25zdWx0LS1pc2VhcmNoLWNhbmRpZGF0ZXMgKG5hcnJvdykKICAiUmV0dXJuIGlzZWFyY2ggaGlz
dG9yeSBjYW5kaWRhdGVzIGNhdGVnb3JpemVkIGJ5IE5BUlJPVy4iCiAgOzsgTk9URTogRG8gbm90
IHRocm93IGFuIGVycm9yIG9uIGVtcHR5IGhpc3RvcnksCiAgOzsgaW4gb3JkZXIgdG8gYWxsb3cg
c3RhcnRpbmcgYSBzZWFyY2guCiAgOzsgV2UgZG8gbm90IDpyZXF1aXJlLW1hdGNoIGhlcmUhCiAg
KGxldCogKChoaXN0b3J5IChpZiAoZXEgdCBzZWFyY2gtZGVmYXVsdC1tb2RlKQogICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCByZWdleHAtc2VhcmNoLXJpbmcgc2VhcmNoLXJpbmcpCiAgICAg
ICAgICAgICAgICAgICAgKGFwcGVuZCBzZWFyY2gtcmluZyByZWdleHAtc2VhcmNoLXJpbmcpKSkK
ICAgICAgICAgKG1heC1sZW4gKGlmIGhpc3RvcnkKICAgICAgICAgICAgICAgICAgICAgICgrIDQg
KGFwcGx5ICMnbWF4IChtYXBjYXIgIydsZW5ndGggaGlzdG9yeSkpKQogICAgICAgICAgICAgICAg
ICAgIDApKSkKICAgIChjb25zdWx0LS1yZW1vdmUtZHVwcwogICAgIChtYXBjYXIKICAgICAgKGxh
bWJkYSAoY2FuZCkKICAgICAgICA7OyBFbWFjcyAyNy4xIHVzZXMgc2V0dGluZ3Mgb24gdGhlIHNl
YXJjaCBzdHJpbmcsIHdlIGNhbiB1c2UgdGhhdCBmb3IgbmFycm93aW5nLgogICAgICAgIChsZXQq
ICgocHJvcHMgKHBsaXN0LW1lbWJlciAodGV4dC1wcm9wZXJ0aWVzLWF0IDAgY2FuZCkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uKSkK
ICAgICAgICAgICAgICAgKHR5cGUgKHBjYXNlIChjYWRyIHByb3BzKQogICAgICAgICAgICAgICAg
ICAgICAgICgoYW5kICduaWwgKGd1YXJkIChub3QgcHJvcHMpKSkgP3IpCiAgICAgICAgICAgICAg
ICAgICAgICAgKCduaWwgICAgICAgICAgICAgICAgICAgICAgICAgICA/bCkKICAgICAgICAgICAg
ICAgICAgICAgICAoJ3dvcmQtc2VhcmNoLXJlZ2V4cCAgICAgICAgICAgID93KQogICAgICAgICAg
ICAgICAgICAgICAgICgnaXNlYXJjaC1zeW1ib2wtcmVnZXhwICAgICAgICAgP3MpCiAgICAgICAg
ICAgICAgICAgICAgICAgKCdjaGFyLWZvbGQtdG8tcmVnZXhwICAgICAgICAgICA/YykKICAgICAg
ICAgICAgICAgICAgICAgICAoXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID91KSkpKQog
ICAgICAgICAgKGNvbmNhdCAocHJvcGVydGl6ZQogICAgICAgICAgICAgICAgICAgOzsgRGlzYW1i
aWd1YXRlIGhpc3RvcnkgaXRlbXMuIFRoZSBzYW1lIHN0cmluZyBjb3VsZAogICAgICAgICAgICAg
ICAgICAgOzsgb2NjdXIgd2l0aCBkaWZmZXJlbnQgc2VhcmNoIHR5cGVzLgogICAgICAgICAgICAg
ICAgICAgKGNoYXItdG8tc3RyaW5nICgrIGNvbnN1bHQtLXRvZnUtY2hhciB0eXBlKSkKICAgICAg
ICAgICAgICAgICAgICdpbnZpc2libGUgdAogICAgICAgICAgICAgICAgICAgJ2NvbnN1bHQtLWFu
bm90YXRpb24KICAgICAgICAgICAgICAgICAgIChjb25jYXQgKG1ha2Utc3RyaW5nICgtIG1heC1s
ZW4gKGxlbmd0aCBjYW5kKSkgMzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC1n
ZXQgdHlwZSBuYXJyb3cpKSkKICAgICAgICAgICAgICAgICAgY2FuZCkpKQogICAgICBoaXN0b3J5
KSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtaXNlYXJjaCAoKQogICJSZWFkIGEg
c2VhcmNoIHN0cmluZyB3aXRoIGNvbXBsZXRpb24gZnJvbSBoaXN0b3J5LgoKVGhpcyByZXBsYWNl
cyB0aGUgY3VycmVudCBzZWFyY2ggc3RyaW5nIGlmIElzZWFyY2ggaXMgYWN0aXZlLCBhbmQKc3Rh
cnRzIGEgbmV3IElzZWFyY2ggc2Vzc2lvbiBvdGhlcndpc2UuIgogIChpbnRlcmFjdGl2ZSkKICAo
Y29uc3VsdC0tZm9yYmlkLW1pbmlidWZmZXIpCiAgKGxldCAoKGlzZWFyY2gtbWVzc2FnZS1mdW5j
dGlvbiAnaWdub3JlKSA7OyBBdm9pZCBmbGlja2VyIGluIGVjaG8gYXJlYQogICAgICAgIChpbmhp
Yml0LXJlZGlzcGxheSB0KSAgICAgICAgICAgICAgOzsgQXZvaWQgZmxpY2tlciBpbiBtb2RlIGxp
bmUKICAgICAgICAobmFycm93ICcoKD9jIC4gIkNoYXIiKQogICAgICAgICAgICAgICAgICAoP3Ug
LiAiQ3VzdG9tIikKICAgICAgICAgICAgICAgICAgKD9sIC4gIkxpdGVyYWwiKQogICAgICAgICAg
ICAgICAgICAoP3IgLiAiUmVnZXhwIikKICAgICAgICAgICAgICAgICAgKD9zIC4gIlN5bWJvbCIp
CiAgICAgICAgICAgICAgICAgICg/dyAuICJXb3JkIikpKSkKICAgICh1bmxlc3MgaXNlYXJjaC1t
b2RlIChpc2VhcmNoLW1vZGUgdCkpCiAgICAod2l0aC1pc2VhcmNoLXN1c3BlbmRlZAogICAgIChz
ZXRxIGlzZWFyY2gtbmV3LXN0cmluZwogICAgICAgICAgIChjb25zdWx0LS1yZWFkCiAgICAgICAg
ICAgICJJLXNlYXJjaDogIgogICAgICAgICAgICAoY29uc3VsdC0taXNlYXJjaC1jYW5kaWRhdGVz
IG5hcnJvdykKICAgICAgICAgICAgOmNhdGVnb3J5ICdjb25zdWx0LWlzZWFyY2gKICAgICAgICAg
ICAgOmhpc3RvcnkgdCA7OyBkaXNhYmxlIGhpc3RvcnkKICAgICAgICAgICAgOnNvcnQgbmlsCiAg
ICAgICAgICAgIDphbm5vdGF0ZSAjJ2NvbnN1bHQtLWdldC1hbm5vdGF0aW9uCiAgICAgICAgICAg
IDppbml0aWFsIGlzZWFyY2gtc3RyaW5nCiAgICAgICAgICAgIDprZXltYXAgY29uc3VsdC1pc2Vh
cmNoLW1hcAogICAgICAgICAgICA6bG9va3VwCiAgICAgICAgICAgIChsYW1iZGEgKF8gY2FuZGlk
YXRlcyBzdHIpCiAgICAgICAgICAgICAgKGlmLWxldCAoY2FuZCAoY2FyIChtZW1iZXIgc3RyIGNh
bmRpZGF0ZXMpKSkgKHN1YnN0cmluZyBjYW5kIDEpIHN0cikpCiAgICAgICAgICAgIDpwcmV2aWV3
CiAgICAgICAgICAgIChsYW1iZGEgKGNhbmQgcmVzdG9yZSkKICAgICAgICAgICAgICAodW5sZXNz
IHJlc3RvcmUKICAgICAgICAgICAgICAgIChzZXRxIGlzZWFyY2gtc3RyaW5nIGNhbmQpCiAgICAg
ICAgICAgICAgICA7OyBFbWFjcyAyNy4xIHVzZXMgcHJvcGVydGllcyBvbiB0aGUgc2VhcmNoIHN0
cmluZyB0byBzdG9yZSBzZXR0aW5ncwogICAgICAgICAgICAgICAgKHdoZW4gKGZib3VuZHAgJ2lz
ZWFyY2gtdXBkYXRlLWZyb20tc3RyaW5nLXByb3BlcnRpZXMpCiAgICAgICAgICAgICAgICAgIChp
c2VhcmNoLXVwZGF0ZS1mcm9tLXN0cmluZy1wcm9wZXJ0aWVzIGNhbmQpKQogICAgICAgICAgICAg
ICAgKGlzZWFyY2gtdXBkYXRlKSkpCiAgICAgICAgICAgIDpuYXJyb3cKICAgICAgICAgICAgKGNv
bnMKICAgICAgICAgICAgIChsYW1iZGEgKGNhbmQpIChlcSAoLSAoYXJlZiBjYW5kIDApIGNvbnN1
bHQtLXRvZnUtY2hhcikgY29uc3VsdC0tbmFycm93KSkKICAgICAgICAgICAgIG5hcnJvdykpCiAg
ICAgICAgICAgaXNlYXJjaC1uZXctbWVzc2FnZQogICAgICAgICAgIChtYXBjb25jYXQgJ2lzZWFy
Y2gtdGV4dC1jaGFyLWRlc2NyaXB0aW9uIGlzZWFyY2gtbmV3LXN0cmluZyAiIikpKQogICAgOzsg
U2V0dGluZyBgaXNlYXJjaC1yZWdleHAnIGV0YyBvbmx5IHdvcmtzIG91dHNpZGUgb2YgYHdpdGgt
aXNlYXJjaC1zdXNwZW5kZWQnLgogICAgKHVubGVzcyAocGxpc3QtbWVtYmVyICh0ZXh0LXByb3Bl
cnRpZXMtYXQgMCBpc2VhcmNoLXN0cmluZykgJ2lzZWFyY2gtcmVnZXhwLWZ1bmN0aW9uKQogICAg
ICAoc2V0cSBpc2VhcmNoLXJlZ2V4cCB0CiAgICAgICAgICAgIGlzZWFyY2gtcmVnZXhwLWZ1bmN0
aW9uIG5pbCkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtbWlub3ItbW9kZS1tZW51CgooZGVm
dW4gY29uc3VsdC0tbWlub3ItbW9kZS1jYW5kaWRhdGVzICgpCiAgIlJldHVybiBsaXN0IG9mIG1p
bm9yLW1vZGUgY2FuZGlkYXRlIHN0cmluZ3MuIgogIChtYXBjYXIKICAgKHBjYXNlLWxhbWJkYSAo
YCgsbmFtZSAuICxzeW0pKQogICAgIChsaXN0IG5hbWUgc3ltCiAgICAgICAgICAgKGNvbmNhdAog
ICAgICAgICAgICAoaWYgKGxvY2FsLXZhcmlhYmxlLWlmLXNldC1wIHN5bSkgImwiICJnIikKICAg
ICAgICAgICAgKGlmIChhbmQgKGJvdW5kcCBzeW0pIChzeW1ib2wtdmFsdWUgc3ltKSkgImkiICJv
IikpKSkKICAgKGFwcGVuZAogICAgOzsgYWNjb3JkaW5nIHRvIGRlc2NyaWJlLW1pbm9yLW1vZGUt
Y29tcGxldGlvbi10YWJsZS1mb3Itc3ltYm9sCiAgICA7OyB0aGUgbWlub3ItbW9kZS1saXN0IGNv
bnRhaW5zICphbGwqIG1pbm9yIG1vZGVzCiAgICAobWFwY2FyIChsYW1iZGEgKHN5bSkgKGNvbnMg
KHN5bWJvbC1uYW1lIHN5bSkgc3ltKSkgbWlub3ItbW9kZS1saXN0KQogICAgOzsgdGFrZSB0aGUg
bGlnaHRlcnMgZnJvbSBtaW5vci1tb2RlLWFsaXN0CiAgICAoZGVscSBuaWwKICAgICAgICAgICht
YXBjYXIgKHBjYXNlLWxhbWJkYSAoYCgsc3ltICxsaWdodGVyKSkKICAgICAgICAgICAgICAgICAg
ICAod2hlbiAoYW5kIGxpZ2h0ZXIgKG5vdCAoZXF1YWwgIiIgbGlnaHRlcikpKQogICAgICAgICAg
ICAgICAgICAgICAgKHNldHEgbGlnaHRlciAoc3RyaW5nLXRyaW0gKGZvcm1hdC1tb2RlLWxpbmUg
bGlnaHRlcikpKQogICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoc3RyaW5nLWJsYW5rLXAg
bGlnaHRlcikKICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgbGlnaHRlciBzeW0pKSkpCiAg
ICAgICAgICAgICAgICAgIG1pbm9yLW1vZGUtYWxpc3QpKSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRl
ZnVuIGNvbnN1bHQtbWlub3ItbW9kZS1tZW51ICgpCiAgIkVuYWJsZSBvciBkaXNhYmxlIG1pbm9y
IG1vZGUuCgpUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIGBtaW5vci1tb2RlLW1lbnUtZnJvbS1p
bmRpY2F0b3InLiIKICAoaW50ZXJhY3RpdmUpCiAgKGNhbGwtaW50ZXJhY3RpdmVseQogICAoY29u
c3VsdC0tcmVhZAogICAgIk1pbm9yIG1vZGU6ICIKICAgIChjb25zdWx0LS1taW5vci1tb2RlLWNh
bmRpZGF0ZXMpCiAgICA6cmVxdWlyZS1tYXRjaCB0CiAgICA6Y2F0ZWdvcnkgJ21pbm9yLW1vZGUK
ICAgIDpuYXJyb3cgYCgsKGxhbWJkYSAoY2FuZCkgKHNlcS1wb3NpdGlvbiAoY2FkZHIgY2FuZCkg
Y29uc3VsdC0tbmFycm93KSkKICAgICAgICAgICAgICAoP2wgLiAiTG9jYWwiKQogICAgICAgICAg
ICAgICg/ZyAuICJHbG9iYWwiKQogICAgICAgICAgICAgICg/aSAuICJPbiIpCiAgICAgICAgICAg
ICAgKD9vIC4gIk9mZiIpKQogICAgOmxvb2t1cCAjJ2NvbnN1bHQtLWxvb2t1cC1jYWRyCiAgICA6
aGlzdG9yeSAnY29uc3VsdC0tbWlub3ItbW9kZS1tZW51LWhpc3RvcnkpKSkKCjs7Ozs7IENvbW1h
bmQ6IGNvbnN1bHQtdGhlbWUKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LXRoZW1lICh0
aGVtZSkKICAiRGlzYWJsZSBjdXJyZW50IHRoZW1lcyBhbmQgZW5hYmxlIFRIRU1FIGZyb20gYGNv
bnN1bHQtdGhlbWVzJy4KClRoZSBjb21tYW5kIHN1cHBvcnRzIHByZXZpZXdpbmcgdGhlIGN1cnJl
bnRseSBzZWxlY3RlZCB0aGVtZS4iCiAgKGludGVyYWN0aXZlCiAgIChsaXN0CiAgICAobGV0ICgo
YXZhaWwtdGhlbWVzIChzZXEtZmlsdGVyIChsYW1iZGEgKHgpIChvciAobm90IGNvbnN1bHQtdGhl
bWVzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KG1lbXEgeCBjb25zdWx0LXRoZW1lcykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoY29ucyBuaWwgKGN1c3RvbS1hdmFpbGFibGUtdGhlbWVzKSkpKQogICAgICAgICAgKHNh
dmVkLXRoZW1lIChjYXIgY3VzdG9tLWVuYWJsZWQtdGhlbWVzKSkpCiAgICAgIChjb25zdWx0LS1y
ZWFkCiAgICAgICAiVGhlbWU6ICIKICAgICAgIChtYXBjYXIgKGxhbWJkYSAoeCkgKG9yIHggJ2Rl
ZmF1bHQpKSBhdmFpbC10aGVtZXMpCiAgICAgICA6cmVxdWlyZS1tYXRjaCB0CiAgICAgICA6Y2F0
ZWdvcnkgJ3RoZW1lCiAgICAgICA6aGlzdG9yeSAnY29uc3VsdC0tdGhlbWUtaGlzdG9yeQogICAg
ICAgOmxvb2t1cCAobGFtYmRhIChfaW5wdXQgX2NhbmRzIHgpCiAgICAgICAgICAgICAgICAgKGFu
ZCB4IChub3QgKHN0cmluZz0geCAiZGVmYXVsdCIpKSAoaW50ZXJuLXNvZnQgeCkpKQogICAgICAg
OnByZXZpZXcgKGxhbWJkYSAoY2FuZCByZXN0b3JlKQogICAgICAgICAgICAgICAgICAoY29uZAog
ICAgICAgICAgICAgICAgICAgKChhbmQgcmVzdG9yZSAobm90IGNhbmQpKSAoY29uc3VsdC10aGVt
ZSBzYXZlZC10aGVtZSkpCiAgICAgICAgICAgICAgICAgICAoKG1lbXEgY2FuZCBhdmFpbC10aGVt
ZXMpIChjb25zdWx0LXRoZW1lIGNhbmQpKSkpCiAgICAgICA6ZGVmYXVsdCAoc3ltYm9sLW5hbWUg
KG9yIHNhdmVkLXRoZW1lICdkZWZhdWx0KSkpKSkpCiAgKHVubGVzcyAoZXEgdGhlbWUgKGNhciBj
dXN0b20tZW5hYmxlZC10aGVtZXMpKQogICAgKG1hcGMgIydkaXNhYmxlLXRoZW1lIGN1c3RvbS1l
bmFibGVkLXRoZW1lcykKICAgICh3aGVuIHRoZW1lCiAgICAgIChpZiAoY3VzdG9tLXRoZW1lLXAg
dGhlbWUpCiAgICAgICAgICAoZW5hYmxlLXRoZW1lIHRoZW1lKQogICAgICAgIChsb2FkLXRoZW1l
IHRoZW1lIDpuby1jb25maXJtKSkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtYnVmZmVyCgoo
Y29uc3VsdC0tZGVmaW5lLWNhY2hlIGNvbnN1bHQtLWNhY2hlZC1idWZmZXJzCiAgKGFwcGVuZCAo
ZGVscSAoY3VycmVudC1idWZmZXIpIChidWZmZXItbGlzdCkpIChsaXN0IChjdXJyZW50LWJ1ZmZl
cikpKSkKCihjb25zdWx0LS1kZWZpbmUtY2FjaGUgY29uc3VsdC0tY2FjaGVkLWJ1ZmZlci1uYW1l
cwogIChtYXBjYXIgIydidWZmZXItbmFtZSAoY29uc3VsdC0tY2FjaGVkLWJ1ZmZlcnMpKSkKCihj
b25zdWx0LS1kZWZpbmUtY2FjaGUgY29uc3VsdC0tY2FjaGVkLWJ1ZmZlci1maWxlLWhhc2gKICAo
Y29uc3VsdC0tc3RyaW5nLWhhc2ggKGRlbHEgbmlsIChtYXBjYXIgIydidWZmZXItZmlsZS1uYW1l
IChjb25zdWx0LS1jYWNoZWQtYnVmZmVycykpKSkpCgooZGVmdW4gY29uc3VsdC0tb3Blbi1maWxl
IChmaWxlIGRpc3BsYXkpCiAgIk9wZW4gRklMRSB2aWEgRElTUExBWSBmdW5jdGlvbi4iCiAgKHBj
YXNlLWV4aGF1c3RpdmUgZGlzcGxheQogICAgKCdzd2l0Y2gtdG8tYnVmZmVyIChmaW5kLWZpbGUg
ZmlsZSkpCiAgICAoJ3N3aXRjaC10by1idWZmZXItb3RoZXItd2luZG93IChmaW5kLWZpbGUtb3Ro
ZXItd2luZG93IGZpbGUpKQogICAgKCdzd2l0Y2gtdG8tYnVmZmVyLW90aGVyLWZyYW1lIChmaW5k
LWZpbGUtb3RoZXItZnJhbWUgZmlsZSkpKSkKCihkZWZ1biBjb25zdWx0LS1vcGVuLWJ1ZmZlciAo
YnVmZmVyIGRpc3BsYXkpCiAgIk9wZW4gQlVGRkVSIHZpYSBESVNQTEFZIGZ1bmN0aW9uLiIKICAo
ZnVuY2FsbCBkaXNwbGF5IGJ1ZmZlcikpCgooZGVmdmFyIGNvbnN1bHQtLXNvdXJjZS1ib29rbWFy
awogIGAoOm5hbWUgICAgICJCb29rbWFyayIKICAgIDpuYXJyb3cgICA/bQogICAgOmNhdGVnb3J5
IGJvb2ttYXJrCiAgICA6ZmFjZSAgICAgY29uc3VsdC1ib29rbWFyawogICAgOmhpc3RvcnkgIGJv
b2ttYXJrLWhpc3RvcnkKICAgIDppdGVtcyAgICAsIydib29rbWFyay1hbGwtbmFtZXMKICAgIDpv
cGVuICAgICAsIydib29rbWFyay1qdW1wKQogICJCb29rbWFyayBjYW5kaWRhdGUgc291cmNlIGZv
ciBgY29uc3VsdC1idWZmZXInLiIpCgooZGVmdmFyIGNvbnN1bHQtLXNvdXJjZS1wcm9qZWN0LWJ1
ZmZlcgogIGAoOm5hbWUgICAgICAiUHJvamVjdCBCdWZmZXIiCiAgICA6bmFycm93ICAgICg/cCAu
ICJQcm9qZWN0IikKICAgIDpjYXRlZ29yeSAgYnVmZmVyCiAgICA6ZmFjZSAgICAgIGNvbnN1bHQt
YnVmZmVyCiAgICA6aGlzdG9yeSAgIGJ1ZmZlci1uYW1lLWhpc3RvcnkKICAgIDpvcGVuICAgICAg
LCMnY29uc3VsdC0tb3Blbi1idWZmZXIKICAgIDpwcmVkaWNhdGUgLChsYW1iZGEgKCkgY29uc3Vs
dC1wcm9qZWN0LXJvb3QtZnVuY3Rpb24pCiAgICA6aXRlbXMKICAgICwobGFtYmRhICgpCiAgICAg
ICAod2hlbi1sZXQgKHJvb3QgKGZ1bmNhbGwgY29uc3VsdC1wcm9qZWN0LXJvb3QtZnVuY3Rpb24p
KQogICAgICAgICAobWFwY2FyICMnYnVmZmVyLW5hbWUKICAgICAgICAgICAgICAgICAoc2VxLWZp
bHRlciAobGFtYmRhICh4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4tbGV0
IChmaWxlIChidWZmZXItZmlsZS1uYW1lIHgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc3RyaW5nLXByZWZpeC1wIHJvb3QgZmlsZSkpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb25zdWx0LS1jYWNoZWQtYnVmZmVycykpKSkpKQogICJQcm9qZWN0IGJ1ZmZlciBj
YW5kaWRhdGUgc291cmNlIGZvciBgY29uc3VsdC1idWZmZXInLiIpCgooZGVmdmFyIGNvbnN1bHQt
LXNvdXJjZS1wcm9qZWN0LWZpbGUKICBgKDpuYW1lICAgICAgIlByb2plY3QgRmlsZSIKICAgIDpu
YXJyb3cgICAgKD9wIC4gIlByb2plY3QiKQogICAgOmNhdGVnb3J5ICBmaWxlCiAgICA6ZmFjZSAg
ICAgIGNvbnN1bHQtZmlsZQogICAgOmhpc3RvcnkgICBmaWxlLW5hbWUtaGlzdG9yeQogICAgOm9w
ZW4gICAgICAsIydjb25zdWx0LS1vcGVuLWZpbGUKICAgIDpwcmVkaWNhdGUgLChsYW1iZGEgKCkg
Y29uc3VsdC1wcm9qZWN0LXJvb3QtZnVuY3Rpb24pCiAgICA6aXRlbXMKICAgICwobGFtYmRhICgp
CiAgICAgICh3aGVuLWxldCAocm9vdCAoZnVuY2FsbCBjb25zdWx0LXByb2plY3Qtcm9vdC1mdW5j
dGlvbikpCiAgICAgICAgKGxldCAoKGxlbiAobGVuZ3RoIHJvb3QpKQogICAgICAgICAgICAgIChp
bnYtcm9vdCAocHJvcGVydGl6ZSByb290ICdpbnZpc2libGUgdCkpCiAgICAgICAgICAgICAgKGh0
IChjb25zdWx0LS1jYWNoZWQtYnVmZmVyLWZpbGUtaGFzaCkpKQogICAgICAgICAgKG1hcGNhciAo
bGFtYmRhICh4KQogICAgICAgICAgICAgICAgICAgIChjb25jYXQgaW52LXJvb3QgKHN1YnN0cmlu
ZyB4IGxlbikpKQogICAgICAgICAgICAgICAgICAoc2VxLWZpbHRlciAobGFtYmRhICh4KQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKG5vdCAoZ2V0aGFzaCB4IGh0KSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcHJlZml4LXAgcm9vdCB4
KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VudGYtbGlzdCkpKSkpKQogICJQ
cm9qZWN0IGZpbGUgY2FuZGlkYXRlIHNvdXJjZSBmb3IgYGNvbnN1bHQtYnVmZmVyJy4iKQoKKGRl
ZnZhciBjb25zdWx0LS1zb3VyY2UtaGlkZGVuLWJ1ZmZlcgogIGAoOm5hbWUgICAgICJIaWRkZW4g
QnVmZmVyIgogICAgOm5hcnJvdyAgIDMyCiAgICA6Y2F0ZWdvcnkgYnVmZmVyCiAgICA6ZmFjZSAg
ICAgY29uc3VsdC1idWZmZXIKICAgIDpoaXN0b3J5ICBidWZmZXItbmFtZS1oaXN0b3J5CiAgICA6
b3BlbiAgICAgLCMnY29uc3VsdC0tb3Blbi1idWZmZXIKICAgIDppdGVtcwogICAgLChsYW1iZGEg
KCkKICAgICAgIChsZXQgKChmaWx0ZXIgKGNvbnN1bHQtLXJlZ2V4cC1maWx0ZXIgY29uc3VsdC1i
dWZmZXItZmlsdGVyKSkpCiAgICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKHgpIChzdHJpbmct
bWF0Y2gtcCBmaWx0ZXIgeCkpCiAgICAgICAgICAgICAgICAgICAgIChjb25zdWx0LS1jYWNoZWQt
YnVmZmVyLW5hbWVzKSkpKSkKICAiSGlkZGVuIGJ1ZmZlciBjYW5kaWRhdGUgc291cmNlIGZvciBg
Y29uc3VsdC1idWZmZXInLiIpCgooZGVmdmFyIGNvbnN1bHQtLXNvdXJjZS1idWZmZXIKICBgKDpu
YW1lICAgICAiQnVmZmVyIgogICAgOm5hcnJvdyAgID9iCiAgICA6Y2F0ZWdvcnkgYnVmZmVyCiAg
ICA6ZmFjZSAgICAgY29uc3VsdC1idWZmZXIKICAgIDpoaXN0b3J5ICBidWZmZXItbmFtZS1oaXN0
b3J5CiAgICA6b3BlbiAgICAgLCMnY29uc3VsdC0tb3Blbi1idWZmZXIKICAgIDppdGVtcwogICAg
LChsYW1iZGEgKCkKICAgICAgIChsZXQgKChmaWx0ZXIgKGNvbnN1bHQtLXJlZ2V4cC1maWx0ZXIg
Y29uc3VsdC1idWZmZXItZmlsdGVyKSkpCiAgICAgICAgIChzZXEtcmVtb3ZlIChsYW1iZGEgKHgp
IChzdHJpbmctbWF0Y2gtcCBmaWx0ZXIgeCkpCiAgICAgICAgICAgICAgICAgICAgIChjb25zdWx0
LS1jYWNoZWQtYnVmZmVyLW5hbWVzKSkpKSkKICAiQnVmZmVyIGNhbmRpZGF0ZSBzb3VyY2UgZm9y
IGBjb25zdWx0LWJ1ZmZlcicuIikKCihkZWZ2YXIgY29uc3VsdC0tc291cmNlLWZpbGUKICBgKDpu
YW1lICAgICAiRmlsZSIKICAgIDpuYXJyb3cgICA/ZgogICAgOmNhdGVnb3J5IGZpbGUKICAgIDpm
YWNlICAgICBjb25zdWx0LWZpbGUKICAgIDpoaXN0b3J5ICBmaWxlLW5hbWUtaGlzdG9yeQogICAg
Om9wZW4gICAgICwjJ2NvbnN1bHQtLW9wZW4tZmlsZQogICAgOml0ZW1zCiAgICAsKGxhbWJkYSAo
KQogICAgICAgKGxldCAoKGh0IChjb25zdWx0LS1jYWNoZWQtYnVmZmVyLWZpbGUtaGFzaCkpKQog
ICAgICAgICAoc2VxLXJlbW92ZSAobGFtYmRhICh4KSAoZ2V0aGFzaCB4IGh0KSkgcmVjZW50Zi1s
aXN0KSkpKQogICJSZWNlbnQgZmlsZSBjYW5kaWRhdGUgc291cmNlIGZvciBgY29uc3VsdC1idWZm
ZXInLiIpCgooZGVmdW4gY29uc3VsdC0tYnVmZmVyIChkaXNwbGF5KQogICJCYWNrZW5kIGltcGxl
bWVudGF0aW9uIG9mIGBjb25zdWx0LWJ1ZmZlcicgd2l0aCBESVNQTEFZIGZ1bmN0aW9uLiIKICAo
Y29uc3VsdC0tbXVsdGkKICAgIlN3aXRjaCB0bzogIgogICBjb25zdWx0LWJ1ZmZlci1zb3VyY2Vz
CiAgIDpoaXN0b3J5ICdjb25zdWx0LS1idWZmZXItaGlzdG9yeQogICA6c29ydCBuaWwKICAgOnBy
ZXZpZXcKICAgKGxhbWJkYSAoY2FuZCByZXN0b3JlKQogICAgICh3aGVuIGNhbmQKICAgICAgIChs
ZXQgKChuYW1lIChjYXIgY2FuZCkpCiAgICAgICAgICAgICAoYWN0aW9uIChvciAocGxpc3QtZ2V0
IChjZHIgY2FuZCkgOm9wZW4pICMnY29uc3VsdC0tb3Blbi1idWZmZXIpKSkKICAgICAgICAgKGNv
bmQKICAgICAgICAgIChyZXN0b3JlIChmdW5jYWxsIGFjdGlvbiBuYW1lIGRpc3BsYXkpKQogICAg
ICAgICAgOzsgSW4gb3JkZXIgdG8gYXZvaWQgc2xvd25lc3MgYW5kIHVubmVjZXNzYXJ5IGNvbXBs
ZXhpdHksIHdlCiAgICAgICAgICA7OyBvbmx5IHByZXZpZXcgYnVmZmVycy4gTG9hZGluZyByZWNl
bnQgZmlsZXMsIGJvb2ttYXJrcyBvcgogICAgICAgICAgOzsgdmlld3MgY2FuIHJlc3VsdCBpbiBl
eHBlbnNpdmUgb3BlcmF0aW9ucy4KICAgICAgICAgICgoYW5kIChlcSBhY3Rpb24gIydjb25zdWx0
LS1vcGVuLWJ1ZmZlcikKICAgICAgICAgICAgICAgIChvciAoZXEgZGlzcGxheSAjJ3N3aXRjaC10
by1idWZmZXIpCiAgICAgICAgICAgICAgICAgICAgKGVxIGRpc3BsYXkgIydzd2l0Y2gtdG8tYnVm
ZmVyLW90aGVyLXdpbmRvdykpCiAgICAgICAgICAgICAgICAoZ2V0LWJ1ZmZlciBuYW1lKSkKICAg
ICAgICAgICAoZnVuY2FsbCBkaXNwbGF5IG5hbWUgJ25vcmVjb3JkKSkpKSkpKSkKCjs7OyMjI2F1
dG9sb2FkCihkZWZ1biBjb25zdWx0LWJ1ZmZlciAoKQogICJFbmhhbmNlZCBgc3dpdGNoLXRvLWJ1
ZmZlcicgY29tbWFuZCB3aXRoIHN1cHBvcnQgZm9yIHZpcnR1YWwgYnVmZmVycy4KClRoZSBjb21t
YW5kIHN1cHBvcnRzIHJlY2VudCBmaWxlcywgYm9va21hcmtzLCB2aWV3cyBhbmQgcHJvamVjdCBm
aWxlcyBhcyB2aXJ0dWFsCmJ1ZmZlcnMuIEJ1ZmZlcnMgYXJlIHByZXZpZXdlZC4gRnVydGhlcm1v
cmUgbmFycm93aW5nIHRvIGJ1ZmZlcnMgKGIpLCBmaWxlcyAoZiksCmJvb2ttYXJrcyAobSkgYW5k
IHByb2plY3QgZmlsZXMgKHApIGlzIHN1cHBvcnRlZCB2aWEgdGhlIGNvcnJlc3BvbmRpbmcga2V5
cy4gSW4Kb3JkZXIgdG8gZGV0ZXJtaW5lIHRoZSBwcm9qZWN0LXNwZWNpZmljIGZpbGVzIGFuZCBi
dWZmZXJzLCB0aGUKYGNvbnN1bHQtcHJvamVjdC1yb290LWZ1bmN0aW9uJyBpcyB1c2VkLiBTZWUg
YGNvbnN1bHQtYnVmZmVyLXNvdXJjZXMnIGFuZApgY29uc3VsdC0tbXVsdGknIGZvciB0aGUgY29u
ZmlndXJhdGlvbiBvZiB0aGUgdmlydHVhbCBidWZmZXIgc291cmNlcy4iCiAgKGludGVyYWN0aXZl
KQogIChjb25zdWx0LS1idWZmZXIgIydzd2l0Y2gtdG8tYnVmZmVyKSkKCjs7OyMjI2F1dG9sb2Fk
CihkZWZ1biBjb25zdWx0LWJ1ZmZlci1vdGhlci13aW5kb3cgKCkKICAiVmFyaWFudCBvZiBgY29u
c3VsdC1idWZmZXInIHdoaWNoIG9wZW5zIGluIG90aGVyIHdpbmRvdy4iCiAgKGludGVyYWN0aXZl
KQogIChjb25zdWx0LS1idWZmZXIgIydzd2l0Y2gtdG8tYnVmZmVyLW90aGVyLXdpbmRvdykpCgo7
OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1idWZmZXItb3RoZXItZnJhbWUgKCkKICAiVmFy
aWFudCBvZiBgY29uc3VsdC1idWZmZXInIHdoaWNoIG9wZW5zIGluIG90aGVyIGZyYW1lLiIKICAo
aW50ZXJhY3RpdmUpCiAgKGNvbnN1bHQtLWJ1ZmZlciAjJ3N3aXRjaC10by1idWZmZXItb3RoZXIt
ZnJhbWUpKQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC1rbWFjcm8KCihkZWZ1biBjb25zdWx0LS1r
bWFjcm8tY2FuZGlkYXRlcyAoKQogICJSZXR1cm4gYWxpc3Qgb2Yga21hY3JvcyBhbmQgaW5kaWNl
cy4iCiAgKHRocmVhZC1sYXN0CiAgICAgIDs7IExpc3Qgb2YgbWFjcm9zCiAgICAgIChhcHBlbmQg
KHdoZW4gbGFzdC1rYmQtbWFjcm8KICAgICAgICAgICAgICAgIGAoKCxsYXN0LWtiZC1tYWNybyAs
a21hY3JvLWNvdW50ZXIgLGttYWNyby1jb3VudGVyLWZvcm1hdCkpKQogICAgICAgICAgICAgIGtt
YWNyby1yaW5nKQogICAgOzsgQWRkIGluZGljZXMKICAgIChzZXEtbWFwLWluZGV4ZWQgIydjb25z
KQogICAgOzsgRmlsdGVyIG1vdXNlIGNsaWNrcwogICAgKHNlcS1yZW1vdmUgKGxhbWJkYSAoeCkg
KHNlcS1zb21lICMnbW91c2UtZXZlbnQtcCAoY2FhciB4KSkpKQogICAgOzsgRm9ybWF0IG1hY3Jv
cwogICAgKG1hcGNhciAocGNhc2UtbGFtYmRhIChgKCgsa2V5cyAsY291bnRlciAsZm9ybWF0KSAu
ICxpbmRleCkpCiAgICAgICAgICAgICAgKHByb3BlcnRpemUKICAgICAgICAgICAgICAgKGZvcm1h
dC1rYmQtbWFjcm8ga2V5cyAxKQogICAgICAgICAgICAgICAnY29uc3VsdC0ta21hY3JvLWluZGV4
IGluZGV4CiAgICAgICAgICAgICAgICdjb25zdWx0LS1hbm5vdGF0aW9uCiAgICAgICAgICAgICAg
IDs7IElmIHRoZSBjb3VudGVyIGlzIDAgYW5kIHRoZSBjb3VudGVyIGZvcm1hdCBpcyBpdHMgZGVm
YXVsdCwKICAgICAgICAgICAgICAgOzsgdGhlbiB0aGVyZSBpcyBhIGdvb2QgY2hhbmNlIHRoYXQg
dGhlIGNvdW50ZXIgaXNuJ3QgYWN0dWFsbHkKICAgICAgICAgICAgICAgOzsgYmVpbmcgdXNlZC4g
IFRoaXMgY2FuIG9ubHkgYmUgd3Jvbmcgd2hlbiBhIHVzZXIKICAgICAgICAgICAgICAgOzsgaW50
ZW50aW9uYWxseSBzdGFydHMgdGhlIGNvdW50ZXIgd2l0aCBhIG5lZ2F0aXZlIHZhbHVlIGFuZAog
ICAgICAgICAgICAgICA7OyB0aGVuIGluY3JlbWVudHMgaXQgdG8gMC4KICAgICAgICAgICAgICAg
KGNvbmQKICAgICAgICAgICAgICAgICgobm90IChzdHJpbmc9IGZvcm1hdCAiJWQiKSkgOzsgc2hv
dyBjb3VudGVyIGZvciBub24tZGVmYXVsdCBmb3JtYXQKICAgICAgICAgICAgICAgICAoZm9ybWF0
ICIgKGNvdW50ZXI9JWQsIGZvcm1hdD0lcykgIiBjb3VudGVyIGZvcm1hdCkpCiAgICAgICAgICAg
ICAgICAoKC89IGNvdW50ZXIgMCkgOzsgc2hvdyBjb3VudGVyIGlmIG5vbi16ZXJvCiAgICAgICAg
ICAgICAgICAgKGZvcm1hdCAiIChjb3VudGVyPSVkKSIgY291bnRlcikpKSkpKQogICAgKGNvbnN1
bHQtLXJlbW92ZS1kdXBzKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1rbWFjcm8g
KGFyZykKICAiUnVuIGEgY2hvc2VuIGtleWJvYXJkIG1hY3JvLgoKV2l0aCBwcmVmaXggQVJHLCBy
dW4gdGhlIG1hY3JvIHRoYXQgbWFueSB0aW1lcy4KTWFjcm9zIGNvbnRhaW5pbmcgbW91c2UgY2xp
Y2tzIGFyZSBvbWl0dGVkLiIKICAoaW50ZXJhY3RpdmUgInAiKQogIChsZXQgKChzZWxlY3RlZCAo
Y29uc3VsdC0tcmVhZAogICAgICAgICAgICAgICAgICAgIktleWJvYXJkIG1hY3JvOiAiCiAgICAg
ICAgICAgICAgICAgICAob3IgKGNvbnN1bHQtLWttYWNyby1jYW5kaWRhdGVzKQogICAgICAgICAg
ICAgICAgICAgICAgICh1c2VyLWVycm9yICJObyBrZXlib2FyZCBtYWNyb3MgZGVmaW5lZCIpKQog
ICAgICAgICAgICAgICAgICAgOmNhdGVnb3J5ICdjb25zdWx0LWttYWNybwogICAgICAgICAgICAg
ICAgICAgOnJlcXVpcmUtbWF0Y2ggdAogICAgICAgICAgICAgICAgICAgOnNvcnQgbmlsCiAgICAg
ICAgICAgICAgICAgICA6aGlzdG9yeSAnY29uc3VsdC0ta21hY3JvLWhpc3RvcnkKICAgICAgICAg
ICAgICAgICAgIDphbm5vdGF0ZSAjJ2NvbnN1bHQtLWdldC1hbm5vdGF0aW9uCiAgICAgICAgICAg
ICAgICAgICA6bG9va3VwCiAgICAgICAgICAgICAgICAgICAobGFtYmRhIChfIGNhbmRpZGF0ZXMg
Y2FuZCkKICAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2NvbnN1bHQt
LWttYWNyby1pbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNh
ciAobWVtYmVyIGNhbmQgY2FuZGlkYXRlcykpKSkpKSkKICAgIChpZiAoPSAwIHNlbGVjdGVkKQog
ICAgICAgIDs7IElmIHRoZSBmaXJzdCBlbGVtZW50IGhhcyBiZWVuIHNlbGVjdGVkLCBqdXN0IHJ1
biB0aGUgbGFzdCBtYWNyby4KICAgICAgICAoa21hY3JvLWNhbGwtbWFjcm8gKG9yIGFyZyAxKSB0
IG5pbCkKICAgICAgOzsgT3RoZXJ3aXNlLCBydW4gYSBrbWFjcm8gZnJvbSB0aGUgcmluZy4KICAg
ICAgKGxldCogKChzZWxlY3RlZCAoLSBzZWxlY3RlZCAxKSkKICAgICAgICAgICAgIChrbWFjcm8g
KG50aCBzZWxlY3RlZCBrbWFjcm8tcmluZykpCiAgICAgICAgICAgICA7OyBUZW1wb3JhcmlseSBj
aGFuZ2UgdGhlIHZhcmlhYmxlcyB0byByZXRyaWV2ZSB0aGUgY29ycmVjdAogICAgICAgICAgICAg
Ozsgc2V0dGluZ3MuICBNYWlubHksIHdlIHdhbnQgdGhlIG1hY3JvIGNvdW50ZXIgdG8gcGVyc2lz
dCwgd2hpY2gKICAgICAgICAgICAgIDs7IGF1dG9tYXRpY2FsbHkgaGFwcGVucyB3aGVuIGN5Y2xp
bmcgdGhlIHJpbmcuCiAgICAgICAgICAgICAobGFzdC1rYmQtbWFjcm8gKGNhciBrbWFjcm8pKQog
ICAgICAgICAgICAgKGttYWNyby1jb3VudGVyIChjYWRyIGttYWNybykpCiAgICAgICAgICAgICAo
a21hY3JvLWNvdW50ZXItZm9ybWF0IChjYWRkciBrbWFjcm8pKSkKICAgICAgICAoa21hY3JvLWNh
bGwtbWFjcm8gKG9yIGFyZyAxKSB0KQogICAgICAgIDs7IE9uY2UgZG9uZSwgcHV0IHVwZGF0ZWQg
dmFyaWFibGVzIGJhY2sgaW50byB0aGUgcmluZy4KICAgICAgICAoc2V0ZiAobnRoIHNlbGVjdGVk
IGttYWNyby1yaW5nKQogICAgICAgICAgICAgIChsaXN0IGxhc3Qta2JkLW1hY3JvCiAgICAgICAg
ICAgICAgICAgICAga21hY3JvLWNvdW50ZXIKICAgICAgICAgICAgICAgICAgICBrbWFjcm8tY291
bnRlci1mb3JtYXQpKSkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtaW1lbnUKCihkZWZ1biBj
b25zdWx0LS1pbWVudS1zcGVjaWFsIChfbmFtZSBwb3MgYnVmIG5hbWUgZm4gJnJlc3QgYXJncykK
ICAiV3JhcHBlciBmdW5jdGlvbiBmb3Igc3BlY2lhbCBpbWVudSBpdGVtcy4KClBPUyBpcyB0aGUg
cG9zaXRpb24uCkJVRiBpcyB0aGUgYnVmZmVyLgpOQU1FIGlzIHRoZSBpdGVtIG5hbWUuCkZOIGlz
IHRoZSBvcmlnaW5hbCBzcGVjaWFsIGl0ZW0gZnVuY3Rpb24uCkFSR1MgYXJlIHRoZSBhcmd1bWVu
dHMgdG8gdGhlIHNwZWNpYWwgaXRlbSBmdW5jdGlvbi4iCiAgKHN3aXRjaC10by1idWZmZXIgYnVm
KQogIChhcHBseSBmbiBuYW1lIHBvcyBhcmdzKSkKCihkZWZ1biBjb25zdWx0LS1pbWVudS1mbGF0
dGVuIChwcmVmaXggbGlzdCkKICAiRmxhdHRlbiBpbWVudSBMSVNULgpQcmVwZW5kIFBSRUZJWCBp
biBmcm9udCBvZiBhbGwgaXRlbXMuIgogIChtYXBjYW4KICAgKGxhbWJkYSAoaXRlbSkKICAgICAo
aWYgKGltZW51LS1zdWJhbGlzdC1wIGl0ZW0pCiAgICAgICAgIChjb25zdWx0LS1pbWVudS1mbGF0
dGVuCiAgICAgICAgICAoY29uY2F0IHByZWZpeCAoYW5kIHByZWZpeCAiLyIpIChjYXIgaXRlbSkp
CiAgICAgICAgICAoY2RyIGl0ZW0pKQogICAgICAgKGxldCAoKGtleSAoY29uY2F0CiAgICAgICAg
ICAgICAgICAgICAoYW5kIHByZWZpeCAoY29uY2F0IChwcm9wZXJ0aXplIHByZWZpeCAnZmFjZSAn
Y29uc3VsdC1pbWVudS1wcmVmaXgpICIgIikpCiAgICAgICAgICAgICAgICAgICAoY2FyIGl0ZW0p
KSkKICAgICAgICAgICAgIChwYXlsb2FkIChjZHIgaXRlbSkpKQogICAgICAgICAobGlzdCAoY29u
cyBrZXkKICAgICAgICAgICAgICAgICAgICAgKHBjYXNlIHBheWxvYWQKICAgICAgICAgICAgICAg
ICAgICAgICA7OyBTaW1wbGUgbWFya2VyIGl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAoKHBy
ZWQgbWFya2VycCkgcGF5bG9hZCkKICAgICAgICAgICAgICAgICAgICAgICA7OyBTaW1wbGUgaW50
ZWdlciBpdGVtCiAgICAgICAgICAgICAgICAgICAgICAgKChwcmVkIGludGVnZXJwKSAoY29weS1t
YXJrZXIgcGF5bG9hZCkpCiAgICAgICAgICAgICAgICAgICAgICAgOzsgU2VtYW50aWMgdXNlcyBv
dmVybGF5IGZvciBwb3NpdGlvbnMKICAgICAgICAgICAgICAgICAgICAgICAoKHByZWQgb3Zlcmxh
eXApIChjb3B5LW1hcmtlciAob3ZlcmxheS1zdGFydCBwYXlsb2FkKSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgOzsgV3JhcCBzcGVjaWFsIGl0ZW0KICAgICAgICAgICAgICAgICAgICAgICAoYCgs
cG9zICxmbiAuICxhcmdzKQogICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kCiAgICAgICAg
ICAgICAgICAgICAgICAgICAobGlzdCBwb3MgIydjb25zdWx0LS1pbWVudS1zcGVjaWFsIChjdXJy
ZW50LWJ1ZmZlcikgKGNhciBpdGVtKSBmbikKICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Mp
KQogICAgICAgICAgICAgICAgICAgICAgIChfIChlcnJvciAiVW5rbm93biBpbWVudSBpdGVtOiAl
UyIgaXRlbSkpKSkpKSkpCiAgIGxpc3QpKQoKKGRlZnVuIGNvbnN1bHQtLWltZW51LWNvbXB1dGUg
KCkKICAiQ29tcHV0ZSBpbWVudSBjYW5kaWRhdGVzLiIKICAoY29uc3VsdC0tZm9yYmlkLW1pbmli
dWZmZXIpCiAgKGxldCogKChpbWVudS1hdXRvLXJlc2NhbiB0KQogICAgICAgICAoaW1lbnUtdXNl
LW1hcmtlcnMgdCkKICAgICAgICAgKGl0ZW1zIChpbWVudS0tbWFrZS1pbmRleC1hbGlzdCB0KSkp
CiAgICAoc2V0cSBpdGVtcyAocmVtb3ZlIGltZW51LS1yZXNjYW4taXRlbSBpdGVtcykpCiAgICA7
OyBGaXggdG9wbGV2ZWwgaXRlbXMsIGUuZy4sIGVtYWNzLWxpc3AtbW9kZSB0b3BsZXZlbCBpdGVt
cyBhcmUgZnVuY3Rpb25zCiAgICAod2hlbi1sZXQgKHRvcGxldmVsIChjZHIgKHNlcS1maW5kIChs
YW1iZGEgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlcml2
ZWQtbW9kZS1wIChjYXIgeCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdWx0LWltZW51LXRvcGxldmVsKSkpCiAgICAgIChsZXQgKCh0b3BzIChzZXEtcmVtb3Zl
IChsYW1iZGEgKHgpIChsaXN0cCAoY2RyIHgpKSkgaXRlbXMpKQogICAgICAgICAgICAocmVzdCAo
c2VxLWZpbHRlciAobGFtYmRhICh4KSAobGlzdHAgKGNkciB4KSkpIGl0ZW1zKSkpCiAgICAgICAg
KHNldHEgaXRlbXMgKGFwcGVuZCByZXN0IChhbmQgdG9wcyAobGlzdCAoY29ucyB0b3BsZXZlbCB0
b3BzKSkpKSkpKQogICAgKGNvbnN1bHQtLWltZW51LWZsYXR0ZW4gbmlsIGl0ZW1zKSkpCgooZGVm
dW4gY29uc3VsdC0taW1lbnUtaXRlbXMgKCkKICAiUmV0dXJuIGNhY2hlZCBpbWVudSBjYW5kaWRh
dGVzLiIKICAodW5sZXNzIChlcXVhbCAoY2FyIGNvbnN1bHQtLWltZW51LWNhY2hlKSAoYnVmZmVy
LW1vZGlmaWVkLXRpY2spKQogICAgKHNldHEgY29uc3VsdC0taW1lbnUtY2FjaGUgKGNvbnMgKGJ1
ZmZlci1tb2RpZmllZC10aWNrKSAoY29uc3VsdC0taW1lbnUtY29tcHV0ZSkpKSkKICAoY2RyIGNv
bnN1bHQtLWltZW51LWNhY2hlKSkKCihkZWZ1biBjb25zdWx0LS1pbWVudS1hbGwtaXRlbXMgKGJ1
ZmZlcnMpCiAgIlJldHVybiBhbGwgaW1lbnUgaXRlbXMgZnJvbSBlYWNoIEJVRkZFUlMuIgogIChz
ZXEtbWFwY2F0IChsYW1iZGEgKGJ1ZikgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmIChjb25zdWx0
LS1pbWVudS1pdGVtcykpKSBidWZmZXJzKSkKCihkZWZ1biBjb25zdWx0LS1pbWVudS1wcm9qZWN0
LWJ1ZmZlcnMgKCkKICAiUmV0dXJuIHByb2plY3QgYnVmZmVycyB3aXRoIHRoZSBzYW1lIGBtYWpv
ci1tb2RlJyBhcyB0aGUgY3VycmVudCBidWZmZXIuIgogIChpZi1sZXQgKHJvb3QgKGFuZCBjb25z
dWx0LXByb2plY3Qtcm9vdC1mdW5jdGlvbiAoZnVuY2FsbCBjb25zdWx0LXByb2plY3Qtcm9vdC1m
dW5jdGlvbikpKQogICAgICAoc2VxLWZpbHRlciAobGFtYmRhIChidWYpCiAgICAgICAgICAgICAg
ICAgICAgKHdoZW4tbGV0IChmaWxlIChidWZmZXItZmlsZS1uYW1lIGJ1ZikpCiAgICAgICAgICAg
ICAgICAgICAgICAoYW5kIChlcSAoYnVmZmVyLWxvY2FsLXZhbHVlICdtYWpvci1tb2RlIGJ1Zikg
bWFqb3ItbW9kZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1wcmVmaXgtcCBy
b290IGZpbGUpKSkpCiAgICAgICAgICAgICAgICAgIChidWZmZXItbGlzdCkpCiAgICAobGlzdCAo
Y3VycmVudC1idWZmZXIpKSkpCgooZGVmdW4gY29uc3VsdC0taW1lbnUtanVtcCAoaXRlbSkKICAi
SnVtcCB0byBpbWVudSBJVEVNIHZpYSBgY29uc3VsdC0tanVtcCcuCgpJbiBjb250cmFzdCB0byB0
aGUgYnVpbHRpbiBgaW1lbnUnIGp1bXAgZnVuY3Rpb24sCnRoaXMgZnVuY3Rpb24gY2FuIGp1bXAg
YWNyb3NzIGJ1ZmZlcnMuIgogIChwY2FzZSBpdGVtCiAgICAoYCgsbmFtZSAscG9zICxmbiAuICxh
cmdzKSAoYXBwbHkgZm4gbmFtZSBwb3MgYXJncykpCiAgICAoYCgsXyAuICxwb3MpIChjb25zdWx0
LS1qdW1wIHBvcykpCiAgICAoXyAoZXJyb3IgIlVua25vd24gaW1lbnUgaXRlbTogJVMiIGl0ZW0p
KSkpCgooZGVmdW4gY29uc3VsdC0taW1lbnUgKGl0ZW1zKQogICJDaG9vc2UgZnJvbSBpbWVudSBJ
VEVNUyB3aXRoIHByZXZpZXcuCgpUaGUgc3ltYm9sIGF0IHBvaW50IGlzIGFkZGVkIHRvIHRoZSBm
dXR1cmUgaGlzdG9yeS4iCiAgKGNvbnN1bHQtLWltZW51LWp1bXAKICAgKGNvbnN1bHQtLXJlYWQK
ICAgICJHbyB0byBpdGVtOiAiCiAgICAob3IgaXRlbXMgKHVzZXItZXJyb3IgIkltZW51IGlzIGVt
cHR5IikpCiAgICA6cHJldmlldwogICAgKGxldCAoKHByZXZpZXcgKGNvbnN1bHQtLXByZXZpZXct
cG9zaXRpb24pKSkKICAgICAgKGxhbWJkYSAoY2FuZCByZXN0b3JlKQogICAgICAgIDs7IE9ubHkg
cHJldmlldyBzaW1wbGUgbWVudSBpdGVtcyB3aGljaCBhcmUgbWFya2VycywKICAgICAgICA7OyBp
biBvcmRlciB0byBhdm9pZCBhbnkgYmFkIHNpZGUgZWZmZWN0cy4KICAgICAgICAoZnVuY2FsbCBw
cmV2aWV3IChhbmQgKG1hcmtlcnAgKGNkciBjYW5kKSkgKGNkciBjYW5kKSkgcmVzdG9yZSkpKQog
ICAgOnJlcXVpcmUtbWF0Y2ggdAogICAgOm5hcnJvdwogICAgKGxldCAoKG5hcnJvdyAoY2RyIChz
ZXEtZmluZCAobGFtYmRhICh4KSAoZGVyaXZlZC1tb2RlLXAgKGNhciB4KSkpIGNvbnN1bHQtaW1l
bnUtbmFycm93KSkpKQogICAgICAoY29ucyAobGFtYmRhIChjYW5kKQogICAgICAgICAgICAgICh3
aGVuLWxldCAobiAoY2RyIChhc3NvYyBjb25zdWx0LS1uYXJyb3cgbmFycm93KSkpCiAgICAgICAg
ICAgICAgICAobGV0KiAoKGMgKGNhciBjYW5kKSkKICAgICAgICAgICAgICAgICAgICAgICAobCAo
bGVuZ3RoIG4pKSkKICAgICAgICAgICAgICAgICAgKGFuZCAoPiAobGVuZ3RoIGMpIGwpCiAgICAg
ICAgICAgICAgICAgICAgICAgKGVxIHQgKGNvbXBhcmUtc3RyaW5ncyBuIDAgbCBjIDAgbCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgKD0gKGFyZWYgYyBsKSAzMikpKSkpCiAgICAgICAgICAgIG5h
cnJvdykpCiAgICA6Y2F0ZWdvcnkgJ2ltZW51CiAgICA6bG9va3VwICMnY29uc3VsdC0tbG9va3Vw
LWVsZW0KICAgIDpoaXN0b3J5ICdjb25zdWx0LS1pbWVudS1oaXN0b3J5CiAgICA6YWRkLWhpc3Rv
cnkgKHRoaW5nLWF0LXBvaW50ICdzeW1ib2wpCiAgICA6c29ydCBuaWwpKSkKCjs7OyMjI2F1dG9s
b2FkCihkZWZ1biBjb25zdWx0LWltZW51ICgpCiAgIkNob29zZSBpdGVtIGZyb20gZmxhdHRlbmVk
IGBpbWVudScgdXNpbmcgYGNvbXBsZXRpbmctcmVhZCcgd2l0aCBwcmV2aWV3LgoKVGhlIGNvbW1h
bmQgc3VwcG9ydHMgcHJldmlldyBhbmQgbmFycm93aW5nLiBTZWUgdGhlIHZhcmlhYmxlCmBjb25z
dWx0LWltZW51LW5hcnJvdycsIHdoaWNoIGNvbmZpZ3VyZXMgdGhlIG5hcnJvd2luZy4KClNlZSBh
bHNvIGBjb25zdWx0LXByb2plY3QtaW1lbnUnLiIKICAoaW50ZXJhY3RpdmUpCiAgKGNvbnN1bHQt
LWltZW51IChjb25zdWx0LS1pbWVudS1pdGVtcykpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNv
bnN1bHQtcHJvamVjdC1pbWVudSAoKQogICJDaG9vc2UgaXRlbSBmcm9tIHRoZSBpbWVudXMgb2Yg
YWxsIGJ1ZmZlcnMgZnJvbSB0aGUgc2FtZSBwcm9qZWN0LgoKSW4gb3JkZXIgdG8gZGV0ZXJtaW5l
IHRoZSBidWZmZXJzIGJlbG9uZ2luZyB0byB0aGUgc2FtZSBwcm9qZWN0LCB0aGUKYGNvbnN1bHQt
cHJvamVjdC1yb290LWZ1bmN0aW9uJyBpcyB1c2VkLiBPbmx5IHRoZSBidWZmZXJzIHdpdGggdGhl
CnNhbWUgbWFqb3IgbW9kZSBhcyB0aGUgY3VycmVudCBidWZmZXIgYXJlIHVzZWQuIFNlZSBhbHNv
CmBjb25zdWx0LWltZW51JyBmb3IgbW9yZSBkZXRhaWxzLiIKICAoaW50ZXJhY3RpdmUpCiAgKGNv
bnN1bHQtLWltZW51IChjb25zdWx0LS1pbWVudS1hbGwtaXRlbXMgKGNvbnN1bHQtLWltZW51LXBy
b2plY3QtYnVmZmVycykpKSkKCihkZWZ1biBjb25zdWx0LS1ncmVwLW1hdGNoZXMgKGxpbmVzKQog
ICJGaW5kIGdyZXAgbWF0Y2ggZm9yIFJFR0VYUCBpbiBMSU5FUy4iCiAgKGxldCAoKGNhbmRpZGF0
ZXMpKQogICAgKHNhdmUtbWF0Y2gtZGF0YQogICAgICAoZG9saXN0IChzdHIgbGluZXMpCiAgICAg
ICAgKHdoZW4gKHN0cmluZy1tYXRjaCBjb25zdWx0LS1ncmVwLXJlZ2V4cCBzdHIpCiAgICAgICAg
ICAobGV0KiAoKGZpbGUgKGV4cGFuZC1maWxlLW5hbWUgKGNvbnN1bHQtLXN0cmlwLWFuc2ktZXNj
YXBlIChtYXRjaC1zdHJpbmcgMSBzdHIpKSkpCiAgICAgICAgICAgICAgICAgKGxpbmUgKHN0cmlu
Zy10by1udW1iZXIgKGNvbnN1bHQtLXN0cmlwLWFuc2ktZXNjYXBlIChtYXRjaC1zdHJpbmcgMiBz
dHIpKSkpCiAgICAgICAgICAgICAgICAgKHN0ciAoc3Vic3RyaW5nIHN0ciAobWF0Y2gtZW5kIDAp
KSkKICAgICAgICAgICAgICAgICAobG9jIChjb25zdWx0LS1mb3JtYXQtbG9jYXRpb24gKHN0cmlu
Zy1yZW1vdmUtcHJlZml4IGRlZmF1bHQtZGlyZWN0b3J5IGZpbGUpIGxpbmUpKQogICAgICAgICAg
ICAgICAgIChwb3MpKQogICAgICAgICAgICAod2hpbGUgKHN0cmluZy1tYXRjaCBjb25zdWx0LS1n
cmVwLW1hdGNoLXJlZ2V4cCBzdHIpCiAgICAgICAgICAgICAgKHVubGVzcyBwb3MKICAgICAgICAg
ICAgICAgIChzZXRxIHBvcyAobWF0Y2gtYmVnaW5uaW5nIDApKSkKICAgICAgICAgICAgICAoc2V0
cSBzdHIgKGNvbmNhdCAoc3Vic3RyaW5nIHN0ciAwIChtYXRjaC1iZWdpbm5pbmcgMCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUgKG1hdGNoLXN0cmluZyAxIHN0
cikgJ2ZhY2UgJ2NvbnN1bHQtcHJldmlldy1tYXRjaCkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc3Vic3RyaW5nIHN0ciAobWF0Y2gtZW5kIDApKSkpKQogICAgICAgICAgICAoc2V0
cSBzdHIgKGNvbnN1bHQtLXN0cmlwLWFuc2ktZXNjYXBlIHN0cikpCiAgICAgICAgICAgIChwdXNo
IChsaXN0IChjb25jYXQgbG9jIHN0cikgZmlsZSBsaW5lIChvciBwb3MgMCkpIGNhbmRpZGF0ZXMp
KSkpKQogICAgKG5yZXZlcnNlIGNhbmRpZGF0ZXMpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQt
Z3JlcAoKKGRlZnVuIGNvbnN1bHQtLWdyZXAtbWFya2VyIChvcGVuKQogICJHcmVwIGNhbmRpZGF0
ZSB0byBtYXJrZXIuCgpPUEVOIGlzIHRoZSBmdW5jdGlvbiB0byBvcGVuIG5ldyBmaWxlcy4iCiAg
KGxhbWJkYSAoX2lucHV0IGNhbmRpZGF0ZXMgY2FuZCkKICAgICh3aGVuLWxldCogKChsb2MgKGNk
ciAoYXNzb2MgY2FuZCBjYW5kaWRhdGVzKSkpCiAgICAgICAgICAgICAgICAoYnVmIChmdW5jYWxs
IG9wZW4gKGNhciBsb2MpKSkpCiAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZgogICAgICAg
IChzYXZlLXJlc3RyaWN0aW9uCiAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgICAgICAg
KHdpZGVuKQogICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICAgICAgICAgICA7
OyBMb2NhdGlvbiBkYXRhIG1pZ2h0IGJlIGludmFsaWQgYnkgbm93IQogICAgICAgICAgICAoaWdu
b3JlLWVycm9ycwogICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUgKC0gKGNhZHIgbG9jKSAxKSkK
ICAgICAgICAgICAgICAoZm9yd2FyZC1jaGFyIChjYWRkciBsb2MpKSkKICAgICAgICAgICAgKHBv
aW50LW1hcmtlcikpKSkpKSkKCihkZWZ1biBjb25zdWx0LS1ncmVwIChwcm9tcHQgY21kIGRpciBp
bml0aWFsKQogICJSdW4gZ3JlcCBDTUQgaW4gRElSIHdpdGggSU5JVElBTCBpbnB1dC4KClBST01Q
VCBpcyB0aGUgcHJvbXB0IHN0cmluZy4KVGhlIHN5bWJvbCBhdCBwb2ludCBpcyBhZGRlZCB0byB0
aGUgZnV0dXJlIGhpc3RvcnkuIgogIChsZXQqICgocHJvbXB0LWRpciAoY29uc3VsdC0tZGlyZWN0
b3J5LXByb21wdCBwcm9tcHQgZGlyKSkKICAgICAgICAgKGRlZmF1bHQtZGlyZWN0b3J5IChjZHIg
cHJvbXB0LWRpcikpKQogICAgKGNvbnN1bHQtLXdpdGgtZmlsZS1wcmV2aWV3IChvcGVuKQogICAg
ICAoY29uc3VsdC0tanVtcAogICAgICAgKGNvbnN1bHQtLXJlYWQKICAgICAgICAoY2FyIHByb21w
dC1kaXIpCiAgICAgICAgKGNvbnN1bHQtLWFzeW5jLWNvbW1hbmQgY21kCiAgICAgICAgICAoY29u
c3VsdC0tYXN5bmMtdHJhbnNmb3JtIGNvbnN1bHQtLWdyZXAtbWF0Y2hlcykpCiAgICAgICAgOmxv
b2t1cCAoY29uc3VsdC0tZ3JlcC1tYXJrZXIgb3BlbikKICAgICAgICA6cHJldmlldyAoY29uc3Vs
dC0tcHJldmlldy1wb3NpdGlvbikKICAgICAgICA6aW5pdGlhbCAoY29uY2F0IGNvbnN1bHQtYXN5
bmMtZGVmYXVsdC1zcGxpdCBpbml0aWFsKQogICAgICAgIDphZGQtaGlzdG9yeSAoY29uY2F0IGNv
bnN1bHQtYXN5bmMtZGVmYXVsdC1zcGxpdCAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpCiAgICAg
ICAgOnJlcXVpcmUtbWF0Y2ggdAogICAgICAgIDpjYXRlZ29yeSAneHJlZi1sb2NhdGlvbgogICAg
ICAgIDpoaXN0b3J5ICcoOmlucHV0IGNvbnN1bHQtLWdyZXAtaGlzdG9yeSkKICAgICAgICA6c29y
dCBuaWwpKSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtZ3JlcCAoJm9wdGlvbmFs
IGRpciBpbml0aWFsKQogICJTZWFyY2ggZm9yIHJlZ2V4cCB3aXRoIGdyZXAgaW4gRElSIHdpdGgg
SU5JVElBTCBpbnB1dC4KClRoZSBpbnB1dCBzdHJpbmcgaXMgc3BsaXQsIHRoZSBmaXJzdCBwYXJ0
IG9mIHRoZSBzdHJpbmcgaXMgcGFzc2VkIHRvCnRoZSBhc3luY2hyb25vdXMgZ3JlcCBwcm9jZXNz
IGFuZCB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlIHN0cmluZyBpcwpwYXNzZWQgdG8gdGhlIGNvbXBs
ZXRpb24tc3R5bGUgZmlsdGVyaW5nLiBUaGUgaW5wdXQgc3RyaW5nIGlzIHNwbGl0IGF0CmEgcHVu
Y3R1YXRpb24gY2hhcmFjdGVyLCB3aGljaCBpcyBnaXZlbiBhcyB0aGUgZmlyc3QgY2hhcmFjdGVy
IG9mIHRoZQppbnB1dCBzdHJpbmcuIFRoZSBmb3JtYXQgaXMgc2ltaWxhciB0byBQZXJsLXN0eWxl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMsCmUuZy4sIC9yZWdleHAvLiBGdXJ0aGVybW9yZSBjb21tYW5k
IGxpbmUgb3B0aW9ucyBjYW4gYmUgcGFzc2VkIHRvCmdyZXAsIHNwZWNpZmllZCBiZWhpbmQgLS0u
CgpFeGFtcGxlOiAjYXN5bmMtcmVnZXhwIC0tIGdyZXAtb3B0cyNmaWx0ZXItc3RyaW5nCgpUaGUg
c3ltYm9sIGF0IHBvaW50IGlzIGFkZGVkIHRvIHRoZSBmdXR1cmUgaGlzdG9yeS4gSWYgYGNvbnN1
bHQtZ3JlcCcKaXMgY2FsbGVkIGludGVyYWN0aXZlbHkgd2l0aCBhIHByZWZpeCBhcmd1bWVudCwg
dGhlIHVzZXIgY2FuIHNwZWNpZnkKdGhlIGRpcmVjdG9yeSB0byBzZWFyY2ggaW4uIEJ5IGRlZmF1
bHQgdGhlIHByb2plY3QgZGlyZWN0b3J5IGlzIHVzZWQKaWYgYGNvbnN1bHQtcHJvamVjdC1yb290
LWZ1bmN0aW9uJyBpcyBkZWZpbmVkIGFuZCByZXR1cm5zIG5vbi1uaWwuCk90aGVyd2lzZSB0aGUg
YGRlZmF1bHQtZGlyZWN0b3J5JyBpcyBzZWFyY2hlZC4iCiAgKGludGVyYWN0aXZlICJQIikKICAo
Y29uc3VsdC0tZ3JlcCAiR3JlcCIgY29uc3VsdC1ncmVwLWNvbW1hbmQgZGlyIGluaXRpYWwpKQoK
Ozs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtZ2l0LWdyZXAgKCZvcHRpb25hbCBkaXIgaW5p
dGlhbCkKICAiU2VhcmNoIGZvciByZWdleHAgd2l0aCBncmVwIGluIERJUiB3aXRoIElOSVRJQUwg
aW5wdXQuCgpTZWUgYGNvbnN1bHQtZ3JlcCcgZm9yIG1vcmUgZGV0YWlscy4iCiAgKGludGVyYWN0
aXZlICJQIikKICAoY29uc3VsdC0tZ3JlcCAiR2l0LWdyZXAiIGNvbnN1bHQtZ2l0LWdyZXAtY29t
bWFuZCBkaXIgaW5pdGlhbCkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1yaXBncmVw
ICgmb3B0aW9uYWwgZGlyIGluaXRpYWwpCiAgIlNlYXJjaCBmb3IgcmVnZXhwIHdpdGggcmcgaW4g
RElSIHdpdGggSU5JVElBTCBpbnB1dC4KClNlZSBgY29uc3VsdC1ncmVwJyBmb3IgbW9yZSBkZXRh
aWxzLiIKICAoaW50ZXJhY3RpdmUgIlAiKQogIChjb25zdWx0LS1ncmVwICJSaXBncmVwIiBjb25z
dWx0LXJpcGdyZXAtY29tbWFuZCBkaXIgaW5pdGlhbCkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0
LWZpbmQKCihkZWZ1biBjb25zdWx0LS1maW5kIChwcm9tcHQgY21kIGluaXRpYWwpCiAgIlJ1biBm
aW5kIENNRCBpbiBjdXJyZW50IGRpcmVjdG9yeSB3aXRoIElOSVRJQUwgaW5wdXQuCgpQUk9NUFQg
aXMgdGhlIHByb21wdC4KQ01EIGlzIHRoZSBmaW5kIGFyZ3VtZW50IHN0cmluZy4KVGhlIGZpbGVu
YW1lIGF0IHBvaW50IGlzIGFkZGVkIHRvIHRoZSBmdXR1cmUgaGlzdG9yeS4iCiAgKGZpbmQtZmls
ZQogICAoY29uc3VsdC0tcmVhZAogICAgcHJvbXB0CiAgICAoY29uc3VsdC0tYXN5bmMtY29tbWFu
ZCBjbWQKICAgICAgKGNvbnN1bHQtLWFzeW5jLW1hcCAobGFtYmRhICh4KSAoc3RyaW5nLXJlbW92
ZS1wcmVmaXggIi4vIiB4KSkpKQogICAgOnNvcnQgbmlsCiAgICA6cmVxdWlyZS1tYXRjaCB0CiAg
ICA6aW5pdGlhbCAoY29uY2F0IGNvbnN1bHQtYXN5bmMtZGVmYXVsdC1zcGxpdCBpbml0aWFsKQog
ICAgOmFkZC1oaXN0b3J5IChjb25jYXQgY29uc3VsdC1hc3luYy1kZWZhdWx0LXNwbGl0ICh0aGlu
Zy1hdC1wb2ludCAnZmlsZW5hbWUpKQogICAgOmNhdGVnb3J5ICdmaWxlCiAgICA6aGlzdG9yeSAn
KDppbnB1dCBjb25zdWx0LS1maW5kLWhpc3RvcnkpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4g
Y29uc3VsdC1maW5kICgmb3B0aW9uYWwgZGlyIGluaXRpYWwpCiAgIlNlYXJjaCBmb3IgcmVnZXhw
IHdpdGggZmluZCBpbiBESVIgd2l0aCBJTklUSUFMIGlucHV0LgoKVGhlIGZpbmQgcHJvY2VzcyBp
cyBzdGFydGVkIGFzeW5jaHJvbm91c2x5LCBzaW1pbGFyIHRvIGBjb25zdWx0LWdyZXAnLgpTZWUg
YGNvbnN1bHQtZ3JlcCcgZm9yIG1vcmUgZGV0YWlscyByZWdhcmRpbmcgdGhlIGFzeW5jaHJvbm91
cyBzZWFyY2guIgogIChpbnRlcmFjdGl2ZSAiUCIpCiAgKGxldCogKChwcm9tcHQtZGlyIChjb25z
dWx0LS1kaXJlY3RvcnktcHJvbXB0ICJGaW5kIiBkaXIpKQogICAgICAgICAoZGVmYXVsdC1kaXJl
Y3RvcnkgKGNkciBwcm9tcHQtZGlyKSkpCiAgICAoY29uc3VsdC0tZmluZCAoY2FyIHByb21wdC1k
aXIpIGNvbnN1bHQtZmluZC1jb21tYW5kIGluaXRpYWwpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1
biBjb25zdWx0LWxvY2F0ZSAoJm9wdGlvbmFsIGluaXRpYWwpCiAgIlNlYXJjaCBmb3IgcmVnZXhw
IHdpdGggbG9jYXRlIHdpdGggSU5JVElBTCBpbnB1dC4KClRoZSBsb2NhdGUgcHJvY2VzcyBpcyBz
dGFydGVkIGFzeW5jaHJvbm91c2x5LCBzaW1pbGFyIHRvIGBjb25zdWx0LWdyZXAnLgpTZWUgYGNv
bnN1bHQtZ3JlcCcgZm9yIG1vcmUgZGV0YWlscyByZWdhcmRpbmcgdGhlIGFzeW5jaHJvbm91cyBz
ZWFyY2guIgogIChpbnRlcmFjdGl2ZSkKICAoY29uc3VsdC0tZmluZCAiTG9jYXRlOiAiIGNvbnN1
bHQtbG9jYXRlLWNvbW1hbmQgaW5pdGlhbCkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LW1hbgoK
KGRlZnVuIGNvbnN1bHQtLW1hbi1mb3JtYXQgKGxpbmVzKQogICJGb3JtYXQgbWFuIGNhbmRpZGF0
ZXMgZnJvbSBMSU5FUy4iCiAgKGxldCAoKGNhbmRpZGF0ZXMpKQogICAgKHNhdmUtbWF0Y2gtZGF0
YQogICAgICAoZG9saXN0IChzdHIgbGluZXMpCiAgICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAi
XlxcKC4qP1xcKSArLSArXFwoLipcXCkkIiBzdHIpCiAgICAgICAgICAobGV0ICgobmFtZSAobWF0
Y2gtc3RyaW5nIDEgc3RyKSkKICAgICAgICAgICAgICAgIChkZXNjIChtYXRjaC1zdHJpbmcgMiBz
dHIpKSkKICAgICAgICAgICAgKHB1c2ggKGNvbnMKICAgICAgICAgICAgICAgICAgIChmb3JtYXQg
IiUtMzBzICVzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZSBuYW1lICdm
YWNlICdjb25zdWx0LWtleSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYykKICAgICAg
ICAgICAgICAgICAgIG5hbWUpCiAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMpKSkpKQogICAg
KG5yZXZlcnNlIGNhbmRpZGF0ZXMpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LW1h
biAoJm9wdGlvbmFsIGluaXRpYWwpCiAgIlNlYXJjaCBmb3IgcmVnZXhwIHdpdGggbWFuIHdpdGgg
SU5JVElBTCBpbnB1dC4KClRoZSBtYW4gcHJvY2VzcyBpcyBzdGFydGVkIGFzeW5jaHJvbm91c2x5
LCBzaW1pbGFyIHRvIGBjb25zdWx0LWdyZXAnLgpTZWUgYGNvbnN1bHQtZ3JlcCcgZm9yIG1vcmUg
ZGV0YWlscyByZWdhcmRpbmcgdGhlIGFzeW5jaHJvbm91cyBzZWFyY2guIgogIChpbnRlcmFjdGl2
ZSkKICAobWFuIChjb25zdWx0LS1yZWFkCiAgICAgICAgIk1hbnVhbCBlbnRyeTogIgogICAgICAg
IChjb25zdWx0LS1hc3luYy1jb21tYW5kIGNvbnN1bHQtbWFuLWNvbW1hbmQKICAgICAgICAgIChj
b25zdWx0LS1hc3luYy10cmFuc2Zvcm0gY29uc3VsdC0tbWFuLWZvcm1hdCkpCiAgICAgICAgOnJl
cXVpcmUtbWF0Y2ggdAogICAgICAgIDpsb29rdXAgIydjb25zdWx0LS1sb29rdXAtY2RyCiAgICAg
ICAgOmluaXRpYWwgKGNvbmNhdCBjb25zdWx0LWFzeW5jLWRlZmF1bHQtc3BsaXQgaW5pdGlhbCkK
ICAgICAgICA6YWRkLWhpc3RvcnkgKGNvbmNhdCBjb25zdWx0LWFzeW5jLWRlZmF1bHQtc3BsaXQg
KHRoaW5nLWF0LXBvaW50ICdzeW1ib2wpKQogICAgICAgIDpoaXN0b3J5ICcoOmlucHV0IGNvbnN1
bHQtLW1hbi1oaXN0b3J5KSkpKQoKOzs7OyBJbnRlZ3JhdGlvbiB3aXRoIHRoZSBkZWZhdWx0IGNv
bXBsZXRpb24gc3lzdGVtCgooZGVmdW4gY29uc3VsdC0tZGVmYXVsdC1jb21wbGV0aW9uLWNhbmRp
ZGF0ZSAoKQogICJSZXR1cm4gY3VycmVudCBjYW5kaWRhdGUgZnJvbSBkZWZhdWx0IGNvbXBsZXRp
b24gc3lzdGVtLiIKICAod2hlbiAoYW5kIChub3QgaWNvbXBsZXRlLW1vZGUpIChlcSBjb21wbGV0
aW5nLXJlYWQtZnVuY3Rpb24gIydjb21wbGV0aW5nLXJlYWQtZGVmYXVsdCkpCiAgICAobGV0ICgo
Y2FuZCAobWluaWJ1ZmZlci1jb250ZW50cy1uby1wcm9wZXJ0aWVzKSkpCiAgICAgICh3aGVuICh0
ZXN0LWNvbXBsZXRpb24gY2FuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmlidWZm
ZXItY29tcGxldGlvbi10YWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmlidWZm
ZXItY29tcGxldGlvbi1wcmVkaWNhdGUpCiAgICAgICAgY2FuZCkpKSkKCihkZWZ1biBjb25zdWx0
LS1kZWZhdWx0LWNvbXBsZXRpb24tZmlsdGVyIChjYXRlZ29yeSBfaGlnaGxpZ2h0KQogICJSZXR1
cm4gZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gZ2l2ZW4gdGhlIGNvbXBsZXRpb24gQ0FURUdPUlku
CgpUaGUgY29tcGxldGlvbiBjYXRlZ29yeSBpcyB1c2VkIHRvIGZpbmQgdGhlIGNvbXBsZXRpb24g
c3R5bGUgdmlhCmBjb21wbGV0aW9uLWNhdGVnb3J5LWRlZmF1bHRzJyBhbmQgYGNvbXBsZXRpb24t
Y2F0ZWdvcnktb3ZlcnJpZGVzJy4iCiAgKGxhbWJkYSAoc3RyIGNhbmRzKQogICAgOzsgY29tcGxl
dGlvbi1hbGwtY29tcGxldGlvbnMgcmV0dXJucyBhbiBpbXByb3BlciBsaXN0CiAgICA7OyB3aGVy
ZSB0aGUgbGFzdCBsaW5rIGlzIG5vdCBuZWNlc3NhcmlseSBuaWwuIEZpeCB0aGlzIQogICAgKG5j
b25jIChjb21wbGV0aW9uLWFsbC1jb21wbGV0aW9ucwogICAgICAgICAgICBzdHIgY2FuZHMgbmls
IChsZW5ndGggc3RyKQogICAgICAgICAgICBgKG1ldGFkYXRhIChjYXRlZ29yeSAuICxjYXRlZ29y
eSkpKQogICAgICAgICAgIG5pbCkpKQoKOzsgQW5ub3VuY2Ugbm93IHRoYXQgY29uc3VsdCBoYXMg
YmVlbiBsb2FkZWQKKHByb3ZpZGUgJ2NvbnN1bHQpCgo7Ozs7IEludGVncmF0aW9uIHdpdGggb3Ro
ZXIgY29tcGxldGlvbiBzeXN0ZW1zCgood2l0aC1ldmFsLWFmdGVyLWxvYWQgJ2ljb21wbGV0ZSAo
cmVxdWlyZSAnY29uc3VsdC1pY29tcGxldGUpKQood2l0aC1ldmFsLWFmdGVyLWxvYWQgJ3NlbGVj
dHJ1bSAocmVxdWlyZSAnY29uc3VsdC1zZWxlY3RydW0pKQoKOzsgTG9jYWwgVmFyaWFibGVzOgo7
OyBvdXRsaW5lLXJlZ2V4cDogIjs7OzsqIFxcfChkZWZcXCh1blxcfGN1c3RvbVxcfHZhclxcKSBj
b25zdWx0LVthLXpdIgo7OyBFbmQ6Cjs7OyBjb25zdWx0LmVsIGVuZHMgaGVyZQo=
--=_8eacb995e016baed37890613fffd2ad6
Content-Transfer-Encoding: base64
Content-Type: text/plain;
 name=consult-27e055e7c75e2148449e7b0be4d464b03c36a1bd.el
Content-Disposition: attachment;
 filename=consult-27e055e7c75e2148449e7b0be4d464b03c36a1bd.el;
 size=142288

Ozs7IGNvbnN1bHQuZWwgLS0tIENvbnN1bHRpbmcgY29tcGxldGluZy1yZWFkIC0qLSBsZXhpY2Fs
LWJpbmRpbmc6IHQgLSotCgo7OyBBdXRob3I6IERhbmllbCBNZW5kbGVyLCBDb25zdWx0IGFuZCBT
ZWxlY3RydW0gY29udHJpYnV0b3JzCjs7IE1haW50YWluZXI6IERhbmllbCBNZW5kbGVyCjs7IENy
ZWF0ZWQ6IDIwMjAKOzsgTGljZW5zZTogR1BMLTMuMC1vci1sYXRlcgo7OyBWZXJzaW9uOiAwLjMK
OzsgUGFja2FnZS1SZXF1aXJlczogKChlbWFjcyAiMjYuMSIpKQo7OyBIb21lcGFnZTogaHR0cHM6
Ly9naXRodWIuY29tL21pbmFkL2NvbnN1bHQKCjs7IFRoaXMgZmlsZSBpcyBub3QgcGFydCBvZiBH
TlUgRW1hY3MuCgo7OyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OyB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgo7OyAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUKOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCjs7IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6
Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKOzs7IENvbW1lbnRhcnk6Cgo7OyBDb25zdWx0IGlt
cGxlbWVudHMgYSBzZXQgb2YgYGNvbnN1bHQtPHRoaW5nPicgY29tbWFuZHMgd2hpY2ggdXNlCjs7
IGBjb21wbGV0aW5nLXJlYWQnIHRvIHNlbGVjdCBmcm9tIGEgbGlzdCBvZiBjYW5kaWRhdGVzLiBD
b25zdWx0Cjs7IHByb3ZpZGVzIGFuIGVuaGFuY2VkIGJ1ZmZlciBzd2l0Y2hlciBgY29uc3VsdC1i
dWZmZXInIGFuZCBtYW55Cjs7IHNlYXJjaCBhbmQgbmF2aWdhdGlvbiBjb21tYW5kcyBsaWtlIGBj
b25zdWx0LWltZW51JyBhbmQKOzsgYGNvbnN1bHQtbGluZScuIFNlYXJjaGluZyB0aHJvdWdoIG11
bHRpcGxlIGZpbGVzIGlzIHN1cHBvcnRlZCBieQo7OyB0aGUgcG93ZXJmdWwgYXN5bmNocm9ub3Vz
IGBjb25zdWx0LWdyZXAnIGNvbW1hbmQuIE1hbnkgQ29uc3VsdAo7OyBjb21tYW5kcyBhbGxvdyBw
cmV2aWV3aW5nIGNhbmRpZGF0ZXMgLSBpZiBhIGNhbmRpZGF0ZSBpcyBzZWxlY3RlZAo7OyBpbiB0
aGUgY29tcGxldGlvbiB2aWV3LCB0aGUgYnVmZmVyIHNob3dzIHRoZSBjYW5kaWRhdGUgaW1tZWRp
YXRlbHkuCgo7OyBUaGUgQ29uc3VsdCBjb21tYW5kcyBhcmUgY29tcGF0aWJsZSB3aXRoIGNvbXBs
ZXRpb24gc3lzdGVtcyBiYXNlZAo7OyBvbiB0aGUgRW1hY3MgYGNvbXBsZXRpbmctcmVhZCcgQVBJ
LCBub3RhYmx5IHRoZSBkZWZhdWx0IGNvbXBsZXRpb24KOzsgc3lzdGVtLCBJY29tcGxldGUsIFNl
bGVjdHJ1bSBhbmQgRW1iYXJrLgoKOzsgQ29uc3VsdCBoYXMgYmVlbiBpbnNwaXJlZCBieSBDb3Vu
c2VsLiBTb21lIG9mIHRoZSBDb25zdWx0IGNvbW1hbmRzCjs7IG9yaWdpbmF0ZWQgaW4gdGhlIFNl
bGVjdHJ1bSB3aWtpLiBTZWUgdGhlIFJFQURNRSBmb3IgYSBmdWxsIGxpc3Qgb2YKOzsgY29udHJp
YnV0b3JzLgoKOzs7IENvZGU6CgooZXZhbC13aGVuLWNvbXBpbGUKICAocmVxdWlyZSAnY2wtbGli
KQogIChyZXF1aXJlICdzdWJyLXgpKQoocmVxdWlyZSAnYm9va21hcmspCihyZXF1aXJlICdjb21w
aWxlKQoocmVxdWlyZSAnaW1lbnUpCihyZXF1aXJlICdrbWFjcm8pCihyZXF1aXJlICdvdXRsaW5l
KQoocmVxdWlyZSAncmVjZW50ZikKKHJlcXVpcmUgJ3JpbmcpCihyZXF1aXJlICdzZXEpCgooZGVm
Z3JvdXAgY29uc3VsdCBuaWwKICAiQ29uc3VsdGluZyBgY29tcGxldGluZy1yZWFkJy4iCiAgOmdy
b3VwICdjb252ZW5pZW5jZQogIDpwcmVmaXggImNvbnN1bHQtIikKCjs7OzsgQ3VzdG9taXphdGlv
bgoKKGRlZmN1c3RvbSBjb25zdWx0LW5hcnJvdy1rZXkgbmlsCiAgIlByZWZpeCBrZXkgZm9yIG5h
cnJvd2luZyBkdXJpbmcgY29tcGxldGlvbi4KCkdvb2QgY2hvaWNlcyBmb3IgdGhpcyBrZXkgYXJl
IChrYmQgXCI8XCIpIG9yIChrYmQgXCJDLStcIikgZm9yIGV4YW1wbGUuCgpUaGUga2V5IG11c3Qg
YmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgdmVjdG9yLgpUaGlzIGlzIHRoZSBrZXkgcmVwcmVzZW50
YXRpb24gYWNjZXB0ZWQgYnkgYGRlZmluZS1rZXknLiIKICA6dHlwZSAnKGNob2ljZSB2ZWN0b3Ig
c3RyaW5nIChjb25zdCBuaWwpKSkKCihkZWZjdXN0b20gY29uc3VsdC13aWRlbi1rZXkgbmlsCiAg
IktleSB1c2VkIGZvciB3aWRlbmluZyBkdXJpbmcgY29tcGxldGlvbi4KCklmIHRoaXMga2V5IGlz
IHVuc2V0LCBkZWZhdWx0cyB0byAnY29uc3VsdC1uYXJyb3cta2V5IFNQQycuCgpUaGUga2V5IG11
c3QgYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgdmVjdG9yLgpUaGlzIGlzIHRoZSBrZXkgcmVwcmVz
ZW50YXRpb24gYWNjZXB0ZWQgYnkgYGRlZmluZS1rZXknLiIKICA6dHlwZSAnKGNob2ljZSB2ZWN0
b3Igc3RyaW5nIChjb25zdCBuaWwpKSkKCihkZWZjdXN0b20gY29uc3VsdC1wcm9qZWN0LXJvb3Qt
ZnVuY3Rpb24gbmlsCiAgIkZ1bmN0aW9uIHdoaWNoIHJldHVybnMgcHJvamVjdCByb290IGRpcmVj
dG9yeS4KClRoZSByb290IGRpcmVjdG9yeSBpcyB1c2VkIGJ5IGBjb25zdWx0LWJ1ZmZlcicgYW5k
IGBjb25zdWx0LWdyZXAnLiIKICA6dHlwZSAnKGNob2ljZSBmdW5jdGlvbiAoY29uc3QgbmlsKSkp
CgooZGVmY3VzdG9tIGNvbnN1bHQtYXN5bmMtcmVmcmVzaC1kZWxheSAwLjI1CiAgIlJlZnJlc2hp
bmcgZGVsYXkgb2YgdGhlIGNvbXBsZXRpb24gdWkgZm9yIGFzeW5jaHJvbm91cyBjb21tYW5kcy4K
ClRoZSBjb21wbGV0aW9uIHVpIGlzIG9ubHkgdXBkYXRlZCBldmVyeSBgY29uc3VsdC1hc3luYy1y
ZWZyZXNoLWRlbGF5JwpzZWNvbmRzLiBUaGlzIGFwcGxpZXMgdG8gYXN5bmNocm9ub3VzIGNvbW1h
bmRzIGxpa2UgZm9yIGV4YW1wbGUKYGNvbnN1bHQtZ3JlcCcuIgogIDp0eXBlICdmbG9hdCkKCihk
ZWZjdXN0b20gY29uc3VsdC1hc3luYy1pbnB1dC10aHJvdHRsZSAwLjUKICAiSW5wdXQgdGhyb3R0
bGUgZm9yIGFzeW5jaHJvbm91cyBjb21tYW5kcy4KClRoZSBhc3luY2hyb25vdXMgcHJvY2VzcyBp
cyBzdGFydGVkIG9ubHkgZXZlcnkKYGNvbnN1bHQtYXN5bmMtaW5wdXQtdGhyb3R0bGUnIHNlY29u
ZHMuIFRoaXMgYXBwbGllcyB0byBhc3luY2hyb25vdXMKY29tbWFuZHMsIGUuZy4sIGBjb25zdWx0
LWdyZXAnLiIKICA6dHlwZSAnZmxvYXQpCgooZGVmY3VzdG9tIGNvbnN1bHQtYXN5bmMtaW5wdXQt
ZGVib3VuY2UgMC4yNQogICJJbnB1dCBkZWJvdW5jZSBmb3IgYXN5bmNocm9ub3VzIGNvbW1hbmRz
LgoKVGhlIGFzeW5jaHJvbm91cyBwcm9jZXNzIGlzIHN0YXJ0ZWQgb25seSB3aGVuIHRoZXJlIGhh
cyBub3QgYmVlbiBuZXcKaW5wdXQgZm9yIGBjb25zdWx0LWFzeW5jLWlucHV0LWRlYm91bmNlJyBz
ZWNvbmRzLiBUaGlzIGFwcGxpZXMgdG8KYXN5bmNocm9ub3VzIGNvbW1hbmRzLCBlLmcuLCBgY29u
c3VsdC1ncmVwJy4iCiAgOnR5cGUgJ2Zsb2F0KQoKKGRlZmN1c3RvbSBjb25zdWx0LWFzeW5jLW1p
bi1pbnB1dCAzCiAgIk1pbmltdW0gbnVtYmVyIG9mIGxldHRlcnMgbmVlZGVkLCBiZWZvcmUgYXN5
bmNocm9ub3VzIHByb2Nlc3MgaXMgY2FsbGVkLgoKVGhpcyBhcHBsaWVzIHRvIGFzeW5jaHJvbm91
cyBjb21tYW5kcywgZS5nLiwgYGNvbnN1bHQtZ3JlcCcuIgogIDp0eXBlICdpbnRlZ2VyKQoKKGRl
ZmN1c3RvbSBjb25zdWx0LWFzeW5jLWRlZmF1bHQtc3BsaXQgIiMiCiAgIkRlZmF1bHQgYXN5bmMg
aW5wdXQgc2VwYXJhdG9yIHVzZWQgZm9yIHNwbGl0dGluZy4KCkNhbiBhbHNvIGJlIG5pbCBpbiBv
cmRlciB0byBub3QgYXV0b21hdGljYWxseSBpbnNlcnQgYSBzZXBhcmF0b3IuIFRoaXMKYXBwbGll
cyB0byBhc3luY2hyb25vdXMgY29tbWFuZHMsIGUuZy4sIGBjb25zdWx0LWdyZXAnLiIKICA6dHlw
ZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBjb25zdWx0LW1vZGUtaGlzdG9yaWVzCiAgJygoZXNoZWxs
LW1vZGUgLiBlc2hlbGwtaGlzdG9yeS1yaW5nKQogICAgKGNvbWludC1tb2RlIC4gY29taW50LWlu
cHV0LXJpbmcpCiAgICAodGVybS1tb2RlICAgLiB0ZXJtLWlucHV0LXJpbmcpKQogICJBbGlzdCBv
ZiAobW9kZSAuIGhpc3RvcnkpIHBhaXJzIG9mIG1vZGUgaGlzdG9yaWVzLgpUaGUgaGlzdG9yaWVz
IGNhbiBiZSByaW5ncyBvciBsaXN0cy4iCiAgOnR5cGUgJyhsaXN0IChjb25zIHN5bWJvbCBzeW1i
b2wpKSkKCihkZWZjdXN0b20gY29uc3VsdC10aGVtZXMgbmlsCiAgIkxpc3Qgb2YgdGhlbWVzIHRv
IGJlIHByZXNlbnRlZCBmb3Igc2VsZWN0aW9uLgpuaWwgc2hvd3MgYWxsIGBjdXN0b20tYXZhaWxh
YmxlLXRoZW1lcycuIgogIDp0eXBlICcocmVwZWF0IHN5bWJvbCkpCgooZGVmY3VzdG9tIGNvbnN1
bHQtYWZ0ZXItanVtcC1ob29rICcocmVjZW50ZXIpCiAgIkZ1bmN0aW9uIGNhbGxlZCBhZnRlciBq
dW1waW5nIHRvIGEgbG9jYXRpb24uCgpDb21tb25seSB1c2VkIGZ1bmN0aW9ucyBmb3IgdGhpcyBo
b29rIGFyZSBgcmVjZW50ZXInIGFuZApgcmVwb3NpdGlvbi13aW5kb3cnLgoKVGhpcyBpcyBjYWxs
ZWQgZHVyaW5nIHByZXZpZXcgYW5kIGZvciB0aGUganVtcCBhZnRlciBzZWxlY3Rpb24uCllvdSBt
YXkgd2FudCB0byBhZGQgYSBmdW5jdGlvbiB3aGljaCBwdWxzZXMgdGhlIGN1cnJlbnQgbGluZSwg
ZS5nLiwKYHhyZWYtcHVsc2UtbW9tZW50YXJpbHknLiIKICA6dHlwZSAnaG9vaykKCihkZWZjdXN0
b20gY29uc3VsdC1saW5lLXBvaW50LXBsYWNlbWVudCAnbWF0Y2gtYmVnaW5uaW5nCiAgIldoZXJl
IHRvIGxlYXZlIHBvaW50IGFmdGVyIGBjb25zdWx0LWxpbmUnIGp1bXBzIHRvIGEgbWF0Y2guIgog
IDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJCZWdpbm5pbmcgb2YgdGhlIGxpbmUiIGxpbmUt
YmVnaW5uaW5nKQogICAgICAgICAgICAgICAgIChjb25zdCA6dGFnICJCZWdpbm5pbmcgb2YgdGhl
IG1hdGNoIiBtYXRjaC1iZWdpbm5pbmcpCiAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIkVu
ZCBvZiB0aGUgbWF0Y2giIG1hdGNoLWVuZCkpKQoKKGRlZmN1c3RvbSBjb25zdWx0LWxpbmUtbnVt
YmVycy13aWRlbiB0CiAgIlNob3cgYWJzb2x1dGUgbGluZSBudW1iZXJzIHdoZW4gbmFycm93aW5n
IGlzIGFjdGl2ZS4KClNlZSBhbHNvIGBkaXNwbGF5LWxpbmUtbnVtYmVycy13aWRlbicuIgogIDp0
eXBlICdib29sZWFuKQoKKGRlZmN1c3RvbSBjb25zdWx0LWdvdG8tbGluZS1udW1iZXJzIHQKICAi
U2hvdyBsaW5lIG51bWJlcnMgZm9yIGBjb25zdWx0LWdvdG8tbGluZScuIgogIDp0eXBlICdib29s
ZWFuKQoKKGRlZmN1c3RvbSBjb25zdWx0LWZvbnRpZnktbWF4LXNpemUgMTA0ODU3NgogICJCdWZm
ZXJzIGxhcmdlciB0aGFuIHRoaXMgYnl0ZSBsaW1pdCBhcmUgbm90IGZvbnRpZmllZC4KClRoaXMg
aXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByZXZlbnQgYSBsYXJnZSBzdGFydHVwIHRpbWUKZm9y
IG5hdmlnYXRpb24gY29tbWFuZHMgbGlrZSBgY29uc3VsdC1saW5lJy4iCiAgOnR5cGUgJ2ludGVn
ZXIpCgooZGVmY3VzdG9tIGNvbnN1bHQtaW1lbnUtbmFycm93CiAgJygoZW1hY3MtbGlzcC1tb2Rl
IC4gKCg/ZiAuICJGdW5jdGlvbnMiKQogICAgICAgICAgICAgICAgICAgICAgICAoP20gLiAiTWFj
cm9zIikKICAgICAgICAgICAgICAgICAgICAgICAgKD9wIC4gIlBhY2thZ2VzIikKICAgICAgICAg
ICAgICAgICAgICAgICAgKD90IC4gIlR5cGVzIikKICAgICAgICAgICAgICAgICAgICAgICAgKD92
IC4gIlZhcmlhYmxlcyIpKSkpCiAgIk5hcnJvd2luZyBrZXlzIHVzZWQgYnkgYGNvbnN1bHQtaW1l
bnUnLiIKICA6dHlwZSAnYWxpc3QpCgooZGVmY3VzdG9tIGNvbnN1bHQtaW1lbnUtdG9wbGV2ZWwK
ICAnKChlbWFjcy1saXNwLW1vZGUgLiAiRnVuY3Rpb25zIikpCiAgIkNhdGVnb3J5IG9mIHRvcGxl
dmVsIGl0ZW1zLCB1c2VkIGJ5IGBjb25zdWx0LWltZW51Jy4KClRoZSBpbWVudSByZXByZXNlbnRh
dGlvbiBwcm92aWRlZCBieSB0aGUgYmFja2VuZCB1c3VhbGx5IHB1dHMKZnVuY3Rpb25zIGRpcmVj
dGx5IGF0IHRoZSB0b3BsZXZlbC4gYGNvbnN1bHQtaW1lbnUnIG1vdmVzIHRoZW0gaW5zdGVhZAp1
bmRlciB0aGUgY2F0ZWdvcnkgc3BlY2lmaWVkIGJ5IHRoaXMgdmFyaWFibGUuIgogIDp0eXBlICdh
bGlzdCkKCihkZWZjdXN0b20gY29uc3VsdC1idWZmZXItZmlsdGVyCiAgJygiXiAiKQogICJGaWx0
ZXIgcmVnZXhwcyBmb3IgYGNvbnN1bHQtYnVmZmVyJy4KClRoZSBkZWZhdWx0IHNldHRpbmcgaXMg
dG8gZmlsdGVyIG9ubHkgZXBoZW1lcmFsIGJ1ZmZlciBuYW1lcyBiZWdpbm5pbmcKd2l0aCBhIHNw
YWNlIGNoYXJhY3Rlci4iCiAgOnR5cGUgJyhyZXBlYXQgcmVnZXhwKSkKCihkZWZjdXN0b20gY29u
c3VsdC1idWZmZXItc291cmNlcwogICcoY29uc3VsdC0tc291cmNlLWhpZGRlbi1idWZmZXIKICAg
IGNvbnN1bHQtLXNvdXJjZS1idWZmZXIKICAgIGNvbnN1bHQtLXNvdXJjZS1maWxlCiAgICBjb25z
dWx0LS1zb3VyY2UtYm9va21hcmsKICAgIGNvbnN1bHQtLXNvdXJjZS1wcm9qZWN0LWJ1ZmZlcgog
ICAgY29uc3VsdC0tc291cmNlLXByb2plY3QtZmlsZSkKICAiU291cmNlcyB1c2VkIGJ5IGBjb25z
dWx0LWJ1ZmZlcicuCgpTZWUgYGNvbnN1bHQtLW11bHRpJyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0
aGUgc291cmNlIHZhbHVlcy4iCiAgOnR5cGUgJ2xpc3QpCgooZGVmY3VzdG9tIGNvbnN1bHQtbW9k
ZS1jb21tYW5kLWZpbHRlcgogICcoOzsgRmlsdGVyIGNvbW1hbmRzCiAgICAiLW1vZGUkIiAiLS0i
CiAgICA7OyBGaWx0ZXIgd2hvbGUgZmVhdHVyZXMKICAgIHNpbXBsZSBtd2hlZWwgdGltZSBzby1s
b25nIHJlY2VudGYpCiAgIkZpbHRlciBjb21tYW5kcyBmb3IgYGNvbnN1bHQtbW9kZS1jb21tYW5k
Jy4iCiAgOnR5cGUgJyhyZXBlYXQgKGNob2ljZSBzeW1ib2wgcmVnZXhwKSkpCgooZGVmY3VzdG9t
IGNvbnN1bHQtZ2l0LWdyZXAtY29tbWFuZAogICJnaXQgLS1uby1wYWdlciBncmVwIC0tbnVsbCAt
LWNvbG9yPWFsd2F5cyAtLWV4dGVuZGVkLXJlZ2V4cFwKICAgLS1saW5lLW51bWJlciAtSSAtZSBB
UkcgT1BUUyIKICAiQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgZ2l0LWdyZXAsIHNlZSBgY29u
c3VsdC1naXQtZ3JlcCcuIgogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGNvbnN1bHQtZ3Jl
cC1jb21tYW5kCiAgImdyZXAgLS1udWxsIC0tbGluZS1idWZmZXJlZCAtLWNvbG9yPWFsd2F5cyAt
LWV4dGVuZGVkLXJlZ2V4cFwKICAgLS1leGNsdWRlLWRpcj0uZ2l0IC0tbGluZS1udW1iZXIgLUkg
LXIgLiAtZSBBUkcgT1BUUyIKICAiQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgZ3JlcCwgc2Vl
IGBjb25zdWx0LWdyZXAnLiIKICA6dHlwZSAnc3RyaW5nKQoKKGRlZmN1c3RvbSBjb25zdWx0LXJp
cGdyZXAtY29tbWFuZAogICJyZyAtLW51bGwgLS1saW5lLWJ1ZmZlcmVkIC0tY29sb3I9YWx3YXlz
IC0tbWF4LWNvbHVtbnM9NTAwXAogICAtLW5vLWhlYWRpbmcgLS1saW5lLW51bWJlciAuIC1lIEFS
RyBPUFRTIgogICJDb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciByaXBncmVwLCBzZWUgYGNvbnN1
bHQtcmlwZ3JlcCcuIgogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGNvbnN1bHQtZmluZC1j
b21tYW5kCiAgImZpbmQgLiAtbm90ICggLXdob2xlbmFtZSAqLy4qIC1wcnVuZSApIC1pcGF0aCAq
QVJHKiBPUFRTIgogICJDb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciBmaW5kLCBzZWUgYGNvbnN1
bHQtZmluZCcuIgogIDp0eXBlICdzdHJpbmcpCgooZGVmY3VzdG9tIGNvbnN1bHQtbG9jYXRlLWNv
bW1hbmQKICAibG9jYXRlIC0taWdub3JlLWNhc2UgLS1leGlzdGluZyAtLXJlZ2V4cCBBUkcgT1BU
UyIKICAiQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgbG9jYXRlLCBzZWUgYGNvbnN1bHQtbG9j
YXRlJy4iCiAgOnR5cGUgJ3N0cmluZykKCihkZWZjdXN0b20gY29uc3VsdC1tYW4tY29tbWFuZAog
ICJtYW4gLWsgQVJHIE9QVFMiCiAgIkNvbW1hbmQgbGluZSBhcmd1bWVudHMgZm9yIG1hbiBhcHJv
cG9zLCBzZWUgYGNvbnN1bHQtbWFuJy4iCiAgOnR5cGUgJ3N0cmluZykKCihkZWZjdXN0b20gY29u
c3VsdC1wcmV2aWV3LWtleSAnYW55CiAgIlByZXZpZXcgdHJpZ2dlciBrZXlzLCBjYW4gYmUgbmls
LCAnYW55LCBhIHNpbmdsZSBrZXkgb3IgYSBsaXN0IG9mIGtleXMuIgogIDp0eXBlICcoY2hvaWNl
IChjb25zdCBhbnkpIChjb25zdCBuaWwpIHZlY3RvciBzdHJpbmcgKHJlcGVhdCAoY2hvaWNlIHZl
Y3RvciBzdHJpbmcpKSkpCgooZGVmY3VzdG9tIGNvbnN1bHQtcHJldmlldy1tYXgtc2l6ZSAxMDQ4
NTc2MAogICJGaWxlcyBsYXJnZXIgdGhhbiB0aGlzIGJ5dGUgbGltaXQgYXJlIG5vdCBwcmV2aWV3
ZWQuIgogIDp0eXBlICdpbnRlZ2VyKQoKKGRlZmN1c3RvbSBjb25zdWx0LXByZXZpZXctbWF4LWNv
dW50IDEwCiAgIk51bWJlciBvZiBmaWxlcyB0byBrZWVwIG9wZW4gYXQgb25jZSBkdXJpbmcgcHJl
dmlldy4iCiAgOnR5cGUgJ2ludGVnZXIpCgooZGVmY3VzdG9tIGNvbnN1bHQtcmVnaXN0ZXItbmFy
cm93CiAgYCgoP24gIk51bWJlciIgLCMnbnVtYmVycCkKICAgICg/cyAiU3RyaW5nIiAsIydzdHJp
bmdwKQogICAgKD9yICJSZWN0YW5nbGUiICwobGFtYmRhICh4KSAoc3RyaW5ncCAoY2FyLXNhZmUg
eCkpKSkKICAgIDs7IGZyYW1lc2V0LXJlZ2lzdGVyLXAgYW5kIGttYWNyby1yZWdpc3Rlci1wIGV4
aXN0cyBzaW5jZSAyNy4xCiAgICAoP2YgIkZyYW1lc2V0IiAsKGxhbWJkYSAoeCkgKGVxICh0eXBl
LW9mIHgpICdmcmFtZXNldC1yZWdpc3RlcikpKQogICAgKD9rICJLbWFjcm8iICwobGFtYmRhICh4
KSAoZXEgKHR5cGUtb2YgeCkgJ2ttYWNyby1yZWdpc3RlcikpKQogICAgKD9wICJQb2ludCIgLChs
YW1iZGEgKHgpIChvciAobWFya2VycCB4KSAoZXEgKGNhci1zYWZlIHgpICdmaWxlLXF1ZXJ5KSkp
KQogICAgKD93ICJXaW5kb3ciICwobGFtYmRhICh4KSAod2luZG93LWNvbmZpZ3VyYXRpb24tcCAo
Y2FyLXNhZmUgeCkpKSkpCiAgIlJlZ2lzdGVyIG5hcnJvd2luZyBjb25maWd1cmF0aW9uLgoKRWFj
aCBlbGVtZW50IG9mIHRoZSBsaXN0IG11c3QgaGF2ZSB0aGUgZm9ybSAnKGNoYXIgbmFtZSBwcmVk
aWNhdGUpLiIKICA6dHlwZSAnbGlzdCkKCihkZWZjdXN0b20gY29uc3VsdC1ib29rbWFyay1uYXJy
b3cKICBgKCg/ZiAiRmlsZSIgIydib29rbWFyay1kZWZhdWx0LWhhbmRsZXIpCiAgICAoP2ggIkhl
bHAiICMnaGVscC1ib29rbWFyay1qdW1wKQogICAgKD9pICJJbmZvIiAjJ0luZm8tYm9va21hcmst
anVtcCkKICAgICg/cCAiUGljdHVyZSIgIydpbWFnZS1ib29rbWFyay1qdW1wKQogICAgKD9kICJE
b2N2aWV3IiAjJ2RvYy12aWV3LWJvb2ttYXJrLWp1bXApCiAgICAoP20gIk1hbiIgIydNYW4tYm9v
a21hcmstanVtcCkKICAgICg/dyAiV29tYW4iICMnd29tYW4tYm9va21hcmstanVtcCkKICAgICg/
ZyAiR251cyIgIydnbnVzLXN1bW1hcnktYm9va21hcmstanVtcCkpCiAgIkJvb2ttYXJrIG5hcnJv
d2luZyBjb25maWd1cmF0aW9uLgoKRWFjaCBlbGVtZW50IG9mIHRoZSBsaXN0IG11c3QgaGF2ZSB0
aGUgZm9ybSAnKGNoYXIgbmFtZSBoYW5kbGVyKS4iCiAgOnR5cGUgJ2xpc3QpCgooZGVmY3VzdG9t
IGNvbnN1bHQtY29uZmlnIG5pbAogICJDb21tYW5kIGNvbmZpZ3VyYXRpb24gYWxpc3RzLCB3aGlj
aCBhbGxvd3MgZmluZS1ncmFpbmVkIGNvbmZpZ3VyYXRpb24uCgpUaGUgb3B0aW9ucyBzZXQgaGVy
ZSB3aWxsIGJlIHBhc3NlZCB0byBgY29uc3VsdC0tcmVhZCcsIHdoZW4gY2FsbGVkCmZyb20gdGhl
IGNvcnJlc3BvbmRpbmcgY29tbWFuZC4gTm90ZSB0aGF0IHRoZSBvcHRpb25zIGRlcGVuZCBvbiB0
aGUKcHJpdmF0ZSBgY29uc3VsdC0tcmVhZCcgQVBJIGFuZCBzaG91bGQgbm90IGJlIGNvbnNpZGVy
ZWQgYXMgc3RhYmxlIGFzCnRoZSBwdWJsaWMgQVBJLiIKICA6dHlwZSAnKGxpc3QgKGNvbnMgc3lt
Ym9sIHBsaXN0KSkpCgo7Ozs7IEZhY2VzCgooZGVmZ3JvdXAgY29uc3VsdC1mYWNlcyBuaWwKICAi
RmFjZXMgdXNlZCBieSBDb25zdWx0LiIKICA6Z3JvdXAgJ2NvbnN1bHQKICA6Z3JvdXAgJ2ZhY2Vz
KQoKKGRlZmZhY2UgY29uc3VsdC1wcmV2aWV3LWxpbmUKICAnKCh0IDppbmhlcml0IHJlZ2lvbikp
CiAgIkZhY2UgdXNlZCB0byBmb3IgbGluZSBwcmV2aWV3cy4iKQoKKGRlZmZhY2UgY29uc3VsdC1w
cmV2aWV3LW1hdGNoCiAgJygodCA6aW5oZXJpdCBtYXRjaCkpCiAgIkZhY2UgdXNlZCB0byBmb3Ig
bWF0Y2ggcHJldmlld3MgaW4gYGNvbnN1bHQtZ3JlcCcuIikKCihkZWZmYWNlIGNvbnN1bHQtcHJl
dmlldy1jdXJzb3IKICAnKCh0IDppbmhlcml0IGNvbnN1bHQtcHJldmlldy1tYXRjaCkpCiAgIkZh
Y2UgdXNlZCB0byBmb3IgY3Vyc29yIHByZXZpZXdzIGFuZCBtYXJrcyBpbiBgY29uc3VsdC1tYXJr
Jy4iKQoKKGRlZmZhY2UgY29uc3VsdC1wcmV2aWV3LWVycm9yCiAgJygodCA6aW5oZXJpdCBpc2Vh
cmNoLWZhaWwpKQogICJGYWNlIHVzZWQgdG8gZm9yIGN1cnNvciBwcmV2aWV3cyBhbmQgbWFya3Mg
aW4gYGNvbnN1bHQtZXJyb3InLiIpCgooZGVmZmFjZSBjb25zdWx0LXByZXZpZXcteWFuawogICco
KHQgOmluaGVyaXQgY29uc3VsdC1wcmV2aWV3LWxpbmUpKQogICJGYWNlIHVzZWQgdG8gZm9yIHlh
bmsgcHJldmlld3MgaW4gYGNvbnN1bHQteWFuaycuIikKCihkZWZmYWNlIGNvbnN1bHQtbmFycm93
LWluZGljYXRvcgogICcoKHQgOmluaGVyaXQgd2FybmluZykpCiAgIkZhY2UgdXNlZCBmb3IgdGhl
IG5hcnJvd2luZyBpbmRpY2F0b3IuIikKCihkZWZmYWNlIGNvbnN1bHQtYXN5bmMtcnVubmluZwog
ICcoKHQgOmluaGVyaXQgY29uc3VsdC1uYXJyb3ctaW5kaWNhdG9yKSkKICAiRmFjZSB1c2VkIGlm
IGFzeW5jaHJvbm91cyBwcm9jZXNzIGlzIHJ1bm5pbmcuIikKCihkZWZmYWNlIGNvbnN1bHQtYXN5
bmMtZmluaXNoZWQKICAnKCh0IDppbmhlcml0IHN1Y2Nlc3MpKQogICJGYWNlIHVzZWQgaWYgYXN5
bmNocm9ub3VzIHByb2Nlc3MgaGFzIGZpbmlzaGVkLiIpCgooZGVmZmFjZSBjb25zdWx0LWFzeW5j
LWZhaWxlZAogICcoKHQgOmluaGVyaXQgZXJyb3IpKQogICJGYWNlIHVzZWQgaWYgYXN5bmNocm9u
b3VzIHByb2Nlc3MgaGFzIGZhaWxlZC4iKQoKKGRlZmZhY2UgY29uc3VsdC1hc3luYy1zcGxpdAog
ICcoKHQgOmluaGVyaXQgZm9udC1sb2NrLW5lZ2F0aW9uLWNoYXItZmFjZSkpCiAgIkZhY2UgdXNl
ZCB0byBoaWdobGlnaHQgcHVuY3R1YXRpb24gY2hhcmFjdGVyLiIpCgooZGVmZmFjZSBjb25zdWx0
LWhlbHAKICAnKCh0IDppbmhlcml0IHNoYWRvdykpCiAgIkZhY2UgdXNlZCB0byBoaWdobGlnaHQg
aGVscCwgZS5nLiwgaW4gYGNvbnN1bHQtcmVnaXN0ZXItc3RvcmUnLiIpCgooZGVmZmFjZSBjb25z
dWx0LWtleQogICcoKHQgOmluaGVyaXQgZm9udC1sb2NrLWtleXdvcmQtZmFjZSkpCiAgIkZhY2Ug
dXNlZCB0byBoaWdobGlnaHQga2V5cywgZS5nLiwgaW4gYGNvbnN1bHQtcmVnaXN0ZXInLiIpCgoo
ZGVmZmFjZSBjb25zdWx0LWltZW51LXByZWZpeAogICcoKHQgOmluaGVyaXQgY29uc3VsdC1rZXkp
KQogICJGYWNlIHVzZWQgdG8gaGlnaGxpZ2h0IGltZW51IHByZWZpeCBpbiBgY29uc3VsdC1pbWVu
dScuIikKCihkZWZmYWNlIGNvbnN1bHQtbGluZS1udW1iZXIKICAnKCh0IDppbmhlcml0IGNvbnN1
bHQta2V5KSkKICAiRmFjZSB1c2VkIHRvIGhpZ2hsaWdodCBsb2NhdGlvbiBsaW5lIGluIGBjb25z
dWx0LWdsb2JhbC1tYXJrJy4iKQoKKGRlZmZhY2UgY29uc3VsdC1maWxlCiAgJygodCA6aW5oZXJp
dCBmb250LWxvY2stZnVuY3Rpb24tbmFtZS1mYWNlKSkKICAiRmFjZSB1c2VkIHRvIGhpZ2hsaWdo
dCBmaWxlcyBpbiBgY29uc3VsdC1idWZmZXInLiIpCgooZGVmZmFjZSBjb25zdWx0LWJvb2ttYXJr
CiAgJygodCA6aW5oZXJpdCBmb250LWxvY2stY29uc3RhbnQtZmFjZSkpCiAgIkZhY2UgdXNlZCB0
byBoaWdobGlnaHQgYm9va21hcmtzIGluIGBjb25zdWx0LWJ1ZmZlcicuIikKCihkZWZmYWNlIGNv
bnN1bHQtYnVmZmVyCiAgJygodCkpCiAgIkZhY2UgdXNlZCB0byBoaWdobGlnaHQgYnVmZmVycyBp
biBgY29uc3VsdC1idWZmZXInLiIpCgooZGVmZmFjZSBjb25zdWx0LWxpbmUtbnVtYmVyLXByZWZp
eAogICcoKHQgOmluaGVyaXQgbGluZS1udW1iZXIpKQogICJGYWNlIHVzZWQgdG8gaGlnaGxpZ2h0
IGxpbmUgbnVtYmVycyBpbiBzZWxlY3Rpb25zLiIpCgo7OyBmYWNlIGRlZmluaXRpb24gdGFrZW4g
ZnJvbSBFbWJhcmsKKGRlZmZhY2UgY29uc3VsdC16ZWJyYQogICcoKGRlZmF1bHQgOmV4dGVuZCB0
KQogICAgKCgoY2xhc3MgY29sb3IpIChtaW4tY29sb3JzIDg4KSAoYmFja2dyb3VuZCBsaWdodCkp
CiAgICAgOmJhY2tncm91bmQgIiNlZmVmZWYiKQogICAgKCgoY2xhc3MgY29sb3IpIChtaW4tY29s
b3JzIDg4KSAoYmFja2dyb3VuZCBkYXJrKSkKICAgICA6YmFja2dyb3VuZCAiIzI0MjQyNCIpKQog
ICJGYWNlIHRvIGhpZ2hsaWdodCBhbHRlcm5hdGluZyByb3dzIGluIGBjb25zdWx0LXJlZ2lzdGVy
LXdpbmRvdycuIikKCjs7OzsgSGlzdG9yeSB2YXJpYWJsZXMKCihkZWZ2YXIgY29uc3VsdC0ta2Vl
cC1saW5lcy1oaXN0b3J5IG5pbCkKKGRlZnZhciBjb25zdWx0LS1lcnJvci1oaXN0b3J5IG5pbCkK
KGRlZnZhciBjb25zdWx0LS1ncmVwLWhpc3RvcnkgbmlsKQooZGVmdmFyIGNvbnN1bHQtLWZpbmQt
aGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0tbWFuLWhpc3RvcnkgbmlsKQooZGVmdmFyIGNv
bnN1bHQtLWxpbmUtaGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0tYXByb3Bvcy1oaXN0b3J5
IG5pbCkKKGRlZnZhciBjb25zdWx0LS10aGVtZS1oaXN0b3J5IG5pbCkKKGRlZnZhciBjb25zdWx0
LS1taW5vci1tb2RlLW1lbnUtaGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0tbW9kZS1jb21t
YW5kLWhpc3RvcnkgbmlsKQooZGVmdmFyIGNvbnN1bHQtLWttYWNyby1oaXN0b3J5IG5pbCkKKGRl
ZnZhciBjb25zdWx0LS1idWZmZXItaGlzdG9yeSBuaWwpCihkZWZ2YXIgY29uc3VsdC0taW1lbnUt
aGlzdG9yeSBuaWwpCgo7Ozs7IEludGVybmFsIHZhcmlhYmxlcwoKKGRlZnZhciBjb25zdWx0LS1j
YWNoZSBuaWwKICAiQ2FjaGVkIGRhdGEgcG9wdWxhdGVkIGJ5IGBjb25zdWx0LS1kZWZpbmUtY2Fj
aGUnLiIpCgooZGVmdmFyIGNvbnN1bHQtLWNvbXBsZXRpb24tZmlsdGVyLWhvb2sKICAobGlzdCAj
J2NvbnN1bHQtLWRlZmF1bHQtY29tcGxldGlvbi1maWx0ZXIpCiAgIk9idGFpbiBtYXRjaCBmdW5j
dGlvbiBmcm9tIGNvbXBsZXRpb24gc3lzdGVtLiIpCgooZGVmdmFyIGNvbnN1bHQtLWNvbXBsZXRp
b24tY2FuZGlkYXRlLWhvb2sKICAobGlzdCAjJ2NvbnN1bHQtLWRlZmF1bHQtY29tcGxldGlvbi1j
YW5kaWRhdGUpCiAgIkdldCBjYW5kaWRhdGUgZnJvbSBjb21wbGV0aW9uIHN5c3RlbS4iKQoKKGRl
ZnZhciBjb25zdWx0LS1jb21wbGV0aW9uLXJlZnJlc2gtaG9vayBuaWwKICAiUmVmcmVzaCBjb21w
bGV0aW9uIHN5c3RlbS4iKQoKKGRlZnZhci1sb2NhbCBjb25zdWx0LS1wcmV2aWV3LWZ1bmN0aW9u
IG5pbAogICJNaW5pYnVmZmVyLWxvY2FsIHZhcmlhYmxlIHdoaWNoIGV4cG9zZXMgdGhlIGN1cnJl
bnQgcHJldmlldyBmdW5jdGlvbi4KVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGJ5IGN1c3Rv
bSBjb21wbGV0aW9uIHN5c3RlbXMgZnJvbSBvdXRzaWRlIHRoZSBtaW5pYnVmZmVyLgpUaGUgcHJl
dmlldyBmdW5jdGlvbiBleHBlY3RzIHR3byBhcmd1bWVudHMsIHRoZSBjdXJyZW50IGlucHV0IHN0
cmluZyBhbmQgdGhlIGNhbmRpZGF0ZSBzdHJpbmcuIikKCihkZWZjb25zdCBjb25zdWx0LS10b2Z1
LWNoYXIgI3gxMDAwMDAKICAiU3BlY2lhbCBjaGFyYWN0ZXIgdXNlZCB0byBlbmNvZGUgbGluZSBw
cmVmaXhlcyBmb3IgZGlzYW1iaWd1YXRpb24uCldlIHVzZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9m
IHRoZSBwcml2YXRlIHVuaWNvZGUgcGxhbmUgYi4iKQoKKGRlZmNvbnN0IGNvbnN1bHQtLXRvZnUt
cmFuZ2UgI3hGRkZFCiAgIlNwZWNpYWwgY2hhcmFjdGVyIHJhbmdlLgpTaXplIG9mIHByaXZhdGUg
dW5pY29kZSBwbGFuZSBiLiIpCgooZGVmdmFyLWxvY2FsIGNvbnN1bHQtLW5hcnJvdyBuaWwKICAi
Q3VycmVudCBuYXJyb3dpbmcga2V5LiIpCgooZGVmdmFyLWxvY2FsIGNvbnN1bHQtLW5hcnJvdy1w
cmVmaXhlcyBuaWwKICAiTmFycm93aW5nIHByZWZpeGVzIG9mIHRoZSBjdXJyZW50IGNvbXBsZXRp
b24uIikKCihkZWZ2YXItbG9jYWwgY29uc3VsdC0tbmFycm93LXByZWRpY2F0ZSBuaWwKICAiTmFy
cm93aW5nIHByZWRpY2F0ZSBvZiB0aGUgY3VycmVudCBjb21wbGV0aW9uLiIpCgooZGVmdmFyLWxv
Y2FsIGNvbnN1bHQtLW5hcnJvdy1vdmVybGF5IG5pbAogICJOYXJyb3dpbmcgaW5kaWNhdG9yIG92
ZXJsYXkuIikKCihkZWZ2YXIgY29uc3VsdC0tZ2MtdGhyZXNob2xkIDY3MTA4ODY0CiAgIkxhcmdl
IGdjIHRocmVzaG9sZCBmb3IgdGVtcG9yYXJ5IGluY3JlYXNlLiIpCgooZGVmdmFyIGNvbnN1bHQt
LWdjLXBlcmNlbnRhZ2UgMC41CiAgIkxhcmdlIGdjIHBlcmNlbnRhZ2UgZm9yIHRlbXBvcmFyeSBp
bmNyZWFzZS4iKQoKKGRlZnZhciBjb25zdWx0LS1hc3luYy1sb2cKICAiICpjb25zdWx0LWFzeW5j
LWxvZyoiCiAgIkJ1ZmZlciBmb3IgYXN5bmMgbG9nZ2luZyBvdXRwdXQgdXNlZCBieSBgY29uc3Vs
dC0tYXN5bmMtcHJvY2VzcycuIikKCihkZWZ2YXItbG9jYWwgY29uc3VsdC0taW1lbnUtY2FjaGUg
bmlsCiAgIkJ1ZmZlciBsb2NhbCBjYWNoZWQgaW1lbnUuIikKCihkZWZjb25zdCBjb25zdWx0LS1n
cmVwLXJlZ2V4cCAiXFwoW15cMFxuXStcXClcMFxcKFteOlwwXStcXClbOlwwXSIKICAiUmVnZXhw
IHVzZWQgdG8gbWF0Y2ggZmlsZSBhbmQgbGluZSBvZiBncmVwIG91dHB1dC4iKQoKKGRlZmNvbnN0
IGNvbnN1bHQtLWdyZXAtbWF0Y2gtcmVnZXhwICJcZVxcW1swLTk7XSttXFwoLio/XFwpXGVcXFtb
MC05O10qbSIKICAiUmVnZXhwIHVzZWQgdG8gZmluZCBtYXRjaGVzIGluIGdyZXAgb3V0cHV0LiIp
CgooZGVmdmFyLWxvY2FsIGNvbnN1bHQtLWZvY3VzLWxpbmVzLW92ZXJsYXlzIG5pbAogICJPdmVy
bGF5cyB1c2VkIGJ5IGBjb25zdWx0LWZvY3VzLWxpbmVzJy4iKQoKOzs7OyBIZWxwZXIgZnVuY3Rp
b25zIGFuZCBtYWNyb3MKCihkZWZtYWNybyBjb25zdWx0LS1taW5pYnVmZmVyLXdpdGgtc2V0dXAt
aG9vayAoZnVuICZyZXN0IGJvZHkpCiAgIlZhcmlhbnQgb2YgYG1pbmlidWZmZXItd2l0aC1zZXR1
cC1ob29rJyB1c2luZyBhIHN5bWJvbCBhbmQgYGZzZXQnLgoKVGhpcyBtYWNybyBpcyBvbmx5IG5l
ZWRlZCB0byBwcmV2ZW50IG1lbW9yeSBsZWFraW5nIGlzc3VlcyB3aXRoCnRoZSB1cHN0cmVhbSBg
bWluaWJ1ZmZlci13aXRoLXNldHVwLWhvb2snIG1hY3JvLgpGVU4gaXMgdGhlIGhvb2sgZnVuY3Rp
b24gYW5kIEJPRFkgb3BlbnMgdGhlIG1pbmlidWZmZXIuIgogIChkZWNsYXJlIChpbmRlbnQgMSkg
KGRlYnVnIHQpKQogIChsZXQgKChob29rIChtYWtlLXN5bWJvbCAiaG9vayIpKQogICAgICAgIChh
cHBlbmQpKQogICAgKHdoZW4gKGVxIChjYXItc2FmZSBmdW4pIDphcHBlbmQpCiAgICAgIChzZXRx
IGFwcGVuZCAnKHQpIGZ1biAoY2FkciBmdW4pKSkKICAgIGAobGV0ICgoLGhvb2sgKG1ha2Utc3lt
Ym9sICJjb25zdWx0LS1taW5pYnVmZmVyLXNldHVwIikpKQogICAgICAgKGZzZXQgLGhvb2sgKGxh
bWJkYSAoKQogICAgICAgICAgICAgICAgICAgICAocmVtb3ZlLWhvb2sgJ21pbmlidWZmZXItc2V0
dXAtaG9vayAsaG9vaykKICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgLGZ1bikpKQogICAg
ICAgKHVud2luZC1wcm90ZWN0CiAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAoYWRkLWhv
b2sgJ21pbmlidWZmZXItc2V0dXAtaG9vayAsaG9vayAsQGFwcGVuZCkKICAgICAgICAgICAgICxA
Ym9keSkKICAgICAgICAgKHJlbW92ZS1ob29rICdtaW5pYnVmZmVyLXNldHVwLWhvb2sgLGhvb2sp
KSkpKQoKKGRlZm1hY3JvIGNvbnN1bHQtLWRlZmluZS1jYWNoZSAobmFtZSAmcmVzdCBib2R5KQog
ICJEZWZpbmUgY2FjaGVkIHZhbHVlIHdpdGggTkFNRSBhbmQgQk9EWS4iCiAgKGRlY2xhcmUgKGlu
ZGVudCAxKSkKICBgKGRlZnVuICxuYW1lICgpCiAgICAgKG9yIChhbGlzdC1nZXQgJyxuYW1lIGNv
bnN1bHQtLWNhY2hlKQogICAgICAgICAoc2V0ZiAoYWxpc3QtZ2V0ICcsbmFtZSBjb25zdWx0LS1j
YWNoZSkKICAgICAgICAgICAgICAgLChtYWNyb2V4cC1wcm9nbiBib2R5KSkpKSkKCihkZWZzdWJz
dCBjb25zdWx0LS1jb21wbGV0aW9uLWZpbHRlciAoY2F0ZWdvcnkgaGlnaGxpZ2h0KQogICJSZXR1
cm4gZmlsdGVyIGZ1bmN0aW9uIHVzZWQgYnkgY29tcGxldGlvbiBzeXN0ZW0uCgpDQVRFR09SWSBp
cyB0aGUgY29tcGxldGlvbiBjYXRlZ29yeS4KSElHSExJR0hUIG11c3QgYmUgdCBpZiBoaWdobGln
aHRpbmcgaXMgbmVlZGVkLiIKICAocnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MgJ2Nv
bnN1bHQtLWNvbXBsZXRpb24tZmlsdGVyLWhvb2sgY2F0ZWdvcnkgaGlnaGxpZ2h0KSkKCihkZWZ1
biBjb25zdWx0LS1jb21wbGV0aW9uLWZpbHRlci1jb21wbGVtZW50IChjYXRlZ29yeSkKICAiUmV0
dXJuIGNvbXBsZW1lbnQgb2YgdGhlIGZpbHRlciBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBjb21wbGV0
aW9uIHN5c3RlbS4KCkNBVEVHT1JZIGlzIHRoZSBjb21wbGV0aW9uIGNhdGVnb3J5LiIKICAobGV0
ICgoZmlsdGVyIChjb25zdWx0LS1jb21wbGV0aW9uLWZpbHRlciBjYXRlZ29yeSBuaWwpKSkKICAg
IChsYW1iZGEgKGlucHV0IGNhbmRzKQogICAgICAobGV0ICgoaHQgKGNvbnN1bHQtLXN0cmluZy1o
YXNoIChmdW5jYWxsIGZpbHRlciBpbnB1dCBjYW5kcykpKSkKICAgICAgICAoc2VxLXJlbW92ZSAo
bGFtYmRhICh4KSAoZ2V0aGFzaCB4IGh0KSkgY2FuZHMpKSkpKQoKKGRlZnVuIGNvbnN1bHQtLWNv
bXBsZXRpb24tZmlsdGVyLWRpc3BhdGNoIChjYXRlZ29yeSBoaWdobGlnaHQpCiAgIlJldHVybiBk
aXNwYXRjaGluZyBmaWx0ZXIgZnVuY3Rpb24uCgpFaXRoZXIgZGlzcGF0Y2ggdG8gYGNvbnN1bHQt
LWNvbXBsZXRpb24tZmlsdGVyJyBvciB0bwpgY29uc3VsdC0tY29tcGxldGlvbi1maWx0ZXItY29t
cGxlbWVudCcuCkNBVEVHT1JZIGlzIHRoZSBjb21wbGV0aW9uIGNhdGVnb3J5LgpISUdITElHSFQg
bXVzdCBiZSB0IGlmIGhpZ2hsaWdodGluZyBpcyBuZWVkZWQuIgogIChsZXQgKChmaWx0ZXIgKGNv
bnN1bHQtLWNvbXBsZXRpb24tZmlsdGVyIGNhdGVnb3J5IGhpZ2hsaWdodCkpCiAgICAgICAgKGZp
bHRlci1ub3QgKGNvbnN1bHQtLWNvbXBsZXRpb24tZmlsdGVyLWNvbXBsZW1lbnQgY2F0ZWdvcnkp
KSkKICAgIChsYW1iZGEgKGlucHV0IGNhbmRzKQogICAgICAoY29uZAogICAgICAgKChzdHJpbmct
bWF0Y2gtcCAiXiE/ID8kIiBpbnB1dCkgY2FuZHMpIDs7IGVtcHR5IGlucHV0CiAgICAgICAoKHN0
cmluZy1wcmVmaXgtcCAiISAiIGlucHV0KSAoZnVuY2FsbCBmaWx0ZXItbm90IChzdWJzdHJpbmcg
aW5wdXQgMikgY2FuZHMpKQogICAgICAgKHQgKGZ1bmNhbGwgZmlsdGVyIGlucHV0IGNhbmRzKSkp
KSkpCgooZGVmbWFjcm8gY29uc3VsdC0tZWFjaC1saW5lIChiZWcgZW5kICZyZXN0IGJvZHkpCiAg
Ikl0ZXJhdGUgb3ZlciBlYWNoIGxpbmUuCgpUaGUgbGluZSBiZWdpbm5pbmcvZW5kaW5nIEJFRy9F
TkQgaXMgYm91bmQgaW4gQk9EWS4iCiAgKGRlY2xhcmUgKGluZGVudCAyKSkKICAobGV0ICgobWF4
IChtYWtlLXN5bWJvbCAibWF4IikpKQogICAgYChzYXZlLWV4Y3Vyc2lvbgogICAgICAgKGxldCAo
KCxiZWcgKHBvaW50LW1pbikpICgsbWF4IChwb2ludC1tYXgpKSBlbmQpCiAgICAgICAgICh3aGls
ZSAoPCAsYmVnICxtYXgpCiAgICAgICAgICAgKGdvdG8tY2hhciAsYmVnKQogICAgICAgICAgIChz
ZXRxICxlbmQgKGxpbmUtZW5kLXBvc2l0aW9uKSkKICAgICAgICAgICAsQGJvZHkKICAgICAgICAg
ICAoc2V0cSAsYmVnICgxKyAsZW5kKSkpKSkpKQoKKGRlZnVuIGNvbnN1bHQtLXN0cmluZy1oYXNo
IChzdHJpbmdzKQogICJDcmVhdGUgaGFzaHRhYmxlIGZyb20gU1RSSU5HUy4iCiAgKGxldCAoKGh0
IChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVhbCA6c2l6ZSAobGVuZ3RoIHN0cmluZ3MpKSkp
CiAgICAoZG9saXN0IChzdHIgc3RyaW5ncykKICAgICAgKHB1dGhhc2ggc3RyIHQgaHQpKQogICAg
aHQpKQoKKGRlZm1hY3JvIGNvbnN1bHQtLWxvY2FsLWxldCAoYmluZHMgJnJlc3QgYm9keSkKICAi
QnVmZmVyIGxvY2FsIGxldCBCSU5EUyBvZiBkeW5hbWljIHZhcmlhYmxlcyBpbiBCT0RZLiIKICAo
ZGVjbGFyZSAoaW5kZW50IDEpKQogIChsZXQgKChidWZmZXIgKG1ha2Utc3ltYm9sICJidWZmZXIi
KSkKICAgICAgICAobG9jYWwgKG1hcGNhciAobGFtYmRhICh4KSAoY29ucyAobWFrZS1zeW1ib2wg
ImxvY2FsIikgKGNhciB4KSkpIGJpbmRzKSkpCiAgICBgKGxldCAoKCxidWZmZXIgKGN1cnJlbnQt
YnVmZmVyKSkKICAgICAgICAgICAsQChtYXBjYXIgKGxhbWJkYSAoeCkgYCgsKGNhciB4KSAobG9j
YWwtdmFyaWFibGUtcCAnLChjZHIgeCkpKSkgbG9jYWwpKQogICAgICAgKHVud2luZC1wcm90ZWN0
CiAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAsQChtYXBjYXIgKGxhbWJkYSAoeCkgYCht
YWtlLWxvY2FsLXZhcmlhYmxlICcsKGNhciB4KSkpIGJpbmRzKQogICAgICAgICAgICAgKGxldCAo
LEBiaW5kcykKICAgICAgICAgICAgICAgLEBib2R5KSkKICAgICAgICAgKHdoZW4gKGJ1ZmZlci1s
aXZlLXAgLGJ1ZmZlcikKICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAsYnVmZmVyCiAg
ICAgICAgICAgICAsQChtYXBjYXIgKGxhbWJkYSAoeCkKICAgICAgICAgICAgICAgICAgICAgICAg
IGAodW5sZXNzICwoY2FyIHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2lsbC1sb2Nh
bC12YXJpYWJsZSAnLChjZHIgeCkpKSkKICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCkpKSkp
KSkKCihkZWZ1biBjb25zdWx0LS1yZWdleHAtZmlsdGVyIChyZWdleHBzKQogICJDcmVhdGUgZmls
dGVyIHJlZ2V4cCBmcm9tIFJFR0VYUFMuIgogIChzdHJpbmctam9pbiAobWFwY2FyIChsYW1iZGEg
KHgpIChjb25jYXQgIlxcKD86IiB4ICJcXCkiKSkgcmVnZXhwcykgIlxcfCIpKQoKKGRlZnVuIGNv
bnN1bHQtLWZvbnQtbG9jayAoc3RyKQogICJBcHBseSBgZm9udC1sb2NrJyBmYWNlcyBpbiBTVFIs
IGNvcHkgdGhlbSB0byBgZmFjZScuIgogIChsZXQgKChwb3MgMCkgKGxlbiAobGVuZ3RoIHN0cikp
KQogICAgKHdoaWxlICg8IHBvcyBsZW4pCiAgICAgIChsZXQqICgoZmFjZSAoZ2V0LXRleHQtcHJv
cGVydHkgcG9zICdmb250LWxvY2stZmFjZSBzdHIpKQogICAgICAgICAgICAgKGVuZCAob3IgKHRl
eHQtcHJvcGVydHktbm90LWFsbCBwb3MgbGVuICdmb250LWxvY2stZmFjZSBmYWNlIHN0cikgbGVu
KSkpCiAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IHBvcyBlbmQgJ2ZhY2UgZmFjZSBzdHIpCiAg
ICAgICAgKHNldHEgcG9zIGVuZCkpKQogICAgc3RyKSkKCihkZWZ1biBjb25zdWx0LS1mb3JtYXQt
ZGlyZWN0b3J5LXByb21wdCAocHJvbXB0IGRpcikKICAiRm9ybWF0IFBST01QVCwgZXhwYW5kIGRp
cmVjdG9yeSBESVIgYW5kIHJldHVybiB0aGVtIGFzIGEgcGFpci4iCiAgKHNhdmUtbWF0Y2gtZGF0
YQogICAgKGxldCAoKGVkaXIgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5h
bWUgZGlyKSkpCiAgICAgICAgICAoZGRpciAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSAoZXhwYW5k
LWZpbGUtbmFtZSBkZWZhdWx0LWRpcmVjdG9yeSkpKSkKICAgICAgKGNvbnMKICAgICAgIChpZiAo
c3RyaW5nPSBkZGlyIGVkaXIpCiAgICAgICAgICAgKGNvbmNhdCBwcm9tcHQgIjogIikKICAgICAg
ICAgKGxldCAoKGFkaXIgKGFiYnJldmlhdGUtZmlsZS1uYW1lIGVkaXIpKSkKICAgICAgICAgICAo
aWYgKHN0cmluZy1tYXRjaCAiL1xcKFteL10rXFwpL1xcKFteL10rXFwpLyQiIGFkaXIpCiAgICAg
ICAgICAgICAgIChmb3JtYXQgIiVzIGluIOKApi8lcy8lcy86ICIgcHJvbXB0CiAgICAgICAgICAg
ICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxIGFkaXIpIChtYXRjaC1zdHJpbmcgMiBhZGlyKSkK
ICAgICAgICAgICAgIChmb3JtYXQgIiVzIGluICVzOiAiIHByb21wdCBhZGlyKSkpKQogICAgICAg
ZWRpcikpKSkKCihkZWZ1biBjb25zdWx0LS1kaXJlY3RvcnktcHJvbXB0IChwcm9tcHQgZGlyKQog
ICJSZXR1cm4gcHJvbXB0IGFuZCBkaXJlY3RvcnkuCgpQUk9NUFQgaXMgdGhlIHByb21wdCBwcmVm
aXguIFRoZSBkaXJlY3RvcnkKaXMgYXBwZW5kZWQgdG8gdGhlIHByb21wdCBwcmVmaXguIEZvciBw
cm9qZWN0cwpvbmx5IHRoZSBwcm9qZWN0IG5hbWUgaXMgc2hvd24uIFRoZSBgZGVmYXVsdC1kaXJl
Y3RvcnknCmlzIG5vdCBzaG93bi4gT3RoZXIgZGlyZWN0b3JpZXMgYXJlIGFiYnJldmlhdGVkIGFu
ZApvbmx5IHRoZSBsYXN0IHR3byBwYXRoIGNvbXBvbmVudHMgYXJlIHNob3duLgoKSWYgRElSIGlz
IGEgc3RyaW5nLCBpdCBpcyByZXR1cm5lZC4KSWYgRElSIGlzIGEgdHJ1ZSB2YWx1ZSwgdGhlIHVz
ZXIgaXMgYXNrZWQuClRoZW4gdGhlIGBjb25zdWx0LXByb2plY3Qtcm9vdC1mdW5jdGlvbicgaXMg
dHJpZWQuCk90aGVyd2lzZSB0aGUgYGRlZmF1bHQtZGlyZWN0b3J5JyBpcyByZXR1cm5lZC4iCiAg
KGNvbmQKICAgKChzdHJpbmdwIGRpcikgKGNvbnN1bHQtLWZvcm1hdC1kaXJlY3RvcnktcHJvbXB0
IHByb21wdCBkaXIpKQogICAoZGlyIChjb25zdWx0LS1mb3JtYXQtZGlyZWN0b3J5LXByb21wdCBw
cm9tcHQgKHJlYWQtZGlyZWN0b3J5LW5hbWUgIkRpcmVjdG9yeTogIiBuaWwgbmlsIHQpKSkKICAg
KCh3aGVuLWxldCAocm9vdCAoYW5kIGNvbnN1bHQtcHJvamVjdC1yb290LWZ1bmN0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBjb25zdWx0LXByb2plY3Qtcm9vdC1mdW5jdGlv
bikpKQogICAgICAoc2F2ZS1tYXRjaC1kYXRhCiAgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggIi9c
XChbXi9dK1xcKS8kIiByb290KQogICAgICAgICAgICAoY29ucyAoZm9ybWF0ICIlcyBpbiBwcm9q
ZWN0ICVzOiAiIHByb21wdCAobWF0Y2gtc3RyaW5nIDEgcm9vdCkpIHJvb3QpCiAgICAgICAgICAo
Y29uc3VsdC0tZm9ybWF0LWRpcmVjdG9yeS1wcm9tcHQgcHJvbXB0IHJvb3QpKSkpKQogICAodCAo
Y29uc3VsdC0tZm9ybWF0LWRpcmVjdG9yeS1wcm9tcHQgcHJvbXB0IGRlZmF1bHQtZGlyZWN0b3J5
KSkpKQoKKGRlZnN1YnN0IGNvbnN1bHQtLXN0cmlwLWFuc2ktZXNjYXBlIChzdHIpCiAgIlN0cmlw
IEFOU0kgZXNjYXBlIHNlcXVlbmNlcyBmcm9tIFNUUi4iCiAgKHJlcGxhY2UtcmVnZXhwLWluLXN0
cmluZyAiXGVcXFtbMC05O10qW21LXSIgIiIgc3RyKSkKCihkZWZzdWJzdCBjb25zdWx0LS1mb3Jt
YXQtbG9jYXRpb24gKGZpbGUgbGluZSkKICAiRm9ybWF0IGxvY2F0aW9uIHN0cmluZyAnRklMRTpM
SU5FOicuIgogIChjb25jYXQKICAgKHByb3BlcnRpemUgZmlsZSAnZmFjZSAnY29uc3VsdC1maWxl
KSAiOiIKICAgKHByb3BlcnRpemUgKG51bWJlci10by1zdHJpbmcgbGluZSkgJ2ZhY2UgJ2NvbnN1
bHQtbGluZS1udW1iZXIpICI6IikpCgooZGVmdW4gY29uc3VsdC0tbGluZS1wb3NpdGlvbiAobGlu
ZSkKICAiQ29tcHV0ZSBjaGFyYWN0ZXIgcG9zaXRpb24gZnJvbSBMSU5FIG51bWJlci4iCiAgKHNh
dmUtZXhjdXJzaW9uCiAgICAoc2F2ZS1yZXN0cmljdGlvbgogICAgICAod2hlbiBjb25zdWx0LWxp
bmUtbnVtYmVycy13aWRlbgogICAgICAgICh3aWRlbikpCiAgICAgIChnb3RvLWNoYXIgKHBvaW50
LW1pbikpCiAgICAgIChmb3J3YXJkLWxpbmUgKC0gbGluZSAxKSkKICAgICAgKHBvaW50KSkpKQoK
KGRlZm1hY3JvIGNvbnN1bHQtLW92ZXJsYXkgKGJlZyBlbmQgJnJlc3QgcHJvcHMpCiAgIk1ha2Ug
Y29uc3VsdCBvdmVybGF5IGJldHdlZW4gQkVHIGFuZCBFTkQgd2l0aCBQUk9QUy4iCiAgKGxldCAo
KG92IChtYWtlLXN5bWJvbCAib3YiKSkKICAgICAgICAocHV0cykpCiAgICAod2hpbGUgcHJvcHMK
ICAgICAgKHB1c2ggYChvdmVybGF5LXB1dCAsb3YgLChjYXIgcHJvcHMpICwoY2FkciBwcm9wcykp
IHB1dHMpCiAgICAgIChzZXRxIHByb3BzIChjZGRyIHByb3BzKSkpCiAgICBgKGxldCAoKCxvdiAo
bWFrZS1vdmVybGF5ICxiZWcgLGVuZCkpKQogICAgICAgLEBwdXRzCiAgICAgICAsb3YpKSkKCihk
ZWZ1biBjb25zdWx0LS1yZW1vdmUtZHVwcyAobGlzdCAmb3B0aW9uYWwga2V5KQogICJSZW1vdmUg
ZHVwbGljYXRlIHN0cmluZ3MgZnJvbSBMSVNULiBLZWVwIGZpcnN0IG9jY3VycmVuY2Ugb2YgYSBr
ZXkuCgpLRVkgaXMgdGhlIGtleSBmdW5jdGlvbi4iCiAgKGxldCAoKGh0IChtYWtlLWhhc2gtdGFi
bGUgOnRlc3QgIydlcXVhbCA6c2l6ZSAobGVuZ3RoIGxpc3QpKSkKICAgICAgICAoYWNjdW0pCiAg
ICAgICAgKGtleSAob3Iga2V5ICMnaWRlbnRpdHkpKSkKICAgIChkb2xpc3QgKGVudHJ5IGxpc3Qg
KG5yZXZlcnNlIGFjY3VtKSkKICAgICAgKGxldCAoKGsgKGZ1bmNhbGwga2V5IGVudHJ5KSkpCiAg
ICAgICAgKHVubGVzcyAoZ2V0aGFzaCBrIGh0KQogICAgICAgICAgKHB1dGhhc2ggayB0IGh0KQog
ICAgICAgICAgKHB1c2ggZW50cnkgYWNjdW0pKSkpKSkKCihkZWZzdWJzdCBjb25zdWx0LS1pbi1y
YW5nZS1wIChwb3MpCiAgIlJldHVybiB0IGlmIHBvc2l0aW9uIFBPUyBsaWVzIGluIHJhbmdlIGBw
b2ludC1taW4nIHRvIGBwb2ludC1tYXgnLiIKICAoPD0gKHBvaW50LW1pbikgcG9zIChwb2ludC1t
YXgpKSkKCihkZWZ1biBjb25zdWx0LS1nZXQtYW5ub3RhdGlvbiAoY2FuZCkKICAiUmV0dXJuICdj
b25zdWx0LS1hbm5vdGF0aW9uIHByb3BlcnR5IGZyb20gQ0FORC4iCiAgKGdldC10ZXh0LXByb3Bl
cnR5IDAgJ2NvbnN1bHQtLWFubm90YXRpb24gY2FuZCkpCgooZGVmdW4gY29uc3VsdC0tbG9va3Vw
LWVsZW0gKF8gY2FuZGlkYXRlcyBjYW5kKQogICJMb29rdXAgQ0FORCBpbiBDQU5ESURBVEVTIGFs
aXN0LCByZXR1cm4gZWxlbWVudC4iCiAgKGFzc29jIGNhbmQgY2FuZGlkYXRlcykpCgooZGVmdW4g
Y29uc3VsdC0tbG9va3VwLWNkciAoXyBjYW5kaWRhdGVzIGNhbmQpCiAgIkxvb2t1cCBDQU5EIGlu
IENBTkRJREFURVMgYWxpc3QsIHJldHVybiBjZHIgb2YgZWxlbWVudC4iCiAgKGNkciAoYXNzb2Mg
Y2FuZCBjYW5kaWRhdGVzKSkpCgooZGVmdW4gY29uc3VsdC0tbG9va3VwLWNhZHIgKF8gY2FuZGlk
YXRlcyBjYW5kKQogICJMb29rdXAgQ0FORCBpbiBDQU5ESURBVEVTIGFsaXN0LCByZXR1cm4gY2Fk
ciBvZiBlbGVtZW50LiIKICAoY2FkciAoYXNzb2MgY2FuZCBjYW5kaWRhdGVzKSkpCgooZGVmdW4g
Y29uc3VsdC0tbG9va3VwLWxvY2F0aW9uIChfIGNhbmRpZGF0ZXMgY2FuZCkKICAiTG9va3VwIENB
TkQgaW4gQ0FORElEQVRFUyBsaXN0IG9mICdjb25zdWx0LWxvY2F0aW9uIGNhdGVnb3J5LCByZXR1
cm4gdGhlIG1hcmtlci4iCiAgKHdoZW4tbGV0IChmb3VuZCAobWVtYmVyIGNhbmQgY2FuZGlkYXRl
cykpCiAgICAoY2FyIChnZXQtdGV4dC1wcm9wZXJ0eSAwICdjb25zdWx0LWxvY2F0aW9uIChjYXIg
Zm91bmQpKSkpKQoKKGRlZnVuIGNvbnN1bHQtLWZvcmJpZC1taW5pYnVmZmVyICgpCiAgIlJhaXNl
IGFuIGVycm9yIGlmIGV4ZWN1dGVkIGZyb20gdGhlIG1pbmlidWZmZXIuIgogICh3aGVuIChtaW5p
YnVmZmVycCkKICAgICh1c2VyLWVycm9yICJgJXMnIGNhbGxlZCBpbnNpZGUgdGhlIG1pbmlidWZm
ZXIiIHRoaXMtY29tbWFuZCkpKQoKKGRlZnVuIGNvbnN1bHQtLXJlcXVpcmUtbWluaWJ1ZmZlciAo
KQogICJSYWlzZSBhbiBlcnJvciBpZiBleGVjdXRlZCBvdXRzaWRlIHRoZSBtaW5pYnVmZmVyLiIK
ICAodW5sZXNzIChtaW5pYnVmZmVycCkKICAgICh1c2VyLWVycm9yICJgJXMnIG11c3QgYmUgY2Fs
bGVkIGluc2lkZSB0aGUgbWluaWJ1ZmZlciIgdGhpcy1jb21tYW5kKSkpCgooZGVmdW4gY29uc3Vs
dC0tZm9udGlmeS1hbGwgKCkKICAiRW5zdXJlIHRoYXQgdGhlIHdob2xlIGJ1ZmZlciBpcyBmb250
aWZpZWQuIgogIDs7IEZvbnQtbG9ja2luZyBpcyBsYXp5LCBpLmUuLCBpZiBhIGxpbmUgaGFzIG5v
dCBiZWVuIGxvb2tlZCBhdCB5ZXQsIHRoZSBsaW5lCiAgOzsgaXMgbm90IGZvbnQtbG9ja2VkLiBX
ZSB3b3VsZCBvYnNlcnZlIHRoaXMgaWYgY29uc3VsdGluZyBhbiB1bmZvbnRpZmllZAogIDs7IGxp
bmUuIFRoZXJlZm9yZSB3ZSBoYXZlIHRvIGVuZm9yY2UgZm9udC1sb2NraW5nIG5vdywgd2hpY2gg
aXMgc2xvdy4gSW4KICA7OyBvcmRlciB0byBwcmV2ZW50IGlzIGhhbmctdXAgd2UgY2hlY2sgdGhl
IGJ1ZmZlciBzaXplIGFnYWluc3QKICA7OyBgY29uc3VsdC1mb250aWZ5LW1heC1zaXplJy4KICAo
d2hlbiAoYW5kIGppdC1sb2NrLW1vZGUgKDwgKGJ1ZmZlci1zaXplKSBjb25zdWx0LWZvbnRpZnkt
bWF4LXNpemUpKQogICAgKGppdC1sb2NrLWZvbnRpZnktbm93KSkpCgooZGVmc3Vic3QgY29uc3Vs
dC0tZm9udGlmeS1yZWdpb24gKHN0YXJ0IGVuZCkKICAiRW5zdXJlIHRoYXQgcmVnaW9uIGJldHdl
ZW4gU1RBUlQgYW5kIEVORCBpcyBmb250aWZpZWQuIgogICh3aGVuIGppdC1sb2NrLW1vZGUKICAg
IChqaXQtbG9jay1mb250aWZ5LW5vdyBzdGFydCBlbmQpKSkKCihkZWZ1biBjb25zdWx0LS1kZWZp
bmUta2V5IChtYXAga2V5IGNtZCBkZXNjKQogICJCaW5kIENNRCB0byBLRVkgaW4gTUFQIGFuZCBh
ZGQgd2hpY2gta2V5IGRlc2NyaXB0aW9uIERFU0MuIgogIChkZWZpbmUta2V5IG1hcCBrZXkgY21k
KQogIDs7IFRoZSB3aGljaC1rZXkgZGVzY3JpcHRpb24gaXMgcG90ZW50aWFsbHkgZnJhZ2lsZSBp
ZiBzb21ldGhpbmcgaXMgY2hhbmdlZCBvbiB0aGUgc2lkZQogIDs7IG9mIHdoaWNoLWtleS4gS2Vl
cCBhbiBleWUgb24gdGhhdC4gQW4gYWx0ZXJuYXRpdmUgbW9yZSBzdGFuZGFyZC1jb21wbGlhbnQg
bWV0aG9kCiAgOzsgd291bGQgYmUgdG8gdXNlIGBtZW51LWl0ZW0nLCBidXQgdGhpcyBpcyB1bmZv
cnR1bmF0ZWx5IG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IHdoaWNoLWtleQogIDs7IGFuZCBgZGVzY3Jp
YmUtYnVmZmVyLWJpbmRpbmdzJy4KICA7OyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2p1c3RidXIv
ZW1hY3Mtd2hpY2gta2V5L2lzc3Vlcy8xNzcKICAobGV0ICgoaWR4ICgtIChsZW5ndGgga2V5KSAx
KSkpCiAgICAoZGVmaW5lLWtleSBtYXAgKHZjb25jYXQgKHNlcS10YWtlIGtleSBpZHgpICh2ZWN0
b3IgJ3doaWNoLWtleSAoZWx0IGtleSBpZHgpKSkKICAgICAgYCh3aGljaC1rZXkgKCwoY29weS1z
ZXF1ZW5jZSBkZXNjKSkpKSkpCgooZGVmbWFjcm8gY29uc3VsdC0td2l0aC1pbmNyZWFzZWQtZ2Mg
KCZyZXN0IGJvZHkpCiAgIlRlbXBvcmFyaWx5IGluY3JlYXNlIHRoZSBnYyBsaW1pdCBpbiBCT0RZ
IHRvIG9wdGltaXplIGZvciB0aHJvdWdocHV0LiIKICBgKGxldCogKChvdmVyd3JpdGUgKD4gY29u
c3VsdC0tZ2MtdGhyZXNob2xkIGdjLWNvbnMtdGhyZXNob2xkKSkKICAgICAgICAgIChnYy1jb25z
LXRocmVzaG9sZCAoaWYgb3ZlcndyaXRlIGNvbnN1bHQtLWdjLXRocmVzaG9sZCBnYy1jb25zLXRo
cmVzaG9sZCkpCiAgICAgICAgICAoZ2MtY29ucy1wZXJjZW50YWdlIChpZiBvdmVyd3JpdGUgY29u
c3VsdC0tZ2MtcGVyY2VudGFnZSBnYy1jb25zLXBlcmNlbnRhZ2UpKSkKICAgICAsQGJvZHkpKQoK
KGRlZnVuIGNvbnN1bHQtLWNvdW50LWxpbmVzIChwb3MpCiAgIk1vdmUgdG8gcG9zaXRpb24gUE9T
IGFuZCByZXR1cm4gbnVtYmVyIG9mIGxpbmVzLiIKICAobGV0ICgobGluZSAwKSkKICAgICh3aGls
ZSAoPCAocG9pbnQpIHBvcykKICAgICAgKGZvcndhcmQtbGluZSkKICAgICAgKHdoZW4gKDw9IChw
b2ludCkgcG9zKQogICAgICAgIChzZXRxIGxpbmUgKDErIGxpbmUpKSkpCiAgICAoZ290by1jaGFy
IHBvcykKICAgIGxpbmUpKQoKOzsgV2UgbXVzdCBkaXNhbWJpZ3VhdGUgdGhlIGxpbmVzIGJ5IGFk
ZGluZyBhIHByZWZpeCBzdWNoIHRoYXQgdHdvIGxpbmVzIHdpdGgKOzsgdGhlIHNhbWUgdGV4dCBj
YW4gYmUgZGlzdGluZ3Vpc2hlZC4gSW4gb3JkZXIgdG8gYXZvaWQgbWF0Y2hpbmcgdGhlIGxpbmUK
OzsgbnVtYmVyLCBzdWNoIHRoYXQgdGhlIHVzZXIgY2FuIHNlYXJjaCBmb3IgbnVtYmVycyB3aXRo
IGBjb25zdWx0LWxpbmUnLCB3ZQo7OyBlbmNvZGUgdGhlIGxpbmUgbnVtYmVyIGFzIHVuaWNvZGUg
Y2hhcmFjdGVycyBpbiB0aGUgc3VwcGxlbWVudGFyeSBwcml2YXRlIHVzZQo7OyBwbGFuZSBiLiBC
eSBkb2luZyB0aGF0LCBpdCBpcyB1bmxpa2VseSB0aGF0IGFjY2lkZW50aWFsIG1hdGNoaW5nIG9j
Y3Vycy4KKGRlZnN1YnN0IGNvbnN1bHQtLWVuY29kZS1sb2NhdGlvbiAobWFya2VyKQogICJHZW5l
cmF0ZSB1bmlxdWUgc3RyaW5nIGZvciBNQVJLRVIuCkRJU1BMQVkgaXMgdGhlIHN0cmluZyB0byBk
aXNwbGF5IGluc3RlYWQgb2YgdGhlIHVuaXF1ZSBzdHJpbmcuIgogIChsZXQgKChzdHIgIiIpIChu
IG1hcmtlcikpCiAgICAod2hpbGUgKHByb2duCiAgICAgICAgICAgICAoc2V0cSBzdHIgKGNvbmNh
dCBzdHIgKGNoYXItdG8tc3RyaW5nICgrIGNvbnN1bHQtLXRvZnUtY2hhcgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJSBuIGNvbnN1bHQtLXRv
ZnUtcmFuZ2UpKSkpKQogICAgICAgICAgICAgKGFuZCAoPj0gbiBjb25zdWx0LS10b2Z1LXJhbmdl
KSAoc2V0cSBuICgvIG4gY29uc3VsdC0tdG9mdS1yYW5nZSkpKSkpCiAgICBzdHIpKQoKKGRlZnN1
YnN0IGNvbnN1bHQtLWxpbmUtbnVtYmVyLXByZWZpeCAobWFya2VyIGxpbmUgd2lkdGgpCiAgIkZv
cm1hdCBMSU5FIG51bWJlciBwcmVmaXggbnVtYmVyIHdpdGggcGFkZGluZy4KCk1BUktFUiBhbmQg
TElORSBhcmUgYWRkZWQgYXMgJ2NvbnN1bHQtbG9jYXRpb24gdGV4dCBwcm9wZXJ0eS4KV0lEVEgg
aXMgdGhlIGxpbmUgbnVtYmVyIHdpZHRoLiIKICAobGV0KiAoKHVuaXF1ZS1zdHIgKGNvbnN1bHQt
LWVuY29kZS1sb2NhdGlvbiBtYXJrZXIpKQogICAgICAgICAobGluZS1zdHIgKG51bWJlci10by1z
dHJpbmcgbGluZSkpCiAgICAgICAgIChwcmVmaXgtc3RyIChjb25jYXQKICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLXN0cmluZyAoLSB3aWR0aCAobGVuZ3RoIGxpbmUtc3RyKSkgMzIpCiAgICAg
ICAgICAgICAgICAgICAgICBsaW5lLXN0cgogICAgICAgICAgICAgICAgICAgICAgIiAiKSkpCiAg
ICAocHV0LXRleHQtcHJvcGVydHkgMCAobGVuZ3RoIHByZWZpeC1zdHIpICdmYWNlICdjb25zdWx0
LWxpbmUtbnVtYmVyLXByZWZpeCBwcmVmaXgtc3RyKQogICAgKGFkZC10ZXh0LXByb3BlcnRpZXMg
MCAobGVuZ3RoIHVuaXF1ZS1zdHIpCiAgICAgICAgICAgICAgICAgICAgICAgICBgKGRpc3BsYXkg
LHByZWZpeC1zdHIgY29uc3VsdC1sb2NhdGlvbiAoLG1hcmtlciAuICxsaW5lKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuaXF1ZS1zdHIpCiAgICB1bmlxdWUtc3RyKSkKCihkZWZ1biBjb25z
dWx0LS1hZGQtbGluZS1udW1iZXIgKG1heC1saW5lIGNhbmRpZGF0ZXMpCiAgIkFkZCBsaW5lIG51
bWJlcnMgdG8gdW5mb3JtYXR0ZWQgQ0FORElEQVRFUyBhcyBwcmVmaXguClRoZSBNQVgtTElORSBp
cyBuZWVkZWQgdG8gZGV0ZXJtaW5lIHRoZSB3aWR0aC4KU2luY2UgdGhlIGxpbmUgbnVtYmVyIGlz
IHBhcnQgb2YgdGhlIGNhbmRpZGF0ZSBpdCB3aWxsIGJlIG1hdGNoZWQtb24gZHVyaW5nIGNvbXBs
ZXRpb24uIgogIChsZXQgKCh3aWR0aCAobGVuZ3RoIChudW1iZXItdG8tc3RyaW5nIG1heC1saW5l
KSkpKQogICAgKG1hcGNhciAocGNhc2UtbGFtYmRhIChgKCxtYXJrZXIgLGxpbmUgLHN0cikpCiAg
ICAgICAgICAgICAgKGNvbmNhdAogICAgICAgICAgICAgICAoY29uc3VsdC0tbGluZS1udW1iZXIt
cHJlZml4IG1hcmtlciBsaW5lIHdpZHRoKQogICAgICAgICAgICAgICBzdHIpKQogICAgICAgICAg
ICBjYW5kaWRhdGVzKSkpCgooZGVmc3Vic3QgY29uc3VsdC0tcmVnaW9uLXdpdGgtY3Vyc29yIChi
ZWdpbiBlbmQgbWFya2VyKQogICJSZXR1cm4gcmVnaW9uIHN0cmluZyB3aXRoIGEgbWFya2luZyBh
dCB0aGUgY3Vyc29yIHBvc2l0aW9uLgoKQkVHSU4gaXMgdGhlIGJlZ2luIHBvc2l0aW9uLgpFTkQg
aXMgdGhlIGVuZCBwb3NpdGlvbi4KTUFSS0VSIGlzIHRoZSBjdXJzb3IgcG9zaXRpb24uIgogIChs
ZXQgKChzdHIgKGJ1ZmZlci1zdWJzdHJpbmcgYmVnaW4gZW5kKSkpCiAgICAoaWYgKD49IG1hcmtl
ciBlbmQpCiAgICAgICAgKGNvbmNhdCBzdHIgKHByb3BlcnRpemUgIiAiICdmYWNlICdjb25zdWx0
LXByZXZpZXctY3Vyc29yKSkKICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgtIG1hcmtlciBiZWdp
bikgKC0gKDErIG1hcmtlcikgYmVnaW4pCiAgICAgICAgICAgICAgICAgICAgICAgICAnZmFjZSAn
Y29uc3VsdC1wcmV2aWV3LWN1cnNvciBzdHIpCiAgICAgIHN0cikpKQoKKGRlZnN1YnN0IGNvbnN1
bHQtLWxpbmUtd2l0aC1jdXJzb3IgKG1hcmtlcikKICAiUmV0dXJuIGN1cnJlbnQgbGluZSB3aGVy
ZSB0aGUgY3Vyc29yIE1BUktFUiBpcyBoaWdobGlnaHRlZC4iCiAgKGNvbnN1bHQtLXJlZ2lvbi13
aXRoLWN1cnNvcgogICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pCiAgIChsaW5lLWVuZC1wb3Np
dGlvbikKICAgbWFya2VyKSkKCihkZWZ1biBjb25zdWx0LS1tZXJnZS1jb25maWcgKGFyZ3MpCiAg
Ik1lcmdlIGBjb25zdWx0LWNvbmZpZycgcGxpc3RzIGludG8gdGhlIGtleXdvcmQgYXJndW1lbnRz
IG9mIEFSR1MuIgogIChpZi1sZXQgKGNvbmZpZyAoYWxpc3QtZ2V0IHRoaXMtY29tbWFuZCBjb25z
dWx0LWNvbmZpZykpCiAgICAgIChhcHBlbmQgKHNlcS10YWtlLXdoaWxlIChsYW1iZGEgKHgpIChu
b3QgKGtleXdvcmRwIHgpKSkgYXJncykgY29uZmlnCiAgICAgICAgICAgICAgKHNlcS1jb3B5IChz
ZXEtZHJvcC13aGlsZSAobGFtYmRhICh4KSAobm90IChrZXl3b3JkcCB4KSkpIGFyZ3MpKSkKICAg
IGFyZ3MpKQoKOzs7OyBQcmV2aWV3IHN1cHBvcnQKCihkZWZ1biBjb25zdWx0LS1raWxsLWNsZWFu
LWJ1ZmZlciAoYnVmKQogICJLaWxsIEJVRiBpZiBpdCBoYXMgbm90IGJlZW4gbW9kaWZpZWQuIgog
ICh1bmxlc3MgKG9yIChlcSBidWYgKGN1cnJlbnQtYnVmZmVyKSkgKGJ1ZmZlci1tb2RpZmllZC1w
IGJ1ZikpCiAgICAoa2lsbC1idWZmZXIgYnVmKSkpCgooZGVmdW4gY29uc3VsdC0tZmlsZS1wcmV2
aWV3LXNldHVwICgpCiAgIlJldHVybiBhIGZ1bmN0aW9uIHRvIG9wZW4gZmlsZXMgdGVtcG9yYXJp
bHkuIgogIChsZXQqICgobmV3LWJ1ZmZlcnMpCiAgICAgICAgIChyZWNlbnRmLXNob3VsZC1yZXN0
b3JlIHJlY2VudGYtbW9kZSkKICAgICAgICAgKHJlY2VudGYtc2F2ZWQtbGlzdCAod2hlbiByZWNl
bnRmLXNob3VsZC1yZXN0b3JlIChjb3B5LXNlcXVlbmNlIHJlY2VudGYtbGlzdCkpKSkKICAgIChs
YW1iZGEgKCZvcHRpb25hbCBuYW1lKQogICAgICAoaWYgKG5vdCBuYW1lKQogICAgICAgICAgKHdo
ZW4gcmVjZW50Zi1zaG91bGQtcmVzdG9yZQogICAgICAgICAgICAoc2V0cSByZWNlbnRmLWxpc3Qg
cmVjZW50Zi1zYXZlZC1saXN0KQogICAgICAgICAgICAod2hlbiAobWVtYmVyIChjdXJyZW50LWJ1
ZmZlcikgbmV3LWJ1ZmZlcnMpCiAgICAgICAgICAgICAgKHJlY2VudGYtYWRkLWZpbGUgKGJ1ZmZl
ci1maWxlLW5hbWUgKGN1cnJlbnQtYnVmZmVyKSkpKSkKICAgICAgICAob3IgKGdldC1maWxlLWJ1
ZmZlciBuYW1lKQogICAgICAgICAgICAod2hlbi1sZXQgKGF0dHJzIChmaWxlLWF0dHJpYnV0ZXMg
bmFtZSkpCiAgICAgICAgICAgICAgKGlmICg+IChmaWxlLWF0dHJpYnV0ZS1zaXplIGF0dHJzKSBj
b25zdWx0LXByZXZpZXctbWF4LXNpemUpCiAgICAgICAgICAgICAgICAgIChhbmQgKG1pbmlidWZm
ZXItbWVzc2FnZSAiRmlsZSBgJXMnIHRvbyBsYXJnZSBmb3IgcHJldmlldyIgbmFtZSkgbmlsKQog
ICAgICAgICAgICAgICAgKGxldCAoKGJ1ZiAoZmluZC1maWxlLW5vc2VsZWN0IG5hbWUgJ25vd2Fy
bikpKQogICAgICAgICAgICAgICAgICAocHVzaCBidWYgbmV3LWJ1ZmZlcnMpCiAgICAgICAgICAg
ICAgICAgIDs7IE9ubHkga2VlcCBhIGZldyBidWZmZXJzIGFsaXZlCiAgICAgICAgICAgICAgICAg
ICh3aGlsZSAoPiAobGVuZ3RoIG5ldy1idWZmZXJzKSBjb25zdWx0LXByZXZpZXctbWF4LWNvdW50
KQogICAgICAgICAgICAgICAgICAgIChjb25zdWx0LS1raWxsLWNsZWFuLWJ1ZmZlciAoY2FyIChs
YXN0IG5ldy1idWZmZXJzKSkpCiAgICAgICAgICAgICAgICAgICAgKHNldHEgbmV3LWJ1ZmZlcnMg
KG5idXRsYXN0IG5ldy1idWZmZXJzKSkpCiAgICAgICAgICAgICAgICAgIGJ1ZikpKSkpKSkpCgoo
ZGVmbWFjcm8gY29uc3VsdC0td2l0aC1maWxlLXByZXZpZXcgKGFyZ3MgJnJlc3QgYm9keSkKICAi
UHJvdmlkZSBhIGZ1bmN0aW9uIHRvIG9wZW4gZmlsZXMgdGVtcG9yYXJpbHkuClRoZSBmaWxlcyBh
cmUgY2xvc2VkIGF1dG9tYXRpY2FsbHkgaW4gdGhlIGVuZC4KCkFSR1MgaXMgdGhlIG9wZW4gZnVu
Y3Rpb24gYXJndW1lbnQgZm9yIEJPRFkuIgogIChkZWNsYXJlIChpbmRlbnQgMSkpCiAgYChsZXQg
KCgsQGFyZ3MgKGNvbnN1bHQtLWZpbGUtcHJldmlldy1zZXR1cCkpKQogICAgICh1bndpbmQtcHJv
dGVjdAogICAgICAgICAsKG1hY3JvZXhwLXByb2duIGJvZHkpCiAgICAgICAoZnVuY2FsbCAsQGFy
Z3MpKSkpCgo7OyBEZXJpdmVkIGZyb20gY3RybGYsIG9yaWdpbmFsbHkgaXNlYXJjaAooZGVmdW4g
Y29uc3VsdC0taW52aXNpYmxlLXNob3cgKCZvcHRpb25hbCBwZXJtYW5lbnRseSkKICAiRGlzYWJs
ZSBhbnkgb3ZlcmxheXMgdGhhdCBhcmUgY3VycmVudGx5IGhpZGluZyBwb2ludC4KUEVSTUFORU5U
TFkgbm9uLW5pbCBtZWFucyB0aGUgb3ZlcmxheXMgd2lsbCBub3QgYmUgcmVzdG9yZWQgbGF0ZXIu
IgogIChsZXQgKChvcGVuZWQpKQogICAgKGRvbGlzdCAob3YgKG92ZXJsYXlzLWluIChsaW5lLWJl
Z2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9uKSkgb3BlbmVkKQogICAgICAod2hl
biAoYW5kIChpbnZpc2libGUtcCAob3ZlcmxheS1nZXQgb3YgJ2ludmlzaWJsZSkpCiAgICAgICAg
ICAgICAgICAgKG92ZXJsYXktZ2V0IG92ICdpc2VhcmNoLW9wZW4taW52aXNpYmxlKSkKICAgICAg
ICAoaWYgcGVybWFuZW50bHkKICAgICAgICAgICAgKGZ1bmNhbGwgKG92ZXJsYXktZ2V0IG92ICdp
c2VhcmNoLW9wZW4taW52aXNpYmxlKSBvdikKICAgICAgICAgIChwdXNoIChjb25zIG92IChvdmVy
bGF5LWdldCBvdiAnaW52aXNpYmxlKSkgb3BlbmVkKQogICAgICAgICAgKGlmLWxldCAoZnVuYyAo
b3ZlcmxheS1nZXQgb3YgJ2lzZWFyY2gtb3Blbi1pbnZpc2libGUtdGVtcG9yYXJ5KSkKICAgICAg
ICAgICAgICAoZnVuY2FsbCBmdW5jIG5pbCkKICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdp
bnZpc2libGUgbmlsKSkpKSkpKQoKOzsgRGVyaXZlZCBmcm9tIGN0cmxmLCBvcmlnaW5hbGx5IGlz
ZWFyY2gKKGRlZnVuIGNvbnN1bHQtLWludmlzaWJsZS1yZXN0b3JlIChvdmVybGF5cykKICAiUmVz
dG9yZSBhbnkgb3BlbmVkIE9WRVJMQVlTIHRoYXQgd2VyZSBwcmV2aW91c2x5IGRpc2FibGVkLiIK
ICAoZG9saXN0IChvdiBvdmVybGF5cykKICAgIChpZi1sZXQgKGZ1bmMgKG92ZXJsYXktZ2V0IChj
YXIgb3YpICdpc2VhcmNoLW9wZW4taW52aXNpYmxlLXRlbXBvcmFyeSkpCiAgICAgICAgKGZ1bmNh
bGwgZnVuYyB0KQogICAgICAob3ZlcmxheS1wdXQgKGNhciBvdikgJ2ludmlzaWJsZSAoY2RyIG92
KSkpKSkKCihkZWZ1biBjb25zdWx0LS1qdW1wLTEgKHBvcykKICAiR28gdG8gUE9TIGFuZCByZWNl
bnRlci4iCiAgKGNvbmQKICAgKChhbmQgKG1hcmtlcnAgcG9zKSAobm90IChidWZmZXItbGl2ZS1w
IChtYXJrZXItYnVmZmVyIHBvcykpKSkKICAgIDs7IE9ubHkgcHJpbnQgYSBtZXNzYWdlLCBubyBl
cnJvciBpbiBvcmRlciB0byBub3QgbWVzcwogICAgOzsgd2l0aCB0aGUgbWluaWJ1ZmZlciB1cGRh
dGUgaG9vay4KICAgIChtZXNzYWdlICJCdWZmZXIgaXMgZGVhZCIpKQogICAodAogICAgOzsgU3dp
dGNoIHRvIGJ1ZmZlciBpZiBpdCBpcyBub3QgdmlzaWJsZQogICAgKHdoZW4gKGFuZCAobWFya2Vy
cCBwb3MpIChub3QgKGVxIChjdXJyZW50LWJ1ZmZlcikgKG1hcmtlci1idWZmZXIgcG9zKSkpKQog
ICAgICAoc3dpdGNoLXRvLWJ1ZmZlciAobWFya2VyLWJ1ZmZlciBwb3MpKSkKICAgIDs7IFdpZGVu
IGlmIHdlIGNhbm5vdCBqdW1wIHRvIHRoZSBwb3NpdGlvbiAoaWRlYSBmcm9tIGZseWNoZWNrLWp1
bXAtdG8tZXJyb3IpCiAgICAodW5sZXNzICg9IChnb3RvLWNoYXIgcG9zKSAocG9pbnQpKQogICAg
ICAod2lkZW4pCiAgICAgIChnb3RvLWNoYXIgcG9zKSkKICAgIChydW4taG9va3MgJ2NvbnN1bHQt
YWZ0ZXItanVtcC1ob29rKSkpKQoKKGRlZnVuIGNvbnN1bHQtLWp1bXAgKHBvcykKICAiUHVzaCBj
dXJyZW50IHBvc2l0aW9uIHRvIG1hcmsgcmluZywgZ28gdG8gUE9TIGFuZCByZWNlbnRlci4iCiAg
KHdoZW4gcG9zCiAgICA7OyBXaGVuIHRoZSBtYXJrZXIgaXMgaW4gdGhlIHNhbWUgYnVmZmVyLAog
ICAgOzsgcmVjb3JkIHByZXZpb3VzIGxvY2F0aW9uIHN1Y2ggdGhhdCB0aGUgdXNlciBjYW4ganVt
cCBiYWNrIHF1aWNrbHkuCiAgICAodW5sZXNzIChhbmQgKG1hcmtlcnAgcG9zKSAobm90IChlcSAo
Y3VycmVudC1idWZmZXIpIChtYXJrZXItYnVmZmVyIHBvcykpKSkKICAgICAgKHB1c2gtbWFyayAo
cG9pbnQpIHQpKQogICAgKGNvbnN1bHQtLWp1bXAtMSBwb3MpCiAgICAoY29uc3VsdC0taW52aXNp
YmxlLXNob3cgdCkpCiAgbmlsKQoKOzsgTWF0Y2hlZCBzdHJpbmdzIGFyZSBub3QgaGlnaGxpZ2h0
ZWQgYXMgb2Ygbm93Lgo7OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21pbmFkL2NvbnN1bHQvaXNz
dWVzLzcKKGRlZnVuIGNvbnN1bHQtLXByZXZpZXctcG9zaXRpb24gKCZvcHRpb25hbCBmYWNlKQog
ICJUaGUgcHJldmlldyBmdW5jdGlvbiB1c2VkIGlmIHNlbGVjdGluZyBmcm9tIGEgbGlzdCBvZiBj
YW5kaWRhdGUgcG9zaXRpb25zLgpUaGUgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYXMgdGhlIGA6cHJl
dmlldycgYXJndW1lbnQgb2YgYGNvbnN1bHQtLXJlYWQnLgpGQUNFIGlzIHRoZSBjdXJzb3IgZmFj
ZS4iCiAgKGxldCAoKG92ZXJsYXlzKQogICAgICAgIChpbnZpc2libGUpCiAgICAgICAgKGZhY2Ug
KG9yIGZhY2UgJ2NvbnN1bHQtcHJldmlldy1jdXJzb3IpKQogICAgICAgIChzYXZlZC1taW4gKHBv
aW50LW1pbi1tYXJrZXIpKQogICAgICAgIChzYXZlZC1tYXggKHBvaW50LW1heC1tYXJrZXIpKQog
ICAgICAgIChzYXZlZC1wb3MgKHBvaW50LW1hcmtlcikpKQogICAgKGxhbWJkYSAoY2FuZCByZXN0
b3JlKQogICAgICAoY29uc3VsdC0taW52aXNpYmxlLXJlc3RvcmUgaW52aXNpYmxlKQogICAgICAo
bWFwYyAjJ2RlbGV0ZS1vdmVybGF5IG92ZXJsYXlzKQogICAgICAoY29uZAogICAgICAgKHJlc3Rv
cmUKICAgICAgICAoaWYgKG5vdCAoYnVmZmVyLWxpdmUtcCAobWFya2VyLWJ1ZmZlciBzYXZlZC1w
b3MpKSkKICAgICAgICAgICAgKG1lc3NhZ2UgIkJ1ZmZlciBpcyBkZWFkIikKICAgICAgICAgIChu
YXJyb3ctdG8tcmVnaW9uIHNhdmVkLW1pbiBzYXZlZC1tYXgpCiAgICAgICAgICAoZ290by1jaGFy
IHNhdmVkLXBvcykpKQogICAgICAgOzsgSnVtcCB0byBwb3NpdGlvbgogICAgICAgKGNhbmQKICAg
ICAgICAoY29uc3VsdC0tanVtcC0xIGNhbmQpCiAgICAgICAgKHNldHEgaW52aXNpYmxlIChjb25z
dWx0LS1pbnZpc2libGUtc2hvdykpCiAgICAgICAgKGxldCAoKHBvcyAocG9pbnQpKSkKICAgICAg
ICAgIChzZXRxIG92ZXJsYXlzCiAgICAgICAgICAgICAgICAobGlzdCAoY29uc3VsdC0tb3Zlcmxh
eSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAobGluZS1lbmQtcG9zaXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnZmFjZSAnY29uc3VsdC1wcmV2aWV3LWxpbmUpCiAgICAgICAgICAgICAg
ICAgICAgICAoY29uc3VsdC0tb3ZlcmxheSBwb3MgKDErIHBvcykgJ2ZhY2UgZmFjZSkpKSkpCiAg
ICAgICA7OyBJZiBwb3NpdGlvbiBjYW5ub3QgYmUgcHJldmlld2VkLCByZXR1cm4gdG8gc2F2ZWQg
cG9zaXRpb24KICAgICAgICh0IChjb25zdWx0LS1qdW1wLTEgc2F2ZWQtcG9zKSkpKSkpCgooZGVm
dW4gY29uc3VsdC0td2l0aC1wcmV2aWV3LTEgKHByZXZpZXcta2V5IHByZXZpZXcgdHJhbnNmb3Jt
IGNhbmRpZGF0ZSBmdW4pCiAgIkFkZCBwcmV2aWV3IHN1cHBvcnQgZm9yIEZVTi4KClNlZSBjb25z
dWx0LS13aXRoLXByZXZpZXcgZm9yIHRoZSBhcmd1bWVudHMgUFJFVklFVy1LRVksIFBSRVZJRVcs
IFRSQU5TRk9STSBhbmQgQ0FORElEQVRFLiIKICAobGV0ICgoaW5wdXQgIiIpIChzZWxlY3RlZCkp
CiAgICAoY29uc3VsdC0tbWluaWJ1ZmZlci13aXRoLXNldHVwLWhvb2sKICAgICAgICAoaWYgKGFu
ZCBwcmV2aWV3IHByZXZpZXcta2V5KQogICAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAg
ICAgKHNldHEgY29uc3VsdC0tcHJldmlldy1mdW5jdGlvbgogICAgICAgICAgICAgICAgICAgIChs
ZXQgKChsYXN0LXByZXZpZXcpKQogICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoaW5wIGNh
bmQpCiAgICAgICAgICAgICAgICAgICAgICAgIChjbC1hc3NlcnQgKHdpbmRvdy1taW5pYnVmZmVy
LXApKQogICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChlcXVhbCBsYXN0LXByZXZpZXcg
Y2FuZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAod2l0aC1zZWxlY3RlZC13aW5kb3cgKG9y
IChtaW5pYnVmZmVyLXNlbGVjdGVkLXdpbmRvdykgKG5leHQtd2luZG93KSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChmdW5jYWxsIHByZXZpZXcgKGZ1bmNhbGwgdHJhbnNmb3JtIGlucCBj
YW5kKSBuaWwpKQogICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGxhc3QtcHJldmlldyBj
YW5kKSkpKSkKICAgICAgICAgICAgICAobGV0ICgocG9zdC1jb21tYW5kLXN5bSAobWFrZS1zeW1i
b2wgImNvbnN1bHQtLXByZXZpZXctcG9zdC1jb21tYW5kIikpKQogICAgICAgICAgICAgICAgKGZz
ZXQgcG9zdC1jb21tYW5kLXN5bQogICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoKQogICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0cSBpbnB1dCAobWluaWJ1ZmZlci1jb250ZW50cy1uby1w
cm9wZXJ0aWVzKSkKICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKG9yIChlcSBwcmV2aWV3
LWtleSAnYW55KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGtleXMg
KHRoaXMtc2luZ2xlLWNvbW1hbmQta2V5cykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2VxLWZpbmQgKGxhbWJkYSAoeCkgKGVxdWFsICh2Y29uY2F0IHgpIGtleXMpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChsaXN0cCBw
cmV2aWV3LWtleSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmV2aWV3LWtleQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobGlzdCBwcmV2aWV3LWtleSkpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
KHdoZW4tbGV0IChjYW5kIChmdW5jYWxsIGNhbmRpZGF0ZSkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZnVuY2FsbCBjb25zdWx0LS1wcmV2aWV3LWZ1bmN0aW9uIGlucHV0IGNhbmQpKSkp
KQogICAgICAgICAgICAgICAgKGFkZC1ob29rICdwb3N0LWNvbW1hbmQtaG9vayBwb3N0LWNvbW1h
bmQtc3ltIG5pbCB0KSkpCiAgICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAgIChsZXQgKChw
b3N0LWNvbW1hbmQtc3ltIChtYWtlLXN5bWJvbCAiY29uc3VsdC0tcHJldmlldy1wb3N0LWNvbW1h
bmQiKSkpCiAgICAgICAgICAgICAgKGZzZXQgcG9zdC1jb21tYW5kLXN5bSAobGFtYmRhICgpIChz
ZXRxIGlucHV0IChtaW5pYnVmZmVyLWNvbnRlbnRzLW5vLXByb3BlcnRpZXMpKSkpCiAgICAgICAg
ICAgICAgKGFkZC1ob29rICdwb3N0LWNvbW1hbmQtaG9vayBwb3N0LWNvbW1hbmQtc3ltIG5pbCB0
KSkpKQogICAgICAodW53aW5kLXByb3RlY3QKICAgICAgICAgIChjb25zIChzZXRxIHNlbGVjdGVk
ICh3aGVuLWxldCAocmVzdWx0IChmdW5jYWxsIGZ1bikpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChmdW5jYWxsIHRyYW5zZm9ybSBpbnB1dCByZXN1bHQpKSkKICAgICAgICAgICAg
ICAgIGlucHV0KQogICAgICAgIDs7IElmIHRoZXJlIGlzIGEgcHJldmlldyBmdW5jdGlvbiwgYWx3
YXlzIGNhbGwgcmVzdG9yZSEKICAgICAgICA7OyBUaGUgcHJldmlldyBmdW5jdGlvbiBzaG91bGQg
YmUgc2VlbiBhcyBhIHN0YXRlZnVsIG9iamVjdCwKICAgICAgICA7OyBhbmQgd2UgY2FsbCB0aGUg
ZGVzdHJ1Y3RvciBoZXJlLgogICAgICAgICh3aGVuIHByZXZpZXcKICAgICAgICAgIChmdW5jYWxs
IHByZXZpZXcgc2VsZWN0ZWQgdCkpKSkpKQoKKGRlZm1hY3JvIGNvbnN1bHQtLXdpdGgtcHJldmll
dyAocHJldmlldy1rZXkgcHJldmlldyB0cmFuc2Zvcm0gY2FuZGlkYXRlICZyZXN0IGJvZHkpCiAg
IkFkZCBwcmV2aWV3IHN1cHBvcnQgdG8gQk9EWS4KClBSRVZJRVcgaXMgdGhlIHByZXZpZXcgZnVu
Y3Rpb24uClRSQU5TRk9STSBpcyB0aGUgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb24uCkNBTkRJREFU
RSBpcyB0aGUgZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBjdXJyZW50IGNhbmRpZGF0ZS4KUFJFVklF
Vy1LRVkgYXJlIHRoZSBrZXlzIHdoaWNoIHRyaWdnZXJzIHRoZSBwcmV2aWV3LgoKVGhlIHByZXZp
ZXcgZnVuY3Rpb24gdGFrZXMgdHdvIGFyZ3VtZW50cywgdGhlIHNlbGVjdGVkIGNhbmRpZGF0ZSBh
bmQgYSByZXN0b3JlCmZsYWcuIEl0IGlzIGNhbGxlZCBldmVyeSB0aW1lIHdpdGggcmVzdG9yZT1u
aWwgYWZ0ZXIgYSBwcmV2aWV3LWtleSBrZXlwcmVzcywgYXMKbG9uZyBhcyBhIG5ldyBjYW5kaWRh
dGUgaXMgc2VsZWN0ZWQuIEZpbmFsbHkgdGhlIHByZXZpZXcgZnVuY3Rpb24gaXMgY2FsbGVkIGlu
CmFueSBjYXNlIHdpdGggcmVzdG9yZT10IGV2ZW4gaWYgbm8gcHJldmlldyBoYXMgYWN0dWFsbHkg
dGFrZW4gcGxhY2UuIFRoZQpjYW5kaWRhdGUgYXJndW1lbnQgY2FuIGJlIG5pbCBpZiB0aGUgc2Vs
ZWN0aW9uIGhhcyBiZWVuIGFib3J0ZWQuIgogIChkZWNsYXJlIChpbmRlbnQgNCkpCiAgYChjb25z
dWx0LS13aXRoLXByZXZpZXctMSAscHJldmlldy1rZXkgLHByZXZpZXcgLHRyYW5zZm9ybSAsY2Fu
ZGlkYXRlIChsYW1iZGEgKCkgLEBib2R5KSkpCgo7Ozs7IE5hcnJvd2luZyBzdXBwb3J0CgooZGVm
dW4gY29uc3VsdC0td2lkZW4ta2V5ICgpCiAgIlJldHVybiB3aWRlbmluZyBrZXksIGlmIGBjb25z
dWx0LXdpZGVuLWtleScgaXMgbm90IHNldCwgZGVmYXVsdCB0byAnY29uc3VsdC1uYXJyb3cta2V5
IFNQQycuIgogIChvciBjb25zdWx0LXdpZGVuLWtleSAoYW5kIGNvbnN1bHQtbmFycm93LWtleSAo
dmNvbmNhdCBjb25zdWx0LW5hcnJvdy1rZXkgIiAiKSkpKQoKKGRlZnVuIGNvbnN1bHQtbmFycm93
IChrZXkpCiAgIk5hcnJvdyBjdXJyZW50IGNvbXBsZXRpb24gd2l0aCBLRVkuCgpUaGlzIGNvbW1h
bmQgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBuYXJyb3dpbmcgc3lzdGVtIG9mIGBjb25zdWx0
LS1yZWFkJy4iCiAgKGludGVyYWN0aXZlCiAgIChsaXN0ICh1bmxlc3MgKGVxdWFsICh0aGlzLXNp
bmdsZS1jb21tYW5kLWtleXMpIChjb25zdWx0LS13aWRlbi1rZXkpKQogICAgICAgICAgIGxhc3Qt
Y29tbWFuZC1ldmVudCkpKQogIChjb25zdWx0LS1yZXF1aXJlLW1pbmlidWZmZXIpCiAgKHNldHEg
Y29uc3VsdC0tbmFycm93IGtleSkKICAod2hlbiBjb25zdWx0LS1uYXJyb3ctcHJlZGljYXRlCiAg
ICAoc2V0cSBtaW5pYnVmZmVyLWNvbXBsZXRpb24tcHJlZGljYXRlIChhbmQgY29uc3VsdC0tbmFy
cm93IGNvbnN1bHQtLW5hcnJvdy1wcmVkaWNhdGUpKSkKICAod2hlbiBjb25zdWx0LS1uYXJyb3ct
b3ZlcmxheQogICAgKGRlbGV0ZS1vdmVybGF5IGNvbnN1bHQtLW5hcnJvdy1vdmVybGF5KSkKICAo
d2hlbiBjb25zdWx0LS1uYXJyb3cKICAgIChzZXRxIGNvbnN1bHQtLW5hcnJvdy1vdmVybGF5CiAg
ICAgICAgICAoY29uc3VsdC0tb3ZlcmxheQogICAgICAgICAgICgtIChtaW5pYnVmZmVyLXByb21w
dC1lbmQpIDEpIChtaW5pYnVmZmVyLXByb21wdC1lbmQpCiAgICAgICAgICAgJ2JlZm9yZS1zdHJp
bmcKICAgICAgICAgICAocHJvcGVydGl6ZSAoZm9ybWF0ICIgWyVzXSIgKGNkciAoYXNzb2Mga2V5
IGNvbnN1bHQtLW5hcnJvdy1wcmVmaXhlcykpKQogICAgICAgICAgICAgICAgICAgICAgICdmYWNl
ICdjb25zdWx0LW5hcnJvdy1pbmRpY2F0b3IpKSkpCiAgKHJ1bi1ob29rcyAnY29uc3VsdC0tY29t
cGxldGlvbi1yZWZyZXNoLWhvb2spKQoKKGRlZmNvbnN0IGNvbnN1bHQtLW5hcnJvdy1kZWxldGUK
ICBgKG1lbnUtaXRlbQogICAgIiIgbmlsIDpmaWx0ZXIKICAgICwobGFtYmRhICgmb3B0aW9uYWwg
XykKICAgICAgICh3aGVuIChzdHJpbmc9IChtaW5pYnVmZmVyLWNvbnRlbnRzLW5vLXByb3BlcnRp
ZXMpICIiKQogICAgICAgICAoY29uc3VsdC1uYXJyb3cgbmlsKQogICAgICAgICAjJ2lnbm9yZSkp
KSkKCihkZWZjb25zdCBjb25zdWx0LS1uYXJyb3ctc3BhY2UKICBgKG1lbnUtaXRlbQogICAgIiIg
bmlsIDpmaWx0ZXIKICAgICwobGFtYmRhICgmb3B0aW9uYWwgXykKICAgICAgIChsZXQgKChzdHIg
KG1pbmlidWZmZXItY29udGVudHMtbm8tcHJvcGVydGllcykpKQogICAgICAgICAod2hlbi1sZXQg
KHBhaXIgKG9yIChhbmQgKD0gMSAobGVuZ3RoIHN0cikpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYXNzb2MgKGFyZWYgc3RyIDApIGNvbnN1bHQtLW5hcnJvdy1wcmVmaXhlcykp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoc3RyaW5nPSBzdHIgIiIpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXNzb2MgMzIgY29uc3VsdC0tbmFycm93LXBy
ZWZpeGVzKSkpKQogICAgICAgICAgIChkZWxldGUtbWluaWJ1ZmZlci1jb250ZW50cykKICAgICAg
ICAgICAoY29uc3VsdC1uYXJyb3cgKGNhciBwYWlyKSkKICAgICAgICAgICAjJ2lnbm9yZSkpKSkp
CgooZGVmdW4gY29uc3VsdC1uYXJyb3ctaGVscCAoKQogICJQcmludCBuYXJyb3dpbmcgaGVscCBh
cyBhIGBtaW5pYnVmZmVyLW1lc3NhZ2UnLgoKVGhpcyBjb21tYW5kIGNhbiBiZSBib3VuZCB0byBh
IGtleSBpbiBgY29uc3VsdC1uYXJyb3ctbWFwJywKdG8gbWFrZSBpdCBhdmFpbGFibGUgZm9yIGNv
bW1hbmRzIHdpdGggbmFycm93aW5nLiIKICAoaW50ZXJhY3RpdmUpCiAgKGNvbnN1bHQtLXJlcXVp
cmUtbWluaWJ1ZmZlcikKICAobGV0ICgobWluaWJ1ZmZlci1tZXNzYWdlLXRpbWVvdXQgMTAwMDAw
MCkpCiAgICAobWluaWJ1ZmZlci1tZXNzYWdlCiAgICAgKHN0cmluZy1qb2luCiAgICAgIChtYXBj
YXIgKGxhbWJkYSAoeCkgKGNvbmNhdAogICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcGVy
dGl6ZSAoY2hhci10by1zdHJpbmcgKGNhciB4KSkgJ2ZhY2UgJ2NvbnN1bHQta2V5KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAiICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3Bl
cnRpemUgKGNkciB4KSAnZmFjZSAnY29uc3VsdC1oZWxwKSkpCiAgICAgICAgICAgICAgKHNlcS1m
aWx0ZXIgKGxhbWJkYSAoeCkgKC89IChjYXIgeCkgMzIpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN1bHQtLW5hcnJvdy1wcmVmaXhlcykpCiAgICAgICIgIikpKSkKCihkZWZ1biBjb25z
dWx0LS1uYXJyb3ctc2V0dXAgKHNldHRpbmdzIG1hcCkKICAiU2V0dXAgbmFycm93aW5nIHdpdGgg
U0VUVElOR1MgYW5kIGtleW1hcCBNQVAuIgogIChpZiAoZnVuY3Rpb25wIChjYXIgc2V0dGluZ3Mp
KQogICAgICAoc2V0cSBjb25zdWx0LS1uYXJyb3ctcHJlZGljYXRlIChjYXIgc2V0dGluZ3MpCiAg
ICAgICAgICAgIGNvbnN1bHQtLW5hcnJvdy1wcmVmaXhlcyAoY2RyIHNldHRpbmdzKSkKICAgIChz
ZXRxIGNvbnN1bHQtLW5hcnJvdy1wcmVkaWNhdGUgbmlsCiAgICAgICAgICBjb25zdWx0LS1uYXJy
b3ctcHJlZml4ZXMgc2V0dGluZ3MpKQogICh3aGVuIGNvbnN1bHQtbmFycm93LWtleQogICAgKGRv
bGlzdCAocGFpciBjb25zdWx0LS1uYXJyb3ctcHJlZml4ZXMpCiAgICAgICh3aGVuICgvPSAoY2Fy
IHBhaXIpIDMyKQogICAgICAgIChjb25zdWx0LS1kZWZpbmUta2V5IG1hcAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICh2Y29uY2F0IGNvbnN1bHQtbmFycm93LWtleSAodmVjdG9yIChjYXIg
cGFpcikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnY29uc3VsdC1uYXJyb3cgKGNk
ciBwYWlyKSkpKSkKICAod2hlbi1sZXQgKHdpZGVuIChjb25zdWx0LS13aWRlbi1rZXkpKQogICAg
KGNvbnN1bHQtLWRlZmluZS1rZXkgbWFwIHdpZGVuICMnY29uc3VsdC1uYXJyb3cgIkFsbCIpKSkK
Cjs7OzsgQXN5bmMgc3VwcG9ydAoKKGRlZnVuIGNvbnN1bHQtLXdpdGgtYXN5bmMtMSAoYXN5bmMg
ZnVuKQogICJTZXR1cCBBU1lOQyBmb3IgRlVOLiIKICAoaWYgKG5vdCAoZnVuY3Rpb25wIGFzeW5j
KSkgKGZ1bmNhbGwgZnVuIChsYW1iZGEgKF8pIGFzeW5jKSkKICAgIChjb25zdWx0LS1taW5pYnVm
ZmVyLXdpdGgtc2V0dXAtaG9vawogICAgICAgIChsYW1iZGEgKCkKICAgICAgICAgIChmdW5jYWxs
IGFzeW5jICdzZXR1cCkKICAgICAgICAgIDs7IFB1c2ggaW5wdXQgc3RyaW5nIHRvIHJlcXVlc3Qg
cmVmcmVzaC4KICAgICAgICAgIDs7IFdlIHVzZSBhIHN5bWJvbCBpbiBvcmRlciB0byBhdm9pZCBh
ZGRpbmcgbGFtYmRhcyB0byB0aGUgaG9vayB2YXJpYWJsZS4KICAgICAgICAgIChsZXQgKChzeW0g
KG1ha2Utc3ltYm9sICJjb25zdWx0LS1hc3luYy1hZnRlci1jaGFuZ2UiKSkpCiAgICAgICAgICAg
IChmc2V0IHN5bSAobGFtYmRhICgmcmVzdCBfKSAoZnVuY2FsbCBhc3luYyAobWluaWJ1ZmZlci1j
b250ZW50cy1uby1wcm9wZXJ0aWVzKSkpKQogICAgICAgICAgICAocnVuLWF0LXRpbWUgMCBuaWwg
c3ltKQogICAgICAgICAgICAoYWRkLWhvb2sgJ2FmdGVyLWNoYW5nZS1mdW5jdGlvbnMgc3ltIG5p
bCB0KSkpCiAgICAgICh1bndpbmQtcHJvdGVjdAogICAgICAgICAgKGZ1bmNhbGwgZnVuIGFzeW5j
KQogICAgICAgIChmdW5jYWxsIGFzeW5jICdkZXN0cm95KSkpKSkKCihkZWZtYWNybyBjb25zdWx0
LS13aXRoLWFzeW5jIChhc3luYyAmcmVzdCBib2R5KQogICJTZXR1cCBBU1lOQyBmb3IgQk9EWS4i
CiAgKGRlY2xhcmUgKGluZGVudCAxKSkKICBgKGNvbnN1bHQtLXdpdGgtYXN5bmMtMSAsQChjZHIg
YXN5bmMpIChsYW1iZGEgKCwoY2FyIGFzeW5jKSkgLEBib2R5KSkpCgooZGVmdW4gY29uc3VsdC0t
YXN5bmMtc2luayAoKQogICJDcmVhdGUgQVNZTkMgc2luayBmdW5jdGlvbi4KClRoZSBhc3luYyBm
dW5jdGlvbiBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGFjdGlvbiBhcmd1bWVudC4KT25seSBmb3Ig
dGhlICdzZXR1cCBhY3Rpb24sIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCB0aGUgY2FsbApvcmlnaW5h
dGVzIGZyb20gdGhlIG1pbmlidWZmZXIuIEZvciB0aGUgb3RoZXIgYWN0aW9ucyBubwphc3N1bXB0
aW9ucyBjYW4gYmUgbWFkZS4KRGVwZW5kaW5nIG9uIHRoZSBhcmd1bWVudCwgdGhlIGNhbGxlciBj
b250ZXh0IGRpZmZlci4KCidzZXR1cCAgIFNldHVwIHRoZSBpbnRlcm5hbCBzdGF0ZS4KJ2Rlc3Ry
b3kgRGVzdHJveSB0aGUgaW50ZXJuYWwgc3RhdGUuCidmbHVzaCAgIEZsdXNoIHRoZSBsaXN0IG9m
IGNhbmRpZGF0ZXMuCidyZWZyZXNoIFJlcXVlc3QgVUkgcmVmcmVzaC4KJ2dldCAgICAgR2V0IHRo
ZSBsaXN0IG9mIGNhbmRpZGF0ZXMuCkxpc3QgICAgIEFwcGVuZCB0aGUgbGlzdCB0byB0aGUgbGlz
dCBvZiBjYW5kaWRhdGVzLgpTdHJpbmcgICBUaGUgaW5wdXQgc3RyaW5nLCBjYWxsZWQgd2hlbiB0
aGUgdXNlciBlbnRlcnMgc29tZXRoaW5nLiIKICAobGV0ICgoY2FuZGlkYXRlcykpCiAgICAobGFt
YmRhIChhY3Rpb24pCiAgICAgIChwY2FzZS1leGhhdXN0aXZlIGFjdGlvbgogICAgICAgICgob3Ig
KHByZWQgc3RyaW5ncCkgJ3NldHVwICdkZXN0cm95KSBuaWwpCiAgICAgICAgKCdmbHVzaCAoc2V0
cSBjYW5kaWRhdGVzIG5pbCkpCiAgICAgICAgKCdnZXQgY2FuZGlkYXRlcykKICAgICAgICAoJ3Jl
ZnJlc2gKICAgICAgICAgKHdoZW4tbGV0ICh3aW4gKGFjdGl2ZS1taW5pYnVmZmVyLXdpbmRvdykp
CiAgICAgICAgICAgKHdpdGgtc2VsZWN0ZWQtd2luZG93IHdpbgogICAgICAgICAgICAgKHJ1bi1o
b29rcyAnY29uc3VsdC0tY29tcGxldGlvbi1yZWZyZXNoLWhvb2spKSkpCiAgICAgICAgKChwcmVk
IGxpc3RwKSAoc2V0cSBjYW5kaWRhdGVzIChuY29uYyBjYW5kaWRhdGVzIGFjdGlvbikpKSkpKSkK
CihkZWZ1biBjb25zdWx0LS1hc3luYy1zcGxpdC1zdHJpbmcgKHN0cikKICAiU3BsaXQgU1RSIGlu
IGFzeW5jIGlucHV0IGFuZCBmaWx0ZXJpbmcgcGFydC4KSWYgdGhlIGZpcnN0IGNoYXJhY3RlciBp
cyBhIHB1bmN0dWF0aW9uIGNoYXJhY3RlciBpdCBkZXRlcm1pbmVzCnRoZSBzZXBhcmF0b3IuIEV4
YW1wbGVzOiBcIi9hc3luYy9maWx0ZXJcIiwgXCIjYXN5bmMjZmlsdGVyXCIuIgogIChpZiAoc3Ry
aW5nLW1hdGNoLXAgIl5bWzpwdW5jdDpdXSIgc3RyKQogICAgICAoc2F2ZS1tYXRjaC1kYXRhCiAg
ICAgICAgKGxldCAoKHEgKHJlZ2V4cC1xdW90ZSAoc3Vic3RyaW5nIHN0ciAwIDEpKSkpCiAgICAg
ICAgICAoc3RyaW5nLW1hdGNoIChjb25jYXQgIl4iIHEgIlxcKFteIiBxICJdKlxcKSIgcSAiPyIp
IHN0cikKICAgICAgICAgIChjb25zIChtYXRjaC1zdHJpbmcgMSBzdHIpIChtYXRjaC1lbmQgMCkp
KSkKICAgIChjb25zIHN0ciAobGVuZ3RoIHN0cikpKSkKCihkZWZtYWNybyBjb25zdWx0LS1hc3lu
Yy1zcGxpdC13cmFwIChzdWZmaXgpCiAgIkNyZWF0ZSBjb21wbGV0aW9uIHN0eWxlIGZ1bmN0aW9u
IHdpdGggbmFtZSBTVUZGSVguIgogIChsZXQgKChuYW1lIChpbnRlcm4gKGZvcm1hdCAiY29uc3Vs
dC0tYXN5bmMtc3BsaXQtJXMiIHN1ZmZpeCkpKSkKICAgIGAocHJvZ24KICAgICAgIChkZWZ1biAs
bmFtZSAoc3RyIHRhYmxlIHByZWQgcG9pbnQgJm9wdGlvbmFsIG1ldGFkYXRhKQogICAgICAgICAo
bGV0ICgoY29tcGxldGlvbi1zdHlsZXMgKGNkciBjb21wbGV0aW9uLXN0eWxlcykpCiAgICAgICAg
ICAgICAgIChwb3MgKGNkciAoY29uc3VsdC0tYXN5bmMtc3BsaXQtc3RyaW5nIHN0cikpKSkKICAg
ICAgICAgICAoLChpbnRlcm4gKGZvcm1hdCAiY29tcGxldGlvbi0lcyIgc3VmZml4KSkKICAgICAg
ICAgICAgKHN1YnN0cmluZyBzdHIgcG9zKSB0YWJsZSBwcmVkICgtIHBvaW50IHBvcykgbWV0YWRh
dGEpKSkKICAgICAgICcsbmFtZSkpKQoKKGRlZnVuIGNvbnN1bHQtLWFzeW5jLXNwbGl0LXNldHVw
ICgpCiAgIlNldHVwIGBjb25zdWx0LS1hc3luYy1zcGxpdCcgY29tcGxldGlvbiBzdHlsZXMuIgog
IChzZXRxLWxvY2FsIGNvbXBsZXRpb24tc3R5bGVzLWFsaXN0CiAgICAgICAgICAgICAgKGNvbnMg
KGxpc3QgJ2NvbnN1bHQtLWFzeW5jLXNwbGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bnN1bHQtLWFzeW5jLXNwbGl0LXdyYXAgdHJ5LWNvbXBsZXRpb24pCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGNvbnN1bHQtLWFzeW5jLXNwbGl0LXdyYXAgYWxsLWNvbXBsZXRpb25zKSAiIikK
ICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uLXN0eWxlcy1hbGlzdCkpCiAgKHNldHEtbG9j
YWwgY29tcGxldGlvbi1zdHlsZXMKICAgICAgICAgICAgICAoY29ucyAnY29uc3VsdC0tYXN5bmMt
c3BsaXQgY29tcGxldGlvbi1zdHlsZXMpKSkKCihkZWZ1biBjb25zdWx0LS1hc3luYy1zcGxpdCAo
YXN5bmMpCiAgIkNyZWF0ZSBhc3luYyBmdW5jdGlvbiwgd2hpY2ggc3BsaXRzIHRoZSBpbnB1dCBz
dHJpbmcuCgpUaGUgaW5wdXQgc3RyaW5nIGlzIHNwbGl0IGF0IHRoZSBmaXJzdCBjb21tYS4gVGhl
IHBhcnQgYmVmb3JlCnRoZSBjb21tYSBpcyBwYXNzZWQgdG8gQVNZTkMsIHRoZSBzZWNvbmQgcGFy
dCBpcyB1c2VkIGZvciBmaWx0ZXJpbmcuIgogIChsYW1iZGEgKGFjdGlvbikKICAgIChwY2FzZSBh
Y3Rpb24KICAgICAgKCdzZXR1cAogICAgICAgKGNvbnN1bHQtLWFzeW5jLXNwbGl0LXNldHVwKQog
ICAgICAgKGZ1bmNhbGwgYXN5bmMgJ3NldHVwKSkKICAgICAgKChwcmVkIHN0cmluZ3ApCiAgICAg
ICAobGV0KiAoKHBhaXIgKGNvbnN1bHQtLWFzeW5jLXNwbGl0LXN0cmluZyBhY3Rpb24pKQogICAg
ICAgICAgICAgIChpbnB1dC1sZW4gKGxlbmd0aCBhY3Rpb24pKQogICAgICAgICAgICAgIChhc3lu
Yy1zdHIgKGNhciBwYWlyKSkKICAgICAgICAgICAgICAoYXN5bmMtbGVuIChsZW5ndGggYXN5bmMt
c3RyKSkKICAgICAgICAgICAgICAoZW5kIChtaW5pYnVmZmVyLXByb21wdC1lbmQpKSkKICAgICAg
ICAgOzsgSGlnaGxpZ2h0IHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMKICAgICAgICAgKHJlbW92ZS1s
aXN0LW9mLXRleHQtcHJvcGVydGllcyBlbmQgKCsgZW5kIGlucHV0LWxlbikgJyhmYWNlKSkKICAg
ICAgICAgKHdoZW4gKD4gaW5wdXQtbGVuIGFzeW5jLWxlbikKICAgICAgICAgICAocHV0LXRleHQt
cHJvcGVydHkgZW5kICgxKyBlbmQpICdmYWNlICdjb25zdWx0LWFzeW5jLXNwbGl0KQogICAgICAg
ICAgICh3aGVuICg+IGlucHV0LWxlbiAoMSsgYXN5bmMtbGVuKSkKICAgICAgICAgICAgIChwdXQt
dGV4dC1wcm9wZXJ0eSAoKyAxIGVuZCBhc3luYy1sZW4pCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCsgMiBlbmQgYXN5bmMtbGVuKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdmYWNlICdjb25zdWx0LWFzeW5jLXNwbGl0KSkpCiAgICAgICAgIChmdW5jYWxsIGFzeW5j
CiAgICAgICAgICAgICAgICAgIDs7IFBhc3MgdGhyb3VnaCBpZiBmb3JjZWQgYnkgdHdvIHB1bmN0
dWF0aW9uIGNoYXJhY3RlcnMKICAgICAgICAgICAgICAgICAgOzsgb3IgaWYgdGhlIGlucHV0IGlz
IGxvbmcgZW5vdWdoIQogICAgICAgICAgICAgICAgICAoaWYgKG9yICg+PSBpbnB1dC1sZW4gKCsg
MiBhc3luYy1sZW4pKQogICAgICAgICAgICAgICAgICAgICAgICAgICg+PSBhc3luYy1sZW4gY29u
c3VsdC1hc3luYy1taW4taW5wdXQpKQogICAgICAgICAgICAgICAgICAgICAgYXN5bmMtc3RyCiAg
ICAgICAgICAgICAgICAgICAgOzsgUHJldGVuZCB0aGF0IHRoZXJlIGlzIG5vIGlucHV0CiAgICAg
ICAgICAgICAgICAgICAgIiIpKSkpCiAgICAgIChfIChmdW5jYWxsIGFzeW5jIGFjdGlvbikpKSkp
CgooZGVmdW4gY29uc3VsdC0tYXN5bmMtbG9nIChmb3JtYXR0ZWQgJnJlc3QgYXJncykKICAiTG9n
IEZPUk1BVFRFRCBBUkdTIHRvIGBjb25zdWx0LS1hc3luYy1sb2cnLiIKICAod2l0aC1jdXJyZW50
LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUgY29uc3VsdC0tYXN5bmMtbG9nKQogICAgKGdvdG8t
Y2hhciAocG9pbnQtbWF4KSkKICAgIChpbnNlcnQgKGFwcGx5ICMnZm9ybWF0IGZvcm1hdHRlZCBh
cmdzKSkpKQoKKGRlZnVuIGNvbnN1bHQtLWFzeW5jLXByb2Nlc3MgKGFzeW5jIGNtZCkKICAiQ3Jl
YXRlIHByb2Nlc3Mgc291cmNlIGFzeW5jIGZ1bmN0aW9uLgoKQVNZTkMgaXMgdGhlIGFzeW5jIGZ1
bmN0aW9uIHdoaWNoIHJlY2VpdmVzIHRoZSBjYW5kaWRhdGVzLgpDTUQgaXMgdGhlIGNvbW1hbmQg
YXJndW1lbnQgbGlzdC4iCiAgKGxldCAoKHByb2MpIChsYXN0LWFyZ3MpIChpbmRpY2F0b3IpKQog
ICAgKGxhbWJkYSAoYWN0aW9uKQogICAgICAocGNhc2UgYWN0aW9uCiAgICAgICAgKCIiIDs7IElm
IG5vIGlucHV0IGlzIHByb3ZpZGVkIGtpbGwgY3VycmVudCBwcm9jZXNzCiAgICAgICAgIChpZ25v
cmUtZXJyb3JzIChkZWxldGUtcHJvY2VzcyBwcm9jKSkKICAgICAgICAgKHNldHEgbGFzdC1hcmdz
IG5pbCkpCiAgICAgICAgKChwcmVkIHN0cmluZ3ApCiAgICAgICAgIChsZXQgKChhcmdzIChmdW5j
YWxsIGNtZCBhY3Rpb24pKQogICAgICAgICAgICAgICAoZmx1c2ggdCkKICAgICAgICAgICAgICAg
KHJlc3QgIiIpKQogICAgICAgICAgICh1bmxlc3MgKGVxdWFsIGFyZ3MgbGFzdC1hcmdzKQogICAg
ICAgICAgICAgKHNldHEgbGFzdC1hcmdzIGFyZ3MpCiAgICAgICAgICAgICAoaWdub3JlLWVycm9y
cyAoZGVsZXRlLXByb2Nlc3MgcHJvYykpCiAgICAgICAgICAgICAod2hlbiBhcmdzCiAgICAgICAg
ICAgICAgIChvdmVybGF5LXB1dCBpbmRpY2F0b3IgJ2Rpc3BsYXkgKHByb3BlcnRpemUgIioiICdm
YWNlICdjb25zdWx0LWFzeW5jLXJ1bm5pbmcpKQogICAgICAgICAgICAgICAoY29uc3VsdC0tYXN5
bmMtbG9nICJjb25zdWx0LS1hc3luYy1wcm9jZXNzIHN0YXJ0ZWQgJVNcbiIgYXJncykKICAgICAg
ICAgICAgICAgKHNldHEKICAgICAgICAgICAgICAgIHByb2MKICAgICAgICAgICAgICAgIChtYWtl
LXByb2Nlc3MKICAgICAgICAgICAgICAgICA6Y29ubmVjdGlvbi10eXBlICdwaXBlCiAgICAgICAg
ICAgICAgICAgOm5hbWUgKGNhciBhcmdzKQogICAgICAgICAgICAgICAgIDpzdGRlcnIgY29uc3Vs
dC0tYXN5bmMtbG9nCiAgICAgICAgICAgICAgICAgOm5vcXVlcnkgdAogICAgICAgICAgICAgICAg
IDpjb21tYW5kIGFyZ3MKICAgICAgICAgICAgICAgICA6ZmlsdGVyCiAgICAgICAgICAgICAgICAg
KGxhbWJkYSAoXyBvdXQpCiAgICAgICAgICAgICAgICAgICAod2hlbiBmbHVzaAogICAgICAgICAg
ICAgICAgICAgICAoc2V0cSBmbHVzaCBuaWwpCiAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxs
IGFzeW5jICdmbHVzaCkpCiAgICAgICAgICAgICAgICAgICAobGV0ICgobGluZXMgKHNwbGl0LXN0
cmluZyBvdXQgIlxuIikpKQogICAgICAgICAgICAgICAgICAgICAoaWYgKG5vdCAoY2RyIGxpbmVz
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHJlc3QgKGNvbmNhdCByZXN0IChjYXIg
bGluZXMpKSkKICAgICAgICAgICAgICAgICAgICAgICAoc2V0Y2FyIGxpbmVzIChjb25jYXQgcmVz
dCAoY2FyIGxpbmVzKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgcmVzdCAoY2FyIChs
YXN0IGxpbmVzKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgYXN5bmMgKG5idXRs
YXN0IGxpbmVzKSkpKSkKICAgICAgICAgICAgICAgICA6c2VudGluZWwKICAgICAgICAgICAgICAg
ICAobGFtYmRhIChfIGV2ZW50KQogICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLWFzeW5jLWxv
ZyAiY29uc3VsdC0tYXN5bmMtcHJvY2VzcyBzZW50aW5lbDogJXNcbiIgZXZlbnQpCiAgICAgICAg
ICAgICAgICAgICAod2hlbiBmbHVzaAogICAgICAgICAgICAgICAgICAgICAoc2V0cSBmbHVzaCBu
aWwpCiAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGFzeW5jICdmbHVzaCkpCiAgICAgICAg
ICAgICAgICAgICAob3ZlcmxheS1wdXQgaW5kaWNhdG9yICdkaXNwbGF5CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGNvbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KChzdHJpbmctcHJlZml4LXAgImtpbGxlZCIgZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocHJvcGVydGl6ZSAiOyIgJ2ZhY2UgJ2NvbnN1bHQtYXN5bmMtZmFpbGVkKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctcHJlZml4LXAgImZpbmlz
aGVkIiBldmVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXpl
ICI6IiAnZmFjZSAnY29uc3VsdC1hc3luYy1maW5pc2hlZCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh0IChwcm9wZXJ0aXplICIhIiAnZmFjZSAnY29uc3VsdC1hc3luYy1mYWls
ZWQpKSkpCiAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChzdHJpbmctcHJlZml4LXAgImZp
bmlzaGVkIiBldmVudCkgKG5vdCAoc3RyaW5nPSByZXN0ICIiKSkpCiAgICAgICAgICAgICAgICAg
ICAgIChmdW5jYWxsIGFzeW5jIChsaXN0IHJlc3QpKSkpKSkpKSkpCiAgICAgICAgKCdkZXN0cm95
CiAgICAgICAgIChpZ25vcmUtZXJyb3JzIChkZWxldGUtcHJvY2VzcyBwcm9jKSkKICAgICAgICAg
KGRlbGV0ZS1vdmVybGF5IGluZGljYXRvcikKICAgICAgICAgKGZ1bmNhbGwgYXN5bmMgJ2Rlc3Ry
b3kpKQogICAgICAgICgnc2V0dXAKICAgICAgICAgKHNldHEgaW5kaWNhdG9yIChtYWtlLW92ZXJs
YXkgKC0gKG1pbmlidWZmZXItcHJvbXB0LWVuZCkgMikKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKC0gKG1pbmlidWZmZXItcHJvbXB0LWVuZCkgMSkpKQogICAgICAgICAo
ZnVuY2FsbCBhc3luYyAnc2V0dXApKQogICAgICAgIChfIChmdW5jYWxsIGFzeW5jIGFjdGlvbikp
KSkpKQoKKGRlZnVuIGNvbnN1bHQtLWFzeW5jLXRocm90dGxlIChhc3luYyAmb3B0aW9uYWwgdGhy
b3R0bGUgZGVib3VuY2UpCiAgIkNyZWF0ZSBhc3luYyBmdW5jdGlvbiBmcm9tIEFTWU5DIHdoaWNo
IHRocm90dGxlcyBpbnB1dC4KClRoZSBUSFJPVFRMRSBkZWxheSBkZWZhdWx0cyB0byBgY29uc3Vs
dC1hc3luYy1pbnB1dC10aHJvdHRsZScuClRoZSBERUJPVU5DRSBkZWxheSBkZWZhdWx0cyB0byBg
Y29uc3VsdC1hc3luYy1pbnB1dC1kZWJvdW5jZScuIgogIChsZXQqICgodGhyb3R0bGUgKG9yIHRo
cm90dGxlIGNvbnN1bHQtYXN5bmMtaW5wdXQtdGhyb3R0bGUpKQogICAgICAgICAoZGVib3VuY2Ug
KG9yIGRlYm91bmNlIGNvbnN1bHQtYXN5bmMtaW5wdXQtZGVib3VuY2UpKQogICAgICAgICAoaW5w
dXQgIiIpCiAgICAgICAgICh1bmxvY2tlZCB0KQogICAgICAgICAodGhyb3R0bGUtdGltZXIpCiAg
ICAgICAgIChkZWJvdW5jZS10aW1lcikpCiAgICAobGFtYmRhIChhY3Rpb24pCiAgICAgIChwY2Fz
ZSBhY3Rpb24KICAgICAgICAoJ3NldHVwCiAgICAgICAgIChmdW5jYWxsIGFzeW5jICdzZXR1cCkK
ICAgICAgICAgKHNldHEgdGhyb3R0bGUtdGltZXIgKHJ1bi1hdC10aW1lIHRocm90dGxlIHRocm90
dGxlIChsYW1iZGEgKCkgKHNldHEgdW5sb2NrZWQgdCkpKSkpCiAgICAgICAgKChwcmVkIHN0cmlu
Z3ApCiAgICAgICAgICh3aGVuIGRlYm91bmNlLXRpbWVyCiAgICAgICAgICAgKGNhbmNlbC10aW1l
ciBkZWJvdW5jZS10aW1lcikpCiAgICAgICAgICh1bmxlc3MgKHN0cmluZz0gYWN0aW9uIGlucHV0
KQogICAgICAgICAgIChmdW5jYWxsIGFzeW5jIChzZXRxIGlucHV0ICIiKSkgOzsgY2FuY2VsIHJ1
bm5pbmcgcHJvY2VzcwogICAgICAgICAgICh1bmxlc3MgKHN0cmluZz0gYWN0aW9uICIiKQogICAg
ICAgICAgICAgKHNldHEgZGVib3VuY2UtdGltZXIgKHJ1bi1hdC10aW1lCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCsgZGVib3VuY2UgKGlmIHVubG9ja2VkIDAgdGhyb3R0bGUp
KSBuaWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICgpIChmdW5j
YWxsIGFzeW5jIChzZXRxIHVubG9ja2VkIG5pbCBpbnB1dCBhY3Rpb24pKSkpKSkpKQogICAgICAg
ICgnZGVzdHJveQogICAgICAgICAoY2FuY2VsLXRpbWVyIHRocm90dGxlLXRpbWVyKQogICAgICAg
ICAod2hlbiBkZWJvdW5jZS10aW1lcgogICAgICAgICAgIChjYW5jZWwtdGltZXIgZGVib3VuY2Ut
dGltZXIpKQogICAgICAgICAoZnVuY2FsbCBhc3luYyAnZGVzdHJveSkpCiAgICAgICAgKF8gKGZ1
bmNhbGwgYXN5bmMgYWN0aW9uKSkpKSkpCgooZGVmdW4gY29uc3VsdC0tYXN5bmMtcmVmcmVzaC1p
bW1lZGlhdGUgKGFzeW5jKQogICJDcmVhdGUgYXN5bmMgZnVuY3Rpb24gZnJvbSBBU1lOQywgd2hp
Y2ggcmVmcmVzaGVzIHRoZSBkaXNwbGF5LgoKVGhlIHJlZnJlc2ggaGFwcGVucyBpbW1lZGlhdGVs
eSB3aGVuIGNhbmRpZGF0ZXMgYXJlIHB1c2hlZC4iCiAgKGxhbWJkYSAoYWN0aW9uKQogICAgKHBj
YXNlIGFjdGlvbgogICAgICAoKG9yIChwcmVkIGxpc3RwKSAocHJlZCBzdHJpbmdwKSAnZmx1c2gp
CiAgICAgICAocHJvZzEgKGZ1bmNhbGwgYXN5bmMgYWN0aW9uKQogICAgICAgICAoZnVuY2FsbCBh
c3luYyAncmVmcmVzaCkpKQogICAgICAoXyAoZnVuY2FsbCBhc3luYyBhY3Rpb24pKSkpKQoKKGRl
ZnVuIGNvbnN1bHQtLWFzeW5jLXJlZnJlc2gtdGltZXIgKGFzeW5jICZvcHRpb25hbCBkZWxheSkK
ICAiQ3JlYXRlIGFzeW5jIGZ1bmN0aW9uIGZyb20gQVNZTkMsIHdoaWNoIHJlZnJlc2hlcyB0aGUg
ZGlzcGxheS4KClRoZSByZWZyZXNoIGhhcHBlbnMgYWZ0ZXIgYSBERUxBWSwgZGVmYXVsdGluZyB0
byBgY29uc3VsdC1hc3luYy1yZWZyZXNoLWRlbGF5Jy4iCiAgKGxldCAoKHRpbWVyKSAocmVmcmVz
aCB0KSAoZGVsYXkgKG9yIGRlbGF5IGNvbnN1bHQtYXN5bmMtcmVmcmVzaC1kZWxheSkpKQogICAg
KGxhbWJkYSAoYWN0aW9uKQogICAgICAocGNhc2UgYWN0aW9uCiAgICAgICAgKChvciAocHJlZCBs
aXN0cCkgKHByZWQgc3RyaW5ncCkgJ3JlZnJlc2ggJ2ZsdXNoKQogICAgICAgICAoc2V0cSByZWZy
ZXNoIHQpKQogICAgICAgICgnZGVzdHJveSAoY2FuY2VsLXRpbWVyIHRpbWVyKSkKICAgICAgICAo
J3NldHVwCiAgICAgICAgIChzZXRxIHRpbWVyIChydW4tYXQtdGltZQogICAgICAgICAgICAgICAg
ICAgICAgZGVsYXkgZGVsYXkKICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCkKICAgICAg
ICAgICAgICAgICAgICAgICAgKHdoZW4gcmVmcmVzaAogICAgICAgICAgICAgICAgICAgICAgICAg
IChzZXRxIHJlZnJlc2ggbmlsKQogICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGFz
eW5jICdyZWZyZXNoKSkpKSkpKQogICAgICAoZnVuY2FsbCBhc3luYyBhY3Rpb24pKSkpCgooZGVm
bWFjcm8gY29uc3VsdC0tYXN5bmMtdHJhbnNmb3JtIChhc3luYyAmcmVzdCB0cmFuc2Zvcm0pCiAg
IlVzZSBGVU4gdG8gVFJBTlNGT1JNIGNhbmRpZGF0ZXMgb2YgQVNZTkMuIgogIChsZXQgKChhc3lu
Yy12YXIgKG1ha2Utc3ltYm9sICJhc3luYyIpKQogICAgICAgIChhY3Rpb24tdmFyIChtYWtlLXN5
bWJvbCAiYWN0aW9uIikpKQogICAgYChsZXQgKCgsYXN5bmMtdmFyICxhc3luYykpCiAgICAgICAo
bGFtYmRhICgsYWN0aW9uLXZhcikKICAgICAgICAgKGZ1bmNhbGwgLGFzeW5jLXZhciAoaWYgKGxp
c3RwICxhY3Rpb24tdmFyKSAoLEB0cmFuc2Zvcm0gLGFjdGlvbi12YXIpICxhY3Rpb24tdmFyKSkp
KSkpCgooZGVmdW4gY29uc3VsdC0tYXN5bmMtbWFwIChhc3luYyBmdW4pCiAgIk1hcCBjYW5kaWRh
dGVzIG9mIEFTWU5DIGJ5IEZVTi4iCiAgKGNvbnN1bHQtLWFzeW5jLXRyYW5zZm9ybSBhc3luYyBt
YXBjYXIgZnVuKSkKCihkZWZ1biBjb25zdWx0LS1hc3luYy1maWx0ZXIgKGFzeW5jIGZ1bikKICAi
RmlsdGVyIGNhbmRpZGF0ZXMgb2YgQVNZTkMgYnkgRlVOLiIKICAoY29uc3VsdC0tYXN5bmMtdHJh
bnNmb3JtIGFzeW5jIHNlcS1maWx0ZXIgZnVuKSkKCihkZWZ1biBjb25zdWx0LS1jb21tYW5kLWFy
Z3MgKGNtZCkKICAiU3BsaXQgY29tbWFuZCBhcmd1bWVudHMgYW5kIGFwcGVuZCB0byBDTUQuIgog
IChzZXRxIGNtZCAoc3BsaXQtc3RyaW5nLWFuZC11bnF1b3RlIGNtZCkpCiAgKGxhbWJkYSAoaW5w
dXQpCiAgICAoc2F2ZS1tYXRjaC1kYXRhCiAgICAgIChsZXQgKChvcHRzKSkKICAgICAgICAod2hl
biAoc3RyaW5nLW1hdGNoICIgKy0tXFwoICtcXHwkXFwpIiBpbnB1dCkKICAgICAgICAgIDs7IHNw
bGl0LXN0cmluZy1hbmQtdW5xdW90ZSBtb2RpZmllcyB0aGUgbWF0Y2ggZGF0YQogICAgICAgICAg
OzsgYW5kIGZhaWxzIGlmIHRoZSBxdW90ZXMgYXJlIGludmFsaWQuIElnbm9yZSBpdC4KICAgICAg
ICAgIChzZXRxIG9wdHMgKHN1YnN0cmluZyBpbnB1dCAobWF0Y2gtZW5kIDApKQogICAgICAgICAg
ICAgICAgaW5wdXQgKHN1YnN0cmluZyBpbnB1dCAwIChtYXRjaC1iZWdpbm5pbmcgMCkpCiAgICAg
ICAgICAgICAgICBvcHRzIChpZ25vcmUtZXJyb3JzIChzcGxpdC1zdHJpbmctYW5kLXVucXVvdGUg
b3B0cykpKSkKICAgICAgICAobWFwY2FuIChsYW1iZGEgKHgpCiAgICAgICAgICAgICAgICAgIChp
ZiAoc3RyaW5nPSB4ICJPUFRTIikKICAgICAgICAgICAgICAgICAgICAgIG9wdHMKICAgICAgICAg
ICAgICAgICAgICAobGlzdCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJBUkciIGlucHV0IHgg
J2ZpeGVkY2FzZSAnbGl0ZXJhbCkpKSkKICAgICAgICAgICAgICAgIGNtZCkpKSkpCgooZGVmbWFj
cm8gY29uc3VsdC0tYXN5bmMtY29tbWFuZCAoY21kICZyZXN0IHRyYW5zZm9ybXMpCiAgIkFzeW5j
aHJvbm91cyBDTUQgcGlwZWxpbmUgd2l0aCBUUkFOU0ZPUk1TLiIKICAoZGVjbGFyZSAoaW5kZW50
IDEpKQogIGAodGhyZWFkLWZpcnN0IChjb25zdWx0LS1hc3luYy1zaW5rKQogICAgIChjb25zdWx0
LS1hc3luYy1yZWZyZXNoLXRpbWVyKQogICAgICxAdHJhbnNmb3JtcwogICAgIChjb25zdWx0LS1h
c3luYy1wcm9jZXNzIChjb25zdWx0LS1jb21tYW5kLWFyZ3MgLGNtZCkpCiAgICAgKGNvbnN1bHQt
LWFzeW5jLXRocm90dGxlKQogICAgIChjb25zdWx0LS1hc3luYy1zcGxpdCkpKQoKOzs7OyBTcGVj
aWFsIGtleW1hcHMKCihkZWZ2YXIgY29uc3VsdC1hc3luYy1tYXAgKG1ha2Utc3BhcnNlLWtleW1h
cCkKICAiS2V5bWFwIGFkZGVkIGZvciBjb21tYW5kcyB3aXRoIGFzeW5jaHJvbm91cyBjYW5kaWRh
dGVzLiIpCgooZGVmdmFyIGNvbnN1bHQtcHJldmlldy1tYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkK
ICAiS2V5bWFwIGFkZGVkIGZvciBjb21tYW5kcyB3aXRoIHByZXZpZXcuIikKCihkZWZ2YXIgY29u
c3VsdC1uYXJyb3ctbWFwCiAgKGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICAo
ZGVmaW5lLWtleSBtYXAgIiAiIGNvbnN1bHQtLW5hcnJvdy1zcGFjZSkKICAgIChkZWZpbmUta2V5
IG1hcCBbMTI3XSBjb25zdWx0LS1uYXJyb3ctZGVsZXRlKQogICAgbWFwKQogICJOYXJyb3dpbmcg
a2V5bWFwIHdoaWNoIGlzIGFkZGVkIHRvIHRoZSBsb2NhbCBtaW5pYnVmZmVyIG1hcC4KTm90ZSB0
aGF0IGBjb25zdWx0LW5hcnJvdy1rZXknIGFuZCBgY29uc3VsdC13aWRlbi1rZXknIGFyZSBib3Vu
ZCBkeW5hbWljYWxseS4iKQoKOzs7OyBJbnRlcm5hbCBBUEk6IGNvbnN1bHQtLXJlYWQKCihkZWZ1
biBjb25zdWx0LS1hZGQtaGlzdG9yeSAoaXRlbXMpCiAgIkFkZCBJVEVNUyB0byB0aGUgbWluaWJ1
ZmZlciBoaXN0b3J5IHZpYSBgbWluaWJ1ZmZlci1kZWZhdWx0LWFkZC1mdW5jdGlvbicuIgogIChz
ZXRxLWxvY2FsIG1pbmlidWZmZXItZGVmYXVsdC1hZGQtZnVuY3Rpb24KICAgICAgICAgICAgICAo
bGFtYmRhICgpCiAgICAgICAgICAgICAgICAoY29uc3VsdC0tcmVtb3ZlLWR1cHMKICAgICAgICAg
ICAgICAgICAoYXBwZW5kCiAgICAgICAgICAgICAgICAgIDs7IHRoZSBkZWZhdWx0cyBhcmUgYXQg
dGhlIGJlZ2lubmluZyBvZiB0aGUgZnV0dXJlIGhpc3RvcnkKICAgICAgICAgICAgICAgICAgKGlm
IChsaXN0cCBtaW5pYnVmZmVyLWRlZmF1bHQpCiAgICAgICAgICAgICAgICAgICAgICBtaW5pYnVm
ZmVyLWRlZmF1bHQKICAgICAgICAgICAgICAgICAgICAobGlzdCBtaW5pYnVmZmVyLWRlZmF1bHQp
KQogICAgICAgICAgICAgICAgICA7OyB0aGVuIG91ciBjdXN0b20gaXRlbXMKICAgICAgICAgICAg
ICAgICAgKGRlbGV0ZSAiIiAoZGVscSBuaWwgKGlmIChsaXN0cCBpdGVtcykKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxpc3QgaXRlbXMpKSkpCiAgICAgICAgICAgICAgICAgIDs7
IHRoZW4gYWxsIHRoZSBjb21wbGV0aW9ucwogICAgICAgICAgICAgICAgICAoYWxsLWNvbXBsZXRp
b25zICIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21w
bGV0aW9uLXRhYmxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZl
ci1jb21wbGV0aW9uLXByZWRpY2F0ZSkpKSkpKQoKKGRlZnVuIGNvbnN1bHQtLXNldHVwLWtleW1h
cCAoa2V5bWFwIGFzeW5jIG5hcnJvdyBwcmV2aWV3LWtleSkKICAiU2V0dXAgbWluaWJ1ZmZlciBr
ZXltYXAuCgpLRVlNQVAgaXMgYSBjb21tYW5kLXNwZWNpZmljIEtFWU1BUC4KQVNZTkMgbXVzdCBi
ZSB0IGZvciBhc3luYy4KTkFSUk9XIGFyZSB0aGUgbmFycm93IHNldHRpbmdzLgpQUkVWSUVXLUtF
WSBpcyB0aGUgcHJldmlldyBrZXkuIgogIChsZXQgKChvbGQtbWFwIChjdXJyZW50LWxvY2FsLW1h
cCkpCiAgICAgICAgKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCgogICAgOzsgQXN5bmMga2V5
cyBvdmVyd3JpdGluZyBzb21lIHVudXNhYmxlIGRlZmF1bHRzIGZvciB0aGUgZGVmYXVsdCBjb21w
bGV0aW9uCiAgICAod2hlbiBhc3luYwogICAgICAod2hlbiAoZXEgKGxvb2t1cC1rZXkgb2xkLW1h
cCAiICIpICMnbWluaWJ1ZmZlci1jb21wbGV0ZS13b3JkKQogICAgICAgIChkZWZpbmUta2V5IG1h
cCAiICIgIydzZWxmLWluc2VydC1jb21tYW5kKSkKICAgICAgKHdoZW4gKGVxIChsb29rdXAta2V5
IG9sZC1tYXAgIlx0IikgIydtaW5pYnVmZmVyLWNvbXBsZXRlKQogICAgICAgIChkZWZpbmUta2V5
IG1hcCAiXHQiICMnbWluaWJ1ZmZlci1jb21wbGV0aW9uLWhlbHApKSkKCiAgICA7OyBBZGQgbmFy
cm93IGtleXMKICAgICh3aGVuIG5hcnJvdwogICAgICAoY29uc3VsdC0tbmFycm93LXNldHVwIG5h
cnJvdyBtYXApKQoKICAgIDs7IFByZXZpZXcgdHJpZ2dlciBrZXlzCiAgICAod2hlbiAoYW5kIHBy
ZXZpZXcta2V5IChub3QgKGVxIHByZXZpZXcta2V5ICdhbnkpKSkKICAgICAgKGxldCAoKHByZXZp
ZXcta2V5IChpZiAobGlzdHAgcHJldmlldy1rZXkpIHByZXZpZXcta2V5IChsaXN0IHByZXZpZXct
a2V5KSkpKQogICAgICAgIChkb2xpc3QgKGtleSBwcmV2aWV3LWtleSkKICAgICAgICAgICh1bmxl
c3MgKGxvb2t1cC1rZXkgb2xkLW1hcCBrZXkpCiAgICAgICAgICAgIChkZWZpbmUta2V5IG1hcCBr
ZXkgIydpZ25vcmUpKSkpKQoKICAgIDs7IFB1dCB0aGUga2V5bWFwIHRvZ2V0aGVyCiAgICAodXNl
LWxvY2FsLW1hcAogICAgIChtYWtlLWNvbXBvc2VkLWtleW1hcAogICAgICAoZGVscSBuaWwgKGxp
c3Qga2V5bWFwCiAgICAgICAgICAgICAgICAgICAgICAoYW5kIGFzeW5jIGNvbnN1bHQtYXN5bmMt
bWFwKQogICAgICAgICAgICAgICAgICAgICAgKGFuZCBuYXJyb3cgY29uc3VsdC1uYXJyb3ctbWFw
KQogICAgICAgICAgICAgICAgICAgICAgKGFuZCBwcmV2aWV3LWtleSBjb25zdWx0LXByZXZpZXct
bWFwKQogICAgICAgICAgICAgICAgICAgICAgbWFwKSkKICAgICAgb2xkLW1hcCkpKSkKCihkZWZ1
biBjb25zdWx0LS1mcnktdGhlLXRvZnVzICgmcmVzdCBfKQogICJGcnkgdGhlIHRvZnVzIGluIHRo
ZSBtaW5pYnVmZmVyLiIKICAobGV0KiAoKG1pbiAobWluaWJ1ZmZlci1wcm9tcHQtZW5kKSkKICAg
ICAgICAgKG1heCAocG9pbnQtbWF4KSkKICAgICAgICAgKHBvcyBtaW4pCiAgICAgICAgIChjbWlu
IGNvbnN1bHQtLXRvZnUtY2hhcikKICAgICAgICAgKGNtYXggKC0gKCsgY29uc3VsdC0tdG9mdS1j
aGFyIGNvbnN1bHQtLXRvZnUtcmFuZ2UpIDEpKSkKICAgICh3aGlsZSAoYW5kICg8IHBvcyBtYXgp
ICg8PSBjbWluIChjaGFyLWFmdGVyIHBvcykgY21heCkpCiAgICAgIChzZXRxIHBvcyAoMSsgcG9z
KSkpCiAgICAod2hlbiAoPiBwb3MgbWluKQogICAgICAocmVtb3ZlLWxpc3Qtb2YtdGV4dC1wcm9w
ZXJ0aWVzIG1pbiBwb3MgJyhkaXNwbGF5KSkKICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IG1pbiBw
b3MgJ2ludmlzaWJsZSB0KSkpKQoKKGNsLWRlZnVuIGNvbnN1bHQtLXJlYWQtc2V0dXAgKF9wcm9t
cHQgY2FuZGlkYXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5
IGtleW1hcCBhZGQtaGlzdG9yeSBuYXJyb3cgcHJldmlldy1rZXkgJmFsbG93LW90aGVyLWtleXMp
CiAgIk1pbmlidWZmZXIgc2V0dXAgZm9yIGBjb25zdWx0LS1yZWFkJy4KClNlZSBgY29uc3VsdC0t
cmVhZCcgZm9yIHRoZSBDQU5ESURBVEVTLCBLRVlNQVAsIEFERC1ISVNUT1JZLCBOQVJST1cgYW5k
IFBSRVZJRVctS0VZIGFyZ3VtZW50cy4iCiAgKGFkZC1ob29rICdhZnRlci1jaGFuZ2UtZnVuY3Rp
b25zICMnY29uc3VsdC0tZnJ5LXRoZS10b2Z1cyBuaWwgdCkKICAoY29uc3VsdC0tc2V0dXAta2V5
bWFwIGtleW1hcCAoZnVuY3Rpb25wIGNhbmRpZGF0ZXMpIG5hcnJvdyBwcmV2aWV3LWtleSkKICAo
Y29uc3VsdC0tYWRkLWhpc3RvcnkgYWRkLWhpc3RvcnkpKQoKKGRlZm1hY3JvIGNvbnN1bHQtLXJl
YWQtZGVmYXVsdHMgKCZyZXN0IGRlZmF1bHQpCiAgIlNldCBERUZBVUxUIG9wdGlvbnMuIgogICht
YWNyb2V4cC1wcm9nbgogICAobWFwY2FyCiAgICAocGNhc2UtbGFtYmRhIChgKCxrZXkgLHZhbCkp
CiAgICAgIGAodW5sZXNzIChwbGlzdC1tZW1iZXIgb3B0aW9ucyAsKGludGVybiAoZm9ybWF0ICI6
JXMiIGtleSkpKQogICAgICAgICAoc2V0cSBvcHRpb25zIChwbGlzdC1wdXQgb3B0aW9ucyAsKGlu
dGVybiAoZm9ybWF0ICI6JXMiIGtleSkpIChzZXRxICxrZXkgLHZhbCkpKSkpCiAgICBkZWZhdWx0
KSkpCgooY2wtZGVmdW4gY29uc3VsdC0tcmVhZCAocHJvbXB0IGNhbmRpZGF0ZXMgJnJlc3Qgb3B0
aW9ucyAma2V5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZGljYXRlIHJlcXVp
cmUtbWF0Y2ggaGlzdG9yeSBkZWZhdWx0IGtleW1hcAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNhdGVnb3J5IGluaXRpYWwgbmFycm93IGFkZC1oaXN0b3J5IGFubm90YXRlCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlldyBwcmV2aWV3LWtleSBzb3J0IGRlZmF1
bHQtdG9wIGxvb2t1cCkKICAiRW5oYW5jZWQgY29tcGxldGluZyByZWFkIGZ1bmN0aW9uLgoKQXJn
dW1lbnRzOgoKUFJPTVBUIGlzIHRoZSBzdHJpbmcgdG8gcHJvbXB0IHdpdGguCkNBTkRJREFURVMg
aXMgdGhlIGNhbmRpZGF0ZSBsaXN0IG9yIGFsaXN0LgoKS2V5d29yZCBPUFRJT05TOgoKUFJFRElD
QVRFIGlzIGEgZmlsdGVyIGZ1bmN0aW9uIGZvciB0aGUgY2FuZGlkYXRlcy4KUkVRVUlSRS1NQVRD
SCBlcXVhbHMgdCBtZWFucyB0aGF0IGFuIGV4YWN0IG1hdGNoIGlzIHJlcXVpcmVkLgpISVNUT1JZ
IGlzIHRoZSBzeW1ib2wgb2YgdGhlIGhpc3RvcnkgdmFyaWFibGUuCkRFRkFVTFQgaXMgdGhlIGRl
ZmF1bHQgc2VsZWN0ZWQgdmFsdWUuCkFERC1ISVNUT1JZIGlzIGEgbGlzdCBvZiBpdGVtcyB0byBh
ZGQgdG8gdGhlIGhpc3RvcnkuCkNBVEVHT1JZIGlzIHRoZSBjb21wbGV0aW9uIGNhdGVnb3J5LgpT
T1JUIHNob3VsZCBiZSBzZXQgdG8gbmlsIGlmIHRoZSBjYW5kaWRhdGVzIGFyZSBhbHJlYWR5IHNv
cnRlZC4KTE9PS1VQIGlzIGEgZnVuY3Rpb24gd2hpY2ggaXMgYXBwbGllZCB0byB0aGUgcmVzdWx0
LgpBTk5PVEFURSBpcyB0aGUgYW5ub3RhdGlvbiBmdW5jdGlvbi4KSU5JVElBTCBpcyBpbml0aWFs
IGlucHV0LgpERUZBVUxULVRPUCBtdXN0IGJlIG5pbCBpZiB0aGUgZGVmYXVsdCBjYW5kaWRhdGUg
c2hvdWxkIG5vdCBiZSBtb3ZlZCB0byB0aGUgdG9wLgpQUkVWSUVXIGlzIGEgcHJldmlldyBmdW5j
dGlvbiwgc2VlIGBjb25zdWx0LS13aXRoLXByZXZpZXcnLgpQUkVWSUVXLUtFWSBhcmUgdGhlIHBy
ZXZpZXcga2V5cyAobmlsLCAnYW55LCBhIHNpbmdsZSBrZXkgb3IgYSBsaXN0IG9mIGtleXMpLgpO
QVJST1cgaXMgYW4gYWxpc3Qgb2YgbmFycm93aW5nIHByZWZpeCBzdHJpbmdzIGFuZCBkZXNjcmlw
dGlvbi4KS0VZTUFQIGlzIGEgY29tbWFuZC1zcGVjaWZpYyBrZXltYXAuIgogIDs7IHN1cHBvcnRl
ZCB0eXBlcwogIChjbC1hc3NlcnQgKG9yIChmdW5jdGlvbnAgY2FuZGlkYXRlcykgICAgIDs7IGFz
eW5jIHRhYmxlCiAgICAgICAgICAgICAgICAgKG5vdCBjYW5kaWRhdGVzKSAgICAgICAgICAgOzsg
bmlsLCBlbXB0eSBsaXN0CiAgICAgICAgICAgICAgICAgKG9iYXJyYXlwIGNhbmRpZGF0ZXMpICAg
ICAgOzsgb2JhcnJheQogICAgICAgICAgICAgICAgIChzdHJpbmdwIChjYXIgY2FuZGlkYXRlcykp
IDs7IHN0cmluZyBsaXN0CiAgICAgICAgICAgICAgICAgKHN5bWJvbHAgKGNhciBjYW5kaWRhdGVz
KSkgOzsgc3ltYm9sIGxpc3QKICAgICAgICAgICAgICAgICAoY29uc3AgKGNhciBjYW5kaWRhdGVz
KSkpKSA7OyBhbGlzdAogIChpZ25vcmUgZGVmYXVsdC10b3AgbmFycm93IGFkZC1oaXN0b3J5IGtl
eW1hcCkKICAoY29uc3VsdC0tcmVhZC1kZWZhdWx0cwogICAocHJldmlldy1rZXkgY29uc3VsdC1w
cmV2aWV3LWtleSkKICAgKHNvcnQgdCkKICAgKGRlZmF1bHQtdG9wIHQpCiAgIChsb29rdXAgKGxh
bWJkYSAoX2lucHV0IF9jYW5kcyB4KSB4KSkpCiAgKGNvbnN1bHQtLW1pbmlidWZmZXItd2l0aC1z
ZXR1cC1ob29rCiAgICAgICg6YXBwZW5kIChsYW1iZGEgKCkgKGFwcGx5ICMnY29uc3VsdC0tcmVh
ZC1zZXR1cCBwcm9tcHQgY2FuZGlkYXRlcyBvcHRpb25zKSkpCiAgICAoY29uc3VsdC0td2l0aC1h
c3luYyAoYXN5bmMgY2FuZGlkYXRlcykKICAgICAgOzsgTk9URTogRG8gbm90IHVubmVjZXNzYXJp
bHkgbGV0LWJpbmQgdGhlIGxhbWJkYXMgdG8gYXZvaWQKICAgICAgOzsgb3ZlcmNhcHR1cmluZyBp
biB0aGUgaW50ZXJwcmV0ZXIuIFRoaXMgd2lsbCBtYWtlIGNsb3N1cmVzIGFuZCB0aGUKICAgICAg
OzsgbGFtYmRhIHN0cmluZyByZXByZXNlbnRhdGlvbiBsYXJnZXIsIHdoaWNoIG1ha2VzIGRlYnVn
Z2luZyBtdWNoIHdvcnNlLgogICAgICA7OyBGb3J0dW5hdGVseSB0aGUgb3ZlcmNhcHR1cmluZyBw
cm9ibGVtIGRvZXMgbm90IGFmZmVjdCB0aGUgYnl0ZWNvZGUKICAgICAgOzsgaW50ZXJwcmV0ZXIg
d2hpY2ggZG9lcyBhIHByb3BlciBzY29wZSBhbmFseWlzLgogICAgICAobGV0ICgocmVzdWx0CiAg
ICAgICAgICAgICAoY29uc3VsdC0td2l0aC1wcmV2aWV3IHByZXZpZXcta2V5IHByZXZpZXcKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoaW5wdXQgY2FuZCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBsb29rdXAgaW5wdXQg
KGZ1bmNhbGwgYXN5bmMgJ2dldCkgY2FuZCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhcHBseS1wYXJ0aWFsbHkgIydydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2Vz
cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdj
b25zdWx0LS1jb21wbGV0aW9uLWNhbmRpZGF0ZS1ob29rKQogICAgICAgICAgICAgICAoY29tcGxl
dGluZy1yZWFkIHByb21wdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEg
KHN0ciBwcmVkIGFjdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo
ZXEgYWN0aW9uICdtZXRhZGF0YSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBgKG1ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQCh3
aGVuIGFubm90YXRlIGAoKGFubm90YXRpb24tZnVuY3Rpb24gLiAsYW5ub3RhdGUpKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxAKHdoZW4gY2F0ZWdvcnkgYCgoY2F0
ZWdvcnkgLiAsY2F0ZWdvcnkpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICxAKHVubGVzcyBzb3J0ICcoKGN5Y2xlLXNvcnQtZnVuY3Rpb24gLiBpZGVudGl0eSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRp
c3BsYXktc29ydC1mdW5jdGlvbiAuIGlkZW50aXR5KSkpKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoY29tcGxldGUtd2l0aC1hY3Rpb24gYWN0aW9uIChmdW5jYWxsIGFzeW5j
ICdnZXQpIHN0ciBwcmVkKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZGlj
YXRlIHJlcXVpcmUtbWF0Y2ggaW5pdGlhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChpZiAoc3ltYm9scCBoaXN0b3J5KSBoaXN0b3J5IChjYWRyIGhpc3RvcnkpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQpKSkpCiAgICAgICAgKHBjYXNlLWV4aGF1c3Rp
dmUgaGlzdG9yeQogICAgICAgICAgKGAoOmlucHV0ICx2YXIpCiAgICAgICAgICAgKHNldCB2YXIg
KGNkciAoc3ltYm9sLXZhbHVlIHZhcikpKQogICAgICAgICAgIChhZGQtdG8taGlzdG9yeSB2YXIg
KGNkciByZXN1bHQpKSkKICAgICAgICAgICgocHJlZCBzeW1ib2xwKSkpCiAgICAgICAgKGNhciBy
ZXN1bHQpKSkpKQoKKGFkdmljZS1hZGQgIydjb25zdWx0LS1yZWFkIDpmaWx0ZXItYXJncyAjJ2Nv
bnN1bHQtLW1lcmdlLWNvbmZpZykKCjs7OzsgSW50ZXJuYWwgQVBJOiBjb25zdWx0LS1tdWx0aQoK
KGRlZnN1YnN0IGNvbnN1bHQtLW11bHRpLXNvdXJjZSAoc291cmNlcyBjYW5kKQogICJMb29rdXAg
c291cmNlIGZvciBDQU5EIGZyb20gU09VUkNFUyBsaXN0LiIKICAobnRoICgtIChhcmVmIGNhbmQg
MCkgY29uc3VsdC0tdG9mdS1jaGFyKSBzb3VyY2VzKSkKCihkZWZ1biBjb25zdWx0LS1tdWx0aS1w
cmVkaWNhdGUgKHNvdXJjZXMpCiAgIlJldHVybiBwcmVkaWNhdGUgZnVuY3Rpb24gdXNlZCBieSBg
Y29uc3VsdC0tbXVsdGknIHdpdGggU09VUkNFUy4iCiAgKGxhbWJkYSAoY2FuZCkKICAgIChsZXQq
ICgobmFycm93IChwbGlzdC1nZXQgKGNvbnN1bHQtLW11bHRpLXNvdXJjZSBzb3VyY2VzIGNhbmQp
IDpuYXJyb3cpKQogICAgICAgICAgICh0eXBlIChvciAoY2FyLXNhZmUgbmFycm93KSBuYXJyb3cg
LTEpKSkKICAgICAgKGlmIChlcSBjb25zdWx0LS1uYXJyb3cgMzIpIDs7IG5hcnJvd2VkIHRvIGhp
ZGRlbiBjYW5kaWRhdGVzCiAgICAgICAgICAoPSB0eXBlIDMyKQogICAgICAgIChhbmQKICAgICAg
ICAgKC89IHR5cGUgMzIpIDs7IG5vbi1oaWRkZW4gY2FuZGlkYXRlcwogICAgICAgICAob3IgKG5v
dCBjb25zdWx0LS1uYXJyb3cpICg9IHR5cGUgY29uc3VsdC0tbmFycm93KSkpKSkpKQoKKGRlZnVu
IGNvbnN1bHQtLW11bHRpLW5hcnJvdyAoc291cmNlcykKICAiUmV0dXJuIG5hcnJvdyBsaXN0IHVz
ZWQgYnkgYGNvbnN1bHQtLW11bHRpJyB3aXRoIFNPVVJDRVMuIgogIChkZWxxIG5pbCAobWFwY2Fy
IChsYW1iZGEgKHNyYykKICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChuYXJyb3cgKHBsaXN0
LWdldCBzcmMgOm5hcnJvdykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSAocGxp
c3QtZ2V0IHNyYyA6bmFtZSkpKQogICAgICAgICAgICAgICAgICAgICAgICAoY29uZAogICAgICAg
ICAgICAgICAgICAgICAgICAgKChjb25zcCBuYXJyb3cpIG5hcnJvdykKICAgICAgICAgICAgICAg
ICAgICAgICAgICgoYW5kIG5hcnJvdyBuYW1lKSAoY29ucyBuYXJyb3cgbmFtZSkpKSkpCiAgICAg
ICAgICAgICAgICAgICAgc291cmNlcykpKQoKKGRlZnVuIGNvbnN1bHQtLW11bHRpLWFubm90YXRl
IChzb3VyY2VzIG1heC1sZW4pCiAgIlJldHVybiBhbm5vdGF0aW9uIGZ1bmN0aW9uIHVzZWQgYnkg
YGNvbnN1bHQtLW11bHRpJyB3aXRoIFNPVVJDRVMuCgpNQVgtTEVOIGlzIHRoZSBtYXhpbXVtIGNh
bmRpZGF0ZSBsZW5ndGguIgogIChsYW1iZGEgKGNhbmQpCiAgICAobGV0KiAoKHNyYyAoY29uc3Vs
dC0tbXVsdGktc291cmNlIHNvdXJjZXMgY2FuZCkpCiAgICAgICAgICAgKGFubm90YXRlIChwbGlz
dC1nZXQgc3JjIDphbm5vdGF0ZSkpCiAgICAgICAgICAgKGFubiAoaWYgYW5ub3RhdGUKICAgICAg
ICAgICAgICAgICAgICAoZnVuY2FsbCBhbm5vdGF0ZSAoY2RyIChnZXQtdGV4dC1wcm9wZXJ0eSAw
ICdjb25zdWx0LW11bHRpIGNhbmQpKSkKICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBzcmMg
Om5hbWUpKSkpCiAgICAgICh3aGVuIGFubgogICAgICAgIChjb25jYXQgKHByb3BlcnRpemUgIiAi
ICdkaXNwbGF5IGAoc3BhY2UgOmFsaWduLXRvICgrIGxlZnQgLG1heC1sZW4pKSkgYW5uKSkpKSkK
CihkZWZ1biBjb25zdWx0LS1tdWx0aS1sb29rdXAgKHNvdXJjZXMpCiAgIkxvb2t1cCBmdW5jdGlv
biB1c2VkIGJ5IGBjb25zdWx0LS1tdWx0aScgd2l0aCBTT1VSQ0VTLiIKICAobGFtYmRhIChfIGNh
bmRpZGF0ZXMgY2FuZCkKICAgIChpZi1sZXQgKGZvdW5kIChtZW1iZXIgY2FuZCBjYW5kaWRhdGVz
KSkKICAgICAgICAoY29ucyAoY2RyIChnZXQtdGV4dC1wcm9wZXJ0eSAwICdjb25zdWx0LW11bHRp
IChjYXIgZm91bmQpKSkKICAgICAgICAgICAgICAoY29uc3VsdC0tbXVsdGktc291cmNlIHNvdXJj
ZXMgY2FuZCkpCiAgICAgICh1bmxlc3MgKHN0cmluZy1ibGFuay1wIGNhbmQpCiAgICAgICAgKGxp
c3QgY2FuZCkpKSkpCgooZGVmdW4gY29uc3VsdC0tbXVsdGktY2FuZGlkYXRlcyAoc291cmNlcykK
ICAiUmV0dXJuIGNhbmRpZGF0ZXMgZnJvbSBTT1VSQ0VTIGZvciBgY29uc3VsdC0tbXVsdGknLiIK
ICAobGV0ICgoaWR4IDApIChtYXgtbGVuIDApIChjYW5kaWRhdGVzKSkKICAgIChkb2xpc3QgKHNy
YyBzb3VyY2VzIChjb25zICgrIDMgbWF4LWxlbikgKG5yZXZlcnNlIGNhbmRpZGF0ZXMpKSkKICAg
ICAgKGxldCogKChmYWNlIChwbGlzdC1nZXQgc3JjIDpmYWNlKSkKICAgICAgICAgICAgIChjYXQg
KHBsaXN0LWdldCBzcmMgOmNhdGVnb3J5KSkKICAgICAgICAgICAgIChpdGVtcyAocGxpc3QtZ2V0
IHNyYyA6aXRlbXMpKQogICAgICAgICAgICAgKGl0ZW1zIChpZiAoZnVuY3Rpb25wIGl0ZW1zKSAo
ZnVuY2FsbCBpdGVtcykgaXRlbXMpKSkKICAgICAgICAoZG9saXN0IChpdGVtIGl0ZW1zKQogICAg
ICAgICAgKGxldCogKChjYW5kIChjb25jYXQgKGNoYXItdG8tc3RyaW5nICgrIGNvbnN1bHQtLXRv
ZnUtY2hhciBpZHgpKSBpdGVtKSkKICAgICAgICAgICAgICAgICAobGVuIChsZW5ndGggY2FuZCkp
KQogICAgICAgICAgICAoYWRkLXRleHQtcHJvcGVydGllcyAwIDEgKGxpc3QgJ2ludmlzaWJsZSB0
ICdjb25zdWx0LW11bHRpIChjb25zIGNhdCBpdGVtKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2FuZCkKICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IDEgbGVuICdmYWNl
IGZhY2UgY2FuZCkKICAgICAgICAgICAgKHdoZW4gKD4gbGVuIG1heC1sZW4pIChzZXRxIG1heC1s
ZW4gbGVuKSkKICAgICAgICAgICAgKHB1c2ggY2FuZCBjYW5kaWRhdGVzKSkpKQogICAgICAoc2V0
cSBpZHggKDErIGlkeCkpKSkpCgooZGVmdW4gY29uc3VsdC0tbXVsdGktcHJlcHJvY2VzcyAoc291
cmNlcykKICAiUHJlcHJvY2VzcyBTT1VSQ0VTLCBmaWx0ZXIgYnkgcHJlZGljYXRlLiIKICAoc2Vx
LWZpbHRlciAobGFtYmRhIChzcmMpCiAgICAgICAgICAgICAgICAoaWYtbGV0IChwcmVkIChwbGlz
dC1nZXQgc3JjIDpwcmVkaWNhdGUpKQogICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIHByZWQp
CiAgICAgICAgICAgICAgICAgIHQpKQogICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoc3Jj
KQogICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN5bWJvbHAgc3JjKSAoc3ltYm9sLXZhbHVl
IHNyYykgc3JjKSkKICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZXMpKSkKCihkZWZ1biBjb25z
dWx0LS1tdWx0aSAocHJvbXB0IHNvdXJjZXMgJnJlc3Qgb3B0aW9ucykKICAiU2VsZWN0IGZyb20g
Y2FuZGlkYXRlcyB0YWtlbiBmcm9tIGEgbGlzdCBvZiBTT1VSQ0VTLgoKUFJPTVBUIGlzIHRoZSBt
aW5pYnVmZmVyIHByb21wdC4KT1BUSU9OUyBpcyB0aGUgcGxpc3Qgb2Ygb3B0aW9ucyBwYXNzZWQg
dG8gYGNvbnN1bHQtLXJlYWQnLgoKVGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNlbGVjdGVkIGNh
bmRpZGF0ZSBpbiB0aGUgZm9ybSAoY29ucyBjYW5kaWRhdGUKc291cmNlLXZhbHVlKS4gVGhlIHNv
dXJjZXMgb2YgdGhlIHNvdXJjZSBsaXN0IGNhbiBlaXRoZXIgYmUgc3ltYm9scyBvZiBzb3VyY2UK
dmFyaWFibGVzIG9yIHNvdXJjZSB2YWx1ZXMuIFNvdXJjZSB2YWx1ZXMgbXVzdCBiZSBwbGlzdHMg
d2l0aCB0aGUgZm9sbG93aW5nCmZpZWxkczoKClJlcXVpcmVkIHNvdXJjZSBmaWVsZHM6CiogOmNh
dGVnb3J5IC0gQ29tcGxldGlvbiBjYXRlZ29yeS4KKiA6aXRlbXMgLSBMaXN0IG9mIGNhbmRpZGF0
ZSBzdHJpbmdzIG9yIGZ1bmN0aW9uIHJldHVybmluZyBsaXN0IG9mIHN0cmluZ3MuCgpPcHRpb25h
bCBzb3VyY2UgZmllbGRzOgoqIDpuYW1lIC0gTmFtZSBvZiB0aGUgc291cmNlLCB1c2VkIGZvciBu
YXJyb3dpbmcgYW5kIGFubm90YXRpb24uCiogOm5hcnJvdyAtIE5hcnJvd2luZyBjaGFyYWN0ZXIg
b3IgKGNoYXJhY3RlciAuIHN0cmluZykgcGFpci4KKiA6cHJlZGljYXRlIC0gRnVuY3Rpb24gd2hp
Y2ggbXVzdCByZXR1cm4gdCBpZiB0aGUgc291cmNlIGlzIGVuYWJsZWQuCiogOmZhY2UgLSBGYWNl
IHVzZWQgZm9yIGhpZ2hsaWdodGluZyB0aGUgY2FuZGlkYXRlcy4KKiA6YW5ub3RhdGUgLSBBbm5v
dGF0aW9uIGZ1bmN0aW9uIGNhbGxlZCBmb3IgZWFjaCBjYW5kaWRhdGUsIHJldHVybnMgc3RyaW5n
LgoqIDpoaXN0b3J5IC0gTmFtZSBvZiBoaXN0b3J5IHZhcmlhYmxlIHRvIGFkZCBzZWxlY3RlZCBj
YW5kaWRhdGUuCiogQXJiaXRyYXJ5IG90aGVyIGZpZWxkcyBzcGVjaWZpYyB0byB5b3VyIHVzZSBj
YXNlLiIKICAobGV0KiAoKHNvdXJjZXMgKGNvbnN1bHQtLW11bHRpLXByZXByb2Nlc3Mgc291cmNl
cykpCiAgICAgICAgIChjYW5kaWRhdGVzCiAgICAgICAgICAoY29uc3VsdC0td2l0aC1pbmNyZWFz
ZWQtZ2MKICAgICAgICAgICAobGV0ICgoY29uc3VsdC0tY2FjaGUpKQogICAgICAgICAgICAgKGNv
bnN1bHQtLW11bHRpLWNhbmRpZGF0ZXMgc291cmNlcykpKSkKICAgICAgICAgKHNlbGVjdGVkIChh
cHBseSAjJ2NvbnN1bHQtLXJlYWQgcHJvbXB0CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNk
ciBjYW5kaWRhdGVzKQogICAgICAgICAgICAgICAgICAgICAgICAgIDpjYXRlZ29yeSAgJ2NvbnN1
bHQtbXVsdGkKICAgICAgICAgICAgICAgICAgICAgICAgICA6cHJlZGljYXRlIChjb25zdWx0LS1t
dWx0aS1wcmVkaWNhdGUgc291cmNlcykKICAgICAgICAgICAgICAgICAgICAgICAgICA6bmFycm93
ICAgIChjb25zdWx0LS1tdWx0aS1uYXJyb3cgc291cmNlcykKICAgICAgICAgICAgICAgICAgICAg
ICAgICA6YW5ub3RhdGUgIChjb25zdWx0LS1tdWx0aS1hbm5vdGF0ZSBzb3VyY2VzIChjYXIgY2Fu
ZGlkYXRlcykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgOmxvb2t1cCAgICAoY29uc3VsdC0t
bXVsdGktbG9va3VwIHNvdXJjZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucykp
KQogICAgKHdoZW4tbGV0IChoaXN0b3J5IChwbGlzdC1nZXQgKGNkciBzZWxlY3RlZCkgOmhpc3Rv
cnkpKQogICAgICAoYWRkLXRvLWhpc3RvcnkgaGlzdG9yeSAoY2FyIHNlbGVjdGVkKSkpCiAgICBz
ZWxlY3RlZCkpCgo7Ozs7IEludGVybmFsIEFQSTogY29uc3VsdC0tcHJvbXB0CgooY2wtZGVmdW4g
Y29uc3VsdC0tcHJvbXB0IChwcm9tcHQgJmtleSBoaXN0b3J5IGFkZC1oaXN0b3J5IGluaXRpYWwg
ZGVmYXVsdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5bWFwIHByZXZpZXcg
KHByZXZpZXcta2V5IGNvbnN1bHQtcHJldmlldy1rZXkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodHJhbnNmb3JtIChsYW1iZGEgKF8geCkgeCkpKQogICJSZWFkIGZyb20gbWlu
aWJ1ZmZlci4KClBST01QVCBpcyB0aGUgc3RyaW5nIHRvIHByb21wdCB3aXRoLgpUUkFOU0ZPUk0g
aXMgYSBmdW5jdGlvbiB3aGljaCBpcyBhcHBsaWVkIHRvIHRoZSBjdXJyZW50IGlucHV0IHN0cmlu
Zy4KSElTVE9SWSBpcyB0aGUgc3ltYm9sIG9mIHRoZSBoaXN0b3J5IHZhcmlhYmxlLgpJTklUSUFM
IGlzIGluaXRpYWwgaW5wdXQuCkRFRkFVTFQgaXMgdGhlIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWUu
CkFERC1ISVNUT1JZIGlzIGEgbGlzdCBvZiBpdGVtcyB0byBhZGQgdG8gdGhlIGhpc3RvcnkuClBS
RVZJRVcgaXMgYSBwcmV2aWV3IGZ1bmN0aW9uLCBzZWUgYGNvbnN1bHQtLXdpdGgtcHJldmlldycu
ClBSRVZJRVctS0VZIGFyZSB0aGUgcHJldmlldyBrZXlzIChuaWwsICdhbnksIGEgc2luZ2xlIGtl
eSBvciBhIGxpc3Qgb2Yga2V5cykuCktFWU1BUCBpcyBhIGNvbW1hbmQtc3BlY2lmaWMga2V5bWFw
LiIKICAoY29uc3VsdC0tbWluaWJ1ZmZlci13aXRoLXNldHVwLWhvb2sKICAgICAgKDphcHBlbmQg
KGxhbWJkYSAoKQogICAgICAgICAgICAgICAgIChjb25zdWx0LS1zZXR1cC1rZXltYXAga2V5bWFw
IG5pbCBuaWwgcHJldmlldy1rZXkpCiAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLWFkZC1oaXN0
b3J5IGFkZC1oaXN0b3J5KSkpCiAgICAoY29uc3VsdC0td2l0aC1wcmV2aWV3IHByZXZpZXcta2V5
IHByZXZpZXcgdHJhbnNmb3JtICMnbWluaWJ1ZmZlci1jb250ZW50cy1uby1wcm9wZXJ0aWVzCiAg
ICAgIChyZWFkLWZyb20tbWluaWJ1ZmZlciBwcm9tcHQgaW5pdGlhbCBuaWwgbmlsIGhpc3Rvcnkg
ZGVmYXVsdCkpKSkKCihhZHZpY2UtYWRkICMnY29uc3VsdC0tcHJvbXB0IDpmaWx0ZXItYXJncyAj
J2NvbnN1bHQtLW1lcmdlLWNvbmZpZykKCjs7OzsgQ29tbWFuZHMKCjs7Ozs7IENvbW1hbmQ6IGNv
bnN1bHQtbXVsdGktb2NjdXIKCjs7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vcmF4b2Q1MDIvc2Vs
ZWN0cnVtL2lzc3Vlcy8yMjYKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtbXVsdGktb2Nj
dXIgKGJ1ZnMgcmVnZXhwICZvcHRpb25hbCBubGluZXMpCiAgIkltcHJvdmVkIHZlcnNpb24gb2Yg
YG11bHRpLW9jY3VyJyBiYXNlZCBvbiBgY29tcGxldGluZy1yZWFkLW11bHRpcGxlJy4KClNlZSBg
bXVsdGktb2NjdXInIGZvciB0aGUgbWVhbmluZyBvZiB0aGUgYXJndW1lbnRzIEJVRlMsIFJFR0VY
UCBhbmQgTkxJTkVTLiIKICAoaW50ZXJhY3RpdmUgKGNvbnMKICAgICAgICAgICAgICAgIChtYXBj
YXIgIydnZXQtYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgIChjb21wbGV0aW5nLXJlYWQt
bXVsdGlwbGUgIkJ1ZmZlcjogIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMnaW50ZXJuYWwtY29tcGxldGUtYnVmZmVyKSkKICAgICAgICAgICAgICAg
IChvY2N1ci1yZWFkLXByaW1hcnktYXJncykpKQogIChvY2N1ci0xIHJlZ2V4cCBubGluZXMgYnVm
cykpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LW91dGxpbmUKCihkZWZ1biBjb25zdWx0LS1vdXRs
aW5lLWNhbmRpZGF0ZXMgKCkKICAiUmV0dXJuIGFsaXN0IG9mIG91dGxpbmUgaGVhZGluZ3MgYW5k
IHBvc2l0aW9ucy4iCiAgKGNvbnN1bHQtLWZvcmJpZC1taW5pYnVmZmVyKQogIChjb25zdWx0LS1m
b250aWZ5LWFsbCkKICAobGV0KiAoKGxpbmUgKGxpbmUtbnVtYmVyLWF0LXBvcyAocG9pbnQtbWlu
KSBjb25zdWx0LWxpbmUtbnVtYmVycy13aWRlbikpCiAgICAgICAgIChoZWFkaW5nLXJlZ2V4cCAo
Y29uY2F0ICJeXFwoPzoiIG91dGxpbmUtcmVnZXhwICJcXCkiKSkKICAgICAgICAgKGNhbmRpZGF0
ZXMpKQogICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAg
ICAgICh3aGlsZSAoc2F2ZS1leGN1cnNpb24gKHJlLXNlYXJjaC1mb3J3YXJkIGhlYWRpbmctcmVn
ZXhwIG5pbCB0KSkKICAgICAgICAoc2V0cSBsaW5lICgrIGxpbmUgKGNvbnN1bHQtLWNvdW50LWxp
bmVzIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkKICAgICAgICAocHVzaCAobGlzdCAocG9pbnQtbWFy
a2VyKSBsaW5lCiAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVn
aW5uaW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24pKSkKICAgICAgICAgICAgICBjYW5k
aWRhdGVzKQogICAgICAgICh1bmxlc3MgKGVvYnApIChmb3J3YXJkLWNoYXIgMSkpKSkKICAgICh1
bmxlc3MgY2FuZGlkYXRlcwogICAgICAodXNlci1lcnJvciAiTm8gaGVhZGluZ3MiKSkKICAgIChj
b25zdWx0LS1hZGQtbGluZS1udW1iZXIgbGluZSAobnJldmVyc2UgY2FuZGlkYXRlcykpKSkKCjs7
OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LW91dGxpbmUgKCkKICAiSnVtcCB0byBhbiBvdXRs
aW5lIGhlYWRpbmcsIG9idGFpbmVkIGJ5IG1hdGNoaW5nIGFnYWluc3QgYG91dGxpbmUtcmVnZXhw
Jy4KClRoaXMgY29tbWFuZCBzdXBwb3J0cyBjYW5kaWRhdGUgcHJldmlldy4KVGhlIHN5bWJvbCBh
dCBwb2ludCBpcyBhZGRlZCB0byB0aGUgZnV0dXJlIGhpc3RvcnkuIgogIChpbnRlcmFjdGl2ZSkK
ICAoY29uc3VsdC0tanVtcAogICAoY29uc3VsdC0tcmVhZAogICAgIkdvIHRvIGhlYWRpbmc6ICIK
ICAgIChjb25zdWx0LS13aXRoLWluY3JlYXNlZC1nYyAoY29uc3VsdC0tb3V0bGluZS1jYW5kaWRh
dGVzKSkKICAgIDpjYXRlZ29yeSAnY29uc3VsdC1sb2NhdGlvbgogICAgOnNvcnQgbmlsCiAgICA6
cmVxdWlyZS1tYXRjaCB0CiAgICA6bG9va3VwICMnY29uc3VsdC0tbGluZS1tYXRjaAogICAgOmhp
c3RvcnkgJyg6aW5wdXQgY29uc3VsdC0tbGluZS1oaXN0b3J5KQogICAgOmFkZC1oaXN0b3J5ICh0
aGluZy1hdC1wb2ludCAnc3ltYm9sKQogICAgOnByZXZpZXcgKGNvbnN1bHQtLXByZXZpZXctcG9z
aXRpb24pKSkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LWVycm9yCgooZGVmdW4gY29uc3VsdC0t
ZXJyb3ItY2FuZGlkYXRlcyAoKQogICJSZXR1cm4gYWxpc3Qgb2YgZXJyb3JzIGFuZCBwb3NpdGlv
bnMuIgogIChsZXQgKChjYW5kaWRhdGVzKQogICAgICAgIChwb3MgKHBvaW50LW1pbikpKQogICAg
KHNhdmUtZXhjdXJzaW9uCiAgICAgICh3aGlsZSAoc2V0cSBwb3MgKGNvbXBpbGF0aW9uLW5leHQt
c2luZ2xlLXByb3BlcnR5LWNoYW5nZSBwb3MgJ2NvbXBpbGF0aW9uLW1lc3NhZ2UpKQogICAgICAg
ICh3aGVuLWxldCogKChtc2cgKGdldC10ZXh0LXByb3BlcnR5IHBvcyAnY29tcGlsYXRpb24tbWVz
c2FnZSkpCiAgICAgICAgICAgICAgICAgICAgKGxvYyAoY29tcGlsYXRpb24tLW1lc3NhZ2UtPmxv
YyBtc2cpKSkKICAgICAgICAgIChnb3RvLWNoYXIgcG9zKQogICAgICAgICAgKHB1c2ggKGxpc3QK
ICAgICAgICAgICAgICAgICAoY29uc3VsdC0tZm9udC1sb2NrIChidWZmZXItc3Vic3RyaW5nIHBv
cyAobGluZS1lbmQtcG9zaXRpb24pKSkKICAgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1
ZmZlcgogICAgICAgICAgICAgICAgICAgICA7OyB0YWtlbiBmcm9tIGNvbXBpbGUuZWwKICAgICAg
ICAgICAgICAgICAgICAgKGFwcGx5ICMnY29tcGlsYXRpb24tZmluZC1maWxlCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAocG9pbnQtbWFya2VyKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNhYXIgKGNvbXBpbGF0aW9uLS1sb2MtPmZpbGUtc3RydWN0IGxvYykpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY2FkYXIgKGNvbXBpbGF0aW9uLS1sb2MtPmZpbGUtc3RydWN0IGxv
YykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tcGlsYXRpb24tLWZpbGUtc3RydWN0
LT5mb3JtYXRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBpbGF0aW9uLS1sb2Mt
PmZpbGUtc3RydWN0IGxvYykpKQogICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQt
bWluKSkKICAgICAgICAgICAgICAgICAgIDs7IGxvY2F0aW9uIG1pZ2h0IGJlIGludmFsaWQgYnkg
bm93CiAgICAgICAgICAgICAgICAgICAoaWdub3JlLWVycm9ycwogICAgICAgICAgICAgICAgICAg
ICAoZm9yd2FyZC1saW5lICgtIChjb21waWxhdGlvbi0tbG9jLT5saW5lIGxvYykgMSkpCiAgICAg
ICAgICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgKGNvbXBpbGF0aW9uLS1sb2MtPmNvbCBsb2Mp
KSkKICAgICAgICAgICAgICAgICAgIChwb2ludC1tYXJrZXIpKQogICAgICAgICAgICAgICAgIChw
Y2FzZSAoY29tcGlsYXRpb24tLW1lc3NhZ2UtPnR5cGUgbXNnKQogICAgICAgICAgICAgICAgICAg
KDAgP2kpCiAgICAgICAgICAgICAgICAgICAoMSA/dykKICAgICAgICAgICAgICAgICAgIChfID9l
KSkpCiAgICAgICAgICAgICAgICBjYW5kaWRhdGVzKSkpKQogICAgKG5yZXZlcnNlIGNhbmRpZGF0
ZXMpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LWVycm9yICgpCiAgIkp1bXAgdG8g
YSBjb21waWxhdGlvbiBlcnJvciBpbiB0aGUgY3VycmVudCBidWZmZXIuCgpUaGlzIGNvbW1hbmQg
d29ya3MgaW4gY29tcGlsYXRpb24gYnVmZmVycyBhbmQgZ3JlcCBidWZmZXJzLgpUaGUgY29tbWFu
ZCBzdXBwb3J0cyBwcmV2aWV3IG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZXJyb3IuIgogIChp
bnRlcmFjdGl2ZSkKICAodW5sZXNzIChjb21waWxhdGlvbi1idWZmZXItcCAoY3VycmVudC1idWZm
ZXIpKQogICAgKHVzZXItZXJyb3IgIk5vdCBhIGNvbXBpbGF0aW9uIGJ1ZmZlciIpKQogIChjb25z
dWx0LS1qdW1wCiAgIChjb25zdWx0LS1yZWFkCiAgICAiR28gdG8gZXJyb3I6ICIKICAgIChjb25z
dWx0LS13aXRoLWluY3JlYXNlZC1nYyAoY29uc3VsdC0tZXJyb3ItY2FuZGlkYXRlcykpCiAgICA6
Y2F0ZWdvcnkgJ2NvbnN1bHQtZXJyb3IKICAgIDpzb3J0IG5pbAogICAgOnJlcXVpcmUtbWF0Y2gg
dAogICAgOmxvb2t1cCAjJ2NvbnN1bHQtLWxvb2t1cC1jYWRyCiAgICA6bmFycm93IGAoLChsYW1i
ZGEgKGNhbmQpICg9IChjYWRkciBjYW5kKSBjb25zdWx0LS1uYXJyb3cpKQogICAgICAgICAgICAg
ICg/ZSAuICJFcnJvciIpCiAgICAgICAgICAgICAgKD93IC4gIldhcm5pbmciKQogICAgICAgICAg
ICAgICg/aSAuICJJbmZvIikpCiAgICA6aGlzdG9yeSAnKDppbnB1dCBjb25zdWx0LS1lcnJvci1o
aXN0b3J5KQogICAgOnByZXZpZXcKICAgIChjb25zdWx0LS1wcmV2aWV3LXBvc2l0aW9uICdjb25z
dWx0LXByZXZpZXctZXJyb3IpKSkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LW1hcmsKCihkZWZ1
biBjb25zdWx0LS1tYXJrLWNhbmRpZGF0ZXMgKCkKICAiUmV0dXJuIGFsaXN0IG9mIGxpbmVzIGNv
bnRhaW5pbmcgbWFya2Vycy4KVGhlIGFsaXN0IGNvbnRhaW5zIChzdHJpbmcgLiBwb3NpdGlvbikg
cGFpcnMuIgogIChjb25zdWx0LS1mb3JiaWQtbWluaWJ1ZmZlcikKICAodW5sZXNzIChtYXJrZXIt
cG9zaXRpb24gKG1hcmstbWFya2VyKSkKICAgICh1c2VyLWVycm9yICJObyBtYXJrcyIpKQogIChj
b25zdWx0LS1mb250aWZ5LWFsbCkKICAobGV0KiAoKG1heC1saW5lIDApCiAgICAgICAgIChjYW5k
aWRhdGVzKSkKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoZG9saXN0IChtYXJrZXIgKGNvbnMg
KG1hcmstbWFya2VyKSBtYXJrLXJpbmcpKQogICAgICAgIChsZXQgKChwb3MgKG1hcmtlci1wb3Np
dGlvbiBtYXJrZXIpKSkKICAgICAgICAgICh3aGVuIChjb25zdWx0LS1pbi1yYW5nZS1wIHBvcykK
ICAgICAgICAgICAgKGdvdG8tY2hhciBwb3MpCiAgICAgICAgICAgIDs7IGBsaW5lLW51bWJlci1h
dC1wb3MnIGlzIGEgdmVyeSBzbG93IGZ1bmN0aW9uLCB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQg
ZXZlcnl3aGVyZS4KICAgICAgICAgICAgOzsgSG93ZXZlciBpbiB0aGlzIGNhc2UgdGhlIHNsb3cg
bGluZS1udW1iZXItYXQtcG9zIGRvZXMgbm90IGh1cnQgbXVjaCwgc2luY2UKICAgICAgICAgICAg
OzsgdGhlIG1hcmsgcmluZyBpcyB1c3VhbGx5IHNtYWxsIHNpbmNlIGl0IGlzIGxpbWl0ZWQgYnkg
YG1hcmstcmluZy1tYXgnLgogICAgICAgICAgICAobGV0ICgobGluZSAobGluZS1udW1iZXItYXQt
cG9zIHBvcyBjb25zdWx0LWxpbmUtbnVtYmVycy13aWRlbikpKQogICAgICAgICAgICAgIChzZXRx
IG1heC1saW5lIChtYXggbGluZSBtYXgtbGluZSkpCiAgICAgICAgICAgICAgKHB1c2ggKGxpc3Qg
bWFya2VyIGxpbmUgKGNvbnN1bHQtLWxpbmUtd2l0aC1jdXJzb3IgbWFya2VyKSkKICAgICAgICAg
ICAgICAgICAgICBjYW5kaWRhdGVzKSkpKSkpCiAgICAobnJldmVyc2UgKGNvbnN1bHQtLXJlbW92
ZS1kdXBzIChjb25zdWx0LS1hZGQtbGluZS1udW1iZXIgbWF4LWxpbmUgY2FuZGlkYXRlcykpKSkp
Cgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1tYXJrICgpCiAgIkp1bXAgdG8gYSBtYXJr
ZXIgaW4gdGhlIGJ1ZmZlci1sb2NhbCBgbWFyay1yaW5nJy4KClRoZSBjb21tYW5kIHN1cHBvcnRz
IHByZXZpZXcgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBtYXJrZXIgcG9zaXRpb24uClRoZSBz
eW1ib2wgYXQgcG9pbnQgaXMgYWRkZWQgdG8gdGhlIGZ1dHVyZSBoaXN0b3J5LiIKICAoaW50ZXJh
Y3RpdmUpCiAgKGNvbnN1bHQtLWp1bXAKICAgKGNvbnN1bHQtLXJlYWQKICAgICJHbyB0byBtYXJr
OiAiCiAgICAoY29uc3VsdC0td2l0aC1pbmNyZWFzZWQtZ2MgKGNvbnN1bHQtLW1hcmstY2FuZGlk
YXRlcykpCiAgICA6Y2F0ZWdvcnkgJ2NvbnN1bHQtbG9jYXRpb24KICAgIDpzb3J0IG5pbAogICAg
OnJlcXVpcmUtbWF0Y2ggdAogICAgOmxvb2t1cCAjJ2NvbnN1bHQtLWxvb2t1cC1sb2NhdGlvbgog
ICAgOmhpc3RvcnkgJyg6aW5wdXQgY29uc3VsdC0tbGluZS1oaXN0b3J5KQogICAgOmFkZC1oaXN0
b3J5ICh0aGluZy1hdC1wb2ludCAnc3ltYm9sKQogICAgOnByZXZpZXcgKGNvbnN1bHQtLXByZXZp
ZXctcG9zaXRpb24pKSkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LWdsb2JhbC1tYXJrCgooZGVm
dW4gY29uc3VsdC0tZ2xvYmFsLW1hcmstY2FuZGlkYXRlcyAoKQogICJSZXR1cm4gYWxpc3Qgb2Yg
bGluZXMgY29udGFpbmluZyBtYXJrZXJzLgoKVGhlIGFsaXN0IGNvbnRhaW5zIChzdHJpbmcgLiBw
b3NpdGlvbikgcGFpcnMuIgogIChjb25zdWx0LS1mb3JiaWQtbWluaWJ1ZmZlcikKICAobGV0ICgo
Y2FuZGlkYXRlcykpCiAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgKGRvbGlzdCAobWFya2VyIGds
b2JhbC1tYXJrLXJpbmcpCiAgICAgICAgKGxldCAoKHBvcyAobWFya2VyLXBvc2l0aW9uIG1hcmtl
cikpCiAgICAgICAgICAgICAgKGJ1ZiAobWFya2VyLWJ1ZmZlciBtYXJrZXIpKSkKICAgICAgICAg
ICh3aGVuIChhbmQgcG9zIChidWZmZXItbGl2ZS1wIGJ1ZikgKG5vdCAobWluaWJ1ZmZlcnAgYnVm
KSkpCiAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZgogICAgICAgICAgICAgICh3
aGVuIChjb25zdWx0LS1pbi1yYW5nZS1wIHBvcykKICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg
cG9zKQogICAgICAgICAgICAgICAgOzsgYGxpbmUtbnVtYmVyLWF0LXBvcycgaXMgc2xvdywgc2Vl
IGNvbW1lbnQgaW4gYGNvbnN1bHQtLW1hcmstY2FuZGlkYXRlcycuCiAgICAgICAgICAgICAgICAo
bGV0KiAoKGxpbmUgKGxpbmUtbnVtYmVyLWF0LXBvcyBwb3MgY29uc3VsdC1saW5lLW51bWJlcnMt
d2lkZW4pKQogICAgICAgICAgICAgICAgICAgICAgIChiZWdpbiAobGluZS1iZWdpbm5pbmctcG9z
aXRpb24pKQogICAgICAgICAgICAgICAgICAgICAgIChlbmQgKGxpbmUtZW5kLXBvc2l0aW9uKSkK
ICAgICAgICAgICAgICAgICAgICAgICAobG9jIChjb25zdWx0LS1mb3JtYXQtbG9jYXRpb24gKGJ1
ZmZlci1uYW1lIGJ1ZikgbGluZSkpKQogICAgICAgICAgICAgICAgICAoY29uc3VsdC0tZm9udGlm
eS1yZWdpb24gYmVnaW4gZW5kKQogICAgICAgICAgICAgICAgICAocHVzaCAoY29uY2F0CiAgICAg
ICAgICAgICAgICAgICAgICAgICAocHJvcGVydGl6ZQogICAgICAgICAgICAgICAgICAgICAgICAg
IChjb25jYXQgKHByb3BlcnRpemUgKGNvbnN1bHQtLWVuY29kZS1sb2NhdGlvbiBtYXJrZXIpICdp
bnZpc2libGUgdCkgbG9jKQogICAgICAgICAgICAgICAgICAgICAgICAgICdjb25zdWx0LWxvY2F0
aW9uIChjb25zIG1hcmtlciBsaW5lKSkKICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdWx0
LS1yZWdpb24td2l0aC1jdXJzb3IgYmVnaW4gZW5kIG1hcmtlcikpCiAgICAgICAgICAgICAgICAg
ICAgICAgIGNhbmRpZGF0ZXMpKSkpKSkpKQogICAgKHVubGVzcyBjYW5kaWRhdGVzCiAgICAgICh1
c2VyLWVycm9yICJObyBnbG9iYWwgbWFya3MiKSkKICAgIChucmV2ZXJzZSAoY29uc3VsdC0tcmVt
b3ZlLWR1cHMgY2FuZGlkYXRlcykpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LWds
b2JhbC1tYXJrICgpCiAgIkp1bXAgdG8gYSBtYXJrZXIgaW4gYGdsb2JhbC1tYXJrLXJpbmcnLgoK
VGhlIGNvbW1hbmQgc3VwcG9ydHMgcHJldmlldyBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG1h
cmtlciBwb3NpdGlvbi4KVGhlIHN5bWJvbCBhdCBwb2ludCBpcyBhZGRlZCB0byB0aGUgZnV0dXJl
IGhpc3RvcnkuIgogIChpbnRlcmFjdGl2ZSkKICAoY29uc3VsdC0tanVtcAogICAoY29uc3VsdC0t
cmVhZAogICAgIkdvIHRvIGdsb2JhbCBtYXJrOiAiCiAgICAoY29uc3VsdC0td2l0aC1pbmNyZWFz
ZWQtZ2MgKGNvbnN1bHQtLWdsb2JhbC1tYXJrLWNhbmRpZGF0ZXMpKQogICAgOzsgV2hpbGUgYGNv
bnN1bHQtZ2xvYmFsLW1hcmsnIGZvcm1hdHMgdGhlIGNhbmRpZGF0ZXMgaW4gZ3JlcC1saWtlCiAg
ICA7OyBzdHlsZSwgd2UgYXJlIHN0aWxsIG5vdCB1c2luZyB0aGUgJ3hyZWYtbG9jYXRpb24gY2F0
ZWdvcnksCiAgICA7OyBzaW5jZSB0aGUgbG9jYXRpb25zIGFyZSBmb3JtYXR0ZWQgdXNpbmcgYWJi
cmV2aWF0ZWQgYnVmZmVyCiAgICA7OyBuYW1lcyBpbnN0ZWFkIG9mIGZpbGUgcGF0aHMuIElmIHRo
ZSAneHJlZi1sb2NhdGlvbiBjYXRlZ29yeQogICAgOzsgd291bGQgYmUgdXNlZCwgRW1iYXJrIHdv
dWxkIGVtYmFyay1leHBvcnQgdG8gYSBicm9rZW4gZ3JlcC1tb2RlCiAgICA7OyBidWZmZXIuIEJ5
IHVzaW5nIHRoZSAnY29uc3VsdC1sb2NhdGlvbiBjYXRlZ29yeSwgRW1iYXJrIHdpbGwKICAgIDs7
IGV4cG9ydCB0byBhbiBvY2N1ciBidWZmZXIgaW5zdGVhZCEgU2VlIGFsc28KICAgIDs7IGh0dHBz
Oi8vZ2l0aHViLmNvbS9taW5hZC9jb25zdWx0L2lzc3Vlcy8xMDcuCiAgICA6Y2F0ZWdvcnkgJ2Nv
bnN1bHQtbG9jYXRpb24KICAgIDpzb3J0IG5pbAogICAgOnJlcXVpcmUtbWF0Y2ggdAogICAgOmxv
b2t1cCAjJ2NvbnN1bHQtLWxvb2t1cC1sb2NhdGlvbgogICAgOmhpc3RvcnkgJyg6aW5wdXQgY29u
c3VsdC0tbGluZS1oaXN0b3J5KQogICAgOmFkZC1oaXN0b3J5ICh0aGluZy1hdC1wb2ludCAnc3lt
Ym9sKQogICAgOnByZXZpZXcgKGNvbnN1bHQtLXByZXZpZXctcG9zaXRpb24pKSkpCgo7Ozs7OyBD
b21tYW5kOiBjb25zdWx0LWxpbmUKCihkZWZ1biBjb25zdWx0LS1saW5lLWNhbmRpZGF0ZXMgKCkK
ICAiUmV0dXJuIGFsaXN0IG9mIGxpbmVzIGFuZCBwb3NpdGlvbnMuIgogIChjb25zdWx0LS1mb3Ji
aWQtbWluaWJ1ZmZlcikKICAoY29uc3VsdC0tZm9udGlmeS1hbGwpCiAgKGxldCogKChkZWZhdWx0
LWNhbmQpCiAgICAgICAgIChjYW5kaWRhdGVzKQogICAgICAgICAobGluZSAobGluZS1udW1iZXIt
YXQtcG9zIChwb2ludC1taW4pIGNvbnN1bHQtbGluZS1udW1iZXJzLXdpZGVuKSkKICAgICAgICAg
KGN1cnItbGluZSAobGluZS1udW1iZXItYXQtcG9zIChwb2ludCkgY29uc3VsdC1saW5lLW51bWJl
cnMtd2lkZW4pKQogICAgICAgICAobGluZS13aWR0aCAobGVuZ3RoIChudW1iZXItdG8tc3RyaW5n
IChsaW5lLW51bWJlci1hdC1wb3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHBvaW50LW1heCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3VsdC1saW5lLW51bWJlcnMtd2lkZW4pKSkpCiAgICAgICAgIChk
ZWZhdWx0LWNhbmQtZGlzdCBtb3N0LXBvc2l0aXZlLWZpeG51bSkpCiAgICAoY29uc3VsdC0tZWFj
aC1saW5lIGJlZyBlbmQKICAgICAgKGxldCAoKHN0ciAoYnVmZmVyLXN1YnN0cmluZyBiZWcgZW5k
KSkpCiAgICAgICAgKHVubGVzcyAoc3RyaW5nLWJsYW5rLXAgc3RyKQogICAgICAgICAgKGxldCAo
KGNhbmQgKGNvbmNhdAogICAgICAgICAgICAgICAgICAgICAgIChjb25zdWx0LS1saW5lLW51bWJl
ci1wcmVmaXggKHBvaW50LW1hcmtlcikgbGluZSBsaW5lLXdpZHRoKQogICAgICAgICAgICAgICAg
ICAgICAgIHN0cikpCiAgICAgICAgICAgICAgICAoZGlzdCAoYWJzICgtIGN1cnItbGluZSBsaW5l
KSkpKQogICAgICAgICAgICAod2hlbiAoPCBkaXN0IGRlZmF1bHQtY2FuZC1kaXN0KQogICAgICAg
ICAgICAgIChzZXRxIGRlZmF1bHQtY2FuZCBjYW5kCiAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dC1jYW5kLWRpc3QgZGlzdCkpCiAgICAgICAgICAgIChwdXNoIGNhbmQgY2FuZGlkYXRlcykpKQog
ICAgICAgIChzZXRxIGxpbmUgKDErIGxpbmUpKSkpCiAgICAodW5sZXNzIGNhbmRpZGF0ZXMKICAg
ICAgKHVzZXItZXJyb3IgIk5vIGxpbmVzIikpCiAgICAoY29ucyBkZWZhdWx0LWNhbmQgKG5yZXZl
cnNlIGNhbmRpZGF0ZXMpKSkpCgooZGVmdW4gY29uc3VsdC0tbGluZS1tYXRjaCAoaW5wdXQgY2Fu
ZGlkYXRlcyBjYW5kKQogICJMb29rdXAgcG9zaXRpb24gb2YgbWF0Y2guCgpJTlBVVCBpcyB0aGUg
aW5wdXQgc3RyaW5nIGVudGVyZWQgYnkgdGhlIHVzZXIuCkNBTkRJREFURVMgaXMgdGhlIGxpbmUg
Y2FuZGlkYXRlcyBhbGlzdC4KQ0FORCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNhbmRpZGF0
ZS4iCiAgKHdoZW4tbGV0IChwb3MgKGNvbnN1bHQtLWxvb2t1cC1sb2NhdGlvbiBpbnB1dCBjYW5k
aWRhdGVzIGNhbmQpKQogICAgKGlmIChvciAoc3RyaW5nLWJsYW5rLXAgaW5wdXQpCiAgICAgICAg
ICAgIChlcSBjb25zdWx0LWxpbmUtcG9pbnQtcGxhY2VtZW50ICdsaW5lLWJlZ2lubmluZykpCiAg
ICAgICAgcG9zCiAgICAgIDs7IFN0cmlwIHVuaXF1ZSBsaW5lIG51bWJlciBwcmVmaXgKICAgICAg
KGxldCAoKGkgMCkKICAgICAgICAgICAgKG4gKGxlbmd0aCBjYW5kKSkKICAgICAgICAgICAgKGNt
aW4gY29uc3VsdC0tdG9mdS1jaGFyKQogICAgICAgICAgICAoY21heCAoLSAoKyBjb25zdWx0LS10
b2Z1LWNoYXIgY29uc3VsdC0tdG9mdS1yYW5nZSkgMSkpKQogICAgICAgICh3aGlsZSAoYW5kICg8
IGkgbikgKDw9IGNtaW4gKGFyZWYgY2FuZCBpKSBjbWF4KSkKICAgICAgICAgIChzZXRxIGkgKDEr
IGkpKSkKICAgICAgICAod2hlbiAoPiBpIDApCiAgICAgICAgICAoc2V0cSBjYW5kIChzdWJzdHJp
bmcgY2FuZCBpKSkpKQogICAgICAobGV0ICgoYmVnIDApCiAgICAgICAgICAgIChlbmQgKGxlbmd0
aCBjYW5kKSkKICAgICAgICAgICAgOzsgVXNlIGNvbnN1bHQtbG9jYXRpb24gY29tcGxldGlvbiBj
YXRlZ29yeSB3aGVuIGZpbHRlcmluZyBsaW5lcwogICAgICAgICAgICAoZmlsdGVyIChjb25zdWx0
LS1jb21wbGV0aW9uLWZpbHRlciAnY29uc3VsdC1sb2NhdGlvbiBuaWwpKSkKICAgICAgICA7OyBG
aW5kIG1hdGNoIGVuZCBwb3NpdGlvbiwgcmVtb3ZlIGNoYXJhY3RlcnMgZnJvbSBsaW5lIGVuZCB1
bnRpbAogICAgICAgIDs7IG1hdGNoaW5nIGZhaWxzCiAgICAgICAgKGxldCAoKHN0ZXAgMTYpKQog
ICAgICAgICAgKHdoaWxlICg+IHN0ZXAgMCkKICAgICAgICAgICAgKHdoaWxlIChhbmQgKD4gKC0g
ZW5kIHN0ZXApIDApCiAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGZpbHRlciBpbnB1
dCAobGlzdCAoc3Vic3RyaW5nIGNhbmQgMCAoLSBlbmQgc3RlcCkpKSkpCiAgICAgICAgICAgICAg
KHNldHEgZW5kICgtIGVuZCBzdGVwKSkpCiAgICAgICAgICAgIChzZXRxIHN0ZXAgKC8gc3RlcCAy
KSkpKQogICAgICAgIDs7IEZpbmQgbWF0Y2ggYmVnaW5uaW5nIHBvc2l0aW9uLCByZW1vdmUgY2hh
cmFjdGVycyBmcm9tIGxpbmUgYmVnaW5uaW5nCiAgICAgICAgOzsgdW50aWwgbWF0Y2hpbmcgZmFp
bHMKICAgICAgICAod2hlbiAoZXEgY29uc3VsdC1saW5lLXBvaW50LXBsYWNlbWVudCAnbWF0Y2gt
YmVnaW5uaW5nKQogICAgICAgICAgKGxldCAoKHN0ZXAgMTYpKQogICAgICAgICAgICAod2hpbGUg
KD4gc3RlcCAwKQogICAgICAgICAgICAgICh3aGlsZSAoYW5kICg8ICgrIGJlZyBzdGVwKSBlbmQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgZmlsdGVyIGlucHV0IChsaXN0IChz
dWJzdHJpbmcgY2FuZCAoKyBiZWcgc3RlcCkgZW5kKSkpKQogICAgICAgICAgICAgICAgKHNldHEg
YmVnICgrIGJlZyBzdGVwKSkpCiAgICAgICAgICAgICAgKHNldHEgc3RlcCAoLyBzdGVwIDIpKSkK
ICAgICAgICAgICAgKHNldHEgZW5kIGJlZykpKQogICAgICAgIDs7IE1hcmtlciBjYW4gYmUgZGVh
ZAogICAgICAgIChpZ25vcmUtZXJyb3JzICgrIHBvcyBlbmQpKSkpKSkKCjs7OyMjI2F1dG9sb2Fk
CihkZWZ1biBjb25zdWx0LWxpbmUgKCZvcHRpb25hbCBpbml0aWFsKQogICJTZWFyY2ggZm9yIGEg
bWF0Y2hpbmcgbGluZSBhbmQganVtcCB0byB0aGUgbGluZSBiZWdpbm5pbmcuCgpUaGUgZGVmYXVs
dCBjYW5kaWRhdGUgaXMgYSBub24tZW1wdHkgbGluZSBjbG9zZXN0IHRvIHBvaW50LgpUaGlzIGNv
bW1hbmQgb2JleXMgbmFycm93aW5nLiBPcHRpb25hbGx5IElOSVRJQUwgaW5wdXQgY2FuIGJlIHBy
b3ZpZGVkLgpUaGUgc3ltYm9sIGF0IHBvaW50IGFuZCB0aGUgbGFzdCBgaXNlYXJjaC1zdHJpbmcn
IGlzIGFkZGVkIHRvIHRoZSBmdXR1cmUgaGlzdG9yeS4iCiAgKGludGVyYWN0aXZlKQogIChsZXQg
KChjYW5kaWRhdGVzIChjb25zdWx0LS13aXRoLWluY3JlYXNlZC1nYyAoY29uc3VsdC0tbGluZS1j
YW5kaWRhdGVzKSkpKQogICAgKGNvbnN1bHQtLWp1bXAKICAgICAoY29uc3VsdC0tcmVhZAogICAg
ICAiR28gdG8gbGluZTogIiAoY2RyIGNhbmRpZGF0ZXMpCiAgICAgIDpjYXRlZ29yeSAnY29uc3Vs
dC1sb2NhdGlvbgogICAgICA6c29ydCBuaWwKICAgICAgOmRlZmF1bHQtdG9wIG5pbAogICAgICA6
cmVxdWlyZS1tYXRjaCB0CiAgICAgIDs7IEFsd2F5cyBhZGQgbGFzdCBpc2VhcmNoIHN0cmluZyB0
byBmdXR1cmUgaGlzdG9yeQogICAgICA6YWRkLWhpc3RvcnkgKGxpc3QgKHRoaW5nLWF0LXBvaW50
ICdzeW1ib2wpIGlzZWFyY2gtc3RyaW5nKQogICAgICA6aGlzdG9yeSAnKDppbnB1dCBjb25zdWx0
LS1saW5lLWhpc3RvcnkpCiAgICAgIDpsb29rdXAgIydjb25zdWx0LS1saW5lLW1hdGNoCiAgICAg
IDpkZWZhdWx0IChjYXIgY2FuZGlkYXRlcykKICAgICAgOzsgQWRkIGlzZWFyY2gtc3RyaW5nIGFz
IGluaXRpYWwgaW5wdXQgaWYgc3RhcnRpbmcgZnJvbSBpc2VhcmNoCiAgICAgIDppbml0aWFsIChv
ciBpbml0aWFsIChhbmQgaXNlYXJjaC1tb2RlIGlzZWFyY2gtc3RyaW5nKSkKICAgICAgOnByZXZp
ZXcgKGNvbnN1bHQtLXByZXZpZXctcG9zaXRpb24pKSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3Vs
dC1rZWVwLWxpbmVzCgooZGVmc3Vic3QgY29uc3VsdC0ta2VlcC1saW5lcy1yZXBsYWNlIChjb250
ZW50ICZvcHRpb25hbCBwb3MpCiAgIlJlcGxhY2UgYnVmZmVyIGNvbnRlbnQgd2l0aCBDT05URU5U
IGFuZCBtb3ZlIHBvaW50IHRvIFBPUy4iCiAgKGRlbGV0ZS1yZWdpb24gKHBvaW50LW1pbikgKHBv
aW50LW1heCkpCiAgKGluc2VydCBjb250ZW50KQogIChnb3RvLWNoYXIgKG9yIHBvcyAocG9pbnQt
bWluKSkpKQoKKGRlZnVuIGNvbnN1bHQtLWtlZXAtbGluZXMtc3RhdGUgKGZpbHRlcikKICAiU3Rh
dGUgZnVuY3Rpb24gZm9yIGBjb25zdWx0LWtlZXAtbGluZXMnIHdpdGggRklMVEVSIGZ1bmN0aW9u
LiIKICAobGV0ICgobGluZXMpCiAgICAgICAgKGJ1ZmZlci1vcmlnIChjdXJyZW50LWJ1ZmZlcikp
CiAgICAgICAgKGZvbnQtbG9jay1vcmlnIGZvbnQtbG9jay1tb2RlKQogICAgICAgIChwb2ludC1v
cmlnIChwb2ludCkpCiAgICAgICAgKGNvbnRlbnQtb3JpZyAoYnVmZmVyLXN0cmluZykpCiAgICAg
ICAgKGxhc3QtaW5wdXQpKQogICAgKGNvbnN1bHQtLWVhY2gtbGluZSBiZWcgZW5kCiAgICAgIChw
dXNoIChidWZmZXItc3Vic3RyaW5nIGJlZyBlbmQpIGxpbmVzKSkKICAgIChzZXRxIGxpbmVzIChu
cmV2ZXJzZSBsaW5lcykpCiAgICAobGFtYmRhIChpbnB1dCByZXN0b3JlKQogICAgICAod2l0aC1j
dXJyZW50LWJ1ZmZlciBidWZmZXItb3JpZwogICAgICAgIDs7IFJlc3RvcmluZyBjb250ZW50IGFu
ZCBwb2ludCBwb3NpdGlvbgogICAgICAgICh3aGVuIChhbmQgcmVzdG9yZSBsYXN0LWlucHV0KQog
ICAgICAgICAgOzsgTm8gdW5kbyByZWNvcmRpbmcsIG1vZGlmaWNhdGlvbiBob29rcywgYnVmZmVy
IG1vZGlmaWVkLXN0YXR1cwogICAgICAgICAgKHdpdGgtc2lsZW50LW1vZGlmaWNhdGlvbnMgKGNv
bnN1bHQtLWtlZXAtbGluZXMtcmVwbGFjZSBjb250ZW50LW9yaWcgcG9pbnQtb3JpZykpKQogICAg
ICAgIDs7IENvbW1pdHRpbmcgb3IgbmV3IGlucHV0IHByb3ZpZGVkIC0+IFVwZGF0ZQogICAgICAg
ICh3aGVuIChhbmQgaW5wdXQgOzsgSW5wdXQgaGFzIGJlZW4gcG92aWRlZAogICAgICAgICAgICAg
ICAgICAgKG9yCiAgICAgICAgICAgICAgICAgICAgOzsgQ29tbWl0dGluZywgYnV0IG5vdCB3aXRo
IGVtcHR5IGlucHV0CiAgICAgICAgICAgICAgICAgICAgKGFuZCByZXN0b3JlIChub3QgKHN0cmlu
Zy1tYXRjaC1wICJeIT8gPyQiIGlucHV0KSkpCiAgICAgICAgICAgICAgICAgICAgOzsgSW5wdXQg
aGFzIGNoYW5nZWQKICAgICAgICAgICAgICAgICAgICAobm90IChlcXVhbCBpbnB1dCBsYXN0LWlu
cHV0KSkpKQogICAgICAgICAgKGxldCAoKGZpbHRlcmVkLWNvbnRlbnQKICAgICAgICAgICAgICAg
ICAoaWYgKHN0cmluZy1tYXRjaC1wICJeIT8gPyQiIGlucHV0KQogICAgICAgICAgICAgICAgICAg
ICA7OyBTcGVjaWFsIGNhc2UgdGhlIGVtcHR5IGlucHV0IGZvciBwZXJmb3JtYW5jZS4KICAgICAg
ICAgICAgICAgICAgICAgOzsgT3RoZXJ3aXNlIGl0IGNvdWxkIGhhcHBlbiB0aGF0IHRoZSBtaW5p
YnVmZmVyIGlzIGVtcHR5LAogICAgICAgICAgICAgICAgICAgICA7OyBidXQgdGhlIGJ1ZmZlciBo
YXMgbm90IGJlZW4gdXBkYXRlZC4KICAgICAgICAgICAgICAgICAgICAgY29udGVudC1vcmlnCiAg
ICAgICAgICAgICAgICAgICAoaWYgcmVzdG9yZQogICAgICAgICAgICAgICAgICAgICAgIChzdHJp
bmctam9pbiAoZnVuY2FsbCBmaWx0ZXIgaW5wdXQgbGluZXMpICJcbiIpCiAgICAgICAgICAgICAg
ICAgICAgICh3aGlsZS1uby1pbnB1dAogICAgICAgICAgICAgICAgICAgICAgIDs7IEhlYXZ5IGNv
bXB1dGF0aW9uIGlzIGludGVycnVwdGlibGUgaWYgKm5vdCogY29tbWl0dGluZyEKICAgICAgICAg
ICAgICAgICAgICAgICA7OyBBbGxvY2F0ZSBuZXcgc3RyaW5nIGNhbmRpZGF0ZXMgc2luY2UgdGhl
IG1hdGNoaW5nIGZ1bmN0aW9uIG11dGF0ZXMhCiAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu
Zy1qb2luIChmdW5jYWxsIGZpbHRlciBpbnB1dCAobWFwY2FyICMnY29weS1zZXF1ZW5jZSBsaW5l
cykpICJcbiIpKSkpKSkKICAgICAgICAgICAgKHdoZW4gKHN0cmluZ3AgZmlsdGVyZWQtY29udGVu
dCkKICAgICAgICAgICAgICAod2hlbiBmb250LWxvY2stbW9kZSAoZm9udC1sb2NrLW1vZGUgLTEp
KQogICAgICAgICAgICAgIChpZiByZXN0b3JlCiAgICAgICAgICAgICAgICAgIChhdG9taWMtY2hh
bmdlLWdyb3VwCiAgICAgICAgICAgICAgICAgICAgOzsgRGlzYWJsZSBtb2RpZmljYXRpb24gaG9v
a3MgZm9yIHBlcmZvcm1hbmNlCiAgICAgICAgICAgICAgICAgICAgKGxldCAoKGluaGliaXQtbW9k
aWZpY2F0aW9uLWhvb2tzIHQpKQogICAgICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLWtlZXAt
bGluZXMtcmVwbGFjZSBmaWx0ZXJlZC1jb250ZW50KSkpCiAgICAgICAgICAgICAgICA7OyBObyB1
bmRvIHJlY29yZGluZywgbW9kaWZpY2F0aW9uIGhvb2tzLCBidWZmZXIgbW9kaWZpZWQtc3RhdHVz
CiAgICAgICAgICAgICAgICAod2l0aC1zaWxlbnQtbW9kaWZpY2F0aW9ucwogICAgICAgICAgICAg
ICAgICAoY29uc3VsdC0ta2VlcC1saW5lcy1yZXBsYWNlIGZpbHRlcmVkLWNvbnRlbnQpCiAgICAg
ICAgICAgICAgICAgIChzZXRxIGxhc3QtaW5wdXQgaW5wdXQpKSkpKSkKICAgICAgICA7OyBSZXN0
b3JlIGZvbnQtbG9jawogICAgICAgICh3aGVuIChhbmQgcmVzdG9yZSBmb250LWxvY2stb3JpZyAo
bm90IGZvbnQtbG9jay1tb2RlKSkKICAgICAgICAgIChmb250LWxvY2stbW9kZSkpKSkpKQoKKGRl
ZnVuIGNvbnN1bHQta2VlcC1saW5lcyAoJm9wdGlvbmFsIGZpbHRlciBpbml0aWFsKQogICJTZWxl
Y3QgYSBzdWJzZXQgb2YgdGhlIGxpbmVzIGluIHRoZSBjdXJyZW50IGJ1ZmZlciB3aXRoIGxpdmUg
cHJldmlldy4KClRoZSBsaW5lcyBzZWxlY3RlZCBhcmUgdGhvc2UgdGhhdCBtYXRjaCB0aGUgbWlu
aWJ1ZmZlciBpbnB1dC4KVGhpcyBjb21tYW5kIG9iZXlzIG5hcnJvd2luZy4KRklMVEVSIGlzIHRo
ZSBmaWx0ZXIgZnVuY3Rpb24uCklOSVRJQUwgaXMgdGhlIGluaXRpYWwgaW5wdXQuIgogIDs7IFVz
ZSBjb25zdWx0LWxvY2F0aW9uIGNvbXBsZXRpb24gY2F0ZWdvcnkgd2hlbiBmaWx0ZXJpbmcgbGlu
ZXMKICAoaW50ZXJhY3RpdmUgKGxpc3QgKGNvbnN1bHQtLWNvbXBsZXRpb24tZmlsdGVyLWRpc3Bh
dGNoICdjb25zdWx0LWxvY2F0aW9uICdoaWdobGlnaHQpKSkKICAoY29uc3VsdC0tZm9yYmlkLW1p
bmlidWZmZXIpCiAgKGJhcmYtaWYtYnVmZmVyLXJlYWQtb25seSkKICAoY29uc3VsdC0td2l0aC1p
bmNyZWFzZWQtZ2MKICAgKGNvbnN1bHQtLWZvbnRpZnktYWxsKQogICAoY29uc3VsdC0tcHJvbXB0
CiAgICAiS2VlcCBsaW5lczogIgogICAgOmluaXRpYWwgaW5pdGlhbAogICAgOmhpc3RvcnkgJ2Nv
bnN1bHQtLWtlZXAtbGluZXMtaGlzdG9yeQogICAgOnByZXZpZXcgKGNvbnN1bHQtLWtlZXAtbGlu
ZXMtc3RhdGUgZmlsdGVyKSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC1mb2N1cy1saW5lcwoK
KGRlZnVuIGNvbnN1bHQtLWZvY3VzLWxpbmVzLXN0YXRlIChmaWx0ZXIpCiAgIlN0YXRlIGZ1bmN0
aW9uIGZvciBgY29uc3VsdC1mb2N1cy1saW5lcycgd2l0aCBGSUxURVIgZnVuY3Rpb24uIgogIChs
ZXQgKChsaW5lcykgKG92ZXJsYXlzKSAobGFzdC1pbnB1dCkpCiAgICAoY29uc3VsdC0tZWFjaC1s
aW5lIGJlZyBlbmQKICAgICAgKHB1c2ggKGJ1ZmZlci1zdWJzdHJpbmcgYmVnIGVuZCkgbGluZXMp
CiAgICAgIChwdXNoIChtYWtlLW92ZXJsYXkgYmVnICgxKyBlbmQpKSBvdmVybGF5cykpCiAgICAo
bGFtYmRhIChpbnB1dCByZXN0b3JlKQogICAgICA7OyBOZXcgaW5wdXQgcHJvdmlkZWQgLT4gVXBk
YXRlCiAgICAgICh3aGVuIChhbmQgaW5wdXQgKG5vdCAoZXF1YWwgaW5wdXQgbGFzdC1pbnB1dCkp
KQogICAgICAgIChpZiAoc3RyaW5nLW1hdGNoLXAgIl4hPyA/JCIgaW5wdXQpCiAgICAgICAgICAg
IDs7IFNwZWNpYWwgY2FzZSB0aGUgZW1wdHkgaW5wdXQgZm9yIHBlcmZvcm1hbmNlLgogICAgICAg
ICAgICAocHJvZ24KICAgICAgICAgICAgICAoZG9saXN0IChvdiBvdmVybGF5cykKICAgICAgICAg
ICAgICAgIChvdmVybGF5LXB1dCBvdiAnaW52aXNpYmxlIG5pbCkpCiAgICAgICAgICAgICAgKHNl
dHEgbGFzdC1pbnB1dCBpbnB1dCkpCiAgICAgICAgICAobGV0KiAoKG5vdCAoc3RyaW5nLXByZWZp
eC1wICIhICIgaW5wdXQpKQogICAgICAgICAgICAgICAgIChzdHJpcHBlZCAoc3RyaW5nLXJlbW92
ZS1wcmVmaXggIiEgIiBpbnB1dCkpCiAgICAgICAgICAgICAgICAgOzsgSGVhdnkgY29tcHV0YXRp
b24gaXMgaW50ZXJydXB0aWJsZSBpZiAqbm90KiBjb21taXR0aW5nIQogICAgICAgICAgICAgICAg
IChodCAoaWYgcmVzdG9yZQogICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLXN0cmlu
Zy1oYXNoIChmdW5jYWxsIGZpbHRlciBzdHJpcHBlZCBsaW5lcykpCiAgICAgICAgICAgICAgICAg
ICAgICAgKHdoaWxlLW5vLWlucHV0CiAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3VsdC0t
c3RyaW5nLWhhc2ggKGZ1bmNhbGwgZmlsdGVyIHN0cmlwcGVkIGxpbmVzKSkpKSkpCiAgICAgICAg
ICAgICh3aGVuIChoYXNoLXRhYmxlLXAgaHQpCiAgICAgICAgICAgICAgKGxldCAoKG92IG92ZXJs
YXlzKSAobGkgbGluZXMpKQogICAgICAgICAgICAgICAgKHdoaWxlIG92CiAgICAgICAgICAgICAg
ICAgIChvdmVybGF5LXB1dCAoY2FyIG92KSAnaW52aXNpYmxlIChlcSBub3QgKGdldGhhc2ggKGNh
ciBsaSkgaHQpKSkKICAgICAgICAgICAgICAgICAgKHNldHEgbGkgKGNkciBsaSkgb3YgKGNkciBv
dikpKSkKICAgICAgICAgICAgICAoc2V0cSBsYXN0LWlucHV0IGlucHV0KSkpKSkKICAgICAgOzsg
U3VjZXNzZnVsbHkgdGVybWluYXRlZCAtPiBSZW1lbWJlciBpbnZpc2libGUgb3ZlcmxheXMKICAg
ICAgKHdoZW4gKGFuZCBpbnB1dCByZXN0b3JlKQogICAgICAgIChkb2xpc3QgKG92IG92ZXJsYXlz
KQogICAgICAgICAgKGlmIChvdmVybGF5LWdldCBvdiAnaW52aXNpYmxlKQogICAgICAgICAgICAg
IChwdXNoIG92IGNvbnN1bHQtLWZvY3VzLWxpbmVzLW92ZXJsYXlzKQogICAgICAgICAgICAoZGVs
ZXRlLW92ZXJsYXkgb3YpKSkKICAgICAgICAoc2V0cSBvdmVybGF5cyBuaWwpKQogICAgICA7OyBX
aGVuIHRlcm1pbmF0aW5nIC0+IERlc3Ryb3kgcmVtYWluaW5nIG92ZXJsYXlzCiAgICAgICh3aGVu
IHJlc3RvcmUKICAgICAgICAobWFwYyAjJ2RlbGV0ZS1vdmVybGF5IG92ZXJsYXlzKSkpKSkKCihk
ZWZ1biBjb25zdWx0LWZvY3VzLWxpbmVzICgmb3B0aW9uYWwgc2hvdyBmaWx0ZXIgaW5pdGlhbCkK
ICAiSGlkZSBvciBzaG93IGxpbmVzIGFjY29yZGluZyB0byBGSUxURVIgZnVuY3Rpb24uCgpPcHRp
b25hbGx5IElOSVRJQUwgaW5wdXQgY2FuIGJlIHByb3ZpZGVkLgpTSE9XIG11c3QgYmUgdCBpbiBv
cmRlciB0byBzaG93IHRoZSBoaWRkZW4gbGluZXMuIgogIChpbnRlcmFjdGl2ZQogICA7OyBVc2Ug
Y29uc3VsdC1sb2NhdGlvbiBjb21wbGV0aW9uIGNhdGVnb3J5IHdoZW4gZmlsdGVyaW5nIGxpbmVz
CiAgIChsaXN0IGN1cnJlbnQtcHJlZml4LWFyZyAoY29uc3VsdC0tY29tcGxldGlvbi1maWx0ZXIg
J2NvbnN1bHQtbG9jYXRpb24gbmlsKSkpCiAgKGNvbnN1bHQtLWZvcmJpZC1taW5pYnVmZmVyKQog
IChpZiBzaG93CiAgICAgIChwcm9nbgogICAgICAgIChtYXBjICMnZGVsZXRlLW92ZXJsYXkgY29u
c3VsdC0tZm9jdXMtbGluZXMtb3ZlcmxheXMpCiAgICAgICAgKHNldHEgY29uc3VsdC0tZm9jdXMt
bGluZXMtb3ZlcmxheXMgbmlsKSkKICAgIChjb25zdWx0LS13aXRoLWluY3JlYXNlZC1nYwogICAg
IChjb25zdWx0LS1mb250aWZ5LWFsbCkKICAgICAoY29uc3VsdC0tcHJvbXB0CiAgICAgICJGb2N1
cyBvbiBsaW5lczogIgogICAgICA6aW5pdGlhbCBpbml0aWFsCiAgICAgIDpoaXN0b3J5ICdjb25z
dWx0LS1rZWVwLWxpbmVzLWhpc3RvcnkKICAgICAgOnByZXZpZXcgKGNvbnN1bHQtLWZvY3VzLWxp
bmVzLXN0YXRlIGZpbHRlcikpKSkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0LWdvdG8tbGluZQoK
Ozs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtZ290by1saW5lICgpCiAgIlJlYWQgbGluZSBu
dW1iZXIgYW5kIGp1bXAgdG8gdGhlIGxpbmUgd2l0aCBwcmV2aWV3LgoKVGhlIGNvbW1hbmQgcmVz
cGVjdHMgbmFycm93aW5nIGFuZCB0aGUgc2V0dGluZ3MKYGNvbnN1bHQtZ290by1saW5lLW51bWJl
cnMnIGFuZCBgY29uc3VsdC1saW5lLW51bWJlcnMtd2lkZW4nLiIKICAoaW50ZXJhY3RpdmUpCiAg
KGNvbnN1bHQtLWZvcmJpZC1taW5pYnVmZmVyKQogIChjb25zdWx0LS1sb2NhbC1sZXQgKChkaXNw
bGF5LWxpbmUtbnVtYmVycyBjb25zdWx0LWdvdG8tbGluZS1udW1iZXJzKQogICAgICAgICAgICAg
ICAgICAgICAgIChkaXNwbGF5LWxpbmUtbnVtYmVycy13aWRlbiBjb25zdWx0LWxpbmUtbnVtYmVy
cy13aWRlbikpCiAgICAod2hpbGUgKGxldCAoKHJldCAoY29uc3VsdC0tcHJvbXB0CiAgICAgICAg
ICAgICAgICAgICAgICAgIkdvIHRvIGxpbmU6ICIKICAgICAgICAgICAgICAgICAgICAgICA6cHJl
dmlldyAoY29uc3VsdC0tcHJldmlldy1wb3NpdGlvbikKICAgICAgICAgICAgICAgICAgICAgICA6
dHJhbnNmb3JtCiAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoXyBzdHIpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAod2hlbi1sZXQgKChsaW5lIChhbmQgc3RyCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wICJeW1s6ZGln
aXQ6XV0rJCIgc3RyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzdHJpbmctdG8tbnVtYmVyIHN0cikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocG9zIChhbmQgbGluZSAoY29uc3VsdC0tbGluZS1wb3NpdGlvbiBsaW5lKSkpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChjb25zdWx0LS1pbi1yYW5nZS1wIHBvcykg
cG9zKSkpKSkpCiAgICAgICAgICAgICAoaWYtbGV0IChwb3MgKGNhciByZXQpKQogICAgICAgICAg
ICAgICAgIChjb25zdWx0LS1qdW1wIHBvcykKICAgICAgICAgICAgICAgKG1pbmlidWZmZXItbWVz
c2FnZSAoaWYgKHN0cmluZy1tYXRjaC1wICJeW1s6ZGlnaXQ6XV0rJCIgKGNkciByZXQpKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGluZSBudW1iZXIgb3V0IG9mIHJh
bmdlLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGVhc2UgZW50ZXIg
YSBudW1iZXIuIikpCiAgICAgICAgICAgICAgIHQpKSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3Vs
dC1yZWNlbnQtZmlsZQoKKGRlZnVuIGNvbnN1bHQtLXJlY2VudC1maWxlLXJlYWQgKCkKICAiUmVh
ZCByZWNlbnQgZmlsZSB2aWEgYGNvbXBsZXRpbmctcmVhZCcuIgogIChjb25zdWx0LS1yZWFkCiAg
ICJGaW5kIHJlY2VudCBmaWxlOiAiCiAgIChvciAobWFwY2FyICMnYWJicmV2aWF0ZS1maWxlLW5h
bWUgcmVjZW50Zi1saXN0KQogICAgICAgKHVzZXItZXJyb3IgIk5vIHJlY2VudCBmaWxlcyIpKQog
ICA6c29ydCBuaWwKICAgOnJlcXVpcmUtbWF0Y2ggdAogICA6Y2F0ZWdvcnkgJ2ZpbGUKICAgOmhp
c3RvcnkgJ2ZpbGUtbmFtZS1oaXN0b3J5KSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0
LXJlY2VudC1maWxlICgpCiAgIkZpbmQgcmVjZW50IHVzaW5nIGBjb21wbGV0aW5nLXJlYWQnLiIK
ICAoaW50ZXJhY3RpdmUpCiAgKGZpbmQtZmlsZSAoY29uc3VsdC0tcmVjZW50LWZpbGUtcmVhZCkp
KQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtcmVjZW50LWZpbGUtb3RoZXItZnJhbWUg
KCkKICAiRmluZCByZWNlbnQgdXNpbmcgYGNvbXBsZXRpbmctcmVhZCcuIgogIChpbnRlcmFjdGl2
ZSkKICAoZmluZC1maWxlLW90aGVyLWZyYW1lIChjb25zdWx0LS1yZWNlbnQtZmlsZS1yZWFkKSkp
Cgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1yZWNlbnQtZmlsZS1vdGhlci13aW5kb3cg
KCkKICAiRmluZCByZWNlbnQgdXNpbmcgYGNvbXBsZXRpbmctcmVhZCcuIgogIChpbnRlcmFjdGl2
ZSkKICAoZmluZC1maWxlLW90aGVyLXdpbmRvdyAoY29uc3VsdC0tcmVjZW50LWZpbGUtcmVhZCkp
KQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC1maWxlLWV4dGVybmFsbHkKCjs7OyMjI2F1dG9sb2Fk
CihkZWZ1biBjb25zdWx0LWZpbGUtZXh0ZXJuYWxseSAoZmlsZSkKICAiT3BlbiBGSUxFIGV4dGVy
bmFsbHkgdXNpbmcgdGhlIGRlZmF1bHQgYXBwbGljYXRpb24gb2YgdGhlIHN5c3RlbS4iCiAgKGlu
dGVyYWN0aXZlICJmT3BlbiBleHRlcm5hbGx5OiAiKQogIChpZiAoYW5kIChlcSBzeXN0ZW0tdHlw
ZSAnd2luZG93cy1udCkKICAgICAgICAgICAoZmJvdW5kcCAndzMyLXNoZWxsLWV4ZWN1dGUpKQog
ICAgICAodzMyLXNoZWxsLWV4ZWN1dGUgIm9wZW4iIGZpbGUpCiAgICAoY2FsbC1wcm9jZXNzIChw
Y2FzZSBzeXN0ZW0tdHlwZQogICAgICAgICAgICAgICAgICAgICgnZGFyd2luICJvcGVuIikKICAg
ICAgICAgICAgICAgICAgICAoJ2N5Z3dpbiAiY3lnc3RhcnQiKQogICAgICAgICAgICAgICAgICAg
IChfICJ4ZGctb3BlbiIpKQogICAgICAgICAgICAgICAgICBuaWwgMCBuaWwKICAgICAgICAgICAg
ICAgICAgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSkpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQt
Y29tcGxldGlvbi1pbi1yZWdpb24KCjs7IFVzZSBtaW5pYnVmZmVyIGNvbXBsZXRpb24gYXMgdGhl
IFVJIGZvciBjb21wbGV0aW9uLWF0LXBvaW50Cjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0
LWNvbXBsZXRpb24taW4tcmVnaW9uIChzdGFydCBlbmQgY29sbGVjdGlvbiAmb3B0aW9uYWwgcHJl
ZGljYXRlKQogICJQcm9tcHQgZm9yIGNvbXBsZXRpb24gb2YgcmVnaW9uIGluIHRoZSBtaW5pYnVm
ZmVyIGlmIG5vbi11bmlxdWUuCgpUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggNCBhcmd1bWVu
dHM6IFNUQVJUIEVORCBDT0xMRUNUSU9OIFBSRURJQ0FURS4KVGhlIGFyZ3VtZW50cyBhbmQgZXhw
ZWN0ZWQgcmV0dXJuIHZhbHVlIGFyZSBhcyBzcGVjaWZpZWQgZm9yCmBjb21wbGV0aW9uLWluLXJl
Z2lvbicuIFVzZSBhcyBhIHZhbHVlIGZvciBgY29tcGxldGlvbi1pbi1yZWdpb24tZnVuY3Rpb24n
LiIKICAobGV0KiAoKGluaXRpYWwgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBzdGFy
dCBlbmQpKQogICAgICAgICAobGltaXQgKGNhciAoY29tcGxldGlvbi1ib3VuZGFyaWVzIGluaXRp
YWwgY29sbGVjdGlvbiBwcmVkaWNhdGUgIiIpKSkKICAgICAgICAgKG1ldGFkYXRhIChjb21wbGV0
aW9uLW1ldGFkYXRhIGluaXRpYWwgY29sbGVjdGlvbiBwcmVkaWNhdGUpKQogICAgICAgICAoY2F0
ZWdvcnkgKGNvbXBsZXRpb24tbWV0YWRhdGEtZ2V0IG1ldGFkYXRhICdjYXRlZ29yeSkpCiAgICAg
ICAgIChhbGwgKGNvbXBsZXRpb24tYWxsLWNvbXBsZXRpb25zIGluaXRpYWwgY29sbGVjdGlvbiBw
cmVkaWNhdGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0
aCBpbml0aWFsKSkpCiAgICAgICAgIChleGl0LXN0YXR1cyAnZmluaXNoZWQpCiAgICAgICAgIChj
b21wbGV0aW9uCiAgICAgICAgICAoY29uZAogICAgICAgICAgICgoYXRvbSBhbGwpIG5pbCkKICAg
ICAgICAgICAoKGFuZCAoY29uc3AgYWxsKSAoYXRvbSAoY2RyIGFsbCkpKQogICAgICAgICAgICAo
c2V0cSBleGl0LXN0YXR1cyAnc29sZSkKICAgICAgICAgICAgKGNvbmNhdCAoc3Vic3RyaW5nIGlu
aXRpYWwgMCBsaW1pdCkgKGNhciBhbGwpKSkKICAgICAgICAgICAodCAobGV0ICgoZW5hYmxlLXJl
Y3Vyc2l2ZS1taW5pYnVmZmVycyB0KSkKICAgICAgICAgICAgICAgIChpZiAoZXEgY2F0ZWdvcnkg
J2ZpbGUpCiAgICAgICAgICAgICAgICAgICAgOzsgV2hlbiBjb21wbGV0aW5nIGZpbGVzIHdpdGgg
Y29uc3VsdC1jb21wbGV0aW9uLWluLXJlZ2lvbiwgdGhlIHBvaW50IGluIHRoZQogICAgICAgICAg
ICAgICAgICAgIDs7IG1pbmlidWZmZXIgZ2V0cyBwbGFjZWQgaW5pdGlhbGx5IGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGxhc3QgcGF0aCBjb21wb25lbnQuCiAgICAgICAgICAgICAgICAgICAgOzsg
QnkgdXNpbmcgdGhlIGZpbGVuYW1lIGFzIERJUiBhcmd1bWVudCAoc2Vjb25kIGFyZ3VtZW50IG9m
IHJlYWQtZmlsZS1uYW1lKSwgaXQKICAgICAgICAgICAgICAgICAgICA7OyBzdGFydHMgYXQgdGhl
IGVuZCBvZiBtaW5pYnVmZmVyIGNvbnRlbnRzLCBhcyBmb3Igb3RoZXIgdHlwZXMgb2YgY29tcGxl
dGlvbi4KICAgICAgICAgICAgICAgICAgICA7OyBIb3dldmVyIHRoaXMgaXMgdW5kZWZpbmVkIGJl
aGF2aW9yIHNpbmNlIGluaXRpYWwgZG9lcyBub3Qgb25seSBjb250YWluIHRoZQogICAgICAgICAg
ICAgICAgICAgIDs7IGRpcmVjdG9yeSwgYnV0IGFsc28gdGhlIGZpbGVuYW1lLgogICAgICAgICAg
ICAgICAgICAgIChyZWFkLWZpbGUtbmFtZQogICAgICAgICAgICAgICAgICAgICAiQ29tcGxldGlv
bjogIiBpbml0aWFsIGluaXRpYWwgdCBuaWwgcHJlZGljYXRlKQogICAgICAgICAgICAgICAgICAo
Y29tcGxldGluZy1yZWFkCiAgICAgICAgICAgICAgICAgICAiQ29tcGxldGlvbjogIiBjb2xsZWN0
aW9uIHByZWRpY2F0ZSB0IGluaXRpYWwpKSkpKSkpCiAgICAoaWYgKG51bGwgY29tcGxldGlvbikK
ICAgICAgICAocHJvZ24gKG1lc3NhZ2UgIk5vIGNvbXBsZXRpb24iKSBuaWwpCiAgICAgIChkZWxl
dGUtcmVnaW9uIHN0YXJ0IGVuZCkKICAgICAgKGluc2VydCAoc3Vic3RyaW5nLW5vLXByb3BlcnRp
ZXMgY29tcGxldGlvbikpCiAgICAgICh3aGVuLWxldCAoZXhpdCAocGxpc3QtZ2V0IGNvbXBsZXRp
b24tZXh0cmEtcHJvcGVydGllcyA6ZXhpdC1mdW5jdGlvbikpCiAgICAgICAgKGZ1bmNhbGwgZXhp
dCBjb21wbGV0aW9uIGV4aXQtc3RhdHVzKSkKICAgICAgdCkpKQoKOzs7OzsgQ29tbWFuZDogY29u
c3VsdC1tb2RlLWNvbW1hbmQKCihkZWZ1biBjb25zdWx0LS1tb2RlLW5hbWUgKG1vZGUpCiAgIlJl
dHVybiBuYW1lIHBhcnQgb2YgTU9ERS4iCiAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZwogICAi
Z2xvYmFsLVxcKC4qXFwpLW1vZGUiICJcXDEiCiAgIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcK
ICAgICJcXCgtZ2xvYmFsXFwpPy1tb2RlJCIgIiIKICAgIChpZiAoZXEgbW9kZSAnYy1tb2RlKQog
ICAgICAgICJjYyIKICAgICAgKHN5bWJvbC1uYW1lIG1vZGUpKQogICAgJ2ZpeGVkY2FzZSkKICAg
J2ZpeGVkY2FzZSkpCgooZGVmdW4gY29uc3VsdC0tbW9kZS1jb21tYW5kLWNhbmRpZGF0ZXMgKG1v
ZGVzKQogICJFeHRyYWN0IGNvbW1hbmRzIGZyb20gTU9ERVMuCgpUaGUgbGlzdCBvZiBmZWF0dXJl
cyBpcyBzZWFyY2hlZCBmb3IgZmlsZXMgYmVsb25naW5nIHRvIHRoZSBtb2Rlcy4KRnJvbSB0aGVz
ZSBmaWxlcywgdGhlIGNvbW1hbmRzIGFyZSBleHRyYWN0ZWQuIgogIChsZXQqICgoY29tbWFuZC1m
aWx0ZXIgKGNvbnN1bHQtLXJlZ2V4cC1maWx0ZXIgKHNlcS1maWx0ZXIgIydzdHJpbmdwIGNvbnN1
bHQtbW9kZS1jb21tYW5kLWZpbHRlcikpKQogICAgICAgICAoZmVhdHVyZS1maWx0ZXIgKHNlcS1m
aWx0ZXIgIydzeW1ib2xwIGNvbnN1bHQtbW9kZS1jb21tYW5kLWZpbHRlcikpCiAgICAgICAgICht
aW5vci1oYXNoIChjb25zdWx0LS1zdHJpbmctaGFzaCBtaW5vci1tb2RlLWxpc3QpKQogICAgICAg
ICAobWlub3ItbG9jYWwtbW9kZXMgKHNlcS1maWx0ZXIgKGxhbWJkYSAobSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoZ2V0aGFzaCBtIG1pbm9yLWhhc2gp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2FsLXZh
cmlhYmxlLWlmLXNldC1wIG0pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1vZGVzKSkKICAgICAgICAgKG1pbm9yLWdsb2JhbC1tb2RlcyAoc2VxLWZpbHRlciAobGFt
YmRhIChtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAo
Z2V0aGFzaCBtIG1pbm9yLWhhc2gpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChub3QgKGxvY2FsLXZhcmlhYmxlLWlmLXNldC1wIG0pKSkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXMpKQogICAgICAgICAobWFqb3It
bW9kZXMgKHNlcS1yZW1vdmUgKGxhbWJkYSAobSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdldGhhc2ggbSBtaW5vci1oYXNoKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGVzKSkKICAgICAgICAgKG1ham9yLXBhdGhzLWhhc2ggKGNvbnN1bHQtLXN0
cmluZy1oYXNoIChtYXBjYXIgIydzeW1ib2wtZmlsZSBtYWpvci1tb2RlcykpKQogICAgICAgICAo
bWlub3ItbG9jYWwtcGF0aHMtaGFzaCAoY29uc3VsdC0tc3RyaW5nLWhhc2ggKG1hcGNhciAjJ3N5
bWJvbC1maWxlIG1pbm9yLWxvY2FsLW1vZGVzKSkpCiAgICAgICAgIChtaW5vci1nbG9iYWwtcGF0
aHMtaGFzaCAoY29uc3VsdC0tc3RyaW5nLWhhc2ggKG1hcGNhciAjJ3N5bWJvbC1maWxlIG1pbm9y
LWdsb2JhbC1tb2RlcykpKQogICAgICAgICAobWFqb3ItbmFtZS1yZWdleHAgKHJlZ2V4cC1vcHQg
KG1hcGNhciAjJ2NvbnN1bHQtLW1vZGUtbmFtZSBtYWpvci1tb2RlcykpKQogICAgICAgICAobWlu
b3ItbG9jYWwtbmFtZS1yZWdleHAgKHJlZ2V4cC1vcHQgKG1hcGNhciAjJ2NvbnN1bHQtLW1vZGUt
bmFtZSBtaW5vci1sb2NhbC1tb2RlcykpKQogICAgICAgICAobWlub3ItZ2xvYmFsLW5hbWUtcmVn
ZXhwIChyZWdleHAtb3B0IChtYXBjYXIgIydjb25zdWx0LS1tb2RlLW5hbWUgbWlub3ItZ2xvYmFs
LW1vZGVzKSkpCiAgICAgICAgIChjb21tYW5kcykpCiAgICAoZG9saXN0IChmZWF0dXJlIGxvYWQt
aGlzdG9yeSBjb21tYW5kcykKICAgICAgKHdoZW4tbGV0IChuYW1lIChhbGlzdC1nZXQgJ3Byb3Zp
ZGUgZmVhdHVyZSkpCiAgICAgICAgKGxldCogKChwYXRoIChjYXIgZmVhdHVyZSkpCiAgICAgICAg
ICAgICAgIChmaWxlIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IHBhdGgpKQogICAgICAgICAgICAg
ICAoa2V5IChjb25kCiAgICAgICAgICAgICAgICAgICAgICgobWVtcSBuYW1lIGZlYXR1cmUtZmls
dGVyKSBuaWwpCiAgICAgICAgICAgICAgICAgICAgICgob3IgKGdldGhhc2ggcGF0aCBtYWpvci1w
YXRocy1oYXNoKQogICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gtcCBtYWpv
ci1uYW1lLXJlZ2V4cCBmaWxlKSkKICAgICAgICAgICAgICAgICAgICAgID9tKQogICAgICAgICAg
ICAgICAgICAgICAoKG9yIChnZXRoYXNoIHBhdGggbWlub3ItbG9jYWwtcGF0aHMtaGFzaCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgbWlub3ItbG9jYWwtbmFtZS1y
ZWdleHAgZmlsZSkpCiAgICAgICAgICAgICAgICAgICAgICA/bCkKICAgICAgICAgICAgICAgICAg
ICAgKChvciAoZ2V0aGFzaCBwYXRoIG1pbm9yLWdsb2JhbC1wYXRocy1oYXNoKQogICAgICAgICAg
ICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gtcCBtaW5vci1nbG9iYWwtbmFtZS1yZWdleHAg
ZmlsZSkpCiAgICAgICAgICAgICAgICAgICAgICA/ZykpKSkKICAgICAgICAgICh3aGVuIGtleQog
ICAgICAgICAgICAoZG9saXN0IChjbWQgKGNkciBmZWF0dXJlKSkKICAgICAgICAgICAgICAod2hl
biAoYW5kIChjb25zcCBjbWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNhciBjbWQp
ICdkZWZ1bikKICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tYW5kcCAoY2RyIGNtZCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAobm90IChzdHJpbmctbWF0Y2gtcCBjb21tYW5kLWZpbHRl
ciAoc3ltYm9sLW5hbWUgKGNkciBjbWQpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAobm90
IChnZXQgKGNkciBjbWQpICdieXRlLW9ic29sZXRlLWluZm8pKSkKICAgICAgICAgICAgICAgIChw
dXNoIChjb25zIChjZHIgY21kKSBrZXkpIGNvbW1hbmRzKSkpKSkpKSkpCgo7OzsjIyNhdXRvbG9h
ZAooZGVmdW4gY29uc3VsdC1tb2RlLWNvbW1hbmQgKCZyZXN0IG1vZGVzKQogICJSdW4gYSBjb21t
YW5kIGZyb20gYW55IG9mIHRoZSBnaXZlbiBNT0RFUy4KCklmIG5vIE1PREVTIGFyZSBzcGVjaWZp
ZWQsIHVzZSBjdXJyZW50bHkgYWN0aXZlIG1ham9yIGFuZCBtaW5vciBtb2Rlcy4iCiAgKGludGVy
YWN0aXZlKQogICh1bmxlc3MgbW9kZXMKICAgIChzZXRxIG1vZGVzIChjb25zIG1ham9yLW1vZGUK
ICAgICAgICAgICAgICAgICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKG0pCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGJvdW5kcCBtKSAoc3ltYm9sLXZhbHVlIG0p
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbm9yLW1vZGUtbGlzdCkpKSkK
ICAoY29tbWFuZC1leGVjdXRlCiAgIChpbnRlcm4KICAgIChjb25zdWx0LS1yZWFkCiAgICAgIk1v
ZGUgY29tbWFuZDogIgogICAgIChjb25zdWx0LS1tb2RlLWNvbW1hbmQtY2FuZGlkYXRlcyBtb2Rl
cykKICAgICA6cHJlZGljYXRlCiAgICAgKGxhbWJkYSAoY2FuZCkKICAgICAgIChpZiBjb25zdWx0
LS1uYXJyb3cKICAgICAgICAgICAoPSAoY2RyIGNhbmQpIGNvbnN1bHQtLW5hcnJvdykKICAgICAg
ICAgKC89IChjZHIgY2FuZCkgP2cpKSkKICAgICA6bmFycm93ICcoKD9tIC4gIk1ham9yIikKICAg
ICAgICAgICAgICAgKD9sIC4gIkxvY2FsIE1pbm9yIikKICAgICAgICAgICAgICAgKD9nIC4gIkds
b2JhbCBNaW5vciIpKQogICAgIDpyZXF1aXJlLW1hdGNoIHQKICAgICA6aGlzdG9yeSAnY29uc3Vs
dC0tbW9kZS1jb21tYW5kLWhpc3RvcnkKICAgICA6Y2F0ZWdvcnkgJ2NvbW1hbmQpKSkpCgo7Ozs7
OyBDb21tYW5kOiBjb25zdWx0LXlhbmsKCihkZWZ1biBjb25zdWx0LS15YW5rLXJlYWQgKCkKICAi
T3BlbiBraWxsIHJpbmcgbWVudSBhbmQgcmV0dXJuIHNlbGVjdGVkIHRleHQuIgogIChjb25zdWx0
LS1yZWFkCiAgICJZYW5rIHRleHQ6ICIKICAgKGNvbnN1bHQtLXJlbW92ZS1kdXBzIGtpbGwtcmlu
ZykKICAgOmhpc3RvcnkgdCA7OyBkaXNhYmxlIGhpc3RvcnkKICAgOnNvcnQgbmlsCiAgIDpjYXRl
Z29yeSAnY29uc3VsdC15YW5rCiAgIDpyZXF1aXJlLW1hdGNoIHQKICAgOnByZXZpZXcKICAgOzsg
SWYgcHJldmlvdXMgY29tbWFuZCBpcyB5YW5rLCBoaWRlIHByZXZpb3VzbHkgeWFua2VkIHRleHQK
ICAgKGxldCogKChvdikgKHB0IChwb2ludCkpIChtayAob3IgKGFuZCAoZXEgbGFzdC1jb21tYW5k
ICd5YW5rKSAobWFyayB0KSkgcHQpKSkKICAgICAobGFtYmRhIChjYW5kIHJlc3RvcmUpCiAgICAg
ICAoaWYgcmVzdG9yZQogICAgICAgICAgICh3aGVuIG92IChkZWxldGUtb3ZlcmxheSBvdikpCiAg
ICAgICAgICh1bmxlc3Mgb3YgKHNldHEgb3YgKGNvbnN1bHQtLW92ZXJsYXkgKG1pbiBwdCBtaykg
KG1heCBwdCBtaykgJ2ludmlzaWJsZSB0KSkpCiAgICAgICAgIDs7IFVzZSBgYWRkLWZhY2UtdGV4
dC1wcm9wZXJ0eScgb24gYSBjb3B5IG9mICJjYW5kIGluIG9yZGVyIHRvIG1lcmdlIGZhY2UgcHJv
cGVydGllcwogICAgICAgICAoc2V0cSBjYW5kIChjb3B5LXNlcXVlbmNlIGNhbmQpKQogICAgICAg
ICAoYWRkLWZhY2UtdGV4dC1wcm9wZXJ0eSAwIChsZW5ndGggY2FuZCkgJ2NvbnN1bHQtcHJldmll
dy15YW5rIHQgY2FuZCkKICAgICAgICAgOzsgVXNlIHRoZSBgYmVmb3JlLXN0cmluZycgcHJvcGVy
dHkgc2luY2UgdGhlIG92ZXJsYXkgbWlnaHQgYmUgZW1wdHkuCiAgICAgICAgIChvdmVybGF5LXB1
dCBvdiAnYmVmb3JlLXN0cmluZyBjYW5kKSkpKSkpCgo7OyBJbnNlcnQgc2VsZWN0ZWQgdGV4dC4K
OzsgQWRhcHRlZCBmcm9tIHRoZSBFbWFjcyB5YW5rIGZ1bmN0aW9uLgo7OzsjIyNhdXRvbG9hZAoo
ZGVmdW4gY29uc3VsdC15YW5rICgpCiAgIlNlbGVjdCB0ZXh0IGZyb20gdGhlIGtpbGwgcmluZyBh
bmQgaW5zZXJ0IGl0LiIKICAoaW50ZXJhY3RpdmUpCiAgKGxldCAoKHRleHQgKGNvbnN1bHQtLXlh
bmstcmVhZCkpKQogICAgKHNldHEgeWFuay13aW5kb3ctc3RhcnQgKHdpbmRvdy1zdGFydCkpCiAg
ICAocHVzaC1tYXJrKQogICAgKGluc2VydC1mb3IteWFuayB0ZXh0KQogICAgKHNldHEgdGhpcy1j
b21tYW5kICd5YW5rKQogICAgbmlsKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LXlh
bmstcG9wICgmb3B0aW9uYWwgYXJnKQogICJJZiB0aGVyZSBpcyBhIHJlY2VudCB5YW5rIGFjdCBs
aWtlIGB5YW5rLXBvcCcuCgpPdGhlcndpc2Ugc2VsZWN0IHRleHQgZnJvbSB0aGUga2lsbCByaW5n
IGFuZCBpbnNlcnQgaXQuClNlZSBgeWFuay1wb3AnIGZvciB0aGUgbWVhbmluZyBvZiBBUkcuIgog
IChpbnRlcmFjdGl2ZSAiKnAiKQogIChpZiAoZXEgbGFzdC1jb21tYW5kICd5YW5rKQogICAgICAo
eWFuay1wb3AgKG9yIGFyZyAxKSkKICAgIChjb25zdWx0LXlhbmspKSkKCjs7IFJlcGxhY2UganVz
dC15YW5rZWQgdGV4dCB3aXRoIHNlbGVjdGVkIHRleHQuCjs7IEFkYXB0ZWQgZnJvbSB0aGUgRW1h
Y3MgeWFuay1wb3AgZnVuY3Rpb24uCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LXlhbmst
cmVwbGFjZSAoKQogICJTZWxlY3QgdGV4dCBmcm9tIHRoZSBraWxsIHJpbmcuCgpJZiB0aGVyZSB3
YXMgbm8gcmVjZW50IHlhbmssIGluc2VydCB0aGUgdGV4dC4KT3RoZXJ3aXNlIHJlcGxhY2UgdGhl
IGp1c3QteWFua2VkIHRleHQgd2l0aCB0aGUgc2VsZWN0ZWQgdGV4dC4iCiAgKGludGVyYWN0aXZl
KQogIChpZiAobm90IChlcSBsYXN0LWNvbW1hbmQgJ3lhbmspKQogICAgICAoY29uc3VsdC15YW5r
KQogICAgKGxldCAoKHRleHQgKGNvbnN1bHQtLXlhbmstcmVhZCkpCiAgICAgICAgICAoaW5oaWJp
dC1yZWFkLW9ubHkgdCkKICAgICAgICAgIChwdCAocG9pbnQpKQogICAgICAgICAgKG1rIChtYXJr
IHQpKSkKICAgICAgKHNldHEgdGhpcy1jb21tYW5kICd5YW5rKQogICAgICAoZnVuY2FsbCAob3Ig
eWFuay11bmRvLWZ1bmN0aW9uICdkZWxldGUtcmVnaW9uKSAobWluIHB0IG1rKSAobWF4IHB0IG1r
KSkKICAgICAgKHNldHEgeWFuay11bmRvLWZ1bmN0aW9uIG5pbCkKICAgICAgKHNldC1tYXJrZXIg
KG1hcmstbWFya2VyKSBwdCAoY3VycmVudC1idWZmZXIpKQogICAgICAoaW5zZXJ0LWZvci15YW5r
IHRleHQpCiAgICAgIChzZXQtd2luZG93LXN0YXJ0IChzZWxlY3RlZC13aW5kb3cpIHlhbmstd2lu
ZG93LXN0YXJ0IHQpCiAgICAgIChpZiAoPCBwdCBtaykKICAgICAgICAgIChnb3RvLWNoYXIgKHBy
b2cxIChtYXJrIHQpCiAgICAgICAgICAgICAgICAgICAgICAgKHNldC1tYXJrZXIgKG1hcmstbWFy
a2VyKSAocG9pbnQpIChjdXJyZW50LWJ1ZmZlcikpKSkpKSkKICBuaWwpCgo7Ozs7OyBDb21tYW5k
OiBjb25zdWx0LXJlZ2lzdGVyCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1yZWdpc3Rl
ci13aW5kb3cgKGJ1ZmZlciAmb3B0aW9uYWwgc2hvdy1lbXB0eSkKICAiRW5oYW5jZWQgZHJvcC1p
biByZXBsYWNlbWVudCBmb3IgYHJlZ2lzdGVyLXByZXZpZXcnLgoKQlVGRkVSIGlzIHRoZSB3aW5k
b3cgYnVmZmVyLgpTSE9XLUVNUFRZIG11c3QgYmUgdCBpZiB0aGUgd2luZG93IHNob3VsZCBiZSBz
aG93biBmb3IgYW4gZW1wdHkgcmVnaXN0ZXIgbGlzdC4iCiAgKGxldCAoKHJlZ3MgKHNlcS1maWx0
ZXIgIydjZHIgcmVnaXN0ZXItYWxpc3QpKSkKICAgICh3aGVuIChvciBzaG93LWVtcHR5IHJlZ3Mp
CiAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyLXdpbmRvdyBidWZmZXIKICAgICAgICAgIChjb25z
ICdkaXNwbGF5LWJ1ZmZlci1iZWxvdy1zZWxlY3RlZAogICAgICAgICAgICAgICAgJygod2luZG93
LWhlaWdodCAuIGZpdC13aW5kb3ctdG8tYnVmZmVyKQoJICAgICAgICAgIChwcmVzZXJ2ZS1zaXpl
IC4gKG5pbCAuIHQpKSkpCiAgICAgICAgICBuaWwKICAgICAgICAoc2V0cS1sb2NhbCBjdXJzb3It
aW4tbm9uLXNlbGVjdGVkLXdpbmRvd3MgbmlsKQogICAgICAgIChzZXRxLWxvY2FsIG1vZGUtbGlu
ZS1mb3JtYXQgbmlsKQogICAgICAgIChzZXRxLWxvY2FsIHdpbmRvdy1taW4taGVpZ2h0IDEpCiAg
ICAgICAgKHNlcS1kby1pbmRleGVkCiAgICAgICAgIChsYW1iZGEgKHJlZyBpZHgpCiAgICAgICAg
ICAgKGxldCAoKGJlZyAocG9pbnQpKSkKICAgICAgICAgICAgIChpbnNlcnQgKGZ1bmNhbGwgcmVn
aXN0ZXItcHJldmlldy1mdW5jdGlvbiByZWcpKQogICAgICAgICAgICAgKHdoZW4gKC89IDAgKCUg
aWR4IDIpKQogICAgICAgICAgICAgICAoY29uc3VsdC0tb3ZlcmxheSBiZWcgKHBvaW50KSAnZmFj
ZSAnY29uc3VsdC16ZWJyYSkpKSkKICAgICAgICAgKHNlcS1zb3J0ICMnY2FyLWxlc3MtdGhhbi1j
YXIgcmVncykpKSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtcmVnaXN0ZXItZm9y
bWF0IChyZWcpCiAgIkVuaGFuY2VkIHByZXZpZXcgb2YgcmVnaXN0ZXIgUkVHLgoKVGhpcyBmdW5j
dGlvbiBjYW4gYmUgdXNlZCBhcyBgcmVnaXN0ZXItcHJldmlldy1mdW5jdGlvbicuIgogIChhcHBs
eSAjJ2NvbmNhdAogICAgICAgICAobWFwY2FyIChsYW1iZGEgKHMpIChjb25jYXQgKHRydW5jYXRl
LXN0cmluZy10by13aWR0aCBzIDEwMCAwIG5pbCAi4oCmIikgIlxuIikpCiAgICAgICAgICAgICAg
ICAgKHNwbGl0LXN0cmluZyAoY29uc3VsdC0tcmVnaXN0ZXItZm9ybWF0IHJlZykgIlxuIikpKSkK
CihkZWZ1biBjb25zdWx0LS1yZWdpc3Rlci1mb3JtYXQgKHJlZykKICAiRm9ybWF0IHJlZ2lzdGVy
IFJFRyBmb3IgcHJldmlldy4iCiAgKHBjYXNlLWxldCAoKGAoLGtleSAuICx2YWwpIHJlZykpCiAg
ICAobGV0KiAoKGtleS1zdHIgKHNpbmdsZS1rZXktZGVzY3JpcHRpb24ga2V5KSkKICAgICAgICAg
ICAoZm10IChmb3JtYXQgIiUlLSVkcyAiIChtYXggMyAobGVuZ3RoIGtleS1zdHIpKSkpKQogICAg
ICAoY29uY2F0CiAgICAgICAoZm9ybWF0IGZtdCAocHJvcGVydGl6ZSBrZXktc3RyICdmYWNlICdj
b25zdWx0LWtleSkpCiAgICAgICA7OyBTcGVjaWFsIHByaW50aW5nIGZvciBjZXJ0YWluIHJlZ2lz
dGVyIHR5cGVzCiAgICAgICAoY29uZAogICAgICAgIDs7IERpc3BsYXkgZnVsbCBzdHJpbmcKICAg
ICAgICAoKG9yIChzdHJpbmdwIHZhbCkgKHN0cmluZ3AgKGNhci1zYWZlIHZhbCkpKQogICAgICAg
ICAod2hlbiAoY29uc3AgdmFsKQogICAgICAgICAgIChzZXRxIHZhbCAobWFwY29uY2F0ICMnaWRl
bnRpdHkgdmFsICJcbiIpKSkKICAgICAgICAgKG1hcGNvbmNhdCAjJ2lkZW50aXR5CiAgICAgICAg
ICAgICAgICAgICAgKHNlcS10YWtlIChzcGxpdC1zdHJpbmcgKHN0cmluZy10cmltIHZhbCkgIlxu
IikgMykKICAgICAgICAgICAgICAgICAgICAoZm9ybWF0IGZtdCAiXG4iKSkpCiAgICAgICAgOzsg
RGlzcGxheSAnZmlsZS1xdWVyeQogICAgICAgICgoZXEgKGNhci1zYWZlIHZhbCkgJ2ZpbGUtcXVl
cnkpCiAgICAgICAgIChmb3JtYXQgIiVzIGF0IHBvc2l0aW9uICVkIgogICAgICAgICAgICAgICAg
IChwcm9wZXJ0aXplIChhYmJyZXZpYXRlLWZpbGUtbmFtZSAoY2FkciB2YWwpKSAnZmFjZSAnY29u
c3VsdC1maWxlKQogICAgICAgICAgICAgICAgIChjYWRkciB2YWwpKSkKICAgICAgICA7OyBEaXNw
bGF5IGZ1bGwgbGluZSBvZiBidWZmZXIKICAgICAgICAoKGFuZCAobWFya2VycCB2YWwpIChidWZm
ZXItbGl2ZS1wIChtYXJrZXItYnVmZmVyIHZhbCkpKQogICAgICAgICAod2l0aC1jdXJyZW50LWJ1
ZmZlciAobWFya2VyLWJ1ZmZlciB2YWwpCiAgICAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KICAg
ICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgICAgICAgICAod2lkZW4pCiAgICAgICAg
ICAgICAgIChnb3RvLWNoYXIgdmFsKQogICAgICAgICAgICAgICAoY29uY2F0CiAgICAgICAgICAg
ICAgICAoY29uc3VsdC0tZm9ybWF0LWxvY2F0aW9uIChidWZmZXItbmFtZSkgKGxpbmUtbnVtYmVy
LWF0LXBvcykpCiAgICAgICAgICAgICAgICAoY29uc3VsdC0tbGluZS13aXRoLWN1cnNvciB2YWwp
KSkpKSkKICAgICAgICA7OyBEZWZhdWx0IHByaW50aW5nIGZvciB0aGUgb3RoZXIgdHlwZXMKICAg
ICAgICAodCAocmVnaXN0ZXItZGVzY3JpYmUtb25lbGluZSBrZXkpKSkpKSkpCgooZGVmdW4gY29u
c3VsdC0tcmVnaXN0ZXItYWxpc3QgKCkKICAiUmV0dXJuIHJlZ2lzdGVyIGxpc3Qgb3IgcmFpc2Ug
YW4gZXJyb3IgaWYgdGhlIGxpc3QgaXMgZW1wdHkuIgogIDs7IFNvbWV0aW1lcywgcmVnaXN0ZXJz
IGFyZSBtYWRlIHdpdGhvdXQgYSBgY2RyJy4KICA7OyBTdWNoIHJlZ2lzdGVycyBkb24ndCBkbyBh
bnl0aGluZywgYW5kIGNhbiBiZSBpZ25vcmVkLgogIChvciAoc2VxLWZpbHRlciAjJ2NkciByZWdp
c3Rlci1hbGlzdCkgKHVzZXItZXJyb3IgIkFsbCByZWdpc3RlcnMgYXJlIGVtcHR5IikpKQoKOzs7
IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtcmVnaXN0ZXIgKCZvcHRpb25hbCBhcmcpCiAgIkxv
YWQgcmVnaXN0ZXIgYW5kIGVpdGhlciBqdW1wIHRvIGxvY2F0aW9uIG9yIGluc2VydCB0aGUgc3Rv
cmVkIHRleHQuCgpUaGlzIGNvbW1hbmQgaXMgdXNlZnVsIHRvIHNlYXJjaCB0aGUgcmVnaXN0ZXIg
Y29udGVudHMuIEZvciBxdWljayBhY2Nlc3MgdG8KcmVnaXN0ZXJzIGl0IGlzIHN0aWxsIHJlY29t
bWVuZGVkIHRvIHVzZSB0aGUgcmVnaXN0ZXIgZnVuY3Rpb25zCmBjb25zdWx0LXJlZ2lzdGVyLWxv
YWQnIGFuZCBgY29uc3VsdC1yZWdpc3Rlci1zdG9yZScgb3IgdGhlIGJ1aWx0LWluIGJ1aWx0LWlu
CnJlZ2lzdGVyIGFjY2VzcyBmdW5jdGlvbnMuIFRoZSBjb21tYW5kIHN1cHBvcnRzIG5hcnJvd2lu
Zywgc2VlCmBjb25zdWx0LXJlZ2lzdGVyLW5hcnJvdycuIE1hcmtlciBwb3NpdGlvbnMgYXJlIHBy
ZXZpZXdlZC4gU2VlCmBqdW1wLXRvLXJlZ2lzdGVyJyBhbmQgYGluc2VydC1yZWdpc3RlcicgZm9y
IHRoZSBtZWFuaW5nIG9mIEFSRy4iCiAgKGludGVyYWN0aXZlICJQIikKICAoY29uc3VsdC1yZWdp
c3Rlci1sb2FkCiAgIChjb25zdWx0LS1yZWFkCiAgICAiUmVnaXN0ZXI6ICIKICAgIChtYXBjYXIg
KGxhbWJkYSAocmVnKSAoY29ucyAoY29uc3VsdC0tcmVnaXN0ZXItZm9ybWF0IHJlZykgKGNhciBy
ZWcpKSkKICAgICAgICAgICAgKHNvcnQgKGNvbnN1bHQtLXJlZ2lzdGVyLWFsaXN0KSAjJ2Nhci1s
ZXNzLXRoYW4tY2FyKSkKICAgIDpjYXRlZ29yeSAnY29uc3VsdC1yZWdpc3RlcgogICAgOnByZXZp
ZXcKICAgIChsZXQgKChwcmV2aWV3IChjb25zdWx0LS1wcmV2aWV3LXBvc2l0aW9uKSkpCiAgICAg
IChsYW1iZGEgKGNhbmQgcmVzdG9yZSkKICAgICAgICAoZnVuY2FsbCBwcmV2aWV3CiAgICAgICAg
ICAgICAgICAgOzsgUHJldmlldyBtYXJrZXJzCiAgICAgICAgICAgICAgICAgKHdoZW4tbGV0IChy
ZWcgKGdldC1yZWdpc3RlciBjYW5kKSkKICAgICAgICAgICAgICAgICAgIChhbmQgKG1hcmtlcnAg
cmVnKSByZWcpKQogICAgICAgICAgICAgICAgIHJlc3RvcmUpKSkKICAgIDpuYXJyb3cKICAgIChj
b25zCiAgICAgKGxhbWJkYSAoY2FuZCkKICAgICAgIChsZXQgKChyZWcgKGdldC1yZWdpc3RlciAo
Y2RyIGNhbmQpKSkpCiAgICAgICAgIChzZXEtZmluZCAobGFtYmRhICh4KQogICAgICAgICAgICAg
ICAgICAgICAoYW5kCiAgICAgICAgICAgICAgICAgICAgICAoPSAoY2FyIHgpIGNvbnN1bHQtLW5h
cnJvdykKICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIChjYWRkciB4KSByZWcpKSkKICAg
ICAgICAgICAgICAgICAgIGNvbnN1bHQtcmVnaXN0ZXItbmFycm93KSkpCiAgICAgKG1hcGNhciAo
cGNhc2UtbGFtYmRhIChgKCx4ICx5ICxfKSkgKGNvbnMgeCB5KSkKICAgICAgICAgICAgIGNvbnN1
bHQtcmVnaXN0ZXItbmFycm93KSkKICAgIDpzb3J0IG5pbAogICAgOnJlcXVpcmUtbWF0Y2ggdAog
ICAgOmhpc3RvcnkgdCA7OyBkaXNhYmxlIGhpc3RvcnkKICAgIDpsb29rdXAgIydjb25zdWx0LS1s
b29rdXAtY2RyKQogICBhcmcpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtcmVnaXN0
ZXItbG9hZCAocmVnICZvcHRpb25hbCBhcmcpCiAgIkRvIHdoYXQgSSBtZWFuIHdpdGggYSBSRUcu
CgpGb3IgYSB3aW5kb3cgY29uZmlndXJhdGlvbiwgcmVzdG9yZSBpdC4gRm9yIGEgbnVtYmVyIG9y
IHRleHQsIGluc2VydCBpdC4gRm9yIGEKbG9jYXRpb24sIGp1bXAgdG8gaXQuIFNlZSBganVtcC10
by1yZWdpc3RlcicgYW5kIGBpbnNlcnQtcmVnaXN0ZXInIGZvciB0aGUKbWVhbmluZyBvZiBBUkcu
IgogIChpbnRlcmFjdGl2ZQogICAobGlzdAogICAgKGFuZCAoY29uc3VsdC0tcmVnaXN0ZXItYWxp
c3QpCiAgICAgICAgIChyZWdpc3Rlci1yZWFkLXdpdGgtcHJldmlldyAiTG9hZCByZWdpc3Rlcjog
IikpCiAgICBjdXJyZW50LXByZWZpeC1hcmcpKQogIChjb25kaXRpb24tY2FzZSBuaWwKICAgICAg
KGp1bXAtdG8tcmVnaXN0ZXIgcmVnIGFyZykKICAgICh1c2VyLWVycm9yIChpbnNlcnQtcmVnaXN0
ZXIgcmVnIGFyZykpKSkKCihkZWZ1biBjb25zdWx0LS1yZWdpc3Rlci1hY3Rpb24gKGFjdGlvbi1s
aXN0KQogICJSZWFkIHJlZ2lzdGVyIGtleSBhbmQgZXhlY3V0ZSBhY3Rpb24gZnJvbSBBQ1RJT04t
TElTVC4KClRoaXMgZnVuY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGByZWdpc3Rlci1yZWFkLXdpdGgt
cHJldmlldycuIgogIChsZXQqICgoYnVmZmVyICIqUmVnaXN0ZXIgUHJldmlldyoiKQogICAgICAg
ICAocHJlZml4IChjYXIgYWN0aW9uLWxpc3QpKQogICAgICAgICAoYWN0aW9uLWxpc3QgKGNkciBh
Y3Rpb24tbGlzdCkpCiAgICAgICAgIChhY3Rpb24gKGNhciAobnRoIDAgYWN0aW9uLWxpc3QpKSkK
ICAgICAgICAgKHJlZykKICAgICAgICAgKHByZXZpZXcKICAgICAgICAgIChsYW1iZGEgKCkKCSAg
ICAodW5sZXNzIChnZXQtYnVmZmVyLXdpbmRvdyBidWZmZXIpCgkgICAgICAocmVnaXN0ZXItcHJl
dmlldyBidWZmZXIgJ3Nob3ctZW1wdHkpCiAgICAgICAgICAgICAgKHdoZW4tbGV0ICh3aW4gKGdl
dC1idWZmZXItd2luZG93IGJ1ZmZlcikpCiAgICAgICAgICAgICAgICAod2l0aC1zZWxlY3RlZC13
aW5kb3cgd2luCiAgICAgICAgICAgICAgICAgIChsZXQgKChpbmhpYml0LXJlYWQtb25seSB0KSkK
ICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQogICAgICAgICAgICAg
ICAgICAgIChpbnNlcnQKICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUgKGNvbmNhdCBw
cmVmaXggIjogICIpICdmYWNlICdjb25zdWx0LWhlbHApCiAgICAgICAgICAgICAgICAgICAgICht
YXBjb25jYXQKICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKHgpCiAgICAgICAgICAgICAg
ICAgICAgICAgIChjb25jYXQgKHByb3BlcnRpemUgKGZvcm1hdCAiTS0lYyIgKGNhciB4KSkgJ2Zh
Y2UgJ2NvbnN1bHQta2V5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiAocHJv
cGVydGl6ZSAoY2FkciB4KSAnZmFjZSAnY29uc3VsdC1oZWxwKSkpCiAgICAgICAgICAgICAgICAg
ICAgICBhY3Rpb24tbGlzdCAiICAiKSkKICAgICAgICAgICAgICAgICAgICAoZml0LXdpbmRvdy10
by1idWZmZXIpKSkpKSkpCgkgKHRpbWVyICh3aGVuIChudW1iZXJwIHJlZ2lzdGVyLXByZXZpZXct
ZGVsYXkpCgkgICAgICAgICAgKHJ1bi13aXRoLXRpbWVyIHJlZ2lzdGVyLXByZXZpZXctZGVsYXkg
bmlsIHByZXZpZXcpKSkKCSAoaGVscC1jaGFycyAoc2VxLXJlbW92ZSAjJ2dldC1yZWdpc3RlciAo
Y29ucyBoZWxwLWNoYXIgaGVscC1ldmVudC1saXN0KSkpKQogICAgKHVud2luZC1wcm90ZWN0CiAg
ICAgICAgKHdoaWxlIChub3QgcmVnKQoJICAod2hpbGUgKG1lbXEgKHJlYWQta2V5IChwcm9wZXJ0
aXplIChjYWRkciAoYXNzcSBhY3Rpb24gYWN0aW9uLWxpc3QpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFjZSAnbWluaWJ1ZmZlci1wcm9tcHQpKQoJCSAg
ICAgICBoZWxwLWNoYXJzKQogICAgICAgICAgICAoZnVuY2FsbCBwcmV2aWV3KSkKICAgICAgICAg
IChjb25kCiAgICAgICAgICAgKChvciAoZXEgP1xDLWcgbGFzdC1pbnB1dC1ldmVudCkKICAgICAg
ICAgICAgICAgIChlcSAnZXNjYXBlIGxhc3QtaW5wdXQtZXZlbnQpCiAgICAgICAgICAgICAgICAo
ZXEgP1xDLVxbIGxhc3QtaW5wdXQtZXZlbnQpKQogICAgICAgICAgICAoa2V5Ym9hcmQtcXVpdCkp
CiAgICAgICAgICAgKChhbmQgKG51bWJlcnAgbGFzdC1pbnB1dC1ldmVudCkgKGFzc3EgKGxvZ3hv
ciAjeDgwMDAwMDAgbGFzdC1pbnB1dC1ldmVudCkgYWN0aW9uLWxpc3QpKQogICAgICAgICAgICAo
c2V0cSBhY3Rpb24gKGxvZ3hvciAjeDgwMDAwMDAgbGFzdC1pbnB1dC1ldmVudCkpKQoJICAgKChj
aGFyYWN0ZXJwIGxhc3QtaW5wdXQtZXZlbnQpCiAgICAgICAgICAgIChzZXRxIHJlZyBsYXN0LWlu
cHV0LWV2ZW50KSkKICAgICAgICAgICAodCAoZXJyb3IgIk5vbi1jaGFyYWN0ZXIgaW5wdXQtZXZl
bnQiKSkpKQogICAgICAod2hlbiAodGltZXJwIHRpbWVyKQogICAgICAgIChjYW5jZWwtdGltZXIg
dGltZXIpKQogICAgICAobGV0ICgodyAoZ2V0LWJ1ZmZlci13aW5kb3cgYnVmZmVyKSkpCiAgICAg
ICAgKHdoZW4gKHdpbmRvdy1saXZlLXAgdykKICAgICAgICAgIChkZWxldGUtd2luZG93IHcpKSkK
ICAgICAgKHdoZW4gKGdldC1idWZmZXIgYnVmZmVyKQogICAgICAgIChraWxsLWJ1ZmZlciBidWZm
ZXIpKSkKICAgICh3aGVuIHJlZwogICAgICAoZnVuY2FsbCAoY2FkZGRyIChhc3NxIGFjdGlvbiBh
Y3Rpb24tbGlzdCkpIHJlZykpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LXJlZ2lz
dGVyLXN0b3JlIChhcmcpCiAgIlN0b3JlIHJlZ2lzdGVyIGRlcGVuZGVudCBvbiBjdXJyZW50IGNv
bnRleHQsIHNob3dpbmcgYW4gYWN0aW9uIG1lbnUuCgpXaXRoIGFuIGFjdGl2ZSByZWdpb24sIHN0
b3JlL2FwcGVuZC9wcmVwZW5kIHRoZSBjb250ZW50cywgb3B0aW9uYWxseSBkZWxldGluZwp0aGUg
cmVnaW9uIHdoZW4gYSBwcmVmaXggQVJHIGlzIGdpdmVuLiBXaXRoIGEgbnVtZXJpYyBwcmVmaXgg
QVJHLCBzdG9yZS9hZGQgdGhlCm51bWJlci4gT3RoZXJ3aXNlIHN0b3JlIHBvaW50LCBmcmFtZXNl
dCwgd2luZG93IG9yIGttYWNyby4iCiAgKGludGVyYWN0aXZlICJQIikKICAoY29uc3VsdC0tcmVn
aXN0ZXItYWN0aW9uCiAgIChjb25kCiAgICAoKHVzZS1yZWdpb24tcCkKICAgICAobGV0ICgoYmVn
IChyZWdpb24tYmVnaW5uaW5nKSkKICAgICAgICAgICAoZW5kIChyZWdpb24tZW5kKSkpCiAgICAg
ICBgKCJSZWdpb24iCiAgICAgICAgICg/YyAiY29weSIgIkNvcHkgcmVnaW9uIHRvIHJlZ2lzdGVy
OiAiICwobGFtYmRhIChyKSAoY29weS10by1yZWdpc3RlciByIGJlZyBlbmQgYXJnIHQpKSkKICAg
ICAgICAgKD9hICJhcHBlbmQiICJBcHBlbmQgcmVnaW9uIHRvIHJlZ2lzdGVyOiAiICwobGFtYmRh
IChyKSAoYXBwZW5kLXRvLXJlZ2lzdGVyIHIgYmVnIGVuZCBhcmcpKSkKICAgICAgICAgKD9wICJw
cmVwZW5kIiAiUHJlcGVuZCByZWdpb24gdG8gcmVnaXN0ZXI6ICIgLChsYW1iZGEgKHIpIChwcmVw
ZW5kLXRvLXJlZ2lzdGVyIHIgYmVnIGVuZCBhcmcpKSkpKSkKICAgICgobnVtYmVycCBhcmcpCiAg
ICAgYCgsKGZvcm1hdCAiTnVtYmVyICVzIiBhcmcpCiAgICAgICAoP3MgInN0b3JlIiAsKGZvcm1h
dCAiU3RvcmUgJXMgaW4gcmVnaXN0ZXI6ICIgYXJnKSAsKGxhbWJkYSAocikgKG51bWJlci10by1y
ZWdpc3RlciBhcmcgcikpKQogICAgICAgKD9hICJhZGQiICwoZm9ybWF0ICJBZGQgJXMgdG8gcmVn
aXN0ZXI6ICIgYXJnKSAsKGxhbWJkYSAocikgKGluY3JlbWVudC1yZWdpc3RlciBhcmcgcikpKSkp
CiAgICAodAogICAgIGAoIlN0b3JlIgogICAgICAgKD9wICJwb2ludCIgIlBvaW50IHRvIHJlZ2lz
dGVyOiAiICwjJ3BvaW50LXRvLXJlZ2lzdGVyKQogICAgICAgKD9mICJmcmFtZXNldCIgIkZyYW1l
c2V0IHRvIHJlZ2lzdGVyOiAiICwjJ2ZyYW1lc2V0LXRvLXJlZ2lzdGVyKQogICAgICAgKD93ICJ3
aW5kb3ciICJXaW5kb3cgdG8gcmVnaXN0ZXI6ICIgLCMnd2luZG93LWNvbmZpZ3VyYXRpb24tdG8t
cmVnaXN0ZXIpCiAgICAgICAsQChhbmQgbGFzdC1rYmQtbWFjcm8gYCgoP2sgImttYWNybyIgIktt
YWNybyB0byByZWdpc3RlcjogIiAsIydrbWFjcm8tdG8tcmVnaXN0ZXIpKSkpKSkpKQoKOzs7Ozsg
Q29tbWFuZDogY29uc3VsdC1ib29rbWFyawoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQt
Ym9va21hcmsgKG5hbWUpCiAgIklmIGJvb2ttYXJrIE5BTUUgZXhpc3RzLCBvcGVuIGl0LCBvdGhl
cndpc2UgY3JlYXRlIGEgbmV3IGJvb2ttYXJrIHdpdGggTkFNRS4KClRoZSBjb21tYW5kIHN1cHBv
cnRzIHByZXZpZXcgb2YgZmlsZSBib29rbWFya3MgYW5kIG5hcnJvd2luZy4gU2VlIHRoZQp2YXJp
YWJsZSBgY29uc3VsdC1ib29rbWFyay1uYXJyb3cnIGZvciB0aGUgbmFycm93aW5nIGNvbmZpZ3Vy
YXRpb24uIgogIChpbnRlcmFjdGl2ZQogICAobGlzdAogICAgKGNvbnN1bHQtLXdpdGgtZmlsZS1w
cmV2aWV3IChvcGVuKQogICAgICAoY29uc3VsdC0tcmVhZAogICAgICAgIkJvb2ttYXJrOiAiCiAg
ICAgICAoYm9va21hcmstYWxsLW5hbWVzKQogICAgICAgOzsgQWRkIGRlZmF1bHQgbmFtZXMgdG8g
ZnV0dXJlIGhpc3RvcnkuCiAgICAgICA7OyBJZ25vcmUgZXJyb3JzIHN1Y2ggdGhhdCBgY29uc3Vs
dC1ib29rbWFyaycgY2FuIGJlIHVzZWQgaW4KICAgICAgIDs7IGJ1ZmZlcnMgd2hpY2ggYXJlIG5v
dCBiYWNrZWQgYnkgYSBmaWxlLgogICAgICAgOmFkZC1oaXN0b3J5IChpZ25vcmUtZXJyb3JzIChi
b29rbWFyay1wcm9wLWdldCAoYm9va21hcmstbWFrZS1yZWNvcmQpICdkZWZhdWx0cykpCiAgICAg
ICA6bmFycm93CiAgICAgICAoY29ucwogICAgICAgIChsYW1iZGEgKGNhbmQpCiAgICAgICAgICAo
aWYtbGV0ICgobiBjb25zdWx0LS1uYXJyb3cpCiAgICAgICAgICAgICAgICAgICAoYm0gKGJvb2tt
YXJrLWdldC1ib29rbWFyay1yZWNvcmQKICAgICAgICAgICAgICAgICAgICAgICAgKGFzc29jIGNh
bmQgYm9va21hcmstYWxpc3QpKSkpCiAgICAgICAgICAgICAgKGVxIG4gKGNhZGRyIChhbGlzdC1n
ZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciAoYWxpc3QtZ2V0ICdoYW5kbGVyIGJt
KSAjJ2Jvb2ttYXJrLWRlZmF1bHQtaGFuZGxlcikKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN1bHQtYm9va21hcmstbmFycm93KSkpCiAgICAgICAgICAgIHQpKQogICAgICAgIChtYXBj
YXIgKHBjYXNlLWxhbWJkYSAoYCgseCAseSAsXykpIChjb25zIHggeSkpCiAgICAgICAgICAgICAg
ICBjb25zdWx0LWJvb2ttYXJrLW5hcnJvdykpCiAgICAgICA6cHJldmlldwogICAgICAgKGxldCAo
KHByZXZpZXcgKGNvbnN1bHQtLXByZXZpZXctcG9zaXRpb24pKSkKICAgICAgICAgKGxhbWJkYSAo
Y2FuZCByZXN0b3JlKQogICAgICAgICAgIChmdW5jYWxsCiAgICAgICAgICAgIHByZXZpZXcKICAg
ICAgICAgICAgKHdoZW4tbGV0IChibSAoYm9va21hcmstZ2V0LWJvb2ttYXJrLXJlY29yZAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAoYXNzb2MgY2FuZCBib29rbWFyay1hbGlzdCkpKQogICAg
ICAgICAgICAgIChpZi1sZXQqICgoZmlsZSAoYWxpc3QtZ2V0ICdmaWxlbmFtZSBibSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgIChwb3MgKGFsaXN0LWdldCAncG9zaXRpb24gYm0pKQogICAgICAg
ICAgICAgICAgICAgICAgICA7OyBPbmx5IHByZXZpZXcgYm9va21hcmtzIHdpdGhvdXQgYSBoYW5k
bGVyCiAgICAgICAgICAgICAgICAgICAgICAgIDs7IGFrYSBgYm9va21hcmstZGVmYXVsdC1oYW5k
bGVyJyEKICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZiAoYW5kIChub3QgKGFsaXN0LWdldCAn
aGFuZGxlciBibSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBv
cGVuIGZpbGUpKSkpCiAgICAgICAgICAgICAgICAgIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikg
cG9zIGJ1ZikKICAgICAgICAgICAgICAgICh1bmxlc3MgcmVzdG9yZSAobWluaWJ1ZmZlci1tZXNz
YWdlICJObyBwcmV2aWV3IGZvciBzcGVjaWFsIGJvb2ttYXJrIikpCiAgICAgICAgICAgICAgICBu
aWwpKQogICAgICAgICAgICByZXN0b3JlKSkpCiAgICAgICA6aGlzdG9yeSAnYm9va21hcmstaGlz
dG9yeQogICAgICAgOmNhdGVnb3J5ICdib29rbWFyaykpKSkKICAoYm9va21hcmstbWF5YmUtbG9h
ZC1kZWZhdWx0LWZpbGUpCiAgKGlmIChhc3NvYyBuYW1lIGJvb2ttYXJrLWFsaXN0KQogICAgICAo
Ym9va21hcmstanVtcCBuYW1lKQogICAgKGJvb2ttYXJrLXNldCBuYW1lKSkpCgo7Ozs7OyBDb21t
YW5kOiBjb25zdWx0LWFwcm9wb3MKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LWFwcm9w
b3MgKCkKICAiU2VsZWN0IHBhdHRlcm4gYW5kIGNhbGwgYGFwcm9wb3MnLgoKVGhlIGRlZmF1bHQg
dmFsdWUgb2YgdGhlIGNvbXBsZXRpb24gaXMgdGhlIHN5bWJvbCBhdCBwb2ludC4iCiAgKGludGVy
YWN0aXZlKQogIChsZXQgKChwYXR0ZXJuCiAgICAgICAgIChjb25zdWx0LS1yZWFkCiAgICAgICAg
ICAiQXByb3BvczogIgogICAgICAgICAgb2JhcnJheQogICAgICAgICAgOnByZWRpY2F0ZSAobGFt
YmRhICh4KSAob3IgKGZib3VuZHAgeCkgKGJvdW5kcCB4KSAoZmFjZXAgeCkgKHN5bWJvbC1wbGlz
dCB4KSkpCiAgICAgICAgICA6aGlzdG9yeSAnY29uc3VsdC0tYXByb3Bvcy1oaXN0b3J5CiAgICAg
ICAgICA6Y2F0ZWdvcnkgJ3N5bWJvbAogICAgICAgICAgOmRlZmF1bHQgKHRoaW5nLWF0LXBvaW50
ICdzeW1ib2wpKSkpCiAgICAod2hlbiAoc3RyaW5nPSBwYXR0ZXJuICIiKQogICAgICAodXNlci1l
cnJvciAiTm8gcGF0dGVybiBnaXZlbiIpKQogICAgKGFwcm9wb3MgcGF0dGVybikpKQoKOzs7Ozsg
Q29tbWFuZDogY29uc3VsdC1jb21wbGV4LWNvbW1hbmQKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBj
b25zdWx0LWNvbXBsZXgtY29tbWFuZCAoKQogICJTZWxlY3QgYW5kIGV2YWx1YXRlIGNvbW1hbmQg
ZnJvbSB0aGUgY29tbWFuZCBoaXN0b3J5LgoKVGhpcyBjb21tYW5kIGNhbiBhY3QgYXMgYSBkcm9w
LWluIHJlcGxhY2VtZW50IGZvciBgcmVwZWF0LWNvbXBsZXgtY29tbWFuZCcuIgogIChpbnRlcmFj
dGl2ZSkKICAobGV0KiAoKGhpc3RvcnkgKG9yIChjb25zdWx0LS1yZW1vdmUtZHVwcyAobWFwY2Fy
ICMncHJpbjEtdG8tc3RyaW5nIGNvbW1hbmQtaGlzdG9yeSkpCiAgICAgICAgICAgICAgICAgICAg
ICAodXNlci1lcnJvciAiVGhlcmUgYXJlIG5vIHByZXZpb3VzIGNvbXBsZXggY29tbWFuZHMiKSkp
CiAgICAgICAgIChjbWQgKHJlYWQgKGNvbnN1bHQtLXJlYWQKICAgICAgICAgICAgICAgICAgICAg
IkNvbW1hbmQ6ICIgaGlzdG9yeQogICAgICAgICAgICAgICAgICAgICA6ZGVmYXVsdCAoY2FyIGhp
c3RvcnkpCiAgICAgICAgICAgICAgICAgICAgIDpzb3J0IG5pbAogICAgICAgICAgICAgICAgICAg
ICA6aGlzdG9yeSB0IDs7IGRpc2FibGUgaGlzdG9yeQogICAgICAgICAgICAgICAgICAgICA6Y2F0
ZWdvcnkgJ2V4cHJlc3Npb24pKSkpCiAgICA7OyBUYWtlbiBmcm9tIGByZXBlYXQtY29tcGxleC1j
b21tYW5kJwogICAgKGFkZC10by1oaXN0b3J5ICdjb21tYW5kLWhpc3RvcnkgY21kKQogICAgKGFw
cGx5ICMnZnVuY2FsbC1pbnRlcmFjdGl2ZWx5CgkgICAoY2FyIGNtZCkKCSAgIChtYXBjYXIgKGxh
bWJkYSAoZSkgKGV2YWwgZSB0KSkgKGNkciBjbWQpKSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3Vs
dC1oaXN0b3J5CgooZGVmdW4gY29uc3VsdC0tY3VycmVudC1oaXN0b3J5ICgpCiAgIlJldHVybiB0
aGUgaGlzdG9yeSByZWxldmFudCB0byB0aGUgY3VycmVudCBidWZmZXIuCgpJZiB0aGUgbWluaWJ1
ZmZlciBpcyBhY3RpdmUsIHJldHVybnMgdGhlIG1pbmlidWZmZXIgaGlzdG9yeSwKb3RoZXJ3aXNl
IHRoZSBoaXN0b3J5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1vZGUgaXMgcmV0dXJuZWQuClRoZXJl
IGlzIGEgc3BlY2lhbCBjYXNlIGZvciBgcmVwZWF0LWNvbXBsZXgtY29tbWFuZCcsCmZvciB3aGlj
aCB0aGUgY29tbWFuZCBoaXN0b3J5IGlzIHVzZWQuIgogIChjb25kCiAgIDs7IElmIHByZXNzaW5n
ICJDLXggTS06IiwgaS5lLiwgYHJlcGVhdC1jb21wbGV4LWNvbW1hbmQnLAogICA7OyB3ZSBhcmUg
aW5zdGVhZCBxdWVyeWluZyB0aGUgYGNvbW1hbmQtaGlzdG9yeScgYW5kIGdldCBhIGZ1bGwgcy1l
eHByZXNzaW9uLgogICA7OyBBbHRlcm5hdGl2ZWx5IHlvdSBtaWdodCB3YW50IHRvIHVzZSBgY29u
c3VsdC1jb21wbGV4LWNvbW1hbmQnLAogICA7OyB3aGljaCBjYW4gYWxzbyBiZSBib3VuZCB0byAi
Qy14IE0tOiIhCiAgICgoZXEgbGFzdC1jb21tYW5kICdyZXBlYXQtY29tcGxleC1jb21tYW5kKQog
ICAgKG1hcGNhciAjJ3ByaW4xLXRvLXN0cmluZyBjb21tYW5kLWhpc3RvcnkpKQogICA7OyBJbiB0
aGUgbWluaWJ1ZmZlciB3ZSB1c2UgdGhlIGN1cnJlbnQgbWluaWJ1ZmZlciBoaXN0b3J5LAogICA7
OyB3aGljaCBjYW4gYmUgY29uZmlndXJlZCBieSBzZXR0aW5nIGBtaW5pYnVmZmVyLWhpc3Rvcnkt
dmFyaWFibGUnLgogICAoKG1pbmlidWZmZXJwKQogICAgKGlmIChlcSBtaW5pYnVmZmVyLWhpc3Rv
cnktdmFyaWFibGUgdCkKICAgICAgICAodXNlci1lcnJvciAiTWluaWJ1ZmZlciBoaXN0b3J5IGlz
IGRpc2FibGVkIGZvciBgJXMnIiB0aGlzLWNvbW1hbmQpCiAgICAgIChzeW1ib2wtdmFsdWUgbWlu
aWJ1ZmZlci1oaXN0b3J5LXZhcmlhYmxlKSkpIDs7IChtaW5pYnVmZmVyLWhpc3RvcnktdmFsdWUp
IGlzIEVtYWNzIDI3IG9ubHkKICAgOzsgT3RoZXJ3aXNlIHdlIHVzZSBhIG1vZGUtc3BlY2lmaWMg
aGlzdG9yeSwgc2VlIGBjb25zdWx0LW1vZGUtaGlzdG9yaWVzJy4KICAgKHQgKHdoZW4tbGV0ICho
aXN0b3J5CiAgICAgICAgICAgICAgICAgKG9yIChzZXEtZmluZCAobGFtYmRhIChyaW5nKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChkZXJpdmVkLW1vZGUtcCAoY2FyIHJp
bmcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZHAgKGNkciBy
aW5nKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VsdC1tb2RlLWhpc3Rv
cmllcykKICAgICAgICAgICAgICAgICAgICAgKHVzZXItZXJyb3IKICAgICAgICAgICAgICAgICAg
ICAgICJObyBoaXN0b3J5IGNvbmZpZ3VyZWQgZm9yIGAlcycsIHNlZSBgY29uc3VsdC1tb2RlLWhp
c3RvcmllcyciCiAgICAgICAgICAgICAgICAgICAgICBtYWpvci1tb2RlKSkpCiAgICAgICAgKHN5
bWJvbC12YWx1ZSAoY2RyIGhpc3RvcnkpKSkpKSkKCjs7IFRoaXMgY29tbWFuZCBoYXMgYmVlbiBh
ZG9wdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL29hbnRvbGluL2NvbXBsZXRpbmctaGlzdG9y
eS8uCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LWhpc3RvcnkgKCZvcHRpb25hbCBoaXN0
b3J5KQogICJJbnNlcnQgc3RyaW5nIGZyb20gSElTVE9SWSBvZiBjdXJyZW50IGJ1ZmZlci4KCklu
IG9yZGVyIHRvIHNlbGVjdCBmcm9tIGEgc3BlY2lmaWMgSElTVE9SWSwgcGFzcyB0aGUgaGlzdG9y
eSB2YXJpYWJsZSBhcyBhcmd1bWVudC4iCiAgKGludGVyYWN0aXZlKQogIChsZXQgKChzdHIgKGNv
bnN1bHQtLWxvY2FsLWxldCAoKGVuYWJsZS1yZWN1cnNpdmUtbWluaWJ1ZmZlcnMgdCkpCiAgICAg
ICAgICAgICAgIChjb25zdWx0LS1yZWFkCiAgICAgICAgICAgICAgICAiSGlzdG9yeTogIgogICAg
ICAgICAgICAgICAgKGxldCAoKGhpc3RvcnkgKG9yIGhpc3RvcnkgKGNvbnN1bHQtLWN1cnJlbnQt
aGlzdG9yeSkpKSkKICAgICAgICAgICAgICAgICAgKG9yIChjb25zdWx0LS1yZW1vdmUtZHVwcyAo
aWYgKHJpbmctcCBoaXN0b3J5KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAocmluZy1lbGVtZW50cyBoaXN0b3J5KQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGlzdG9yeSkpCiAgICAgICAgICAgICAgICAgICAgICAo
dXNlci1lcnJvciAiSGlzdG9yeSBpcyBlbXB0eSIpKSkKICAgICAgICAgICAgICAgIDpoaXN0b3J5
IHQgOzsgZGlzYWJsZSBoaXN0b3J5CiAgICAgICAgICAgICAgICA6Y2F0ZWdvcnkgOzsgUmVwb3J0
IGNvbW1hbmQgY2F0ZWdvcnkgZm9yIE0teCBoaXN0b3J5CiAgICAgICAgICAgICAgICAoYW5kICht
aW5pYnVmZmVycCkKICAgICAgICAgICAgICAgICAgICAgKGVxIG1pbmlidWZmZXItaGlzdG9yeS12
YXJpYWJsZSAnZXh0ZW5kZWQtY29tbWFuZC1oaXN0b3J5KQogICAgICAgICAgICAgICAgICAgICAn
Y29tbWFuZCkKICAgICAgICAgICAgICAgIDpzb3J0IG5pbCkpKSkKICAgICh3aGVuIChtaW5pYnVm
ZmVycCkKICAgICAgKGRlbGV0ZS1taW5pYnVmZmVyLWNvbnRlbnRzKSkKICAgIChpbnNlcnQgKHN1
YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0cikpKSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtaXNl
YXJjaAoKKGRlZnVuIGNvbnN1bHQtaXNlYXJjaC1mb3J3YXJkICgmb3B0aW9uYWwgcmV2ZXJzZSkK
ICAiQ29udGludWUgaXNlYXJjaCBmb3J3YXJkIG9wdGlvbmFsbHkgaW4gUkVWRVJTRS4iCiAgKGlu
dGVyYWN0aXZlKQogIChjb25zdWx0LS1yZXF1aXJlLW1pbmlidWZmZXIpCiAgKHNldHEgaXNlYXJj
aC1uZXctZm9yd2FyZCAobm90IHJldmVyc2UpIGlzZWFyY2gtbmV3LW5vbmluY3JlbWVudGFsIG5p
bCkKICAoZnVuY2FsbCAob3IgKGNvbW1hbmQtcmVtYXBwaW5nICMnZXhpdC1taW5pYnVmZmVyKSAj
J2V4aXQtbWluaWJ1ZmZlcikpKQoKKGRlZnVuIGNvbnN1bHQtaXNlYXJjaC1yZXZlcnNlICgmb3B0
aW9uYWwgcmV2ZXJzZSkKICAiQ29udGludWUgaXNlYXJjaCBiYWNrd2FyZCBvcHRpb25hbGx5IGlu
IFJFVkVSU0UuIgogIChpbnRlcmFjdGl2ZSkKICAoY29uc3VsdC1pc2VhcmNoLWZvcndhcmQgKG5v
dCByZXZlcnNlKSkpCgooZGVmdmFyIGNvbnN1bHQtaXNlYXJjaC1tYXAKICAobGV0ICgobWFwICht
YWtlLXNwYXJzZS1rZXltYXApKSkKICAgIChkZWZpbmUta2V5IG1hcCAiXEMtcyIgIydjb25zdWx0
LWlzZWFyY2gtZm9yd2FyZCkKICAgIChkZWZpbmUta2V5IG1hcCAiXEMtciIgIydjb25zdWx0LWlz
ZWFyY2gtcmV2ZXJzZSkKICAgIG1hcCkKICAiQWRkaXRpb25hbCBrZXltYXAgdXNlZCBieSBgY29u
c3VsdC1pc2VhcmNoJy4iKQoKKGRlZnVuIGNvbnN1bHQtLWlzZWFyY2gtY2FuZGlkYXRlcyAobmFy
cm93KQogICJSZXR1cm4gaXNlYXJjaCBoaXN0b3J5IGNhbmRpZGF0ZXMgY2F0ZWdvcml6ZWQgYnkg
TkFSUk9XLiIKICA7OyBOT1RFOiBEbyBub3QgdGhyb3cgYW4gZXJyb3Igb24gZW1wdHkgaGlzdG9y
eSwKICA7OyBpbiBvcmRlciB0byBhbGxvdyBzdGFydGluZyBhIHNlYXJjaC4KICA7OyBXZSBkbyBu
b3QgOnJlcXVpcmUtbWF0Y2ggaGVyZSEKICAobGV0KiAoKGhpc3RvcnkgKGlmIChlcSB0IHNlYXJj
aC1kZWZhdWx0LW1vZGUpCiAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHJlZ2V4cC1zZWFy
Y2gtcmluZyBzZWFyY2gtcmluZykKICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIHNlYXJjaC1y
aW5nIHJlZ2V4cC1zZWFyY2gtcmluZykpKQogICAgICAgICAobWF4LWxlbiAoaWYgaGlzdG9yeQog
ICAgICAgICAgICAgICAgICAgICAgKCsgNCAoYXBwbHkgIydtYXggKG1hcGNhciAjJ2xlbmd0aCBo
aXN0b3J5KSkpCiAgICAgICAgICAgICAgICAgICAgMCkpKQogICAgKGNvbnN1bHQtLXJlbW92ZS1k
dXBzCiAgICAgKG1hcGNhcgogICAgICAobGFtYmRhIChjYW5kKQogICAgICAgIDs7IEVtYWNzIDI3
LjEgdXNlcyBzZXR0aW5ncyBvbiB0aGUgc2VhcmNoIHN0cmluZywgd2UgY2FuIHVzZSB0aGF0IGZv
ciBuYXJyb3dpbmcuCiAgICAgICAgKGxldCogKChwcm9wcyAocGxpc3QtbWVtYmVyICh0ZXh0LXBy
b3BlcnRpZXMtYXQgMCBjYW5kKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
aXNlYXJjaC1yZWdleHAtZnVuY3Rpb24pKQogICAgICAgICAgICAgICAodHlwZSAocGNhc2UgKGNh
ZHIgcHJvcHMpCiAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgJ25pbCAoZ3VhcmQgKG5vdCBw
cm9wcykpKSA/cikKICAgICAgICAgICAgICAgICAgICAgICAoJ25pbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgID9sKQogICAgICAgICAgICAgICAgICAgICAgICgnd29yZC1zZWFyY2gtcmVnZXhw
ICAgICAgICAgICAgP3cpCiAgICAgICAgICAgICAgICAgICAgICAgKCdpc2VhcmNoLXN5bWJvbC1y
ZWdleHAgICAgICAgICA/cykKICAgICAgICAgICAgICAgICAgICAgICAoJ2NoYXItZm9sZC10by1y
ZWdleHAgICAgICAgICAgID9jKQogICAgICAgICAgICAgICAgICAgICAgIChfICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgP3UpKSkpCiAgICAgICAgICAoY29uY2F0IChwcm9wZXJ0aXplCiAg
ICAgICAgICAgICAgICAgICA7OyBEaXNhbWJpZ3VhdGUgaGlzdG9yeSBpdGVtcy4gVGhlIHNhbWUg
c3RyaW5nIGNvdWxkCiAgICAgICAgICAgICAgICAgICA7OyBvY2N1ciB3aXRoIGRpZmZlcmVudCBz
ZWFyY2ggdHlwZXMuCiAgICAgICAgICAgICAgICAgICAoY2hhci10by1zdHJpbmcgKCsgY29uc3Vs
dC0tdG9mdS1jaGFyIHR5cGUpKQogICAgICAgICAgICAgICAgICAgJ2ludmlzaWJsZSB0CiAgICAg
ICAgICAgICAgICAgICAnY29uc3VsdC0tYW5ub3RhdGlvbgogICAgICAgICAgICAgICAgICAgKGNv
bmNhdCAobWFrZS1zdHJpbmcgKC0gbWF4LWxlbiAobGVuZ3RoIGNhbmQpKSAzMikKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGFsaXN0LWdldCB0eXBlIG5hcnJvdykpKQogICAgICAgICAgICAg
ICAgICBjYW5kKSkpCiAgICAgIGhpc3RvcnkpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29u
c3VsdC1pc2VhcmNoICgpCiAgIlJlYWQgYSBzZWFyY2ggc3RyaW5nIHdpdGggY29tcGxldGlvbiBm
cm9tIGhpc3RvcnkuCgpUaGlzIHJlcGxhY2VzIHRoZSBjdXJyZW50IHNlYXJjaCBzdHJpbmcgaWYg
SXNlYXJjaCBpcyBhY3RpdmUsIGFuZApzdGFydHMgYSBuZXcgSXNlYXJjaCBzZXNzaW9uIG90aGVy
d2lzZS4iCiAgKGludGVyYWN0aXZlKQogIChjb25zdWx0LS1mb3JiaWQtbWluaWJ1ZmZlcikKICAo
bGV0ICgoaXNlYXJjaC1tZXNzYWdlLWZ1bmN0aW9uICdpZ25vcmUpIDs7IEF2b2lkIGZsaWNrZXIg
aW4gZWNobyBhcmVhCiAgICAgICAgKGluaGliaXQtcmVkaXNwbGF5IHQpICAgICAgICAgICAgICA7
OyBBdm9pZCBmbGlja2VyIGluIG1vZGUgbGluZQogICAgICAgIChuYXJyb3cgJygoP2MgLiAiQ2hh
ciIpCiAgICAgICAgICAgICAgICAgICg/dSAuICJDdXN0b20iKQogICAgICAgICAgICAgICAgICAo
P2wgLiAiTGl0ZXJhbCIpCiAgICAgICAgICAgICAgICAgICg/ciAuICJSZWdleHAiKQogICAgICAg
ICAgICAgICAgICAoP3MgLiAiU3ltYm9sIikKICAgICAgICAgICAgICAgICAgKD93IC4gIldvcmQi
KSkpKQogICAgKHVubGVzcyBpc2VhcmNoLW1vZGUgKGlzZWFyY2gtbW9kZSB0KSkKICAgICh3aXRo
LWlzZWFyY2gtc3VzcGVuZGVkCiAgICAgKHNldHEgaXNlYXJjaC1uZXctc3RyaW5nCiAgICAgICAg
ICAgKGNvbnN1bHQtLXJlYWQKICAgICAgICAgICAgIkktc2VhcmNoOiAiCiAgICAgICAgICAgIChj
b25zdWx0LS1pc2VhcmNoLWNhbmRpZGF0ZXMgbmFycm93KQogICAgICAgICAgICA6Y2F0ZWdvcnkg
J2NvbnN1bHQtaXNlYXJjaAogICAgICAgICAgICA6aGlzdG9yeSB0IDs7IGRpc2FibGUgaGlzdG9y
eQogICAgICAgICAgICA6c29ydCBuaWwKICAgICAgICAgICAgOmFubm90YXRlICMnY29uc3VsdC0t
Z2V0LWFubm90YXRpb24KICAgICAgICAgICAgOmluaXRpYWwgaXNlYXJjaC1zdHJpbmcKICAgICAg
ICAgICAgOmtleW1hcCBjb25zdWx0LWlzZWFyY2gtbWFwCiAgICAgICAgICAgIDpsb29rdXAKICAg
ICAgICAgICAgKGxhbWJkYSAoXyBjYW5kaWRhdGVzIHN0cikKICAgICAgICAgICAgICAoaWYtbGV0
IChjYW5kIChjYXIgKG1lbWJlciBzdHIgY2FuZGlkYXRlcykpKSAoc3Vic3RyaW5nIGNhbmQgMSkg
c3RyKSkKICAgICAgICAgICAgOnByZXZpZXcKICAgICAgICAgICAgKGxhbWJkYSAoY2FuZCByZXN0
b3JlKQogICAgICAgICAgICAgICh1bmxlc3MgcmVzdG9yZQogICAgICAgICAgICAgICAgKHNldHEg
aXNlYXJjaC1zdHJpbmcgY2FuZCkKICAgICAgICAgICAgICAgIDs7IEVtYWNzIDI3LjEgdXNlcyBw
cm9wZXJ0aWVzIG9uIHRoZSBzZWFyY2ggc3RyaW5nIHRvIHN0b3JlIHNldHRpbmdzCiAgICAgICAg
ICAgICAgICAod2hlbiAoZmJvdW5kcCAnaXNlYXJjaC11cGRhdGUtZnJvbS1zdHJpbmctcHJvcGVy
dGllcykKICAgICAgICAgICAgICAgICAgKGlzZWFyY2gtdXBkYXRlLWZyb20tc3RyaW5nLXByb3Bl
cnRpZXMgY2FuZCkpCiAgICAgICAgICAgICAgICAoaXNlYXJjaC11cGRhdGUpKSkKICAgICAgICAg
ICAgOm5hcnJvdwogICAgICAgICAgICAoY29ucwogICAgICAgICAgICAgKGxhbWJkYSAoY2FuZCkg
KGVxICgtIChhcmVmIGNhbmQgMCkgY29uc3VsdC0tdG9mdS1jaGFyKSBjb25zdWx0LS1uYXJyb3cp
KQogICAgICAgICAgICAgbmFycm93KSkKICAgICAgICAgICBpc2VhcmNoLW5ldy1tZXNzYWdlCiAg
ICAgICAgICAgKG1hcGNvbmNhdCAnaXNlYXJjaC10ZXh0LWNoYXItZGVzY3JpcHRpb24gaXNlYXJj
aC1uZXctc3RyaW5nICIiKSkpCiAgICA7OyBTZXR0aW5nIGBpc2VhcmNoLXJlZ2V4cCcgZXRjIG9u
bHkgd29ya3Mgb3V0c2lkZSBvZiBgd2l0aC1pc2VhcmNoLXN1c3BlbmRlZCcuCiAgICAodW5sZXNz
IChwbGlzdC1tZW1iZXIgKHRleHQtcHJvcGVydGllcy1hdCAwIGlzZWFyY2gtc3RyaW5nKSAnaXNl
YXJjaC1yZWdleHAtZnVuY3Rpb24pCiAgICAgIChzZXRxIGlzZWFyY2gtcmVnZXhwIHQKICAgICAg
ICAgICAgaXNlYXJjaC1yZWdleHAtZnVuY3Rpb24gbmlsKSkpKQoKOzs7OzsgQ29tbWFuZDogY29u
c3VsdC1taW5vci1tb2RlLW1lbnUKCihkZWZ1biBjb25zdWx0LS1taW5vci1tb2RlLWNhbmRpZGF0
ZXMgKCkKICAiUmV0dXJuIGxpc3Qgb2YgbWlub3ItbW9kZSBjYW5kaWRhdGUgc3RyaW5ncy4iCiAg
KG1hcGNhcgogICAocGNhc2UtbGFtYmRhIChgKCxuYW1lIC4gLHN5bSkpCiAgICAgKGxpc3QgbmFt
ZSBzeW0KICAgICAgICAgICAoY29uY2F0CiAgICAgICAgICAgIChpZiAobG9jYWwtdmFyaWFibGUt
aWYtc2V0LXAgc3ltKSAibCIgImciKQogICAgICAgICAgICAoaWYgKGFuZCAoYm91bmRwIHN5bSkg
KHN5bWJvbC12YWx1ZSBzeW0pKSAiaSIgIm8iKSkpKQogICAoYXBwZW5kCiAgICA7OyBhY2NvcmRp
bmcgdG8gZGVzY3JpYmUtbWlub3ItbW9kZS1jb21wbGV0aW9uLXRhYmxlLWZvci1zeW1ib2wKICAg
IDs7IHRoZSBtaW5vci1tb2RlLWxpc3QgY29udGFpbnMgKmFsbCogbWlub3IgbW9kZXMKICAgICht
YXBjYXIgKGxhbWJkYSAoc3ltKSAoY29ucyAoc3ltYm9sLW5hbWUgc3ltKSBzeW0pKSBtaW5vci1t
b2RlLWxpc3QpCiAgICA7OyB0YWtlIHRoZSBsaWdodGVycyBmcm9tIG1pbm9yLW1vZGUtYWxpc3QK
ICAgIChkZWxxIG5pbAogICAgICAgICAgKG1hcGNhciAocGNhc2UtbGFtYmRhIChgKCxzeW0gLGxp
Z2h0ZXIpKQogICAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgbGlnaHRlciAobm90IChlcXVh
bCAiIiBsaWdodGVyKSkpCiAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBsaWdodGVyIChzdHJp
bmctdHJpbSAoZm9ybWF0LW1vZGUtbGluZSBsaWdodGVyKSkpCiAgICAgICAgICAgICAgICAgICAg
ICAodW5sZXNzIChzdHJpbmctYmxhbmstcCBsaWdodGVyKQogICAgICAgICAgICAgICAgICAgICAg
ICAoY29ucyBsaWdodGVyIHN5bSkpKSkKICAgICAgICAgICAgICAgICAgbWlub3ItbW9kZS1hbGlz
dCkpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1taW5vci1tb2RlLW1lbnUgKCkK
ICAiRW5hYmxlIG9yIGRpc2FibGUgbWlub3IgbW9kZS4KClRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUg
dG8gYG1pbm9yLW1vZGUtbWVudS1mcm9tLWluZGljYXRvcicuIgogIChpbnRlcmFjdGl2ZSkKICAo
Y2FsbC1pbnRlcmFjdGl2ZWx5CiAgIChjb25zdWx0LS1yZWFkCiAgICAiTWlub3IgbW9kZTogIgog
ICAgKGNvbnN1bHQtLW1pbm9yLW1vZGUtY2FuZGlkYXRlcykKICAgIDpyZXF1aXJlLW1hdGNoIHQK
ICAgIDpjYXRlZ29yeSAnbWlub3ItbW9kZQogICAgOm5hcnJvdyBgKCwobGFtYmRhIChjYW5kKSAo
c2VxLXBvc2l0aW9uIChjYWRkciBjYW5kKSBjb25zdWx0LS1uYXJyb3cpKQogICAgICAgICAgICAg
ICg/bCAuICJMb2NhbCIpCiAgICAgICAgICAgICAgKD9nIC4gIkdsb2JhbCIpCiAgICAgICAgICAg
ICAgKD9pIC4gIk9uIikKICAgICAgICAgICAgICAoP28gLiAiT2ZmIikpCiAgICA6bG9va3VwICMn
Y29uc3VsdC0tbG9va3VwLWNhZHIKICAgIDpoaXN0b3J5ICdjb25zdWx0LS1taW5vci1tb2RlLW1l
bnUtaGlzdG9yeSkpKQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC10aGVtZQoKOzs7IyMjYXV0b2xv
YWQKKGRlZnVuIGNvbnN1bHQtdGhlbWUgKHRoZW1lKQogICJEaXNhYmxlIGN1cnJlbnQgdGhlbWVz
IGFuZCBlbmFibGUgVEhFTUUgZnJvbSBgY29uc3VsdC10aGVtZXMnLgoKVGhlIGNvbW1hbmQgc3Vw
cG9ydHMgcHJldmlld2luZyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRoZW1lLiIKICAoaW50ZXJh
Y3RpdmUKICAgKGxpc3QKICAgIChsZXQgKChhdmFpbC10aGVtZXMgKHNlcS1maWx0ZXIgKGxhbWJk
YSAoeCkgKG9yIChub3QgY29uc3VsdC10aGVtZXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSB4IGNvbnN1bHQtdGhlbWVzKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIG5pbCAoY3VzdG9tLWF2YWlsYWJs
ZS10aGVtZXMpKSkpCiAgICAgICAgICAoc2F2ZWQtdGhlbWUgKGNhciBjdXN0b20tZW5hYmxlZC10
aGVtZXMpKSkKICAgICAgKGNvbnN1bHQtLXJlYWQKICAgICAgICJUaGVtZTogIgogICAgICAgKG1h
cGNhciAobGFtYmRhICh4KSAob3IgeCAnZGVmYXVsdCkpIGF2YWlsLXRoZW1lcykKICAgICAgIDpy
ZXF1aXJlLW1hdGNoIHQKICAgICAgIDpjYXRlZ29yeSAndGhlbWUKICAgICAgIDpoaXN0b3J5ICdj
b25zdWx0LS10aGVtZS1oaXN0b3J5CiAgICAgICA6bG9va3VwIChsYW1iZGEgKF9pbnB1dCBfY2Fu
ZHMgeCkKICAgICAgICAgICAgICAgICAoYW5kIHggKG5vdCAoc3RyaW5nPSB4ICJkZWZhdWx0Iikp
IChpbnRlcm4tc29mdCB4KSkpCiAgICAgICA6cHJldmlldyAobGFtYmRhIChjYW5kIHJlc3RvcmUp
CiAgICAgICAgICAgICAgICAgIChjb25kCiAgICAgICAgICAgICAgICAgICAoKGFuZCByZXN0b3Jl
IChub3QgY2FuZCkpIChjb25zdWx0LXRoZW1lIHNhdmVkLXRoZW1lKSkKICAgICAgICAgICAgICAg
ICAgICgobWVtcSBjYW5kIGF2YWlsLXRoZW1lcykgKGNvbnN1bHQtdGhlbWUgY2FuZCkpKSkKICAg
ICAgIDpkZWZhdWx0IChzeW1ib2wtbmFtZSAob3Igc2F2ZWQtdGhlbWUgJ2RlZmF1bHQpKSkpKSkK
ICAodW5sZXNzIChlcSB0aGVtZSAoY2FyIGN1c3RvbS1lbmFibGVkLXRoZW1lcykpCiAgICAobWFw
YyAjJ2Rpc2FibGUtdGhlbWUgY3VzdG9tLWVuYWJsZWQtdGhlbWVzKQogICAgKHdoZW4gdGhlbWUK
ICAgICAgKGlmIChjdXN0b20tdGhlbWUtcCB0aGVtZSkKICAgICAgICAgIChlbmFibGUtdGhlbWUg
dGhlbWUpCiAgICAgICAgKGxvYWQtdGhlbWUgdGhlbWUgOm5vLWNvbmZpcm0pKSkpKQoKOzs7Ozsg
Q29tbWFuZDogY29uc3VsdC1idWZmZXIKCihjb25zdWx0LS1kZWZpbmUtY2FjaGUgY29uc3VsdC0t
Y2FjaGVkLWJ1ZmZlcnMKICAoYXBwZW5kIChkZWxxIChjdXJyZW50LWJ1ZmZlcikgKGJ1ZmZlci1s
aXN0KSkgKGxpc3QgKGN1cnJlbnQtYnVmZmVyKSkpKQoKKGNvbnN1bHQtLWRlZmluZS1jYWNoZSBj
b25zdWx0LS1jYWNoZWQtYnVmZmVyLW5hbWVzCiAgKG1hcGNhciAjJ2J1ZmZlci1uYW1lIChjb25z
dWx0LS1jYWNoZWQtYnVmZmVycykpKQoKKGNvbnN1bHQtLWRlZmluZS1jYWNoZSBjb25zdWx0LS1j
YWNoZWQtYnVmZmVyLWZpbGUtaGFzaAogIChjb25zdWx0LS1zdHJpbmctaGFzaCAoZGVscSBuaWwg
KG1hcGNhciAjJ2J1ZmZlci1maWxlLW5hbWUgKGNvbnN1bHQtLWNhY2hlZC1idWZmZXJzKSkpKSkK
CihkZWZ1biBjb25zdWx0LS1vcGVuLWZpbGUgKGZpbGUgZGlzcGxheSkKICAiT3BlbiBGSUxFIHZp
YSBESVNQTEFZIGZ1bmN0aW9uLiIKICAocGNhc2UtZXhoYXVzdGl2ZSBkaXNwbGF5CiAgICAoJ3N3
aXRjaC10by1idWZmZXIgKGZpbmQtZmlsZSBmaWxlKSkKICAgICgnc3dpdGNoLXRvLWJ1ZmZlci1v
dGhlci13aW5kb3cgKGZpbmQtZmlsZS1vdGhlci13aW5kb3cgZmlsZSkpCiAgICAoJ3N3aXRjaC10
by1idWZmZXItb3RoZXItZnJhbWUgKGZpbmQtZmlsZS1vdGhlci1mcmFtZSBmaWxlKSkpKQoKKGRl
ZnVuIGNvbnN1bHQtLW9wZW4tYnVmZmVyIChidWZmZXIgZGlzcGxheSkKICAiT3BlbiBCVUZGRVIg
dmlhIERJU1BMQVkgZnVuY3Rpb24uIgogIChmdW5jYWxsIGRpc3BsYXkgYnVmZmVyKSkKCihkZWZ2
YXIgY29uc3VsdC0tc291cmNlLWJvb2ttYXJrCiAgYCg6bmFtZSAgICAgIkJvb2ttYXJrIgogICAg
Om5hcnJvdyAgID9tCiAgICA6Y2F0ZWdvcnkgYm9va21hcmsKICAgIDpmYWNlICAgICBjb25zdWx0
LWJvb2ttYXJrCiAgICA6aGlzdG9yeSAgYm9va21hcmstaGlzdG9yeQogICAgOml0ZW1zICAgICwj
J2Jvb2ttYXJrLWFsbC1uYW1lcwogICAgOm9wZW4gICAgICwjJ2Jvb2ttYXJrLWp1bXApCiAgIkJv
b2ttYXJrIGNhbmRpZGF0ZSBzb3VyY2UgZm9yIGBjb25zdWx0LWJ1ZmZlcicuIikKCihkZWZ2YXIg
Y29uc3VsdC0tc291cmNlLXByb2plY3QtYnVmZmVyCiAgYCg6bmFtZSAgICAgICJQcm9qZWN0IEJ1
ZmZlciIKICAgIDpuYXJyb3cgICAgKD9wIC4gIlByb2plY3QiKQogICAgOmNhdGVnb3J5ICBidWZm
ZXIKICAgIDpmYWNlICAgICAgY29uc3VsdC1idWZmZXIKICAgIDpoaXN0b3J5ICAgYnVmZmVyLW5h
bWUtaGlzdG9yeQogICAgOm9wZW4gICAgICAsIydjb25zdWx0LS1vcGVuLWJ1ZmZlcgogICAgOnBy
ZWRpY2F0ZSAsKGxhbWJkYSAoKSBjb25zdWx0LXByb2plY3Qtcm9vdC1mdW5jdGlvbikKICAgIDpp
dGVtcwogICAgLChsYW1iZGEgKCkKICAgICAgICh3aGVuLWxldCAocm9vdCAoZnVuY2FsbCBjb25z
dWx0LXByb2plY3Qtcm9vdC1mdW5jdGlvbikpCiAgICAgICAgIChtYXBjYXIgIydidWZmZXItbmFt
ZQogICAgICAgICAgICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKHgpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAod2hlbi1sZXQgKGZpbGUgKGJ1ZmZlci1maWxlLW5hbWUgeCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcHJlZml4LXAgcm9vdCBmaWxl
KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLWNhY2hlZC1idWZmZXJz
KSkpKSkpCiAgIlByb2plY3QgYnVmZmVyIGNhbmRpZGF0ZSBzb3VyY2UgZm9yIGBjb25zdWx0LWJ1
ZmZlcicuIikKCihkZWZ2YXIgY29uc3VsdC0tc291cmNlLXByb2plY3QtZmlsZQogIGAoOm5hbWUg
ICAgICAiUHJvamVjdCBGaWxlIgogICAgOm5hcnJvdyAgICAoP3AgLiAiUHJvamVjdCIpCiAgICA6
Y2F0ZWdvcnkgIGZpbGUKICAgIDpmYWNlICAgICAgY29uc3VsdC1maWxlCiAgICA6aGlzdG9yeSAg
IGZpbGUtbmFtZS1oaXN0b3J5CiAgICA6b3BlbiAgICAgICwjJ2NvbnN1bHQtLW9wZW4tZmlsZQog
ICAgOnByZWRpY2F0ZSAsKGxhbWJkYSAoKSBjb25zdWx0LXByb2plY3Qtcm9vdC1mdW5jdGlvbikK
ICAgIDppdGVtcwogICAgLChsYW1iZGEgKCkKICAgICAgKHdoZW4tbGV0IChyb290IChmdW5jYWxs
IGNvbnN1bHQtcHJvamVjdC1yb290LWZ1bmN0aW9uKSkKICAgICAgICAobGV0ICgobGVuIChsZW5n
dGggcm9vdCkpCiAgICAgICAgICAgICAgKGludi1yb290IChwcm9wZXJ0aXplIHJvb3QgJ2ludmlz
aWJsZSB0KSkKICAgICAgICAgICAgICAoaHQgKGNvbnN1bHQtLWNhY2hlZC1idWZmZXItZmlsZS1o
YXNoKSkpCiAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKHgpCiAgICAgICAgICAgICAgICAgICAg
KGNvbmNhdCBpbnYtcm9vdCAoc3Vic3RyaW5nIHggbGVuKSkpCiAgICAgICAgICAgICAgICAgIChz
ZXEtZmlsdGVyIChsYW1iZGEgKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFu
ZCAobm90IChnZXRoYXNoIHggaHQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHN0cmluZy1wcmVmaXgtcCByb290IHgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjZW50Zi1saXN0KSkpKSkpCiAgIlByb2plY3QgZmlsZSBjYW5kaWRhdGUgc291cmNlIGZv
ciBgY29uc3VsdC1idWZmZXInLiIpCgooZGVmdmFyIGNvbnN1bHQtLXNvdXJjZS1oaWRkZW4tYnVm
ZmVyCiAgYCg6bmFtZSAgICAgIkhpZGRlbiBCdWZmZXIiCiAgICA6bmFycm93ICAgMzIKICAgIDpj
YXRlZ29yeSBidWZmZXIKICAgIDpmYWNlICAgICBjb25zdWx0LWJ1ZmZlcgogICAgOmhpc3Rvcnkg
IGJ1ZmZlci1uYW1lLWhpc3RvcnkKICAgIDpvcGVuICAgICAsIydjb25zdWx0LS1vcGVuLWJ1ZmZl
cgogICAgOml0ZW1zCiAgICAsKGxhbWJkYSAoKQogICAgICAgKGxldCAoKGZpbHRlciAoY29uc3Vs
dC0tcmVnZXhwLWZpbHRlciBjb25zdWx0LWJ1ZmZlci1maWx0ZXIpKSkKICAgICAgICAgKHNlcS1m
aWx0ZXIgKGxhbWJkYSAoeCkgKHN0cmluZy1tYXRjaC1wIGZpbHRlciB4KSkKICAgICAgICAgICAg
ICAgICAgICAgKGNvbnN1bHQtLWNhY2hlZC1idWZmZXItbmFtZXMpKSkpKQogICJIaWRkZW4gYnVm
ZmVyIGNhbmRpZGF0ZSBzb3VyY2UgZm9yIGBjb25zdWx0LWJ1ZmZlcicuIikKCihkZWZ2YXIgY29u
c3VsdC0tc291cmNlLWJ1ZmZlcgogIGAoOm5hbWUgICAgICJCdWZmZXIiCiAgICA6bmFycm93ICAg
P2IKICAgIDpjYXRlZ29yeSBidWZmZXIKICAgIDpmYWNlICAgICBjb25zdWx0LWJ1ZmZlcgogICAg
Omhpc3RvcnkgIGJ1ZmZlci1uYW1lLWhpc3RvcnkKICAgIDpvcGVuICAgICAsIydjb25zdWx0LS1v
cGVuLWJ1ZmZlcgogICAgOml0ZW1zCiAgICAsKGxhbWJkYSAoKQogICAgICAgKGxldCAoKGZpbHRl
ciAoY29uc3VsdC0tcmVnZXhwLWZpbHRlciBjb25zdWx0LWJ1ZmZlci1maWx0ZXIpKSkKICAgICAg
ICAgKHNlcS1yZW1vdmUgKGxhbWJkYSAoeCkgKHN0cmluZy1tYXRjaC1wIGZpbHRlciB4KSkKICAg
ICAgICAgICAgICAgICAgICAgKGNvbnN1bHQtLWNhY2hlZC1idWZmZXItbmFtZXMpKSkpKQogICJC
dWZmZXIgY2FuZGlkYXRlIHNvdXJjZSBmb3IgYGNvbnN1bHQtYnVmZmVyJy4iKQoKKGRlZnZhciBj
b25zdWx0LS1zb3VyY2UtZmlsZQogIGAoOm5hbWUgICAgICJGaWxlIgogICAgOm5hcnJvdyAgID9m
CiAgICA6Y2F0ZWdvcnkgZmlsZQogICAgOmZhY2UgICAgIGNvbnN1bHQtZmlsZQogICAgOmhpc3Rv
cnkgIGZpbGUtbmFtZS1oaXN0b3J5CiAgICA6b3BlbiAgICAgLCMnY29uc3VsdC0tb3Blbi1maWxl
CiAgICA6aXRlbXMKICAgICwobGFtYmRhICgpCiAgICAgICAobGV0ICgoaHQgKGNvbnN1bHQtLWNh
Y2hlZC1idWZmZXItZmlsZS1oYXNoKSkpCiAgICAgICAgIChzZXEtcmVtb3ZlIChsYW1iZGEgKHgp
IChnZXRoYXNoIHggaHQpKSByZWNlbnRmLWxpc3QpKSkpCiAgIlJlY2VudCBmaWxlIGNhbmRpZGF0
ZSBzb3VyY2UgZm9yIGBjb25zdWx0LWJ1ZmZlcicuIikKCihkZWZ1biBjb25zdWx0LS1idWZmZXIg
KGRpc3BsYXkpCiAgIkJhY2tlbmQgaW1wbGVtZW50YXRpb24gb2YgYGNvbnN1bHQtYnVmZmVyJyB3
aXRoIERJU1BMQVkgZnVuY3Rpb24uIgogIChjb25zdWx0LS1tdWx0aQogICAiU3dpdGNoIHRvOiAi
CiAgIGNvbnN1bHQtYnVmZmVyLXNvdXJjZXMKICAgOmhpc3RvcnkgJ2NvbnN1bHQtLWJ1ZmZlci1o
aXN0b3J5CiAgIDpzb3J0IG5pbAogICA6cHJldmlldwogICAobGFtYmRhIChjYW5kIHJlc3RvcmUp
CiAgICAgKHdoZW4gY2FuZAogICAgICAgKGxldCAoKG5hbWUgKGNhciBjYW5kKSkKICAgICAgICAg
ICAgIChhY3Rpb24gKG9yIChwbGlzdC1nZXQgKGNkciBjYW5kKSA6b3BlbikgIydjb25zdWx0LS1v
cGVuLWJ1ZmZlcikpKQogICAgICAgICAoY29uZAogICAgICAgICAgKHJlc3RvcmUgKGZ1bmNhbGwg
YWN0aW9uIG5hbWUgZGlzcGxheSkpCiAgICAgICAgICA7OyBJbiBvcmRlciB0byBhdm9pZCBzbG93
bmVzcyBhbmQgdW5uZWNlc3NhcnkgY29tcGxleGl0eSwgd2UKICAgICAgICAgIDs7IG9ubHkgcHJl
dmlldyBidWZmZXJzLiBMb2FkaW5nIHJlY2VudCBmaWxlcywgYm9va21hcmtzIG9yCiAgICAgICAg
ICA7OyB2aWV3cyBjYW4gcmVzdWx0IGluIGV4cGVuc2l2ZSBvcGVyYXRpb25zLgogICAgICAgICAg
KChhbmQgKGVxIGFjdGlvbiAjJ2NvbnN1bHQtLW9wZW4tYnVmZmVyKQogICAgICAgICAgICAgICAg
KG9yIChlcSBkaXNwbGF5ICMnc3dpdGNoLXRvLWJ1ZmZlcikKICAgICAgICAgICAgICAgICAgICAo
ZXEgZGlzcGxheSAjJ3N3aXRjaC10by1idWZmZXItb3RoZXItd2luZG93KSkKICAgICAgICAgICAg
ICAgIChnZXQtYnVmZmVyIG5hbWUpKQogICAgICAgICAgIChmdW5jYWxsIGRpc3BsYXkgbmFtZSAn
bm9yZWNvcmQpKSkpKSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtYnVmZmVyICgp
CiAgIkVuaGFuY2VkIGBzd2l0Y2gtdG8tYnVmZmVyJyBjb21tYW5kIHdpdGggc3VwcG9ydCBmb3Ig
dmlydHVhbCBidWZmZXJzLgoKVGhlIGNvbW1hbmQgc3VwcG9ydHMgcmVjZW50IGZpbGVzLCBib29r
bWFya3MsIHZpZXdzIGFuZCBwcm9qZWN0IGZpbGVzIGFzIHZpcnR1YWwKYnVmZmVycy4gQnVmZmVy
cyBhcmUgcHJldmlld2VkLiBGdXJ0aGVybW9yZSBuYXJyb3dpbmcgdG8gYnVmZmVycyAoYiksIGZp
bGVzIChmKSwKYm9va21hcmtzIChtKSBhbmQgcHJvamVjdCBmaWxlcyAocCkgaXMgc3VwcG9ydGVk
IHZpYSB0aGUgY29ycmVzcG9uZGluZyBrZXlzLiBJbgpvcmRlciB0byBkZXRlcm1pbmUgdGhlIHBy
b2plY3Qtc3BlY2lmaWMgZmlsZXMgYW5kIGJ1ZmZlcnMsIHRoZQpgY29uc3VsdC1wcm9qZWN0LXJv
b3QtZnVuY3Rpb24nIGlzIHVzZWQuIFNlZSBgY29uc3VsdC1idWZmZXItc291cmNlcycgYW5kCmBj
b25zdWx0LS1tdWx0aScgZm9yIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSB2aXJ0dWFsIGJ1ZmZl
ciBzb3VyY2VzLiIKICAoaW50ZXJhY3RpdmUpCiAgKGNvbnN1bHQtLWJ1ZmZlciAjJ3N3aXRjaC10
by1idWZmZXIpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtYnVmZmVyLW90aGVyLXdp
bmRvdyAoKQogICJWYXJpYW50IG9mIGBjb25zdWx0LWJ1ZmZlcicgd2hpY2ggb3BlbnMgaW4gb3Ro
ZXIgd2luZG93LiIKICAoaW50ZXJhY3RpdmUpCiAgKGNvbnN1bHQtLWJ1ZmZlciAjJ3N3aXRjaC10
by1idWZmZXItb3RoZXItd2luZG93KSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LWJ1
ZmZlci1vdGhlci1mcmFtZSAoKQogICJWYXJpYW50IG9mIGBjb25zdWx0LWJ1ZmZlcicgd2hpY2gg
b3BlbnMgaW4gb3RoZXIgZnJhbWUuIgogIChpbnRlcmFjdGl2ZSkKICAoY29uc3VsdC0tYnVmZmVy
ICMnc3dpdGNoLXRvLWJ1ZmZlci1vdGhlci1mcmFtZSkpCgo7Ozs7OyBDb21tYW5kOiBjb25zdWx0
LWttYWNybwoKKGRlZnVuIGNvbnN1bHQtLWttYWNyby1jYW5kaWRhdGVzICgpCiAgIlJldHVybiBh
bGlzdCBvZiBrbWFjcm9zIGFuZCBpbmRpY2VzLiIKICAodGhyZWFkLWxhc3QKICAgICAgOzsgTGlz
dCBvZiBtYWNyb3MKICAgICAgKGFwcGVuZCAod2hlbiBsYXN0LWtiZC1tYWNybwogICAgICAgICAg
ICAgICAgYCgoLGxhc3Qta2JkLW1hY3JvICxrbWFjcm8tY291bnRlciAsa21hY3JvLWNvdW50ZXIt
Zm9ybWF0KSkpCiAgICAgICAgICAgICAga21hY3JvLXJpbmcpCiAgICA7OyBBZGQgaW5kaWNlcwog
ICAgKHNlcS1tYXAtaW5kZXhlZCAjJ2NvbnMpCiAgICA7OyBGaWx0ZXIgbW91c2UgY2xpY2tzCiAg
ICAoc2VxLXJlbW92ZSAobGFtYmRhICh4KSAoc2VxLXNvbWUgIydtb3VzZS1ldmVudC1wIChjYWFy
IHgpKSkpCiAgICA7OyBGb3JtYXQgbWFjcm9zCiAgICAobWFwY2FyIChwY2FzZS1sYW1iZGEgKGAo
KCxrZXlzICxjb3VudGVyICxmb3JtYXQpIC4gLGluZGV4KSkKICAgICAgICAgICAgICAocHJvcGVy
dGl6ZQogICAgICAgICAgICAgICAoZm9ybWF0LWtiZC1tYWNybyBrZXlzIDEpCiAgICAgICAgICAg
ICAgICdjb25zdWx0LS1rbWFjcm8taW5kZXggaW5kZXgKICAgICAgICAgICAgICAgJ2NvbnN1bHQt
LWFubm90YXRpb24KICAgICAgICAgICAgICAgOzsgSWYgdGhlIGNvdW50ZXIgaXMgMCBhbmQgdGhl
IGNvdW50ZXIgZm9ybWF0IGlzIGl0cyBkZWZhdWx0LAogICAgICAgICAgICAgICA7OyB0aGVuIHRo
ZXJlIGlzIGEgZ29vZCBjaGFuY2UgdGhhdCB0aGUgY291bnRlciBpc24ndCBhY3R1YWxseQogICAg
ICAgICAgICAgICA7OyBiZWluZyB1c2VkLiAgVGhpcyBjYW4gb25seSBiZSB3cm9uZyB3aGVuIGEg
dXNlcgogICAgICAgICAgICAgICA7OyBpbnRlbnRpb25hbGx5IHN0YXJ0cyB0aGUgY291bnRlciB3
aXRoIGEgbmVnYXRpdmUgdmFsdWUgYW5kCiAgICAgICAgICAgICAgIDs7IHRoZW4gaW5jcmVtZW50
cyBpdCB0byAwLgogICAgICAgICAgICAgICAoY29uZAogICAgICAgICAgICAgICAgKChub3QgKHN0
cmluZz0gZm9ybWF0ICIlZCIpKSA7OyBzaG93IGNvdW50ZXIgZm9yIG5vbi1kZWZhdWx0IGZvcm1h
dAogICAgICAgICAgICAgICAgIChmb3JtYXQgIiAoY291bnRlcj0lZCwgZm9ybWF0PSVzKSAiIGNv
dW50ZXIgZm9ybWF0KSkKICAgICAgICAgICAgICAgICgoLz0gY291bnRlciAwKSA7OyBzaG93IGNv
dW50ZXIgaWYgbm9uLXplcm8KICAgICAgICAgICAgICAgICAoZm9ybWF0ICIgKGNvdW50ZXI9JWQp
IiBjb3VudGVyKSkpKSkpCiAgICAoY29uc3VsdC0tcmVtb3ZlLWR1cHMpKSkKCjs7OyMjI2F1dG9s
b2FkCihkZWZ1biBjb25zdWx0LWttYWNybyAoYXJnKQogICJSdW4gYSBjaG9zZW4ga2V5Ym9hcmQg
bWFjcm8uCgpXaXRoIHByZWZpeCBBUkcsIHJ1biB0aGUgbWFjcm8gdGhhdCBtYW55IHRpbWVzLgpN
YWNyb3MgY29udGFpbmluZyBtb3VzZSBjbGlja3MgYXJlIG9taXR0ZWQuIgogIChpbnRlcmFjdGl2
ZSAicCIpCiAgKGxldCAoKHNlbGVjdGVkIChjb25zdWx0LS1yZWFkCiAgICAgICAgICAgICAgICAg
ICAiS2V5Ym9hcmQgbWFjcm86ICIKICAgICAgICAgICAgICAgICAgIChvciAoY29uc3VsdC0ta21h
Y3JvLWNhbmRpZGF0ZXMpCiAgICAgICAgICAgICAgICAgICAgICAgKHVzZXItZXJyb3IgIk5vIGtl
eWJvYXJkIG1hY3JvcyBkZWZpbmVkIikpCiAgICAgICAgICAgICAgICAgICA6Y2F0ZWdvcnkgJ2Nv
bnN1bHQta21hY3JvCiAgICAgICAgICAgICAgICAgICA6cmVxdWlyZS1tYXRjaCB0CiAgICAgICAg
ICAgICAgICAgICA6c29ydCBuaWwKICAgICAgICAgICAgICAgICAgIDpoaXN0b3J5ICdjb25zdWx0
LS1rbWFjcm8taGlzdG9yeQogICAgICAgICAgICAgICAgICAgOmFubm90YXRlICMnY29uc3VsdC0t
Z2V0LWFubm90YXRpb24KICAgICAgICAgICAgICAgICAgIDpsb29rdXAKICAgICAgICAgICAgICAg
ICAgIChsYW1iZGEgKF8gY2FuZGlkYXRlcyBjYW5kKQogICAgICAgICAgICAgICAgICAgICAoZ2V0
LXRleHQtcHJvcGVydHkgMCAnY29uc3VsdC0ta21hY3JvLWluZGV4CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoY2FyIChtZW1iZXIgY2FuZCBjYW5kaWRhdGVzKSkpKSkp
KQogICAgKGlmICg9IDAgc2VsZWN0ZWQpCiAgICAgICAgOzsgSWYgdGhlIGZpcnN0IGVsZW1lbnQg
aGFzIGJlZW4gc2VsZWN0ZWQsIGp1c3QgcnVuIHRoZSBsYXN0IG1hY3JvLgogICAgICAgIChrbWFj
cm8tY2FsbC1tYWNybyAob3IgYXJnIDEpIHQgbmlsKQogICAgICA7OyBPdGhlcndpc2UsIHJ1biBh
IGttYWNybyBmcm9tIHRoZSByaW5nLgogICAgICAobGV0KiAoKHNlbGVjdGVkICgtIHNlbGVjdGVk
IDEpKQogICAgICAgICAgICAgKGttYWNybyAobnRoIHNlbGVjdGVkIGttYWNyby1yaW5nKSkKICAg
ICAgICAgICAgIDs7IFRlbXBvcmFyaWx5IGNoYW5nZSB0aGUgdmFyaWFibGVzIHRvIHJldHJpZXZl
IHRoZSBjb3JyZWN0CiAgICAgICAgICAgICA7OyBzZXR0aW5ncy4gIE1haW5seSwgd2Ugd2FudCB0
aGUgbWFjcm8gY291bnRlciB0byBwZXJzaXN0LCB3aGljaAogICAgICAgICAgICAgOzsgYXV0b21h
dGljYWxseSBoYXBwZW5zIHdoZW4gY3ljbGluZyB0aGUgcmluZy4KICAgICAgICAgICAgIChsYXN0
LWtiZC1tYWNybyAoY2FyIGttYWNybykpCiAgICAgICAgICAgICAoa21hY3JvLWNvdW50ZXIgKGNh
ZHIga21hY3JvKSkKICAgICAgICAgICAgIChrbWFjcm8tY291bnRlci1mb3JtYXQgKGNhZGRyIGtt
YWNybykpKQogICAgICAgIChrbWFjcm8tY2FsbC1tYWNybyAob3IgYXJnIDEpIHQpCiAgICAgICAg
OzsgT25jZSBkb25lLCBwdXQgdXBkYXRlZCB2YXJpYWJsZXMgYmFjayBpbnRvIHRoZSByaW5nLgog
ICAgICAgIChzZXRmIChudGggc2VsZWN0ZWQga21hY3JvLXJpbmcpCiAgICAgICAgICAgICAgKGxp
c3QgbGFzdC1rYmQtbWFjcm8KICAgICAgICAgICAgICAgICAgICBrbWFjcm8tY291bnRlcgogICAg
ICAgICAgICAgICAgICAgIGttYWNyby1jb3VudGVyLWZvcm1hdCkpKSkpKQoKOzs7OzsgQ29tbWFu
ZDogY29uc3VsdC1pbWVudQoKKGRlZnVuIGNvbnN1bHQtLWltZW51LXNwZWNpYWwgKF9uYW1lIHBv
cyBidWYgbmFtZSBmbiAmcmVzdCBhcmdzKQogICJXcmFwcGVyIGZ1bmN0aW9uIGZvciBzcGVjaWFs
IGltZW51IGl0ZW1zLgoKUE9TIGlzIHRoZSBwb3NpdGlvbi4KQlVGIGlzIHRoZSBidWZmZXIuCk5B
TUUgaXMgdGhlIGl0ZW0gbmFtZS4KRk4gaXMgdGhlIG9yaWdpbmFsIHNwZWNpYWwgaXRlbSBmdW5j
dGlvbi4KQVJHUyBhcmUgdGhlIGFyZ3VtZW50cyB0byB0aGUgc3BlY2lhbCBpdGVtIGZ1bmN0aW9u
LiIKICAoc3dpdGNoLXRvLWJ1ZmZlciBidWYpCiAgKGFwcGx5IGZuIG5hbWUgcG9zIGFyZ3MpKQoK
KGRlZnVuIGNvbnN1bHQtLWltZW51LWZsYXR0ZW4gKHByZWZpeCBsaXN0KQogICJGbGF0dGVuIGlt
ZW51IExJU1QuClByZXBlbmQgUFJFRklYIGluIGZyb250IG9mIGFsbCBpdGVtcy4iCiAgKG1hcGNh
bgogICAobGFtYmRhIChpdGVtKQogICAgIChpZiAoaW1lbnUtLXN1YmFsaXN0LXAgaXRlbSkKICAg
ICAgICAgKGNvbnN1bHQtLWltZW51LWZsYXR0ZW4KICAgICAgICAgIChjb25jYXQgcHJlZml4IChh
bmQgcHJlZml4ICIvIikgKGNhciBpdGVtKSkKICAgICAgICAgIChjZHIgaXRlbSkpCiAgICAgICAo
bGV0ICgoa2V5IChjb25jYXQKICAgICAgICAgICAgICAgICAgIChhbmQgcHJlZml4IChjb25jYXQg
KHByb3BlcnRpemUgcHJlZml4ICdmYWNlICdjb25zdWx0LWltZW51LXByZWZpeCkgIiAiKSkKICAg
ICAgICAgICAgICAgICAgIChjYXIgaXRlbSkpKQogICAgICAgICAgICAgKHBheWxvYWQgKGNkciBp
dGVtKSkpCiAgICAgICAgIChsaXN0IChjb25zIGtleQogICAgICAgICAgICAgICAgICAgICAocGNh
c2UgcGF5bG9hZAogICAgICAgICAgICAgICAgICAgICAgIDs7IFNpbXBsZSBtYXJrZXIgaXRlbQog
ICAgICAgICAgICAgICAgICAgICAgICgocHJlZCBtYXJrZXJwKSBwYXlsb2FkKQogICAgICAgICAg
ICAgICAgICAgICAgIDs7IFNpbXBsZSBpbnRlZ2VyIGl0ZW0KICAgICAgICAgICAgICAgICAgICAg
ICAoKHByZWQgaW50ZWdlcnApIChjb3B5LW1hcmtlciBwYXlsb2FkKSkKICAgICAgICAgICAgICAg
ICAgICAgICA7OyBTZW1hbnRpYyB1c2VzIG92ZXJsYXkgZm9yIHBvc2l0aW9ucwogICAgICAgICAg
ICAgICAgICAgICAgICgocHJlZCBvdmVybGF5cCkgKGNvcHktbWFya2VyIChvdmVybGF5LXN0YXJ0
IHBheWxvYWQpKSkKICAgICAgICAgICAgICAgICAgICAgICA7OyBXcmFwIHNwZWNpYWwgaXRlbQog
ICAgICAgICAgICAgICAgICAgICAgIChgKCxwb3MgLGZuIC4gLGFyZ3MpCiAgICAgICAgICAgICAg
ICAgICAgICAgIChhcHBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IHBvcyAjJ2Nv
bnN1bHQtLWltZW51LXNwZWNpYWwgKGN1cnJlbnQtYnVmZmVyKSAoY2FyIGl0ZW0pIGZuKQogICAg
ICAgICAgICAgICAgICAgICAgICAgYXJncykpCiAgICAgICAgICAgICAgICAgICAgICAgKF8gKGVy
cm9yICJVbmtub3duIGltZW51IGl0ZW06ICVTIiBpdGVtKSkpKSkpKSkKICAgbGlzdCkpCgooZGVm
dW4gY29uc3VsdC0taW1lbnUtY29tcHV0ZSAoKQogICJDb21wdXRlIGltZW51IGNhbmRpZGF0ZXMu
IgogIChjb25zdWx0LS1mb3JiaWQtbWluaWJ1ZmZlcikKICAobGV0KiAoKGltZW51LWF1dG8tcmVz
Y2FuIHQpCiAgICAgICAgIChpbWVudS11c2UtbWFya2VycyB0KQogICAgICAgICAoaXRlbXMgKGlt
ZW51LS1tYWtlLWluZGV4LWFsaXN0IHQpKSkKICAgIChzZXRxIGl0ZW1zIChyZW1vdmUgaW1lbnUt
LXJlc2Nhbi1pdGVtIGl0ZW1zKSkKICAgIDs7IEZpeCB0b3BsZXZlbCBpdGVtcywgZS5nLiwgZW1h
Y3MtbGlzcC1tb2RlIHRvcGxldmVsIGl0ZW1zIGFyZSBmdW5jdGlvbnMKICAgICh3aGVuLWxldCAo
dG9wbGV2ZWwgKGNkciAoc2VxLWZpbmQgKGxhbWJkYSAoeCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoZGVyaXZlZC1tb2RlLXAgKGNhciB4KSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bHQtaW1lbnUtdG9wbGV2ZWwpKSkKICAg
ICAgKGxldCAoKHRvcHMgKHNlcS1yZW1vdmUgKGxhbWJkYSAoeCkgKGxpc3RwIChjZHIgeCkpKSBp
dGVtcykpCiAgICAgICAgICAgIChyZXN0IChzZXEtZmlsdGVyIChsYW1iZGEgKHgpIChsaXN0cCAo
Y2RyIHgpKSkgaXRlbXMpKSkKICAgICAgICAoc2V0cSBpdGVtcyAoYXBwZW5kIHJlc3QgKGFuZCB0
b3BzIChsaXN0IChjb25zIHRvcGxldmVsIHRvcHMpKSkpKSkpCiAgICAoY29uc3VsdC0taW1lbnUt
ZmxhdHRlbiBuaWwgaXRlbXMpKSkKCihkZWZ1biBjb25zdWx0LS1pbWVudS1pdGVtcyAoKQogICJS
ZXR1cm4gY2FjaGVkIGltZW51IGNhbmRpZGF0ZXMuIgogICh1bmxlc3MgKGVxdWFsIChjYXIgY29u
c3VsdC0taW1lbnUtY2FjaGUpIChidWZmZXItbW9kaWZpZWQtdGljaykpCiAgICAoc2V0cSBjb25z
dWx0LS1pbWVudS1jYWNoZSAoY29ucyAoYnVmZmVyLW1vZGlmaWVkLXRpY2spIChjb25zdWx0LS1p
bWVudS1jb21wdXRlKSkpKQogIChjZHIgY29uc3VsdC0taW1lbnUtY2FjaGUpKQoKKGRlZnVuIGNv
bnN1bHQtLWltZW51LWFsbC1pdGVtcyAoYnVmZmVycykKICAiUmV0dXJuIGFsbCBpbWVudSBpdGVt
cyBmcm9tIGVhY2ggQlVGRkVSUy4iCiAgKHNlcS1tYXBjYXQgKGxhbWJkYSAoYnVmKSAod2l0aC1j
dXJyZW50LWJ1ZmZlciBidWYgKGNvbnN1bHQtLWltZW51LWl0ZW1zKSkpIGJ1ZmZlcnMpKQoKKGRl
ZnVuIGNvbnN1bHQtLWltZW51LXByb2plY3QtYnVmZmVycyAoKQogICJSZXR1cm4gcHJvamVjdCBi
dWZmZXJzIHdpdGggdGhlIHNhbWUgYG1ham9yLW1vZGUnIGFzIHRoZSBjdXJyZW50IGJ1ZmZlci4i
CiAgKGlmLWxldCAocm9vdCAoYW5kIGNvbnN1bHQtcHJvamVjdC1yb290LWZ1bmN0aW9uIChmdW5j
YWxsIGNvbnN1bHQtcHJvamVjdC1yb290LWZ1bmN0aW9uKSkpCiAgICAgIChzZXEtZmlsdGVyIChs
YW1iZGEgKGJ1ZikKICAgICAgICAgICAgICAgICAgICAod2hlbi1sZXQgKGZpbGUgKGJ1ZmZlci1m
aWxlLW5hbWUgYnVmKSkKICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIChidWZmZXItbG9j
YWwtdmFsdWUgJ21ham9yLW1vZGUgYnVmKSBtYWpvci1tb2RlKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc3RyaW5nLXByZWZpeC1wIHJvb3QgZmlsZSkpKSkKICAgICAgICAgICAgICAgICAg
KGJ1ZmZlci1saXN0KSkKICAgIChsaXN0IChjdXJyZW50LWJ1ZmZlcikpKSkKCihkZWZ1biBjb25z
dWx0LS1pbWVudS1qdW1wIChpdGVtKQogICJKdW1wIHRvIGltZW51IElURU0gdmlhIGBjb25zdWx0
LS1qdW1wJy4KCkluIGNvbnRyYXN0IHRvIHRoZSBidWlsdGluIGBpbWVudScganVtcCBmdW5jdGlv
biwKdGhpcyBmdW5jdGlvbiBjYW4ganVtcCBhY3Jvc3MgYnVmZmVycy4iCiAgKHBjYXNlIGl0ZW0K
ICAgIChgKCxuYW1lICxwb3MgLGZuIC4gLGFyZ3MpIChhcHBseSBmbiBuYW1lIHBvcyBhcmdzKSkK
ICAgIChgKCxfIC4gLHBvcykgKGNvbnN1bHQtLWp1bXAgcG9zKSkKICAgIChfIChlcnJvciAiVW5r
bm93biBpbWVudSBpdGVtOiAlUyIgaXRlbSkpKSkKCihkZWZ1biBjb25zdWx0LS1pbWVudSAoaXRl
bXMpCiAgIkNob29zZSBmcm9tIGltZW51IElURU1TIHdpdGggcHJldmlldy4KClRoZSBzeW1ib2wg
YXQgcG9pbnQgaXMgYWRkZWQgdG8gdGhlIGZ1dHVyZSBoaXN0b3J5LiIKICAoY29uc3VsdC0taW1l
bnUtanVtcAogICAoY29uc3VsdC0tcmVhZAogICAgIkdvIHRvIGl0ZW06ICIKICAgIChvciBpdGVt
cyAodXNlci1lcnJvciAiSW1lbnUgaXMgZW1wdHkiKSkKICAgIDpwcmV2aWV3CiAgICAobGV0ICgo
cHJldmlldyAoY29uc3VsdC0tcHJldmlldy1wb3NpdGlvbikpKQogICAgICAobGFtYmRhIChjYW5k
IHJlc3RvcmUpCiAgICAgICAgOzsgT25seSBwcmV2aWV3IHNpbXBsZSBtZW51IGl0ZW1zIHdoaWNo
IGFyZSBtYXJrZXJzLAogICAgICAgIDs7IGluIG9yZGVyIHRvIGF2b2lkIGFueSBiYWQgc2lkZSBl
ZmZlY3RzLgogICAgICAgIChmdW5jYWxsIHByZXZpZXcgKGFuZCAobWFya2VycCAoY2RyIGNhbmQp
KSAoY2RyIGNhbmQpKSByZXN0b3JlKSkpCiAgICA6cmVxdWlyZS1tYXRjaCB0CiAgICA6bmFycm93
CiAgICAobGV0ICgobmFycm93IChjZHIgKHNlcS1maW5kIChsYW1iZGEgKHgpIChkZXJpdmVkLW1v
ZGUtcCAoY2FyIHgpKSkgY29uc3VsdC1pbWVudS1uYXJyb3cpKSkpCiAgICAgIChjb25zIChsYW1i
ZGEgKGNhbmQpCiAgICAgICAgICAgICAgKHdoZW4tbGV0IChuIChjZHIgKGFzc29jIGNvbnN1bHQt
LW5hcnJvdyBuYXJyb3cpKSkKICAgICAgICAgICAgICAgIChsZXQqICgoYyAoY2FyIGNhbmQpKQog
ICAgICAgICAgICAgICAgICAgICAgIChsIChsZW5ndGggbikpKQogICAgICAgICAgICAgICAgICAo
YW5kICg+IChsZW5ndGggYykgbCkKICAgICAgICAgICAgICAgICAgICAgICAoZXEgdCAoY29tcGFy
ZS1zdHJpbmdzIG4gMCBsIGMgMCBsKSkKICAgICAgICAgICAgICAgICAgICAgICAoPSAoYXJlZiBj
IGwpIDMyKSkpKSkKICAgICAgICAgICAgbmFycm93KSkKICAgIDpjYXRlZ29yeSAnaW1lbnUKICAg
IDpsb29rdXAgIydjb25zdWx0LS1sb29rdXAtZWxlbQogICAgOmhpc3RvcnkgJ2NvbnN1bHQtLWlt
ZW51LWhpc3RvcnkKICAgIDphZGQtaGlzdG9yeSAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkKICAg
IDpzb3J0IG5pbCkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtaW1lbnUgKCkKICAi
Q2hvb3NlIGl0ZW0gZnJvbSBmbGF0dGVuZWQgYGltZW51JyB1c2luZyBgY29tcGxldGluZy1yZWFk
JyB3aXRoIHByZXZpZXcuCgpUaGUgY29tbWFuZCBzdXBwb3J0cyBwcmV2aWV3IGFuZCBuYXJyb3dp
bmcuIFNlZSB0aGUgdmFyaWFibGUKYGNvbnN1bHQtaW1lbnUtbmFycm93Jywgd2hpY2ggY29uZmln
dXJlcyB0aGUgbmFycm93aW5nLgoKU2VlIGFsc28gYGNvbnN1bHQtcHJvamVjdC1pbWVudScuIgog
IChpbnRlcmFjdGl2ZSkKICAoY29uc3VsdC0taW1lbnUgKGNvbnN1bHQtLWltZW51LWl0ZW1zKSkp
Cgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1wcm9qZWN0LWltZW51ICgpCiAgIkNob29z
ZSBpdGVtIGZyb20gdGhlIGltZW51cyBvZiBhbGwgYnVmZmVycyBmcm9tIHRoZSBzYW1lIHByb2pl
Y3QuCgpJbiBvcmRlciB0byBkZXRlcm1pbmUgdGhlIGJ1ZmZlcnMgYmVsb25naW5nIHRvIHRoZSBz
YW1lIHByb2plY3QsIHRoZQpgY29uc3VsdC1wcm9qZWN0LXJvb3QtZnVuY3Rpb24nIGlzIHVzZWQu
IE9ubHkgdGhlIGJ1ZmZlcnMgd2l0aCB0aGUKc2FtZSBtYWpvciBtb2RlIGFzIHRoZSBjdXJyZW50
IGJ1ZmZlciBhcmUgdXNlZC4gU2VlIGFsc28KYGNvbnN1bHQtaW1lbnUnIGZvciBtb3JlIGRldGFp
bHMuIgogIChpbnRlcmFjdGl2ZSkKICAoY29uc3VsdC0taW1lbnUgKGNvbnN1bHQtLWltZW51LWFs
bC1pdGVtcyAoY29uc3VsdC0taW1lbnUtcHJvamVjdC1idWZmZXJzKSkpKQoKKGRlZnVuIGNvbnN1
bHQtLWdyZXAtbWF0Y2hlcyAobGluZXMpCiAgIkZpbmQgZ3JlcCBtYXRjaCBmb3IgUkVHRVhQIGlu
IExJTkVTLiIKICAobGV0ICgoY2FuZGlkYXRlcykpCiAgICAoc2F2ZS1tYXRjaC1kYXRhCiAgICAg
IChkb2xpc3QgKHN0ciBsaW5lcykKICAgICAgICAod2hlbiAoc3RyaW5nLW1hdGNoIGNvbnN1bHQt
LWdyZXAtcmVnZXhwIHN0cikKICAgICAgICAgIChsZXQqICgoZmlsZSAoZXhwYW5kLWZpbGUtbmFt
ZSAoY29uc3VsdC0tc3RyaXAtYW5zaS1lc2NhcGUgKG1hdGNoLXN0cmluZyAxIHN0cikpKSkKICAg
ICAgICAgICAgICAgICAobGluZSAoc3RyaW5nLXRvLW51bWJlciAoY29uc3VsdC0tc3RyaXAtYW5z
aS1lc2NhcGUgKG1hdGNoLXN0cmluZyAyIHN0cikpKSkKICAgICAgICAgICAgICAgICAoc3RyIChz
dWJzdHJpbmcgc3RyIChtYXRjaC1lbmQgMCkpKQogICAgICAgICAgICAgICAgIChsb2MgKGNvbnN1
bHQtLWZvcm1hdC1sb2NhdGlvbiAoc3RyaW5nLXJlbW92ZS1wcmVmaXggZGVmYXVsdC1kaXJlY3Rv
cnkgZmlsZSkgbGluZSkpCiAgICAgICAgICAgICAgICAgKHBvcykpCiAgICAgICAgICAgICh3aGls
ZSAoc3RyaW5nLW1hdGNoIGNvbnN1bHQtLWdyZXAtbWF0Y2gtcmVnZXhwIHN0cikKICAgICAgICAg
ICAgICAodW5sZXNzIHBvcwogICAgICAgICAgICAgICAgKHNldHEgcG9zIChtYXRjaC1iZWdpbm5p
bmcgMCkpKQogICAgICAgICAgICAgIChzZXRxIHN0ciAoY29uY2F0IChzdWJzdHJpbmcgc3RyIDAg
KG1hdGNoLWJlZ2lubmluZyAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJv
cGVydGl6ZSAobWF0Y2gtc3RyaW5nIDEgc3RyKSAnZmFjZSAnY29uc3VsdC1wcmV2aWV3LW1hdGNo
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgc3RyIChtYXRjaC1l
bmQgMCkpKSkpCiAgICAgICAgICAgIChzZXRxIHN0ciAoY29uc3VsdC0tc3RyaXAtYW5zaS1lc2Nh
cGUgc3RyKSkKICAgICAgICAgICAgKHB1c2ggKGxpc3QgKGNvbmNhdCBsb2Mgc3RyKSBmaWxlIGxp
bmUgKG9yIHBvcyAwKSkgY2FuZGlkYXRlcykpKSkpCiAgICAobnJldmVyc2UgY2FuZGlkYXRlcykp
KQoKOzs7OzsgQ29tbWFuZDogY29uc3VsdC1ncmVwCgooZGVmdW4gY29uc3VsdC0tZ3JlcC1tYXJr
ZXIgKG9wZW4pCiAgIkdyZXAgY2FuZGlkYXRlIHRvIG1hcmtlci4KCk9QRU4gaXMgdGhlIGZ1bmN0
aW9uIHRvIG9wZW4gbmV3IGZpbGVzLiIKICAobGFtYmRhIChfaW5wdXQgY2FuZGlkYXRlcyBjYW5k
KQogICAgKHdoZW4tbGV0KiAoKGxvYyAoY2RyIChhc3NvYyBjYW5kIGNhbmRpZGF0ZXMpKSkKICAg
ICAgICAgICAgICAgIChidWYgKGZ1bmNhbGwgb3BlbiAoY2FyIGxvYykpKSkKICAgICAgKHdpdGgt
Y3VycmVudC1idWZmZXIgYnVmCiAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KICAgICAgICAgIChz
YXZlLWV4Y3Vyc2lvbgogICAgICAgICAgICAod2lkZW4pCiAgICAgICAgICAgIChnb3RvLWNoYXIg
KHBvaW50LW1pbikpCiAgICAgICAgICAgIDs7IExvY2F0aW9uIGRhdGEgbWlnaHQgYmUgaW52YWxp
ZCBieSBub3chCiAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCiAgICAgICAgICAgICAgKGZvcndh
cmQtbGluZSAoLSAoY2FkciBsb2MpIDEpKQogICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgKGNh
ZGRyIGxvYykpKQogICAgICAgICAgICAocG9pbnQtbWFya2VyKSkpKSkpKQoKKGRlZnVuIGNvbnN1
bHQtLWdyZXAgKHByb21wdCBjbWQgZGlyIGluaXRpYWwpCiAgIlJ1biBncmVwIENNRCBpbiBESVIg
d2l0aCBJTklUSUFMIGlucHV0LgoKUFJPTVBUIGlzIHRoZSBwcm9tcHQgc3RyaW5nLgpUaGUgc3lt
Ym9sIGF0IHBvaW50IGlzIGFkZGVkIHRvIHRoZSBmdXR1cmUgaGlzdG9yeS4iCiAgKGxldCogKChw
cm9tcHQtZGlyIChjb25zdWx0LS1kaXJlY3RvcnktcHJvbXB0IHByb21wdCBkaXIpKQogICAgICAg
ICAoZGVmYXVsdC1kaXJlY3RvcnkgKGNkciBwcm9tcHQtZGlyKSkpCiAgICAoY29uc3VsdC0td2l0
aC1maWxlLXByZXZpZXcgKG9wZW4pCiAgICAgIChjb25zdWx0LS1qdW1wCiAgICAgICAoY29uc3Vs
dC0tcmVhZAogICAgICAgIChjYXIgcHJvbXB0LWRpcikKICAgICAgICAoY29uc3VsdC0tYXN5bmMt
Y29tbWFuZCBjbWQKICAgICAgICAgIChjb25zdWx0LS1hc3luYy10cmFuc2Zvcm0gY29uc3VsdC0t
Z3JlcC1tYXRjaGVzKSkKICAgICAgICA6bG9va3VwIChjb25zdWx0LS1ncmVwLW1hcmtlciBvcGVu
KQogICAgICAgIDpwcmV2aWV3IChjb25zdWx0LS1wcmV2aWV3LXBvc2l0aW9uKQogICAgICAgIDpp
bml0aWFsIChjb25jYXQgY29uc3VsdC1hc3luYy1kZWZhdWx0LXNwbGl0IGluaXRpYWwpCiAgICAg
ICAgOmFkZC1oaXN0b3J5IChjb25jYXQgY29uc3VsdC1hc3luYy1kZWZhdWx0LXNwbGl0ICh0aGlu
Zy1hdC1wb2ludCAnc3ltYm9sKSkKICAgICAgICA6cmVxdWlyZS1tYXRjaCB0CiAgICAgICAgOmNh
dGVnb3J5ICd4cmVmLWxvY2F0aW9uCiAgICAgICAgOmhpc3RvcnkgJyg6aW5wdXQgY29uc3VsdC0t
Z3JlcC1oaXN0b3J5KQogICAgICAgIDpzb3J0IG5pbCkpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVm
dW4gY29uc3VsdC1ncmVwICgmb3B0aW9uYWwgZGlyIGluaXRpYWwpCiAgIlNlYXJjaCBmb3IgcmVn
ZXhwIHdpdGggZ3JlcCBpbiBESVIgd2l0aCBJTklUSUFMIGlucHV0LgoKVGhlIGlucHV0IHN0cmlu
ZyBpcyBzcGxpdCwgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIHN0cmluZyBpcyBwYXNzZWQgdG8KdGhl
IGFzeW5jaHJvbm91cyBncmVwIHByb2Nlc3MgYW5kIHRoZSBzZWNvbmQgcGFydCBvZiB0aGUgc3Ry
aW5nIGlzCnBhc3NlZCB0byB0aGUgY29tcGxldGlvbi1zdHlsZSBmaWx0ZXJpbmcuIFRoZSBpbnB1
dCBzdHJpbmcgaXMgc3BsaXQgYXQKYSBwdW5jdHVhdGlvbiBjaGFyYWN0ZXIsIHdoaWNoIGlzIGdp
dmVuIGFzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlCmlucHV0IHN0cmluZy4gVGhlIGZvcm1h
dCBpcyBzaW1pbGFyIHRvIFBlcmwtc3R5bGUgcmVndWxhciBleHByZXNzaW9ucywKZS5nLiwgL3Jl
Z2V4cC8uIEZ1cnRoZXJtb3JlIGNvbW1hbmQgbGluZSBvcHRpb25zIGNhbiBiZSBwYXNzZWQgdG8K
Z3JlcCwgc3BlY2lmaWVkIGJlaGluZCAtLS4KCkV4YW1wbGU6ICNhc3luYy1yZWdleHAgLS0gZ3Jl
cC1vcHRzI2ZpbHRlci1zdHJpbmcKClRoZSBzeW1ib2wgYXQgcG9pbnQgaXMgYWRkZWQgdG8gdGhl
IGZ1dHVyZSBoaXN0b3J5LiBJZiBgY29uc3VsdC1ncmVwJwppcyBjYWxsZWQgaW50ZXJhY3RpdmVs
eSB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCB0aGUgdXNlciBjYW4gc3BlY2lmeQp0aGUgZGlyZWN0
b3J5IHRvIHNlYXJjaCBpbi4gQnkgZGVmYXVsdCB0aGUgcHJvamVjdCBkaXJlY3RvcnkgaXMgdXNl
ZAppZiBgY29uc3VsdC1wcm9qZWN0LXJvb3QtZnVuY3Rpb24nIGlzIGRlZmluZWQgYW5kIHJldHVy
bnMgbm9uLW5pbC4KT3RoZXJ3aXNlIHRoZSBgZGVmYXVsdC1kaXJlY3RvcnknIGlzIHNlYXJjaGVk
LiIKICAoaW50ZXJhY3RpdmUgIlAiKQogIChjb25zdWx0LS1ncmVwICJHcmVwIiBjb25zdWx0LWdy
ZXAtY29tbWFuZCBkaXIgaW5pdGlhbCkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gY29uc3VsdC1n
aXQtZ3JlcCAoJm9wdGlvbmFsIGRpciBpbml0aWFsKQogICJTZWFyY2ggZm9yIHJlZ2V4cCB3aXRo
IGdyZXAgaW4gRElSIHdpdGggSU5JVElBTCBpbnB1dC4KClNlZSBgY29uc3VsdC1ncmVwJyBmb3Ig
bW9yZSBkZXRhaWxzLiIKICAoaW50ZXJhY3RpdmUgIlAiKQogIChjb25zdWx0LS1ncmVwICJHaXQt
Z3JlcCIgY29uc3VsdC1naXQtZ3JlcC1jb21tYW5kIGRpciBpbml0aWFsKSkKCjs7OyMjI2F1dG9s
b2FkCihkZWZ1biBjb25zdWx0LXJpcGdyZXAgKCZvcHRpb25hbCBkaXIgaW5pdGlhbCkKICAiU2Vh
cmNoIGZvciByZWdleHAgd2l0aCByZyBpbiBESVIgd2l0aCBJTklUSUFMIGlucHV0LgoKU2VlIGBj
b25zdWx0LWdyZXAnIGZvciBtb3JlIGRldGFpbHMuIgogIChpbnRlcmFjdGl2ZSAiUCIpCiAgKGNv
bnN1bHQtLWdyZXAgIlJpcGdyZXAiIGNvbnN1bHQtcmlwZ3JlcC1jb21tYW5kIGRpciBpbml0aWFs
KSkKCjs7Ozs7IENvbW1hbmQ6IGNvbnN1bHQtZmluZAoKKGRlZnVuIGNvbnN1bHQtLWZpbmQgKHBy
b21wdCBjbWQgaW5pdGlhbCkKICAiUnVuIGZpbmQgQ01EIGluIGN1cnJlbnQgZGlyZWN0b3J5IHdp
dGggSU5JVElBTCBpbnB1dC4KClBST01QVCBpcyB0aGUgcHJvbXB0LgpDTUQgaXMgdGhlIGZpbmQg
YXJndW1lbnQgc3RyaW5nLgpUaGUgZmlsZW5hbWUgYXQgcG9pbnQgaXMgYWRkZWQgdG8gdGhlIGZ1
dHVyZSBoaXN0b3J5LiIKICAoZmluZC1maWxlCiAgIChjb25zdWx0LS1yZWFkCiAgICBwcm9tcHQK
ICAgIChjb25zdWx0LS1hc3luYy1jb21tYW5kIGNtZAogICAgICAoY29uc3VsdC0tYXN5bmMtbWFw
IChsYW1iZGEgKHgpIChzdHJpbmctcmVtb3ZlLXByZWZpeCAiLi8iIHgpKSkpCiAgICA6c29ydCBu
aWwKICAgIDpyZXF1aXJlLW1hdGNoIHQKICAgIDppbml0aWFsIChjb25jYXQgY29uc3VsdC1hc3lu
Yy1kZWZhdWx0LXNwbGl0IGluaXRpYWwpCiAgICA6YWRkLWhpc3RvcnkgKGNvbmNhdCBjb25zdWx0
LWFzeW5jLWRlZmF1bHQtc3BsaXQgKHRoaW5nLWF0LXBvaW50ICdmaWxlbmFtZSkpCiAgICA6Y2F0
ZWdvcnkgJ2ZpbGUKICAgIDpoaXN0b3J5ICcoOmlucHV0IGNvbnN1bHQtLWZpbmQtaGlzdG9yeSkp
KSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBjb25zdWx0LWZpbmQgKCZvcHRpb25hbCBkaXIgaW5p
dGlhbCkKICAiU2VhcmNoIGZvciByZWdleHAgd2l0aCBmaW5kIGluIERJUiB3aXRoIElOSVRJQUwg
aW5wdXQuCgpUaGUgZmluZCBwcm9jZXNzIGlzIHN0YXJ0ZWQgYXN5bmNocm9ub3VzbHksIHNpbWls
YXIgdG8gYGNvbnN1bHQtZ3JlcCcuClNlZSBgY29uc3VsdC1ncmVwJyBmb3IgbW9yZSBkZXRhaWxz
IHJlZ2FyZGluZyB0aGUgYXN5bmNocm9ub3VzIHNlYXJjaC4iCiAgKGludGVyYWN0aXZlICJQIikK
ICAobGV0KiAoKHByb21wdC1kaXIgKGNvbnN1bHQtLWRpcmVjdG9yeS1wcm9tcHQgIkZpbmQiIGRp
cikpCiAgICAgICAgIChkZWZhdWx0LWRpcmVjdG9yeSAoY2RyIHByb21wdC1kaXIpKSkKICAgIChj
b25zdWx0LS1maW5kIChjYXIgcHJvbXB0LWRpcikgY29uc3VsdC1maW5kLWNvbW1hbmQgaW5pdGlh
bCkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtbG9jYXRlICgmb3B0aW9uYWwgaW5p
dGlhbCkKICAiU2VhcmNoIGZvciByZWdleHAgd2l0aCBsb2NhdGUgd2l0aCBJTklUSUFMIGlucHV0
LgoKVGhlIGxvY2F0ZSBwcm9jZXNzIGlzIHN0YXJ0ZWQgYXN5bmNocm9ub3VzbHksIHNpbWlsYXIg
dG8gYGNvbnN1bHQtZ3JlcCcuClNlZSBgY29uc3VsdC1ncmVwJyBmb3IgbW9yZSBkZXRhaWxzIHJl
Z2FyZGluZyB0aGUgYXN5bmNocm9ub3VzIHNlYXJjaC4iCiAgKGludGVyYWN0aXZlKQogIChjb25z
dWx0LS1maW5kICJMb2NhdGU6ICIgY29uc3VsdC1sb2NhdGUtY29tbWFuZCBpbml0aWFsKSkKCjs7
Ozs7IENvbW1hbmQ6IGNvbnN1bHQtbWFuCgooZGVmdW4gY29uc3VsdC0tbWFuLWZvcm1hdCAobGlu
ZXMpCiAgIkZvcm1hdCBtYW4gY2FuZGlkYXRlcyBmcm9tIExJTkVTLiIKICAobGV0ICgoY2FuZGlk
YXRlcykpCiAgICAoc2F2ZS1tYXRjaC1kYXRhCiAgICAgIChkb2xpc3QgKHN0ciBsaW5lcykKICAg
ICAgICAod2hlbiAoc3RyaW5nLW1hdGNoICJeXFwoLio/XFwpICstICtcXCguKlxcKSQiIHN0cikK
ICAgICAgICAgIChsZXQgKChuYW1lIChtYXRjaC1zdHJpbmcgMSBzdHIpKQogICAgICAgICAgICAg
ICAgKGRlc2MgKG1hdGNoLXN0cmluZyAyIHN0cikpKQogICAgICAgICAgICAocHVzaCAoY29ucwog
ICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiJS0zMHMgJXMiCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChwcm9wZXJ0aXplIG5hbWUgJ2ZhY2UgJ2NvbnN1bHQta2V5KQogICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXNjKQogICAgICAgICAgICAgICAgICAgbmFtZSkKICAgICAgICAgICAg
ICAgICAgY2FuZGlkYXRlcykpKSkpCiAgICAobnJldmVyc2UgY2FuZGlkYXRlcykpKQoKOzs7IyMj
YXV0b2xvYWQKKGRlZnVuIGNvbnN1bHQtbWFuICgmb3B0aW9uYWwgaW5pdGlhbCkKICAiU2VhcmNo
IGZvciByZWdleHAgd2l0aCBtYW4gd2l0aCBJTklUSUFMIGlucHV0LgoKVGhlIG1hbiBwcm9jZXNz
IGlzIHN0YXJ0ZWQgYXN5bmNocm9ub3VzbHksIHNpbWlsYXIgdG8gYGNvbnN1bHQtZ3JlcCcuClNl
ZSBgY29uc3VsdC1ncmVwJyBmb3IgbW9yZSBkZXRhaWxzIHJlZ2FyZGluZyB0aGUgYXN5bmNocm9u
b3VzIHNlYXJjaC4iCiAgKGludGVyYWN0aXZlKQogIChtYW4gKGNvbnN1bHQtLXJlYWQKICAgICAg
ICAiTWFudWFsIGVudHJ5OiAiCiAgICAgICAgKGNvbnN1bHQtLWFzeW5jLWNvbW1hbmQgY29uc3Vs
dC1tYW4tY29tbWFuZAogICAgICAgICAgKGNvbnN1bHQtLWFzeW5jLXRyYW5zZm9ybSBjb25zdWx0
LS1tYW4tZm9ybWF0KSkKICAgICAgICA6cmVxdWlyZS1tYXRjaCB0CiAgICAgICAgOmxvb2t1cCAj
J2NvbnN1bHQtLWxvb2t1cC1jZHIKICAgICAgICA6aW5pdGlhbCAoY29uY2F0IGNvbnN1bHQtYXN5
bmMtZGVmYXVsdC1zcGxpdCBpbml0aWFsKQogICAgICAgIDphZGQtaGlzdG9yeSAoY29uY2F0IGNv
bnN1bHQtYXN5bmMtZGVmYXVsdC1zcGxpdCAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpCiAgICAg
ICAgOmhpc3RvcnkgJyg6aW5wdXQgY29uc3VsdC0tbWFuLWhpc3RvcnkpKSkpCgo7Ozs7IEludGVn
cmF0aW9uIHdpdGggdGhlIGRlZmF1bHQgY29tcGxldGlvbiBzeXN0ZW0KCihkZWZ1biBjb25zdWx0
LS1kZWZhdWx0LWNvbXBsZXRpb24tY2FuZGlkYXRlICgpCiAgIlJldHVybiBjdXJyZW50IGNhbmRp
ZGF0ZSBmcm9tIGRlZmF1bHQgY29tcGxldGlvbiBzeXN0ZW0uIgogICh3aGVuIChhbmQgKG5vdCBp
Y29tcGxldGUtbW9kZSkgKGVxIGNvbXBsZXRpbmctcmVhZC1mdW5jdGlvbiAjJ2NvbXBsZXRpbmct
cmVhZC1kZWZhdWx0KSkKICAgIChsZXQgKChjYW5kIChtaW5pYnVmZmVyLWNvbnRlbnRzLW5vLXBy
b3BlcnRpZXMpKSkKICAgICAgKHdoZW4gKHRlc3QtY29tcGxldGlvbiBjYW5kCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXRhYmxlCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXByZWRpY2F0ZSkKICAgICAg
ICBjYW5kKSkpKQoKKGRlZnVuIGNvbnN1bHQtLWRlZmF1bHQtY29tcGxldGlvbi1maWx0ZXIgKGNh
dGVnb3J5IF9oaWdobGlnaHQpCiAgIlJldHVybiBkZWZhdWx0IGZpbHRlciBmdW5jdGlvbiBnaXZl
biB0aGUgY29tcGxldGlvbiBDQVRFR09SWS4KClRoZSBjb21wbGV0aW9uIGNhdGVnb3J5IGlzIHVz
ZWQgdG8gZmluZCB0aGUgY29tcGxldGlvbiBzdHlsZSB2aWEKYGNvbXBsZXRpb24tY2F0ZWdvcnkt
ZGVmYXVsdHMnIGFuZCBgY29tcGxldGlvbi1jYXRlZ29yeS1vdmVycmlkZXMnLiIKICAobGFtYmRh
IChzdHIgY2FuZHMpCiAgICA7OyBjb21wbGV0aW9uLWFsbC1jb21wbGV0aW9ucyByZXR1cm5zIGFu
IGltcHJvcGVyIGxpc3QKICAgIDs7IHdoZXJlIHRoZSBsYXN0IGxpbmsgaXMgbm90IG5lY2Vzc2Fy
aWx5IG5pbC4gRml4IHRoaXMhCiAgICAobmNvbmMgKGNvbXBsZXRpb24tYWxsLWNvbXBsZXRpb25z
CiAgICAgICAgICAgIHN0ciBjYW5kcyBuaWwgKGxlbmd0aCBzdHIpCiAgICAgICAgICAgIGAobWV0
YWRhdGEgKGNhdGVnb3J5IC4gLGNhdGVnb3J5KSkpCiAgICAgICAgICAgbmlsKSkpCgo7OyBBbm5v
dW5jZSBub3cgdGhhdCBjb25zdWx0IGhhcyBiZWVuIGxvYWRlZAoocHJvdmlkZSAnY29uc3VsdCkK
Cjs7OzsgSW50ZWdyYXRpb24gd2l0aCBvdGhlciBjb21wbGV0aW9uIHN5c3RlbXMKCih3aXRoLWV2
YWwtYWZ0ZXItbG9hZCAnaWNvbXBsZXRlIChyZXF1aXJlICdjb25zdWx0LWljb21wbGV0ZSkpCih3
aXRoLWV2YWwtYWZ0ZXItbG9hZCAnc2VsZWN0cnVtIChyZXF1aXJlICdjb25zdWx0LXNlbGVjdHJ1
bSkpCgo7OyBMb2NhbCBWYXJpYWJsZXM6Cjs7IG91dGxpbmUtcmVnZXhwOiAiOzs7OyogXFx8KGRl
ZlxcKHVuXFx8Y3VzdG9tXFx8dmFyXFwpIGNvbnN1bHQtW2Etel0iCjs7IEVuZDoKOzs7IGNvbnN1
bHQuZWwgZW5kcyBoZXJlCg==
--=_8eacb995e016baed37890613fffd2ad6--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#46326; Package emacs. Full text available.

Message received at 46326 <at> debbugs.gnu.org:


Received: (at 46326) by debbugs.gnu.org; 5 Feb 2021 15:58:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 05 10:58:31 2021
Received: from localhost ([127.0.0.1]:44531 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l83V8-0005iL-RO
	for submit <at> debbugs.gnu.org; Fri, 05 Feb 2021 10:58:31 -0500
Received: from eggs.gnu.org ([209.51.188.92]:42112)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1l83V7-0005i8-DV
 for 46326 <at> debbugs.gnu.org; Fri, 05 Feb 2021 10:58:29 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:46937)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1l83V1-00012J-G5; Fri, 05 Feb 2021 10:58:23 -0500
Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3098
 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1l83V0-0005aB-Aq; Fri, 05 Feb 2021 10:58:23 -0500
Date: Fri, 05 Feb 2021 17:58:27 +0200
Message-Id: <83a6sipkv0.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: mail@HIDDEN
In-Reply-To: <4aab2ef892b1df213ca67210021bcd47@HIDDEN>
 (mail@HIDDEN)
Subject: Re: bug#46326: 27.1.50; Excessive memory allocations with
 minibuffer-with-setup-hook
References: <62c490ed0d8d24d8b259ac1ba55ea79e@HIDDEN>
 <83eehuppx6.fsf@HIDDEN> <4aab2ef892b1df213ca67210021bcd47@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 46326
Cc: 46326 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> Date: Fri, 05 Feb 2021 16:20:13 +0100
> From: mail@HIDDEN
> Cc: 46326 <at> debbugs.gnu.org
> 
> > Please show information about the memory consumption.  (The so-called
> > "memory profile" doesn't actually measure memory consumption at all,
> > it just uses memory allocation calls as a poor-man's profiling
> > signal.)
> 
> Yes, I am aware. I am not saying that live memory is the problem,
> but the excessive amount of allocations is a problem, which creates
> unnecessary garbage collector pauses. Therefore I can also not show
> you a profile of the memory consumption, since it is not relevant.

If you are saying that the Lisp code in question conses too many
objects unnecessarily, then the solution is to modify the code to cons
less objects.  That doesn't necessarily indicates the existence of a
bug in Emacs, certainly not with its memory management.

> > What exactly caused you to run the profiler? is the code slow or
> > something?  If so, the problem may be something other than memory
> > consumption.
> 
> Yes, it is slow. Add-hook performs unnecessary allocations causing
> pauses. After replacing the minibuffer-with-setup-hook default
> implementation with my workaround the memory allocations went away
> and the command is much faster. The add-hook calls do not appear in
> the memory profile anymore. See the comment
> https://github.com/minad/consult/issues/193#issuecomment-770650405.

So if you already have a solution for the problem, what is it that you
want us as Emacs maintainers to investigate and fix here?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#46326; Package emacs. Full text available.

Message received at 46326 <at> debbugs.gnu.org:


Received: (at 46326) by debbugs.gnu.org; 5 Feb 2021 14:09:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 05 09:09:13 2021
Received: from localhost ([127.0.0.1]:43228 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l81nN-0000cL-H5
	for submit <at> debbugs.gnu.org; Fri, 05 Feb 2021 09:09:13 -0500
Received: from eggs.gnu.org ([209.51.188.92]:45184)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1l81nM-0000c9-3p
 for 46326 <at> debbugs.gnu.org; Fri, 05 Feb 2021 09:09:12 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:45276)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1l81nG-0003a2-8i; Fri, 05 Feb 2021 09:09:06 -0500
Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4333
 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1l81nF-0000jl-Hc; Fri, 05 Feb 2021 09:09:06 -0500
Date: Fri, 05 Feb 2021 16:09:09 +0200
Message-Id: <83eehuppx6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: mail@HIDDEN
In-Reply-To: <62c490ed0d8d24d8b259ac1ba55ea79e@HIDDEN>
 (mail@HIDDEN)
Subject: Re: bug#46326: 27.1.50;
 Excessive memory allocations with minibuffer-with-setup-hook
References: <62c490ed0d8d24d8b259ac1ba55ea79e@HIDDEN>
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 46326
Cc: 46326 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> Date: Fri, 05 Feb 2021 13:51:41 +0100
> From: mail@HIDDEN
> 
> I have an issue on 27.1.50 with excessive memory allocations when using
> minibuffer-with-setup-hook with large closures and :append. This issue 
> has been
> observed in my Consult package, which is similar to Counsel and which 
> provides
> commands based on completing-read. Naturally I have to perform some 
> setup in the
> minibuffer-setup-hook. Most of the memory allocations are due to 
> add-hook and in
> particular the sort function. The sort functions is called because of 
> :append
> which sets a hook priority. The reason seems to be that large closures 
> are
> copied, but I didn't fully investigate the reasons for the issue.
> 
> Example profile:
> 
>      140,068,687  92%       - consult-buffer
>      140,068,687  92%        - consult--buffer

Please show information about the memory consumption.  (The so-called
"memory profile" doesn't actually measure memory consumption at all,
it just uses memory allocation calls as a poor-man's profiling
signal.)

Please show a recipe starting from "emacs -Q" where a lot of memory is
being consumed, and please show how much memory does the recipe
consume.  Also, I presume invoking "M-x garbage-collect RET" doesn't
release that memory?  If so, please show the return value of
garbage-collect.

> See the issue https://github.com/minad/consult/issues/193 for reference.

I don't see any memory information in that discussion.  I guess you
thought the memory profiler somehow shows memory consumption, but it
doesn't.

What exactly caused you to run the profiler? is the code slow or
something?  If so, the problem may be something other than memory
consumption.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#46326; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 5 Feb 2021 13:43:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 05 08:43:13 2021
Received: from localhost ([127.0.0.1]:43203 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1l81OC-0004FF-OZ
	for submit <at> debbugs.gnu.org; Fri, 05 Feb 2021 08:43:13 -0500
Received: from lists.gnu.org ([209.51.188.17]:54878)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1l80ah-0004zg-8t
 for submit <at> debbugs.gnu.org; Fri, 05 Feb 2021 07:52:03 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:48264)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <mail@HIDDEN>)
 id 1l80ag-0000v1-WC
 for bug-gnu-emacs@HIDDEN; Fri, 05 Feb 2021 07:52:03 -0500
Received: from server.qxqx.de ([2a01:4f8:121:346::180]:34612 helo=mail.qxqx.de)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <mail@HIDDEN>)
 id 1l80ad-0002ow-Lp
 for bug-gnu-emacs@HIDDEN; Fri, 05 Feb 2021 07:52:02 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qxqx.de;
 s=mail1392553390; 
 h=Message-ID:Subject:To:From:Date:Content-Transfer-Encoding:Content-Type:MIME-Version;
 bh=eM7GNSWg9+40Hfnm9VXYFiK0z1bUjpEji/Aj6finu7Q=; 
 b=gE7hrcPWvMPW4uc+oRJDEdeg9tREVfseHWdxUI1QZ19PTacsjmSjexHThl71xoy6nIlqz8uyTUE8B1qVYT+CJjP3w+51TS2xqI0njMtEmDAr3n6e47tC5W26vArZNyq59rwSInE30F1hIrUr6TI2eVBTLkfw6fYQWpqkXCeSWaA=;
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
Date: Fri, 05 Feb 2021 13:51:41 +0100
From: mail@HIDDEN
To: bug-gnu-emacs@HIDDEN
Subject: 27.1.50; Excessive memory allocations with minibuffer-with-setup-hook
Message-ID: <62c490ed0d8d24d8b259ac1ba55ea79e@HIDDEN>
X-Sender: mail@HIDDEN
User-Agent: Roundcube Webmail/1.2-git
Received-SPF: pass client-ip=2a01:4f8:121:346::180;
 envelope-from=mail@HIDDEN; helo=mail.qxqx.de
X-Spam_score_int: -41
X-Spam_score: -4.2
X-Spam_bar: ----
X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Fri, 05 Feb 2021 08:43:11 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

Dear Emacs developers,

I have an issue on 27.1.50 with excessive memory allocations when using
minibuffer-with-setup-hook with large closures and :append. This issue 
has been
observed in my Consult package, which is similar to Counsel and which 
provides
commands based on completing-read. Naturally I have to perform some 
setup in the
minibuffer-setup-hook. Most of the memory allocations are due to 
add-hook and in
particular the sort function. The sort functions is called because of 
:append
which sets a hook priority. The reason seems to be that large closures 
are
copied, but I didn't fully investigate the reasons for the issue.

Example profile:

     140,068,687  92%       - consult-buffer
     140,068,687  92%        - consult--buffer
     140,068,687  92%         - consult--multi
     138,933,527  91%          - consult--read
     138,933,527  91%           - apply
     138,933,527  91%            - #<subr consult--read>
      99,916,347  65%             - consult--with-async-1
      99,916,347  65%              - #<compiled 0x3e02774d5b1a3f7>
      99,912,203  65%               - consult--with-preview-1
      80,735,735  53%                - #<compiled -0xbfb98ad3a8adf1c>
      80,735,735  53%                 - completing-read
      80,735,735  53%                  - selectrum-completing-read
      62,909,765  41%                   - selectrum-read
>>>  58,826,659  38%                    + add-hook
       1,077,206   0%                    + 
selectrum--minibuffer-post-command-hook
       ....
>>>  19,176,468  12%                + add-hook
>>>  39,017,180  25%             + add-hook

The issue can be mitigated by using a modified version of
minibuffer-with-setup-hook, where I am creating a symbol and fsetting 
instead of
adding a lambda directly via add-hook. This technique is also used in
set-transient-map in order to avoid problems with letrec-closures and
add-hook/remove-hook.

     (defmacro consult--minibuffer-with-setup-hook (fun &rest body)
       (declare (indent 1) (debug t))
       (let ((hook (make-symbol "hook"))
             (append))
         (when (eq (car-safe fun) :append)
           (setq append '(t) fun (cadr fun)))
         `(let ((,hook (make-symbol "consult--minibuffer-setup")))
            (fset ,hook (lambda ()
                          (remove-hook 'minibuffer-setup-hook ,hook)
                          (funcall ,fun)))
            (unwind-protect
                (progn
                  (add-hook 'minibuffer-setup-hook ,hook ,@append)
                  ,@body)
              (remove-hook 'minibuffer-setup-hook ,hook)))))

See the issue https://github.com/minad/consult/issues/193 for reference.

Maybe there exists an alternative solution to the problem and the 
problem should
be fixed on a different level than by replacing the 
minibuffer-with-setup-hook
macro?

Daniel Mendler

In GNU Emacs 27.1.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.5, 
cairo version 1.16.0) of 2020-10-24
Repository revision: c847d5998f588dbf3eca5ea1ec573a2d64a97607
Repository branch: emacs-27
Windowing system distributor 'The X.Org Foundation', version 
11.0.12004000
System Description: Debian GNU/Linux 10 (buster)




Acknowledgement sent to mail@HIDDEN:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#46326; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 5 Feb 2021 17:15:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.