<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>239341</bug_id>
          
          <creation_ts>2008-10-02 15:29 0000</creation_ts>
          <short_desc>stabilize MythTV</short_desc>
          <delta_ts>2008-12-23 17:28:41 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          <bug_file_loc>http://svn.mythtv.org/trac/ticket/5902</bug_file_loc>
          
          <keywords>STABLEREQ</keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>246430</dependson>
          <blocked>245285</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>cardoe@gentoo.org</reporter>
          <assigned_to>media-tv@gentoo.org</assigned_to>
          <cc>rich0@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-10-02 15:29:36 0000</bug_when>
            <thetext>=media-tv/mythtv-0.21_p18314
=x11-themes/mythtv-themes-0.21_p16505
=x11-themes/mythtv-themes-extra-0.21_17416
=media-plugins/mytharchive-0.21_p18355
=media-plugins/mythbrowser-0.21_p17105
=media-plugins/mythcontrols-0.21_p17105
=media-plugins/mythdvd-0.21
=media-plugins/mythflix-0.21_p17105
=media-plugins/mythgallery-0.21_p17105
=media-plugins/mythgame-0.21_p17965
=media-plugins/mythmovies-0.21_p17821
=media-plugins/mythmusic-0.21_p17821
=media-plugins/mythnews-0.21_p17105
=media-plugins/mythphone-0.21_p17105
=media-plugins/mythvideo-0.21_p17595
=media-plugins/mythweather-0.21_p17719
=www-apps/mythweb-0.21_p17573</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-10-02 18:16:29 0000</bug_when>
            <thetext>I have the following on a stable amd64 (with only ~arch openrc/baselayout):

 * installed packages
[I--] [ ~] media-plugins/mytharchive-0.21_p17948 (0)
[I--] [ ~] media-plugins/mythflix-0.21_p17105 (0)
[I--] [ ~] media-plugins/mythvideo-0.21_p17595 (0)
[I--] [ ~] media-tv/mythtv-0.21_p18314 (0)
[I--] [ ~] www-apps/mythweb-0.21_p17573 (0.21_p17573)
[I--] [ ~] x11-themes/mythtv-themes-0.21_p16505 (0)
[I--] [ ~] x11-themes/mythtv-themes-extra-0.21_p17416 (0)
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>nixnut@gentoo.org</who>
            <bug_when>2008-10-04 12:14:06 0000</bug_when>
            <thetext>This needs a newer version of portage stabled first:

!!! All ebuilds that could satisfy &quot;=media-plugins/mytharchive-0.21_p18355&quot; have been masked.
!!! One of the following masked packages is required to complete your request:
- media-plugins/mytharchive-0.21_p18355 (masked by: EAPI 2)

The current version of portage supports EAPI &apos;1&apos;. You must upgrade to a
newer version of portage before EAPI masked packages can be installed.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-10-04 14:56:16 0000</bug_when>
            <thetext>I put the wrong version of mytharchive in comment #0. Comment #1 has the proper version to stabilize.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>maekke@gentoo.org</who>
            <bug_when>2008-10-09 20:34:16 0000</bug_when>
            <thetext>file collision:

&gt;&gt;&gt; Completed installing mythnews-0.21_p17105 into /var/tmp/portage/media-plugins/mythnews-0.21_p17105/image/

strip: i686-pc-linux-gnu-strip --strip-unneeded -R .comment
   usr/lib/mythtv/plugins/libmythnews.so
* checking 26 files for package collisions
...snip...
 * package media-plugins/mythnews-0.21_p17105 NOT merged
 * 
 * Detected file collision(s):
 * 
 * 	/usr/share/mythtv/themes/default/news-info-bg.png
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * media-plugins/mythflix-0.21_p17105
 * 	/usr/share/mythtv/themes/default/news-info-bg.png
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-11-10 18:53:18 0000</bug_when>
            <thetext>Created, http://svn.mythtv.org/trac/ticket/5902 to resolve the collision.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-11-11 15:20:31 0000</bug_when>
            <thetext>=media-plugins/mythflix-0.21_p19046 &amp; =media-plugins/mythtv-0.21_p18314 has been added to the tree to address this</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-11-11 15:20:50 0000</bug_when>
            <thetext>That was =media-plugins/mythtv-0.21_p18314-r1</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>thebitpit@earthlink.net</who>
            <bug_when>2008-11-12 19:15:18 0000</bug_when>
            <thetext>Created an attachment (id=171567)
Complete build log

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>thebitpit@earthlink.net</who>
            <bug_when>2008-11-12 19:17:11 0000</bug_when>
            <thetext>Created an attachment (id=171569)
build environment

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>thebitpit@earthlink.net</who>
            <bug_when>2008-11-12 19:18:29 0000</bug_when>
            <thetext>There seems to be a problem with =media-plugins/mythtv-0.21_p18314-r1

* Messages for package media-tv/mythtv-0.21_p18314-r1:

 * This ebuild now uses a heavily stripped down version of your CFLAGS
 * Failed Patch: mythtv-0.21-mythflix-naming-collision.patch !
 *  ( /usr/portage/media-tv/mythtv/files/mythtv-0.21-mythflix-naming-collision.patch )
 *
 * Include in your bugreport the contents of:
 *
 *   /var/tmp/portage/media-tv/mythtv-0.21_p18314-r1/temp/mythtv-0.21-mythflix-naming-collision.patch-14586.out
 *
 * ERROR: media-tv/mythtv-0.21_p18314-r1 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_unpack
 *             environment, line 3500:  Called epatch &apos;src_unpack&apos;
 *             environment, line 1807:  Called die
 * The specific snippet of code:
 *                   die &quot;Failed Patch: ${patchname}!&quot;;
 *  The die message:
 *   Failed Patch: mythtv-0.21-mythflix-naming-collision.patch!
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at &apos;/var/tmp/portage/media-tv/mythtv-0.21_p18314-r1/temp/build.log&apos;.
 * The ebuild environment file is located at &apos;/var/tmp/portage/media-tv/mythtv-0.21_p18314-r1/temp/environment&apos;.
 *

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>thebitpit@earthlink.net</who>
            <bug_when>2008-11-12 19:26:31 0000</bug_when>
            <thetext>Created an attachment (id=171571)
mythtv-0.21-mythflix-naming-collision.patch-14586.out for comment #10

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-11-13 15:49:56 0000</bug_when>
            <thetext>As I stated in bug #246430, this patch comes straight from upstream&apos;s SVN. The file being patched hasn&apos;t changed since before 0.21 was branched and I was able to successfully emerge the package with the patch prior to committing so I&apos;m at a loss. My only suggestion is that you delete your /usr/portage/distfiles/svn-src/mythtv and try again.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>thebitpit@earthlink.net</who>
            <bug_when>2008-11-13 20:19:51 0000</bug_when>
            <thetext>Deleting and trying again made no change.

I dug around and discovered that epatch was not trying hard enough to find the file. Here is the change I made to epatch that worked for me:

--- /usr/portage/eclass/eutils.eclass.orig      2008-11-13 14:10:12.000000000 -0600
+++ /usr/portage/eclass/eutils.eclass   2008-11-13 13:48:35.000000000 -0600
@@ -276,7 +276,7 @@
                        fi

                        # Allow for prefix to differ ... im lazy, so shoot me :/
-                       while [ &quot;${count}&quot; -lt 5 ]
+                       while [ &quot;${count}&quot; -lt 6 ]
                        do
                                # Generate some useful debug info ...
                                _epatch_draw_line &quot;***** ${patchname} *****&quot; &gt;&gt; ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}


The problem may instead be &quot;mythtv/mythtv&quot; in this pathname to the file to patch:

/usr/portage/distfiles/svn-src/mythtv/mythtv/themes/default-wide/netflix-ui.xml

The redundant mythtv directory makes the pathname too long for epatch to handle.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-11-17 22:52:49 0000</bug_when>
            <thetext>The issue is because upstream forces their SVN to operate with DOS eols, which don&apos;t play nice with stable patch. The fix has been committed and this needs to be re-tested and stabilized. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>thebitpit@earthlink.net</who>
            <bug_when>2008-11-26 19:19:01 0000</bug_when>
            <thetext>Thank you,

I know my patch was wrong. I thought it would help you fix the real problem.

I verified that my change to eutils.eclass was removed by emerge --sync. I emerged mythtv again and this time it completed. Your fix is good for my problem. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>rich0@gentoo.org</who>
            <bug_when>2008-12-06 15:51:34 0000</bug_when>
            <thetext>Do all of these need to be stabilized simultaneously?  I can test a fair number of them, but probably not everything in comment 0.  </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-12-08 14:28:03 0000</bug_when>
            <thetext>Yep. Otherwise people could have a set of plugins that include non-stabled ones. Current stable versions will NOT work with the versions requested.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>beandog@gentoo.org</who>
            <bug_when>2008-12-12 20:08:03 0000</bug_when>
            <thetext>amd64 done
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>maekke@gentoo.org</who>
            <bug_when>2008-12-21 15:07:23 0000</bug_when>
            <thetext> * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mytharchive-0.21_p17948/image/usr/bin/mytharchivehelper
/var/tmp/portage/media-plugins/mytharchive-0.21_p17948/image/usr/lib/mythtv/plugins/libmytharchive.so

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythbrowser-0.21_p17105/image/usr/bin/mythbrowser

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythcontrols-0.21_p17105/image/usr/lib/mythtv/plugins/libmythcontrols.so

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythgallery-0.21_p17105/image/usr/lib/mythtv/plugins/libmythgallery.so

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythgame-0.21_p17965/image/usr/lib/mythtv/plugins/libmythgame.so

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythmovies-0.21_p17821/image/usr/bin/ignyte
/var/tmp/portage/media-plugins/mythmovies-0.21_p17821/image/usr/lib/mythtv/plugins/libmythmovies.so

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythmusic-0.21_p17821/image/usr/lib/mythtv/plugins/libmythmusic.so

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythphone-0.21_p17105/image/usr/lib/mythtv/plugins/libmythphone.so

 * QA Notice: Pre-stripped files found:
 * /var/tmp/portage/media-plugins/mythvideo-0.21_p17595/image/usr/bin/mtd
/var/tmp/portage/media-plugins/mythvideo-0.21_p17595/image/usr/lib/mythtv/plugins/libmythvideo.so

it would be nice if this would be fixed first.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>nixnut@gentoo.org</who>
            <bug_when>2008-12-21 17:12:25 0000</bug_when>
            <thetext>ppc stable</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>cardoe@gentoo.org</who>
            <bug_when>2008-12-23 16:36:14 0000</bug_when>
            <thetext>(In reply to comment #19)

It&apos;s going to take some eclass hackage. I&apos;ll have to look into it exactly. However, the current stable 0.20.x series is known not work or build. So basically the options are stabilize a version with QA warnings about the plugins being pre-stripped when built without USE=debug, or have a version that doesn&apos;t build and no one will provide support for..</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>maekke@gentoo.org</who>
            <bug_when>2008-12-23 17:28:41 0000</bug_when>
            <thetext>x86 stable, all arches done.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>171567</attachid>
            <date>2008-11-12 19:15 0000</date>
            <desc>Complete build log for comment #10</desc>
            <filename>build.log</filename>
            <type>text/plain</type>
            <data encoding="base64">IBtbMzI7MDFtKhtbMG0gVGhpcyBlYnVpbGQgbm93IHVzZXMgYSBoZWF2aWx5IHN0cmlwcGVkIGRv
d24gdmVyc2lvbiBvZiB5b3VyIENGTEFHUwo+Pj4gVW5wYWNraW5nIHNvdXJjZS4uLgogG1szMjsw
MW0qG1swbSBzdWJ2ZXJzaW9uIHVwZGF0ZSBzdGFydCAtLT4KIBtbMzI7MDFtKhtbMG0gICAgICBy
ZXBvc2l0b3J5OiBodHRwOi8vc3ZuLm15dGh0di5vcmcvc3ZuL2JyYW5jaGVzL3JlbGVhc2UtMC0y
MS1maXhlcy9teXRodHZAMTgzMTQKQXQgcmV2aXNpb24gMTgzMTQuCiAbWzMyOzAxbSobWzBtICAg
IHdvcmtpbmcgY29weTogL3Vzci9wb3J0YWdlL2Rpc3RmaWxlcy9zdm4tc3JjL215dGh0di9teXRo
dHYKCiAbWzMyOzAxbSobWzBtIEFwcGx5aW5nIG15dGh0di0wLjIxLW15dGhmbGl4LW5hbWluZy1j
b2xsaXNpb24ucGF0Y2ggLi4uCgogG1szMTswMW0qG1swbSBGYWlsZWQgUGF0Y2g6IG15dGh0di0w
LjIxLW15dGhmbGl4LW5hbWluZy1jb2xsaXNpb24ucGF0Y2ggIQogG1szMTswMW0qG1swbSAgKCAv
dXNyL3BvcnRhZ2UvbWVkaWEtdHYvbXl0aHR2L2ZpbGVzL215dGh0di0wLjIxLW15dGhmbGl4LW5h
bWluZy1jb2xsaXNpb24ucGF0Y2ggKQogG1szMTswMW0qG1swbSAKIBtbMzE7MDFtKhtbMG0gSW5j
bHVkZSBpbiB5b3VyIGJ1Z3JlcG9ydCB0aGUgY29udGVudHMgb2Y6CiAbWzMxOzAxbSobWzBtIAog
G1szMTswMW0qG1swbSAgIC92YXIvdG1wL3BvcnRhZ2UvbWVkaWEtdHYvbXl0aHR2LTAuMjFfcDE4
MzE0LXIxL3RlbXAvbXl0aHR2LTAuMjEtbXl0aGZsaXgtbmFtaW5nLWNvbGxpc2lvbi5wYXRjaC0x
NDU4Ni5vdXQKCiAbWzMxOzAxbSobWzBtIAogG1szMTswMW0qG1swbSBFUlJPUjogbWVkaWEtdHYv
bXl0aHR2LTAuMjFfcDE4MzE0LXIxIGZhaWxlZC4KIBtbMzE7MDFtKhtbMG0gQ2FsbCBzdGFjazoK
IBtbMzE7MDFtKhtbMG0gICAgICAgICAgICAgICBlYnVpbGQuc2gsIGxpbmUgICA0OTogIENhbGxl
ZCBzcmNfdW5wYWNrCiAbWzMxOzAxbSobWzBtICAgICAgICAgICAgIGVudmlyb25tZW50LCBsaW5l
IDM1MDA6ICBDYWxsZWQgZXBhdGNoICdzcmNfdW5wYWNrJwogG1szMTswMW0qG1swbSAgICAgICAg
ICAgICBlbnZpcm9ubWVudCwgbGluZSAxODA3OiAgQ2FsbGVkIGRpZQogG1szMTswMW0qG1swbSBU
aGUgc3BlY2lmaWMgc25pcHBldCBvZiBjb2RlOgogG1szMTswMW0qG1swbSAgICAgICAgICAgICAg
ICAgICBkaWUgIkZhaWxlZCBQYXRjaDogJHtwYXRjaG5hbWV9ISI7CiAbWzMxOzAxbSobWzBtICBU
aGUgZGllIG1lc3NhZ2U6CiAbWzMxOzAxbSobWzBtICAgRmFpbGVkIFBhdGNoOiBteXRodHYtMC4y
MS1teXRoZmxpeC1uYW1pbmctY29sbGlzaW9uLnBhdGNoIQogG1szMTswMW0qG1swbSAKIBtbMzE7
MDFtKhtbMG0gSWYgeW91IG5lZWQgc3VwcG9ydCwgcG9zdCB0aGUgdG9wbW9zdCBidWlsZCBlcnJv
ciwgYW5kIHRoZSBjYWxsIHN0YWNrIGlmIHJlbGV2YW50LgogG1szMTswMW0qG1swbSBBIGNvbXBs
ZXRlIGJ1aWxkIGxvZyBpcyBsb2NhdGVkIGF0ICcvdmFyL3RtcC9wb3J0YWdlL21lZGlhLXR2L215
dGh0di0wLjIxX3AxODMxNC1yMS90ZW1wL2J1aWxkLmxvZycuCiAbWzMxOzAxbSobWzBtIFRoZSBl
YnVpbGQgZW52aXJvbm1lbnQgZmlsZSBpcyBsb2NhdGVkIGF0ICcvdmFyL3RtcC9wb3J0YWdlL21l
ZGlhLXR2L215dGh0di0wLjIxX3AxODMxNC1yMS90ZW1wL2Vudmlyb25tZW50Jy4KIBtbMzE7MDFt
KhtbMG0gCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>171569</attachid>
            <date>2008-11-12 19:17 0000</date>
            <desc>build environment for comment # 10</desc>
            <filename>environment</filename>
            <type>text/plain</type>
            <data encoding="base64">QUxTQV9DQVJEUz0nYWxpNTQ1MSBhbHM0MDAwIGF0aWl4cCBhdGlpeHAtbW9kZW0gYnQ4N3ggY2Ew
MTA2IGNtaXBjaSBlbXUxMGsxIGVtdTEwazF4IGVuczEzNzAgZW5zMTM3MSBlczE5MzggZXMxOTY4
IGZtODAxIGhkYS1pbnRlbCBpbnRlbDh4MCBpbnRlbDh4MG0gbWFlc3RybzMgdHJpZGVudCB1c2It
YXVkaW8gdmlhODJ4eCB2aWE4Mnh4LW1vZGVtIHltZnBjaScKQUxTQV9QQ01fUExVR0lOUz0nYWRw
Y20gYWxhdyBhc3ltIGNvcHkgZG1peCBkc2hhcmUgZHNub29wIGVtcHR5IGV4dHBsdWcgZmlsZSBo
b29rcyBpZWM5NTggaW9wbHVnIGxhZHNwYSBsZmxvYXQgbGluZWFyIG1ldGVyIG1tYXBfZW11bCBt
dWxhdyBtdWx0aSBudWxsIHBsdWcgcmF0ZSByb3V0ZSBzaGFyZSBzaG0gc29mdHZvbCcKQVBBQ0hF
Ml9NT0RVTEVTPSdhY3Rpb25zIGFsaWFzIGF1dGhfYmFzaWMgYXV0aG5fYWxpYXMgYXV0aG5fYW5v
biBhdXRobl9kYm0gYXV0aG5fZGVmYXVsdCBhdXRobl9maWxlIGF1dGh6X2RibSBhdXRoel9kZWZh
dWx0IGF1dGh6X2dyb3VwZmlsZSBhdXRoel9ob3N0IGF1dGh6X293bmVyIGF1dGh6X3VzZXIgYXV0
b2luZGV4IGNhY2hlIGRhdiBkYXZfZnMgZGF2X2xvY2sgZGVmbGF0ZSBkaXIgZGlza19jYWNoZSBl
bnYgZXhwaXJlcyBleHRfZmlsdGVyIGZpbGVfY2FjaGUgZmlsdGVyIGhlYWRlcnMgaW5jbHVkZSBp
bmZvIGxvZ19jb25maWcgbG9naW8gbWVtX2NhY2hlIG1pbWUgbWltZV9tYWdpYyBuZWdvdGlhdGlv
biByZXdyaXRlIHNldGVudmlmIHNwZWxpbmcgc3RhdHVzIHVuaXF1ZV9pZCB1c2VyZGlyIHVzZXJ0
cmFjayB2aG9zdF9hbGlhcycKQVJDSD14ODYKQ0FNQVJBUz1zbWFsCkNCVUlMRD1pNjg2LXBjLWxp
bnV4LWdudQpDREVGSU5FX2RlZmF1bHQ9X191bml4X18KQ0ZMQUdTPSctTzIgLW1hcmNoPWk2ODYg
LXBpcGUnCkNGTEFHU19kZWZhdWx0PQpDSE9TVD1pNjg2LXBjLWxpbnV4LWdudQpDSE9TVF9kZWZh
dWx0PWk2ODYtcGMtbGludXgtZ251CkNMQVNTUEFUSD0uCkNUQVJHRVRfZGVmYXVsdD1pNjg2LXBj
LWxpbnV4LWdudQpDVlNfUlNIPXNzaApDWFhGTEFHUz0nLU8yIC1tYXJjaD1pNjg2IC1waXBlJwpE
QlVTX1NFU1NJT05fQlVTX0FERFJFU1M9dW5peDphYnN0cmFjdD0vdG1wL2RidXMtWUJYNlcxUGc2
WSxndWlkPWIzOWRkYmM3YjcxZTM3Mjk4MjE1YzNhNjQ5MTk5YjIzCkRFQlVHQlVJTEQ9MQpERUZB
VUxUX0FCST1kZWZhdWx0CkRFUEVORD0kJz49bWVkaWEtbGlicy9mcmVldHlwZS0yLjBcblx0Pj1t
ZWRpYS1zb3VuZC9sYW1lLTMuOTMuMVxuXHR4MTEtbGlicy9saWJYMTFcblx0eDExLWxpYnMvbGli
WGV4dFxuXHR4MTEtbGlicy9saWJYaW5lcmFtYVxuXHR4MTEtbGlicy9saWJYdlxuXHR4MTEtbGli
cy9saWJYcmFuZHJcblx0eDExLWxpYnMvbGliWHhmODZ2bVxuXHQ+PXgxMS1saWJzL3F0LTMuMzoz
XG5cdHZpcnR1YWwvbXlzcWxcblx0dmlydHVhbC9vcGVuZ2xcblx0dmlydHVhbC9nbHVcblx0fHwg
KCA+PW5ldC1taXNjL3dnZXQtMS45LjEgPj1tZWRpYS10di94bWx0di0wLjUuNDMgKVxuXHRhYWM/
ICggbWVkaWEtbGlicy9mYWFkMiApXG5cdGFsc2E/ICggPj1tZWRpYS1saWJzL2Fsc2EtbGliLTAu
OSApXG5cdGF1dG9zdGFydD8gKCBuZXQtZGlhbHVwL21pbmdldHR5XG5cdFx0XHRcdHgxMS13bS9l
dmlsd21cblx0XHRcdFx0eDExLWFwcHMveHNldCApXG5cdGRpcmVjdHY/ICggdmlydHVhbC9wZXJs
LVRpbWUtSGlSZXMgKVxuXHRkdmI/ICggbWVkaWEtbGlicy9saWJkdmIgbWVkaWEtdHYvbGludXh0
di1kdmItaGVhZGVycyApXG5cdGR2ZD8gKCBtZWRpYS1saWJzL2xpYmR2ZGNzcyApXG5cdGZmdHc/
ICggc2NpLWxpYnMvZmZ0dzozLjAgKVxuXHRpZWVlMTM5ND8gKFx0Pj1zeXMtbGlicy9saWJyYXcx
Mzk0LTEuMi4wXG5cdFx0XHQ+PXN5cy1saWJzL2xpYmF2YzEzOTQtMC41LjNcblx0XHRcdD49bWVk
aWEtbGlicy9saWJpZWM2MTg4My0xLjAuMCApXG5cdGphY2s/ICggbWVkaWEtc291bmQvamFjay1h
dWRpby1jb25uZWN0aW9uLWtpdCApXG5cdGxjZD8gKCBhcHAtbWlzYy9sY2Rwcm9jIClcblx0bGly
Yz8gKCBhcHAtbWlzYy9saXJjIClcblx0cGVybD8gKCBkZXYtcGVybC9EQkQtbXlzcWwgKVxuXHRw
eXRob24/ICggZGV2LXB5dGhvbi9teXNxbC1weXRob24gKVxuXHR4dm1jPyAoIHgxMS1saWJzL2xp
Ylh2TUMgKVxuXHR4MTEtcHJvdG8veGluZXJhbWFwcm90b1xuXHR4MTEtcHJvdG8veGY4NnZpZG1v
ZGVwcm90b1xuXHR4MTEtYXBwcy94aW5pdCAgZGV2LXV0aWwvc3VidmVyc2lvblxuXHRuZXQtbWlz
Yy9yc3luYycKREVTQ1JJUFRJT049J0hvbWVicmV3IFBWUiBwcm9qZWN0JwpERVNLVE9QX1NFU1NJ
T049a2RlLTMuNQpERVNUVFJFRT0vdXNyCkRJUk9QVElPTlM9LW0wNzU1CkRNX0NPTlRST0w9L3Zh
ci9ydW4veGRtY3RsCkVBUEk9MQpFTElCQz1nbGliYwpFUEFUQ0hfRVhDTFVERT0KRVBBVENIX0ZP
UkNFPW5vCkVQQVRDSF9NVUxUSV9NU0c9J0FwcGx5aW5nIHZhcmlvdXMgcGF0Y2hlcyAoYnVnZml4
ZXMvdXBkYXRlcykgLi4uJwpFUEFUQ0hfT1BUUz0nLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1pc21h
dGNoJwpFUEFUQ0hfU0lOR0xFX01TRz0KRVBBVENIX1NPVVJDRT0vdmFyL3RtcC9wb3J0YWdlL21l
ZGlhLXR2L215dGh0di0wLjIxX3AxODMxNC1yMS93b3JrL3BhdGNoCkVQQVRDSF9TVUZGSVg9cGF0
Y2guYnoyCkVTQ01fTE9HRElSPQpFU1ZOPXN1YnZlcnNpb24KRVNWTl9CT09UU1RSQVA9CkVTVk5f
RkVUQ0hfQ01EPSdzdm4gY2hlY2tvdXQnCkVTVk5fT0ZGTElORT0KRVNWTl9PUFRJT05TPQpFU1ZO
X1BBVENIRVM9CkVTVk5fUFJPSkVDVD1teXRodHYKRVNWTl9SRVBPX1VSST1odHRwOi8vc3ZuLm15
dGh0di5vcmcvc3ZuL2JyYW5jaGVzL3JlbGVhc2UtMC0yMS1maXhlcy9teXRodHZAMTgzMTQKRVNW
Tl9SRVNUUklDVD0KRVNWTl9SRVZJU0lPTj0KRVNWTl9TVE9SRV9ESVI9L3Vzci9wb3J0YWdlL2Rp
c3RmaWxlcy9zdm4tc3JjCkVTVk5fU1dJVENIX0NNRD0nc3ZuIHN3aXRjaCcKRVNWTl9VUERBVEVf
Q01EPSdzdm4gdXBkYXRlJwpFU1ZOX1VQX0ZSRVE9CkVYRU9QVElPTlM9LW0wNzU1CkZFQVRVUkVT
PSdjYW5keSBkaXN0bG9ja3MgbWV0YWRhdGEtdHJhbnNmZXIgbm9zdHJpcCBzYW5kYm94IHNmcGVy
bXMgc3RyaWN0IHVubWVyZ2Utb3JwaGFucyB1c2VyZmV0Y2gnCkZJWEVTX1ZFUj0wLTIxCkdDQ19T
UEVDUz0KR0RLX1VTRV9YRlQ9MQpHRU5FUkFUSU9OPTIKR1NfTElCPS9ob21lL3dtaWNoYWVsczEv
LmZvbnRzCkdUSzJfUkNfRklMRVM9L2V0Yy9ndGstMi4wL2d0a3JjOi9ob21lL3dtaWNoYWVsczEv
Lmd0a3JjLTIuMDovaG9tZS93bWljaGFlbHMxLy5rZGUzLjUvc2hhcmUvY29uZmlnL2d0a3JjLTIu
MApHVEtfUkNfRklMRVM9L2V0Yy9ndGsvZ3RrcmM6L2hvbWUvd21pY2hhZWxzMS8uZ3RrcmM6L2hv
bWUvd21pY2hhZWxzMS8ua2RlMy41L3NoYXJlL2NvbmZpZy9ndGtyYwpIT01FUEFHRT1odHRwOi8v
d3d3Lm15dGh0di5vcmcKSU5IRVJJVEVEPSd0b29sY2hhaW4tZnVuY3MgcXQzIHBvcnRhYmlsaXR5
IGZsYWctby1tYXRpYyBweXRob24gYWx0ZXJuYXRpdmVzIHZlcnNpb25hdG9yIG11bHRpbGliIG15
dGh0diBzdWJ2ZXJzaW9uIGNvbmZ1dGlscyBldXRpbHMnCklOUFVUX0RFVklDRVM9J2tleWJvYXJk
IG1vdXNlJwpJTlNERVNUVFJFRT0KSU5TT1BUSU9OUz0tbTA2NDQKSVVTRT0nIGFhYyBhbHNhIGFs
dGl2ZWMgYXV0b3N0YXJ0IGRlYnVnIGRpcmVjdHYgZHZiIGR2ZCBmZnR3IGllZWUxMzk0IGphY2sg
bGNkIGxpcmMgbW14IG9wZW5nbCBwZXJsIHB5dGhvbiB4dm1jIHZpZGVvX2NhcmRzX252aWRpYScK
SVVTRV9WSURFT19DQVJEUz12aWRlb19jYXJkc19udmlkaWEKSkFWQUM9L2V0Yy9qYXZhLWNvbmZp
Zy0yL2N1cnJlbnQtc3lzdGVtLXZtL2Jpbi9qYXZhYwpKQVZBX0hPTUU9L2V0Yy9qYXZhLWNvbmZp
Zy0yL2N1cnJlbnQtc3lzdGVtLXZtCkpES19IT01FPS9ldGMvamF2YS1jb25maWctMi9jdXJyZW50
LXN5c3RlbS12bQpLREVESVI9L3Vzci9rZGUvMy41CktERURJUlM9L3VzcjovdXNyL2xvY2FsOi91
c3Iva2RlLzMuNQpLREVfRlVMTF9TRVNTSU9OPXRydWUKS0RFX01VTFRJSEVBRD10cnVlCktERV9T
RVNTSU9OX1VJRD0xMDAwCktFUk5FTD1saW51eApLRVJORUxfQUJJPWRlZmF1bHQKS0VZV09SRFM9
J35hbWQ2NCB+cHBjIH54ODYnCktPTlNPTEVfRENPUD0nRENPUFJlZihrb25zb2xlLTYwOTQsa29u
c29sZSknCktPTlNPTEVfRENPUF9TRVNTSU9OPSdEQ09QUmVmKGtvbnNvbGUtNjA5NCxzZXNzaW9u
LTEpJwpLVj0yLjYuMjUtZ2VudG9vLXI5CkxDRF9ERVZJQ0VTPSdiYXlyYWQgY2ZvbnR6IGNmb250
ejYzMyBnbGsgaGQ0NDc4MCBsYjIxNiBsY2RtMDAxIG10eG9yYiBuY3Vyc2VzIHRleHQnCkxERkxB
R1M9LVdsLC1PMQpMREZMQUdTX2RlZmF1bHQ9CkxEUEFUSD0vdXNyL2tkZS8zLjUvbGliOgpMSUJE
SVJfZGVmYXVsdD1saWIKTElCR0xfRFJJVkVSU19QQVRIPS91c3IvbGliL2RyaQpMSUJPUFRJT05T
PS1tMDY0NApMSUNFTlNFPUdQTC0yCkxJUkNfREVWSUNFUz1kdmljbwpNQUtFT1BUUz0tajIKTVVM
VElMSUJfQUJJUz1kZWZhdWx0Ck1ZVEhUVl9HUk9VUFM9dmlkZW8sYXVkaW8sdHR5LHV1Y3AKTVlU
SFRWX1JFUE89YnJhbmNoZXMvcmVsZWFzZS0wLTIxLWZpeGVzL215dGh0dgpNWVRIVFZfUkVWPTE4
MzE0Ck1ZX1BOPW15dGh0dgpNWV9QVj0wLjIxCk9QRU5HTF9QUk9GSUxFPWF0aQpQREVQRU5EPSc9
eDExLXRoZW1lcy9teXRodHYtdGhlbWVzLTAuMjEqICcKUEtHX0NPTkZJR19QQVRIPS91c3IvcXQv
My9saWIvcGtnY29uZmlnClBSRUxJTktfUEFUSF9NQVNLPS91c3IvbGliL2tsaWJjClBST0ZJTEVf
T05MWV9WQVJJQUJMRVM9J0FSQ0ggRUxJQkMgS0VSTkVMIFVTRVJMQU5EJwpQUk9WSURFPQpQWVRI
T05ET0NTPS91c3Ivc2hhcmUvZG9jL3B5dGhvbi1kb2NzLTIuNS4xL2h0bWwvbGliClBZVEhPTkRP
TlRXUklURUJZVEVDT0RFPTEKUFlUSE9OUEFUSD0vdXNyL2xpYi9wb3J0YWdlL3B5bQpQWVRIT05f
RE9OVENPTVBJTEU9MQpRTUFLRVNQRUM9bGludXgtZysrClFUM01BSk9SVkVSU0lPTlM9JzMuMyAz
LjIgMy4xIDMuMCcKUVQzVkVSU0lPTlM9JzMuMy44YiAzLjMuOC1yNCAzLjMuOC1yMyAzLjMuOC1y
MiAzLjMuOC1yMSAzLjMuOCAzLjMuNi1yNSAzLjMuNi1yNCAzLjMuNi1yMyAzLjMuNi1yMiAzLjMu
Ni1yMSAzLjMuNiAzLjMuNS1yMSAzLjMuNSAzLjMuNC1yOSAzLjMuNC1yOCAzLjMuNC1yNyAzLjMu
NC1yNiAzLjMuNC1yNSAzLjMuNC1yNCAzLjMuNC1yMyAzLjMuNC1yMiAzLjMuNC1yMSAzLjMuNCAz
LjMuMy1yMyAzLjMuMy1yMiAzLjMuMy1yMSAzLjMuMyAzLjMuMiAzLjMuMS1yMiAzLjMuMS1yMSAz
LjMuMSAzLjMuMC1yMSAzLjMuMCAzLjIuMy1yMSAzLjIuMyAzLjIuMi1yMSAzLjIuMiAzLjIuMS1y
MiAzLjIuMS1yMSAzLjIuMSAzLjIuMCAzLjEuMi1yNCAzLjEuMi1yMyAzLjEuMi1yMiAzLjEuMi1y
MSAzLjEuMiAzLjEuMS1yMiAzLjEuMS1yMSAzLjEuMSAzLjEuMC1yMyAzLjEuMC1yMiAzLjEuMC1y
MSAzLjEuMCcKUVRESVI9L3Vzci9xdC8zClFUUEtHPXgxMS1saWJzL3F0LQpSREVQRU5EPSQnPj1t
ZWRpYS1saWJzL2ZyZWV0eXBlLTIuMFxuXHQ+PW1lZGlhLXNvdW5kL2xhbWUtMy45My4xXG5cdHgx
MS1saWJzL2xpYlgxMVxuXHR4MTEtbGlicy9saWJYZXh0XG5cdHgxMS1saWJzL2xpYlhpbmVyYW1h
XG5cdHgxMS1saWJzL2xpYlh2XG5cdHgxMS1saWJzL2xpYlhyYW5kclxuXHR4MTEtbGlicy9saWJY
eGY4NnZtXG5cdD49eDExLWxpYnMvcXQtMy4zOjNcblx0dmlydHVhbC9teXNxbFxuXHR2aXJ0dWFs
L29wZW5nbFxuXHR2aXJ0dWFsL2dsdVxuXHR8fCAoID49bmV0LW1pc2Mvd2dldC0xLjkuMSA+PW1l
ZGlhLXR2L3htbHR2LTAuNS40MyApXG5cdGFhYz8gKCBtZWRpYS1saWJzL2ZhYWQyIClcblx0YWxz
YT8gKCA+PW1lZGlhLWxpYnMvYWxzYS1saWItMC45IClcblx0YXV0b3N0YXJ0PyAoIG5ldC1kaWFs
dXAvbWluZ2V0dHlcblx0XHRcdFx0eDExLXdtL2V2aWx3bVxuXHRcdFx0XHR4MTEtYXBwcy94c2V0
IClcblx0ZGlyZWN0dj8gKCB2aXJ0dWFsL3BlcmwtVGltZS1IaVJlcyApXG5cdGR2Yj8gKCBtZWRp
YS1saWJzL2xpYmR2YiBtZWRpYS10di9saW51eHR2LWR2Yi1oZWFkZXJzIClcblx0ZHZkPyAoIG1l
ZGlhLWxpYnMvbGliZHZkY3NzIClcblx0ZmZ0dz8gKCBzY2ktbGlicy9mZnR3OjMuMCApXG5cdGll
ZWUxMzk0PyAoXHQ+PXN5cy1saWJzL2xpYnJhdzEzOTQtMS4yLjBcblx0XHRcdD49c3lzLWxpYnMv
bGliYXZjMTM5NC0wLjUuM1xuXHRcdFx0Pj1tZWRpYS1saWJzL2xpYmllYzYxODgzLTEuMC4wIClc
blx0amFjaz8gKCBtZWRpYS1zb3VuZC9qYWNrLWF1ZGlvLWNvbm5lY3Rpb24ta2l0IClcblx0bGNk
PyAoIGFwcC1taXNjL2xjZHByb2MgKVxuXHRsaXJjPyAoIGFwcC1taXNjL2xpcmMgKVxuXHRwZXJs
PyAoIGRldi1wZXJsL0RCRC1teXNxbCApXG5cdHB5dGhvbj8gKCBkZXYtcHl0aG9uL215c3FsLXB5
dGhvbiApXG5cdHh2bWM/ICggeDExLWxpYnMvbGliWHZNQyApICcKUkVTVFJJQ1Q9ClJFVl9QUkVG
SVg9X3AKUz0vdmFyL3RtcC9wb3J0YWdlL21lZGlhLXR2L215dGh0di0wLjIxX3AxODMxNC1yMS93
b3JrL215dGh0di0wLjIxClNBTkRCT1hfREVOWT0vZXRjL2xkLnNvLnByZWxvYWQKU0FOREJPWF9Q
UkVESUNUPTovcHJvYy9zZWxmL21hcHM6L2Rldi9jb25zb2xlOi9kZXYvcmFuZG9tOi91c3IvbGli
L3BvcnRhZ2UvcHltOi92YXIvY2FjaGUvZWRiL2RlcDovdXNyL3F0LzMvZXRjL3NldHRpbmdzClNB
TkRCT1hfUkVBRD06LzovZGV2L3NobTovZGV2L3N0ZGluOi92YXIvdG1wClNBTkRCT1hfV1JJVEU9
Oi9kZXYvc2htOi9kZXYvc3Rkb3V0Oi9kZXYvc3RkZXJyOi92YXIvdG1wOi91c3IvcXQvMy9ldGMv
c2V0dGluZ3MKU0FORV9DT05GSUdfRElSPS9ldGMvc2FuZS5kClNFU1NJT05fTUFOQUdFUj1sb2Nh
bC9kcnVtOi90bXAvLklDRS11bml4LzYwNjIKU0xPVD0wClNSQ19VUkk9ClNVRE9fQ09NTUFORD0n
L3Vzci9iaW4vZW1lcmdlIC11YUQgd29ybGQnClNVRE9fR0lEPTEwMDAKU1VET19VSUQ9MTAwMApT
VURPX1VTRVI9d21pY2hhZWxzMQpVU0JfREVWRlNfUEFUSD0vZGV2L2J1cy91c2IKVVNFPSdhYWMg
YWxzYSBkdmIgZHZkIGVsaWJjX2dsaWJjIGphY2sga2VybmVsX2xpbnV4IGxpcmMgbW14IG9wZW5n
bCBwZXJsIHB5dGhvbiB1c2VybGFuZF9HTlUgeDg2JwpVU0VSTEFORD1HTlUKVVNFUk5BTUU9cm9v
dApWRVJfQ09NUD0oWzBdPSIwIiBbMV09IjIxIikKVklERU9fQ0FSRFM9J2ZnbHJ4IHZlc2EnClZN
SEFORExFPWJsYWNrZG93bi1qZGstMS40LjIKV0lORE9XSUQ9MTA0ODU3NjYKWENVUlNPUl9USEVN
RT1kZWZhdWx0ClhER19DT05GSUdfRElSUz0vdXNyL2tkZS8zLjUvZXRjL3hkZwpYREdfREFUQV9E
SVJTPS91c3Ivc2hhcmU6L3Vzci9rZGUvMy41L3NoYXJlOi91c3IvbG9jYWwvc2hhcmUKWERNX01B
TkFHRUQ9L3Zhci9ydW4veGRtY3RsL3hkbWN0bC06MCxtYXlzZCxtYXlmbixzY2hlZCxyc3ZkLG1l
dGhvZD1jbGFzc2ljCl89X1JDX0dFVF9LVl9DQUNIRQpfRV9ET0NERVNUVFJFRV89Cl9FX0VYRURF
U1RUUkVFXz0KX19fRUNMQVNTX1JFQ1VSX01VTFRJTElCPXllcwpfX19FQ0xBU1NfUkVDVVJfVE9P
TENIQUlOX0ZVTkNTPXllcwpjb25mPW15dGh0di0wLjIxX3AxODMxNC1yMQpfX3B5dGhvbl9lY2xh
c3NfdGVzdCAoKSAKeyAKICAgIF9fcHl0aG9uX3ZlcnNpb25fZXh0cmFjdCAyLjM7CiAgICBlY2hv
IC1uICIyLjMgLT4gUFlWRVI6ICRQWVZFUiBQWVZFUl9NQUpPUjogJFBZVkVSX01BSk9SIjsKICAg
IGVjaG8gIiBQWVZFUl9NSU5PUjogJFBZVkVSX01JTk9SIFBZVkVSX01JQ1JPOiAkUFlWRVJfTUlD
Uk8iOwogICAgX19weXRob25fdmVyc2lvbl9leHRyYWN0IDIuMy40OwogICAgZWNobyAtbiAiMi4z
LjQgLT4gUFlWRVI6ICRQWVZFUiBQWVZFUl9NQUpPUjogJFBZVkVSX01BSk9SIjsKICAgIGVjaG8g
IiBQWVZFUl9NSU5PUjogJFBZVkVSX01JTk9SIFBZVkVSX01JQ1JPOiAkUFlWRVJfTUlDUk8iOwog
ICAgX19weXRob25fdmVyc2lvbl9leHRyYWN0IDIuMy41OwogICAgZWNobyAtbiAiMi4zLjUgLT4g
UFlWRVI6ICRQWVZFUiBQWVZFUl9NQUpPUjogJFBZVkVSX01BSk9SIjsKICAgIGVjaG8gIiBQWVZF
Ul9NSU5PUjogJFBZVkVSX01JTk9SIFBZVkVSX01JQ1JPOiAkUFlWRVJfTUlDUk8iOwogICAgX19w
eXRob25fdmVyc2lvbl9leHRyYWN0IDIuNDsKICAgIGVjaG8gLW4gIjIuNCAtPiBQWVZFUjogJFBZ
VkVSIFBZVkVSX01BSk9SOiAkUFlWRVJfTUFKT1IiOwogICAgZWNobyAiIFBZVkVSX01JTk9SOiAk
UFlWRVJfTUlOT1IgUFlWRVJfTUlDUk86ICRQWVZFUl9NSUNSTyI7CiAgICBfX3B5dGhvbl92ZXJz
aW9uX2V4dHJhY3QgMi41YjM7CiAgICBlY2hvIC1uICIyLjViMyAtPiBQWVZFUjogJFBZVkVSIFBZ
VkVSX01BSk9SOiAkUFlWRVJfTUFKT1IiOwogICAgZWNobyAiIFBZVkVSX01JTk9SOiAkUFlWRVJf
TUlOT1IgUFlWRVJfTUlDUk86ICRQWVZFUl9NSUNSTyIKfQpfX3B5dGhvbl92ZXJzaW9uX2V4dHJh
Y3QgKCkgCnsgCiAgICBsb2NhbCB2ZXJzdHI9JDE7CiAgICBleHBvcnQgUFlWRVJfTUFKT1I9JHt2
ZXJzdHI6MDoxfTsKICAgIGV4cG9ydCBQWVZFUl9NSU5PUj0ke3ZlcnN0cjoyOjF9OwogICAgaWYg
W1sgJHt2ZXJzdHI6MzoxfSA9PSAuIF1dOyB0aGVuCiAgICAgICAgZXhwb3J0IFBZVkVSX01JQ1JP
PSR7dmVyc3RyOjR9OwogICAgZmk7CiAgICBleHBvcnQgUFlWRVI9IiR7UFlWRVJfTUFKT1J9LiR7
UFlWRVJfTUlOT1J9Igp9Cl9fdmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lvbl9jb21wYXJlICgpIAp7
IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICBsb2NhbCBsdD0xIGVxPTIg
Z3Q9MyBwIHE7CiAgICBmdW5jdGlvbiBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFy
ZV90ICgpIAogICAgeyAKICAgICAgICB2ZXJzaW9uX2NvbXBhcmUgIiR7MX0iICIkezN9IjsKICAg
ICAgICBsb2NhbCByPSQ/OwogICAgICAgIFtbICR7cn0gLWVxICR7Mn0gXV0gfHwgZWNobyAiRkFJ
TDogJHtAfSAoZ290ICR7cn0gZXhwICR7Mn0pIgogICAgfTsKICAgIGVjaG8gIgoJCTAgICAgICAg
ICAgICAgJGx0IDEKCQkxICAgICAgICAgICAgICRsdCAyCgkJMiAgICAgICAgICAgICAkZ3QgMQoJ
CTIgICAgICAgICAgICAgJGVxIDIKCQkwICAgICAgICAgICAgICRlcSAwCgkJMTAgICAgICAgICAg
ICAkbHQgMjAKCQk2OCAgICAgICAgICAgICRlcSAwNjgKCQkwNjggICAgICAgICAgICRndCA2NwoJ
CTA2OCAgICAgICAgICAgJGx0IDY5CgoJCTEuMCAgICAgICAgICAgJGx0IDIuMAoJCTIuMCAgICAg
ICAgICAgJGVxIDIuMAoJCTIuMCAgICAgICAgICAgJGd0IDEuMAoKCQkxLjAgICAgICAgICAgICRn
dCAwLjAKCQkwLjAgICAgICAgICAgICRlcSAwLjAKCQkwLjAgICAgICAgICAgICRsdCAxLjAKCgkJ
MC4xICAgICAgICAgICAkbHQgMC4yCgkJMC4yICAgICAgICAgICAkZXEgMC4yCgkJMC4zICAgICAg
ICAgICAkZ3QgMC4yCgoJCTEuMiAgICAgICAgICAgJGx0IDIuMQoJCTIuMSAgICAgICAgICAgJGd0
IDEuMgoKCQkxLjIuMyAgICAgICAgICRsdCAxLjIuNAoJCTEuMi40ICAgICAgICAgJGd0IDEuMi4z
CgoJCTEuMi4wICAgICAgICAgJGVxIDEuMgoJCTEuMi4xICAgICAgICAgJGd0IDEuMgoJCTEuMiAg
ICAgICAgICAgJGx0IDEuMi4xCgoJCTEuMmIgICAgICAgICAgJGVxIDEuMmIKCQkxLjJiICAgICAg
ICAgICRsdCAxLjJjCgkJMS4yYiAgICAgICAgICAkZ3QgMS4yYQoJCTEuMmIgICAgICAgICAgJGd0
IDEuMgoJCTEuMiAgICAgICAgICAgJGx0IDEuMmEKCgkJMS4zICAgICAgICAgICAkZ3QgMS4yYQoJ
CTEuMyAgICAgICAgICAgJGx0IDEuM2EKCgkJMS4wX2FscGhhNyAgICAkbHQgMS4wX2JldGE3CgkJ
MS4wX2JldGEgICAgICAkbHQgMS4wX3ByZQoJCTEuMF9wcmU1ICAgICAgJGx0IDEuMF9yYzIKCQkx
LjBfcmMyICAgICAgICRsdCAxLjAKCgkJMS4wX3AxICAgICAgICAkZ3QgMS4wCgkJMS4wX3AxLXIx
ICAgICAkZ3QgMS4wX3AxCgoJCTEuMF9hbHBoYTYtcjEgJGd0IDEuMF9hbHBoYTYKCQkxLjBfYmV0
YTYtcjEgICRndCAxLjBfYWxwaGE2LXIyCgoJCTEuMF9wcmUxICAgICAgJGx0IDEuMC1wMQoKCQkx
LjBwICAgICAgICAgICRndCAxLjBfcDEKCQkxLjByICAgICAgICAgICRndCAxLjAtcjEKCQkxLjYu
MTUgICAgICAgICRndCAxLjYuMTAtcjIKCQkxLjYuMTAtcjIgICAgICRsdCAxLjYuMTUKCgkiIHwg
d2hpbGUgcmVhZCBhIGIgYzsgZG8KICAgICAgICBbWyAteiAiJHthfSR7Yn0ke2N9IiBdXSAmJiBj
b250aW51ZTsKICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIk
e2F9IiAiJHtifSIgIiR7Y30iOwogICAgZG9uZTsKICAgIGZvciBxIGluICJhbHBoYSBiZXRhIHBy
ZSByYz0ke2x0fTske2d0fSIgInAgcj0ke2d0fTske2x0fSI7CiAgICBkbwogICAgICAgIGZvciBw
IGluICR7cSUlPSp9OwogICAgICAgIGRvCiAgICAgICAgICAgIGxvY2FsIGM9JHtxIyMqPX07CiAg
ICAgICAgICAgIGxvY2FsIGFsdD0ke2MlJTsqfSBhZ3Q9JHtjIyMqO307CiAgICAgICAgICAgIF9f
dmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lvbl9jb21wYXJlX3QgIjEuMCIgJGFndCAiMS4wXyR7cH0i
OwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxLjAi
ICRhZ3QgIjEuMF8ke3B9MSI7CiAgICAgICAgICAgIF9fdmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lv
bl9jb21wYXJlX3QgIjEuMCIgJGFndCAiMS4wXyR7cH0wNjgiOwogICAgICAgICAgICBfX3ZlcnNp
b25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIyLjBfJHtwfSIgJGFsdCAiMi4wIjsKICAg
ICAgICAgICAgX192ZXJzaW9uYXRvcl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiMi4wXyR7cH0x
IiAkYWx0ICIyLjAiOwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29t
cGFyZV90ICIyLjBfJHtwfTA2OCIgJGFsdCAiMi4wIjsKICAgICAgICAgICAgX192ZXJzaW9uYXRv
cl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiMS4wXyR7cH0iICRlcSAiMS4wXyR7cH0iOwogICAg
ICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIwLjBfJHtwfSIg
JGx0ICIwLjBfJHtwfTEiOwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25f
Y29tcGFyZV90ICI2NjZfJHtwfTMiICRndCAiNjY2XyR7cH0iOwogICAgICAgICAgICBfX3ZlcnNp
b25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxXyR7cH03IiAkbHQgIjFfJHtwfTgiOwog
ICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxXyR7cH03
IiAkZXEgIjFfJHtwfTciOwogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3ZlcnNpb25f
Y29tcGFyZV90ICIxXyR7cH03IiAkZ3QgIjFfJHtwfTYiOwogICAgICAgICAgICBfX3ZlcnNpb25h
dG9yX190ZXN0X3ZlcnNpb25fY29tcGFyZV90ICIxXyR7cH0wOSIgJGVxICIxXyR7cH05IjsKICAg
ICAgICBkb25lOwogICAgZG9uZTsKICAgIGZvciBwIGluICItciIgIl9wIjsKICAgIGRvCiAgICAg
ICAgX192ZXJzaW9uYXRvcl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiNy4yJHtwfTEiICRsdCAi
Ny4yJHtwfTIiOwogICAgICAgIF9fdmVyc2lvbmF0b3JfX3Rlc3RfdmVyc2lvbl9jb21wYXJlX3Qg
IjcuMiR7cH0yIiAkZ3QgIjcuMiR7cH0xIjsKICAgICAgICBfX3ZlcnNpb25hdG9yX190ZXN0X3Zl
cnNpb25fY29tcGFyZV90ICI3LjIke3B9MyIgJGd0ICI3LjIke3B9MiI7CiAgICAgICAgX192ZXJz
aW9uYXRvcl9fdGVzdF92ZXJzaW9uX2NvbXBhcmVfdCAiNy4yJHtwfTIiICRsdCAiNy4yJHtwfTMi
OwogICAgZG9uZTsKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9Cl9fdmVyc2lv
bmF0b3Jfc2hvcHRfdG9nZ2xlICgpIAp7IAogICAgVkVSU0lPTkFUT1JfUkVDVVJTSU9OPSR7VkVS
U0lPTkFUT1JfUkVDVVJTSU9OOi0wfTsKICAgIGNhc2UgIiQxIiBpbiAKICAgICAgICAib24iKQog
ICAgICAgICAgICBpZiBbWyAkVkVSU0lPTkFUT1JfUkVDVVJTSU9OIC1sdCAxIF1dOyB0aGVuCiAg
ICAgICAgICAgICAgICBWRVJTSU9OQVRPUl9PTERfRVhUR0xPQj0kKHNob3B0IC1wIGV4dGdsb2Ip
OwogICAgICAgICAgICAgICAgc2hvcHQgLXMgZXh0Z2xvYjsKICAgICAgICAgICAgZmk7CiAgICAg
ICAgICAgIFZFUlNJT05BVE9SX1JFQ1VSU0lPTj0kKCggJFZFUlNJT05BVE9SX1JFQ1VSU0lPTiAr
IDEgKSkKICAgICAgICA7OwogICAgICAgICJvZmYiKQogICAgICAgICAgICBWRVJTSU9OQVRPUl9S
RUNVUlNJT049JCgoICRWRVJTSU9OQVRPUl9SRUNVUlNJT04gLSAxICkpOwogICAgICAgICAgICBp
ZiBbWyAkVkVSU0lPTkFUT1JfUkVDVVJTSU9OIC1sdCAxIF1dOyB0aGVuCiAgICAgICAgICAgICAg
ICBldmFsICRWRVJTSU9OQVRPUl9PTERfRVhUR0xPQjsKICAgICAgICAgICAgZmkKICAgICAgICA7
OwogICAgZXNhYzsKICAgIHJldHVybiAwCn0KX2Nkcm9tX2xvY2F0ZV9maWxlX29uX2NkICgpIAp7
IAogICAgbG9jYWwgbWxpbmU9IiI7CiAgICBsb2NhbCBzaG93ZWRtc2c9MCBzaG93am9saWV0bXNn
PTA7CiAgICB3aGlsZSBbWyAteiAke0NEUk9NX1JPT1R9IF1dOyBkbwogICAgICAgIGxvY2FsIGk9
MDsKICAgICAgICBsb2NhbCAtYSBjZHNldD0oJHsqLy86LyB9KTsKICAgICAgICBpZiBbWyAtbiAk
e0NEUk9NX1NFVH0gXV07IHRoZW4KICAgICAgICAgICAgY2RzZXQ9KCR7Y2RzZXRbJHtDRFJPTV9T
RVR9XX0pOwogICAgICAgIGZpOwogICAgICAgIHdoaWxlIFtbIC1uICR7Y2RzZXRbJHtpfV19IF1d
OyBkbwogICAgICAgICAgICBsb2NhbCBkaXI9JChkaXJuYW1lICR7Y2RzZXRbJHtpfV19KTsKICAg
ICAgICAgICAgbG9jYWwgZmlsZT0kKGJhc2VuYW1lICR7Y2RzZXRbJHtpfV19KTsKICAgICAgICAg
ICAgbG9jYWwgcG9pbnQ9IG5vZGU9IGZzPSBmb289OwogICAgICAgICAgICB3aGlsZSByZWFkIHBv
aW50IG5vZGUgZnMgZm9vOyBkbwogICAgICAgICAgICAgICAgW1sgIiBjZDk2NjAgaXNvOTY2MCB1
ZGYgIiAhPSAqIiAke2ZzfSAiKiBdXSAmJiAhIFtbICR7ZnN9ID09ICJzdWJmcyIgJiYgIiwke29w
dHN9LCIgPT0gKiIsZnM9Y2Rmc3MsIiogXV0gJiYgY29udGludWU7CiAgICAgICAgICAgICAgICBw
b2ludD0ke3BvaW50Ly9cMDQwLyB9OwogICAgICAgICAgICAgICAgW1sgISAtZCAke3BvaW50fS8k
e2Rpcn0gXV0gJiYgY29udGludWU7CiAgICAgICAgICAgICAgICBbWyAteiAkKGZpbmQgIiR7cG9p
bnR9LyR7ZGlyfSIgLW1heGRlcHRoIDEgLWluYW1lICIke2ZpbGV9IikgXV0gJiYgY29udGludWU7
CiAgICAgICAgICAgICAgICBleHBvcnQgQ0RST01fUk9PVD0ke3BvaW50fTsKICAgICAgICAgICAg
ICAgIGV4cG9ydCBDRFJPTV9TRVQ9JHtpfTsKICAgICAgICAgICAgICAgIGV4cG9ydCBDRFJPTV9N
QVRDSD0ke2Nkc2V0WyR7aX1dfTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ZG9uZSA8PDwgIiQoZ2V0X21vdW50cykiOwogICAgICAgICAgICAoKCsraSkpOwogICAgICAgIGRv
bmU7CiAgICAgICAgZWNobzsKICAgICAgICBpZiBbWyAke3Nob3dlZG1zZ30gLWVxIDAgXV07IHRo
ZW4KICAgICAgICAgICAgaWYgW1sgJHtDRFJPTV9UT1RBTF9DRFN9IC1lcSAxIF1dOyB0aGVuCiAg
ICAgICAgICAgICAgICBpZiBbWyAteiAke0NEUk9NX05BTUV9IF1dOyB0aGVuCiAgICAgICAgICAg
ICAgICAgICAgZWluZm8gIlBsZWFzZSBpbnNlcnQrbW91bnQgdGhlIGNkcm9tIGZvciAke1BOfSBu
b3cgISI7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgZWluZm8gIlBs
ZWFzZSBpbnNlcnQrbW91bnQgdGhlICR7Q0RST01fTkFNRX0gY2Ryb20gbm93ICEiOwogICAgICAg
ICAgICAgICAgZmk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFtbIC16ICR7
Q0RST01fTkFNRV8xfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2Ug
aW5zZXJ0K21vdW50IGNkICMke0NEUk9NX0NVUlJFTlRfQ0R9IGZvciAke1BOfSBub3cgISI7CiAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgbG9jYWwgdmFyPSJDRFJPTV9O
QU1FXyR7Q0RST01fQ1VSUkVOVF9DRH0iOwogICAgICAgICAgICAgICAgICAgIGVpbmZvICJQbGVh
c2UgaW5zZXJ0K21vdW50IHRoZSAkeyF2YXJ9IGNkcm9tIG5vdyAhIjsKICAgICAgICAgICAgICAg
IGZpOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgc2hvd2VkbXNnPTE7CiAgICAgICAgZmk7
CiAgICAgICAgZWluZm8gIlByZXNzIHJldHVybiB0byBzY2FuIGZvciB0aGUgY2QgYWdhaW4iOwog
ICAgICAgIGVpbmZvICJvciBoaXQgQ1RSTCtDIHRvIGFib3J0IHRoZSBlbWVyZ2UuIjsKICAgICAg
ICBlY2hvOwogICAgICAgIGlmIFtbICR7c2hvd2pvbGlldG1zZ30gLWVxIDAgXV07IHRoZW4KICAg
ICAgICAgICAgc2hvd2pvbGlldG1zZz0xOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZXdhcm4g
IklmIHlvdSBhcmUgaGF2aW5nIHRyb3VibGUgd2l0aCB0aGUgZGV0ZWN0aW9uIjsKICAgICAgICAg
ICAgZXdhcm4gIm9mIHlvdXIgQ0QsIGl0IGlzIHBvc3NpYmxlIHRoYXQgeW91IGRvIG5vdCBoYXZl
IjsKICAgICAgICAgICAgZXdhcm4gIkpvbGlldCBzdXBwb3J0IGVuYWJsZWQgaW4geW91ciBrZXJu
ZWwuICBQbGVhc2UiOwogICAgICAgICAgICBld2FybiAiY2hlY2sgdGhhdCBDT05GSUdfSk9MSUVU
IGlzIGVuYWJsZWQgaW4geW91ciBrZXJuZWwuIjsKICAgICAgICAgICAgZWJlZXAgNTsKICAgICAg
ICBmaTsKICAgICAgICByZWFkIHx8IGRpZSAic29tZXRoaW5nIGlzIHNjcmV3ZWQgd2l0aCB5b3Vy
IHN5c3RlbSI7CiAgICBkb25lCn0KX2NvbmZ1dGlsc19zaGFyZWRfc3VmZml4ICgpIAp7IAogICAg
bG9jYWwgbXlfc2hhcmVkPTsKICAgIGlmIFtbICIkMSIgPT0gIjEiIF1dOyB0aGVuCiAgICAgICAg
aWYgW1sgLW4gIiR7c2hhcmVkfSIgXV07IHRoZW4KICAgICAgICAgICAgbXlfc2hhcmVkPSIke3No
YXJlZH0iOwogICAgICAgICAgICBpZiBbWyAtbiAiJDIiIF1dOyB0aGVuCiAgICAgICAgICAgICAg
ICBteV9zaGFyZWQ9IiR7bXlfc2hhcmVkfSwkMiI7CiAgICAgICAgICAgIGZpOwogICAgICAgIGVs
c2UKICAgICAgICAgICAgaWYgW1sgLW4gIiQyIiBdXTsgdGhlbgogICAgICAgICAgICAgICAgbXlf
c2hhcmVkPSI9JDIiOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAg
ICBpZiBbWyAtbiAiJDIiIF1dOyB0aGVuCiAgICAgICAgICAgIG15X3NoYXJlZD0iPSQyIjsKICAg
ICAgICBmaTsKICAgIGZpOwogICAgZWNobyAiJHtteV9zaGFyZWR9Igp9Cl9maWx0ZXItaGFyZGVu
ZWQgKCkgCnsgCiAgICBsb2NhbCBmOwogICAgZm9yIGYgaW4gIiRAIjsKICAgIGRvCiAgICAgICAg
Y2FzZSAiJHtmfSIgaW4gCiAgICAgICAgICAgIC1mUElDIHwgLWZwaWMgfCAtZlBJRSB8IC1mcGll
IHwgLVdsLHBpZSB8IC1waWUpCiAgICAgICAgICAgICAgICBnY2Mtc3BlY3MtcGllIHx8IGNvbnRp
bnVlOwogICAgICAgICAgICAgICAgaXMtZmxhZ3EgLW5vcGllIHx8IGFwcGVuZC1mbGFncyAtbm9w
aWUKICAgICAgICAgICAgOzsKICAgICAgICAgICAgLWZzdGFjay1wcm90ZWN0b3IpCiAgICAgICAg
ICAgICAgICBnY2Mtc3BlY3Mtc3NwIHx8IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaXMtZmxh
Z3EgLWZuby1zdGFjay1wcm90ZWN0b3IgfHwgYXBwZW5kLWZsYWdzIC1mbm8tc3RhY2stcHJvdGVj
dG9yCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIC1mc3RhY2stcHJvdGVjdG9yLWFsbCkKICAg
ICAgICAgICAgICAgIGdjYy1zcGVjcy1zc3AtdG8tYWxsIHx8IGNvbnRpbnVlOwogICAgICAgICAg
ICAgICAgaXMtZmxhZ3EgLWZuby1zdGFjay1wcm90ZWN0b3ItYWxsIHx8IGFwcGVuZC1mbGFncyAt
Zm5vLXN0YWNrLXByb3RlY3Rvci1hbGwKICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAg
ZG9uZQp9Cl9maWx0ZXItdmFyICgpIAp7IAogICAgbG9jYWwgZiB4IFZBUiBWQUw7CiAgICBkZWNs
YXJlIC1hIG5ldzsKICAgIFZBUj0kMTsKICAgIHNoaWZ0OwogICAgZXZhbCBWQUw9XCR7JHtWQVJ9
fTsKICAgIGZvciBmIGluICR7VkFMfTsKICAgIGRvCiAgICAgICAgZm9yIHggaW4gIiRAIjsKICAg
ICAgICBkbwogICAgICAgICAgICBbWyAke2Z9ID09ICR7eH0gXV0gJiYgY29udGludWUgMjsKICAg
ICAgICBkb25lOwogICAgICAgIGV2YWwgbmV3XFtcJHtcI25ld1xbQF19XT1cJHtmfTsKICAgIGRv
bmU7CiAgICBldmFsIGV4cG9ydCAke1ZBUn09XCR7bmV3XFsqXX0KfQpfZ2NjLWluc3RhbGwtZGly
ICgpIAp7IAogICAgZWNobyAiJChMQ19BTEw9QyAkKHRjLWdldENDKSAtcHJpbnQtc2VhcmNoLWRp
cnMgMj4gL2Rldi9udWxsIHwJCWF3ayAnJDE9PSJpbnN0YWxsOiIge3ByaW50ICQyfScpIgp9Cl9n
Y2Mtc3BlY3MtZGlyZWN0aXZlX3JhdyAoKSAKeyAKICAgIGxvY2FsIGNjPSQodGMtZ2V0Q0MpOwog
ICAgbG9jYWwgc3BlY2ZpbGVzPSQoTENfQUxMPUMgJHtjY30gLXYgMj4mMSB8IGF3ayAnJDE9PSJS
ZWFkaW5nIiB7cHJpbnQgJE5GfScpOwogICAgJHtjY30gLWR1bXBzcGVjcyAyPiAvZGV2L251bGwg
fCBjYXQgLSAke3NwZWNmaWxlc30gfCBhd2sgLXYgZGlyZWN0aXZlPSQxICdCRUdJTgl7IHBzcGVj
PSIiOyBzcGVjPSIiOyBvdXRzaWRlPTEgfQokMT09IioiZGlyZWN0aXZlIjoiICB7IHBzcGVjPXNw
ZWM7IHNwZWM9IiI7IG91dHNpZGU9MDsgbmV4dCB9CglvdXRzaWRlIHx8IE5GPT0wIHx8ICggc3Vi
c3RyKCQxLDEsMSk9PSIqIiAmJiBzdWJzdHIoJDEsbGVuZ3RoKCQxKSwxKT09IjoiICkgeyBvdXRz
aWRlPTE7IG5leHQgfQoJc3BlYz09IiIgJiYgc3Vic3RyKCQwLDEsMSk9PSIrIiB7IHNwZWM9cHNw
ZWMgIiAiIHN1YnN0cigkMCwyKTsgbmV4dCB9Cgl7IHNwZWM9c3BlYyAkMCB9CkVORAl7IHByaW50
IHNwZWMgfSc7CiAgICByZXR1cm4gMAp9Cl9nY2Mtc3BlY3MtZXhpc3RzICgpIAp7IAogICAgW1sg
LWYgJChfZ2NjLWluc3RhbGwtZGlyKS8kMSBdXQp9Cl9pc19mbGFncSAoKSAKeyAKICAgIGxvY2Fs
IHg7CiAgICBmb3IgeCBpbiAkeyExfTsKICAgIGRvCiAgICAgICAgW1sgJHt4fSA9PSAkMiBdXSAm
JiByZXR1cm4gMDsKICAgIGRvbmU7CiAgICByZXR1cm4gMQp9CmFsdGVybmF0aXZlc19hdXRvX21h
a2VzeW0gKCkgCnsgCiAgICBsb2NhbCBTWU1MSU5LIFJFR0VYIEFMVCBteXJlZ2V4OwogICAgU1lN
TElOSz0kMTsKICAgIFJFR0VYPSQyOwogICAgaWYgWyAiJHtSRUdFWDowOjF9IiAhPSAiLyIgXTsg
dGhlbgogICAgICAgIG15cmVnZXg9IiR7U1lNTElOSyUvKn0vJHtSRUdFWH0iOwogICAgZWxzZQog
ICAgICAgIG15cmVnZXg9JHtSRUdFWH07CiAgICBmaTsKICAgIEFMVD0iJChmb3IgaSBpbiAkKGVj
aG8gJHtST09UfSR7bXlyZWdleH0pOyBkbyBlY2hvICR7aSMke1JPT1R9fTsgZG9uZSB8IHNvcnQg
LXIpIjsKICAgIGFsdGVybmF0aXZlc19tYWtlc3ltICR7U1lNTElOS30gJHtBTFR9Cn0KYWx0ZXJu
YXRpdmVzX21ha2VzeW0gKCkgCnsgCiAgICBsb2NhbCBBTFRFUk5BVElWRVM9IiI7CiAgICBsb2Nh
bCBTWU1MSU5LPSIiOwogICAgbG9jYWwgYWx0IHByZWY7CiAgICBTWU1MSU5LPSQxOwogICAgcHJl
Zj0kKGVjaG8gJHtST09UfSB8IHNlZCAnczovJDo6Jyk7CiAgICBzaGlmdDsKICAgIEFMVEVSTkFU
SVZFUz0kQDsKICAgIGZvciBhbHQgaW4gJHtBTFRFUk5BVElWRVN9OwogICAgZG8KICAgICAgICBp
ZiBbIC1mICIke3ByZWZ9JHthbHR9IiBdOyB0aGVuCiAgICAgICAgICAgIGlmIFsgIiR7YWx0JS8q
fSIgPSAiJHtTWU1MSU5LJS8qfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgZWluZm8gIkxpbmtp
bmcgJHthbHR9IHRvICR7cHJlZn0ke1NZTUxJTkt9IChyZWxhdGl2ZSkiOwogICAgICAgICAgICAg
ICAgbG4gLXNmICR7YWx0IyMqL30gJHtwcmVmfSR7U1lNTElOS307CiAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgIGVpbmZvICJMaW5raW5nICR7YWx0fSB0byAke3ByZWZ9JHtTWU1MSU5L
fSAoYWJzb2x1dGUpIjsKICAgICAgICAgICAgICAgIGxuIC1zZiAke3ByZWZ9JHthbHR9ICR7cHJl
Zn0ke1NZTUxJTkt9OwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
Zmk7CiAgICBkb25lOwogICAgaWYgWyAhIC1MICR7cHJlZn0ke1NZTUxJTkt9IF07IHRoZW4KICAg
ICAgICBld2FybiAiVW5hYmxlIHRvIGVzdGFibGlzaCAke3ByZWZ9JHtTWU1MSU5LfSBzeW1saW5r
IjsKICAgIGVsc2UKICAgICAgICBpZiBbICEgLWYgImBkaXJuYW1lICR7cHJlZn0ke1NZTUxJTkt9
YC9gcmVhZGxpbmsgJHtwcmVmfSR7U1lNTElOS31gIiAtYSAhIC1mICJgcmVhZGxpbmsgJHtwcmVm
fSR7U1lNTElOS31gIiBdOyB0aGVuCiAgICAgICAgICAgIGV3YXJuICJSZW1vdmluZyBkZWFkIHN5
bWxpbmsgJHtwcmVmfSR7U1lNTElOS30iOwogICAgICAgICAgICBybSAtZiAke3ByZWZ9JHtTWU1M
SU5LfTsKICAgICAgICBmaTsKICAgIGZpCn0KYWx0ZXJuYXRpdmVzX3BrZ19wb3N0aW5zdCAoKSAK
eyAKICAgIGlmIFsgLW4gIiR7QUxURVJOQVRJVkVTfSIgLWEgLW4gIiR7U09VUkNFfSIgXTsgdGhl
bgogICAgICAgIGFsdGVybmF0aXZlc19tYWtlc3ltICR7U09VUkNFfSAke0FMVEVSTkFUSVZFU307
CiAgICBmaQp9CmFsdGVybmF0aXZlc19wa2dfcG9zdHJtICgpIAp7IAogICAgaWYgWyAtbiAiJHtB
TFRFUk5BVElWRVN9IiAtYSAtbiAiJHtTT1VSQ0V9IiBdOyB0aGVuCiAgICAgICAgYWx0ZXJuYXRp
dmVzX21ha2VzeW0gJHtTT1VSQ0V9ICR7QUxURVJOQVRJVkVTfTsKICAgIGZpCn0KYXBwZW5kLWNw
cGZsYWdzICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgcmV0dXJuIDA7CiAgICBleHBvcnQgQ1BQ
RkxBR1M9IiR7Q1BQRkxBR1N9ICQqIjsKICAgIHJldHVybiAwCn0KYXBwZW5kLWZmbGFncyAoKSAK
eyAKICAgIFtbIC16ICQqIF1dICYmIHJldHVybiAwOwogICAgZXhwb3J0IEZGTEFHUz0iJHtGRkxB
R1N9ICQqIjsKICAgIGV4cG9ydCBGQ0ZMQUdTPSIke0ZDRkxBR1N9ICQqIjsKICAgIHJldHVybiAw
Cn0KYXBwZW5kLWZsYWdzICgpIAp7IAogICAgW1sgLXogJCogXV0gJiYgcmV0dXJuIDA7CiAgICBl
eHBvcnQgQ0ZMQUdTPSIke0NGTEFHU30gJCoiOwogICAgZXhwb3J0IENYWEZMQUdTPSIke0NYWEZM
QUdTfSAkKiI7CiAgICBleHBvcnQgRkZMQUdTPSIke0ZGTEFHU30gJCoiOwogICAgZXhwb3J0IEZD
RkxBR1M9IiR7RkNGTEFHU30gJCoiOwogICAgcmV0dXJuIDAKfQphcHBlbmQtbGRmbGFncyAoKSAK
eyAKICAgIFtbIC16ICQqIF1dICYmIHJldHVybiAwOwogICAgbG9jYWwgZmxhZzsKICAgIGZvciBm
bGFnIGluICIkQCI7CiAgICBkbwogICAgICAgIFtbICR7ZmxhZ30gPT0gLWwqIF1dICYmIGV3YXJu
ICJBcHBlbmRpbmcgYSBsaWJyYXJ5IGxpbmsgaW5zdHJ1Y3Rpb24gKCR7ZmxhZ30pOyBsaWJyYXJp
ZXMgdG8gbGluayB0byBzaG91bGQgbm90IGJlIHBhc3NlZCB0aHJvdWdoIExERkxBR1MiOwogICAg
ZG9uZTsKICAgIGV4cG9ydCBMREZMQUdTPSIke0xERkxBR1N9ICQqIjsKICAgIHJldHVybiAwCn0K
YXBwZW5kLWxmcy1mbGFncyAoKSAKeyAKICAgIFtbIC1uICRAIF1dICYmIGRpZSAiYXBwZW5kLWxm
cy1mbGFncyB0YWtlcyBubyBhcmd1bWVudHMiOwogICAgYXBwZW5kLWNwcGZsYWdzIC1EX0ZJTEVf
T0ZGU0VUX0JJVFM9NjQgLURfTEFSR0VGSUxFX1NPVVJDRSAtRF9MQVJHRUZJTEU2NF9TT1VSQ0UK
fQpiaW5kbm93LWZsYWdzICgpIAp7IAogICAgZXdhcm4gIlFBOiBzdG9wIHVzaW5nIHRoZSBiaW5k
bm93LWZsYWdzIGZ1bmN0aW9uIC4uLiBzaW1wbHkgZHJvcCBpdCBmcm9tIHlvdXIgZWJ1aWxkIiAx
PiYyOwogICAgY2FzZSAkKCQodGMtZ2V0TEQpIC12IDI+JjEgPC9kZXYvbnVsbCkgaW4gCiAgICAg
ICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCiAgICAgICAgICAgIGVjaG8gIi1XbCwteixub3ciCiAg
ICAgICAgOzsKICAgICAgICAqQXBwbGUqKQogICAgICAgICAgICBlY2hvICItYmluZF9hdF9sb2Fk
IgogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgY2FzZSAkKCQodGMtZ2V0TEQpIC1W
IDI+JjEgPC9kZXYvbnVsbCkgaW4gCiAgICAgICAgICAgICAgICAqU29sYXJpcyopCiAgICAgICAg
ICAgICAgICAgICAgZWNobyAiLVdsLC16LG5vdyIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAg
ICAgIGVzYWMKICAgICAgICA7OwogICAgZXNhYwp9CmJ1aWx0X3dpdGhfdXNlICgpIAp7IAogICAg
bG9jYWwgaGlkZGVuPSJubyI7CiAgICBpZiBbWyAkMSA9PSAiLS1oaWRkZW4iIF1dOyB0aGVuCiAg
ICAgICAgaGlkZGVuPSJ5ZXMiOwogICAgICAgIHNoaWZ0OwogICAgZmk7CiAgICBsb2NhbCBtaXNz
aW5nX2FjdGlvbj0iZGllIjsKICAgIGlmIFtbICQxID09ICItLW1pc3NpbmciIF1dOyB0aGVuCiAg
ICAgICAgbWlzc2luZ19hY3Rpb249JDI7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgc2hpZnQ7CiAg
ICAgICAgY2FzZSAke21pc3NpbmdfYWN0aW9ufSBpbiAKICAgICAgICAgICAgdHJ1ZSB8IGZhbHNl
IHwgZGllKQoKICAgICAgICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGRp
ZSAidW5rbm93biBhY3Rpb24gJyR7bWlzc2luZ19hY3Rpb259JyIKICAgICAgICAgICAgOzsKICAg
ICAgICBlc2FjOwogICAgZmk7CiAgICBsb2NhbCBvcHQ9JDE7CiAgICBbWyAke29wdDowOjF9ID0g
Ii0iIF1dICYmIHNoaWZ0IHx8IG9wdD0iLWEiOwogICAgbG9jYWwgUEtHPSQoYmVzdF92ZXJzaW9u
ICQxKTsKICAgIFtbIC16ICR7UEtHfSBdXSAmJiBkaWUgIlVuYWJsZSB0byByZXNvbHZlICQxIHRv
IGFuIGluc3RhbGxlZCBwYWNrYWdlIjsKICAgIHNoaWZ0OwogICAgbG9jYWwgVVNFRklMRT0ke1JP
T1R9L3Zhci9kYi9wa2cvJHtQS0d9L1VTRTsKICAgIGxvY2FsIElVU0VGSUxFPSR7Uk9PVH0vdmFy
L2RiL3BrZy8ke1BLR30vSVVTRTsKICAgIGlmIFtbICEgLWUgJHtVU0VGSUxFfSBdXSB8fCBbWyAh
IC1lICR7SVVTRUZJTEV9ICYmICR7aGlkZGVufSA9PSAibm8iIF1dOyB0aGVuCiAgICAgICAgY2Fz
ZSAke21pc3NpbmdfYWN0aW9ufSBpbiAKICAgICAgICAgICAgdHJ1ZSkKICAgICAgICAgICAgICAg
IHJldHVybiAwCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGZhbHNlKQogICAgICAgICAgICAg
ICAgcmV0dXJuIDEKICAgICAgICAgICAgOzsKICAgICAgICAgICAgZGllKQogICAgICAgICAgICAg
ICAgZGllICJVbmFibGUgdG8gZGV0ZXJtaW5lIHdoYXQgVVNFIGZsYWdzICRQS0cgd2FzIGJ1aWx0
IHdpdGgiCiAgICAgICAgICAgIDs7CiAgICAgICAgZXNhYzsKICAgIGZpOwogICAgaWYgW1sgJHto
aWRkZW59ID09ICJubyIgXV07IHRoZW4KICAgICAgICBsb2NhbCBJVVNFX0JVSUxUPSgkKDwiJHtJ
VVNFRklMRX0iKSk7CiAgICAgICAgbG9jYWwgZXhwYW5kOwogICAgICAgIGZvciBleHBhbmQgaW4g
JChlY2hvICR7VVNFX0VYUEFORH0gfCB0ciAnWzp1cHBlcjpdJyAnWzpsb3dlcjpdJyk7CiAgICAg
ICAgZG8KICAgICAgICAgICAgaWYgW1sgJDEgPT0gJHtleHBhbmR9XyogXV07IHRoZW4KICAgICAg
ICAgICAgICAgIGV4cGFuZD0iIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBm
aTsKICAgICAgICBkb25lOwogICAgICAgIGlmIFtbIC1uICR7ZXhwYW5kfSBdXTsgdGhlbgogICAg
ICAgICAgICBpZiAhIGhhcyAkMSAke0lVU0VfQlVJTFRbQF0jWy0rXX07IHRoZW4KICAgICAgICAg
ICAgICAgIGNhc2UgJHttaXNzaW5nX2FjdGlvbn0gaW4gCiAgICAgICAgICAgICAgICAgICAgdHJ1
ZSkKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICAgICAgICAgICAgICA7
OwogICAgICAgICAgICAgICAgICAgIGZhbHNlKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gMQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgZGllKQogICAg
ICAgICAgICAgICAgICAgICAgICBkaWUgIiRQS0cgZG9lcyBub3QgYWN0dWFsbHkgc3VwcG9ydCB0
aGUgJDEgVVNFIGZsYWchIgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBl
c2FjOwogICAgICAgICAgICBmaTsKICAgICAgICBmaTsKICAgIGZpOwogICAgbG9jYWwgVVNFX0JV
SUxUPSQoPCR7VVNFRklMRX0pOwogICAgd2hpbGUgW1sgJCMgLWd0IDAgXV07IGRvCiAgICAgICAg
aWYgW1sgJHtvcHR9ID0gIi1vIiBdXTsgdGhlbgogICAgICAgICAgICBoYXMgJDEgJHtVU0VfQlVJ
TFR9ICYmIHJldHVybiAwOwogICAgICAgIGVsc2UKICAgICAgICAgICAgaGFzICQxICR7VVNFX0JV
SUxUfSB8fCByZXR1cm4gMTsKICAgICAgICBmaTsKICAgICAgICBzaGlmdDsKICAgIGRvbmU7CiAg
ICBbWyAke29wdH0gPSAiLWEiIF1dCn0KY2Ryb21fZ2V0X2NkcyAoKSAKeyAKICAgIGxvY2FsIGNk
Y250PTA7CiAgICBsb2NhbCBmPTsKICAgIGZvciBmIGluICIkQCI7CiAgICBkbwogICAgICAgICgo
KytjZGNudCkpOwogICAgICAgIGV4cG9ydCBDRFJPTV9DSEVDS18ke2NkY250fT0iJGYiOwogICAg
ZG9uZTsKICAgIGV4cG9ydCBDRFJPTV9UT1RBTF9DRFM9JHtjZGNudH07CiAgICBleHBvcnQgQ0RS
T01fQ1VSUkVOVF9DRD0xOwogICAgaWYgW1sgLW4gJHtDRF9ST09UfSR7Q0RfUk9PVF8xfSBdXTsg
dGhlbgogICAgICAgIGxvY2FsIHZhcj07CiAgICAgICAgY2RjbnQ9MDsKICAgICAgICB3aGlsZSBb
WyAke2NkY250fSAtbHQgJHtDRFJPTV9UT1RBTF9DRFN9IF1dOyBkbwogICAgICAgICAgICAoKCsr
Y2RjbnQpKTsKICAgICAgICAgICAgdmFyPSJDRF9ST09UXyR7Y2RjbnR9IjsKICAgICAgICAgICAg
W1sgLXogJHshdmFyfSBdXSAmJiB2YXI9IkNEX1JPT1QiOwogICAgICAgICAgICBpZiBbWyAteiAk
eyF2YXJ9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlZXJyb3IgIllvdSBtdXN0IGVpdGhlciB1
c2UganVzdCB0aGUgQ0RfUk9PVCI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIm9yIHNwZWNpZnkg
QUxMIHRoZSBDRF9ST09UX1ggdmFyaWFibGVzLiI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIklu
IHRoaXMgY2FzZSwgeW91IHdpbGwgbmVlZCAke0NEUk9NX1RPVEFMX0NEU30gQ0RfUk9PVF9YIHZh
cmlhYmxlcy4iOwogICAgICAgICAgICAgICAgZGllICJjb3VsZCBub3QgbG9jYXRlIENEX1JPT1Rf
JHtjZGNudH0iOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lOwogICAgICAgIGV4cG9ydCBD
RFJPTV9ST09UPSR7Q0RfUk9PVF8xOi0ke0NEX1JPT1R9fTsKICAgICAgICBlaW5mbyAiRm91bmQg
Q0QgIyR7Q0RST01fQ1VSUkVOVF9DRH0gcm9vdCBhdCAke0NEUk9NX1JPT1R9IjsKICAgICAgICBl
eHBvcnQgQ0RST01fU0VUPS0xOwogICAgICAgIGZvciBmIGluICR7Q0RST01fQ0hFQ0tfMS8vOi8g
fTsKICAgICAgICBkbwogICAgICAgICAgICAoKCsrQ0RST01fU0VUKSk7CiAgICAgICAgICAgIFtb
IC1lICR7Q0RfUk9PVH0vJHtmfSBdXSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgICAgIGV4
cG9ydCBDRFJPTV9NQVRDSD0ke2Z9OwogICAgICAgIHJldHVybjsKICAgIGZpOwogICAgaWYgW1sg
JHtDRFJPTV9UT1RBTF9DRFN9IC1lcSAxIF1dOyB0aGVuCiAgICAgICAgZWluZm8gIlRoaXMgZWJ1
aWxkIHdpbGwgbmVlZCB0aGUgJHtDRFJPTV9OQU1FOi1jZHJvbSBmb3IgJHtQTn19IjsKICAgICAg
ICBlY2hvOwogICAgICAgIGVpbmZvICJJZiB5b3UgZG8gbm90IGhhdmUgdGhlIENELCBidXQgaGF2
ZSB0aGUgZGF0YSBmaWxlcyI7CiAgICAgICAgZWluZm8gIm1vdW50ZWQgc29tZXdoZXJlIG9uIHlv
dXIgZmlsZXN5c3RlbSwganVzdCBleHBvcnQiOwogICAgICAgIGVpbmZvICJ0aGUgdmFyaWFibGUg
Q0RfUk9PVCBzbyB0aGF0IGl0IHBvaW50cyB0byB0aGUiOwogICAgICAgIGVpbmZvICJkaXJlY3Rv
cnkgY29udGFpbmluZyB0aGUgZmlsZXMuIjsKICAgICAgICBlY2hvOwogICAgICAgIGVpbmZvICJG
b3IgZXhhbXBsZToiOwogICAgICAgIGVpbmZvICJleHBvcnQgQ0RfUk9PVD0vbW50L2Nkcm9tIjsK
ICAgICAgICBlY2hvOwogICAgZWxzZQogICAgICAgIGlmIFtbIC1uICR7Q0RST01fTkFNRV9TRVR9
IF1dOyB0aGVuCiAgICAgICAgICAgIGNkY250PTA7CiAgICAgICAgICAgIHdoaWxlIFtbICR7Y2Rj
bnR9IC1sdCAke0NEUk9NX1RPVEFMX0NEU30gXV07IGRvCiAgICAgICAgICAgICAgICAoKCsrY2Rj
bnQpKTsKICAgICAgICAgICAgICAgIGV4cG9ydCBDRFJPTV9OQU1FXyR7Y2RjbnR9PSIke0NEUk9N
X05BTUVfU0VUWyQoKCR7Y2RjbnR9LTEpKV19IjsKICAgICAgICAgICAgZG9uZTsKICAgICAgICBm
aTsKICAgICAgICBlaW5mbyAiVGhpcyBwYWNrYWdlIHdpbGwgbmVlZCBhY2Nlc3MgdG8gJHtDRFJP
TV9UT1RBTF9DRFN9IGNkcy4iOwogICAgICAgIGNkY250PTA7CiAgICAgICAgd2hpbGUgW1sgJHtj
ZGNudH0gLWx0ICR7Q0RST01fVE9UQUxfQ0RTfSBdXTsgZG8KICAgICAgICAgICAgKCgrK2NkY250
KSk7CiAgICAgICAgICAgIHZhcj0iQ0RST01fTkFNRV8ke2NkY250fSI7CiAgICAgICAgICAgIFtb
ICEgLXogJHshdmFyfSBdXSAmJiBlaW5mbyAiIENEICR7Y2RjbnR9OiAkeyF2YXJ9IjsKICAgICAg
ICBkb25lOwogICAgICAgIGVjaG87CiAgICAgICAgZWluZm8gIklmIHlvdSBkbyBub3QgaGF2ZSB0
aGUgQ0RzLCBidXQgaGF2ZSB0aGUgZGF0YSBmaWxlcyI7CiAgICAgICAgZWluZm8gIm1vdW50ZWQg
c29tZXdoZXJlIG9uIHlvdXIgZmlsZXN5c3RlbSwganVzdCBleHBvcnQiOwogICAgICAgIGVpbmZv
ICJ0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBzbyB0aGV5IHBvaW50IHRvIHRoZSByaWdodCBwbGFj
ZToiOwogICAgICAgIGVpbmZvbiAiIjsKICAgICAgICBjZGNudD0wOwogICAgICAgIHdoaWxlIFtb
ICR7Y2RjbnR9IC1sdCAke0NEUk9NX1RPVEFMX0NEU30gXV07IGRvCiAgICAgICAgICAgICgoKytj
ZGNudCkpOwogICAgICAgICAgICBlY2hvIC1uICIgQ0RfUk9PVF8ke2NkY250fSI7CiAgICAgICAg
ZG9uZTsKICAgICAgICBlY2hvOwogICAgICAgIGVpbmZvICJPciwgaWYgeW91IGhhdmUgYWxsIHRo
ZSBmaWxlcyBpbiB0aGUgc2FtZSBwbGFjZSwgb3IiOwogICAgICAgIGVpbmZvICJ5b3Ugb25seSBo
YXZlIG9uZSBjZHJvbSwgeW91IGNhbiBleHBvcnQgQ0RfUk9PVCI7CiAgICAgICAgZWluZm8gImFu
ZCB0aGF0IHBsYWNlIHdpbGwgYmUgdXNlZCBhcyB0aGUgc2FtZSBkYXRhIHNvdXJjZSI7CiAgICAg
ICAgZWluZm8gImZvciBhbGwgdGhlIENEcy4iOwogICAgICAgIGVjaG87CiAgICAgICAgZWluZm8g
IkZvciBleGFtcGxlOiI7CiAgICAgICAgZWluZm8gImV4cG9ydCBDRF9ST09UXzE9L21udC9jZHJv
bSI7CiAgICAgICAgZWNobzsKICAgIGZpOwogICAgZXhwb3J0IENEUk9NX1NFVD0iIjsKICAgIGV4
cG9ydCBDRFJPTV9DVVJSRU5UX0NEPTA7CiAgICBjZHJvbV9sb2FkX25leHRfY2QKfQpjZHJvbV9s
b2FkX25leHRfY2QgKCkgCnsgCiAgICBsb2NhbCB2YXI7CiAgICAoKCsrQ0RST01fQ1VSUkVOVF9D
RCkpOwogICAgdW5zZXQgQ0RST01fUk9PVDsKICAgIHZhcj1DRF9ST09UXyR7Q0RST01fQ1VSUkVO
VF9DRH07CiAgICBbWyAteiAkeyF2YXJ9IF1dICYmIHZhcj0iQ0RfUk9PVCI7CiAgICBpZiBbWyAt
eiAkeyF2YXJ9IF1dOyB0aGVuCiAgICAgICAgdmFyPSJDRFJPTV9DSEVDS18ke0NEUk9NX0NVUlJF
TlRfQ0R9IjsKICAgICAgICBfY2Ryb21fbG9jYXRlX2ZpbGVfb25fY2QgJHshdmFyfTsKICAgIGVs
c2UKICAgICAgICBleHBvcnQgQ0RST01fUk9PVD0keyF2YXJ9OwogICAgZmk7CiAgICBlaW5mbyAi
Rm91bmQgQ0QgIyR7Q0RST01fQ1VSUkVOVF9DRH0gcm9vdCBhdCAke0NEUk9NX1JPT1R9Igp9CmNo
ZWNrX2xpY2Vuc2UgKCkgCnsgCiAgICBsb2NhbCBsaWM9JDE7CiAgICBpZiBbIC16ICIke2xpY30i
IF07IHRoZW4KICAgICAgICBsaWM9IiR7UE9SVERJUn0vbGljZW5zZXMvJHtMSUNFTlNFfSI7CiAg
ICBlbHNlCiAgICAgICAgaWYgWyAtZSAiJHtQT1JURElSfS9saWNlbnNlcy8ke2xpY30iIF07IHRo
ZW4KICAgICAgICAgICAgbGljPSIke1BPUlRESVJ9L2xpY2Vuc2VzLyR7bGljfSI7CiAgICAgICAg
ZWxzZQogICAgICAgICAgICBpZiBbIC1lICIke1BXRH0vJHtsaWN9IiBdOyB0aGVuCiAgICAgICAg
ICAgICAgICBsaWM9IiR7UFdEfS8ke2xpY30iOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICBpZiBbIC1lICIke2xpY30iIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBsaWM9IiR7
bGljfSI7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAg
ICBmaTsKICAgIFsgISAtZiAiJHtsaWN9IiBdICYmIGRpZSAiQ291bGQgbm90IGZpbmQgcmVxdWVz
dGVkIGxpY2Vuc2UgJHtsaWN9IjsKICAgIGxvY2FsIGw9ImBiYXNlbmFtZSAke2xpY31gIjsKICAg
IGxvY2FsIHNob3B0cz0kLTsKICAgIGxvY2FsIGFsaWM7CiAgICBzZXQgLW8gbm9nbG9iOwogICAg
Zm9yIGFsaWMgaW4gJHtBQ0NFUFRfTElDRU5TRX07CiAgICBkbwogICAgICAgIGlmIFtbICR7YWxp
Y30gPT0gJHtsfSBdXTsgdGhlbgogICAgICAgICAgICBzZXQgK28gbm9nbG9iOwogICAgICAgICAg
ICBzZXQgLSR7c2hvcHRzfTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAgICBk
b25lOwogICAgc2V0ICtvIG5vZ2xvYjsKICAgIHNldCAtJHNob3B0czsKICAgIGxvY2FsIGxpY21z
Zz0kKGVta3RlbXApOwogICAgY2F0ID4gJHtsaWNtc2d9ICA8PC1FT0YKKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUaGUgZm9sbG93aW5n
IGxpY2Vuc2Ugb3V0bGluZXMgdGhlIHRlcm1zIG9mIHVzZSBvZiB0aGlzCnBhY2thZ2UuICBZb3Ug
TVVTVCBhY2NlcHQgdGhpcyBsaWNlbnNlIGZvciBpbnN0YWxsYXRpb24gdG8KY29udGludWUuICBX
aGVuIHlvdSBhcmUgZG9uZSB2aWV3aW5nLCBoaXQgJ3EnLglJZiB5b3UKQ1RSTCtDIG91dCBvZiB0
aGlzLCB0aGUgaW5zdGFsbCB3aWxsIG5vdCBydW4hCioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCkVPRgoKICAgIGNhdCAke2xpY30gPj4g
JHtsaWNtc2d9OwogICAgJHtQQUdFUjotbGVzc30gJHtsaWNtc2d9IHx8IGRpZSAiQ291bGQgbm90
IGV4ZWN1dGUgcGFnZXIgKCR7UEFHRVJ9KSB0byBhY2NlcHQgJHtsaWN9IjsKICAgIGVpbmZvbiAi
RG8geW91IGFjY2VwdCB0aGUgdGVybXMgb2YgdGhpcyBsaWNlbnNlICgke2x9KT8gW3llcy9ub10g
IjsKICAgIHJlYWQgYWxpYzsKICAgIGNhc2UgJHthbGljfSBpbiAKICAgICAgICB5ZXMgfCBZZXMg
fCB5IHwgWSkKICAgICAgICAgICAgcmV0dXJuIDAKICAgICAgICA7OwogICAgICAgICopCiAgICAg
ICAgICAgIGVjaG87CiAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgIGVjaG87CiAgICAgICAg
ICAgIGVlcnJvciAiWW91IE1VU1QgYWNjZXB0IHRoZSBsaWNlbnNlIHRvIGNvbnRpbnVlISAgRXhp
dGluZyEiOwogICAgICAgICAgICBkaWUgIkZhaWxlZCB0byBhY2NlcHQgbGljZW5zZSIKICAgICAg
ICA7OwogICAgZXNhYwp9CmNvbmZ1dGlsc19pbml0ICgpIAp7IAogICAgaWYgW1sgJHtFQlVJTERf
U1VQUE9SVFNfU0hBUkVERVhUfSA9PSAxIF1dICYmIHVzZSBzaGFyZWRleHQ7IHRoZW4KICAgICAg
ICBzaGFyZWQ9Ij0kezE6LXNoYXJlZH0iOwogICAgZWxzZQogICAgICAgIHNoYXJlZD07CiAgICBm
aQp9CmNvbmZ1dGlsc19yZXF1aXJlX2FueSAoKSAKeyAKICAgIGxvY2FsIHJlcXVpcmVkX2ZsYWdz
PSIkQCI7CiAgICBsb2NhbCBzdWNjZXNzPTA7CiAgICBmb3IgZmxhZyBpbiAke3JlcXVpcmVkX2Zs
YWdzfTsKICAgIGRvCiAgICAgICAgdXNlICR7ZmxhZ30gJiYgc3VjY2Vzcz0xOwogICAgZG9uZTsK
ICAgIFtbICR7c3VjY2Vzc30gLWVxIDEgXV0gJiYgcmV0dXJuOwogICAgZWNobzsKICAgIGVlcnJv
ciAiWW91ICptdXN0KiBlbmFibGUgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBVU0UgZmxh
Z3M6IjsKICAgIGVlcnJvciAiICAke3JlcXVpcmVkX2ZsYWdzfSI7CiAgICBlZXJyb3I7CiAgICBl
ZXJyb3IgIllvdSBjYW4gZG8gdGhpcyBieSBlbmFibGluZyB0aGVzZSBmbGFncyBpbiAvZXRjL3Bv
cnRhZ2UvcGFja2FnZS51c2U6IjsKICAgIGVlcnJvciAiICAgID0ke0NBVEVHT1JZfS8ke1BOfS0k
e1BWUn0gJHtyZXF1aXJlZF9mbGFnc30iOwogICAgZWNobzsKICAgIGRpZSAiTWlzc2luZyBVU0Ug
ZmxhZ3MiCn0KY29uZnV0aWxzX3JlcXVpcmVfYnVpbHRfd2l0aF9hbGwgKCkgCnsgCiAgICBsb2Nh
bCBmb3JlaWduPSQxICYmIHNoaWZ0OwogICAgbG9jYWwgcmVxdWlyZWRfZmxhZ3M9IiRAIjsKICAg
IGJ1aWx0X3dpdGhfdXNlICR7Zm9yZWlnbn0gJHtyZXF1aXJlZF9mbGFnc30gJiYgcmV0dXJuOwog
ICAgZWNobzsKICAgIGVlcnJvciAiWW91ICptdXN0KiBlbmFibGUgYWxsIG9mIHRoZSBmb2xsb3dp
bmcgVVNFIGZsYWdzIGluICR7Zm9yZWlnbn06IjsKICAgIGVlcnJvciAiICAke3JlcXVpcmVkX2Zs
YWdzfSI7CiAgICBlZXJyb3I7CiAgICBlZXJyb3IgIllvdSBjYW4gZG8gdGhpcyBieSBlbmFibGlu
ZyB0aGVzZSBmbGFncyBpbiAvZXRjL3BvcnRhZ2UvcGFja2FnZS51c2U6IjsKICAgIGVlcnJvciAi
ICAgICR7Zm9yZWlnbn0gJHtyZXF1aXJlZF9mbGFnc30iOwogICAgZWNobzsKICAgIGRpZSAiTWlz
c2luZyBVU0UgZmxhZ3MgaW4gJHtmb3JlaWdufSIKfQpjb25mdXRpbHNfcmVxdWlyZV9idWlsdF93
aXRoX2FueSAoKSAKeyAKICAgIGxvY2FsIGZvcmVpZ249JDEgJiYgc2hpZnQ7CiAgICBsb2NhbCBy
ZXF1aXJlZF9mbGFncz0iJEAiOwogICAgbG9jYWwgc3VjY2Vzcz0wOwogICAgZm9yIGZsYWcgaW4g
JHtyZXF1aXJlZF9mbGFnc307CiAgICBkbwogICAgICAgIGJ1aWx0X3dpdGhfdXNlICR7Zm9yZWln
bn0gJHtmbGFnfSAmJiBzdWNjZXNzPTE7CiAgICBkb25lOwogICAgW1sgJHtzdWNjZXNzfSAtZXEg
MSBdXSAmJiByZXR1cm47CiAgICBlY2hvOwogICAgZWVycm9yICJZb3UgKm11c3QqIGVuYWJsZSBv
bmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIFVTRSBmbGFncyBpbiAke2ZvcmVpZ259OiI7CiAg
ICBlZXJyb3IgIiAgJHtyZXF1aXJlZF9mbGFnc30iOwogICAgZWVycm9yOwogICAgZWVycm9yICJZ
b3UgY2FuIGRvIHRoaXMgYnkgZW5hYmxpbmcgdGhlc2UgZmxhZ3MgaW4gL2V0Yy9wb3J0YWdlL3Bh
Y2thZ2UudXNlOiI7CiAgICBlZXJyb3IgIiAgICAke2ZvcmVpZ259ICR7cmVxdWlyZWRfZmxhZ3N9
IjsKICAgIGVjaG87CiAgICBkaWUgIk1pc3NpbmcgVVNFIGZsYWdzIGluICR7Zm9yZWlnbn0iCn0K
Y29uZnV0aWxzX3JlcXVpcmVfb25lICgpIAp7IAogICAgbG9jYWwgcmVxdWlyZWRfZmxhZ3M9IiRA
IjsKICAgIGxvY2FsIHN1Y2Nlc3M9MDsKICAgIGZvciBmbGFnIGluICR7cmVxdWlyZWRfZmxhZ3N9
OwogICAgZG8KICAgICAgICB1c2UgJHtmbGFnfSAmJiAoKHN1Y2Nlc3MrKykpOwogICAgZG9uZTsK
ICAgIFtbICR7c3VjY2Vzc30gLWVxIDEgXV0gJiYgcmV0dXJuOwogICAgZWNobzsKICAgIGVlcnJv
ciAiWW91ICptdXN0KiBlbmFibGUgKmV4YWN0bHkqIG9uZSBvZiB0aGUgZm9sbG93aW5nIFVTRSBm
bGFnczoiOwogICAgZWVycm9yICIgICR7cmVxdWlyZWRfZmxhZ3N9IjsKICAgIGVlcnJvcjsKICAg
IGVlcnJvciAiWW91IGNhbiBkbyB0aGlzIGJ5IGVuYWJsaW5nICpvbmUqIG9mIHRoZXNlIGZsYWcg
aW4gL2V0Yy9wb3J0YWdlL3BhY2thZ2UudXNlOiI7CiAgICBzZXQgLS0gJHtyZXF1aXJlZF9mbGFn
c307CiAgICBlZXJyb3IgIiAgICAgPSR7Q0FURUdPUll9LyR7UE59LSR7UFZSfSAkezF9IjsKICAg
IHNoaWZ0OwogICAgZm9yIGZsYWcgaW4gJEA7CiAgICBkbwogICAgICAgIGVlcnJvciAiICBPUiA9
JHtDQVRFR09SWX0vJHtQTn0tJHtQVlJ9ICR7ZmxhZ30iOwogICAgZG9uZTsKICAgIGVjaG87CiAg
ICBkaWUgIk1pc3Npbmcgb3IgY29uZmxpY3RpbmcgVVNFIGZsYWdzIgp9CmNvbmZ1dGlsc191c2Vf
Y29uZmxpY3QgKCkgCnsgCiAgICB1c2UgJDEgfHwgcmV0dXJuOwogICAgbG9jYWwgbXlfZmxhZz0i
JDEiICYmIHNoaWZ0OwogICAgbG9jYWwgbXlfcHJlc2VudD07CiAgICBsb2NhbCBteV9yZW1vdmU9
OwogICAgZm9yIGZsYWcgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgaWYgdXNlICR7ZmxhZ307IHRo
ZW4KICAgICAgICAgICAgbXlfcHJlc2VudD0iJHtteV9wcmVzZW50fSAke2ZsYWd9IjsKICAgICAg
ICAgICAgbXlfcmVtb3ZlPSIke215X3JlbW92ZX0gLSR7ZmxhZ30iOwogICAgICAgIGZpOwogICAg
ZG9uZTsKICAgIFtbIC16ICIke215X3ByZXNlbnR9IiBdXSAmJiByZXR1cm47CiAgICBlY2hvOwog
ICAgZWVycm9yICJVU0UgZmxhZyAnJHtteV9mbGFnfScgY29uZmxpY3RzIHdpdGggdGhlc2UgVVNF
IGZsYWcocyk6IjsKICAgIGVlcnJvciAiICAke215X3ByZXNlbnR9IjsKICAgIGVlcnJvcjsKICAg
IGVlcnJvciAiWW91IG11c3QgZGlzYWJsZSB0aGVzZSBjb25mbGljdGluZyBmbGFncyBiZWZvcmUg
eW91IGNhbiBlbWVyZ2UgdGhpcyBwYWNrYWdlLiI7CiAgICBlZXJyb3IgIllvdSBjYW4gZG8gdGhp
cyBieSBkaXNhYmxpbmcgdGhlc2UgZmxhZ3MgaW4gL2V0Yy9wb3J0YWdlL3BhY2thZ2UudXNlOiI7
CiAgICBlZXJyb3IgIiAgICA9JHtDQVRFR09SWX0vJHtQTn0tJHtQVlJ9ICR7bXlfcmVtb3ZlfSI7
CiAgICBlZXJyb3I7CiAgICBlZXJyb3IgIllvdSBjb3VsZCBkaXNhYmxlIHRoaXMgZmxhZyBpbnN0
ZWFkIGluIC9ldGMvcG9ydGFnZS9wYWNrYWdlLnVzZToiOwogICAgZWVycm9yICIgICAgPSR7Q0FU
RUdPUll9LyR7UE59LSR7UFZSfSAtJHtteV9mbGFnfSI7CiAgICBlY2hvOwogICAgZGllICJDb25m
bGljdGluZyBVU0UgZmxhZ3MiCn0KY29uZnV0aWxzX3VzZV9kZXBlbmRfYWxsICgpIAp7IAogICAg
dXNlICQxIHx8IHJldHVybjsKICAgIGxvY2FsIG15X2ZsYWc9IiQxIiAmJiBzaGlmdDsKICAgIGxv
Y2FsIG15X21pc3Npbmc9OwogICAgZm9yIGZsYWcgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgdXNl
ICR7ZmxhZ30gfHwgbXlfbWlzc2luZz0iJHtteV9taXNzaW5nfSAke2ZsYWd9IjsKICAgIGRvbmU7
CiAgICBbWyAteiAiJHtteV9taXNzaW5nfSIgXV0gJiYgcmV0dXJuOwogICAgZWNobzsKICAgIGVl
cnJvciAiVVNFIGZsYWcgJyR7bXlfZmxhZ30nIG5lZWRzIHRoZXNlIGFkZGl0aW9uYWwgZmxhZyhz
KSBzZXQ6IjsKICAgIGVlcnJvciAiICAke215X21pc3Npbmd9IjsKICAgIGVlcnJvcjsKICAgIGVl
cnJvciAiWW91IGNhbiBkbyB0aGlzIGJ5IGVuYWJsaW5nIHRoZXNlIGZsYWdzIGluIC9ldGMvcG9y
dGFnZS9wYWNrYWdlLnVzZToiOwogICAgZWVycm9yICIgICAgPSR7Q0FURUdPUll9LyR7UE59LSR7
UFZSfSAke215X21pc3Npbmd9IjsKICAgIGVlcnJvcjsKICAgIGVlcnJvciAiWW91IGNvdWxkIGRp
c2FibGUgdGhpcyBmbGFnIGluc3RlYWQgaW4gL2V0Yy9wb3J0YWdlL3BhY2thZ2UudXNlOiI7CiAg
ICBlZXJyb3IgIiAgICA9JHtDQVRFR09SWX0vJHtQTn0tJHtQVlJ9IC0ke215X2ZsYWd9IjsKICAg
IGVjaG87CiAgICBkaWUgIk5lZWQgbWlzc2luZyBVU0UgZmxhZ3MiCn0KY29uZnV0aWxzX3VzZV9k
ZXBlbmRfYW55ICgpIAp7IAogICAgdXNlICQxIHx8IHJldHVybjsKICAgIGxvY2FsIG15X2ZsYWc9
IiQxIiAmJiBzaGlmdDsKICAgIGxvY2FsIG15X2ZvdW5kPTsKICAgIGxvY2FsIG15X21pc3Npbmc9
OwogICAgZm9yIGZsYWcgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgaWYgdXNlICR7ZmxhZ307IHRo
ZW4KICAgICAgICAgICAgbXlfZm91bmQ9IiR7bXlfZm91bmR9ICR7ZmxhZ30iOwogICAgICAgIGVs
c2UKICAgICAgICAgICAgbXlfbWlzc2luZz0iJHtteV9taXNzaW5nfSAke2ZsYWd9IjsKICAgICAg
ICBmaTsKICAgIGRvbmU7CiAgICBbWyAtbiAiJHtteV9mb3VuZH0iIF1dICYmIHJldHVybjsKICAg
IGVjaG87CiAgICBlZXJyb3IgIlVTRSBmbGFnICcke215X2ZsYWd9JyBuZWVkcyBvbmUgb3IgbW9y
ZSBvZiB0aGVzZSBhZGRpdGlvbmFsIGZsYWcocykgc2V0OiI7CiAgICBlZXJyb3IgIiAgJHtteV9t
aXNzaW5nfSI7CiAgICBlZXJyb3I7CiAgICBlZXJyb3IgIllvdSBjYW4gZG8gdGhpcyBieSBlbmFi
bGluZyBvbmUgb2YgdGhlc2UgZmxhZ3MgaW4gL2V0Yy9wb3J0YWdlL3BhY2thZ2UudXNlOiI7CiAg
ICBlZXJyb3IgIiAgICA9JHtDQVRFR09SWX0vJHtQTn0tJHtQVlJ9ICR7bXlfbWlzc2luZ30iOwog
ICAgZWVycm9yOwogICAgZWVycm9yICJZb3UgY291bGQgZGlzYWJsZSB0aGlzIGZsYWcgaW5zdGVh
ZCBpbiAvZXRjL3BvcnRhZ2UvcGFja2FnZS51c2U6IjsKICAgIGVlcnJvciAiICAgID0ke0NBVEVH
T1JZfS8ke1BOfS0ke1BWUn0gLSR7bXlfZmxhZ30iOwogICAgZWNobzsKICAgIGRpZSAiTmVlZCBt
aXNzaW5nIFVTRSBmbGFnKHMpIgp9CmNvbmZ1dGlsc191c2VfZGVwZW5kX2J1aWx0X3dpdGhfYWxs
ICgpIAp7IAogICAgdXNlICQxIHx8IHJldHVybjsKICAgIGxvY2FsIG15X2ZsYWc9IiQxIiAmJiBz
aGlmdDsKICAgIGxvY2FsIGZvcmVpZ249JDEgJiYgc2hpZnQ7CiAgICBsb2NhbCByZXF1aXJlZF9m
bGFncz0iJEAiOwogICAgYnVpbHRfd2l0aF91c2UgJHtmb3JlaWdufSAke3JlcXVpcmVkX2ZsYWdz
fSAmJiByZXR1cm47CiAgICBlY2hvOwogICAgZWVycm9yICJVU0UgZmxhZyAnJHtteV9mbGFnfScg
bmVlZHMgdGhlIGZvbGxvd2luZyBVU0UgZmxhZ3MgaW4gJHtmb3JlaWdufToiOwogICAgZWVycm9y
ICIgICR7cmVxdWlyZWRfZmxhZ3N9IjsKICAgIGVlcnJvcjsKICAgIGVlcnJvciAiWW91IGNhbiBk
byB0aGlzIGJ5IGVuYWJsaW5nIHRoZXNlIGZsYWdzIGluIC9ldGMvcG9ydGFnZS9wYWNrYWdlLnVz
ZToiOwogICAgZWVycm9yICIgICAgJHtmb3JlaWdufSAke3JlcXVpcmVkX2ZsYWdzfSI7CiAgICBl
ZXJyb3I7CiAgICBlZXJyb3IgIllvdSBjb3VsZCBkaXNhYmxlIHRoaXMgZmxhZyBpbnN0ZWFkIGlu
IC9ldGMvcG9ydGFnZS9wYWNrYWdlLnVzZToiOwogICAgZWVycm9yICIgICAgPSR7Q0FURUdPUll9
LyR7UE59LSR7UFZSfSAtJHtteV9mbGFnfSI7CiAgICBlY2hvOwogICAgZGllICJNaXNzaW5nIFVT
RSBmbGFncyBpbiAke2ZvcmVpZ259Igp9CmNvbmZ1dGlsc191c2VfZGVwZW5kX2J1aWx0X3dpdGhf
YW55ICgpIAp7IAogICAgdXNlICQxIHx8IHJldHVybjsKICAgIGxvY2FsIG15X2ZsYWc9IiQxIiAm
JiBzaGlmdDsKICAgIGxvY2FsIGZvcmVpZ249JDEgJiYgc2hpZnQ7CiAgICBsb2NhbCByZXF1aXJl
ZF9mbGFncz0iJEAiOwogICAgbG9jYWwgc3VjY2Vzcz0wOwogICAgZm9yIGZsYWcgaW4gJHtyZXF1
aXJlZF9mbGFnc307CiAgICBkbwogICAgICAgIGJ1aWx0X3dpdGhfdXNlICR7Zm9yZWlnbn0gJHtm
bGFnfSAmJiBzdWNjZXNzPTE7CiAgICBkb25lOwogICAgW1sgJHtzdWNjZXNzfSAtZXEgMSBdXSAm
JiByZXR1cm47CiAgICBlY2hvOwogICAgZWVycm9yICJVU0UgZmxhZyAnJHtteV9mbGFnfScgbmVl
ZHMgb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBVU0UgZmxhZ3MgaW4gJHtmb3JlaWdufToi
OwogICAgZWVycm9yICIgICR7cmVxdWlyZWRfZmxhZ3N9IjsKICAgIGVlcnJvcjsKICAgIGVlcnJv
ciAiWW91IGNhbiBkbyB0aGlzIGJ5IGVuYWJsaW5nIHRoZXNlIGZsYWdzIGluIC9ldGMvcG9ydGFn
ZS9wYWNrYWdlLnVzZToiOwogICAgZWVycm9yICIgICAgJHtmb3JlaWdufSAke3JlcXVpcmVkX2Zs
YWdzfSI7CiAgICBlZXJyb3I7CiAgICBlZXJyb3IgIllvdSBjb3VsZCBkaXNhYmxlIHRoaXMgZmxh
ZyBpbnN0ZWFkIGluIC9ldGMvcG9ydGFnZS9wYWNrYWdlLnVzZToiOwogICAgZWVycm9yICIgICAg
PSR7Q0FURUdPUll9LyR7UE59LSR7UFZSfSAtJHtteV9mbGFnfSI7CiAgICBlY2hvOwogICAgZGll
ICJNaXNzaW5nIFVTRSBmbGFncyBpbiAke2ZvcmVpZ259Igp9CmNyZWF0ZV9tbF9pbmNsdWRlcyAo
KSAKeyAKICAgIGxvY2FsIGRlc3Q9JDE7CiAgICBzaGlmdDsKICAgIGxvY2FsIGJhc2VkaXJzPSQo
Y3JlYXRlX21sX2luY2x1ZGVzLWxpc3RkaXJzICIkQCIpOwogICAgY3JlYXRlX21sX2luY2x1ZGVz
LW1ha2VkZXN0ZGlycyAke2Rlc3R9ICR7YmFzZWRpcnN9OwogICAgbG9jYWwgZmlsZTsKICAgIGZv
ciBmaWxlIGluICQoY3JlYXRlX21sX2luY2x1ZGVzLWFsbGZpbGVzICR7YmFzZWRpcnN9KTsKICAg
IGRvCiAgICAgICAgKCBlY2hvICIvKiBBdXRvZ2VuZXJhdGVkIGJ5IGNyZWF0ZV9tbF9pbmNsdWRl
cygpIGluIG11bHRpbGliLmVjbGFzcyAqLyI7CiAgICAgICAgbG9jYWwgZGlyOwogICAgICAgIGZv
ciBkaXIgaW4gJHtiYXNlZGlyc307CiAgICAgICAgZG8KICAgICAgICAgICAgaWYgW1sgLWYgJHtE
fS8ke2Rpcn0vJHtmaWxlfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgZWNobyAiIjsKICAgICAg
ICAgICAgICAgIGxvY2FsIHN5bT0kKGNyZWF0ZV9tbF9pbmNsdWRlcy1zeW1fZm9yX2RpciAke2Rp
cn0gIiRAIik7CiAgICAgICAgICAgICAgICBpZiBbWyAke3N5bS89fSAhPSAiJHtzeW19IiBdXTsg
dGhlbgogICAgICAgICAgICAgICAgICAgIGVjaG8gIiNpZiAke3N5bX0iOwogICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGlmIFtbICR7c3ltOjoxfSA9PSAiISIgXV07IHRo
ZW4KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiI2lmbmRlZiAke3N5bToxfSI7CiAgICAg
ICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIjaWZkZWYg
JHtzeW19IjsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGZpOwogICAg
ICAgICAgICAgICAgZWNobyAiIyBpbmNsdWRlIDwkKGNyZWF0ZV9tbF9pbmNsdWRlcy1hYnNvbHV0
ZSAke2Rpcn0vJHtmaWxlfSk+IjsKICAgICAgICAgICAgICAgIGVjaG8gIiNlbmRpZiAvKiAke3N5
bX0gKi8iOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lICkgPiAiJHtEfS8ke2Rlc3R9LyR7
ZmlsZX0iOwogICAgZG9uZQp9CmNyZWF0ZV9tbF9pbmNsdWRlcy1hYnNvbHV0ZSAoKSAKeyAKICAg
IGxvY2FsIGRzdD0iJChjcmVhdGVfbWxfaW5jbHVkZXMtdGlkeV9wYXRoICQxKSI7CiAgICBkc3Q9
KCR7ZHN0Ly9cLy8gfSk7CiAgICBsb2NhbCBpOwogICAgZm9yICgoaT0wOyBpPCR7I2RzdFsqXX07
IGkrKykpCiAgICBkbwogICAgICAgIFsgIiR7ZHN0W2ldfSIgPT0gImluY2x1ZGUiIF0gJiYgYnJl
YWs7CiAgICBkb25lOwogICAgbG9jYWwgc3RyaXBfdXB0bz0kaTsKICAgIGZvciAoKGk9c3RyaXBf
dXB0bysxOyBpPCR7I2RzdFsqXX0tMTsgaSsrKSkKICAgIGRvCiAgICAgICAgZWNobyAtbiAke2Rz
dFtpXX0vOwogICAgZG9uZTsKICAgIGVjaG8gLW4gJHtkc3RbaV19Cn0KY3JlYXRlX21sX2luY2x1
ZGVzLWFsbGZpbGVzICgpIAp7IAogICAgbG9jYWwgYmFzZWRpciBmaWxlOwogICAgZm9yIGJhc2Vk
aXIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgZm9yIGZpbGUgaW4gJChmaW5kICIke0R9Ii8ke2Jh
c2VkaXJ9IC10eXBlIGYpOwogICAgICAgIGRvCiAgICAgICAgICAgIGVjaG8gJHtmaWxlLyR7RH1c
LyR7YmFzZWRpcn1cLy99OwogICAgICAgIGRvbmU7CiAgICBkb25lIHwgc29ydCB8IHVuaXEKfQpj
cmVhdGVfbWxfaW5jbHVkZXMtbGlzdGRpcnMgKCkgCnsgCiAgICBsb2NhbCBkaXJzOwogICAgbG9j
YWwgZGF0YTsKICAgIGZvciBkYXRhIGluICIkQCI7CiAgICBkbwogICAgICAgIGRpcnM9IiR7ZGly
c30gJHtkYXRhLyo6L30iOwogICAgZG9uZTsKICAgIGVjaG8gJHtkaXJzOjF9Cn0KY3JlYXRlX21s
X2luY2x1ZGVzLW1ha2VkZXN0ZGlycyAoKSAKeyAKICAgIGxvY2FsIGRlc3Q9JDE7CiAgICBzaGlm
dDsKICAgIGxvY2FsIGJhc2VkaXJzPSRAOwogICAgZG9kaXIgJHtkZXN0fTsKICAgIGxvY2FsIGJh
c2VkaXI7CiAgICBmb3IgYmFzZWRpciBpbiAke2Jhc2VkaXJzfTsKICAgIGRvCiAgICAgICAgbG9j
YWwgZGlyOwogICAgICAgIGZvciBkaXIgaW4gJChmaW5kICR7RH0vJHtiYXNlZGlyfSAtdHlwZSBk
KTsKICAgICAgICBkbwogICAgICAgICAgICBkb2RpciAke2Rlc3R9LyR7ZGlyLyR7RH1cLyR7YmFz
ZWRpcn0vfTsKICAgICAgICBkb25lOwogICAgZG9uZQp9CmNyZWF0ZV9tbF9pbmNsdWRlcy1zeW1f
Zm9yX2RpciAoKSAKeyAKICAgIGxvY2FsIGRpcj0kMTsKICAgIHNoaWZ0OwogICAgbG9jYWwgZGF0
YTsKICAgIGZvciBkYXRhIGluICIkQCI7CiAgICBkbwogICAgICAgIGlmIFtbICR7ZGF0YX0gPT0g
Kjoke2Rpcn0gXV07IHRoZW4KICAgICAgICAgICAgZWNobyAke2RhdGEvOiovfTsKICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgZWNobyAiU2hvdWxkbid0IGJl
IGhlcmUgLS0gY3JlYXRlX21sX2luY2x1ZGVzLXN5bV9mb3JfZGlyICQxICRAIjsKICAgIGV4aXQg
MQp9CmNyZWF0ZV9tbF9pbmNsdWRlcy10aWR5X3BhdGggKCkgCnsgCiAgICBsb2NhbCByZW1vdmVk
PSQxOwogICAgaWYgWyAtbiAiJHtyZW1vdmVkfSIgXTsgdGhlbgogICAgICAgIHdoaWxlIFsgIiR7
cmVtb3ZlZH0iICE9ICIke3JlbW92ZWQvXC9cLy9cL30iIF07IGRvCiAgICAgICAgICAgIHJlbW92
ZWQ9JHtyZW1vdmVkL1wvXC8vXC99OwogICAgICAgIGRvbmU7CiAgICAgICAgd2hpbGUgWyAiJHty
ZW1vdmVkfSIgIT0gIiR7cmVtb3ZlZC8vXC8uXC8vXC99IiBdOyBkbwogICAgICAgICAgICByZW1v
dmVkPSR7cmVtb3ZlZC8vXC8uXC8vXC99OwogICAgICAgIGRvbmU7CiAgICAgICAgWyAiJHtyZW1v
dmVkIyMqL30iID0gIi4iIF0gJiYgcmVtb3ZlZD0ke3JlbW92ZWQlLyp9OwogICAgICAgIHdoaWxl
IFsgIiR7cmVtb3ZlZH0iICE9ICIke3JlbW92ZWQvL1wvLi5cL30iIF07IGRvCiAgICAgICAgICAg
IGxvY2FsIHAxPSIke3JlbW92ZWQlJVwvLi5cLyp9IjsKICAgICAgICAgICAgbG9jYWwgcDI9IiR7
cmVtb3ZlZCMqXC8uLlwvfSI7CiAgICAgICAgICAgIHJlbW92ZWQ9IiR7cDElXC8qfS8ke3AyfSI7
CiAgICAgICAgZG9uZTsKICAgICAgICBbICIke3JlbW92ZWQjIyovfSIgPSAiLi4iIF0gJiYgcmVt
b3ZlZD0ke3JlbW92ZWQlLyovKn07CiAgICAgICAgWyAiJHtyZW1vdmVkIyMqL30iID0gIiIgXSAm
JiByZW1vdmVkPSR7cmVtb3ZlZCUvKn07CiAgICAgICAgZWNobyAke3JlbW92ZWR9OwogICAgZmkK
fQpkZWxldGVfYWxsX3ZlcnNpb25fc2VwYXJhdG9ycyAoKSAKeyAKICAgIF9fdmVyc2lvbmF0b3Jf
c2hvcHRfdG9nZ2xlIG9uOwogICAgcmVwbGFjZV9hbGxfdmVyc2lvbl9zZXBhcmF0b3JzICIiICIk
ezF9IjsKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9CmRlbGV0ZV92ZXJzaW9u
X3NlcGFyYXRvciAoKSAKeyAKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9uOwogICAg
cmVwbGFjZV92ZXJzaW9uX3NlcGFyYXRvciAiJHsxfSIgIiIgIiR7Mn0iOwogICAgX192ZXJzaW9u
YXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KZGxvcGVuX2xpYiAoKSAKeyAKICAgIGlmIFtbICR7RUxJ
QkN9ICE9ICpCU0QgXV07IHRoZW4KICAgICAgICBlY2hvICItbGRsIjsKICAgIGZpCn0KZG9pY29u
ICgpIAp7IAogICAgKCBsb2NhbCBpIGogcmV0OwogICAgaW5zaW50byAvdXNyL3NoYXJlL3BpeG1h
cHM7CiAgICBmb3IgaSBpbiAiJEAiOwogICAgZG8KICAgICAgICBpZiBbWyAtZiAke2l9IF1dOyB0
aGVuCiAgICAgICAgICAgIGRvaW5zICIke2l9IjsKICAgICAgICAgICAgKChyZXQrPSQ/KSk7CiAg
ICAgICAgZWxzZQogICAgICAgICAgICBpZiBbWyAtZCAke2l9IF1dOyB0aGVuCiAgICAgICAgICAg
ICAgICBmb3IgaiBpbiAiJHtpfSIvKi5wbmc7CiAgICAgICAgICAgICAgICBkbwogICAgICAgICAg
ICAgICAgICAgIGRvaW5zICIke2p9IjsKICAgICAgICAgICAgICAgICAgICAoKHJldCs9JD8pKTsK
ICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICgo
KytyZXQpKTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgZXhpdCAk
e3JldH0gKQp9CmRvbWVudSAoKSAKeyAKICAgICggbG9jYWwgaSBqIHJldD0wOwogICAgaW5zaW50
byAvdXNyL3NoYXJlL2FwcGxpY2F0aW9uczsKICAgIGZvciBpIGluICIkQCI7CiAgICBkbwogICAg
ICAgIGlmIFtbIC1mICR7aX0gXV07IHRoZW4KICAgICAgICAgICAgZG9pbnMgIiR7aX0iOwogICAg
ICAgICAgICAoKHJldCs9JD8pKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtbIC1kICR7
aX0gXV07IHRoZW4KICAgICAgICAgICAgICAgIGZvciBqIGluICIke2l9Ii8qLmRlc2t0b3A7CiAg
ICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIGRvaW5zICIke2p9IjsKICAgICAg
ICAgICAgICAgICAgICAoKHJldCs9JD8pKTsKICAgICAgICAgICAgICAgIGRvbmU7CiAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICgoKytyZXQpKTsKICAgICAgICAgICAgZmk7CiAgICAg
ICAgZmk7CiAgICBkb25lOwogICAgZXhpdCAke3JldH0gKQp9CmViZWVwICgpIAp7IAogICAgbG9j
YWwgbjsKICAgIGlmIFtbIC16ICR7RUJFRVBfSUdOT1JFfSBdXTsgdGhlbgogICAgICAgIGZvciAo
KG49MSA7IG4gPD0gJHsxOi01fSA7IG4rKykpCiAgICAgICAgZG8KICAgICAgICAgICAgZWNobyAt
bmUgIlxhIjsKICAgICAgICAgICAgc2xlZXAgMC4xID4mL2Rldi9udWxsOwogICAgICAgICAgICBz
bGVlcCAwLDEgPiYvZGV2L251bGw7CiAgICAgICAgICAgIGVjaG8gLW5lICJcYSI7CiAgICAgICAg
ICAgIHNsZWVwIDE7CiAgICAgICAgZG9uZTsKICAgIGZpCn0KZWN2c19jbGVhbiAoKSAKeyAKICAg
IFtbIC16ICQqIF1dICYmIHNldCAtLSAuOwogICAgZmluZCAiJEAiIC10eXBlIGQgLW5hbWUgJ0NW
UycgLXBydW5lIC1wcmludDAgfCB4YXJncyAtMCBybSAtcmY7CiAgICBmaW5kICIkQCIgLXR5cGUg
ZiAtbmFtZSAnLmN2cyonIC1wcmludDAgfCB4YXJncyAtMCBybSAtcmYKfQplZG9zMnVuaXggKCkg
CnsgCiAgICBlY2hvICIkQCIgfCB4YXJncyBzZWQgLWkgJ3MvXHIkLy8nCn0KZWdldGVudCAoKSAK
eyAKICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBj
YXNlICIkMiIgaW4gCiAgICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAg
ICBuaWR1bXAgJDEgLiB8IGF3ayAtRiI6IiAieyBpZiAoXCQxIH4gL14kMiQvKSB7cHJpbnQgXCQw
O2V4aXQ7fSB9IgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAg
ICAgICAgICAgICAgbmlkdW1wICQxIC4gfCBhd2sgLUYiOiIgInsgaWYgKFwkMyA9PSAkMikge3By
aW50IFwkMDtleGl0O30gfSIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGVzYWMKICAg
ICAgICA7OwogICAgICAgICotZnJlZWJzZCogfCAqLWRyYWdvbmZseSopCiAgICAgICAgICAgIGxv
Y2FsIG9wdHMgYWN0aW9uPSJ1c2VyIjsKICAgICAgICAgICAgW1sgJDEgPT0gInBhc3N3ZCIgXV0g
fHwgYWN0aW9uPSJncm91cCI7CiAgICAgICAgICAgIGlmIFtbICQyID09IFtbOmRpZ2l0Ol1dKiBd
XTsgdGhlbgogICAgICAgICAgICAgICAgW1sgJHthY3Rpb259ID09ICJ1c2VyIiBdXSAmJiBvcHRz
PSItdSIgfHwgb3B0cz0iLWciOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgcHcgc2hvdyAk
e2FjdGlvbn0gJHtvcHRzfSAiJDIiIC1xCiAgICAgICAgOzsKICAgICAgICAqLW5ldGJzZCogfCAq
LW9wZW5ic2QqKQogICAgICAgICAgICBncmVwICIkMjpcKjoiIC9ldGMvJDEKICAgICAgICA7Owog
ICAgICAgICopCiAgICAgICAgICAgIHR5cGUgLXAgbnNjZCA+Ji9kZXYvbnVsbCAmJiBuc2NkIC1p
ICIkMSI7CiAgICAgICAgICAgIGdldGVudCAiJDEiICIkMiIKICAgICAgICA7OwogICAgZXNhYwp9
CmVnZXRob21lICgpIAp7IAogICAgZW50PSQoZWdldGVudCBwYXNzd2QgJDEpOwogICAgY2FzZSAk
e0NIT1NUfSBpbiAKICAgICAgICAqLWRhcndpbiogfCAqLWZyZWVic2QqIHwgKi1kcmFnb25mbHkq
KQogICAgICAgICAgICBlY2hvICR7ZW50fSB8IGN1dCAtZDogLWY5CiAgICAgICAgOzsKICAgICAg
ICAqKQogICAgICAgICAgICBlY2hvICR7ZW50fSB8IGN1dCAtZDogLWY2CiAgICAgICAgOzsKICAg
IGVzYWMKfQplZ2V0c2hlbGwgKCkgCnsgCiAgICBlbnQ9JChlZ2V0ZW50IHBhc3N3ZCAiJDEiKTsK
ICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgKi1kYXJ3aW4qIHwgKi1mcmVlYnNkKiB8ICot
ZHJhZ29uZmx5KikKICAgICAgICAgICAgZWNobyAke2VudH0gfCBjdXQgLWQ6IC1mMTAKICAgICAg
ICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG8gJHtlbnR9IGN1dCAtZDogLWY3CiAgICAg
ICAgOzsKICAgIGVzYWMKfQplbWt0ZW1wICgpIAp7IAogICAgbG9jYWwgZXhlPSJ0b3VjaCI7CiAg
ICBbWyAkMSA9PSAtZCBdXSAmJiBleGU9Im1rZGlyIiAmJiBzaGlmdDsKICAgIGxvY2FsIHRvcGRp
cj0kMTsKICAgIGlmIFtbIC16ICR7dG9wZGlyfSBdXTsgdGhlbgogICAgICAgIFtbIC16ICR7VH0g
XV0gJiYgdG9wZGlyPSIvdG1wIiB8fCB0b3BkaXI9JHtUfTsKICAgIGZpOwogICAgaWYgISB0eXBl
IC1QIG1rdGVtcCA+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgIGxvY2FsIHRtcD0vOwogICAgICAg
IHdoaWxlIFtbIC1lICR7dG1wfSBdXTsgZG8KICAgICAgICAgICAgdG1wPSR7dG9wZGlyfS90bXAu
JHtSQU5ET019LiR7UkFORE9NfS4ke1JBTkRPTX07CiAgICAgICAgZG9uZTsKICAgICAgICAke2V4
ZX0gIiR7dG1wfSIgfHwgJHtleGV9IC1wICIke3RtcH0iOwogICAgICAgIGVjaG8gIiR7dG1wfSI7
CiAgICBlbHNlCiAgICAgICAgaWYgW1sgJHtleGV9ID09ICJ0b3VjaCIgXV07IHRoZW4KICAgICAg
ICAgICAgVE1QRElSPSIke3RvcGRpcn0iIG1rdGVtcCAtdCB0bXAuWFhYWFhYWFhYWDsKICAgICAg
ICBlbHNlCiAgICAgICAgICAgIFRNUERJUj0iJHt0b3BkaXJ9IiBta3RlbXAgLWR0IHRtcC5YWFhY
WFhYWFhYOwogICAgICAgIGZpOwogICAgZmkKfQplbmFibGVfZXh0ZW5zaW9uX2Rpc2FibGUgKCkg
CnsgCiAgICBsb2NhbCBteV9tc2c9JHszOi0kMX07CiAgICBpZiB1c2UgIiQyIjsgdGhlbgogICAg
ICAgIGVpbmZvICIgIEVuYWJsaW5nICR7bXlfbXNnfSI7CiAgICBlbHNlCiAgICAgICAgbXlfY29u
Zj0iJHtteV9jb25mfSAtLWRpc2FibGUtJDEiOwogICAgICAgIGVpbmZvICIgIERpc2FibGluZyAk
e215X21zZ30iOwogICAgZmkKfQplbmFibGVfZXh0ZW5zaW9uX2VuYWJsZSAoKSAKeyAKICAgIGxv
Y2FsIG15X3NoYXJlZD0kKF9jb25mdXRpbHNfc2hhcmVkX3N1ZmZpeCAkMyAkNCk7CiAgICBsb2Nh
bCBteV9tc2c9JHs1Oi0kMX07CiAgICBpZiB1c2UgJDI7IHRoZW4KICAgICAgICBteV9jb25mPSIk
e215X2NvbmZ9IC0tZW5hYmxlLSR7MX0ke215X3NoYXJlZH0iOwogICAgICAgIGVpbmZvICIgIEVu
YWJsaW5nICR7bXlfbXNnfSI7CiAgICBlbHNlCiAgICAgICAgbXlfY29uZj0iJHtteV9jb25mfSAt
LWRpc2FibGUtJDEiOwogICAgICAgIGVpbmZvICIgIERpc2FibGluZyAke215X21zZ30iOwogICAg
ZmkKfQplbmFibGVfZXh0ZW5zaW9uX2VuYWJsZV9idWlsdF93aXRoICgpIAp7IAogICAgbG9jYWwg
bXlfc2hhcmVkPSQoX2NvbmZ1dGlsc19zaGFyZWRfc3VmZml4ICQ0ICQ1KTsKICAgIGxvY2FsIG15
X21zZz0kezY6LSQzfTsKICAgIGlmIGJ1aWx0X3dpdGhfdXNlICQxICQyOyB0aGVuCiAgICAgICAg
bXlfY29uZj0iJHtteV9jb25mfSAtLWVuYWJsZS0kezN9JHtteV9zaGFyZWR9IjsKICAgICAgICBl
aW5mbyAiICBFbmFibGluZyAke215X21zZ30iOwogICAgZWxzZQogICAgICAgIG15X2NvbmY9IiR7
bXlfY29uZn0gLS1kaXNhYmxlLSQzIjsKICAgICAgICBlaW5mbyAiICBEaXNhYmxpbmcgJHtteV9t
c2d9IjsKICAgIGZpCn0KZW5hYmxlX2V4dGVuc2lvbl9lbmFibGVvbmx5ICgpIAp7IAogICAgbG9j
YWwgbXlfc2hhcmVkPSQoX2NvbmZ1dGlsc19zaGFyZWRfc3VmZml4ICQzICQ0KTsKICAgIGxvY2Fs
IG15X21zZz0kezU6LSQxfTsKICAgIGlmIHVzZSAkMjsgdGhlbgogICAgICAgIG15X2NvbmY9IiR7
bXlfY29uZn0gLS1lbmFibGUtJHsxfSR7bXlfc2hhcmVkfSI7CiAgICAgICAgZWluZm8gIiAgRW5h
YmxpbmcgJHtteV9tc2d9IjsKICAgIGVsc2UKICAgICAgICBlaW5mbyAiICBEaXNhYmxpbmcgJHtt
eV9tc2d9IjsKICAgIGZpCn0KZW5hYmxlX2V4dGVuc2lvbl93aXRoICgpIAp7IAogICAgbG9jYWwg
bXlfc2hhcmVkPSQoX2NvbmZ1dGlsc19zaGFyZWRfc3VmZml4ICQzICQ0KTsKICAgIGxvY2FsIG15
X21zZz0kezU6LSQxfTsKICAgIGlmIHVzZSAkMjsgdGhlbgogICAgICAgIG15X2NvbmY9IiR7bXlf
Y29uZn0gLS13aXRoLSR7MX0ke215X3NoYXJlZH0iOwogICAgICAgIGVpbmZvICIgIEVuYWJsaW5n
ICR7bXlfbXNnfSI7CiAgICBlbHNlCiAgICAgICAgbXlfY29uZj0iJHtteV9jb25mfSAtLXdpdGhv
dXQtJDEiOwogICAgICAgIGVpbmZvICIgIERpc2FibGluZyAke215X21zZ30iOwogICAgZmkKfQpl
bmFibGVfZXh0ZW5zaW9uX3dpdGhfYnVpbHRfd2l0aCAoKSAKeyAKICAgIGlmIFtbICIkNCIgIT0g
IjAiICYmICIkNCIgIT0gIjEiIF1dOyB0aGVuCiAgICAgICAgZW5hYmxlX2V4dGVuc2lvbl93aXRo
X2J1aWx0X3dpdGggIiQxIiAiJDIiICIkMyIgMCAiJDQiICIkNSI7CiAgICAgICAgcmV0dXJuOwog
ICAgZmk7CiAgICBsb2NhbCBteV9zaGFyZWQ9JChfY29uZnV0aWxzX3NoYXJlZF9zdWZmaXggJDQg
JDUpOwogICAgbG9jYWwgbXlfbXNnPSR7NjotJDN9OwogICAgaWYgYnVpbHRfd2l0aF91c2UgJDEg
JDI7IHRoZW4KICAgICAgICBteV9jb25mPSIke215X2NvbmZ9IC0td2l0aC0kezN9JHtteV9zaGFy
ZWR9IjsKICAgICAgICBlaW5mbyAiICBFbmFibGluZyAke215X21zZ30iOwogICAgZWxzZQogICAg
ICAgIG15X2NvbmY9IiR7bXlfY29uZn0gLS1kaXNhYmxlLSQzIjsKICAgICAgICBlaW5mbyAiICBE
aXNhYmxpbmcgJHtteV9tc2d9IjsKICAgIGZpCn0KZW5hYmxlX2V4dGVuc2lvbl93aXRob25seSAo
KSAKeyAKICAgIGxvY2FsIG15X3NoYXJlZD0kKF9jb25mdXRpbHNfc2hhcmVkX3N1ZmZpeCAkMyAk
NCk7CiAgICBsb2NhbCBteV9tc2c9JHs1Oi0kMX07CiAgICBpZiB1c2UgJDI7IHRoZW4KICAgICAg
ICBteV9jb25mPSIke215X2NvbmZ9IC0td2l0aC0kezF9JHtteV9zaGFyZWR9IjsKICAgICAgICBl
aW5mbyAiICBFbmFibGluZyAke215X21zZ30iOwogICAgZWxzZQogICAgICAgIGVpbmZvICIgIERp
c2FibGluZyAke215X21zZ30iOwogICAgZmkKfQplbmFibGVfZXh0ZW5zaW9uX3dpdGhvdXQgKCkg
CnsgCiAgICBsb2NhbCBteV9tc2c9JHszOi0kMX07CiAgICBpZiB1c2UgIiQyIjsgdGhlbgogICAg
ICAgIGVpbmZvICIgIEVuYWJsaW5nICR7bXlfbXNnfSI7CiAgICBlbHNlCiAgICAgICAgbXlfY29u
Zj0iJHtteV9jb25mfSAtLXdpdGhvdXQtJDEiOwogICAgICAgIGVpbmZvICIgIERpc2FibGluZyAk
e215X21zZ30iOwogICAgZmkKfQplbmV3Z3JvdXAgKCkgCnsgCiAgICBjYXNlICR7RUJVSUxEX1BI
QVNFfSBpbiAKICAgICAgICB1bnBhY2sgfCBjb21waWxlIHwgdGVzdCB8IGluc3RhbGwpCiAgICAg
ICAgICAgIGVlcnJvciAiJ2VuZXdncm91cCgpJyBjYWxsZWQgZnJvbSAnJHtFQlVJTERfUEhBU0V9
KCknIHdoaWNoIGlzIG5vdCBhIHBrZ18qIGZ1bmN0aW9uLiI7CiAgICAgICAgICAgIGVlcnJvciAi
UGFja2FnZSBmYWlscyBhdCBRQSBhbmQgYXQgbGlmZS4gIFBsZWFzZSBmaWxlIGEgYnVnLiI7CiAg
ICAgICAgICAgIGRpZSAiQmFkIHBhY2thZ2UhICBlbmV3Z3JvdXAgaXMgb25seSBmb3IgdXNlIGlu
IHBrZ18qIGZ1bmN0aW9ucyEiCiAgICAgICAgOzsKICAgIGVzYWM7CiAgICBsb2NhbCBlZ3JvdXA9
IiQxIjsKICAgIHNoaWZ0OwogICAgaWYgWyAteiAiJHtlZ3JvdXB9IiBdOyB0aGVuCiAgICAgICAg
ZWVycm9yICJObyBncm91cCBzcGVjaWZpZWQgISI7CiAgICAgICAgZGllICJDYW5ub3QgY2FsbCBl
bmV3Z3JvdXAgd2l0aG91dCBhIGdyb3VwIjsKICAgIGZpOwogICAgaWYgW1sgLW4gJChlZ2V0ZW50
IGdyb3VwICIke2Vncm91cH0iKSBdXTsgdGhlbgogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAg
ICBlaW5mbyAiQWRkaW5nIGdyb3VwICcke2Vncm91cH0nIHRvIHlvdXIgc3lzdGVtIC4uLiI7CiAg
ICBsb2NhbCBvcHRzPTsKICAgIGxvY2FsIGVnaWQ9IiQxIjsKICAgIHNoaWZ0OwogICAgaWYgWyAh
IC16ICIke2VnaWR9IiBdOyB0aGVuCiAgICAgICAgaWYgWyAiJHtlZ2lkfSIgLWd0IDAgXTsgdGhl
bgogICAgICAgICAgICBpZiBbIC16ICJgZWdldGVudCBncm91cCAke2VnaWR9YCIgXTsgdGhlbgog
ICAgICAgICAgICAgICAgaWYgW1sgIiR7Q0hPU1R9IiA9PSAqLWRhcndpbiogXV07IHRoZW4KICAg
ICAgICAgICAgICAgICAgICBvcHRzPSIke29wdHN9ICR7ZWdpZH0iOwogICAgICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgICAgIG9wdHM9IiR7b3B0c30gLWcgJHtlZ2lkfSI7CiAgICAg
ICAgICAgICAgICBmaTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWdpZD0ibmV4
dCBhdmFpbGFibGU7IHJlcXVlc3RlZCBnaWQgdGFrZW4iOwogICAgICAgICAgICBmaTsKICAgICAg
ICBlbHNlCiAgICAgICAgICAgIGVlcnJvciAiR3JvdXBpZCBnaXZlbiBidXQgaXMgbm90IGdyZWF0
ZXIgdGhhbiAwICEiOwogICAgICAgICAgICBkaWUgIiR7ZWdpZH0gaXMgbm90IGEgdmFsaWQgR0lE
IjsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBlZ2lkPSJuZXh0IGF2YWlsYWJsZSI7CiAg
ICBmaTsKICAgIGVpbmZvICIgLSBHcm91cGlkOiAke2VnaWR9IjsKICAgIGxvY2FsIGVleHRyYT0i
JEAiOwogICAgb3B0cz0iJHtvcHRzfSAke2VleHRyYX0iOwogICAgbG9jYWwgb2xkc2FuZGJveD0i
JHtTQU5EQk9YX09OfSI7CiAgICBleHBvcnQgU0FOREJPWF9PTj0iMCI7CiAgICBjYXNlICR7Q0hP
U1R9IGluIAogICAgICAgICotZGFyd2luKikKICAgICAgICAgICAgaWYgWyAhIC16ICIke2VleHRy
YX0iIF07IHRoZW4KICAgICAgICAgICAgICAgIGVpbmZvICJFeHRyYSBvcHRpb25zIGFyZSBub3Qg
c3VwcG9ydGVkIG9uIERhcndpbi9PUyBYIHlldCI7CiAgICAgICAgICAgICAgICBlaW5mbyAiUGxl
YXNlIHJlcG9ydCB0aGUgZWJ1aWxkIGFsb25nIHdpdGggdGhlIGluZm8gYmVsb3ciOwogICAgICAg
ICAgICAgICAgZWluZm8gImVleHRyYTogJHtlZXh0cmF9IjsKICAgICAgICAgICAgICAgIGRpZSAi
UmVxdWlyZWQgZnVuY3Rpb24gbWlzc2luZyI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBj
YXNlICR7ZWdpZH0gaW4gCiAgICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAg
ICAgICBmb3IgKChlZ2lkID0gMTAxOyBlZ2lkIDw9IDk5OTsgZWdpZCsrKSkKICAgICAgICAgICAg
ICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgICAgICBbWyAteiAkKGVnZXRlbnQgZ3JvdXAg
JHtlZ2lkfSkgXV0gJiYgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZG9uZQogICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvZ3Jv
dXBzLyR7ZWdyb3VwfSBnaWQgJHtlZ2lkfTsKICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvZ3Jv
dXBzLyR7ZWdyb3VwfSBwYXNzd2QgJyonCiAgICAgICAgOzsKICAgICAgICAqLWZyZWVic2QqIHwg
Ki1kcmFnb25mbHkqKQogICAgICAgICAgICBjYXNlICR7ZWdpZH0gaW4gCiAgICAgICAgICAgICAg
ICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAgICBmb3IgKChlZ2lkID0gMTAxOyBlZ2lkIDw9
IDk5OTsgZWdpZCsrKSkKICAgICAgICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAg
ICAgICBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgJHtlZ2lkfSkgXV0gJiYgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgZXNhYzsKICAg
ICAgICAgICAgcHcgZ3JvdXBhZGQgJHtlZ3JvdXB9IC1nICR7ZWdpZH0gfHwgZGllICJlbmV3Z3Jv
dXAgZmFpbGVkIgogICAgICAgIDs7CiAgICAgICAgKi1uZXRic2QqKQogICAgICAgICAgICBjYXNl
ICR7ZWdpZH0gaW4gCiAgICAgICAgICAgICAgICAqWyEwLTldKikKICAgICAgICAgICAgICAgICAg
ICBmb3IgKChlZ2lkID0gMTAxOyBlZ2lkIDw9IDk5OTsgZWdpZCsrKSkKICAgICAgICAgICAgICAg
ICAgICBkbwogICAgICAgICAgICAgICAgICAgICAgICBbWyAteiAkKGVnZXRlbnQgZ3JvdXAgJHtl
Z2lkfSkgXV0gJiYgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAg
ICAgOzsKICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgZ3JvdXBhZGQgLWcgJHtlZ2lkfSAk
e2Vncm91cH0gfHwgZGllICJlbmV3Z3JvdXAgZmFpbGVkIgogICAgICAgIDs7CiAgICAgICAgKikK
ICAgICAgICAgICAgZ3JvdXBhZGQgJHtvcHRzfSAke2Vncm91cH0gfHwgZGllICJlbmV3Z3JvdXAg
ZmFpbGVkIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgZXhwb3J0IFNBTkRCT1hfT049IiR7b2xk
c2FuZGJveH0iCn0KZW5ld3VzZXIgKCkgCnsgCiAgICBjYXNlICR7RUJVSUxEX1BIQVNFfSBpbiAK
ICAgICAgICB1bnBhY2sgfCBjb21waWxlIHwgdGVzdCB8IGluc3RhbGwpCiAgICAgICAgICAgIGVl
cnJvciAiJ2VuZXd1c2VyKCknIGNhbGxlZCBmcm9tICcke0VCVUlMRF9QSEFTRX0oKScgd2hpY2gg
aXMgbm90IGEgcGtnXyogZnVuY3Rpb24uIjsKICAgICAgICAgICAgZWVycm9yICJQYWNrYWdlIGZh
aWxzIGF0IFFBIGFuZCBhdCBsaWZlLiAgUGxlYXNlIGZpbGUgYSBidWcuIjsKICAgICAgICAgICAg
ZGllICJCYWQgcGFja2FnZSEgIGVuZXd1c2VyIGlzIG9ubHkgZm9yIHVzZSBpbiBwa2dfKiBmdW5j
dGlvbnMhIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgbG9jYWwgZXVzZXI9JDE7CiAgICBzaGlm
dDsKICAgIGlmIFtbIC16ICR7ZXVzZXJ9IF1dOyB0aGVuCiAgICAgICAgZWVycm9yICJObyB1c2Vy
bmFtZSBzcGVjaWZpZWQgISI7CiAgICAgICAgZGllICJDYW5ub3QgY2FsbCBlbmV3dXNlciB3aXRo
b3V0IGEgdXNlcm5hbWUiOwogICAgZmk7CiAgICBpZiBbWyAtbiAkKGVnZXRlbnQgcGFzc3dkICIk
e2V1c2VyfSIpIF1dOyB0aGVuCiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsKICAgIGVpbmZvICJB
ZGRpbmcgdXNlciAnJHtldXNlcn0nIHRvIHlvdXIgc3lzdGVtIC4uLiI7CiAgICBsb2NhbCBvcHRz
PTsKICAgIGxvY2FsIGV1aWQ9JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbIC1uICR7ZXVpZH0gJiYg
JHtldWlkfSAhPSAtMSBdXTsgdGhlbgogICAgICAgIGlmIFtbICR7ZXVpZH0gLWd0IDAgXV07IHRo
ZW4KICAgICAgICAgICAgaWYgW1sgLW4gJChlZ2V0ZW50IHBhc3N3ZCAke2V1aWR9KSBdXTsgdGhl
bgogICAgICAgICAgICAgICAgZXVpZD0ibmV4dCI7CiAgICAgICAgICAgIGZpOwogICAgICAgIGVs
c2UKICAgICAgICAgICAgZWVycm9yICJVc2VyaWQgZ2l2ZW4gYnV0IGlzIG5vdCBncmVhdGVyIHRo
YW4gMCAhIjsKICAgICAgICAgICAgZGllICIke2V1aWR9IGlzIG5vdCBhIHZhbGlkIFVJRCI7CiAg
ICAgICAgZmk7CiAgICBlbHNlCiAgICAgICAgZXVpZD0ibmV4dCI7CiAgICBmaTsKICAgIGlmIFtb
ICR7ZXVpZH0gPT0gIm5leHQiIF1dOyB0aGVuCiAgICAgICAgZm9yICgoZXVpZCA9IDEwMTsgZXVp
ZCA8PSA5OTk7IGV1aWQrKykpCiAgICAgICAgZG8KICAgICAgICAgICAgW1sgLXogJChlZ2V0ZW50
IHBhc3N3ZCAke2V1aWR9KSBdXSAmJiBicmVhazsKICAgICAgICBkb25lOwogICAgZmk7CiAgICBv
cHRzPSIke29wdHN9IC11ICR7ZXVpZH0iOwogICAgZWluZm8gIiAtIFVzZXJpZDogJHtldWlkfSI7
CiAgICBsb2NhbCBlc2hlbGw9JDE7CiAgICBzaGlmdDsKICAgIGlmIFtbICEgLXogJHtlc2hlbGx9
IF1dICYmIFtbICR7ZXNoZWxsfSAhPSAiLTEiIF1dOyB0aGVuCiAgICAgICAgaWYgW1sgISAtZSAk
e1JPT1R9JHtlc2hlbGx9IF1dOyB0aGVuCiAgICAgICAgICAgIGVlcnJvciAiQSBzaGVsbCB3YXMg
c3BlY2lmaWVkIGJ1dCBpdCBkb2VzIG5vdCBleGlzdCAhIjsKICAgICAgICAgICAgZGllICIke2Vz
aGVsbH0gZG9lcyBub3QgZXhpc3QgaW4gJHtST09UfSI7CiAgICAgICAgZmk7CiAgICAgICAgaWYg
W1sgJHtlc2hlbGx9ID09ICovZmFsc2UgfHwgJHtlc2hlbGx9ID09ICovbm9sb2dpbiBdXTsgdGhl
bgogICAgICAgICAgICBlZXJyb3IgIkRvIG5vdCBzcGVjaWZ5ICR7ZXNoZWxsfSB5b3Vyc2VsZiwg
dXNlIC0xIjsKICAgICAgICAgICAgZGllICJQYXNzICctMScgYXMgdGhlIHNoZWxsIHBhcmFtZXRl
ciI7CiAgICAgICAgZmk7CiAgICBlbHNlCiAgICAgICAgZm9yIHNoZWxsIGluIC9zYmluL25vbG9n
aW4gL3Vzci9zYmluL25vbG9naW4gL2Jpbi9mYWxzZSAvdXNyL2Jpbi9mYWxzZSAvZGV2L251bGw7
CiAgICAgICAgZG8KICAgICAgICAgICAgW1sgLXggJHtST09UfSR7c2hlbGx9IF1dICYmIGJyZWFr
OwogICAgICAgIGRvbmU7CiAgICAgICAgaWYgW1sgJHtzaGVsbH0gPT0gIi9kZXYvbnVsbCIgXV07
IHRoZW4KICAgICAgICAgICAgZWVycm9yICJVbmFibGUgdG8gaWRlbnRpZnkgdGhlIHNoZWxsIHRv
IHVzZSwgcHJvY2VlZGluZyB3aXRoIHVzZXJsYW5kIGRlZmF1bHQuIjsKICAgICAgICAgICAgY2Fz
ZSAke1VTRVJMQU5EfSBpbiAKICAgICAgICAgICAgICAgIEdOVSkKICAgICAgICAgICAgICAgICAg
ICBzaGVsbD0iL2Jpbi9mYWxzZSIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBC
U0QpCiAgICAgICAgICAgICAgICAgICAgc2hlbGw9Ii9zYmluL25vbG9naW4iCiAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgRGFyd2luKQogICAgICAgICAgICAgICAgICAgIHNoZWxs
PSIvdXNyL3NiaW4vbm9sb2dpbiIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAq
KQogICAgICAgICAgICAgICAgICAgIGRpZSAiVW5hYmxlIHRvIGlkZW50aWZ5IHRoZSBkZWZhdWx0
IHNoZWxsIGZvciB1c2VybGFuZCAke1VTRVJMQU5EfSIKICAgICAgICAgICAgICAgIDs7CiAgICAg
ICAgICAgIGVzYWM7CiAgICAgICAgZmk7CiAgICAgICAgZXNoZWxsPSR7c2hlbGx9OwogICAgZmk7
CiAgICBlaW5mbyAiIC0gU2hlbGw6ICR7ZXNoZWxsfSI7CiAgICBvcHRzPSIke29wdHN9IC1zICR7
ZXNoZWxsfSI7CiAgICBsb2NhbCBlaG9tZT0kMTsKICAgIHNoaWZ0OwogICAgaWYgW1sgLXogJHtl
aG9tZX0gXV0gfHwgW1sgJHtlaG9tZX0gPT0gIi0xIiBdXTsgdGhlbgogICAgICAgIGVob21lPSIv
ZGV2L251bGwiOwogICAgZmk7CiAgICBlaW5mbyAiIC0gSG9tZTogJHtlaG9tZX0iOwogICAgb3B0
cz0iJHtvcHRzfSAtZCAke2Vob21lfSI7CiAgICBsb2NhbCBlZ3JvdXBzPSQxOwogICAgc2hpZnQ7
CiAgICBpZiBbWyAhIC16ICR7ZWdyb3Vwc30gXV07IHRoZW4KICAgICAgICBsb2NhbCBvbGRpZnM9
JHtJRlN9OwogICAgICAgIGxvY2FsIGRlZmdyb3VwPSIiIGV4Z3JvdXBzPSIiOwogICAgICAgIGV4
cG9ydCBJRlM9IiwiOwogICAgICAgIGZvciBnIGluICR7ZWdyb3Vwc307CiAgICAgICAgZG8KICAg
ICAgICAgICAgZXhwb3J0IElGUz0ke29sZGlmc307CiAgICAgICAgICAgIGlmIFtbIC16ICQoZWdl
dGVudCBncm91cCAiJHtnfSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlZXJyb3IgIllvdSBt
dXN0IGFkZCBncm91cCAke2d9IHRvIHRoZSBzeXN0ZW0gZmlyc3QiOwogICAgICAgICAgICAgICAg
ZGllICIke2d9IGlzIG5vdCBhIHZhbGlkIEdJRCI7CiAgICAgICAgICAgIGZpOwogICAgICAgICAg
ICBpZiBbWyAteiAke2RlZmdyb3VwfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgZGVmZ3JvdXA9
JHtnfTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZXhncm91cHM9IiR7ZXhncm91
cHN9LCR7Z30iOwogICAgICAgICAgICBmaTsKICAgICAgICAgICAgZXhwb3J0IElGUz0iLCI7CiAg
ICAgICAgZG9uZTsKICAgICAgICBleHBvcnQgSUZTPSR7b2xkaWZzfTsKICAgICAgICBvcHRzPSIk
e29wdHN9IC1nICR7ZGVmZ3JvdXB9IjsKICAgICAgICBpZiBbWyAhIC16ICR7ZXhncm91cHN9IF1d
OyB0aGVuCiAgICAgICAgICAgIG9wdHM9IiR7b3B0c30gLUcgJHtleGdyb3VwczoxfSI7CiAgICAg
ICAgZmk7CiAgICBlbHNlCiAgICAgICAgZWdyb3Vwcz0iKG5vbmUpIjsKICAgIGZpOwogICAgZWlu
Zm8gIiAtIEdyb3VwczogJHtlZ3JvdXBzfSI7CiAgICBsb2NhbCBvbGRzYW5kYm94PSR7U0FOREJP
WF9PTn07CiAgICBleHBvcnQgU0FOREJPWF9PTj0iMCI7CiAgICBjYXNlICR7Q0hPU1R9IGluIAog
ICAgICAgICotZGFyd2luKikKICAgICAgICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAgICAg
ICAgICAgICAgIGRzY2wgLiBjcmVhdGUgL3VzZXJzLyR7ZXVzZXJ9IHVpZCAke2V1aWR9OwogICAg
ICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvdXNlcnMvJHtldXNlcn0gc2hlbGwgJHtlc2hlbGx9
OwogICAgICAgICAgICAgICAgZHNjbCAuIGNyZWF0ZSAvdXNlcnMvJHtldXNlcn0gaG9tZSAke2Vo
b21lfTsKICAgICAgICAgICAgICAgIGRzY2wgLiBjcmVhdGUgL3VzZXJzLyR7ZXVzZXJ9IHJlYWxu
YW1lICJhZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSI7CiAgICAgICAgICAgICAgICBsb2NhbCBv
bGRpZnM9JHtJRlN9OwogICAgICAgICAgICAgICAgZXhwb3J0IElGUz0iLCI7CiAgICAgICAgICAg
ICAgICBmb3IgZyBpbiAke2Vncm91cHN9OwogICAgICAgICAgICAgICAgZG8KICAgICAgICAgICAg
ICAgICAgICBkc2NsIC4gbWVyZ2UgL2dyb3Vwcy8ke2d9IHVzZXJzICR7ZXVzZXJ9OwogICAgICAg
ICAgICAgICAgZG9uZTsKICAgICAgICAgICAgICAgIGV4cG9ydCBJRlM9JHtvbGRpZnN9OwogICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiRXh0cmEgb3B0aW9ucyBhcmUgbm90
IHN1cHBvcnRlZCBvbiBEYXJ3aW4geWV0IjsKICAgICAgICAgICAgICAgIGVpbmZvICJQbGVhc2Ug
cmVwb3J0IHRoZSBlYnVpbGQgYWxvbmcgd2l0aCB0aGUgaW5mbyBiZWxvdyI7CiAgICAgICAgICAg
ICAgICBlaW5mbyAiZWV4dHJhOiAkQCI7CiAgICAgICAgICAgICAgICBkaWUgIlJlcXVpcmVkIGZ1
bmN0aW9uIG1pc3NpbmciOwogICAgICAgICAgICBmaQogICAgICAgIDs7CiAgICAgICAgKi1mcmVl
YnNkKiB8ICotZHJhZ29uZmx5KikKICAgICAgICAgICAgaWYgW1sgLXogJEAgXV07IHRoZW4KICAg
ICAgICAgICAgICAgIHB3IHVzZXJhZGQgJHtldXNlcn0gJHtvcHRzfSAtYyAiYWRkZWQgYnkgcG9y
dGFnZSBmb3IgJHtQTn0iIGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgZWluZm8gIiAtIEV4dHJhOiAkQCI7CiAgICAgICAgICAgICAgICBwdyB1
c2VyYWRkICR7ZXVzZXJ9ICR7b3B0c30gIiRAIiB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAg
ICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAqLW5ldGJzZCopCiAgICAgICAgICAgIGlm
IFtbIC16ICRAIF1dOyB0aGVuCiAgICAgICAgICAgICAgICB1c2VyYWRkICR7b3B0c30gJHtldXNl
cn0gfHwgZGllICJlbmV3dXNlciBmYWlsZWQiOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICBlaW5mbyAiIC0gRXh0cmE6ICRAIjsKICAgICAgICAgICAgICAgIHVzZXJhZGQgJHtvcHRz
fSAke2V1c2VyfSAiJEAiIHx8IGRpZSAiZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZmkK
ICAgICAgICA7OwogICAgICAgICotb3BlbmJzZCopCiAgICAgICAgICAgIGlmIFtbIC16ICRAIF1d
OyB0aGVuCiAgICAgICAgICAgICAgICB1c2VyYWRkIC11ICR7ZXVpZH0gLXMgJHtlc2hlbGx9IC1k
ICR7ZWhvbWV9IC1jICJBZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSIgLWcgJHtlZ3JvdXBzfSAk
e2V1c2VyfSB8fCBkaWUgImVuZXd1c2VyIGZhaWxlZCI7CiAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgIGVpbmZvICIgLSBFeHRyYTogJEAiOwogICAgICAgICAgICAgICAgdXNlcmFkZCAt
dSAke2V1aWR9IC1zICR7ZXNoZWxsfSAtZCAke2Vob21lfSAtYyAiQWRkZWQgYnkgcG9ydGFnZSBm
b3IgJHtQTn0iIC1nICR7ZWdyb3Vwc30gJHtldXNlcn0gIiRAIiB8fCBkaWUgImVuZXd1c2VyIGZh
aWxlZCI7CiAgICAgICAgICAgIGZpCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBp
ZiBbWyAteiAkQCBdXTsgdGhlbgogICAgICAgICAgICAgICAgdXNlcmFkZCAke29wdHN9ICR7ZXVz
ZXJ9IC1jICJhZGRlZCBieSBwb3J0YWdlIGZvciAke1BOfSIgfHwgZGllICJlbmV3dXNlciBmYWls
ZWQiOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiIC0gRXh0cmE6ICRA
IjsKICAgICAgICAgICAgICAgIHVzZXJhZGQgJHtvcHRzfSAke2V1c2VyfSAiJEAiIHx8IGRpZSAi
ZW5ld3VzZXIgZmFpbGVkIjsKICAgICAgICAgICAgZmkKICAgICAgICA7OwogICAgZXNhYzsKICAg
IGlmIFtbICEgLWUgJHtST09UfS8ke2Vob21lfSBdXTsgdGhlbgogICAgICAgIGVpbmZvICIgLSBD
cmVhdGluZyAke2Vob21lfSBpbiAke1JPT1R9IjsKICAgICAgICBta2RpciAtcCAiJHtST09UfS8k
e2Vob21lfSI7CiAgICAgICAgY2hvd24gJHtldXNlcn0gIiR7Uk9PVH0vJHtlaG9tZX0iOwogICAg
ICAgIGNobW9kIDc1NSAiJHtST09UfS8ke2Vob21lfSI7CiAgICBmaTsKICAgIGV4cG9ydCBTQU5E
Qk9YX09OPSR7b2xkc2FuZGJveH0KfQplcGF0Y2ggKCkgCnsgCiAgICBmdW5jdGlvbiBfZXBhdGNo
X2RyYXdfbGluZSAoKSAKICAgIHsgCiAgICAgICAgW1sgLXogJDEgXV0gJiYgc2V0ICIkKHByaW50
ZiAiJTY1cyIgJycpIjsKICAgICAgICBlY2hvICIkezEvLz8vPX0iCiAgICB9OwogICAgZnVuY3Rp
b24gX2VwYXRjaF9hc3NlcnQgKCkgCiAgICB7IAogICAgICAgIGxvY2FsIF9waXBlc3RhdHVzPSR7
UElQRVNUQVRVU1sqXX07CiAgICAgICAgW1sgJHtfcGlwZXN0YXR1cy8vIC99IC1lcSAwIF1dCiAg
ICB9OwogICAgbG9jYWwgUElQRV9DTUQ9IiI7CiAgICBsb2NhbCBTVERFUlJfVEFSR0VUPSIke1R9
LyQkLm91dCI7CiAgICBsb2NhbCBQQVRDSF9UQVJHRVQ9IiR7VH0vJCQucGF0Y2giOwogICAgbG9j
YWwgUEFUQ0hfU1VGRklYPSIiOwogICAgbG9jYWwgU0lOR0xFX1BBVENIPSJubyI7CiAgICBsb2Nh
bCB4PSIiOwogICAgdW5zZXQgUDRDT05GSUcgUDRQT1JUIFA0VVNFUjsKICAgIGlmIFsgIiQjIiAt
Z3QgMSBdOyB0aGVuCiAgICAgICAgbG9jYWwgbT0iIjsKICAgICAgICBmb3IgbSBpbiAiJEAiOwog
ICAgICAgIGRvCiAgICAgICAgICAgIGVwYXRjaCAiJHttfSI7CiAgICAgICAgZG9uZTsKICAgICAg
ICByZXR1cm4gMDsKICAgIGZpOwogICAgaWYgWyAtbiAiJDEiIC1hIC1mICIkMSIgXTsgdGhlbgog
ICAgICAgIFNJTkdMRV9QQVRDSD0ieWVzIjsKICAgICAgICBsb2NhbCBFUEFUQ0hfU09VUkNFPSIk
MSI7CiAgICAgICAgbG9jYWwgRVBBVENIX1NVRkZJWD0iJHsxIyMqXC59IjsKICAgIGVsc2UKICAg
ICAgICBpZiBbIC1uICIkMSIgLWEgLWQgIiQxIiBdOyB0aGVuCiAgICAgICAgICAgIGlmIFsgIiR7
RVBBVENIX0ZPUkNFfSIgPSAieWVzIiBdICYmIFsgLXogIiR7RVBBVENIX1NVRkZJWH0iIF07IHRo
ZW4KICAgICAgICAgICAgICAgIGxvY2FsIEVQQVRDSF9TT1VSQ0U9IiQxLyoiOwogICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICBsb2NhbCBFUEFUQ0hfU09VUkNFPSIkMS8qLiR7RVBBVENI
X1NVRkZJWH0iOwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIFtb
ICEgLWQgJHtFUEFUQ0hfU09VUkNFfSBdXSB8fCBbWyAtbiAkMSBdXTsgdGhlbgogICAgICAgICAg
ICAgICAgaWYgWyAtbiAiJDEiIC1hICIke0VQQVRDSF9TT1VSQ0V9IiA9ICIke1dPUktESVJ9L3Bh
dGNoIiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgRVBBVENIX1NPVVJDRT0iJDEiOwogICAg
ICAgICAgICAgICAgZmk7CiAgICAgICAgICAgICAgICBlY2hvOwogICAgICAgICAgICAgICAgZWVy
cm9yICJDYW5ub3QgZmluZCBcJEVQQVRDSF9TT1VSQ0UhICBWYWx1ZSBmb3IgXCRFUEFUQ0hfU09V
UkNFIGlzOiI7CiAgICAgICAgICAgICAgICBlZXJyb3I7CiAgICAgICAgICAgICAgICBlZXJyb3Ig
IiAgJHtFUEFUQ0hfU09VUkNFfSI7CiAgICAgICAgICAgICAgICBlZXJyb3IgIiAgKCAke0VQQVRD
SF9TT1VSQ0UjIyovfSApIjsKICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICBk
aWUgIkNhbm5vdCBmaW5kIFwkRVBBVENIX1NPVVJDRSEiOwogICAgICAgICAgICBmaTsKICAgICAg
ICAgICAgbG9jYWwgRVBBVENIX1NPVVJDRT0iJHtFUEFUQ0hfU09VUkNFfS8qLiR7RVBBVENIX1NV
RkZJWH0iOwogICAgICAgIGZpOwogICAgZmk7CiAgICBjYXNlICR7RVBBVENIX1NVRkZJWCMjKlwu
fSBpbiAKICAgICAgICBsem1hKQogICAgICAgICAgICBQSVBFX0NNRD0ibHptYSAtZGMiOwogICAg
ICAgICAgICBQQVRDSF9TVUZGSVg9Imx6bWEiCiAgICAgICAgOzsKICAgICAgICBiejIpCiAgICAg
ICAgICAgIFBJUEVfQ01EPSJiemlwMiAtZGMiOwogICAgICAgICAgICBQQVRDSF9TVUZGSVg9ImJ6
MiIKICAgICAgICA7OwogICAgICAgIGd6IHwgWiB8IHopCiAgICAgICAgICAgIFBJUEVfQ01EPSJn
emlwIC1kYyI7CiAgICAgICAgICAgIFBBVENIX1NVRkZJWD0iZ3oiCiAgICAgICAgOzsKICAgICAg
ICBaSVAgfCB6aXApCiAgICAgICAgICAgIFBJUEVfQ01EPSJ1bnppcCAtcCI7CiAgICAgICAgICAg
IFBBVENIX1NVRkZJWD0iemlwIgogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgUElQ
RV9DTUQ9ImNhdCI7CiAgICAgICAgICAgIFBBVENIX1NVRkZJWD0icGF0Y2giCiAgICAgICAgOzsK
ICAgIGVzYWM7CiAgICBpZiBbICIke1NJTkdMRV9QQVRDSH0iID0gIm5vIiBdOyB0aGVuCiAgICAg
ICAgZWluZm8gIiR7RVBBVENIX01VTFRJX01TR30iOwogICAgZmk7CiAgICBmb3IgeCBpbiAke0VQ
QVRDSF9TT1VSQ0V9OwogICAgZG8KICAgICAgICBpZiBbIC1mICR7eH0gXSAmJiAoIFsgIiR7U0lO
R0xFX1BBVENIfSIgPSAieWVzIiAtbyAiJHt4L19hbGxffSIgIT0gIiR7eH0iIC1vICIke3gvXyR7
QVJDSH1ffSIgIT0gIiR7eH0iIF0gfHwgWyAiJHtFUEFUQ0hfRk9SQ0V9IiA9ICJ5ZXMiIF0gKTsg
dGhlbgogICAgICAgICAgICBsb2NhbCBjb3VudD0wOwogICAgICAgICAgICBsb2NhbCBwb3B0cz0i
JHtFUEFUQ0hfT1BUU30iOwogICAgICAgICAgICBsb2NhbCBwYXRjaG5hbWU9JHt4IyMqL307CiAg
ICAgICAgICAgIGlmIFsgLW4gIiR7RVBBVENIX0VYQ0xVREV9IiBdOyB0aGVuCiAgICAgICAgICAg
ICAgICBpZiBbICIke0VQQVRDSF9FWENMVURFLyR7cGF0Y2huYW1lfX0iICE9ICIke0VQQVRDSF9F
WENMVURFfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgICAgZmk7CiAgICAgICAgICAgIGZpOwogICAgICAgICAgICBpZiBbICIke1NJTkdMRV9QQVRD
SH0iID0gInllcyIgXTsgdGhlbgogICAgICAgICAgICAgICAgaWYgWyAtbiAiJHtFUEFUQ0hfU0lO
R0xFX01TR30iIF07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlaW5mbyAiJHtFUEFUQ0hfU0lO
R0xFX01TR30iOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGVpbmZv
ICJBcHBseWluZyAke3BhdGNobmFtZX0gLi4uIjsKICAgICAgICAgICAgICAgIGZpOwogICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICBlaW5mbyAiICAke3BhdGNobmFtZX0gLi4uIjsKICAg
ICAgICAgICAgZmk7CiAgICAgICAgICAgIGVjaG8gIioqKioqICR7cGF0Y2huYW1lfSAqKioqKiIg
PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsK
ICAgICAgICAgICAgZWNobyA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NU
REVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgaWYgW1sgJHtQQVRDSF9TVUZGSVh9ICE9ICJw
YXRjaCIgXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8gLW4gIlBJUEVfQ09NTUFORDoJIiA+
PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsK
ICAgICAgICAgICAgICAgIGVjaG8gIiR7UElQRV9DTUR9ICR7eH0gPiAke1BBVENIX1RBUkdFVH0i
ID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99
OwogICAgICAgICAgICAgICAgaWYgISAoICR7UElQRV9DTUR9ICR7eH0gPiAke1BBVENIX1RBUkdF
VH0gKSA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQj
IyovfSAyPiYxOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgICAg
ICAgICBlZXJyb3IgIkNvdWxkIG5vdCBleHRyYWN0IHBhdGNoISI7CiAgICAgICAgICAgICAgICAg
ICAgY291bnQ9NTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGZp
OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBQQVRDSF9UQVJHRVQ9IiR7eH0iOwog
ICAgICAgICAgICBmaTsKICAgICAgICAgICAgbG9jYWwgYWJzX3BhdGhzPSQoZWdyZXAgLW4gJ15b
LStdezN9IC8nICIke1BBVENIX1RBUkdFVH0iIHwgYXdrICckMiAhPSAiL2Rldi9udWxsIiB7IHBy
aW50IH0nKTsKICAgICAgICAgICAgaWYgW1sgLW4gJHthYnNfcGF0aHN9IF1dOyB0aGVuCiAgICAg
ICAgICAgICAgICBjb3VudD0xOwogICAgICAgICAgICAgICAgZWNobyAiTk9URTogc2tpcHBpbmcg
LXAwIGR1ZSB0byBhYnNvbHV0ZSBwYXRocyBpbiBwYXRjaDoiID4+ICR7U1RERVJSX1RBUkdFVCUv
Kn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAgICAgICAgZWNo
byAiJHthYnNfcGF0aHN9IiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NU
REVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIHdoaWxlIFsgIiR7
Y291bnR9IiAtbHQgNSBdOyBkbwogICAgICAgICAgICAgICAgX2VwYXRjaF9kcmF3X2xpbmUgIioq
KioqICR7cGF0Y2huYW1lfSAqKioqKiIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFt
ZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICBlY2hvID4+ICR7U1RERVJS
X1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMjKi99OwogICAgICAgICAg
ICAgICAgZWNobyAtbiAiUEFUQ0ggQ09NTUFORDoJICIgPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8k
e3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL307CiAgICAgICAgICAgICAgICBlY2hvICJw
YXRjaCAtcCR7Y291bnR9ICR7cG9wdHN9IDwgJHtQQVRDSF9UQVJHRVR9IiA+PiAke1NUREVSUl9U
QVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAg
ICAgIGVjaG8gPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFS
R0VUIyMqL307CiAgICAgICAgICAgICAgICBfZXBhdGNoX2RyYXdfbGluZSAiKioqKiogJHtwYXRj
aG5hbWV9ICoqKioqIiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVS
Ul9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgIGlmICggY2F0ICR7UEFUQ0hfVEFSR0VUfSB8
IHBhdGNoIC1wJHtjb3VudH0gJHtwb3B0c30gLS1kcnktcnVuIC1mOwogICAgICAgICAgICAgICAg
X2VwYXRjaF9hc3NlcnQgKSA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NU
REVSUl9UQVJHRVQjIyovfSAyPiYxOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgX2VwYXRjaF9k
cmF3X2xpbmUgIioqKioqICR7cGF0Y2huYW1lfSAqKioqKiIgPiAke1NUREVSUl9UQVJHRVQlLyp9
LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfS5yZWFsOwogICAgICAgICAgICAgICAg
ICAgIGVjaG8gPj4gJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFS
R0VUIyMqL30ucmVhbDsKICAgICAgICAgICAgICAgICAgICBlY2hvICJBQ1RVQUxMWSBBUFBMWUlO
RyAke3BhdGNobmFtZX0gLi4uIiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0k
e1NUREVSUl9UQVJHRVQjIyovfS5yZWFsOwogICAgICAgICAgICAgICAgICAgIGVjaG8gPj4gJHtT
VERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbDsK
ICAgICAgICAgICAgICAgICAgICBfZXBhdGNoX2RyYXdfbGluZSAiKioqKiogJHtwYXRjaG5hbWV9
ICoqKioqIiA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJH
RVQjIyovfS5yZWFsOwogICAgICAgICAgICAgICAgICAgIGNhdCAke1BBVENIX1RBUkdFVH0gfCBw
YXRjaCAtcCR7Y291bnR9ICR7cG9wdHN9ID4+ICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5h
bWV9LSR7U1RERVJSX1RBUkdFVCMjKi99LnJlYWwgMj4mMTsKICAgICAgICAgICAgICAgICAgICBf
ZXBhdGNoX2Fzc2VydDsKICAgICAgICAgICAgICAgICAgICBpZiBbICIkPyIgLW5lIDAgXTsgdGhl
bgogICAgICAgICAgICAgICAgICAgICAgICBjYXQgJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNo
bmFtZX0tJHtTVERFUlJfVEFSR0VUIyMqL30ucmVhbCA+PiAke1NUREVSUl9UQVJHRVQlLyp9LyR7
cGF0Y2huYW1lfS0ke1NUREVSUl9UQVJHRVQjIyovfTsKICAgICAgICAgICAgICAgICAgICAgICAg
ZWNobzsKICAgICAgICAgICAgICAgICAgICAgICAgZWVycm9yICJBIGRyeS1ydW4gb2YgcGF0Y2gg
Y29tbWFuZCBzdWNjZWVkZWQsIGJ1dCBhY3R1YWxseSI7CiAgICAgICAgICAgICAgICAgICAgICAg
IGVlcnJvciAiYXBwbHlpbmcgdGhlIHBhdGNoIGZhaWxlZCEiOwogICAgICAgICAgICAgICAgICAg
ICAgICBjb3VudD01OwogICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAg
IHJtIC1mICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdFVCMj
Ki99LnJlYWw7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBmaTsK
ICAgICAgICAgICAgICAgIGNvdW50PSQoKGNvdW50ICsgMSkpOwogICAgICAgICAgICBkb25lOwog
ICAgICAgICAgICBpZiBbICIke1BBVENIX1NVRkZJWH0iICE9ICJwYXRjaCIgXTsgdGhlbgogICAg
ICAgICAgICAgICAgcm0gLWYgJHtQQVRDSF9UQVJHRVR9OwogICAgICAgICAgICBmaTsKICAgICAg
ICAgICAgaWYgWyAiJHtjb3VudH0iIC1lcSA1IF07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG87
CiAgICAgICAgICAgICAgICBlZXJyb3IgIkZhaWxlZCBQYXRjaDogJHtwYXRjaG5hbWV9ICEiOwog
ICAgICAgICAgICAgICAgZWVycm9yICIgKCAke1BBVENIX1RBUkdFVH0gKSI7CiAgICAgICAgICAg
ICAgICBlZXJyb3I7CiAgICAgICAgICAgICAgICBlZXJyb3IgIkluY2x1ZGUgaW4geW91ciBidWdy
ZXBvcnQgdGhlIGNvbnRlbnRzIG9mOiI7CiAgICAgICAgICAgICAgICBlZXJyb3I7CiAgICAgICAg
ICAgICAgICBlZXJyb3IgIiAgJHtTVERFUlJfVEFSR0VUJS8qfS8ke3BhdGNobmFtZX0tJHtTVERF
UlJfVEFSR0VUIyMqL30iOwogICAgICAgICAgICAgICAgZWNobzsKICAgICAgICAgICAgICAgIGRp
ZSAiRmFpbGVkIFBhdGNoOiAke3BhdGNobmFtZX0hIjsKICAgICAgICAgICAgZmk7CiAgICAgICAg
ICAgIHJtIC1mICR7U1RERVJSX1RBUkdFVCUvKn0vJHtwYXRjaG5hbWV9LSR7U1RERVJSX1RBUkdF
VCMjKi99OwogICAgICAgICAgICBlZW5kIDA7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgaWYg
WyAiJHtTSU5HTEVfUEFUQ0h9IiA9ICJubyIgXTsgdGhlbgogICAgICAgIGVpbmZvICJEb25lIHdp
dGggcGF0Y2hpbmciOwogICAgZmkKfQplcGF1c2UgKCkgCnsgCiAgICBbWyAteiAke0VQQVVTRV9J
R05PUkV9IF1dICYmIHNsZWVwICR7MTotNX0KfQplcHVudF9jeHggKCkgCnsgCiAgICBsb2NhbCBk
aXI9JDE7CiAgICBbWyAteiAke2Rpcn0gXV0gJiYgZGlyPSR7U307CiAgICBlYmVnaW4gIlJlbW92
aW5nIHVzZWxlc3MgQysrIGNoZWNrcyI7CiAgICBsb2NhbCBmOwogICAgZmluZCAiJHtkaXJ9IiAt
bmFtZSBjb25maWd1cmUgfCB3aGlsZSByZWFkIGY7IGRvCiAgICAgICAgcGF0Y2ggLS1uby1iYWNr
dXAtaWYtbWlzbWF0Y2ggLXAwICIke2Z9IiAiJHtQT1JURElSfS9lY2xhc3MvRUxULXBhdGNoZXMv
bm9jeHgvbm9jeHgucGF0Y2giID4gL2Rldi9udWxsOwogICAgZG9uZTsKICAgIGVlbmQgMAp9CmVx
bWFrZTMgKCkgCnsgCiAgICBsb2NhbCBMT0dGSUxFPSIke1R9L3FtYWtlLSQkLm91dCI7CiAgICBs
b2NhbCBwcm9qcHJvZmlsZT0iJHsxfSI7CiAgICBbWyAteiAke3Byb2pwcm9maWxlfSBdXSAmJiBw
cm9qcHJvZmlsZT0iJHtQTn0ucHJvIjsKICAgIHNoaWZ0IDE7CiAgICBlYmVnaW4gIlByb2Nlc3Np
bmcgcW1ha2UgJHtwcm9qcHJvZmlsZX0iOwogICAgaWYgW1sgISAtZiAke3Byb2pwcm9maWxlfSBd
XTsgdGhlbgogICAgICAgIGVjaG87CiAgICAgICAgZWVycm9yICJQcm9qZWN0IC5wcm8gZmlsZSBc
IiR7cHJvanByb2ZpbGV9XCIgZG9lcyBub3QgZXhpc3RzIjsKICAgICAgICBlZXJyb3IgInFtYWtl
IGNhbm5vdCBoYW5kbGUgbm9uLWV4aXN0aW5nIC5wcm8gZmlsZXMiOwogICAgICAgIGVjaG87CiAg
ICAgICAgZWVycm9yICJUaGlzIHNob3VsZG4ndCBoYXBwZW4gLSBwbGVhc2Ugc2VuZCBhIGJ1ZyBy
ZXBvcnQgdG8gYnVncy5nZW50b28ub3JnIjsKICAgICAgICBlY2hvOwogICAgICAgIGRpZSAiUHJv
amVjdCBmaWxlIG5vdCBmb3VuZCBpbiAke1BOfSBzb3VyY2VzIjsKICAgIGZpOwogICAgZWNobyA+
PiAke0xPR0ZJTEV9OwogICAgZWNobyAiKioqKioqICBxbWFrZSAke3Byb2pwcm9maWxlfSAgKioq
KioqIiA+PiAke0xPR0ZJTEV9OwogICAgZWNobyA+PiAke0xPR0ZJTEV9OwogICAgbG9jYWwgY29u
Zmlnb3B0cGx1cz0iQ09ORklHICs9IG5vX2ZpeHBhdGgiOwogICAgbG9jYWwgY29uZmlnb3B0bWlu
dXM9IkNPTkZJRyAtPSI7CiAgICBpZiBoYXMgZGVidWcgJHtJVVNFfSAmJiB1c2UgZGVidWc7IHRo
ZW4KICAgICAgICBjb25maWdvcHRwbHVzPSIke2NvbmZpZ29wdHBsdXN9IGRlYnVnIjsKICAgICAg
ICBjb25maWdvcHRtaW51cz0iJHtjb25maWdvcHRtaW51c30gcmVsZWFzZSI7CiAgICBlbHNlCiAg
ICAgICAgY29uZmlnb3B0cGx1cz0iJHtjb25maWdvcHRwbHVzfSByZWxlYXNlIjsKICAgICAgICBj
b25maWdvcHRtaW51cz0iJHtjb25maWdvcHRtaW51c30gZGVidWciOwogICAgZmk7CiAgICAke1FU
RElSfS9iaW4vcW1ha2UgJHtwcm9qcHJvZmlsZX0gUVRESVI9JHtRVERJUn0gUU1BS0U9JHtRVERJ
Un0vYmluL3FtYWtlIFFNQUtFX0NDPSQodGMtZ2V0Q0MpIFFNQUtFX0NYWD0kKHRjLWdldENYWCkg
UU1BS0VfTElOSz0kKHRjLWdldENYWCkgUU1BS0VfQ0ZMQUdTX1JFTEVBU0U9IiR7Q0ZMQUdTfSIg
UU1BS0VfQ0ZMQUdTX0RFQlVHPSIke0NGTEFHU30iIFFNQUtFX0NYWEZMQUdTX1JFTEVBU0U9IiR7
Q1hYRkxBR1N9IiBRTUFLRV9DWFhGTEFHU19ERUJVRz0iJHtDWFhGTEFHU30iIFFNQUtFX0xGTEFH
U19SRUxFQVNFPSIke0xERkxBR1N9IiBRTUFLRV9MRkxBR1NfREVCVUc9IiR7TERGTEFHU30iICIk
e2NvbmZpZ29wdG1pbnVzfSIgIiR7Y29uZmlnb3B0cGx1c30iIFFNQUtFX1JQQVRIPSAke0B9ID4+
ICR7TE9HRklMRX0gMj4mMTsKICAgIGxvY2FsIHJlc3VsdD0kPzsKICAgIGVlbmQgJHtyZXN1bHR9
OwogICAgaWYgW1sgJHtyZXN1bHR9IC1uZSAwIF1dOyB0aGVuCiAgICAgICAgZWNobzsKICAgICAg
ICBlZXJyb3IgIlJ1bm5pbmcgcW1ha2Ugb24gXCIke3Byb2pwcm9maWxlfVwiIGhhcyBmYWlsZWQi
OwogICAgICAgIGVjaG87CiAgICAgICAgZWVycm9yICJUaGlzIHNob3VsZG4ndCBoYXBwZW4gLSBw
bGVhc2Ugc2VuZCBhIGJ1ZyByZXBvcnQgdG8gYnVncy5nZW50b28ub3JnIjsKICAgICAgICBlY2hv
OwogICAgICAgIGRpZSAicW1ha2UgZmFpbGVkIG9uICR7cHJvanByb2ZpbGV9IjsKICAgIGZpOwog
ICAgcmV0dXJuICR7cmVzdWx0fQp9CmVzdm5fY2xlYW4gKCkgCnsgCiAgICBbWyAteiAkKiBdXSAm
JiBzZXQgLS0gLjsKICAgIGZpbmQgIiRAIiAtdHlwZSBkIC1uYW1lICcuc3ZuJyAtcHJ1bmUgLXBy
aW50MCB8IHhhcmdzIC0wIHJtIC1yZgp9CmZpbHRlci1mbGFncyAoKSAKeyAKICAgIF9maWx0ZXIt
aGFyZGVuZWQgIiRAIjsKICAgIF9maWx0ZXItdmFyIENGTEFHUyAiJEAiOwogICAgX2ZpbHRlci12
YXIgQ1BQRkxBR1MgIiRAIjsKICAgIF9maWx0ZXItdmFyIENYWEZMQUdTICIkQCI7CiAgICBfZmls
dGVyLXZhciBGRkxBR1MgIiRAIjsKICAgIF9maWx0ZXItdmFyIEZDRkxBR1MgIiRAIjsKICAgIHJl
dHVybiAwCn0KZmlsdGVyLWxkZmxhZ3MgKCkgCnsgCiAgICBfZmlsdGVyLXZhciBMREZMQUdTICIk
QCI7CiAgICByZXR1cm4gMAp9CmZpbHRlci1sZnMtZmxhZ3MgKCkgCnsgCiAgICBbWyAtbiAkQCBd
XSAmJiBkaWUgImZpbHRlci1sZnMtZmxhZ3MgdGFrZXMgbm8gYXJndW1lbnRzIjsKICAgIGZpbHRl
ci1mbGFncyAtRF9GSUxFX09GRlNFVF9CSVRTPTY0IC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfTEFS
R0VGSUxFNjRfU09VUkNFCn0KZmlsdGVyLW1mcG1hdGggKCkgCnsgCiAgICBsb2NhbCBvcmlnX21m
cG1hdGggbmV3X21hdGggcHJ1bmVfbWF0aDsKICAgIG9yaWdfbWZwbWF0aD0kKGdldC1mbGFnIC1t
ZnBtYXRoKTsKICAgIG5ld19tYXRoPSQoZ2V0LWZsYWcgbWZwbWF0aCk7CiAgICBuZXdfbWF0aD0i
ICR7bmV3X21hdGgvLywvIH0gIjsKICAgIHBydW5lX21hdGg9IiI7CiAgICBmb3IgcHJ1bmVfbWF0
aCBpbiAiJEAiOwogICAgZG8KICAgICAgICBuZXdfbWF0aD0ke25ld19tYXRoLyAke3BydW5lX21h
dGh9IC8gfTsKICAgIGRvbmU7CiAgICBuZXdfbWF0aD0kKGVjaG8gJHtuZXdfbWF0aH0pOwogICAg
bmV3X21hdGg9JHtuZXdfbWF0aC8vIC8sfTsKICAgIGlmIFtbIC16ICR7bmV3X21hdGh9IF1dOyB0
aGVuCiAgICAgICAgZmlsdGVyLWZsYWdzICR7b3JpZ19tZnBtYXRofTsKICAgIGVsc2UKICAgICAg
ICByZXBsYWNlLWZsYWdzICR7b3JpZ19tZnBtYXRofSAtbWZwbWF0aD0ke25ld19tYXRofTsKICAg
IGZpOwogICAgcmV0dXJuIDAKfQpmaW5kX3VucGFja2FibGVfZmlsZSAoKSAKeyAKICAgIGxvY2Fs
IHNyYz0kMTsKICAgIGlmIFtbIC16ICR7c3JjfSBdXTsgdGhlbgogICAgICAgIHNyYz0ke0RJU1RE
SVJ9LyR7QX07CiAgICBlbHNlCiAgICAgICAgaWYgW1sgLWUgJHtESVNURElSfS8ke3NyY30gXV07
IHRoZW4KICAgICAgICAgICAgc3JjPSR7RElTVERJUn0vJHtzcmN9OwogICAgICAgIGVsc2UKICAg
ICAgICAgICAgaWYgW1sgLWUgJHtQV0R9LyR7c3JjfSBdXTsgdGhlbgogICAgICAgICAgICAgICAg
c3JjPSR7UFdEfS8ke3NyY307CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGlmIFtb
IC1lICR7c3JjfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgIHNyYz0ke3NyY307CiAgICAg
ICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZmk7CiAgICBmaTsKICAgIFtb
ICEgLWUgJHtzcmN9IF1dICYmIHJldHVybiAxOwogICAgZWNobyAiJHtzcmN9Igp9CmdjYy1mdWxs
dmVyc2lvbiAoKSAKeyAKICAgICQodGMtZ2V0Q0MgIiRAIikgLWR1bXB2ZXJzaW9uCn0KZ2NjLW1h
am9yLXZlcnNpb24gKCkgCnsgCiAgICBnY2MtdmVyc2lvbiAiJEAiIHwgY3V0IC1mMSAtZC4KfQpn
Y2MtbWljcm8tdmVyc2lvbiAoKSAKeyAKICAgIGdjYy1mdWxsdmVyc2lvbiAiJEAiIHwgY3V0IC1m
MyAtZC4gfCBjdXQgLWYxIC1kLQp9CmdjYy1taW5vci12ZXJzaW9uICgpIAp7IAogICAgZ2NjLXZl
cnNpb24gIiRAIiB8IGN1dCAtZjIgLWQuCn0KZ2NjLXNwZWNzLWRpcmVjdGl2ZSAoKSAKeyAKICAg
IGxvY2FsIGRpcmVjdGl2ZSBzdWJkbmFtZSBzdWJkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9IiQo
X2djYy1zcGVjcy1kaXJlY3RpdmVfcmF3ICQxKSI7CiAgICB3aGlsZSBbWyAke2RpcmVjdGl2ZX0g
PT0gKiVcKCpcKSogXV07IGRvCiAgICAgICAgc3ViZG5hbWU9JHtkaXJlY3RpdmUvKiVcKH07CiAg
ICAgICAgc3ViZG5hbWU9JHtzdWJkbmFtZS9cKSp9OwogICAgICAgIHN1YmRpcmVjdGl2ZT0iJChf
Z2NjLXNwZWNzLWRpcmVjdGl2ZV9yYXcgJHtzdWJkbmFtZX0pIjsKICAgICAgICBkaXJlY3RpdmU9
IiR7ZGlyZWN0aXZlLy9cJSgke3N1YmRuYW1lfSkvJHtzdWJkaXJlY3RpdmV9fSI7CiAgICBkb25l
OwogICAgZWNobyAiJHtkaXJlY3RpdmV9IjsKICAgIHJldHVybiAwCn0KZ2NjLXNwZWNzLW5vdyAo
KSAKeyAKICAgIGxvY2FsIGRpcmVjdGl2ZTsKICAgIGRpcmVjdGl2ZT0kKGdjYy1zcGVjcy1kaXJl
Y3RpdmUgbGlua19jb21tYW5kKTsKICAgIHJldHVybiAkKFtbICR7ZGlyZWN0aXZlL1x7IW5vbm93
On0gIT0gJHtkaXJlY3RpdmV9IF1dKQp9CmdjYy1zcGVjcy1waWUgKCkgCnsgCiAgICBsb2NhbCBk
aXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGNjMSk7CiAgICBy
ZXR1cm4gJChbWyAke2RpcmVjdGl2ZS9ceyFub3BpZTp9ICE9ICR7ZGlyZWN0aXZlfSBdXSkKfQpn
Y2Mtc3BlY3MtcmVscm8gKCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9
JChnY2Mtc3BlY3MtZGlyZWN0aXZlIGxpbmtfY29tbWFuZCk7CiAgICByZXR1cm4gJChbWyAke2Rp
cmVjdGl2ZS9ceyFub3JlbHJvOn0gIT0gJHtkaXJlY3RpdmV9IF1dKQp9CmdjYy1zcGVjcy1zc3Ag
KCkgCnsgCiAgICBsb2NhbCBkaXJlY3RpdmU7CiAgICBkaXJlY3RpdmU9JChnY2Mtc3BlY3MtZGly
ZWN0aXZlIGNjMSk7CiAgICByZXR1cm4gJChbWyAke2RpcmVjdGl2ZS9ceyFmbm8tc3RhY2stcHJv
dGVjdG9yOn0gIT0gJHtkaXJlY3RpdmV9IF1dKQp9CmdjYy1zcGVjcy1zc3AtdG8tYWxsICgpIAp7
IAogICAgbG9jYWwgZGlyZWN0aXZlOwogICAgZGlyZWN0aXZlPSQoZ2NjLXNwZWNzLWRpcmVjdGl2
ZSBjYzEpOwogICAgcmV0dXJuICQoW1sgJHtkaXJlY3RpdmUvXHshZm5vLXN0YWNrLXByb3RlY3Rv
ci1hbGw6fSAhPSAke2RpcmVjdGl2ZX0gXV0pCn0KZ2NjLXZlcnNpb24gKCkgCnsgCiAgICBnY2Mt
ZnVsbHZlcnNpb24gIiRAIiB8IGN1dCAtZjEsMiAtZC4KfQpnZW5fdXNyX2xkc2NyaXB0ICgpIAp7
IAogICAgbG9jYWwgbGliIGxpYmRpcj0kKGdldF9saWJkaXIpIG91dHB1dF9mb3JtYXQ9IiI7CiAg
ICBkb2RpciAvdXNyLyR7bGliZGlyfTsKICAgIG91dHB1dF9mb3JtYXQ9JCgkKHRjLWdldENDKSAk
e0NGTEFHU30gJHtMREZMQUdTfSAtV2wsLS12ZXJib3NlIDI+JjEgfCBzZWQgLW4gJ3MvXk9VVFBV
VF9GT1JNQVQoIlwoW14iXSpcKSIsLiovXDEvcCcpOwogICAgW1sgLW4gJHtvdXRwdXRfZm9ybWF0
fSBdXSAmJiBvdXRwdXRfZm9ybWF0PSJPVVRQVVRfRk9STUFUICggJHtvdXRwdXRfZm9ybWF0fSAp
IjsKICAgIGZvciBsaWIgaW4gIiRAIjsKICAgIGRvCiAgICAgICAgaWYgW1sgJHtVU0VSTEFORH0g
PT0gIkRhcndpbiIgXV07IHRoZW4KICAgICAgICAgICAgZXdhcm4gIk5vdCBjcmVhdGluZyBmYWtl
IGR5bmFtaWMgbGlicmFyeSBmb3IgJGxpYiBvbiBEYXJ3aW47IjsKICAgICAgICAgICAgZXdhcm4g
Im1ha2luZyBhIHN5bWxpbmsgaW5zdGVhZC4iOwogICAgICAgICAgICBkb3N5bSAiLyR7bGliZGly
fS8ke2xpYn0iICIvdXNyLyR7bGliZGlyfS8ke2xpYn0iOwogICAgICAgIGVsc2UKICAgICAgICAg
ICAgY2F0ID4gIiR7RH0vdXNyLyR7bGliZGlyfS8ke2xpYn0iICA8PC1FTkRfTERTQ1JJUFQKLyog
R05VIGxkIHNjcmlwdAogICBTaW5jZSBHZW50b28gaGFzIGNyaXRpY2FsIGR5bmFtaWMgbGlicmFy
aWVzCiAgIGluIC9saWIsIGFuZCB0aGUgc3RhdGljIHZlcnNpb25zIGluIC91c3IvbGliLAogICB3
ZSBuZWVkIHRvIGhhdmUgYSAiZmFrZSIgZHluYW1pYyBsaWIgaW4gL3Vzci9saWIsCiAgIG90aGVy
d2lzZSB3ZSBydW4gaW50byBsaW5raW5nIHByb2JsZW1zLgoKICAgU2VlIGJ1ZyBodHRwOi8vYnVn
cy5nZW50b28ub3JnLzQ0MTEgZm9yIG1vcmUgaW5mby4KICovCiR7b3V0cHV0X2Zvcm1hdH0KR1JP
VVAgKCAvJHtsaWJkaXJ9LyR7bGlifSApCkVORF9MRFNDUklQVAoKICAgICAgICBmaQogICAgICAg
IGZwZXJtcyBhK3ggIi91c3IvJHtsaWJkaXJ9LyR7bGlifSIgfHwgZGllICJjb3VsZCBub3QgY2hh
bmdlIHBlcm1zIG9uICR7bGlifSI7CiAgICBkb25lCn0KZ2V0LWZsYWcgKCkgCnsgCiAgICBsb2Nh
bCBmIGZpbmRmbGFnPSIkMSI7CiAgICBmb3IgZiBpbiAke0NGTEFHU30gJHtDWFhGTEFHU30gJHtG
RkxBR1N9ICR7RkNGTEFHU307CiAgICBkbwogICAgICAgIGlmIFsgIiR7Zi8ke2ZpbmRmbGFnfX0i
ICE9ICIke2Z9IiBdOyB0aGVuCiAgICAgICAgICAgIHByaW50ZiAiJXNcbiIgIiR7Zi8tJHtmaW5k
ZmxhZ309fSI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIGZpOwogICAgZG9uZTsKICAg
IHJldHVybiAxCn0KZ2V0X2FiaV9BU0ZMQUdTICgpIAp7IAogICAgZ2V0X2FiaV92YXIgQVNGTEFH
UyAiJEAiCn0KZ2V0X2FiaV9DREVGSU5FICgpIAp7IAogICAgZ2V0X2FiaV92YXIgQ0RFRklORSAi
JEAiCn0KZ2V0X2FiaV9DRkxBR1MgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBDRkxBR1MgIiRAIgp9
CmdldF9hYmlfQ0hPU1QgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBDSE9TVCAiJEAiCn0KZ2V0X2Fi
aV9DVEFSR0VUICgpIAp7IAogICAgZ2V0X2FiaV92YXIgQ1RBUkdFVCAiJEAiCn0KZ2V0X2FiaV9G
QUtFX1RBUkdFVFMgKCkgCnsgCiAgICBnZXRfYWJpX3ZhciBGQUtFX1RBUkdFVFMgIiRAIgp9Cmdl
dF9hYmlfTERGTEFHUyAoKSAKeyAKICAgIGdldF9hYmlfdmFyIExERkxBR1MgIiRAIgp9CmdldF9h
YmlfTElCRElSICgpIAp7IAogICAgZ2V0X2FiaV92YXIgTElCRElSICIkQCIKfQpnZXRfYWJpX3Zh
ciAoKSAKeyAKICAgIGxvY2FsIGZsYWc9JDE7CiAgICBsb2NhbCBhYmk7CiAgICBpZiBbICQjIC1n
dCAxIF07IHRoZW4KICAgICAgICBhYmk9JHsyfTsKICAgIGVsc2UKICAgICAgICBpZiBbIC1uICIk
e0FCSX0iIF07IHRoZW4KICAgICAgICAgICAgYWJpPSR7QUJJfTsKICAgICAgICBlbHNlCiAgICAg
ICAgICAgIGlmIFsgLW4gIiR7REVGQVVMVF9BQkl9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBh
Ymk9JHtERUZBVUxUX0FCSX07CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGFiaT0i
ZGVmYXVsdCI7CiAgICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgZmk7CiAgICBsb2NhbCB2
YXI9IiR7ZmxhZ31fJHthYml9IjsKICAgIGVjaG8gJHshdmFyfQp9CmdldF9hZnRlcl9tYWpvcl92
ZXJzaW9uICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICBlY2hv
ICQoZ2V0X3ZlcnNpb25fY29tcG9uZW50X3JhbmdlIDItICIkezE6LSR7UFZ9fSIgKTsKICAgIF9f
dmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9CmdldF9hbGxfYWJpcyAoKSAKeyAKICAgIGxv
Y2FsIG9yZGVyPSIiOwogICAgaWYgW1sgLXogJHtNVUxUSUxJQl9BQklTfSBdXTsgdGhlbgogICAg
ICAgIGVjaG8gImRlZmF1bHQiOwogICAgICAgIHJldHVybiAwOwogICAgZmk7CiAgICBmb3IgeCBp
biAke01VTFRJTElCX0FCSVN9OwogICAgZG8KICAgICAgICBpZiBbWyAke3h9ICE9ICR7REVGQVVM
VF9BQkl9IF1dOyB0aGVuCiAgICAgICAgICAgIG9yZGVyPSIke29yZGVyOiske29yZGVyfSB9JHt4
fSI7CiAgICAgICAgZmk7CiAgICBkb25lOwogICAgb3JkZXI9IiR7b3JkZXI6KyR7b3JkZXJ9IH0k
e0RFRkFVTFRfQUJJfSI7CiAgICBlY2hvICR7b3JkZXJ9OwogICAgcmV0dXJuIDAKfQpnZXRfYWxs
X2xpYmRpcnMgKCkgCnsgCiAgICBsb2NhbCBsaWJkaXJzPSJsaWIiOwogICAgbG9jYWwgYWJpOwog
ICAgbG9jYWwgZGlyOwogICAgZm9yIGFiaSBpbiAke01VTFRJTElCX0FCSVN9OwogICAgZG8KICAg
ICAgICBbICIkKGdldF9hYmlfTElCRElSICR7YWJpfSkiICE9ICJsaWIiIF0gJiYgbGliZGlycz0i
JHtsaWJkaXJzfSAkKGdldF9hYmlfTElCRElSICR7YWJpfSkiOwogICAgZG9uZTsKICAgIGVjaG8g
IiR7bGliZGlyc30iCn0KZ2V0X2FsbF92ZXJzaW9uX2NvbXBvbmVudHMgKCkgCnsgCiAgICBfX3Zl
cnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvbjsKICAgIGxvY2FsIHZlcl9zdHI9JHsxOi0ke1BWfX0g
cmVzdWx0IHJlc3VsdF9pZHg9MDsKICAgIHJlc3VsdD0oKTsKICAgIGlmIFtbICIke1ZFUlNJT05B
VE9SX0NBQ0hFX1ZFUl9TVFJ9IiA9PSAiJHt2ZXJfc3RyfSIgXV07IHRoZW4KICAgICAgICBlY2hv
ICR7VkVSU0lPTkFUT1JfQ0FDSEVfUkVTVUxUfTsKICAgICAgICBfX3ZlcnNpb25hdG9yX3Nob3B0
X3RvZ2dsZSBvZmY7CiAgICAgICAgcmV0dXJuOwogICAgZmk7CiAgICBleHBvcnQgVkVSU0lPTkFU
T1JfQ0FDSEVfVkVSX1NUUj0iJHt2ZXJfc3RyfSI7CiAgICB3aGlsZSBbWyAtbiAiJHZlcl9zdHIi
IF1dOyBkbwogICAgICAgIGNhc2UgIiR7dmVyX3N0cjowOjF9IiBpbiAKICAgICAgICAgICAgW1s6
ZGlnaXQ6XV0pCiAgICAgICAgICAgICAgICByZXN1bHRbJHJlc3VsdF9pZHhdPSIke3Zlcl9zdHIl
JVteWzpkaWdpdDpdXSp9IjsKICAgICAgICAgICAgICAgIHZlcl9zdHI9IiR7dmVyX3N0ciMjKyhb
WzpkaWdpdDpdXSl9IjsKICAgICAgICAgICAgICAgIHJlc3VsdF9pZHg9JCgoJHJlc3VsdF9pZHgg
KyAxKSkKICAgICAgICAgICAgOzsKICAgICAgICAgICAgWy1fLl0pCiAgICAgICAgICAgICAgICBy
ZXN1bHRbJHJlc3VsdF9pZHhdPSIke3Zlcl9zdHI6MDoxfSI7CiAgICAgICAgICAgICAgICB2ZXJf
c3RyPSIke3Zlcl9zdHI6MX0iOwogICAgICAgICAgICAgICAgcmVzdWx0X2lkeD0kKCgkcmVzdWx0
X2lkeCArIDEpKQogICAgICAgICAgICA7OwogICAgICAgICAgICBbWzphbHBoYTpdXSkKICAgICAg
ICAgICAgICAgIGxvY2FsIG5vdF9tYXRjaD0iJHt2ZXJfc3RyIyMrKFtbOmFscGhhOl1dKSooW1s6
ZGlnaXQ6XV0pfSI7CiAgICAgICAgICAgICAgICByZXN1bHRbJHJlc3VsdF9pZHhdPSR7dmVyX3N0
cjowOiQoKCR7I3Zlcl9zdHJ9IC0gJHsjbm90X21hdGNofSkpfTsKICAgICAgICAgICAgICAgIHZl
cl9zdHI9IiR7bm90X21hdGNofSI7CiAgICAgICAgICAgICAgICByZXN1bHRfaWR4PSQoKCRyZXN1
bHRfaWR4ICsgMSkpCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAg
ICByZXN1bHRbJHJlc3VsdF9pZHhdPSIke3Zlcl9zdHI6MDoxfSI7CiAgICAgICAgICAgICAgICB2
ZXJfc3RyPSIke3Zlcl9zdHI6MX0iOwogICAgICAgICAgICAgICAgcmVzdWx0X2lkeD0kKCgkcmVz
dWx0X2lkeCArIDEpKQogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICBkb25lOwogICAg
ZXhwb3J0IFZFUlNJT05BVE9SX0NBQ0hFX1JFU1VMVD0iJHtyZXN1bHRbQF19IjsKICAgIGVjaG8g
JHtyZXN1bHRbQF19OwogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KZ2V0X2Jt
YWtlICgpIAp7IAogICAgaWYgW1sgJHtVU0VSTEFORH0gPT0gKkJTRCBdXTsgdGhlbgogICAgICAg
IGVjaG8gbWFrZTsKICAgIGVsc2UKICAgICAgICBpZiBbWyAke1VTRVJMQU5EfSA9PSAiRGFyd2lu
IiBdXTsgdGhlbgogICAgICAgICAgICBlY2hvIGJzZG1ha2U7CiAgICAgICAgZWxzZQogICAgICAg
ICAgICBlY2hvIHBtYWtlOwogICAgICAgIGZpOwogICAgZmkKfQpnZXRfaW5zdGFsbF9hYmlzICgp
IAp7IAogICAgbG9jYWwgb3JkZXI9IiI7CiAgICBpZiBbWyAteiAke01VTFRJTElCX0FCSVN9IF1d
OyB0aGVuCiAgICAgICAgZWNobyAiZGVmYXVsdCI7CiAgICAgICAgcmV0dXJuIDA7CiAgICBmaTsK
ICAgIGlmIFtbICR7RU1VTFRJTElCX1BLR30gPT0gInRydWUiIF1dOyB0aGVuCiAgICAgICAgZm9y
IHggaW4gJHtNVUxUSUxJQl9BQklTfTsKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAke3h9
ICE9ICIke0RFRkFVTFRfQUJJfSIgXV07IHRoZW4KICAgICAgICAgICAgICAgIGhhc3EgJHt4fSAk
e0FCSV9ERU5ZfSB8fCBvcmRlcmE9IiR7b3JkZXJhfSAke3h9IjsKICAgICAgICAgICAgZmk7CiAg
ICAgICAgZG9uZTsKICAgICAgICBoYXNxICR7REVGQVVMVF9BQkl9ICR7QUJJX0RFTll9IHx8IG9y
ZGVyPSIke29yZGVyYX0gJHtERUZBVUxUX0FCSX0iOwogICAgICAgIGlmIFtbIC1uICR7QUJJX0FM
TE9XfSBdXTsgdGhlbgogICAgICAgICAgICBsb2NhbCBvcmRlcmE9IiI7CiAgICAgICAgICAgIGZv
ciB4IGluICR7b3JkZXJ9OwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYgaGFzcSAk
e3h9ICR7QUJJX0FMTE9XfTsgdGhlbgogICAgICAgICAgICAgICAgICAgIG9yZGVyYT0iJHtvcmRl
cmF9ICR7eH0iOwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAg
ICAgIG9yZGVyPSR7b3JkZXJhfTsKICAgICAgICBmaTsKICAgIGVsc2UKICAgICAgICBvcmRlcj0k
e0RFRkFVTFRfQUJJfTsKICAgIGZpOwogICAgaWYgW1sgLXogJHtvcmRlcn0gXV07IHRoZW4KICAg
ICAgICBkaWUgIlRoZSBBQkkgbGlzdCBpcyBlbXB0eS4gIEFyZSB5b3UgdXNpbmcgYSBwcm9wZXIg
bXVsdGlsaWIgcHJvZmlsZT8gIFBlcmhhcHMgeW91ciBVU0UgZmxhZ3Mgb3IgTVVMVElMSUJfQUJJ
UyBhcmUgdG9vIHJlc3RyaWN0aXZlIGZvciB0aGlzIHBhY2thZ2UuIjsKICAgIGZpOwogICAgZWNo
byAke29yZGVyfTsKICAgIHJldHVybiAwCn0KZ2V0X2xhc3RfdmVyc2lvbl9jb21wb25lbnRfaW5k
ZXggKCkgCnsgCiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvbjsKICAgIGVjaG8gJCgo
ICQoZ2V0X3ZlcnNpb25fY29tcG9uZW50X2NvdW50ICIkezE6LSR7UFZ9fSIgKSAtIDEgKSk7CiAg
ICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvZmYKfQpnZXRfbGliZGlyICgpIAp7IAogICAg
bG9jYWwgQ09ORl9MSUJESVI7CiAgICBpZiBbIC1uICIke0NPTkZfTElCRElSX09WRVJSSURFfSIg
XTsgdGhlbgogICAgICAgIGVjaG8gJHtDT05GX0xJQkRJUl9PVkVSUklERX07CiAgICBlbHNlCiAg
ICAgICAgZ2V0X2FiaV9MSUJESVI7CiAgICBmaQp9CmdldF9saWJkaXJfb3ZlcnJpZGUgKCkgCnsg
CiAgICBpZiBoYXNfbXVsdGlsaWJfcHJvZmlsZTsgdGhlbgogICAgICAgIGVlcnJvciAiZ2V0X2xp
YmRpcl9vdmVycmlkZSBjYWxsZWQsIGJ1dCBpdCBzaG91bGRuJ3QgYmUgbmVlZGVkIHdpdGggdGhl
IG5ldyBtdWx0aWxpYiBhcHByb2FjaC4gIFBsZWFzZSBmaWxlIGEgYnVnIGF0IGh0dHA6Ly9idWdz
LmdlbnRvby5vcmcgYW5kIGFzc2lnbiBpdCB0byBlcmFkaWNhdG9yQGdlbnRvby5vcmciOwogICAg
ICAgIGV4aXQgMTsKICAgIGZpOwogICAgQ09ORl9MSUJESVI9IiQxIjsKICAgIENPTkZfTElCRElS
X09WRVJSSURFPSIkMSI7CiAgICBMSUJESVJfZGVmYXVsdD0iJDEiCn0KZ2V0X2xpYm5hbWUgKCkg
CnsgCiAgICBsb2NhbCBsaWJuYW1lOwogICAgbG9jYWwgdmVyPSQxOwogICAgY2FzZSAke0NIT1NU
fSBpbiAKICAgICAgICBtaW5ndyogfCAqLW1pbmd3KikKICAgICAgICAgICAgbGlibmFtZT0iZGxs
IgogICAgICAgIDs7CiAgICAgICAgKi1kYXJ3aW4qKQogICAgICAgICAgICBsaWJuYW1lPSJkeWxp
YiIKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGxpYm5hbWU9InNvIgogICAgICAg
IDs7CiAgICBlc2FjOwogICAgaWYgW1sgLXogJCogXV07IHRoZW4KICAgICAgICBlY2hvICIuJHts
aWJuYW1lfSI7CiAgICBlbHNlCiAgICAgICAgZm9yIHZlciBpbiAiJEAiOwogICAgICAgIGRvCiAg
ICAgICAgICAgIGNhc2UgJHtDSE9TVH0gaW4gCiAgICAgICAgICAgICAgICAqLWRhcndpbiopCiAg
ICAgICAgICAgICAgICAgICAgZWNobyAiLiR7dmVyfS4ke2xpYm5hbWV9IgogICAgICAgICAgICAg
ICAgOzsKICAgICAgICAgICAgICAgICopCiAgICAgICAgICAgICAgICAgICAgZWNobyAiLiR7bGli
bmFtZX0uJHt2ZXJ9IgogICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgZXNhYzsKICAgICAg
ICBkb25lOwogICAgZmkKfQpnZXRfbWFqb3JfdmVyc2lvbiAoKSAKeyAKICAgIF9fdmVyc2lvbmF0
b3Jfc2hvcHRfdG9nZ2xlIG9uOwogICAgbG9jYWwgYzsKICAgIGM9KCQoZ2V0X2FsbF92ZXJzaW9u
X2NvbXBvbmVudHMgIiR7MTotJHtQVn19IiApKTsKICAgIGVjaG8gJHtjWzBdfTsKICAgIF9fdmVy
c2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9CmdldF9tbF9pbmNkaXIgKCkgCnsgCiAgICBsb2Nh
bCBkaXI9L3Vzci9pbmNsdWRlOwogICAgaWYgW1sgJCMgLWd0IDAgXV07IHRoZW4KICAgICAgICBp
bmNkaXI9JDE7CiAgICAgICAgc2hpZnQ7CiAgICBmaTsKICAgIGlmIFtbIC16ICIke01VTFRJTElC
X0FCSVN9IiBdXTsgdGhlbgogICAgICAgIGVjaG8gJHtpbmNkaXJ9OwogICAgICAgIHJldHVybiAw
OwogICAgZmk7CiAgICBsb2NhbCBhYmk9JHtBQkktJHtERUZBVUxUX0FCSX19OwogICAgaWYgW1sg
JCMgLWd0IDAgXV07IHRoZW4KICAgICAgICBhYmk9JDE7CiAgICAgICAgc2hpZnQ7CiAgICBmaTsK
ICAgIGlmIFtbIC1kICIke2Rpcn0vZ2VudG9vLW11bHRpbGliLyR7YWJpfSIgXV07IHRoZW4KICAg
ICAgICBlY2hvICR7ZGlyfS9nZW50b28tbXVsdGlsaWIvJHthYml9OwogICAgZWxzZQogICAgICAg
IGVjaG8gJHtkaXJ9OwogICAgZmkKfQpnZXRfbW91bnRzICgpIAp7IAogICAgbG9jYWwgcG9pbnQ9
IG5vZGU9IGZzPSBvcHRzPSBmb289OwogICAgaWYgW1sgJCh1bmFtZSAtcykgPT0gIkxpbnV4IiBd
XTsgdGhlbgogICAgICAgIHdoaWxlIHJlYWQgbm9kZSBwb2ludCBmcyBvcHRzIGZvbzsgZG8KICAg
ICAgICAgICAgZWNobyAiJHtwb2ludH0gJHtub2RlfSAke2ZzfSAke29wdHN9IjsKICAgICAgICBk
b25lIDwgL3Byb2MvbW91bnRzOwogICAgICAgIHJldHVybjsKICAgIGZpOwogICAgbG9jYWwgSUZT
PScJJzsKICAgIExDX0FMTD1DIG1vdW50IC1wIHwgd2hpbGUgcmVhZCBub2RlIHBvaW50IGZzIGZv
bzsgZG8KICAgICAgICBvcHRzPSR7ZnMjKiB9OwogICAgICAgIGZzPSR7ZnMlJSAqfTsKICAgICAg
ICBlY2hvICIke3BvaW50Ly8gL1wwNDB9ICR7bm9kZS8vIC9cMDQwfSAke2ZzJSUgKn0gJHtvcHRz
Ly8gL1wwNDB9IjsKICAgIGRvbmUKfQpnZXRfbXVsdGlsaWJkaXIgKCkgCnsgCiAgICBpZiBoYXNf
bXVsdGlsaWJfcHJvZmlsZTsgdGhlbgogICAgICAgIGVlcnJvciAiZ2V0X211bHRpbGliZGlyIGNh
bGxlZCwgYnV0IGl0IHNob3VsZG4ndCBiZSBuZWVkZWQgd2l0aCB0aGUgbmV3IG11bHRpbGliIGFw
cHJvYWNoLiAgUGxlYXNlIGZpbGUgYSBidWcgYXQgaHR0cDovL2J1Z3MuZ2VudG9vLm9yZyBhbmQg
YXNzaWduIGl0IHRvIGVyYWRpY2F0b3JAZ2VudG9vLm9yZyI7CiAgICAgICAgZXhpdCAxOwogICAg
Zmk7CiAgICBlY2hvICR7Q09ORl9NVUxUSUxJQkRJUjo9bGliMzJ9Cn0KZ2V0X3ZlcnNpb25fY29t
cG9uZW50X2NvdW50ICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAg
ICBsb2NhbCBhOwogICAgYT0oJChnZXRfdmVyc2lvbl9jb21wb25lbnRzICIkezE6LSR7UFZ9fSIg
KSk7CiAgICBlY2hvICR7I2FbQF19OwogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2Zm
Cn0KZ2V0X3ZlcnNpb25fY29tcG9uZW50X3JhbmdlICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9z
aG9wdF90b2dnbGUgb247CiAgICBsb2NhbCBjIHY9IiR7MjotJHtQVn19IiByYW5nZT0iJHsxfSIg
cmFuZ2Vfc3RhcnQgcmFuZ2VfZW5kIGk9LTEgaj0wOwogICAgYz0oJChnZXRfYWxsX3ZlcnNpb25f
Y29tcG9uZW50cyAke3Z9ICkpOwogICAgcmFuZ2Vfc3RhcnQ9IiR7cmFuZ2UlLSp9IjsKICAgIHJh
bmdlX3N0YXJ0PSIke3JhbmdlX3N0YXJ0Oi0xfSI7CiAgICByYW5nZV9lbmQ9IiR7cmFuZ2UjKi19
IjsKICAgIHJhbmdlX2VuZD0iJHtyYW5nZV9lbmQ6LSR7I2NbQF19fSI7CiAgICB3aGlsZSAoKCBq
IDwgJHtyYW5nZV9zdGFydH0gKSk7IGRvCiAgICAgICAgaT0kKCgkaSArIDEpKTsKICAgICAgICBb
WyAkaSAtZ3QgJHsjY1tAXX0gXV0gJiYgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmICYm
IHJldHVybjsKICAgICAgICBbWyAtbiAiJHtjWyR7aX1dLy9bLS5fXX0iIF1dICYmIGo9JCgoJGog
KyAxKSk7CiAgICBkb25lOwogICAgd2hpbGUgKCggaiA8PSAke3JhbmdlX2VuZH0gKSk7IGRvCiAg
ICAgICAgZWNobyAtbiAke2NbJGldfTsKICAgICAgICBbWyAkaSAtZ3QgJHsjY1tAXX0gXV0gJiYg
X192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmICYmIHJldHVybjsKICAgICAgICBbWyAtbiAi
JHtjWyR7aX1dLy9bLS5fXX0iIF1dICYmIGo9JCgoJGogKyAxKSk7CiAgICAgICAgaT0kKCgkaSAr
IDEpKTsKICAgIGRvbmU7CiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvZmYKfQpnZXRf
dmVyc2lvbl9jb21wb25lbnRzICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUg
b247CiAgICBsb2NhbCBjPSIkKGdldF9hbGxfdmVyc2lvbl9jb21wb25lbnRzICIkezE6LSR7UFZ9
fSIpIjsKICAgIGM9KCR7Y1tAXS8vWy0uX10vIH0pOwogICAgZWNobyAke2NbQF19OwogICAgX192
ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmCn0KaGFzX2hhcmRlbmVkICgpIAp7IAogICAgZXdh
cm4gImhhc19oYXJkZW5lZDogZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBnY2Mtc3BlY3Mte3JlbHJv
LG5vd30oKSEiIDE+JjI7CiAgICB0ZXN0X3ZlcnNpb25faW5mbyBIYXJkZW5lZCAmJiByZXR1cm4g
MDsKICAgIFtbIC1mICR7R0NDX1NQRUNTfSAmJiAke0dDQ19TUEVDU30gIT0gJHtHQ0NfU1BFQ1Mv
aGFyZGVuZWQvfSBdXQp9Cmhhc19tMzIgKCkgCnsgCiAgICBbICIkKHRjLWFyY2gpIiA9ICJhbWQ2
NCIgXSAmJiBoYXNfbXVsdGlsaWJfcHJvZmlsZSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIHRlbXA9
JChlbWt0ZW1wKTsKICAgIGVjaG8gImludCBtYWluKCkgeyByZXR1cm4oMCk7IH0iID4gIiR7dGVt
cH0iLmM7CiAgICBNWV9DQz0kKHRjLWdldENDKTsKICAgICR7TVlfQ0MvIC4qL30gLW0zMiAtbyAi
JChlbWt0ZW1wKSIgIiR7dGVtcH0iLmMgPiAvZGV2L251bGwgMj4mMTsKICAgIGxvY2FsIHJldD0k
PzsKICAgIHJtIC1mICIke3RlbXB9Ii5jOwogICAgW1sgJHtyZXR9ICE9IDEgXV0gJiYgcmV0dXJu
IDA7CiAgICByZXR1cm4gMQp9Cmhhc19tNjQgKCkgCnsgCiAgICBsb2NhbCB0ZW1wPSIkKGVta3Rl
bXApIjsKICAgIGVjaG8gImludCBtYWluKCkgeyByZXR1cm4oMCk7IH0iID4gIiR7dGVtcH0iLmM7
CiAgICBNWV9DQz0kKHRjLWdldENDKTsKICAgICR7TVlfQ0MvIC4qL30gLW02NCAtbyAiJChlbWt0
ZW1wKSIgIiR7dGVtcH0iLmMgPiAvZGV2L251bGwgMj4mMTsKICAgIGxvY2FsIHJldD0kPzsKICAg
IHJtIC1mICIke3RlbXB9Ii5jOwogICAgW1sgJHtyZXR9ICE9IDEgXV0gJiYgcmV0dXJuIDA7CiAg
ICByZXR1cm4gMQp9Cmhhc19tdWx0aWxpYl9wcm9maWxlICgpIAp7IAogICAgWyAtbiAiJHtNVUxU
SUxJQl9BQklTfSIgLWEgIiR7TVVMVElMSUJfQUJJU30iICE9ICIke01VTFRJTElCX0FCSVMvIC99
IiBdCn0KaGFzX3BpYyAoKSAKeyAKICAgIGV3YXJuICJoYXNfcGljOiBkZXByZWNhdGVkLCBwbGVh
c2UgdXNlIGdjYy1zcGVjcy1waWUoKSEiIDE+JjI7CiAgICBbWyAke0NGTEFHUy8tZlBJQ30gIT0g
JHtDRkxBR1N9IHx8ICR7Q0ZMQUdTLy1mcGljfSAhPSAke0NGTEFHU30gXV0gfHwgZ2NjLXNwZWNz
LXBpZQp9Cmhhc19waWUgKCkgCnsgCiAgICBld2FybiAiaGFzX3BpZTogZGVwcmVjYXRlZCwgcGxl
YXNlIHVzZSBnY2Mtc3BlY3MtcGllKCkhIiAxPiYyOwogICAgW1sgJHtDRkxBR1MvLWZQSUV9ICE9
ICR7Q0ZMQUdTfSB8fCAke0NGTEFHUy8tZnBpZX0gIT0gJHtDRkxBR1N9IF1dIHx8IGdjYy1zcGVj
cy1waWUKfQpoYXNfc3NwICgpIAp7IAogICAgZXdhcm4gImhhc19zc3A6IGRlcHJlY2F0ZWQsIHBs
ZWFzZSB1c2UgZ2NjLXNwZWNzLXNzcCgpISIgMT4mMjsKICAgIFtbICR7Q0ZMQUdTLy1mc3RhY2st
cHJvdGVjdG9yfSAhPSAke0NGTEFHU30gfHwgLW4gJChlY2hvIHwgJCh0Yy1nZXRDQykgJHtDRkxB
R1N9IC1FIC1kTSAtIHwgZ3JlcCBfX1NTUF9fKSBdXSB8fCBnY2Mtc3BlY3Mtc3NwCn0KaGFzX3Nz
cF9hbGwgKCkgCnsgCiAgICBld2FybiAiaGFzX3NzcF9hbGw6IGRlcHJlY2F0ZWQsIHBsZWFzZSB1
c2UgZ2NjLXNwZWNzLXNzcCgpISIgMT4mMjsKICAgIFtbICR7Q0ZMQUdTLy1mc3RhY2stcHJvdGVj
dG9yLWFsbH0gIT0gJHtDRkxBR1N9IHx8IC1uICQoZWNobyB8ICQodGMtZ2V0Q0MpICR7Q0ZMQUdT
fSAtRSAtZE0gLSB8IGdyZXAgX19TU1BfQUxMX18pIF1dIHx8IGdjYy1zcGVjcy1zc3AtYWxsCn0K
aXMtZmxhZyAoKSAKeyAKICAgIGlzLWZsYWdxICIkQCIgJiYgZWNobyB0cnVlCn0KaXMtZmxhZ3Eg
KCkgCnsgCiAgICBbWyAtbiAkMiBdXSAmJiBkaWUgIlVzYWdlOiBpcy1mbGFnIDxmbGFnPiI7CiAg
ICBfaXNfZmxhZ3EgQ0ZMQUdTICQxIHx8IF9pc19mbGFncSBDWFhGTEFHUyAkMSB8fCBfaXNfZmxh
Z3EgRkZMQUdTICQxIHx8IF9pc19mbGFncSBGQ0ZMQUdTICQxCn0KaXMtbGRmbGFnICgpIAp7IAog
ICAgaXMtbGRmbGFncSAiJEAiICYmIGVjaG8gdHJ1ZQp9CmlzLWxkZmxhZ3EgKCkgCnsgCiAgICBb
WyAtbiAkMiBdXSAmJiBkaWUgIlVzYWdlOiBpcy1sZGZsYWcgPGZsYWc+IjsKICAgIF9pc19mbGFn
cSBMREZMQUdTICQxCn0KaXMtbG9naW4tZGlzYWJsZWQgKCkgCnsgCiAgICBzaGVsbD0kKGVnZXRz
aGVsbCAiJDEiKTsKICAgIGNhc2UgJHtzaGVsbH0gaW4gCiAgICAgICAgL2Jpbi9mYWxzZSB8IC91
c3IvYmluL2ZhbHNlIHwgL3NiaW4vbm9sb2dpbiB8IC91c3Ivc2Jpbi9ub2xvZ2luKQogICAgICAg
ICAgICByZXR1cm4gMAogICAgICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgcmV0dXJuIDEK
ICAgICAgICA7OwogICAgZXNhYwp9CmlzX2ZpbmFsX2FiaSAoKSAKeyAKICAgIGhhc19tdWx0aWxp
Yl9wcm9maWxlIHx8IHJldHVybiAwOwogICAgbG9jYWwgQUxMX0FCSVM9JChnZXRfaW5zdGFsbF9h
YmlzKTsKICAgIGxvY2FsIExBU1RfQUJJPSR7QUxMX0FCSVMvKiAvfTsKICAgIFtbICR7TEFTVF9B
Qkl9ID09ICR7QUJJfSBdXQp9Cm1ha2VfZGVza3RvcF9lbnRyeSAoKSAKeyAKICAgIFtbIC16ICQx
IF1dICYmIGVlcnJvciAibWFrZV9kZXNrdG9wX2VudHJ5OiBZb3UgbXVzdCBzcGVjaWZ5IHRoZSBl
eGVjdXRhYmxlIiAmJiByZXR1cm4gMTsKICAgIGxvY2FsIGV4ZWM9JHsxfTsKICAgIGxvY2FsIG5h
bWU9JHsyOi0ke1BOfX07CiAgICBsb2NhbCBpY29uPSR7MzotJHtQTn19OwogICAgbG9jYWwgdHlw
ZT0kezR9OwogICAgbG9jYWwgcGF0aD0kezV9OwogICAgaWYgW1sgLXogJHt0eXBlfSBdXTsgdGhl
bgogICAgICAgIGxvY2FsIGNhdG1haj0ke0NBVEVHT1JZJSUtKn07CiAgICAgICAgbG9jYWwgY2F0
bWluPSR7Q0FURUdPUlkjIyotfTsKICAgICAgICBjYXNlICR7Y2F0bWFqfSBpbiAKICAgICAgICAg
ICAgYXBwKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAg
ICAgICAgYWNjZXNzaWJpbGl0eSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BY2Nlc3Np
YmlsaXR5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBhZG1pbikK
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1TeXN0ZW0KICAgICAgICAgICAgICAgICAgICA7
OwogICAgICAgICAgICAgICAgICAgIGFudGl2aXJ1cykKICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZT1TeXN0ZW0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGFy
Y2gpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9QXJjaGl2aW5nCiAgICAgICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBiYWNrdXApCiAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGU9QXJjaGl2aW5nCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg
ICAgICBjZHIpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RGlzY0J1cm5pbmcKICAgICAg
ICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGRpY3RzKQogICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPURpY3Rpb25hcnkKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAg
ICAgICAgICAgICAgIGRvYykKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1Eb2N1bWVudGF0
aW9uCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBlZGl0b3JzKQog
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICAgICAgICAgIGVtYWNzKQogICAgICAgICAgICAgICAgICAgICAgICB0
eXBlPVRleHRFZGl0b3IKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAg
IGVtdWxhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1FbXVsYXRvcgogICAgICAg
ICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgbGFwdG9wKQogICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPUhhcmR3YXJlU2V0dGluZ3MKICAgICAgICAgICAgICAgICAgICA7Owog
ICAgICAgICAgICAgICAgICAgIG9mZmljZSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1P
ZmZpY2UKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHBkYSkKICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZT1QREEKICAgICAgICAgICAgICAgICAgICA7OwogICAg
ICAgICAgICAgICAgICAgIHZpbSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1UZXh0RWRp
dG9yCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICB4ZW1hY3MpCiAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9VGV4dEVkaXRvcgogICAgICAgICAgICAgICAgICAg
IDs7CiAgICAgICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0K
ICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYwogICAgICAgICAgICA7
OwogICAgICAgICAgICBkZXYpCiAgICAgICAgICAgICAgICB0eXBlPSJEZXZlbG9wbWVudCIKICAg
ICAgICAgICAgOzsKICAgICAgICAgICAgZ2FtZXMpCiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0
bWlufSBpbiAKICAgICAgICAgICAgICAgICAgICBhY3Rpb24gfCBmcHMpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9QWN0aW9uR2FtZQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAg
ICAgICAgICAgICAgYXJjYWRlKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFyY2FkZUdh
bWUKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIGJvYXJkKQogICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPUJvYXJkR2FtZQogICAgICAgICAgICAgICAgICAgIDs7
CiAgICAgICAgICAgICAgICAgICAgZW11bGF0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICB0
eXBlPUVtdWxhdG9yCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBr
aWRzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUtpZHNHYW1lCiAgICAgICAgICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBwdXp6bGUpCiAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGU9TG9naWNHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAg
ICAgICByb2d1ZWxpa2UpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Um9sZVBsYXlpbmcK
ICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHJwZykKICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZT1Sb2xlUGxheWluZwogICAgICAgICAgICAgICAgICAgIDs7CiAg
ICAgICAgICAgICAgICAgICAgc2ltdWxhdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZT1TaW11bGF0aW9uCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBz
cG9ydHMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9U3BvcnRzR2FtZQogICAgICAgICAg
ICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3kpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9U3RyYXRlZ3lHYW1lCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAg
ICAgICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPQogICAgICAgICAg
ICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBlc2FjOwogICAgICAgICAgICAgICAgdHlwZT0i
R2FtZTske3R5cGV9IgogICAgICAgICAgICA7OwogICAgICAgICAgICBnbm9tZSkKICAgICAgICAg
ICAgICAgIHR5cGU9Ikdub21lO0dUSyIKICAgICAgICAgICAgOzsKICAgICAgICAgICAga2RlKQog
ICAgICAgICAgICAgICAgdHlwZT0iS0RFO1F0IgogICAgICAgICAgICA7OwogICAgICAgICAgICBt
YWlsKQogICAgICAgICAgICAgICAgdHlwZT0iTmV0d29yaztFbWFpbCIKICAgICAgICAgICAgOzsK
ICAgICAgICAgICAgbWVkaWEpCiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAg
ICAgICAgICAgICAgICAgICBnZngpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9R3JhcGhp
Y3MKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHJhZGlvKQogICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPVR1bmVyCiAgICAgICAgICAgICAgICAgICAgOzsKICAg
ICAgICAgICAgICAgICAgICBzb3VuZCkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1BdWRp
bwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgdHYpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9VFYKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAg
ICAgICAgICAgIHZpZGVvKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVZpZGVvCiAgICAg
ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICAqKQogICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPQogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICBlc2Fj
OwogICAgICAgICAgICAgICAgdHlwZT0iQXVkaW9WaWRlbzske3R5cGV9IgogICAgICAgICAgICA7
OwogICAgICAgICAgICBuZXQpCiAgICAgICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAg
ICAgICAgICAgICAgICAgICBkaWFsdXApCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9RGlh
bHVwCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBmdHApCiAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9RmlsZVRyYW5zZmVyCiAgICAgICAgICAgICAgICAgICAg
OzsKICAgICAgICAgICAgICAgICAgICBpbSkKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1J
bnN0YW50TWVzc2FnaW5nCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAg
ICBpcmMpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9SVJDQ2xpZW50CiAgICAgICAgICAg
ICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBtYWlsKQogICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlPUVtYWlsCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAg
ICBuZXdzKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPU5ld3MKICAgICAgICAgICAgICAg
ICAgICA7OwogICAgICAgICAgICAgICAgICAgIG5udHApCiAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGU9TmV3cwogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgcDJw
KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUZpbGVUcmFuc2ZlcgogICAgICAgICAgICAg
ICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZT0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAg
ICAgICAgICAgIHR5cGU9Ik5ldHdvcms7JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAg
ICAgc2NpKQogICAgICAgICAgICAgICAgY2FzZSAke2NhdG1pbn0gaW4gCiAgICAgICAgICAgICAg
ICAgICAgYXN0cm8qKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUFzdHJvbm9teQogICAg
ICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICAgICAgICAgYmlvKikKICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZT1CaW9sb2d5CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAg
ICAgICAgICAgICBjYWxjKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1DYWxjdWxhdG9y
CiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBjaGVtKikKICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZT1DaGVtaXN0cnkKICAgICAgICAgICAgICAgICAgICA7Owog
ICAgICAgICAgICAgICAgICAgIGVsZWMqKQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUVs
ZWN0cm9uaWNzCiAgICAgICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICBnZW8q
KQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPUdlb2xvZ3kKICAgICAgICAgICAgICAgICAg
ICA7OwogICAgICAgICAgICAgICAgICAgIG1hdGgqKQogICAgICAgICAgICAgICAgICAgICAgICB0
eXBlPU1hdGgKICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgICAgIHBoeXNp
Y3MpCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9UGh5c2ljcwogICAgICAgICAgICAgICAg
ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgdmlzdWFsKikKICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZT1EYXRhVmlzdWFsaXphdGlvbgogICAgICAgICAgICAgICAgICAgIDs7CiAgICAgICAg
ICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0KICAgICAgICAgICAg
ICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAgICAgICAgIHR5cGU9IlNj
aWVuY2U7JHt0eXBlfSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgc3lzKQogICAgICAgICAg
ICAgICAgdHlwZT0iU3lzdGVtIgogICAgICAgICAgICA7OwogICAgICAgICAgICB3d3cpCiAgICAg
ICAgICAgICAgICBjYXNlICR7Y2F0bWlufSBpbiAKICAgICAgICAgICAgICAgICAgICBjbGllbnQp
CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9V2ViQnJvd3NlcgogICAgICAgICAgICAgICAg
ICAgIDs7CiAgICAgICAgICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZT0KICAgICAgICAgICAgICAgICAgICA7OwogICAgICAgICAgICAgICAgZXNhYzsKICAgICAgICAg
ICAgICAgIHR5cGU9Ik5ldHdvcmsiCiAgICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAg
ICAgICAgICAgICB0eXBlPQogICAgICAgICAgICA7OwogICAgICAgIGVzYWM7CiAgICBmaTsKICAg
IGlmIFsgIiR7U0xPVH0iID09ICIwIiBdOyB0aGVuCiAgICAgICAgbG9jYWwgZGVza3RvcF9uYW1l
PSIke1BOfSI7CiAgICBlbHNlCiAgICAgICAgbG9jYWwgZGVza3RvcF9uYW1lPSIke1BOfS0ke1NM
T1R9IjsKICAgIGZpOwogICAgbG9jYWwgZGVza3RvcD0iJHtUfS8kKGVjaG8gJHtleGVjfSB8IHNl
ZCAnczpbWzpzcGFjZTpdLzpdOl86ZycpLSR7ZGVza3RvcF9uYW1lfS5kZXNrdG9wIjsKICAgIGNh
dCA+ICIke2Rlc2t0b3B9IiAgPDwtRU9GCltEZXNrdG9wIEVudHJ5XQpWZXJzaW9uPTEuMApOYW1l
PSR7bmFtZX0KVHlwZT1BcHBsaWNhdGlvbgpDb21tZW50PSR7REVTQ1JJUFRJT059CkV4ZWM9JHtl
eGVjfQpUcnlFeGVjPSR7ZXhlYyUlICp9Ckljb249JHtpY29ufQpDYXRlZ29yaWVzPSR7dHlwZX07
CkVPRgoKICAgIFtbIC1uICR7cGF0aH0gXV0gJiYgZWNobyAiUGF0aD0ke3BhdGh9IiA+PiAiJHtk
ZXNrdG9wfSI7CiAgICAoIGluc2ludG8gL3Vzci9zaGFyZS9hcHBsaWNhdGlvbnM7CiAgICBkb2lu
cyAiJHtkZXNrdG9wfSIgKQp9Cm1ha2Vfc2Vzc2lvbl9kZXNrdG9wICgpIAp7IAogICAgW1sgLXog
JDEgXV0gJiYgZWVycm9yICJtYWtlX3Nlc3Npb25fZGVza3RvcDogWW91IG11c3Qgc3BlY2lmeSB0
aGUgdGl0bGUiICYmIHJldHVybiAxOwogICAgW1sgLXogJDIgXV0gJiYgZWVycm9yICJtYWtlX3Nl
c3Npb25fZGVza3RvcDogWW91IG11c3Qgc3BlY2lmeSB0aGUgY29tbWFuZCIgJiYgcmV0dXJuIDE7
CiAgICBsb2NhbCB0aXRsZT0kMTsKICAgIGxvY2FsIGNvbW1hbmQ9JDI7CiAgICBsb2NhbCBkZXNr
dG9wPSR7VH0vJHt3bX0uZGVza3RvcDsKICAgIGNhdCA+ICIke2Rlc2t0b3B9IiAgPDwtRU9GCltE
ZXNrdG9wIEVudHJ5XQpOYW1lPSR7dGl0bGV9CkNvbW1lbnQ9VGhpcyBzZXNzaW9uIGxvZ3MgeW91
IGludG8gJHt0aXRsZX0KRXhlYz0ke2NvbW1hbmR9ClRyeUV4ZWM9JHtjb21tYW5kfQpUeXBlPUFw
cGxpY2F0aW9uCkVPRgoKICAgICggaW5zaW50byAvdXNyL3NoYXJlL3hzZXNzaW9uczsKICAgIGRv
aW5zICIke2Rlc2t0b3B9IiApCn0KbWFrZV93cmFwcGVyICgpIAp7IAogICAgbG9jYWwgd3JhcHBl
cj0kMSBiaW49JDIgY2hkaXI9JDMgbGliZGlyPSQ0IHBhdGg9JDU7CiAgICBsb2NhbCB0bXB3cmFw
cGVyPSQoZW1rdGVtcCk7CiAgICBjYXQgPiAiJHt0bXB3cmFwcGVyfSIgIDw8RU9GCiMhL2Jpbi9z
aApjZCAiJHtjaGRpcjotLn0iCmlmIFsgLW4gIiR7bGliZGlyfSIgXSA7IHRoZW4KCWlmIFsgIlwk
e0xEX0xJQlJBUllfUEFUSCtzZXR9IiA9ICJzZXQiIF0gOyB0aGVuCgkJZXhwb3J0IExEX0xJQlJB
UllfUEFUSD0iXCR7TERfTElCUkFSWV9QQVRIfToke2xpYmRpcn0iCgllbHNlCgkJZXhwb3J0IExE
X0xJQlJBUllfUEFUSD0iJHtsaWJkaXJ9IgoJZmkKZmkKZXhlYyAke2Jpbn0gIlwkQCIKRU9GCgog
ICAgY2htb2QgZ28rcnggIiR7dG1wd3JhcHBlcn0iOwogICAgaWYgW1sgLW4gJHtwYXRofSBdXTsg
dGhlbgogICAgICAgICggZXhlaW50byAiJHtwYXRofSI7CiAgICAgICAgbmV3ZXhlICIke3RtcHdy
YXBwZXJ9IiAiJHt3cmFwcGVyfSIgKSB8fCBkaWU7CiAgICBlbHNlCiAgICAgICAgbmV3YmluICIk
e3RtcHdyYXBwZXJ9IiAiJHt3cmFwcGVyfSIgfHwgZGllOwogICAgZmkKfQptdWx0aWxpYl9lbnYg
KCkgCnsgCiAgICBsb2NhbCBDVEFSR0VUPSR7MTotJHtDVEFSR0VUfX07CiAgICBjYXNlICR7Q1RB
UkdFVH0gaW4gCiAgICAgICAgeDg2XzY0KikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU194ODY9
JHtDRkxBR1NfeDg2LS1tMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfeDg2PSR7Q1RBUkdF
VC94ODZfNjQvaTY4Nn07CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX3g4Nj0ke0NIT1NUX3g4
Nn07CiAgICAgICAgICAgIGV4cG9ydCBDREVGSU5FX3g4Nj0iX19pMzg2X18iOwogICAgICAgICAg
ICBleHBvcnQgTElCRElSX3g4Nj0ibGliIjsKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19hbWQ2
ND0ke0NGTEFHU19hbWQ2NC0tbTY0fTsKICAgICAgICAgICAgZXhwb3J0IENIT1NUX2FtZDY0PSR7
Q1RBUkdFVH07CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX2FtZDY0PSR7Q0hPU1RfYW1kNjR9
OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9hbWQ2ND0iX194ODZfNjRfXyI7CiAgICAgICAg
ICAgIGV4cG9ydCBMSUJESVJfYW1kNjQ9ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJ
TElCX0FCSVM9ImFtZDY0IHg4NiI7CiAgICAgICAgICAgIGV4cG9ydCBERUZBVUxUX0FCST0iYW1k
NjQiCiAgICAgICAgOzsKICAgICAgICBtaXBzNjQqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdT
X28zMj0ke0NGTEFHU19vMzItLW1hYmk9MzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfbzMy
PSR7Q1RBUkdFVC9taXBzNjQvbWlwc307CiAgICAgICAgICAgIGV4cG9ydCBDVEFSR0VUX28zMj0k
e0NIT1NUX28zMn07CiAgICAgICAgICAgIGV4cG9ydCBDREVGSU5FX28zMj0iX01JUFNfU0lNID09
IF9BQklPMzIiOwogICAgICAgICAgICBleHBvcnQgTElCRElSX28zMj0ibGliIjsKICAgICAgICAg
ICAgZXhwb3J0IENGTEFHU19uMzI9JHtDRkxBR1NfbjMyLS1tYWJpPW4zMn07CiAgICAgICAgICAg
IGV4cG9ydCBDSE9TVF9uMzI9JHtDVEFSR0VUfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRf
bjMyPSR7Q0hPU1RfbjMyfTsKICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfbjMyPSJfTUlQU19T
SU0gPT0gX0FCSU4zMiI7CiAgICAgICAgICAgIGV4cG9ydCBMSUJESVJfbjMyPSJsaWIzMiI7CiAg
ICAgICAgICAgIGV4cG9ydCBDRkxBR1NfbjY0PSR7Q0ZMQUdTX242NC0tbWFiaT02NH07CiAgICAg
ICAgICAgIGV4cG9ydCBDSE9TVF9uNjQ9JHtDVEFSR0VUfTsKICAgICAgICAgICAgZXhwb3J0IENU
QVJHRVRfbjY0PSR7Q0hPU1RfbjY0fTsKICAgICAgICAgICAgZXhwb3J0IENERUZJTkVfbjY0PSJf
TUlQU19TSU0gPT0gX0FCSTY0IjsKICAgICAgICAgICAgZXhwb3J0IExJQkRJUl9uNjQ9ImxpYjY0
IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9Im42NCBuMzIgbzMyIjsKICAgICAg
ICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJuMzIiCiAgICAgICAgOzsKICAgICAgICBwb3dlcnBj
NjQqKQogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3BwYz0ke0NGTEFHU19wcGMtLW0zMn07CiAg
ICAgICAgICAgIGV4cG9ydCBDSE9TVF9wcGM9JHtDVEFSR0VUL3Bvd2VycGM2NC9wb3dlcnBjfTsK
ICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfcHBjPSR7Q0hPU1RfcHBjfTsKICAgICAgICAgICAg
ZXhwb3J0IENERUZJTkVfcHBjPSIhX19wb3dlcnBjNjRfXyI7CiAgICAgICAgICAgIGV4cG9ydCBM
SUJESVJfcHBjPSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdTX3BwYzY0PSR7Q0ZMQUdT
X3BwYzY0LS1tNjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfcHBjNjQ9JHtDVEFSR0VUfTsK
ICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfcHBjNjQ9JHtDSE9TVF9wcGM2NH07CiAgICAgICAg
ICAgIGV4cG9ydCBDREVGSU5FX3BwYzY0PSJfX3Bvd2VycGM2NF9fIjsKICAgICAgICAgICAgZXhw
b3J0IExJQkRJUl9wcGM2ND0ibGliNjQiOwogICAgICAgICAgICBleHBvcnQgTVVMVElMSUJfQUJJ
Uz0icHBjNjQgcHBjIjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJPSJwcGM2NCIKICAg
ICAgICA7OwogICAgICAgIHMzOTB4KikKICAgICAgICAgICAgZXhwb3J0IENGTEFHU19zMzkwPSR7
Q0ZMQUdTX3MzOTAtLW0zMX07CiAgICAgICAgICAgIGV4cG9ydCBDSE9TVF9zMzkwPSR7Q1RBUkdF
VC9zMzkweC9zMzkwfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfczM5MD0ke0NIT1NUX3Mz
OTB9OwogICAgICAgICAgICBleHBvcnQgQ0RFRklORV9zMzkwPSIhX19zMzkweF9fIjsKICAgICAg
ICAgICAgZXhwb3J0IExJQkRJUl9zMzkwPSJsaWIiOwogICAgICAgICAgICBleHBvcnQgQ0ZMQUdT
X3MzOTB4PSR7Q0ZMQUdTX3MzOTB4LS1tNjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1RfczM5
MHg9JHtDVEFSR0VUfTsKICAgICAgICAgICAgZXhwb3J0IENUQVJHRVRfczM5MHg9JHtDSE9TVF9z
MzkweH07CiAgICAgICAgICAgIGV4cG9ydCBDREVGSU5FX3MzOTB4PSJfX3MzOTB4X18iOwogICAg
ICAgICAgICBleHBvcnQgTElCRElSX3MzOTB4PSJsaWI2NCI7CiAgICAgICAgICAgIGV4cG9ydCBN
VUxUSUxJQl9BQklTPSJzMzkweCBzMzkwIjsKICAgICAgICAgICAgZXhwb3J0IERFRkFVTFRfQUJJ
PSJzMzkweCIKICAgICAgICA7OwogICAgICAgIHNwYXJjKikKICAgICAgICAgICAgZXhwb3J0IENG
TEFHU19zcGFyYzMyPSR7Q0ZMQUdTX3NwYXJjMzJ9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rf
c3BhcmMzMj0ke0NUQVJHRVQvc3BhcmM2NC9zcGFyY307CiAgICAgICAgICAgIGV4cG9ydCBDVEFS
R0VUX3NwYXJjMzI9JHtDSE9TVF9zcGFyYzMyfTsKICAgICAgICAgICAgZXhwb3J0IENERUZJTkVf
c3BhcmMzMj0iIV9fYXJjaDY0X18iOwogICAgICAgICAgICBleHBvcnQgTElCRElSX3NwYXJjMzI9
ImxpYiI7CiAgICAgICAgICAgIGV4cG9ydCBDRkxBR1Nfc3BhcmM2ND0ke0NGTEFHU19zcGFyYzY0
LS1tNjR9OwogICAgICAgICAgICBleHBvcnQgQ0hPU1Rfc3BhcmM2ND0ke0NUQVJHRVR9OwogICAg
ICAgICAgICBleHBvcnQgQ1RBUkdFVF9zcGFyYzY0PSR7Q0hPU1Rfc3BhcmM2NH07CiAgICAgICAg
ICAgIGV4cG9ydCBDREVGSU5FX3NwYXJjNjQ9Il9fYXJjaDY0X18iOwogICAgICAgICAgICBleHBv
cnQgTElCRElSX3NwYXJjNjQ9ImxpYjY0IjsKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FC
SVM9IiR7TVVMVElMSUJfQUJJUy1zcGFyYzY0IHNwYXJjMzJ9IjsKICAgICAgICAgICAgZXhwb3J0
IERFRkFVTFRfQUJJPSIke0RFRkFVTFRfQUJJLXNwYXJjNjR9IgogICAgICAgIDs7CiAgICAgICAg
KikKICAgICAgICAgICAgZXhwb3J0IE1VTFRJTElCX0FCSVM9ImRlZmF1bHQiOwogICAgICAgICAg
ICBleHBvcnQgREVGQVVMVF9BQkk9ImRlZmF1bHQiCiAgICAgICAgOzsKICAgIGVzYWMKfQptdWx0
aWxpYl90b29sY2hhaW5fc2V0dXAgKCkgCnsgCiAgICBleHBvcnQgQUJJPSQxOwogICAgaWYgaGFz
X3ZlcnNpb24gYXBwLWFkbWluL2VzZWxlY3QtY29tcGlsZXI7IHRoZW4KICAgICAgICBleHBvcnQg
TEQ9ImxkICQoZ2V0X2FiaV9MREZMQUdTICQxKSI7CiAgICAgICAgZXhwb3J0IEFTPSJhcyAkKGdl
dF9hYmlfQVNGTEFHUyAkMSkiOwogICAgICAgIGV4cG9ydCBDSE9TVD0kKGdldF9hYmlfQ0hPU1Qg
JDEpOwogICAgICAgIGV4cG9ydCBDQlVJTEQ9JChnZXRfYWJpX0NIT1NUICQxKTsKICAgIGVsc2UK
ICAgICAgICB0Yy1leHBvcnQgQ0M7CiAgICBmaQp9Cm5ld2ljb24gKCkgCnsgCiAgICAoIGluc2lu
dG8gL3Vzci9zaGFyZS9waXhtYXBzOwogICAgbmV3aW5zICIkQCIgKQp9Cm5ld21lbnUgKCkgCnsg
CiAgICAoIGluc2ludG8gL3Vzci9zaGFyZS9hcHBsaWNhdGlvbnM7CiAgICBuZXdpbnMgIiRAIiAp
Cn0KbnVtYmVyX2FiaXMgKCkgCnsgCiAgICBnZXRfaW5zdGFsbF9hYmlzIHwgd2MgLXcKfQpwa2df
Y29uZmlnICgpIAp7IAogICAgZWNobyAiQ3JlYXRpbmcgbXl0aHR2IE15U1FMIHVzZXIgYW5kIG15
dGhjb252ZXJnIGRhdGFiYXNlIGlmIGl0IGRvZXMgbm90IjsKICAgIGVjaG8gImFscmVhZHkgZXhp
c3QuIFlvdSB3aWxsIGJlIHByb21wdGVkIGZvciB5b3VyIE15U1FMIHJvb3QgcGFzc3dvcmQuIjsK
ICAgICIke1JPT1R9Ii91c3IvYmluL215c3FsIC11IHJvb3QgLXAgPCAiJHtST09UfSIvdXNyL3No
YXJlL215dGh0di9kYXRhYmFzZS9tYy5zcWwKfQpwa2dfaW5mbyAoKSAKeyAKICAgICIke1JPT1R9
Ii91c3IvYmluL215dGhmcm9udGVuZCAtLXZlcnNpb24KfQpwa2dfbm9mZXRjaCAoKSAKeyAKICAg
IFsgLXogIiR7U1JDX1VSSX0iIF0gJiYgcmV0dXJuOwogICAgZWNobyAiISEhIFRoZSBmb2xsb3dp
bmcgYXJlIGxpc3RlZCBpbiBTUkNfVVJJIGZvciAke1BOfToiOwogICAgbG9jYWwgeDsKICAgIGZv
ciB4IGluICQoZWNobyAke1NSQ19VUkl9KTsKICAgIGRvCiAgICAgICAgZWNobyAiISEhICAgJHt4
fSI7CiAgICBkb25lCn0KcGtnX3Bvc3RpbnN0ICgpIAp7IAogICAgcHl0aG9uX3ZlcnNpb247CiAg
ICBweXRob25fbW9kX29wdGltaXplIC91c3IvJChnZXRfbGliZGlyKS9weXRob24ke1BZVkVSfS9z
aXRlLXBhY2thZ2VzL015dGhUVjsKICAgIGVjaG87CiAgICBlbG9nICJXYW50IG15dGhmcm9udGVu
ZCB0byBzdGFydCBhdXRvbWF0aWNhbGx5PyI7CiAgICBlbG9nICJTZXQgVVNFPWF1dG9zdGFydC4g
RGV0YWlscyBjYW4gYmUgZm91bmQgYXQ6IjsKICAgIGVsb2cgImh0dHA6Ly9kZXYuZ2VudG9vLm9y
Zy9+Y2FyZG9lL215dGh0di9hdXRvc3RhcnQuaHRtbCI7CiAgICBlbG9nOwogICAgZWxvZyAiVG8g
YWx3YXlzIGhhdmUgTXl0aEJhY2tlbmQgcnVubmluZyBhbmQgYXZhaWxhYmxlIHJ1biB0aGUgZm9s
bG93aW5nOiI7CiAgICBlbG9nICJyYy11cGRhdGUgYWRkIG15dGhiYWNrZW5kIGRlZmF1bHQiOwog
ICAgZWxvZzsKICAgIGV3YXJuICJZb3VyIHJlY29yZGluZ3MgZm9sZGVyIG11c3QgYmUgb3duZWQg
YnkgdGhlIHVzZXIgJ215dGh0dicgbm93IjsKICAgIGV3YXJuICJjaG93biAtUiBteXRodHYgL3Bh
dGgvdG8vc3RvcmUiOwogICAgaWYgdXNlIHh2bWMgJiYgW1sgISAtcyAiJHtST09UfS9ldGMvWDEx
L1h2TUNDb25maWciIF1dOyB0aGVuCiAgICAgICAgZXdhcm47CiAgICAgICAgZXdhcm4gIk5vIFh2
TUMgaW1wbGVtZW50YXRpb24gaGFzIGJlZW4gc2VsZWN0ZWQgeWV0IjsKICAgICAgICBld2FybiAi
VXNlICdlc2VsZWN0IHh2bWMgbGlzdCcgZm9yIGEgbGlzdCBvZiBhdmFpbGFibGUgY2hvaWNlcyI7
CiAgICAgICAgZXdhcm4gIlRoZW4gdXNlICdlc2VsZWN0IHh2bWMgc2V0IDxjaG9pY2U+JyB0byBj
aG9vc2UiOwogICAgICAgIGV3YXJuICInZXNlbGVjdCB4dm1jIHNldCBudmlkaWEnIGZvciBleGFt
cGxlIjsKICAgIGZpOwogICAgaWYgdXNlIGF1dG9zdGFydDsgdGhlbgogICAgICAgIGVsb2c7CiAg
ICAgICAgZWxvZyAiUGxlYXNlIGFkZCB0aGUgZm9sbG93aW5nIHRvIHlvdXIgL2V0Yy9pbml0dGFi
IGZpbGUgYXQgdGhlIGVuZCBvZiI7CiAgICAgICAgZWxvZyAidGhlIFRFUk1JTkFMUyBzZWN0aW9u
IjsKICAgICAgICBlbG9nICJjODoyMzQ1OnJlc3Bhd246L3NiaW4vbWluZ2V0dHkgLS1hdXRvbG9n
aW4gbXl0aHR2IHR0eTgiOwogICAgZmkKfQpwa2dfcG9zdHJtICgpIAp7IAogICAgcHl0aG9uX21v
ZF9jbGVhbnVwIC91c3IvJChnZXRfbGliZGlyKS9weXRob24qL3NpdGUtcGFja2FnZXMvTXl0aFRW
Cn0KcGtnX3ByZWluc3QgKCkgCnsgCiAgICBleHBvcnQgQ09ORklHX1BST1RFQ1Q9IiR7Q09ORklH
X1BST1RFQ1R9ICR7Uk9PVH0vaG9tZS9teXRodHYvIgp9CnBrZ19zZXR1cCAoKSAKeyAKICAgIGNv
bmZ1dGlsc19yZXF1aXJlX2J1aWx0X3dpdGhfYWxsID14MTEtbGlicy9xdC0zKiBteXNxbCBvcGVu
Z2w7CiAgICBlbG9nICJUaGlzIGVidWlsZCBub3cgdXNlcyBhIGhlYXZpbHkgc3RyaXBwZWQgZG93
biB2ZXJzaW9uIG9mIHlvdXIgQ0ZMQUdTIjsKICAgIGlmIHVzZSB4dm1jICYmIHVzZSB2aWRlb19j
YXJkc19udmlkaWE7IHRoZW4KICAgICAgICBlbG9nOwogICAgICAgIGVsb2cgIkZvciBOVklESUEg
YmFzZWQgY2FyZHMsIHRoZSBYdk1DIHJlbmRlcmVyIG9ubHkgd29ya3Mgb24iOwogICAgICAgIGVs
b2cgInRoZSBOVklESUEgNCwgNSwgNiAmIDcgc2VyaWVzIGNhcmRzLiI7CiAgICBmaTsKICAgIGVu
ZXd1c2VyIG15dGh0diAtMSAvYmluL2Jhc2ggL2hvbWUvbXl0aHR2ICR7TVlUSFRWX0dST1VQU307
CiAgICB1c2VybW9kIC1hIC1HICR7TVlUSFRWX0dST1VQU30gbXl0aHR2Cn0KcHJlcF9tbF9pbmNs
dWRlcyAoKSAKeyAKICAgIGlmIFtbICQobnVtYmVyX2FiaXMpIC1ndCAxIF1dOyB0aGVuCiAgICAg
ICAgbG9jYWwgZGlyOwogICAgICAgIGxvY2FsIGRpcnM7CiAgICAgICAgbG9jYWwgYmFzZTsKICAg
ICAgICBpZiBbWyAkIyAtZXEgMCBdXTsgdGhlbgogICAgICAgICAgICBkaXJzPS91c3IvaW5jbHVk
ZTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGRpcnM9IiRAIjsKICAgICAgICBmaTsKICAgICAg
ICBmb3IgZGlyIGluICR7ZGlyc307CiAgICAgICAgZG8KICAgICAgICAgICAgYmFzZT0ke1R9L2dl
bnRvby1tdWx0aWxpYi8ke2Rpcn0vZ2VudG9vLW11bHRpbGliOwogICAgICAgICAgICBta2RpciAt
cCAiJHtiYXNlfSI7CiAgICAgICAgICAgIFtbIC1kICR7YmFzZX0vJHtBQkl9IF1dICYmIHJtIC1y
ZiAiJHtiYXNlfS8ke0FCSX0iOwogICAgICAgICAgICBtdiAiJHtEfS8ke2Rpcn0iICIke2Jhc2V9
LyR7QUJJfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBpZiBpc19maW5hbF9hYmk7IHRoZW4KICAg
ICAgICAgICAgYmFzZT0ke1R9L2dlbnRvby1tdWx0aWxpYjsKICAgICAgICAgICAgcHVzaGQgIiR7
YmFzZX0iOwogICAgICAgICAgICBmaW5kIC4gfCB0YXIgLWMgLVQgLSAtZiAtIHwgdGFyIC14IC0t
bm8tc2FtZS1vd25lciAtZiAtIC1DICR7RH07CiAgICAgICAgICAgIHBvcGQ7CiAgICAgICAgICAg
IHNldCAtLTsKICAgICAgICAgICAgZm9yIGRpciBpbiAke2RpcnN9OwogICAgICAgICAgICBkbwog
ICAgICAgICAgICAgICAgc2V0IC0tICIkQCIgIiR7ZGlyfSI7CiAgICAgICAgICAgICAgICBsb2Nh
bCBhYmk7CiAgICAgICAgICAgICAgICBmb3IgYWJpIGluICQoZ2V0X2luc3RhbGxfYWJpcyk7CiAg
ICAgICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgICAgIHNldCAtLSAiJEAiICIkKGdldF9h
YmlfQ0RFRklORSAke2FiaX0pOiR7ZGlyfS9nZW50b28tbXVsdGlsaWIvJHthYml9IjsKICAgICAg
ICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgICAgICBjcmVhdGVfbWxfaW5jbHVkZXMgIiRAIjsK
ICAgICAgICAgICAgZG9uZTsKICAgICAgICBmaTsKICAgIGZpCn0KcHJlc2VydmVfb2xkX2xpYiAo
KSAKeyAKICAgIGlmIFtbICR7RUJVSUxEX1BIQVNFfSAhPSAicHJlaW5zdCIgXV07IHRoZW4KICAg
ICAgICBlZXJyb3IgInByZXNlcnZlX29sZF9saWIoKSBtdXN0IGJlIGNhbGxlZCBmcm9tIHBrZ19w
cmVpbnN0KCkgb25seSI7CiAgICAgICAgZGllICJJbnZhbGlkIHByZXNlcnZlX29sZF9saWIoKSB1
c2FnZSI7CiAgICBmaTsKICAgIFtbIC16ICQxIF1dICYmIGRpZSAiVXNhZ2U6IHByZXNlcnZlX29s
ZF9saWIgPGxpYnJhcnkgdG8gcHJlc2VydmU+IFttb3JlIGxpYnJhcmllcyB0byBwcmVzZXJ2ZV0i
OwogICAgaGFzIHByZXNlcnZlLWxpYnMgJHtGRUFUVVJFU30gJiYgcmV0dXJuIDA7CiAgICBsb2Nh
bCBsaWIgZGlyOwogICAgZm9yIGxpYiBpbiAiJEAiOwogICAgZG8KICAgICAgICBbWyAtZSAke1JP
T1R9LyR7bGlifSBdXSB8fCBjb250aW51ZTsKICAgICAgICBkaXI9JHtsaWIlLyp9OwogICAgICAg
IGRvZGlyICR7ZGlyfSB8fCBkaWUgImRvZGlyICR7ZGlyfSBmYWlsZWQiOwogICAgICAgIGNwICIk
e1JPT1R9Ii8ke2xpYn0gIiR7RH0iLyR7bGlifSB8fCBkaWUgImNwICR7bGlifSBmYWlsZWQiOwog
ICAgICAgIHRvdWNoICIke0R9Ii8ke2xpYn07CiAgICBkb25lCn0KcHJlc2VydmVfb2xkX2xpYl9u
b3RpZnkgKCkgCnsgCiAgICBpZiBbWyAke0VCVUlMRF9QSEFTRX0gIT0gInBvc3RpbnN0IiBdXTsg
dGhlbgogICAgICAgIGVlcnJvciAicHJlc2VydmVfb2xkX2xpYl9ub3RpZnkoKSBtdXN0IGJlIGNh
bGxlZCBmcm9tIHBrZ19wb3N0aW5zdCgpIG9ubHkiOwogICAgICAgIGRpZSAiSW52YWxpZCBwcmVz
ZXJ2ZV9vbGRfbGliX25vdGlmeSgpIHVzYWdlIjsKICAgIGZpOwogICAgaGFzIHByZXNlcnZlLWxp
YnMgJHtGRUFUVVJFU30gJiYgcmV0dXJuIDA7CiAgICBsb2NhbCBsaWIgbm90aWNlPTA7CiAgICBm
b3IgbGliIGluICIkQCI7CiAgICBkbwogICAgICAgIFtbIC1lICR7Uk9PVH0vJHtsaWJ9IF1dIHx8
IGNvbnRpbnVlOwogICAgICAgIGlmIFtbICR7bm90aWNlfSAtZXEgMCBdXTsgdGhlbgogICAgICAg
ICAgICBub3RpY2U9MTsKICAgICAgICAgICAgZXdhcm4gIk9sZCB2ZXJzaW9ucyBvZiBpbnN0YWxs
ZWQgbGlicmFyaWVzIHdlcmUgZGV0ZWN0ZWQgb24geW91ciBzeXN0ZW0uIjsKICAgICAgICAgICAg
ZXdhcm4gIkluIG9yZGVyIHRvIGF2b2lkIGJyZWFraW5nIHBhY2thZ2VzIHRoYXQgZGVwZW5kIG9u
IHRoZXNlIG9sZCBsaWJzLCI7CiAgICAgICAgICAgIGV3YXJuICJ0aGUgbGlicmFyaWVzIGFyZSBu
b3QgYmVpbmcgcmVtb3ZlZC4gIFlvdSBuZWVkIHRvIHJ1biByZXZkZXAtcmVidWlsZCI7CiAgICAg
ICAgICAgIGV3YXJuICJpbiBvcmRlciB0byByZW1vdmUgdGhlc2Ugb2xkIGRlcGVuZGVuY2llcy4g
IElmIHlvdSBkbyBub3QgaGF2ZSB0aGlzIjsKICAgICAgICAgICAgZXdhcm4gImhlbHBlciBwcm9n
cmFtLCBzaW1wbHkgZW1lcmdlIHRoZSAnZ2VudG9vbGtpdCcgcGFja2FnZS4iOwogICAgICAgICAg
ICBld2FybjsKICAgICAgICBmaTsKICAgICAgICBld2FybiAiICAjIHJldmRlcC1yZWJ1aWxkIC0t
bGlicmFyeSAke2xpYiMjKi99IjsKICAgIGRvbmU7CiAgICBpZiBbWyAke25vdGljZX0gLWVxIDEg
XV07IHRoZW4KICAgICAgICBld2FybjsKICAgICAgICBld2FybiAiT25jZSB5b3UndmUgZmluaXNo
ZWQgcnVubmluZyByZXZkZXAtcmVidWlsZCwgaXQgc2hvdWxkIGJlIHNhZmUgdG8iOwogICAgICAg
IGV3YXJuICJkZWxldGUgdGhlIG9sZCBsaWJyYXJpZXMuICBIZXJlIGlzIGEgY29weSAmIHBhc3Rl
IGZvciB0aGUgbGF6eToiOwogICAgICAgIGZvciBsaWIgaW4gIiRAIjsKICAgICAgICBkbwogICAg
ICAgICAgICBld2FybiAiICAjIHJtICcke2xpYn0nIjsKICAgICAgICBkb25lOwogICAgZmkKfQpw
eXRob25fZGlzYWJsZV9weWMgKCkgCnsgCiAgICBleHBvcnQgUFlUSE9ORE9OVFdSSVRFQllURUNP
REU9MTsKICAgIGV4cG9ydCBQWVRIT05fRE9OVENPTVBJTEU9MQp9CnB5dGhvbl9lbmFibGVfcHlj
ICgpIAp7IAogICAgdW5zZXQgUFlUSE9ORE9OVFdSSVRFQllURUNPREU7CiAgICB1bnNldCBQWVRI
T05fRE9OVENPTVBJTEUKfQpweXRob25fZ2V0X2xpYmRpciAoKSAKeyAKICAgIHB5dGhvbl92ZXJz
aW9uOwogICAgZWNobyAiL3Vzci8kKGdldF9saWJkaXIpL3B5dGhvbiR7UFlWRVJ9Igp9CnB5dGhv
bl9nZXRfc2l0ZWRpciAoKSAKeyAKICAgIGVjaG8gIiQocHl0aG9uX2dldF9saWJkaXIpL3NpdGUt
cGFja2FnZXMiCn0KcHl0aG9uX21ha2VzeW0gKCkgCnsgCiAgICBhbHRlcm5hdGl2ZXNfYXV0b19t
YWtlc3ltICIvdXNyL2Jpbi9weXRob24iICJweXRob25bMC05XS5bMC05XSI7CiAgICBhbHRlcm5h
dGl2ZXNfYXV0b19tYWtlc3ltICIvdXNyL2Jpbi9weXRob24yIiAicHl0aG9uMi5bMC05XSIKfQpw
eXRob25fbW9kX2NsZWFudXAgKCkgCnsgCiAgICBsb2NhbCBTRUFSQ0hfUEFUSD0oKSBteXJvb3Qg
c3JjX3B5OwogICAgW1sgJHtFQlVJTERfUEhBU0V9ICE9IHBvc3RybSBdXSAmJiBkaWUgIiR7RlVO
Q05BTUV9IHNob3VsZCBvbmx5IGJlIHJ1biBpbiBwa2dfcG9zdHJtKCkiOwogICAgbXlyb290PSIk
e1JPT1QlL30iOwogICAgaWYgKCgkIykpOyB0aGVuCiAgICAgICAgU0VBUkNIX1BBVEg9KCIke0Aj
L30iKTsKICAgICAgICBTRUFSQ0hfUEFUSD0oIiR7U0VBUkNIX1BBVEhbQF0vIy8kbXlyb290L30i
KTsKICAgIGVsc2UKICAgICAgICBTRUFSQ0hfUEFUSD0oIiR7bXlyb290fSIvdXNyL2xpYiovcHl0
aG9uKi9zaXRlLXBhY2thZ2VzKTsKICAgIGZpOwogICAgZm9yIHBhdGggaW4gIiR7U0VBUkNIX1BB
VEhbQF19IjsKICAgIGRvCiAgICAgICAgZWluZm8gIkNsZWFuaW5nIG9ycGhhbmVkIFB5dGhvbiBi
eXRlY29kZSBmcm9tICR7cGF0aH0gLi4iOwogICAgICAgIGZpbmQgIiR7cGF0aH0iIC1uYW1lICcq
LnB5W2NvXScgLXByaW50MCB8IHdoaWxlIHJlYWQgLXJkICcnOyBkbwogICAgICAgICAgICBzcmNf
cHk9IiR7UkVQTFklW2NvXX0iOwogICAgICAgICAgICBbWyAtZiAiJHtzcmNfcHl9IiBdXSAmJiBj
b250aW51ZTsKICAgICAgICAgICAgZWluZm8gIlB1cmdpbmcgJHtzcmNfcHl9W2NvXSI7CiAgICAg
ICAgICAgIHJtIC1mICIke3NyY19weX0iW2NvXTsKICAgICAgICBkb25lOwogICAgICAgIGZpbmQg
IiR7cGF0aH0iIC10eXBlIGQgfCBzb3J0IC1yIHwgd2hpbGUgcmVhZCAtciBkaXI7IGRvCiAgICAg
ICAgICAgIHJtZGlyICIke2Rpcn0iIDI+IC9kZXYvbnVsbDsKICAgICAgICBkb25lOwogICAgZG9u
ZQp9CnB5dGhvbl9tb2RfY29tcGlsZSAoKSAKeyAKICAgIGxvY2FsIGYgbXlyb290IG15ZmlsZXM9
KCk7CiAgICBbWyAke0VCVUlMRF9QSEFTRX0gIT0gcG9zdGluc3QgXV0gJiYgZGllICIke0ZVTkNO
QU1FfSBzaG91bGQgb25seSBiZSBydW4gaW4gcGtnX3Bvc3RpbnN0KCkiOwogICAgaWYgW1sgLW4g
IiR7UFlUSE9OX09WRVJSSURFX1BZVkVSfSIgXV07IHRoZW4KICAgICAgICBQWVZFUj0ke1BZVEhP
Tl9PVkVSUklERV9QWVZFUn07CiAgICBlbHNlCiAgICAgICAgcHl0aG9uX3ZlcnNpb247CiAgICBm
aTsKICAgIG15cm9vdD0iJHtST09UJS99IjsKICAgIGZvciBmIGluICIkQCI7CiAgICBkbwogICAg
ICAgIFtbIC1mICIke215cm9vdH0vJHtmfSIgXV0gJiYgbXlmaWxlcys9KCIke215cm9vdH0vJHtm
fSIpOwogICAgZG9uZTsKICAgIGlmICgoJHsjbXlmaWxlc1tAXX0pKTsgdGhlbgogICAgICAgIHB5
dGhvbiR7UFlWRVJ9ICR7bXlyb290fS91c3IvJChnZXRfbGliZGlyKS9weXRob24ke1BZVkVSfS9w
eV9jb21waWxlLnB5ICIke215ZmlsZXNbQF19IjsKICAgICAgICBweXRob24ke1BZVkVSfSAtTyAk
e215cm9vdH0vdXNyLyQoZ2V0X2xpYmRpcikvcHl0aG9uJHtQWVZFUn0vcHlfY29tcGlsZS5weSAi
JHtteWZpbGVzW0BdfSI7CiAgICBlbHNlCiAgICAgICAgZXdhcm4gIk5vIGZpbGVzIHRvIGNvbXBp
bGUhIjsKICAgIGZpCn0KcHl0aG9uX21vZF9leGlzdHMgKCkgCnsgCiAgICBbWyAtbiAiJDEiIF1d
IHx8IGRpZSAiJHtGVU5DTkFNRX0gcmVxdWlyZXMgYW4gYXJndW1lbnQhIjsKICAgIHB5dGhvbiAt
YyAiaW1wb3J0ICQxIiA+IC9kZXYvbnVsbCAyPiYxCn0KcHl0aG9uX21vZF9vcHRpbWl6ZSAoKSAK
eyAKICAgIGxvY2FsIG15cm9vdCBteWRpcnM9KCkgbXlmaWxlcz0oKSBteW9wdHM9KCk7CiAgICBb
WyAke0VCVUlMRF9QSEFTRX0gIT0gcG9zdGluc3QgXV0gJiYgZGllICIke0ZVTkNOQU1FfSBzaG91
bGQgb25seSBiZSBydW4gaW4gcGtnX3Bvc3RpbnN0KCkiOwogICAgbXlyb290PSIke1JPT1QlL30i
OwogICAgd2hpbGUgKCgkIykpOyBkbwogICAgICAgIGNhc2UgJDEgaW4gCiAgICAgICAgICAgIC1s
IHwgLWYgfCAtcSkKICAgICAgICAgICAgICAgIG15b3B0cys9KCIkMSIpCiAgICAgICAgICAgIDs7
CiAgICAgICAgICAgIC1kIHwgLXgpCiAgICAgICAgICAgICAgICBteW9wdHMrPSgiJDEiICIkMiIp
OwogICAgICAgICAgICAgICAgc2hpZnQKICAgICAgICAgICAgOzsKICAgICAgICAgICAgLSopCiAg
ICAgICAgICAgICAgICBld2FybiAiJHtGVU5DTkFNRX06IElnbm9yaW5nIGNvbXBpbGUgb3B0aW9u
ICQxIgogICAgICAgICAgICA7OwogICAgICAgICAgICAqKQogICAgICAgICAgICAgICAgaWYgW1sg
LWQgIiR7bXlyb290fSIvJDEgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBteWRpcnMrPSgi
JHtteXJvb3R9LyQxIik7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
aWYgW1sgLWYgIiR7bXlyb290fSIvJDEgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAg
bXlmaWxlcys9KCIkMSIpOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgW1sgLWUgIiR7bXlyb290fS8kMSIgXV07IHRoZW4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV3YXJuICIke215cm9vdH0vJDEgaXMgbm90IGEgZmlsZSBvciBkaXJlY3Rv
cnkhIjsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXdhcm4gIiR7bXlyb290fS8kMSBkb2Vzbid0IGV4aXN0ISI7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICAgICAgZmkK
ICAgICAgICAgICAgOzsKICAgICAgICBlc2FjOwogICAgICAgIHNoaWZ0OwogICAgZG9uZTsKICAg
IGlmIFsgLW4gIiR7UFlUSE9OX09WRVJSSURFX1BZVkVSfSIgXTsgdGhlbgogICAgICAgIFBZVkVS
PSR7UFlUSE9OX09WRVJSSURFX1BZVkVSfTsKICAgIGVsc2UKICAgICAgICBweXRob25fdmVyc2lv
bjsKICAgIGZpOwogICAgbXlvcHRzKz0oLXEpOwogICAgZWJlZ2luICJCeXRlIGNvbXBpbGluZyBw
eXRob24gbW9kdWxlcyBmb3IgcHl0aG9uLSR7UFlWRVJ9IC4uIjsKICAgIGlmICgoJHsjbXlkaXJz
W0BdfSkpOyB0aGVuCiAgICAgICAgcHl0aG9uJHtQWVZFUn0gIiR7bXlyb290fSIvdXNyLyQoZ2V0
X2xpYmRpcikvcHl0aG9uJHtQWVZFUn0vY29tcGlsZWFsbC5weSAiJHtteW9wdHNbQF19IiAiJHtt
eWRpcnNbQF19IjsKICAgICAgICBweXRob24ke1BZVkVSfSAtTyAiJHtteXJvb3R9Ii91c3IvJChn
ZXRfbGliZGlyKS9weXRob24ke1BZVkVSfS9jb21waWxlYWxsLnB5ICIke215b3B0c1tAXX0iICIk
e215ZGlyc1tAXX0iOwogICAgZmk7CiAgICBpZiAoKCR7I215ZmlsZXNbQF19KSk7IHRoZW4KICAg
ICAgICBweXRob25fbW9kX2NvbXBpbGUgIiR7bXlmaWxlc1tAXX0iOwogICAgZmk7CiAgICBlZW5k
ICQ/Cn0KcHl0aG9uX25lZWRfcmVidWlsZCAoKSAKeyAKICAgIHB5dGhvbl92ZXJzaW9uOwogICAg
ZXhwb3J0IFBZVEhPTl9ORUVEX1JFQlVJTEQ9JHtQWVZFUn0KfQpweXRob25fdGtpbnRlcl9leGlz
dHMgKCkgCnsgCiAgICBpZiAhIHB5dGhvbiAtYyAiaW1wb3J0IFRraW50ZXIiID4gL2Rldi9udWxs
IDI+JjE7IHRoZW4KICAgICAgICBlZXJyb3IgIllvdSBuZWVkIHRvIHJlY29tcGlsZSBweXRob24g
d2l0aCBUa2ludGVyIHN1cHBvcnQuIjsKICAgICAgICBlZXJyb3IgIlRyeSBhZGRpbmc6ICdkZXYt
bGFuZy9weXRob24gdGsnIjsKICAgICAgICBlZXJyb3IgImluIHRvIC9ldGMvcG9ydGFnZS9wYWNr
YWdlLnVzZSI7CiAgICAgICAgZWNobzsKICAgICAgICBkaWUgIm1pc3NpbmcgdGtpbnRlciBzdXBw
b3J0IHdpdGggaW5zdGFsbGVkIHB5dGhvbiI7CiAgICBmaQp9CnB5dGhvbl92ZXJzaW9uICgpIAp7
IAogICAgW1sgLW4gIiR7UFlWRVJ9IiBdXSAmJiByZXR1cm4gMDsKICAgIGxvY2FsIHRtcHN0cjsK
ICAgIHB5dGhvbj0ke3B5dGhvbjotL3Vzci9iaW4vcHl0aG9ufTsKICAgIHRtcHN0cj0iJCgke3B5
dGhvbn0gLVYgMj4mMSApIjsKICAgIGV4cG9ydCBQWVZFUl9BTEw9IiR7dG1wc3RyI1B5dGhvbiB9
IjsKICAgIF9fcHl0aG9uX3ZlcnNpb25fZXh0cmFjdCAkUFlWRVJfQUxMCn0KcXRfbWluX3ZlcnNp
b24gKCkgCnsgCiAgICBsb2NhbCBsaXN0PSQocXRfbWluX3ZlcnNpb25fbGlzdCAiJEAiKTsKICAg
IGV3YXJuICIke0NBVEVHT1JZfS8ke1BGfTogcXRfbWluX3ZlcnNpb24oKSBpcyBkZXByZWNhdGVk
LiBVc2Ugc2xvdCBkZXBlbmRlbmNpZXMgaW5zdGVhZC4iOwogICAgaWYgW1sgJHtsaXN0JSUgKn0g
PT0gIiR7bGlzdH0iIF1dOyB0aGVuCiAgICAgICAgZWNobyAiJHtsaXN0fSI7CiAgICBlbHNlCiAg
ICAgICAgZWNobyAifHwgKCAke2xpc3R9ICkiOwogICAgZmkKfQpxdF9taW5fdmVyc2lvbl9saXN0
ICgpIAp7IAogICAgbG9jYWwgTUlOVkVSPSIkMSI7CiAgICBsb2NhbCBWRVJTSU9OUz0iIjsKICAg
IGNhc2UgIiR7TUlOVkVSfSIgaW4gCiAgICAgICAgMyB8IDMuMCB8IDMuMC4wKQogICAgICAgICAg
ICBWRVJTSU9OUz0iPSR7UVRQS0d9MyoiCiAgICAgICAgOzsKICAgICAgICAzLjEgfCAzLjEuMCB8
IDMuMiB8IDMuMi4wIHwgMy4zIHwgMy4zLjApCiAgICAgICAgICAgIGZvciB4IGluICR7UVQzTUFK
T1JWRVJTSU9OU307CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBpZiAkKHZlcnNpb25f
aXNfYXRfbGVhc3QgIiR7TUlOVkVSfSIgIiR7eH0iKTsgdGhlbgogICAgICAgICAgICAgICAgICAg
IFZFUlNJT05TPSIke1ZFUlNJT05TfSA9JHtRVFBLR30ke3h9KiI7CiAgICAgICAgICAgICAgICBm
aTsKICAgICAgICAgICAgZG9uZQogICAgICAgIDs7CiAgICAgICAgMyopCiAgICAgICAgICAgIGZv
ciB4IGluICR7UVQzVkVSU0lPTlN9OwogICAgICAgICAgICBkbwogICAgICAgICAgICAgICAgaWYg
JCh2ZXJzaW9uX2lzX2F0X2xlYXN0ICIke01JTlZFUn0iICIke3h9Iik7IHRoZW4KICAgICAgICAg
ICAgICAgICAgICBWRVJTSU9OUz0iJHtWRVJTSU9OU30gPSR7UVRQS0d9JHt4fSI7CiAgICAgICAg
ICAgICAgICBmaTsKICAgICAgICAgICAgZG9uZQogICAgICAgIDs7CiAgICAgICAgKikKICAgICAg
ICAgICAgVkVSU0lPTlM9Ij0ke1FUUEtHfTMqIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgZWNo
byAke1ZFUlNJT05TfQp9CnJhdy1sZGZsYWdzICgpIAp7IAogICAgbG9jYWwgeCBpbnB1dD0iJEAi
OwogICAgW1sgLXogJHtpbnB1dH0gXV0gJiYgaW5wdXQ9JHtMREZMQUdTfTsKICAgIHNldCAtLTsK
ICAgIGZvciB4IGluICR7aW5wdXR9OwogICAgZG8KICAgICAgICB4PSR7eCMtV2wsfTsKICAgICAg
ICBzZXQgLS0gIiRAIiAke3gvLywvIH07CiAgICBkb25lOwogICAgZWNobyAiJEAiCn0KcmVwbGFj
ZS1jcHUtZmxhZ3MgKCkgCnsgCiAgICBsb2NhbCBuZXdjcHU9IiQjIjsKICAgIG5ld2NwdT0iJHsh
bmV3Y3B1fSI7CiAgICB3aGlsZSBbICQjIC1ndCAxIF07IGRvCiAgICAgICAgcmVwbGFjZS1mbGFn
cyAiLW1hcmNoPSR7MX0iICItbWFyY2g9JHtuZXdjcHV9IjsKICAgICAgICByZXBsYWNlLWZsYWdz
ICItbWNwdT0kezF9IiAiLW1jcHU9JHtuZXdjcHV9IjsKICAgICAgICByZXBsYWNlLWZsYWdzICIt
bXR1bmU9JHsxfSIgIi1tdHVuZT0ke25ld2NwdX0iOwogICAgICAgIHNoaWZ0OwogICAgZG9uZTsK
ICAgIHJldHVybiAwCn0KcmVwbGFjZS1mbGFncyAoKSAKeyAKICAgIFtbICQjICE9IDIgXV0gJiYg
ZWNobyAmJiBlZXJyb3IgIlVzYWdlOiByZXBsYWNlLWZsYWdzIDxvbGQgZmxhZz4gPG5ldyBmbGFn
PiIgJiYgZGllICJyZXBsYWNlLWZsYWdzIHRha2VzIDIgYXJndW1lbnRzLCBub3QgJCMiOwogICAg
bG9jYWwgZiBmc2V0OwogICAgZGVjbGFyZSAtYSBuZXdfQ0ZMQUdTIG5ld19DWFhGTEFHUyBuZXdf
RkZMQUdTIG5ld19GQ0ZMQUdTOwogICAgZm9yIGZzZXQgaW4gQ0ZMQUdTIENYWEZMQUdTIEZGTEFH
UyBGQ0ZMQUdTOwogICAgZG8KICAgICAgICBmb3IgZiBpbiAkeyFmc2V0fTsKICAgICAgICBkbwog
ICAgICAgICAgICBbWyAke2Z9ID09ICR7MX0gXV0gJiYgZj0kezJ9OwogICAgICAgICAgICBldmFs
IG5ld18ke2ZzZXR9XFtcJHtcI25ld18ke2ZzZXR9XFtAXX1dPVwke2Z9OwogICAgICAgIGRvbmU7
CiAgICAgICAgZXZhbCBleHBvcnQgJHtmc2V0fT1cJHtuZXdfJHtmc2V0fVxbKl19OwogICAgZG9u
ZTsKICAgIHJldHVybiAwCn0KcmVwbGFjZS1zcGFyYzY0LWZsYWdzICgpIAp7IAogICAgbG9jYWwg
U1BBUkM2NF9DUFVTPSJ1bHRyYXNwYXJjMyB1bHRyYXNwYXJjIHY5IjsKICAgIGlmIFsgIiR7Q0ZM
QUdTL210dW5lfSIgIT0gIiR7Q0ZMQUdTfSIgXTsgdGhlbgogICAgICAgIGZvciB4IGluICR7U1BB
UkM2NF9DUFVTfTsKICAgICAgICBkbwogICAgICAgICAgICBDRkxBR1M9IiR7Q0ZMQUdTLy1tY3B1
PSR7eH0vLW1jcHU9djh9IjsKICAgICAgICBkb25lOwogICAgZWxzZQogICAgICAgIGZvciB4IGlu
ICR7U1BBUkM2NF9DUFVTfTsKICAgICAgICBkbwogICAgICAgICAgICBDRkxBR1M9IiR7Q0ZMQUdT
Ly1tY3B1PSR7eH0vLW1jcHU9djggLW10dW5lPSR7eH19IjsKICAgICAgICBkb25lOwogICAgZmk7
CiAgICBpZiBbICIke0NYWEZMQUdTL210dW5lfSIgIT0gIiR7Q1hYRkxBR1N9IiBdOyB0aGVuCiAg
ICAgICAgZm9yIHggaW4gJHtTUEFSQzY0X0NQVVN9OwogICAgICAgIGRvCiAgICAgICAgICAgIENY
WEZMQUdTPSIke0NYWEZMQUdTLy1tY3B1PSR7eH0vLW1jcHU9djh9IjsKICAgICAgICBkb25lOwog
ICAgZWxzZQogICAgICAgIGZvciB4IGluICR7U1BBUkM2NF9DUFVTfTsKICAgICAgICBkbwogICAg
ICAgICAgICBDWFhGTEFHUz0iJHtDWFhGTEFHUy8tbWNwdT0ke3h9Ly1tY3B1PXY4IC1tdHVuZT0k
e3h9fSI7CiAgICAgICAgZG9uZTsKICAgIGZpOwogICAgZXhwb3J0IENGTEFHUyBDWFhGTEFHUwp9
CnJlcGxhY2VfYWxsX3ZlcnNpb25fc2VwYXJhdG9ycyAoKSAKeyAKICAgIF9fdmVyc2lvbmF0b3Jf
c2hvcHRfdG9nZ2xlIG9uOwogICAgbG9jYWwgYzsKICAgIGM9KCQoZ2V0X2FsbF92ZXJzaW9uX2Nv
bXBvbmVudHMgIiR7MjotJHtQVn19IiApKTsKICAgIGM9IiR7Y1tAXS8vWy0uX10vJDF9IjsKICAg
IGVjaG8gJHtjLy8gfTsKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9CnJlcGxh
Y2VfdmVyc2lvbl9zZXBhcmF0b3IgKCkgCnsgCiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2ds
ZSBvbjsKICAgIGxvY2FsIHcgaSBjIGZvdW5kPTAgdj0iJHszOi0ke1BWfX0iOwogICAgdz0kezE6
LTF9OwogICAgYz0oJChnZXRfYWxsX3ZlcnNpb25fY29tcG9uZW50cyAke3Z9ICkpOwogICAgaWYg
W1sgIiR7dy8vW1s6ZGlnaXQ6XV0vfSIgPT0gIiR7d30iIF1dOyB0aGVuCiAgICAgICAgZm9yICgo
aSA9IDAgOyBpIDwgJHsjY1tAXX0gOyBpID0gJGkgKyAxICkpCiAgICAgICAgZG8KICAgICAgICAg
ICAgaWYgW1sgIiR7Y1ske2l9XX0iID09ICIke3d9IiBdXTsgdGhlbgogICAgICAgICAgICAgICAg
Y1ske2l9XT0iJHsyfSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZmk7CiAg
ICAgICAgZG9uZTsKICAgIGVsc2UKICAgICAgICBmb3IgKChpID0gMCA7IGkgPCAkeyNjW0BdfSA7
IGkgPSAkaSArIDEgKSkKICAgICAgICBkbwogICAgICAgICAgICBpZiBbWyAtbiAiJHtjWyR7aX1d
Ly9bXi0uX119IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZm91bmQ9JCgoJGZvdW5kICsgMSkp
OwogICAgICAgICAgICAgICAgaWYgW1sgIiRmb3VuZCIgPT0gIiR7d30iIF1dOyB0aGVuCiAgICAg
ICAgICAgICAgICAgICAgY1ske2l9XT0iJHsyfSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgZG9uZTsKICAgIGZp
OwogICAgYz0ke2NbQF19OwogICAgZWNobyAke2MvLyB9OwogICAgX192ZXJzaW9uYXRvcl9zaG9w
dF90b2dnbGUgb2ZmCn0Kc2VxICgpIAp7IAogICAgbG9jYWwgcD0kKHR5cGUgLVAgc2VxKTsKICAg
IGNhc2UgJCMgaW4gCiAgICAgICAgMSkKICAgICAgICAgICAgbWluPTEgbWF4PSQxIHN0ZXA9MQog
ICAgICAgIDs7CiAgICAgICAgMikKICAgICAgICAgICAgbWluPSQxIG1heD0kMiBzdGVwPTEKICAg
ICAgICA7OwogICAgICAgIDMpCiAgICAgICAgICAgIG1pbj0kMSBtYXg9JDMgc3RlcD0kMgogICAg
ICAgIDs7CiAgICAgICAgKikKICAgICAgICAgICAgZGllICJzZXEgY2FsbGVkIHdpdGggd3Jvbmcg
bnVtYmVyIG9mIGFyZ3VtZW50cyIKICAgICAgICA7OwogICAgZXNhYzsKICAgIGlmIFtbIC16ICR7
cH0gXV07IHRoZW4KICAgICAgICBsb2NhbCByZXBzOwogICAgICAgIGlmIFtbICR7c3RlcH0gIT0g
MCBdXTsgdGhlbgogICAgICAgICAgICByZXBzPSQoKCAoJG1heC0kbWluKSAvICRzdGVwICsxICkp
OwogICAgICAgIGVsc2UKICAgICAgICAgICAgcmVwcz0wOwogICAgICAgIGZpOwogICAgICAgIGpv
dCAkcmVwcyAkbWluICRtYXggJHN0ZXA7CiAgICBlbHNlCiAgICAgICAgIiR7cH0iICRtaW4gJHN0
ZXAgJG1heDsKICAgIGZpCn0Kc2V0dXAtYWxsb3dlZC1mbGFncyAoKSAKeyAKICAgIGlmIFtbIC16
ICR7QUxMT1dFRF9GTEFHU30gXV07IHRoZW4KICAgICAgICBleHBvcnQgQUxMT1dFRF9GTEFHUz0i
LXBpcGUiOwogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1P
IC1PMCAtTzEgLU8yIC1tY3B1IC1tYXJjaCAtbXR1bmUiOwogICAgICAgIGV4cG9ydCBBTExPV0VE
X0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1mc3RhY2stcHJvdGVjdG9yIC1mc3RhY2stcHJvdGVj
dG9yLWFsbCI7CiAgICAgICAgZXhwb3J0IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30g
LWZib3VuZHMtY2hlY2tpbmciOwogICAgICAgIGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIke0FMTE9X
RURfRkxBR1N9IC1mbm8tUElFIC1mbm8tcGllIC1mbm8tdW5pdC1hdC1hLXRpbWUiOwogICAgICAg
IGV4cG9ydCBBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9IC1nIC1nWzAtOV0gLWdnZGIg
LWdnZGJbMC05XSAtZ3N0YWJzIC1nc3RhYnMrIjsKICAgICAgICBleHBvcnQgQUxMT1dFRF9GTEFH
Uz0iJHtBTExPV0VEX0ZMQUdTfSAtZm5vLWlkZW50IjsKICAgICAgICBleHBvcnQgQUxMT1dFRF9G
TEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtVyogLXciOwogICAgZmk7CiAgICBBTExPV0VEX0ZMQUdT
PSIke0FMTE9XRURfRkxBR1N9IC1mbm8tc3RhY2stcHJvdGVjdG9yIC1mbm8tc3RhY2stcHJvdGVj
dG9yLWFsbCAJCS1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mbm8tYm91bmRzLWNoZWNraW5nIjsKICAg
IEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLW1yZWdwYXJtIC1tbm8tYXBwLXJlZ3Mg
LW1hcHAtcmVncyAJCS1tbm8tbW14IC1tbm8tc3NlIC1tbm8tc3NlMiAtbW5vLXNzZTMgLW1uby0z
ZG5vdyAJCS1taXBzMSAtbWlwczIgLW1pcHMzIC1taXBzNCAtbWlwczMyIC1taXBzNjQgLW1pcHMx
NiAJCS1tc29mdC1mbG9hdCAtbW5vLXNvZnQtZmxvYXQgLW1oYXJkLWZsb2F0IC1tbm8taGFyZC1m
bG9hdCAtbWZwdSAJCS1taWVlZSAtbWllZWUtd2l0aC1pbmV4YWN0IC1tc2NoZWR1bGUgCQktbXRs
cy1kaXJlY3Qtc2VnLXJlZnMgLW1uby10bHMtZGlyZWN0LXNlZy1yZWZzIAkJLW1mbGF0IC1tbm8t
ZmxhdCAtbW5vLWZhc3Rlci1zdHJ1Y3RzIC1tZmFzdGVyLXN0cnVjdHMgCQktbTMyIC1tNjQgLW1h
YmkgLW1saXR0bGUtZW5kaWFuIC1tYmlnLWVuZGlhbiAtRUwgLUVCIC1mUElDIAkJLW1saXZlLWcw
IC1tY21vZGVsIC1tc3RhY2stYmlhcyAtbW5vLXN0YWNrLWJpYXMgCQktbXNlY3VyZS1wbHQgLW0q
LXRvYyAtRCoiOwogICAgZXhwb3J0IFVOU1RBQkxFX0ZMQUdTPSItT3MgLU8zIC1mcmVvcmRlci1i
bG9ja3MiOwogICAgcmV0dXJuIDAKfQpzcmNfY29tcGlsZSAoKSAKeyAKICAgIGxvY2FsIG15Y29u
Zj0iLS1wcmVmaXg9L3VzcgoJCS0tbWFuZGlyPS91c3Ivc2hhcmUvbWFuCgkJLS1saWJkaXItbmFt
ZT0kKGdldF9saWJkaXIpIjsKICAgIHVzZSBhYWMgJiYgbXljb25mPSIke215Y29uZn0gLS1lbmFi
bGUtbGliZmFhZCI7CiAgICB1c2UgYWxzYSB8fCBteWNvbmY9IiR7bXljb25mfSAtLWRpc2FibGUt
YXVkaW8tYWxzYSI7CiAgICB1c2UgYWx0aXZlYyB8fCBteWNvbmY9IiR7bXljb25mfSAtLWRpc2Fi
bGUtYWx0aXZlYyI7CiAgICB1c2UgZmZ0dyAmJiBteWNvbmY9IiR7bXljb25mfSAtLWVuYWJsZS1s
aWJmZnR3MyI7CiAgICB1c2UgamFjayB8fCBteWNvbmY9IiR7bXljb25mfSAtLWRpc2FibGUtYXVk
aW8tamFjayI7CiAgICB1c2UgeHZtYyAmJiBteWNvbmY9IiR7bXljb25mfSAtLWVuYWJsZS14dm1j
IC0tZW5hYmxlLXh2bWN3IAkJLS1kaXNhYmxlLXh2bWMtdmxkIjsKICAgIG15Y29uZj0iJHtteWNv
bmZ9IC0tZW5hYmxlLWdseC1wcm9jYWRkcmFyYiI7CiAgICBteWNvbmY9IiR7bXljb25mfQoJCSQo
dXNlX2VuYWJsZSBkdmIpCgkJJCh1c2VfZW5hYmxlIGllZWUxMzk0IGZpcmV3aXJlKQoJCSQodXNl
X2VuYWJsZSBsaXJjKQoJCS0tZGlzYWJsZS1hdWRpby1hcnRzCgkJLS1kaXNhYmxlLWRpcmVjdGZi
CgkJLS1kdmItcGF0aD0vdXNyL2luY2x1ZGUKCQktLWVuYWJsZS1vcGVuZ2wtdnN5bmMKCQktLWVu
YWJsZS14cmFuZHIKCQktLWVuYWJsZS14dgoJCS0tZW5hYmxlLXgxMSI7CiAgICBpZiB1c2UgbW14
IHx8IHVzZSBhbWQ2NDsgdGhlbgogICAgICAgIG15Y29uZj0iJHtteWNvbmZ9IC0tZW5hYmxlLW1t
eCI7CiAgICBlbHNlCiAgICAgICAgbXljb25mPSIke215Y29uZn0gLS1kaXNhYmxlLW1teCI7CiAg
ICBmaTsKICAgIGlmIHVzZSBwZXJsICYmIHVzZSBweXRob247IHRoZW4KICAgICAgICBteWNvbmY9
IiR7bXljb25mfSAtLXdpdGgtYmluZGluZ3M9cGVybCxweXRob24iOwogICAgZWxzZQogICAgICAg
IGlmIHVzZSBwZXJsOyB0aGVuCiAgICAgICAgICAgIG15Y29uZj0iJHtteWNvbmZ9IC0td2l0aC1i
aW5kaW5ncz1wZXJsIjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmIHVzZSBweXRob247IHRo
ZW4KICAgICAgICAgICAgICAgIG15Y29uZj0iJHtteWNvbmZ9IC0td2l0aC1iaW5kaW5ncz1weXRo
b24iOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBteWNvbmY9IiR7bXljb25mfSAt
LXdpdGhvdXQtYmluZGluZ3M9cGVybCxweXRob24iOwogICAgICAgICAgICBmaTsKICAgICAgICBm
aTsKICAgIGZpOwogICAgaWYgdXNlIGRlYnVnOyB0aGVuCiAgICAgICAgbXljb25mPSIke215Y29u
Zn0gLS1jb21waWxlLXR5cGU9ZGVidWciOwogICAgZWxzZQogICAgICAgIG15Y29uZj0iJHtteWNv
bmZ9IC0tY29tcGlsZS10eXBlPXByb2ZpbGUiOwogICAgZmk7CiAgICBNQVJDSD0kKGdldC1mbGFn
ICJtYXJjaCIpOwogICAgTVRVTkU9JChnZXQtZmxhZyAibXR1bmUiKTsKICAgIHN0cmlwLWZsYWdz
OwogICAgZmlsdGVyLWZsYWdzICItbWFyY2g9KiIgIi1tdHVuZT0qIiAiLW1jcHU9KiI7CiAgICBm
aWx0ZXItZmxhZ3MgIi1PIiAiLU8/IjsKICAgIGlmIFtbIC1uICIke01BUkNIfSIgXV07IHRoZW4K
ICAgICAgICBteWNvbmY9IiR7bXljb25mfSAtLWNwdT0ke01BUkNIfSI7CiAgICBmaTsKICAgIGlm
IFtbIC1uICIke01UVU5FfSIgXV07IHRoZW4KICAgICAgICBteWNvbmY9IiR7bXljb25mfSAtLXR1
bmU9JHtNVFVORX0iOwogICAgZmk7CiAgICBoYXNxIGRpc3RjYyAke0ZFQVRVUkVTfSB8fCBteWNv
bmY9IiR7bXljb25mfSAtLWRpc2FibGUtZGlzdGNjIjsKICAgIGhhc3EgY2NhY2hlICR7RkVBVFVS
RVN9IHx8IG15Y29uZj0iJHtteWNvbmZ9IC0tZGlzYWJsZS1jY2FjaGUiOwogICAgQ0ZMQUdTPSIi
OwogICAgQ1hYRkxBR1M9IiI7CiAgICBlaW5mbyAiUnVubmluZyAuL2NvbmZpZ3VyZSAke215Y29u
Zn0iOwogICAgLi9jb25maWd1cmUgJHtteWNvbmZ9IHx8IGRpZSAiY29uZmlndXJlIGRpZWQiOwog
ICAgZXFtYWtlMyBteXRodHYucHJvIC1vICJNYWtlZmlsZSIgfHwgZGllICJlcW1ha2UzIGZhaWxl
ZCI7CiAgICBlbWFrZSB8fCBkaWUgImVtYWtlIGZhaWxlZCI7CiAgICBpZiB1c2UgaWVlZTEzOTQ7
IHRoZW4KICAgICAgICBjZCBjb250cmliOwogICAgICAgICQodGMtZ2V0Q0MpICR7Q0ZMQUdTfSAk
e0NQUEZMQUdTfSAtbyAuLi9maXJld2lyZV90ZXN0ZXIgZmlyZXdpcmVfdGVzdGVyLmMgJHtMREZM
QUdTfSAtbGllYzYxODgzIC1scmF3MTM5NCB8fCBkaWUgImZhaWxlZCB0byBjb21waWxlIGZpcmV3
aXJlX3Rlc3RlciI7CiAgICAgICAgY2QgY2hhbm5lbF9jaGFuZ2VyczsKICAgICAgICAkKHRjLWdl
dENDKSAke0NGTEFHU30gJHtDUFBGTEFHU30gLXN0ZD1nbnU5OSAtbyAuLi8uLi82MjAwY2ggNjIw
MGNoLmMgJHtMREZMQUdTfSAtbHJvbTEzOTQgLWxhdmMxMzk0IC1scmF3MTM5NCB8fCBkaWUgImZh
aWxlZCB0byBjb21waWxlIDYyMDBjaCI7CiAgICAgICAgJCh0Yy1nZXRDQykgJHtDRkxBR1N9ICR7
Q1BQRkxBR1N9IC1vIC4uLy4uL3NhMzI1MGNoIHNhMzI1MGNoLmMgJHtMREZMQUdTfSAtbHJvbTEz
OTQgLWxhdmMxMzk0IC1scmF3MTM5NCB8fCBkaWUgImZhaWxlZCB0byBjb21waWxlIHNhMzI1MGNo
IjsKICAgIGZpOwogICAgY2QgIiR7U30iL2NvbnRyaWIvY2hhbm5lbF9jaGFuZ2VyczsKICAgICQo
dGMtZ2V0Q0MpICR7Q0ZMQUdTfSAke0NQUEZMQUdTfSAtbyAuLi8uLi9yZWRfZXllIHJlZF9leWUu
YyAke0xERkxBR1N9IHx8IGRpZSAiZmFpbGVkIHRvIGNvbXBpbGUgcmVkX2V5ZSIKfQpzcmNfaW5z
dGFsbCAoKSAKeyAKICAgIGVpbnN0YWxsIElOU1RBTExfUk9PVD0iJHtEfSIgfHwgZGllICJpbnN0
YWxsIGZhaWxlZCI7CiAgICBkb2RvYyBBVVRIT1JTIEZBUSBVUEdSQURJTkcgUkVBRE1FOwogICAg
aW5zaW50byAvdXNyL3NoYXJlL215dGh0di9kYXRhYmFzZTsKICAgIGRvaW5zIGRhdGFiYXNlLyo7
CiAgICBleGVpbnRvIC91c3Ivc2hhcmUvbXl0aHR2OwogICAgZG9leGUgIiR7RklMRVNESVJ9L215
dGhmaWxsZGF0YWJhc2UuY3JvbiI7CiAgICBuZXdpbml0ZCAiJHtGSUxFU0RJUn0iL215dGhiYWNr
ZW5kLTAuMTguMi5yYyBteXRoYmFja2VuZDsKICAgIG5ld2NvbmZkICIke0ZJTEVTRElSfSIvbXl0
aGJhY2tlbmQtMC4xOC4yLmNvbmYgbXl0aGJhY2tlbmQ7CiAgICBkb2RvYyBrZXlzLnR4dCBkb2Nz
Lyoue3R4dCxwZGZ9OwogICAgZG9odG1sIGRvY3MvKi5odG1sOwogICAga2VlcGRpciAvZXRjL215
dGh0djsKICAgIGNob3duIC1SIG15dGh0diAiJHtEfSIvZXRjL215dGh0djsKICAgIGtlZXBkaXIg
L3Zhci9sb2cvbXl0aHR2OwogICAgY2hvd24gLVIgbXl0aHR2ICIke0R9Ii92YXIvbG9nL215dGh0
djsKICAgIGluc2ludG8gL2V0Yy9sb2dyb3RhdGUuZDsKICAgIG5ld2lucyAiJHtGSUxFU0RJUn0i
L215dGh0di5sb2dyb3RhdGUuZCBteXRodHY7CiAgICBpbnNpbnRvIC91c3Ivc2hhcmUvbXl0aHR2
L2NvbnRyaWI7CiAgICBkb2lucyAtciBjb250cmliLyo7CiAgICBkb2JpbiAiJHtGSUxFU0RJUn0i
L3J1bm15dGhmZTsKICAgIGlmIHVzZSBhdXRvc3RhcnQ7IHRoZW4KICAgICAgICBkb2RpciAvZXRj
L2Vudi5kLzsKICAgICAgICBlY2hvICdDT05GSUdfUFJPVEVDVD0iL2hvbWUvbXl0aHR2LyInID4g
IiR7RH0iL2V0Yy9lbnYuZC85NW15dGh0djsKICAgICAgICBpbnNpbnRvIC9ob21lL215dGh0djsK
ICAgICAgICBuZXdpbnMgIiR7RklMRVNESVJ9Ii9iYXNoX3Byb2ZpbGUgLmJhc2hfcHJvZmlsZTsK
ICAgICAgICBuZXdpbnMgIiR7RklMRVNESVJ9Ii94aW5pdHJjIC54aW5pdHJjOwogICAgZmk7CiAg
ICBpZiB1c2UgaWVlZTEzOTQ7IHRoZW4KICAgICAgICBkb2JpbiBmaXJld2lyZV90ZXN0ZXIgfHwg
ZGllICJmYWlsZWQgdG8gaW5zdGFsbCBmaXJld2lyZV90ZXN0ZXIiOwogICAgICAgIGRvZG9jIGNv
bnRyaWIvZmlyZXdpcmVfdGVzdGVyLVJFQURNRTsKICAgICAgICBkb2JpbiA2MjAwY2ggfHwgZGll
ICJmYWlsZWQgdG8gaW5zdGFsbCA2MjAwY2giOwogICAgICAgIGRvZG9jIGNvbnRyaWIvY2hhbm5l
bF9jaGFuZ2Vycy82MjAwY2gtUkVBRE1FOwogICAgICAgIGRvYmluIHNhMzI1MGNoIHx8IGRpZSAi
ZmFpbGVkIHRvIGluc3RhbGwgc2EzMjUwY2giOwogICAgICAgIGRvZG9jIGNvbnRyaWIvY2hhbm5l
bF9jaGFuZ2Vycy9zYTMyNTBjaC1SRUFETUU7CiAgICBmaTsKICAgIGRvYmluIHJlZF9leWUgfHwg
ZGllICJmYWlsZWQgdG8gaW5zdGFsbCByZWRfZXllIjsKICAgIGRvZG9jIGNvbnRyaWIvY2hhbm5l
bF9jaGFuZ2Vycy9yZWRfZXllLVJFQURNRTsKICAgIGlmIHVzZSBkaXJlY3R2OyB0aGVuCiAgICAg
ICAgZG9iaW4gY29udHJpYi9jaGFubmVsX2NoYW5nZXJzL2QxMGNvbnRyb2wucGwgfHwgZGllICJm
YWlsZWQgdG8gaW5zdGFsbCBkMTBjb250cm9sIjsKICAgICAgICBkb2RvYyBjb250cmliL2NoYW5u
ZWxfY2hhbmdlcnMvZDEwY29udHJvbC1SRUFETUU7CiAgICBmaQp9CnNyY190ZXN0ICgpIAp7IAog
ICAgaWYgZW1ha2UgLWoxIGNoZWNrIC1uID4mL2Rldi9udWxsOyB0aGVuCiAgICAgICAgdmVjaG8g
Ij4+PiBUZXN0IHBoYXNlIFtjaGVja106ICR7Q0FURUdPUll9LyR7UEZ9IjsKICAgICAgICBpZiAh
IGVtYWtlIC1qMSBjaGVjazsgdGhlbgogICAgICAgICAgICBoYXNxIHRlc3QgJEZFQVRVUkVTICYm
IGRpZSAiTWFrZSBjaGVjayBmYWlsZWQuIFNlZSBhYm92ZSBmb3IgZGV0YWlscy4iOwogICAgICAg
ICAgICBoYXNxIHRlc3QgJEZFQVRVUkVTIHx8IGVlcnJvciAiTWFrZSBjaGVjayBmYWlsZWQuIFNl
ZSBhYm92ZSBmb3IgZGV0YWlscy4iOwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGlmIGVt
YWtlIC1qMSB0ZXN0IC1uID4mL2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgIHZlY2hvICI+Pj4g
VGVzdCBwaGFzZSBbdGVzdF06ICR7Q0FURUdPUll9LyR7UEZ9IjsKICAgICAgICAgICAgaWYgISBl
bWFrZSAtajEgdGVzdDsgdGhlbgogICAgICAgICAgICAgICAgaGFzcSB0ZXN0ICRGRUFUVVJFUyAm
JiBkaWUgIk1ha2UgdGVzdCBmYWlsZWQuIFNlZSBhYm92ZSBmb3IgZGV0YWlscy4iOwogICAgICAg
ICAgICAgICAgaGFzcSB0ZXN0ICRGRUFUVVJFUyB8fCBlZXJyb3IgIk1ha2UgdGVzdCBmYWlsZWQu
IFNlZSBhYm92ZSBmb3IgZGV0YWlscy4iOwogICAgICAgICAgICBmaTsKICAgICAgICBlbHNlCiAg
ICAgICAgICAgIHZlY2hvICI+Pj4gVGVzdCBwaGFzZSBbbm9uZV06ICR7Q0FURUdPUll9LyR7UEZ9
IjsKICAgICAgICBmaTsKICAgIGZpCn0Kc3JjX3VucGFjayAoKSAKeyAKICAgIHN1YnZlcnNpb25f
c3JjX3VucGFjazsKICAgIHNlZCAtZSAiczpcYChzdm52ZXJzaW9uIFwkXCR7U1ZOVFJFRURJUn0g
Mj5cL2RldlwvbnVsbCkgfHwgZWNobyBVbmtub3duXGA6JHtNWVRIVFZfUkVWfToiIC1pICIke1N9
Ii92ZXJzaW9uLnBybyB8fCBkaWUgInN2bnZlcnNpb24gc2VkIGZhaWxlZCI7CiAgICBzZWQgLWUg
InM6cHVyZV9pbnN0YWxsOnB1cmVfaW5zdGFsbCBJTlNUQUxMRElSUz12ZW5kb3I6IiAtaSAiJHtT
fSIvYmluZGluZ3MvcGVybC9wZXJsLnBybzsKICAgIGVwYXRjaCAiJHtGSUxFU0RJUn0iLyR7UE59
LTAuMjEtbXl0aGZsaXgtbmFtaW5nLWNvbGxpc2lvbi5wYXRjaAp9CnN0cmlwLWZsYWdzICgpIAp7
IAogICAgbG9jYWwgeCB5IGZsYWcgTkVXX0NGTEFHUyBORVdfQ1hYRkxBR1MgTkVXX0ZGTEFHUyBO
RVdfRkNGTEFHUzsKICAgIHNldHVwLWFsbG93ZWQtZmxhZ3M7CiAgICBsb2NhbCBORVdfQ0ZMQUdT
PSIiOwogICAgbG9jYWwgTkVXX0NYWEZMQUdTPSIiOwogICAgbG9jYWwgTkVXX0ZGTEFHUz0iIjsK
ICAgIGxvY2FsIE5FV19GQ0ZMQUdTPSIiOwogICAgaWYgaGFzIH4kKHRjLWFyY2gpICR7QUNDRVBU
X0tFWVdPUkRTfTsgdGhlbgogICAgICAgIEFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30g
JHtVTlNUQUJMRV9GTEFHU30iOwogICAgZmk7CiAgICBzZXQgLWY7CiAgICBmb3IgeCBpbiAke0NG
TEFHU307CiAgICBkbwogICAgICAgIGZvciB5IGluICR7QUxMT1dFRF9GTEFHU307CiAgICAgICAg
ZG8KICAgICAgICAgICAgZmxhZz0ke3glJT0qfTsKICAgICAgICAgICAgaWYgWyAiJHtmbGFnJSUk
e3l9fSIgPSAiIiBdOyB0aGVuCiAgICAgICAgICAgICAgICBORVdfQ0ZMQUdTPSIke05FV19DRkxB
R1N9ICR7eH0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAg
IGRvbmU7CiAgICBkb25lOwogICAgZm9yIHggaW4gJHtDWFhGTEFHU307CiAgICBkbwogICAgICAg
IGZvciB5IGluICR7QUxMT1dFRF9GTEFHU307CiAgICAgICAgZG8KICAgICAgICAgICAgZmxhZz0k
e3glJT0qfTsKICAgICAgICAgICAgaWYgWyAiJHtmbGFnJSUke3l9fSIgPSAiIiBdOyB0aGVuCiAg
ICAgICAgICAgICAgICBORVdfQ1hYRkxBR1M9IiR7TkVXX0NYWEZMQUdTfSAke3h9IjsKICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBmaTsKICAgICAgICBkb25lOwogICAgZG9uZTsK
ICAgIGZvciB4IGluICR7RkZMQUdTfTsKICAgIGRvCiAgICAgICAgZm9yIHkgaW4gJHtBTExPV0VE
X0ZMQUdTfTsKICAgICAgICBkbwogICAgICAgICAgICBmbGFnPSR7eCUlPSp9OwogICAgICAgICAg
ICBpZiBbICIke2ZsYWclJSR7eX19IiA9ICIiIF07IHRoZW4KICAgICAgICAgICAgICAgIE5FV19G
RkxBR1M9IiR7TkVXX0ZGTEFHU30gJHt4fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgZmk7CiAgICAgICAgZG9uZTsKICAgIGRvbmU7CiAgICBmb3IgeCBpbiAke0ZDRkxBR1N9
OwogICAgZG8KICAgICAgICBmb3IgeSBpbiAke0FMTE9XRURfRkxBR1N9OwogICAgICAgIGRvCiAg
ICAgICAgICAgIGZsYWc9JHt4JSU9Kn07CiAgICAgICAgICAgIGlmIFsgIiR7ZmxhZyUlJHt5fX0i
ID0gIiIgXTsgdGhlbgogICAgICAgICAgICAgICAgTkVXX0ZDRkxBR1M9IiR7TkVXX0ZDRkxBR1N9
ICR7eH0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRv
bmU7CiAgICBkb25lOwogICAgaWYgWyAiJHtDRkxBR1MvLU99IiAhPSAiJHtDRkxBR1N9IiAtYSAi
JHtORVdfQ0ZMQUdTLy1PfSIgPSAiJHtORVdfQ0ZMQUdTfSIgXTsgdGhlbgogICAgICAgIE5FV19D
RkxBR1M9IiR7TkVXX0NGTEFHU30gLU8yIjsKICAgIGZpOwogICAgaWYgWyAiJHtDWFhGTEFHUy8t
T30iICE9ICIke0NYWEZMQUdTfSIgLWEgIiR7TkVXX0NYWEZMQUdTLy1PfSIgPSAiJHtORVdfQ1hY
RkxBR1N9IiBdOyB0aGVuCiAgICAgICAgTkVXX0NYWEZMQUdTPSIke05FV19DWFhGTEFHU30gLU8y
IjsKICAgIGZpOwogICAgaWYgWyAiJHtGRkxBR1MvLU99IiAhPSAiJHtGRkxBR1N9IiAtYSAiJHtO
RVdfRkZMQUdTLy1PfSIgPSAiJHtORVdfRkZMQUdTfSIgXTsgdGhlbgogICAgICAgIE5FV19GRkxB
R1M9IiR7TkVXX0ZGTEFHU30gLU8yIjsKICAgIGZpOwogICAgaWYgWyAiJHtGQ0ZMQUdTLy1PfSIg
IT0gIiR7RkNGTEFHU30iIC1hICIke05FV19GQ0ZMQUdTLy1PfSIgPSAiJHtORVdfRkNGTEFHU30i
IF07IHRoZW4KICAgICAgICBORVdfRkNGTEFHUz0iJHtORVdfRkNGTEFHU30gLU8yIjsKICAgIGZp
OwogICAgc2V0ICtmOwogICAgZXhwb3J0IENGTEFHUz0iJHtORVdfQ0ZMQUdTfSI7CiAgICBleHBv
cnQgQ1hYRkxBR1M9IiR7TkVXX0NYWEZMQUdTfSI7CiAgICBleHBvcnQgRkZMQUdTPSIke05FV19G
RkxBR1N9IjsKICAgIGV4cG9ydCBGQ0ZMQUdTPSIke05FV19GQ0ZMQUdTfSI7CiAgICByZXR1cm4g
MAp9CnN0cmlwLWxpbmd1YXMgKCkgCnsgCiAgICBsb2NhbCBscyBuZXdscyBub2xzOwogICAgaWYg
W1sgJDEgPT0gIi1pIiBdXSB8fCBbWyAkMSA9PSAiLXUiIF1dOyB0aGVuCiAgICAgICAgbG9jYWwg
b3A9JDE7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgbHM9JChmaW5kICIkMSIgLW5hbWUgJyoucG8n
IC1leGVjIGJhc2VuYW1lIHt9IC5wbyBcOyk7CiAgICAgICAgc2hpZnQ7CiAgICAgICAgbG9jYWwg
ZCBmOwogICAgICAgIGZvciBkIGluICIkQCI7CiAgICAgICAgZG8KICAgICAgICAgICAgaWYgW1sg
JHtvcH0gPT0gIi11IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgbmV3bHM9JHtsc307CiAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIG5ld2xzPSIiOwogICAgICAgICAgICBmaTsKICAg
ICAgICAgICAgZm9yIGYgaW4gJChmaW5kICIkZCIgLW5hbWUgJyoucG8nIC1leGVjIGJhc2VuYW1l
IHt9IC5wbyBcOyk7CiAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICBpZiBbWyAke29wfSA9
PSAiLWkiIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgaGFzcSAke2Z9ICR7bHN9ICYmIG5l
d2xzPSIke25ld2xzfSAke2Z9IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICBoYXNxICR7Zn0gJHtsc30gfHwgbmV3bHM9IiR7bmV3bHN9ICR7Zn0iOwogICAgICAgICAg
ICAgICAgZmk7CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgICAgIGxzPSR7bmV3bHN9OwogICAg
ICAgIGRvbmU7CiAgICBlbHNlCiAgICAgICAgbHM9IiRAIjsKICAgIGZpOwogICAgbm9scz0iIjsK
ICAgIG5ld2xzPSIiOwogICAgZm9yIGYgaW4gJHtMSU5HVUFTfTsKICAgIGRvCiAgICAgICAgaWYg
aGFzcSAke2Z9ICR7bHN9OyB0aGVuCiAgICAgICAgICAgIG5ld2xzPSIke25ld2xzfSAke2Z9IjsK
ICAgICAgICBlbHNlCiAgICAgICAgICAgIG5vbHM9IiR7bm9sc30gJHtmfSI7CiAgICAgICAgZmk7
CiAgICBkb25lOwogICAgW1sgLW4gJHtub2xzfSBdXSAmJiBld2FybiAiU29ycnksIGJ1dCAke1BO
fSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBMSU5HVUFzOiIgJHtub2xzfTsKICAgIGV4cG9ydCBMSU5H
VUFTPSR7bmV3bHM6MX0KfQpzdHJpcC11bnN1cHBvcnRlZC1mbGFncyAoKSAKeyAKICAgIGV4cG9y
dCBDRkxBR1M9JCh0ZXN0LWZsYWdzLUNDICR7Q0ZMQUdTfSk7CiAgICBleHBvcnQgQ1hYRkxBR1M9
JCh0ZXN0LWZsYWdzLUNYWCAke0NYWEZMQUdTfSk7CiAgICBleHBvcnQgRkZMQUdTPSQodGVzdC1m
bGFncy1GNzcgJHtGRkxBR1N9KTsKICAgIGV4cG9ydCBGQ0ZMQUdTPSQodGVzdC1mbGFncy1GQyAk
e0ZDRkxBR1N9KQp9CnN1YnZlcnNpb25fX2dldF9wZWdfcmV2aXNpb24gKCkgCnsgCiAgICBsb2Nh
bCByZXBvX3VyaT0iJHsxfSI7CiAgICBkZWJ1Zy1wcmludCAiJHtGVU5DTkFNRX06IHJlcG9fdXJp
ID0gJHtyZXBvX3VyaX0iOwogICAgaWYgW1sgJHtyZXBvX3VyaX0gIT0gKkAqIF1dOyB0aGVuCiAg
ICAgICAgZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiByZXBvX3VyaSBkb2VzIG5vdCBoYXZlIGEg
cGVnIHJldmlzaW9uLiI7CiAgICBmaTsKICAgIGxvY2FsIHBlZ19yZXY9OwogICAgW1sgJHtyZXBv
X3VyaX0gPSAqQCogXV0gJiYgcGVnX3Jldj0iJHtyZXBvX3VyaSMjKkB9IjsKICAgIGRlYnVnLXBy
aW50ICIke0ZVTkNOQU1FfTogcGVnX3JldiA9ICR7cGVnX3Jldn0iOwogICAgZWNobyAiJHtwZWdf
cmV2fSIKfQpzdWJ2ZXJzaW9uX19nZXRfcmVwb3NpdG9yeV91cmkgKCkgCnsgCiAgICBsb2NhbCBy
ZXBvX3VyaT0iJHsxfSI7CiAgICBkZWJ1Zy1wcmludCAiJHtGVU5DTkFNRX06IHJlcG9fdXJpID0g
JHtyZXBvX3VyaX0iOwogICAgaWYgW1sgLXogJHtyZXBvX3VyaX0gXV07IHRoZW4KICAgICAgICBk
aWUgIiR7RVNWTn06IEVTVk5fUkVQT19VUkkgKG9yIHNwZWNpZmllZCBVUkkpIGlzIGVtcHR5LiI7
CiAgICBmaTsKICAgIGlmIFtbIC16ICR7cmVwb191cmkjIyovfSBdXTsgdGhlbgogICAgICAgIHJl
cG9fdXJpPSIke3JlcG9fdXJpJS99IjsKICAgIGZpOwogICAgcmVwb191cmk9IiR7cmVwb191cmkl
QCp9IjsKICAgIGVjaG8gIiR7cmVwb191cml9Igp9CnN1YnZlcnNpb25fX2dldF93Y19wYXRoICgp
IAp7IAogICAgbG9jYWwgcmVwb191cmk9IiQoc3VidmVyc2lvbl9fZ2V0X3JlcG9zaXRvcnlfdXJp
ICIkezF9IikiOwogICAgZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiByZXBvX3VyaSA9ICR7cmVw
b191cml9IjsKICAgIGVjaG8gIiR7RVNWTl9TVE9SRV9ESVJ9LyR7RVNWTl9QUk9KRUNUfS8ke3Jl
cG9fdXJpIyMqL30iCn0Kc3VidmVyc2lvbl9fc3ZuX2luZm8gKCkgCnsgCiAgICBsb2NhbCB0YXJn
ZXQ9IiR7MX0iOwogICAgbG9jYWwga2V5PSIkezJ9IjsKICAgIGVudiBMQ19BTEw9QyBzdm4gaW5m
byAiJHt0YXJnZXR9IiB8IGdyZXAgLWkgIl4ke2tleX0iIHwgY3V0IC1kIiAiIC1mMi0KfQpzdWJ2
ZXJzaW9uX2Jvb3RzdHJhcCAoKSAKeyAKICAgIGlmIGhhcyAiZXhwb3J0IiAke0VTVk5fUkVTVFJJ
Q1R9OyB0aGVuCiAgICAgICAgcmV0dXJuOwogICAgZmk7CiAgICBjZCAiJHtTfSI7CiAgICBpZiBb
WyAtbiAke0VTVk5fUEFUQ0hFU30gXV07IHRoZW4KICAgICAgICBlaW5mbyAiYXBwbHkgcGF0Y2hl
cyAtLT4iOwogICAgICAgIGxvY2FsIHBhdGNoIGZwYXRjaDsKICAgICAgICBmb3IgcGF0Y2ggaW4g
JHtFU1ZOX1BBVENIRVN9OwogICAgICAgIGRvCiAgICAgICAgICAgIGlmIFtbIC1mICR7cGF0Y2h9
IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBlcGF0Y2ggIiR7cGF0Y2h9IjsKICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgZm9yIGZwYXRjaCBpbiAke0ZJTEVTRElSfS8ke3BhdGNofTsK
ICAgICAgICAgICAgICAgIGRvCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgLWYgJHtmcGF0Y2h9
IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVwYXRjaCAiJHtmcGF0Y2h9IjsKICAg
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGRpZSAiJHtFU1ZO
fTogJHtwYXRjaH0gbm90IGZvdW5kIjsKICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAgICAg
ICAgICAgIGRvbmU7CiAgICAgICAgICAgIGZpOwogICAgICAgIGRvbmU7CiAgICAgICAgZWNobzsK
ICAgIGZpOwogICAgaWYgW1sgLW4gJHtFU1ZOX0JPT1RTVFJBUH0gXV07IHRoZW4KICAgICAgICBl
aW5mbyAiYmVnaW4gYm9vdHN0cmFwIC0tPiI7CiAgICAgICAgaWYgW1sgLWYgJHtFU1ZOX0JPT1RT
VFJBUH0gJiYgLXggJHtFU1ZOX0JPT1RTVFJBUH0gXV07IHRoZW4KICAgICAgICAgICAgZWluZm8g
IiAgIGJvb3RzdHJhcCB3aXRoIGEgZmlsZTogJHtFU1ZOX0JPT1RTVFJBUH0iOwogICAgICAgICAg
ICBldmFsICIuLyR7RVNWTl9CT09UU1RSQVB9IiB8fCBkaWUgIiR7RVNWTn06IGNhbid0IGV4ZWN1
dGUgRVNWTl9CT09UU1RSQVAuIjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGVpbmZvICIgICBi
b290c3RyYXAgd2l0aCBjb21tYW5kOiAke0VTVk5fQk9PVFNUUkFQfSI7CiAgICAgICAgICAgIGV2
YWwgIiR7RVNWTl9CT09UU1RSQVB9IiB8fCBkaWUgIiR7RVNWTn06IGNhbid0IGV2YWwgRVNWTl9C
T09UU1RSQVAuIjsKICAgICAgICBmaTsKICAgIGZpCn0Kc3VidmVyc2lvbl9mZXRjaCAoKSAKeyAK
ICAgIGxvY2FsIHJlcG9fdXJpPSIkKHN1YnZlcnNpb25fX2dldF9yZXBvc2l0b3J5X3VyaSAiJHsx
Oi0ke0VTVk5fUkVQT19VUkl9fSIpIjsKICAgIGxvY2FsIHJldmlzaW9uPSIkKHN1YnZlcnNpb25f
X2dldF9wZWdfcmV2aXNpb24gIiR7MTotJHtFU1ZOX1JFUE9fVVJJfX0iKSI7CiAgICBsb2NhbCBT
X2Rlc3Q9IiR7Mn0iOwogICAgaWYgW1sgLXogJHtyZXBvX3VyaX0gXV07IHRoZW4KICAgICAgICBk
aWUgIiR7RVNWTn06IEVTVk5fUkVQT19VUkkgKG9yIHNwZWNpZmllZCBVUkkpIGlzIGVtcHR5LiI7
CiAgICBmaTsKICAgIFtbIC1uICIke0VTVk5fUkVWSVNJT059IiBdXSAmJiByZXZpc2lvbj0iJHtF
U1ZOX1JFVklTSU9OfSI7CiAgICBsb2NhbCBwcm90b2NvbD0iJHtyZXBvX3VyaSUlOip9IjsKICAg
IGNhc2UgIiR7cHJvdG9jb2x9IiBpbiAKICAgICAgICBodHRwIHwgaHR0cHMpCiAgICAgICAgICAg
IGlmICEgYnVpbHRfd2l0aF91c2UgLS1taXNzaW5nIHRydWUgLW8gZGV2LXV0aWwvc3VidmVyc2lv
biB3ZWJkYXYtbmVvbiB3ZWJkYXYtc2VyZiB8fCBidWlsdF93aXRoX3VzZSAtLW1pc3NpbmcgZmFs
c2UgZGV2LXV0aWwvc3VidmVyc2lvbiBub3dlYmRhdjsgdGhlbgogICAgICAgICAgICAgICAgZWNo
bzsKICAgICAgICAgICAgICAgIGVlcnJvciAiSW4gb3JkZXIgdG8gZW1lcmdlIHRoaXMgcGFja2Fn
ZSwgeW91IG5lZWQgdG8iOwogICAgICAgICAgICAgICAgZWVycm9yICJyZWluc3RhbGwgU3VidmVy
c2lvbiB3aXRoIHN1cHBvcnQgZm9yIFdlYkRBVi4iOwogICAgICAgICAgICAgICAgZWVycm9yICJT
dWJ2ZXJzaW9uIHJlcXVpcmVzIGVpdGhlciBOZW9uIG9yIFNlcmYgdG8gc3VwcG9ydCBXZWJEQVYu
IjsKICAgICAgICAgICAgICAgIGVjaG87CiAgICAgICAgICAgICAgICBkaWUgIiR7RVNWTn06IHJl
aW5zdGFsbCBTdWJ2ZXJzaW9uIHdpdGggc3VwcG9ydCBmb3IgV2ViREFWLiI7CiAgICAgICAgICAg
IGZpCiAgICAgICAgOzsKICAgICAgICBzdm4gfCBzdm4rc3NoKQoKICAgICAgICA7OwogICAgICAg
ICopCiAgICAgICAgICAgIGRpZSAiJHtFU1ZOfTogZmV0Y2ggZnJvbSAnJHtwcm90b2NvbH0nIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQuIgogICAgICAgIDs7CiAgICBlc2FjOwogICAgYWRkcmVhZCAi
L2V0Yy9zdWJ2ZXJzaW9uIjsKICAgIGFkZHdyaXRlICIke0VTVk5fU1RPUkVfRElSfSI7CiAgICBp
ZiBbWyAhIC1kICR7RVNWTl9TVE9SRV9ESVJ9IF1dOyB0aGVuCiAgICAgICAgZGVidWctcHJpbnQg
IiR7RlVOQ05BTUV9OiBpbml0aWFsIGNoZWNrb3V0LiBjcmVhdGluZyBzdWJ2ZXJzaW9uIGRpcmVj
dG9yeSI7CiAgICAgICAgbWtkaXIgLXAgIiR7RVNWTl9TVE9SRV9ESVJ9IiB8fCBkaWUgIiR7RVNW
Tn06IGNhbid0IG1rZGlyICR7RVNWTl9TVE9SRV9ESVJ9LiI7CiAgICBmaTsKICAgIGNkICIke0VT
Vk5fU1RPUkVfRElSfSIgfHwgZGllICIke0VTVk59OiBjYW4ndCBjaGRpciB0byAke0VTVk5fU1RP
UkVfRElSfSI7CiAgICBsb2NhbCB3Y19wYXRoPSIkKHN1YnZlcnNpb25fX2dldF93Y19wYXRoICIk
e3JlcG9fdXJpfSIpIjsKICAgIGxvY2FsIG9wdGlvbnM9IiR7RVNWTl9PUFRJT05TfSAtLWNvbmZp
Zy1kaXIgJHtFU1ZOX1NUT1JFX0RJUn0vLnN1YnZlcnNpb24iOwogICAgW1sgLW4gIiR7cmV2aXNp
b259IiBdXSAmJiBvcHRpb25zPSIke29wdGlvbnN9IC1yICR7cmV2aXNpb259IjsKICAgIGlmIFtb
ICIke0VTVk5fT1BUSU9OU30iID0gKi1yKiBdXTsgdGhlbgogICAgICAgIGV3YXJuICJcJHtFU1ZO
X09QVElPTlN9IGNvbnRhaW5zIC1yLCB0aGlzIHVzYWdlIGlzIHVuc3VwcG9ydGVkLiBQbGVhc2Ui
OwogICAgICAgIGV3YXJuICJzZWUgXCR7RVNWTl9SRVBPX1VSSX0iOwogICAgZmk7CiAgICBkZWJ1
Zy1wcmludCAiJHtGVU5DTkFNRX06IHdjX3BhdGggPSBcIiR7d2NfcGF0aH1cIiI7CiAgICBkZWJ1
Zy1wcmludCAiJHtGVU5DTkFNRX06IEVTVk5fT1BUSU9OUyA9IFwiJHtFU1ZOX09QVElPTlN9XCIi
OwogICAgZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiBvcHRpb25zID0gXCIke29wdGlvbnN9XCIi
OwogICAgaWYgW1sgISAtZCAke3djX3BhdGh9Ly5zdm4gXV07IHRoZW4KICAgICAgICBpZiBbWyAt
biAke0VTVk5fT0ZGTElORX0gXV07IHRoZW4KICAgICAgICAgICAgZXdhcm4gIkVTVk5fT0ZGTElO
RSBjYW5ub3QgYmUgdXNlZCB3aGVuIHRoZSB0aGVyZSBpcyBubyBleGlzdGluZyBjaGVja291dC4i
OwogICAgICAgIGZpOwogICAgICAgIGVpbmZvICJzdWJ2ZXJzaW9uIGNoZWNrIG91dCBzdGFydCAt
LT4iOwogICAgICAgIGVpbmZvICIgICAgIHJlcG9zaXRvcnk6ICR7cmVwb191cml9JHtyZXZpc2lv
bjorQH0ke3JldmlzaW9ufSI7CiAgICAgICAgZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiAke0VT
Vk5fRkVUQ0hfQ01EfSAke29wdGlvbnN9ICR7cmVwb191cml9IjsKICAgICAgICBta2RpciAtcCAi
JHtFU1ZOX1BST0pFQ1R9IiB8fCBkaWUgIiR7RVNWTn06IGNhbid0IG1rZGlyICR7RVNWTl9QUk9K
RUNUfS4iOwogICAgICAgIGNkICIke0VTVk5fUFJPSkVDVH0iIHx8IGRpZSAiJHtFU1ZOfTogY2Fu
J3QgY2hkaXIgdG8gJHtFU1ZOX1BST0pFQ1R9IjsKICAgICAgICAke0VTVk5fRkVUQ0hfQ01EfSAk
e29wdGlvbnN9ICIke3JlcG9fdXJpfSIgfHwgZGllICIke0VTVk59OiBjYW4ndCBmZXRjaCB0byAk
e3djX3BhdGh9IGZyb20gJHtyZXBvX3VyaX0uIjsKICAgIGVsc2UKICAgICAgICBpZiBbWyAtbiAk
e0VTVk5fT0ZGTElORX0gXV07IHRoZW4KICAgICAgICAgICAgc3VidmVyc2lvbl93Y19pbmZvICIk
e3JlcG9fdXJpfSIgfHwgZGllICIke0VTVk59OiB1bmtub3duIHByb2JsZW0gb2NjdXJyZWQgd2hp
bGUgYWNjZXNzaW5nIHdvcmtpbmcgY29weS4iOwogICAgICAgICAgICBpZiBbWyAtbiAke0VTVk5f
UkVWSVNJT059ICYmICR7RVNWTl9SRVZJU0lPTn0gIT0gJHtFU1ZOX1dDX1JFVklTSU9OfSBdXTsg
dGhlbgogICAgICAgICAgICAgICAgZGllICIke0VTVk59OiBZb3UgcmVxdWVzdGVkIG9mZi1saW5l
IHVwZGF0aW5nIGFuZCByZXZpc2lvbiAke0VTVk5fUkVWSVNJT059IGJ1dCBvbmx5IHJldmlzaW9u
ICR7RVNWTl9XQ19SRVZJU0lPTn0gaXMgYXZhaWxhYmxlIGxvY2FsbHkuIjsKICAgICAgICAgICAg
Zmk7CiAgICAgICAgICAgIGVpbmZvICJGZXRjaGluZyBkaXNhYmxlZDogVXNpbmcgZXhpc3Rpbmcg
cmVwb3NpdG9yeSBjb3B5IGF0IHJldmlzaW9uICR7RVNWTl9XQ19SRVZJU0lPTn0uIjsKICAgICAg
ICBlbHNlCiAgICAgICAgICAgIHN1YnZlcnNpb25fd2NfaW5mbyAiJHtyZXBvX3VyaX0iIHx8IGRp
ZSAiJHtFU1ZOfTogdW5rbm93biBwcm9ibGVtIG9jY3VycmVkIHdoaWxlIGFjY2Vzc2luZyB3b3Jr
aW5nIGNvcHkuIjsKICAgICAgICAgICAgbG9jYWwgZXN2bl91cF9mcmVxPTsKICAgICAgICAgICAg
aWYgW1sgLW4gJHtFU1ZOX1VQX0ZSRVF9IF1dOyB0aGVuCiAgICAgICAgICAgICAgICBpZiBbWyAt
biAke0VTVk5fVVBfRlJFUS8vW1s6ZGlnaXQ6XV19IF1dOyB0aGVuCiAgICAgICAgICAgICAgICAg
ICAgZGllICIke0VTVk59OiBFU1ZOX1VQX0ZSRVEgbXVzdCBiZSBhbiBpbnRlZ2VyIHZhbHVlIGNv
cnJlc3BvbmRpbmcgdG8gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGhvdXJzIGJldHdlZW4gc3ZuIHVw
LiI7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgLXogJChm
aW5kICIke3djX3BhdGh9Ly5zdm4vZW50cmllcyIgLW1taW4gIiskKChFU1ZOX1VQX0ZSRVEqNjAp
KSIpIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVpbmZvICJGZXRjaGluZyBkaXNh
YmxlZCBzaW5jZSAke0VTVk5fVVBfRlJFUX0gaG91cnMgaGFzIG5vdCBwYXNzZWQgc2luY2UgbGFz
dCB1cGRhdGUuIjsKICAgICAgICAgICAgICAgICAgICAgICAgZWluZm8gIlVzaW5nIGV4aXN0aW5n
IHJlcG9zaXRvcnkgY29weSBhdCByZXZpc2lvbiAke0VTVk5fV0NfUkVWSVNJT059LiI7CiAgICAg
ICAgICAgICAgICAgICAgICAgIGVzdm5fdXBfZnJlcT1ub191cGRhdGU7CiAgICAgICAgICAgICAg
ICAgICAgZmk7CiAgICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgZmk7CiAgICAgICAgICAg
IGlmIFtbIC16ICR7ZXN2bl91cF9mcmVxfSBdXTsgdGhlbgogICAgICAgICAgICAgICAgaWYgW1sg
JHtFU1ZOX1dDX1VSTH0gIT0gJChzdWJ2ZXJzaW9uX19nZXRfcmVwb3NpdG9yeV91cmkgIiR7cmVw
b191cml9IikgXV07IHRoZW4KICAgICAgICAgICAgICAgICAgICBlaW5mbyAic3VidmVyc2lvbiBz
d2l0Y2ggc3RhcnQgLS0+IjsKICAgICAgICAgICAgICAgICAgICBlaW5mbyAiICAgICBvbGQgcmVw
b3NpdG9yeTogJHtFU1ZOX1dDX1VSTH1AJHtFU1ZOX1dDX1JFVklTSU9OfSI7CiAgICAgICAgICAg
ICAgICAgICAgZWluZm8gIiAgICAgbmV3IHJlcG9zaXRvcnk6ICR7cmVwb191cml9JHtyZXZpc2lv
bjorQH0ke3JldmlzaW9ufSI7CiAgICAgICAgICAgICAgICAgICAgZGVidWctcHJpbnQgIiR7RlVO
Q05BTUV9OiAke0VTVk5fU1dJVENIX0NNRH0gJHtvcHRpb25zfSAke3JlcG9fdXJpfSI7CiAgICAg
ICAgICAgICAgICAgICAgY2QgIiR7d2NfcGF0aH0iIHx8IGRpZSAiJHtFU1ZOfTogY2FuJ3QgY2hk
aXIgdG8gJHt3Y19wYXRofSI7CiAgICAgICAgICAgICAgICAgICAgJHtFU1ZOX1NXSVRDSF9DTUR9
ICR7b3B0aW9uc30gJHtyZXBvX3VyaX0gfHwgZGllICIke0VTVk59OiBjYW4ndCB1cGRhdGUgJHt3
Y19wYXRofSBmcm9tICR7cmVwb191cml9IjsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICBlaW5mbyAic3VidmVyc2lvbiB1cGRhdGUgc3RhcnQgLS0+IjsKICAgICAgICAg
ICAgICAgICAgICBlaW5mbyAiICAgICByZXBvc2l0b3J5OiAke3JlcG9fdXJpfSR7cmV2aXNpb246
K0B9JHtyZXZpc2lvbn0iOwogICAgICAgICAgICAgICAgICAgIGRlYnVnLXByaW50ICIke0ZVTkNO
QU1FfTogJHtFU1ZOX1VQREFURV9DTUR9ICR7b3B0aW9uc30iOwogICAgICAgICAgICAgICAgICAg
IGNkICIke3djX3BhdGh9IiB8fCBkaWUgIiR7RVNWTn06IGNhbid0IGNoZGlyIHRvICR7d2NfcGF0
aH0iOwogICAgICAgICAgICAgICAgICAgICR7RVNWTl9VUERBVEVfQ01EfSAke29wdGlvbnN9IHx8
IGRpZSAiJHtFU1ZOfTogY2FuJ3QgdXBkYXRlICR7d2NfcGF0aH0gZnJvbSAke3JlcG9fdXJpfS4i
OwogICAgICAgICAgICAgICAgZmk7CiAgICAgICAgICAgIGZpOwogICAgICAgIGZpOwogICAgZmk7
CiAgICBlaW5mbyAiICAgd29ya2luZyBjb3B5OiAke3djX3BhdGh9IjsKICAgIGlmICEgaGFzICJl
eHBvcnQiICR7RVNWTl9SRVNUUklDVH07IHRoZW4KICAgICAgICBjZCAiJHt3Y19wYXRofSIgfHwg
ZGllICIke0VTVk59OiBjYW4ndCBjaGRpciB0byAke3djX3BhdGh9IjsKICAgICAgICBsb2NhbCBT
PSIke1N9LyR7U19kZXN0fSI7CiAgICAgICAgbWtkaXIgLXAgIiR7U30iOwogICAgICAgIHJzeW5j
IC1ybHBnbyAtLWV4Y2x1ZGU9Ii5zdm4vIiAuICIke1N9IiB8fCBkaWUgIiR7RVNWTn06IGNhbid0
IGV4cG9ydCB0byAke1N9LiI7CiAgICBmaTsKICAgIGVjaG8KfQpzdWJ2ZXJzaW9uX3BrZ19wcmVp
bnN0ICgpIAp7IAogICAgbG9jYWwgcGtnZGF0ZT0kKGRhdGUgIislWSVtJWQgJUg6JU06JVMiKTsK
ICAgIHN1YnZlcnNpb25fd2NfaW5mbyAiJHsxOi0ke0VTVk5fUkVQT19VUkl9fSI7CiAgICBpZiBb
WyAtbiAke0VTQ01fTE9HRElSfSBdXTsgdGhlbgogICAgICAgIGxvY2FsIGRpcj0iJHtST09UfS8k
e0VTQ01fTE9HRElSfS8ke0NBVEVHT1JZfSI7CiAgICAgICAgaWYgW1sgISAtZCAke2Rpcn0gXV07
IHRoZW4KICAgICAgICAgICAgbWtkaXIgLXAgIiR7ZGlyfSIgfHwgZWVycm9yICJGYWlsZWQgdG8g
Y3JlYXRlICcke2Rpcn0nIGZvciBsb2dnaW5nIHN2biByZXZpc2lvbiB0byAnJHtQT1JURElSX1ND
TX0nIjsKICAgICAgICBmaTsKICAgICAgICBsb2NhbCBsb2dtZXNzYWdlPSJzdm46ICR7cGtnZGF0
ZX0gLSAke1BGfToke1NMT1R9IHdhcyBtZXJnZWQgYXQgcmV2aXNpb24gJHtFU1ZOX1dDX1JFVklT
SU9OfSI7CiAgICAgICAgaWYgW1sgLWQgJHtkaXJ9IF1dOyB0aGVuCiAgICAgICAgICAgIGVjaG8g
IiR7bG9nbWVzc2FnZX0iID4+ICIke2Rpcn0vJHtQTn0ubG9nIjsKICAgICAgICBlbHNlCiAgICAg
ICAgICAgIGVlcnJvciAiQ291bGQgbm90IGxvZyB0aGUgbWVzc2FnZSAnJHtsb2dtZXNzYWdlfScg
dG8gJyR7ZGlyfS8ke1BOfS5sb2cnIjsKICAgICAgICBmaTsKICAgIGZpCn0Kc3VidmVyc2lvbl9z
cmNfdW5wYWNrICgpIAp7IAogICAgc3VidmVyc2lvbl9mZXRjaCB8fCBkaWUgIiR7RVNWTn06IHVu
a25vd24gcHJvYmxlbSBvY2N1cnJlZCBpbiBzdWJ2ZXJzaW9uX2ZldGNoLiI7CiAgICBzdWJ2ZXJz
aW9uX2Jvb3RzdHJhcCB8fCBkaWUgIiR7RVNWTn06IHVua25vd24gcHJvYmxlbSBvY2N1cnJlZCBp
biBzdWJ2ZXJzaW9uX2Jvb3RzdHJhcC4iCn0Kc3VidmVyc2lvbl93Y19pbmZvICgpIAp7IAogICAg
bG9jYWwgcmVwb191cmk9IiQoc3VidmVyc2lvbl9fZ2V0X3JlcG9zaXRvcnlfdXJpICIkezE6LSR7
RVNWTl9SRVBPX1VSSX19IikiOwogICAgbG9jYWwgd2NfcGF0aD0iJChzdWJ2ZXJzaW9uX19nZXRf
d2NfcGF0aCAiJHtyZXBvX3VyaX0iKSI7CiAgICBkZWJ1Zy1wcmludCAiJHtGVU5DTkFNRX06IHJl
cG9fdXJpID0gJHtyZXBvX3VyaX0iOwogICAgZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiB3Y19w
YXRoID0gJHt3Y19wYXRofSI7CiAgICBpZiBbWyAhIC1kICR7d2NfcGF0aH0gXV07IHRoZW4KICAg
ICAgICByZXR1cm4gMTsKICAgIGZpOwogICAgZXhwb3J0IEVTVk5fV0NfVVJMPSIkKHN1YnZlcnNp
b25fX3N2bl9pbmZvICIke3djX3BhdGh9IiAiVVJMIikiOwogICAgZXhwb3J0IEVTVk5fV0NfUk9P
VD0iJChzdWJ2ZXJzaW9uX19zdm5faW5mbyAiJHt3Y19wYXRofSIgIlJlcG9zaXRvcnkgUm9vdCIp
IjsKICAgIGV4cG9ydCBFU1ZOX1dDX1VVSUQ9IiQoc3VidmVyc2lvbl9fc3ZuX2luZm8gIiR7d2Nf
cGF0aH0iICJSZXBvc2l0b3J5IFVVSUQiKSI7CiAgICBleHBvcnQgRVNWTl9XQ19SRVZJU0lPTj0i
JChzdWJ2ZXJzaW9uX19zdm5faW5mbyAiJHt3Y19wYXRofSIgIlJldmlzaW9uIikiOwogICAgZXhw
b3J0IEVTVk5fV0NfUEFUSD0iJHt3Y19wYXRofSIKfQp0Yy1hcmNoICgpIAp7IAogICAgdGMtbmlu
amFfbWFnaWNfdG9fYXJjaCBwb3J0YWdlICIkQCIKfQp0Yy1hcmNoLWtlcm5lbCAoKSAKeyAKICAg
IHRjLW5pbmphX21hZ2ljX3RvX2FyY2gga2VybiAiJEAiCn0KdGMtZW5kaWFuICgpIAp7IAogICAg
bG9jYWwgaG9zdD0kMTsKICAgIFtbIC16ICR7aG9zdH0gXV0gJiYgaG9zdD0ke0NUQVJHRVQ6LSR7
Q0hPU1R9fTsKICAgIGhvc3Q9JHtob3N0JSUtKn07CiAgICBjYXNlICR7aG9zdH0gaW4gCiAgICAg
ICAgYWxwaGEqKQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgYXJtKmIq
KQogICAgICAgICAgICBlY2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgYXJtKikKICAgICAgICAg
ICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIGNyaXMqKQogICAgICAgICAgICBlY2hv
IGxpdHRsZQogICAgICAgIDs7CiAgICAgICAgaHBwYSopCiAgICAgICAgICAgIGVjaG8gYmlnCiAg
ICAgICAgOzsKICAgICAgICBpPzg2KikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7
OwogICAgICAgIGlhNjQqKQogICAgICAgICAgICBlY2hvIGxpdHRsZQogICAgICAgIDs7CiAgICAg
ICAgbTY4KikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIG1pcHMqbCop
CiAgICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsKICAgICAgICBtaXBzKikKICAgICAg
ICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHBvd2VycGMqKQogICAgICAgICAgICBl
Y2hvIGJpZwogICAgICAgIDs7CiAgICAgICAgczM5MCopCiAgICAgICAgICAgIGVjaG8gYmlnCiAg
ICAgICAgOzsKICAgICAgICBzaCpiKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7Owog
ICAgICAgIHNoKikKICAgICAgICAgICAgZWNobyBsaXR0bGUKICAgICAgICA7OwogICAgICAgIHNw
YXJjKikKICAgICAgICAgICAgZWNobyBiaWcKICAgICAgICA7OwogICAgICAgIHg4Nl82NCopCiAg
ICAgICAgICAgIGVjaG8gbGl0dGxlCiAgICAgICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBl
Y2hvIHd0ZgogICAgICAgIDs7CiAgICBlc2FjCn0KdGMtZXhwb3J0ICgpIAp7IAogICAgbG9jYWwg
dmFyOwogICAgZm9yIHZhciBpbiAiJEAiOwogICAgZG8KICAgICAgICBbWyAkKHR5cGUgLXQgdGMt
Z2V0JHt2YXJ9KSAhPSAiZnVuY3Rpb24iIF1dICYmIGRpZSAidGMtZXhwb3J0OiBpbnZhbGlkIGV4
cG9ydCB2YXJpYWJsZSAnJHt2YXJ9JyI7CiAgICAgICAgZXZhbCB0Yy1nZXQke3Zhcn0gPiAvZGV2
L251bGw7CiAgICBkb25lCn0KdGMtZ2V0QVIgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIEFSIGFyICIk
QCIKfQp0Yy1nZXRBUyAoKSAKeyAKICAgIHRjLWdldFBST0cgQVMgYXMgIiRAIgp9CnRjLWdldEJV
SUxEX0NDICgpIAp7IAogICAgbG9jYWwgdjsKICAgIGZvciB2IGluIENDX0ZPUl9CVUlMRCBCVUlM
RF9DQyBIT1NUQ0M7CiAgICBkbwogICAgICAgIGlmIFtbIC1uICR7IXZ9IF1dOyB0aGVuCiAgICAg
ICAgICAgIGV4cG9ydCBCVUlMRF9DQz0keyF2fTsKICAgICAgICAgICAgZWNobyAiJHshdn0iOwog
ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICBmaTsKICAgIGRvbmU7CiAgICBsb2NhbCBzZWFy
Y2g9OwogICAgaWYgW1sgLW4gJHtDQlVJTER9IF1dOyB0aGVuCiAgICAgICAgc2VhcmNoPSQodHlw
ZSAtcCAke0NCVUlMRH0tZ2NjKTsKICAgICAgICBzZWFyY2g9JHtzZWFyY2gjIyovfTsKICAgIGZp
OwogICAgc2VhcmNoPSR7c2VhcmNoOi1nY2N9OwogICAgZXhwb3J0IEJVSUxEX0NDPSR7c2VhcmNo
fTsKICAgIGVjaG8gIiR7c2VhcmNofSIKfQp0Yy1nZXRDQyAoKSAKeyAKICAgIHRjLWdldFBST0cg
Q0MgZ2NjICIkQCIKfQp0Yy1nZXRDUFAgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIENQUCBjcHAgIiRA
Igp9CnRjLWdldENYWCAoKSAKeyAKICAgIHRjLWdldFBST0cgQ1hYIGcrKyAiJEAiCn0KdGMtZ2V0
Rjc3ICgpIAp7IAogICAgdGMtZ2V0UFJPRyBGNzcgZjc3ICIkQCIKfQp0Yy1nZXRGQyAoKSAKeyAK
ICAgIHRjLWdldFBST0cgRkMgZ2ZvcnRyYW4gIiRAIgp9CnRjLWdldEdDSiAoKSAKeyAKICAgIHRj
LWdldFBST0cgR0NKIGdjaiAiJEAiCn0KdGMtZ2V0TEQgKCkgCnsgCiAgICB0Yy1nZXRQUk9HIExE
IGxkICIkQCIKfQp0Yy1nZXROTSAoKSAKeyAKICAgIHRjLWdldFBST0cgTk0gbm0gIiRAIgp9CnRj
LWdldFBST0cgKCkgCnsgCiAgICBsb2NhbCB2YXI9JDE7CiAgICBsb2NhbCBwcm9nPSQyOwogICAg
aWYgW1sgLW4gJHshdmFyfSBdXTsgdGhlbgogICAgICAgIGVjaG8gIiR7IXZhcn0iOwogICAgICAg
IHJldHVybiAwOwogICAgZmk7CiAgICBsb2NhbCBzZWFyY2g9OwogICAgW1sgLW4gJDMgXV0gJiYg
c2VhcmNoPSQodHlwZSAtcCAiJDMtJHtwcm9nfSIpOwogICAgW1sgLXogJHtzZWFyY2h9ICYmIC1u
ICR7Q0hPU1R9IF1dICYmIHNlYXJjaD0kKHR5cGUgLXAgIiR7Q0hPU1R9LSR7cHJvZ30iKTsKICAg
IFtbIC1uICR7c2VhcmNofSBdXSAmJiBwcm9nPSR7c2VhcmNoIyMqL307CiAgICBleHBvcnQgJHt2
YXJ9PSR7cHJvZ307CiAgICBlY2hvICIkeyF2YXJ9Igp9CnRjLWdldFJBTkxJQiAoKSAKeyAKICAg
IHRjLWdldFBST0cgUkFOTElCIHJhbmxpYiAiJEAiCn0KdGMtZ2V0U1RSSVAgKCkgCnsgCiAgICB0
Yy1nZXRQUk9HIFNUUklQIHN0cmlwICIkQCIKfQp0Yy1pcy1jcm9zcy1jb21waWxlciAoKSAKeyAK
ICAgIHJldHVybiAkKFtbICR7Q0JVSUxEOi0ke0NIT1NUfX0gIT0gJHtDSE9TVH0gXV0pCn0KdGMt
aXMtc29mdGZsb2F0ICgpIAp7IAogICAgY2FzZSAke0NUQVJHRVR9IGluIAogICAgICAgIGJmaW4q
IHwgaDgzMDAqKQogICAgICAgICAgICBlY2hvICJvbmx5IgogICAgICAgIDs7CiAgICAgICAgKikK
ICAgICAgICAgICAgW1sgJHtDVEFSR0VULy9fLy19ID09ICotc29mdGZsb2F0LSogXV0gJiYgZWNo
byAieWVzIiB8fCBlY2hvICJubyIKICAgICAgICA7OwogICAgZXNhYwp9CnRjLW5pbmphX21hZ2lj
X3RvX2FyY2ggKCkgCnsgCiAgICBmdW5jdGlvbiBuaW5qICgpIAogICAgeyAKICAgICAgICBbWyAk
e3R5cGV9ID09ICJrZXJuIiBdXSAmJiBlY2hvICQxIHx8IGVjaG8gJDIKICAgIH07CiAgICBsb2Nh
bCB0eXBlPSQxOwogICAgbG9jYWwgaG9zdD0kMjsKICAgIFtbIC16ICR7aG9zdH0gXV0gJiYgaG9z
dD0ke0NUQVJHRVQ6LSR7Q0hPU1R9fTsKICAgIGNhc2UgJHtob3N0fSBpbiAKICAgICAgICBhbHBo
YSopCiAgICAgICAgICAgIGVjaG8gYWxwaGEKICAgICAgICA7OwogICAgICAgIGFybSopCiAgICAg
ICAgICAgIGVjaG8gYXJtCiAgICAgICAgOzsKICAgICAgICBhdnIqKQogICAgICAgICAgICBuaW5q
IGF2cjMyIGF2cgogICAgICAgIDs7CiAgICAgICAgYmZpbiopCiAgICAgICAgICAgIG5pbmogYmxh
Y2tmaW4gYmZpbgogICAgICAgIDs7CiAgICAgICAgY3JpcyopCiAgICAgICAgICAgIGVjaG8gY3Jp
cwogICAgICAgIDs7CiAgICAgICAgaHBwYSopCiAgICAgICAgICAgIG5pbmogcGFyaXNjIGhwcGEK
ICAgICAgICA7OwogICAgICAgIGk/ODYqKQogICAgICAgICAgICBpZiBbWyAke3R5cGV9ID09ICJr
ZXJuIiBdXSAmJiBbWyAkKEtWX3RvX2ludCAke0tWfSkgLWx0ICQoS1ZfdG9faW50IDIuNi4yNCkg
fHwgJHtob3N0fSA9PSAqZnJlZWJzZCogXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8gaTM4
NjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWNobyB4ODY7CiAgICAgICAgICAg
IGZpCiAgICAgICAgOzsKICAgICAgICBpYTY0KikKICAgICAgICAgICAgZWNobyBpYTY0CiAgICAg
ICAgOzsKICAgICAgICBtNjgqKQogICAgICAgICAgICBlY2hvIG02OGsKICAgICAgICA7OwogICAg
ICAgIG1pcHMqKQogICAgICAgICAgICBlY2hvIG1pcHMKICAgICAgICA7OwogICAgICAgIG5pb3My
KikKICAgICAgICAgICAgZWNobyBuaW9zMgogICAgICAgIDs7CiAgICAgICAgbmlvcyopCiAgICAg
ICAgICAgIGVjaG8gbmlvcwogICAgICAgIDs7CiAgICAgICAgcG93ZXJwYyopCiAgICAgICAgICAg
IGlmIFtbICQoS1ZfdG9faW50ICR7S1Z9KSAtZ2UgJChLVl90b19pbnQgMi42LjE2KSBdXSAmJiBb
WyAke3R5cGV9ID09ICJrZXJuIiBdXTsgdGhlbgogICAgICAgICAgICAgICAgZWNobyBwb3dlcnBj
OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBpZiBbWyAkKEtWX3RvX2ludCAke0tW
fSkgLWVxICQoS1ZfdG9faW50IDIuNi4xNSkgXV0gJiYgW1sgJHt0eXBlfSA9PSAia2VybiIgXV07
IHRoZW4KICAgICAgICAgICAgICAgICAgICBpZiBbWyAke2hvc3R9ID09IHBvd2VycGM2NCogXV0g
fHwgW1sgJHtQUk9GSUxFX0FSQ0h9ID09ICJwcGM2NCIgXV07IHRoZW4KICAgICAgICAgICAgICAg
ICAgICAgICAgZWNobyBwb3dlcnBjOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgZWNobyBwcGM7CiAgICAgICAgICAgICAgICAgICAgZmk7CiAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHtob3N0fSA9PSBwb3dlcnBj
NjQqIF1dOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gcHBjNjQ7CiAgICAgICAg
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBpZiBbWyAke1BST0ZJTEVf
QVJDSH0gPT0gInBwYzY0IiBdXTsgdGhlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlu
aiBwcGM2NCBwcGM7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVjaG8gcHBjOwogICAgICAgICAgICAgICAgICAgICAgICBmaTsKICAgICAg
ICAgICAgICAgICAgICBmaTsKICAgICAgICAgICAgICAgIGZpOwogICAgICAgICAgICBmaQogICAg
ICAgIDs7CiAgICAgICAgczM5MCopCiAgICAgICAgICAgIGVjaG8gczM5MAogICAgICAgIDs7CiAg
ICAgICAgc2g2NCopCiAgICAgICAgICAgIG5pbmogc2g2NCBzaAogICAgICAgIDs7CiAgICAgICAg
c2gqKQogICAgICAgICAgICBlY2hvIHNoCiAgICAgICAgOzsKICAgICAgICBzcGFyYzY0KikKICAg
ICAgICAgICAgbmluaiBzcGFyYzY0IHNwYXJjCiAgICAgICAgOzsKICAgICAgICBzcGFyYyopCiAg
ICAgICAgICAgIFtbICR7UFJPRklMRV9BUkNIfSA9PSAic3BhcmM2NCIgXV0gJiYgbmluaiBzcGFy
YzY0IHNwYXJjIHx8IGVjaG8gc3BhcmMKICAgICAgICA7OwogICAgICAgIHZheCopCiAgICAgICAg
ICAgIGVjaG8gdmF4CiAgICAgICAgOzsKICAgICAgICB4ODZfNjQqKQogICAgICAgICAgICBpZiBb
WyAke3R5cGV9ID09ICJrZXJuIiBdXSAmJiBbWyAkKEtWX3RvX2ludCAke0tWfSkgLWdlICQoS1Zf
dG9faW50IDIuNi4yNCkgXV07IHRoZW4KICAgICAgICAgICAgICAgIGVjaG8geDg2OwogICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICBuaW5qIHg4Nl82NCBhbWQ2NDsKICAgICAgICAgICAg
ZmkKICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVjaG8gdW5rbm93bgogICAgICAg
IDs7CiAgICBlc2FjCn0KdGVzdC1mbGFnLUNDICgpIAp7IAogICAgdGVzdC1mbGFnLVBST0cgIkND
IiAiJDEiCn0KdGVzdC1mbGFnLUNYWCAoKSAKeyAKICAgIHRlc3QtZmxhZy1QUk9HICJDWFgiICIk
MSIKfQp0ZXN0LWZsYWctRjc3ICgpIAp7IAogICAgdGVzdC1mbGFnLVBST0cgIkY3NyIgIiQxIgp9
CnRlc3QtZmxhZy1GQyAoKSAKeyAKICAgIHRlc3QtZmxhZy1QUk9HICJGQyIgIiQxIgp9CnRlc3Qt
ZmxhZy1QUk9HICgpIAp7IAogICAgbG9jYWwgY29tcD0kMTsKICAgIGxvY2FsIGZsYWdzPSIkMiI7
CiAgICBbWyAteiAke2NvbXB9IHx8IC16ICR7ZmxhZ3N9IF1dICYmIHJldHVybiAxOwogICAgbG9j
YWwgUFJPRz0kKHRjLWdldCR7Y29tcH0pOwogICAgJHtQUk9HfSAke2ZsYWdzfSAtUyAtbyAvZGV2
L251bGwgLXhjIC9kZXYvbnVsbCA+IC9kZXYvbnVsbCAyPiYxCn0KdGVzdC1mbGFncyAoKSAKeyAK
ICAgIHRlc3QtZmxhZ3MtQ0MgIiRAIgp9CnRlc3QtZmxhZ3MtQ0MgKCkgCnsgCiAgICB0ZXN0LWZs
YWdzLVBST0cgIkNDIiAiJEAiCn0KdGVzdC1mbGFncy1DWFggKCkgCnsgCiAgICB0ZXN0LWZsYWdz
LVBST0cgIkNYWCIgIiRAIgp9CnRlc3QtZmxhZ3MtRjc3ICgpIAp7IAogICAgdGVzdC1mbGFncy1Q
Uk9HICJGNzciICIkQCIKfQp0ZXN0LWZsYWdzLUZDICgpIAp7IAogICAgdGVzdC1mbGFncy1QUk9H
ICJGQyIgIiRAIgp9CnRlc3QtZmxhZ3MtUFJPRyAoKSAKeyAKICAgIGxvY2FsIGNvbXA9JDE7CiAg
ICBsb2NhbCBmbGFnczsKICAgIGxvY2FsIHg7CiAgICBzaGlmdDsKICAgIFtbIC16ICR7Y29tcH0g
XV0gJiYgcmV0dXJuIDE7CiAgICB4PSIiOwogICAgZm9yIHggaW4gIiRAIjsKICAgIGRvCiAgICAg
ICAgdGVzdC1mbGFnLSR7Y29tcH0gIiR7eH0iICYmIGZsYWdzPSIke2ZsYWdzfSR7ZmxhZ3M6KyB9
JHt4fSI7CiAgICBkb25lOwogICAgZWNobyAiJHtmbGFnc30iOwogICAgW1sgLW4gJHtmbGFnc30g
XV0KfQp0ZXN0X2ZsYWcgKCkgCnsgCiAgICBld2FybiAidGVzdF9mbGFnOiBkZXByZWNhdGVkLCBw
bGVhc2UgdXNlIHRlc3QtZmxhZ3MoKSEiIDE+JjI7CiAgICB0ZXN0LWZsYWdzLUNDICIkQCIKfQp0
ZXN0X3ZlcnNpb25faW5mbyAoKSAKeyAKICAgIGlmIFtbICQoJCh0Yy1nZXRDQykgLS12ZXJzaW9u
IDI+JjEpID09ICokMSogXV07IHRoZW4KICAgICAgICByZXR1cm4gMDsKICAgIGVsc2UKICAgICAg
ICByZXR1cm4gMTsKICAgIGZpCn0KdHJlZWNvcHkgKCkgCnsgCiAgICBkZXN0PSR7ISN9OwogICAg
ZmlsZXNfY291bnQ9JCM7CiAgICB3aGlsZSAoKCAkIyA+IDEgKSk7IGRvCiAgICAgICAgZGlyc3Ry
dWN0PSQoZGlybmFtZSAiJDEiKTsKICAgICAgICBta2RpciAtcCAiJHtkZXN0fS8ke2RpcnN0cnVj
dH0iOwogICAgICAgIGNwIC1wUFIgIiQxIiAiJHtkZXN0fS8ke2RpcnN0cnVjdH0iOwogICAgICAg
IHNoaWZ0OwogICAgZG9uZQp9CnVucGFja19tYWtlc2VsZiAoKSAKeyAKICAgIGxvY2FsIHNyY19p
bnB1dD0kezE6LSR7QX19OwogICAgbG9jYWwgc3JjPSQoZmluZF91bnBhY2thYmxlX2ZpbGUgIiR7
c3JjX2lucHV0fSIpOwogICAgbG9jYWwgc2tpcD0kMjsKICAgIGxvY2FsIGV4ZT0kMzsKICAgIFtb
IC16ICR7c3JjfSBdXSAmJiBkaWUgIkNvdWxkIG5vdCBsb2NhdGUgc291cmNlIGZvciAnJHtzcmNf
aW5wdXR9JyI7CiAgICBsb2NhbCBzaHJ0c3JjPSQoYmFzZW5hbWUgIiR7c3JjfSIpOwogICAgZWNo
byAiPj4+IFVucGFja2luZyAke3NocnRzcmN9IHRvICR7UFdEfSI7CiAgICBpZiBbWyAteiAke3Nr
aXB9IF1dOyB0aGVuCiAgICAgICAgbG9jYWwgdmVyPSQoZ3JlcCAtYSAnIy4qTWFrZXNlbGYnICIk
e3NyY30iIHwgYXdrICd7cHJpbnQgJE5GfScpOwogICAgICAgIGxvY2FsIHNraXA9MDsKICAgICAg
ICBleGU9dGFpbDsKICAgICAgICBjYXNlICR7dmVyfSBpbiAKICAgICAgICAgICAgMS41LiogfCAx
LjYuMC1udikKICAgICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF5za2lwPSAiJHtzcmN9IiB8
IGN1dCAtZD0gLWYyKQogICAgICAgICAgICA7OwogICAgICAgICAgICAyLjAgfCAyLjAuMSkKICAg
ICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF4nCSd0YWlsICIke3NyY30iIHwgYXdrICd7cHJp
bnQgJDJ9JyB8IGN1dCAtYjItKQogICAgICAgICAgICA7OwogICAgICAgICAgICAyLjEuMSkKICAg
ICAgICAgICAgICAgIHNraXA9JChncmVwIC1hIF5vZmZzZXQ9ICIke3NyY30iIHwgYXdrICd7cHJp
bnQgJDJ9JyB8IGN1dCAtYjItKTsKICAgICAgICAgICAgICAgIGxldCBza2lwPSJza2lwICsgMSIK
ICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjIpCiAgICAgICAgICAgICAgICBza2lwPSQo
Z3JlcCAtYSBeb2Zmc2V0PSAiJHtzcmN9IiB8IGF3ayAne3ByaW50ICQzfScgfCBoZWFkIC1uIDEp
OwogICAgICAgICAgICAgICAgbGV0IHNraXA9InNraXAgKyAxIgogICAgICAgICAgICA7OwogICAg
ICAgICAgICAyLjEuMykKICAgICAgICAgICAgICAgIHNraXA9YGdyZXAgLWEgXm9mZnNldD0gIiR7
c3JjfSIgfCBhd2sgJ3twcmludCAkM30nYDsKICAgICAgICAgICAgICAgIGxldCBza2lwPSJza2lw
ICsgMSIKICAgICAgICAgICAgOzsKICAgICAgICAgICAgMi4xLjQgfCAyLjEuNSkKICAgICAgICAg
ICAgICAgIHNraXA9JChncmVwIC1hIG9mZnNldD0uKmhlYWQuKndjICIke3NyY30iIHwgYXdrICd7
cHJpbnQgJDN9JyB8IGhlYWQgLW4gMSk7CiAgICAgICAgICAgICAgICBza2lwPSQoaGVhZCAtbiAk
e3NraXB9ICIke3NyY30iIHwgd2MgLWMpOwogICAgICAgICAgICAgICAgZXhlPSJkZCIKICAgICAg
ICAgICAgOzsKICAgICAgICAgICAgKikKICAgICAgICAgICAgICAgIGVlcnJvciAiSSdtIHNvcnJ5
LCBidXQgSSB3YXMgdW5hYmxlIHRvIHN1cHBvcnQgdGhlIE1ha2VzZWxmIGZpbGUuIjsKICAgICAg
ICAgICAgICAgIGVlcnJvciAiVGhlIHZlcnNpb24gSSBkZXRlY3RlZCB3YXMgJyR7dmVyfScuIjsK
ICAgICAgICAgICAgICAgIGVlcnJvciAiUGxlYXNlIGZpbGUgYSBidWcgYWJvdXQgdGhlIGZpbGUg
JHtzaHJ0c3JjfSBhdCI7CiAgICAgICAgICAgICAgICBlZXJyb3IgImh0dHA6Ly9idWdzLmdlbnRv
by5vcmcvIHNvIHRoYXQgc3VwcG9ydCBjYW4gYmUgYWRkZWQuIjsKICAgICAgICAgICAgICAgIGRp
ZSAibWFrZXNlbGYgdmVyc2lvbiAnJHt2ZXJ9JyBub3Qgc3VwcG9ydGVkIgogICAgICAgICAgICA7
OwogICAgICAgIGVzYWM7CiAgICAgICAgZGVidWctcHJpbnQgIkRldGVjdGVkIE1ha2VzZWxmIHZl
cnNpb24gJHt2ZXJ9IC4uLiB1c2luZyAke3NraXB9IGFzIG9mZnNldCI7CiAgICBmaTsKICAgIGNh
c2UgJHtleGV9IGluIAogICAgICAgIHRhaWwpCiAgICAgICAgICAgIGV4ZT0idGFpbCAtbiArJHtz
a2lwfSAnJHtzcmN9JyIKICAgICAgICA7OwogICAgICAgIGRkKQogICAgICAgICAgICBleGU9ImRk
IGlicz0ke3NraXB9IHNraXA9MSBvYnM9MTAyNCBjb252PXN5bmMgaWY9JyR7c3JjfSciCiAgICAg
ICAgOzsKICAgICAgICAqKQogICAgICAgICAgICBkaWUgIm1ha2VzZWxmIGNhbnQgaGFuZGxlIGV4
ZSAnJHtleGV9JyIKICAgICAgICA7OwogICAgZXNhYzsKICAgIGxvY2FsIHRtcGZpbGU9JChlbWt0
ZW1wKTsKICAgIGV2YWwgJHtleGV9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgNTEyID4gIiR7dG1w
ZmlsZX0iOwogICAgbG9jYWwgZmlsZXR5cGU9JChmaWxlIC1iICIke3RtcGZpbGV9Iik7CiAgICBj
YXNlICR7ZmlsZXR5cGV9IGluIAogICAgICAgICp0YXJcIGFyY2hpdmUqKQogICAgICAgICAgICBl
dmFsICR7ZXhlfSB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC0KICAgICAgICA7OwogICAgICAg
IGJ6aXAyKikKICAgICAgICAgICAgZXZhbCAke2V4ZX0gfCBiemlwMiAtZGMgfCB0YXIgLS1uby1z
YW1lLW93bmVyIC14ZiAtCiAgICAgICAgOzsKICAgICAgICBnemlwKikKICAgICAgICAgICAgZXZh
bCAke2V4ZX0gfCB0YXIgLS1uby1zYW1lLW93bmVyIC14emYgLQogICAgICAgIDs7CiAgICAgICAg
Y29tcHJlc3MqKQogICAgICAgICAgICBldmFsICR7ZXhlfSB8IGd1bnppcCB8IHRhciAtLW5vLXNh
bWUtb3duZXIgLXhmIC0KICAgICAgICA7OwogICAgICAgICopCiAgICAgICAgICAgIGVlcnJvciAi
VW5rbm93biBmaWxldHlwZSBcIiR7ZmlsZXR5cGV9XCIgPyI7CiAgICAgICAgICAgIGZhbHNlCiAg
ICAgICAgOzsKICAgIGVzYWM7CiAgICBfcGlwZXN0YXR1cz0iJHtQSVBFU1RBVFVTWypdfSI7CiAg
ICBbWyAiJHtfcGlwZXN0YXR1cy8vIC99IiAtZXEgMCBdXSB8fCBkaWUgImZhaWx1cmUgdW5wYWNr
aW5nICgke2ZpbGV0eXBlfSkgbWFrZXNlbGYgJHtzaHJ0c3JjfSAoJyR7dmVyfScgKyR7c2tpcH0p
Igp9CnVucGFja19wZHYgKCkgCnsgCiAgICBsb2NhbCBzcmM9JChmaW5kX3VucGFja2FibGVfZmls
ZSAiJDEiKTsKICAgIGxvY2FsIHNpemVvZmZfdD0kMjsKICAgIFtbIC16ICR7c3JjfSBdXSAmJiBk
aWUgIkNvdWxkIG5vdCBsb2NhdGUgc291cmNlIGZvciAnJDEnIjsKICAgIFtbIC16ICR7c2l6ZW9m
Zl90fSBdXSAmJiBkaWUgIk5vIGlkZWEgd2hhdCBvZmZfdCBzaXplIHdhcyB1c2VkIGZvciB0aGlz
IHBkdiA6KCI7CiAgICBsb2NhbCBzaHJ0c3JjPSQoYmFzZW5hbWUgIiR7c3JjfSIpOwogICAgZWNo
byAiPj4+IFVucGFja2luZyAke3NocnRzcmN9IHRvICR7UFdEfSI7CiAgICBsb2NhbCBtZXRhc2tp
cD0kKHRhaWwgLWMgJHtzaXplb2ZmX3R9ICIke3NyY30iIHwgaGV4ZHVtcCAtZSBcIiVpXCIpOwog
ICAgbG9jYWwgdGFpbHNraXA9JCh0YWlsIC1jICQoKCR7c2l6ZW9mZl90fSoyKSkgIiR7c3JjfSIg
fCBoZWFkIC1jICR7c2l6ZW9mZl90fSB8IGhleGR1bXAgLWUgXCIlaVwiKTsKICAgIGxvY2FsIG1l
dGFmaWxlPSQoZW1rdGVtcCk7CiAgICB0YWlsIC1jICskKCgke21ldGFza2lwfSsxKSkgIiR7c3Jj
fSIgPiAiJHttZXRhZmlsZX0iOwogICAgbG9jYWwgZGF0YWZpbGU9JCh0YWlsIC1jICskKCgke21l
dGFza2lwfSsxKSkgIiR7c3JjfSIgfCBzdHJpbmdzIHwgaGVhZCAtbiAxKTsKICAgIGRhdGFmaWxl
PSQoYmFzZW5hbWUgIiR7ZGF0YWZpbGV9Iik7CiAgICBsb2NhbCB0bXBmaWxlPSQoZW1rdGVtcCk7
CiAgICB0YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVsbCB8IGhl
YWQgLWMgNTEyID4gJHt0bXBmaWxlfTsKICAgIGxvY2FsIGlzY29tcHJlc3NlZD0kKGZpbGUgLWIg
IiR7dG1wZmlsZX0iKTsKICAgIGlmIFtbICR7aXNjb21wcmVzc2VkOjA6OH0gPT0gImNvbXByZXNz
IiBdXTsgdGhlbgogICAgICAgIGlzY29tcHJlc3NlZD0xOwogICAgICAgIG12ICR7dG1wZmlsZX17
LC5afTsKICAgICAgICBndW56aXAgJHt0bXBmaWxlfTsKICAgIGVsc2UKICAgICAgICBpc2NvbXBy
ZXNzZWQ9MDsKICAgIGZpOwogICAgbG9jYWwgaXN0YXI9JChmaWxlIC1iICIke3RtcGZpbGV9Iik7
CiAgICBpZiBbWyAke2lzdGFyOjA6OX0gPT0gIlBPU0lYIHRhciIgXV07IHRoZW4KICAgICAgICBp
c3Rhcj0xOwogICAgZWxzZQogICAgICAgIGlzdGFyPTA7CiAgICBmaTsKICAgIGlmIFsgJHtpc2Nv
bXByZXNzZWR9IC1lcSAxIF07IHRoZW4KICAgICAgICBpZiBbICR7aXN0YXJ9IC1lcSAxIF07IHRo
ZW4KICAgICAgICAgICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkpICR7c3JjfSAyPiAvZGV2
L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNraXB9LSR7dGFpbHNraXB9KSkgfCB0YXIgLXh6ZiAt
OwogICAgICAgIGVsc2UKICAgICAgICAgICAgdGFpbCAtYyArJCgoJHt0YWlsc2tpcH0rMSkpICR7
c3JjfSAyPiAvZGV2L251bGwgfCBoZWFkIC1jICQoKCR7bWV0YXNraXB9LSR7dGFpbHNraXB9KSkg
fCBnemlwIC1kYyA+ICR7ZGF0YWZpbGV9OwogICAgICAgIGZpOwogICAgZWxzZQogICAgICAgIGlm
IFsgJHtpc3Rhcn0gLWVxIDEgXTsgdGhlbgogICAgICAgICAgICB0YWlsIC1jICskKCgke3RhaWxz
a2lwfSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVsbCB8IGhlYWQgLWMgJCgoJHttZXRhc2tpcH0tJHt0
YWlsc2tpcH0pKSB8IHRhciAtLW5vLXNhbWUtb3duZXIgLXhmIC07CiAgICAgICAgZWxzZQogICAg
ICAgICAgICB0YWlsIC1jICskKCgke3RhaWxza2lwfSsxKSkgJHtzcmN9IDI+IC9kZXYvbnVsbCB8
IGhlYWQgLWMgJCgoJHttZXRhc2tpcH0tJHt0YWlsc2tpcH0pKSA+ICR7ZGF0YWZpbGV9OwogICAg
ICAgIGZpOwogICAgZmk7CiAgICB0cnVlCn0KdmFsaWRhdGVfZGVza3RvcF9lbnRyaWVzICgpIAp7
IAogICAgaWYgW1sgLXggL3Vzci9iaW4vZGVza3RvcC1maWxlLXZhbGlkYXRlIF1dOyB0aGVuCiAg
ICAgICAgZWluZm8gIkNoZWNraW5nIGRlc2t0b3AgZW50cnkgdmFsaWRpdHkiOwogICAgICAgIGxv
Y2FsIGRpcmVjdG9yaWVzPSIiOwogICAgICAgIGZvciBkIGluIC91c3Ivc2hhcmUvYXBwbGljYXRp
b25zICRAOwogICAgICAgIGRvCiAgICAgICAgICAgIFtbIC1kICR7RH0ke2R9IF1dICYmIGRpcmVj
dG9yaWVzPSIke2RpcmVjdG9yaWVzfSAke0R9JHtkfSI7CiAgICAgICAgZG9uZTsKICAgICAgICBp
ZiBbWyAtbiAke2RpcmVjdG9yaWVzfSBdXTsgdGhlbgogICAgICAgICAgICBmb3IgRklMRSBpbiAk
KGZpbmQgJHtkaXJlY3Rvcmllc30gLW5hbWUgIipcLmRlc2t0b3AiIAkJCQkJCQktbm90IC1wYXRo
ICcqLmhpZGRlbionIHwgc29ydCAtdSAyPi9kZXYvbnVsbCk7CiAgICAgICAgICAgIGRvCiAgICAg
ICAgICAgICAgICBsb2NhbCB0ZW1wPSQoZGVza3RvcC1maWxlLXZhbGlkYXRlICR7RklMRX0gfCBn
cmVwIC12ICJ3YXJuaW5nOiIgfCAJCQkJCQkJCXNlZCAtZSAic3xlcnJvcjogfHwiIC1lICJzfCR7
RklMRX06fC0tfGciICk7CiAgICAgICAgICAgICAgICBbWyAtbiAkdGVtcCBdXSAmJiBlbG9nICR7
dGVtcC8tLS8ke0ZJTEUvJHtEfS99On07CiAgICAgICAgICAgIGRvbmU7CiAgICAgICAgZmk7CiAg
ICAgICAgZWNobyAiIjsKICAgIGVsc2UKICAgICAgICBlaW5mbyAiUGFzc2luZyBkZXNrdG9wIGVu
dHJ5IHZhbGlkaXR5IGNoZWNrLiBJbnN0YWxsIGRldi11dGlsL2Rlc2t0b3AtZmlsZS11dGlscywg
aWYgeW91IHdhbnQgdG8gaGVscCB0byBpbXByb3ZlIEdlbnRvby4iOwogICAgZmkKfQp2ZXJzaW9u
X2NvbXBhcmUgKCkgCnsgCiAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvbjsKICAgIGxv
Y2FsIHZlcl9hPSR7MX0gdmVyX2I9JHsyfSBwYXJ0c19hIHBhcnRzX2IgY3VyX2lkeF9hPTAgY3Vy
X2lkeF9iPTA7CiAgICBwYXJ0c19hPSgkKGdldF9hbGxfdmVyc2lvbl9jb21wb25lbnRzICIke3Zl
cl9hfSIgKSk7CiAgICBwYXJ0c19iPSgkKGdldF9hbGxfdmVyc2lvbl9jb21wb25lbnRzICIke3Zl
cl9ifSIgKSk7CiAgICBsb2NhbCBpbmZfbG9vcD0wOwogICAgd2hpbGUgdHJ1ZTsgZG8KICAgICAg
ICBpbmZfbG9vcD0kKCggJHtpbmZfbG9vcH0gKyAxICkpOwogICAgICAgIFtbICR7aW5mX2xvb3B9
IC1ndCAyMCBdXSAmJiBkaWUgInZlcnNpb25hdG9yIGNvbXBhcmUgYnVnIFtudW1iZXJzLCAke3Zl
cl9hfSwgJHt2ZXJfYn1dIjsKICAgICAgICBsb2NhbCBjdXJfdG9rX2E9JHtwYXJ0c19hWyR7Y3Vy
X2lkeF9hfV19OwogICAgICAgIGxvY2FsIGN1cl90b2tfYj0ke3BhcnRzX2JbJHtjdXJfaWR4X2J9
XX07CiAgICAgICAgaWYgW1sgLW4gJHtjdXJfdG9rX2F9IF1dICYmIFtbIC16ICR7Y3VyX3Rva19h
Ly9bWzpkaWdpdDpdXX0gXV07IHRoZW4KICAgICAgICAgICAgY3VyX2lkeF9hPSQoKCAke2N1cl9p
ZHhfYX0gKyAxICkpOwogICAgICAgICAgICBbWyAke3BhcnRzX2FbJHtjdXJfaWR4X2F9XX0gPT0g
Ii4iIF1dICYmIGN1cl9pZHhfYT0kKCggJHtjdXJfaWR4X2F9ICsgMSApKTsKICAgICAgICBlbHNl
CiAgICAgICAgICAgIGN1cl90b2tfYT0iIjsKICAgICAgICBmaTsKICAgICAgICBpZiBbWyAtbiAk
e2N1cl90b2tfYn0gXV0gJiYgW1sgLXogJHtjdXJfdG9rX2IvL1tbOmRpZ2l0Ol1dfSBdXTsgdGhl
bgogICAgICAgICAgICBjdXJfaWR4X2I9JCgoICR7Y3VyX2lkeF9ifSArIDEgKSk7CiAgICAgICAg
ICAgIFtbICR7cGFydHNfYlske2N1cl9pZHhfYn1dfSA9PSAiLiIgXV0gJiYgY3VyX2lkeF9iPSQo
KCAke2N1cl9pZHhfYn0gKyAxICkpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgY3VyX3Rva19i
PSIiOwogICAgICAgIGZpOwogICAgICAgIFtbIC16ICR7Y3VyX3Rva19hfSBdXSAmJiBbWyAteiAk
e2N1cl90b2tfYn0gXV0gJiYgYnJlYWs7CiAgICAgICAgY3VyX3Rva19hPSR7Y3VyX3Rva19hIyMr
KDApfTsKICAgICAgICBjdXJfdG9rX2I9JHtjdXJfdG9rX2IjIysoMCl9OwogICAgICAgIFtbIC16
ICR7Y3VyX3Rva19hfSBdXSAmJiBjdXJfdG9rX2E9MDsKICAgICAgICBbWyAteiAke2N1cl90b2tf
Yn0gXV0gJiYgY3VyX3Rva19iPTA7CiAgICAgICAgW1sgJHtjdXJfdG9rX2F9IC1sdCAke2N1cl90
b2tfYn0gXV0gJiYgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmICYmIHJldHVybiAxOwog
ICAgICAgIFtbICR7Y3VyX3Rva19hfSAtZ3QgJHtjdXJfdG9rX2J9IF1dICYmIF9fdmVyc2lvbmF0
b3Jfc2hvcHRfdG9nZ2xlIG9mZiAmJiByZXR1cm4gMzsKICAgIGRvbmU7CiAgICBsb2NhbCBsZXR0
ZXJfYT07CiAgICBsZXR0ZXJfYT0ke3BhcnRzX2FbJHtjdXJfaWR4X2F9XX07CiAgICBpZiBbWyAk
eyNsZXR0ZXJfYX0gLWVxIDEgXV0gJiYgW1sgLXogJHtsZXR0ZXJfYS9bYS16XX0gXV07IHRoZW4K
ICAgICAgICBjdXJfaWR4X2E9JCgoICR7Y3VyX2lkeF9hfSArIDEgKSk7CiAgICBlbHNlCiAgICAg
ICAgbGV0dGVyX2E9IkAiOwogICAgZmk7CiAgICBsb2NhbCBsZXR0ZXJfYj07CiAgICBsZXR0ZXJf
Yj0ke3BhcnRzX2JbJHtjdXJfaWR4X2J9XX07CiAgICBpZiBbWyAkeyNsZXR0ZXJfYn0gLWVxIDEg
XV0gJiYgW1sgLXogJHtsZXR0ZXJfYi9bYS16XX0gXV07IHRoZW4KICAgICAgICBjdXJfaWR4X2I9
JCgoICR7Y3VyX2lkeF9ifSArIDEgKSk7CiAgICBlbHNlCiAgICAgICAgbGV0dGVyX2I9IkAiOwog
ICAgZmk7CiAgICBbWyAke2xldHRlcl9hfSA8ICR7bGV0dGVyX2J9IF1dICYmIF9fdmVyc2lvbmF0
b3Jfc2hvcHRfdG9nZ2xlIG9mZiAmJiByZXR1cm4gMTsKICAgIFtbICR7bGV0dGVyX2F9ID4gJHts
ZXR0ZXJfYn0gXV0gJiYgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmICYmIHJldHVybiAz
OwogICAgbG9jYWwgc3VmZml4IHJ1bGUgcGFydCByX2x0IHJfZ3Q7CiAgICBmb3IgcnVsZSBpbiAi
YWxwaGE9MSIgImJldGE9MSIgInByZT0xIiAicmM9MSIgInA9MyIgInI9MyI7CiAgICBkbwogICAg
ICAgIHN1ZmZpeD0ke3J1bGUlJT0qfTsKICAgICAgICByX2x0PSR7cnVsZSMjKj19OwogICAgICAg
IFtbICR7cl9sdH0gLWVxIDEgXV0gJiYgcl9ndD0zIHx8IHJfZ3Q9MTsKICAgICAgICBsb2NhbCBz
dWZmaXhfYT07CiAgICAgICAgZm9yIHBhcnQgaW4gJHtwYXJ0c19hW0BdfTsKICAgICAgICBkbwog
ICAgICAgICAgICBbWyAke3BhcnQjJHtzdWZmaXh9fSAhPSAke3BhcnR9IF1dICYmIFtbIC16ICR7
cGFydCMjJHtzdWZmaXh9KihbWzpkaWdpdDpdXSl9IF1dICYmIHN1ZmZpeF9hPSR7cGFydCMke3N1
ZmZpeH19MDsKICAgICAgICBkb25lOwogICAgICAgIGxvY2FsIHN1ZmZpeF9iPTsKICAgICAgICBm
b3IgcGFydCBpbiAke3BhcnRzX2JbQF19OwogICAgICAgIGRvCiAgICAgICAgICAgIFtbICR7cGFy
dCMke3N1ZmZpeH19ICE9ICR7cGFydH0gXV0gJiYgW1sgLXogJHtwYXJ0IyMke3N1ZmZpeH0qKFtb
OmRpZ2l0Ol1dKX0gXV0gJiYgc3VmZml4X2I9JHtwYXJ0IyR7c3VmZml4fX0wOwogICAgICAgIGRv
bmU7CiAgICAgICAgW1sgLXogJHtzdWZmaXhfYX0gXV0gJiYgW1sgLXogJHtzdWZmaXhfYn0gXV0g
JiYgY29udGludWU7CiAgICAgICAgW1sgLXogJHtzdWZmaXhfYX0gXV0gJiYgX192ZXJzaW9uYXRv
cl9zaG9wdF90b2dnbGUgb2ZmICYmIHJldHVybiAke3JfZ3R9OwogICAgICAgIFtbIC16ICR7c3Vm
Zml4X2J9IF1dICYmIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZiAmJiByZXR1cm4gJHty
X2x0fTsKICAgICAgICBzdWZmaXhfYT0ke3N1ZmZpeF9hIyMrKDApfTsKICAgICAgICBzdWZmaXhf
YT0ke3N1ZmZpeF9hOi0wfTsKICAgICAgICBzdWZmaXhfYj0ke3N1ZmZpeF9iIyMrKDApfTsKICAg
ICAgICBzdWZmaXhfYj0ke3N1ZmZpeF9iOi0wfTsKICAgICAgICBbWyAke3N1ZmZpeF9hfSAtbHQg
JHtzdWZmaXhfYn0gXV0gJiYgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmICYmIHJldHVy
biAxOwogICAgICAgIFtbICR7c3VmZml4X2F9IC1ndCAke3N1ZmZpeF9ifSBdXSAmJiBfX3ZlcnNp
b25hdG9yX3Nob3B0X3RvZ2dsZSBvZmYgJiYgcmV0dXJuIDM7CiAgICBkb25lOwogICAgX192ZXJz
aW9uYXRvcl9zaG9wdF90b2dnbGUgb2ZmOwogICAgcmV0dXJuIDIKfQp2ZXJzaW9uX2lzX2F0X2xl
YXN0ICgpIAp7IAogICAgX192ZXJzaW9uYXRvcl9zaG9wdF90b2dnbGUgb247CiAgICBsb2NhbCB3
YW50X3M9IiQxIiBoYXZlX3M9IiR7MjotJHtQVlJ9fSIgcjsKICAgIHZlcnNpb25fY29tcGFyZSAi
JHt3YW50X3N9IiAiJHtoYXZlX3N9IjsKICAgIHI9JD87CiAgICBjYXNlICRyIGluIAogICAgICAg
IDEgfCAyKQogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvZmY7CiAgICAg
ICAgICAgIHJldHVybiAwCiAgICAgICAgOzsKICAgICAgICAzKQogICAgICAgICAgICBfX3ZlcnNp
b25hdG9yX3Nob3B0X3RvZ2dsZSBvZmY7CiAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgOzsK
ICAgICAgICAqKQogICAgICAgICAgICBfX3ZlcnNpb25hdG9yX3Nob3B0X3RvZ2dsZSBvZmY7CiAg
ICAgICAgICAgIGRpZSAidmVyc2lvbmF0b3IgY29tcGFyZSBidWcgW2F0bGVhc3QsICR7d2FudF9z
fSwgJHtoYXZlX3N9LCAke3J9XSIKICAgICAgICA7OwogICAgZXNhYzsKICAgIF9fdmVyc2lvbmF0
b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9CnZlcnNpb25fc29ydCAoKSAKeyAKICAgIF9fdmVyc2lvbmF0
b3Jfc2hvcHRfdG9nZ2xlIG9uOwogICAgbG9jYWwgaXRlbXM9IGxlZnQ9MDsKICAgIGl0ZW1zPSgk
QCk7CiAgICB3aGlsZSBbWyAke2xlZnR9IC1sdCAkeyNpdGVtc1tAXX0gXV07IGRvCiAgICAgICAg
bG9jYWwgbG93ZXN0X2lkeD0ke2xlZnR9OwogICAgICAgIGxvY2FsIGlkeD0kKCggJHtsb3dlc3Rf
aWR4fSArIDEgKSk7CiAgICAgICAgd2hpbGUgW1sgJHtpZHh9IC1sdCAkeyNpdGVtc1tAXX0gXV07
IGRvCiAgICAgICAgICAgIHZlcnNpb25fY29tcGFyZSAiJHtpdGVtc1ske2xvd2VzdF9pZHh9XX0i
ICIke2l0ZW1zWyR7aWR4fV19IjsKICAgICAgICAgICAgW1sgJD8gLWVxIDMgXV0gJiYgbG93ZXN0
X2lkeD0ke2lkeH07CiAgICAgICAgICAgIGlkeD0kKCggJHtpZHh9ICsgMSApKTsKICAgICAgICBk
b25lOwogICAgICAgIGxvY2FsIHRtcD0ke2l0ZW1zWyR7bG93ZXN0X2lkeH1dfTsKICAgICAgICBp
dGVtc1ske2xvd2VzdF9pZHh9XT0ke2l0ZW1zWyR7bGVmdH1dfTsKICAgICAgICBpdGVtc1ske2xl
ZnR9XT0ke3RtcH07CiAgICAgICAgbGVmdD0kKCggJHtsZWZ0fSArIDEgKSk7CiAgICBkb25lOwog
ICAgZWNobyAke2l0ZW1zW0BdfTsKICAgIF9fdmVyc2lvbmF0b3Jfc2hvcHRfdG9nZ2xlIG9mZgp9
CmRlY2xhcmUgLXggQUxTQV9DQVJEUz0iYWxpNTQ1MSBhbHM0MDAwIGF0aWl4cCBhdGlpeHAtbW9k
ZW0gYnQ4N3ggY2EwMTA2IGNtaXBjaSBlbXUxMGsxIGVtdTEwazF4IGVuczEzNzAgZW5zMTM3MSBl
czE5MzggZXMxOTY4IGZtODAxIGhkYS1pbnRlbCBpbnRlbDh4MCBpbnRlbDh4MG0gbWFlc3RybzMg
dHJpZGVudCB1c2ItYXVkaW8gdmlhODJ4eCB2aWE4Mnh4LW1vZGVtIHltZnBjaSIKZGVjbGFyZSAt
eCBBTFNBX1BDTV9QTFVHSU5TPSJhZHBjbSBhbGF3IGFzeW0gY29weSBkbWl4IGRzaGFyZSBkc25v
b3AgZW1wdHkgZXh0cGx1ZyBmaWxlIGhvb2tzIGllYzk1OCBpb3BsdWcgbGFkc3BhIGxmbG9hdCBs
aW5lYXIgbWV0ZXIgbW1hcF9lbXVsIG11bGF3IG11bHRpIG51bGwgcGx1ZyByYXRlIHJvdXRlIHNo
YXJlIHNobSBzb2Z0dm9sIgpkZWNsYXJlIC14IEFQQUNIRTJfTU9EVUxFUz0iYWN0aW9ucyBhbGlh
cyBhdXRoX2Jhc2ljIGF1dGhuX2FsaWFzIGF1dGhuX2Fub24gYXV0aG5fZGJtIGF1dGhuX2RlZmF1
bHQgYXV0aG5fZmlsZSBhdXRoel9kYm0gYXV0aHpfZGVmYXVsdCBhdXRoel9ncm91cGZpbGUgYXV0
aHpfaG9zdCBhdXRoel9vd25lciBhdXRoel91c2VyIGF1dG9pbmRleCBjYWNoZSBkYXYgZGF2X2Zz
IGRhdl9sb2NrIGRlZmxhdGUgZGlyIGRpc2tfY2FjaGUgZW52IGV4cGlyZXMgZXh0X2ZpbHRlciBm
aWxlX2NhY2hlIGZpbHRlciBoZWFkZXJzIGluY2x1ZGUgaW5mbyBsb2dfY29uZmlnIGxvZ2lvIG1l
bV9jYWNoZSBtaW1lIG1pbWVfbWFnaWMgbmVnb3RpYXRpb24gcmV3cml0ZSBzZXRlbnZpZiBzcGVs
aW5nIHN0YXR1cyB1bmlxdWVfaWQgdXNlcmRpciB1c2VydHJhY2sgdmhvc3RfYWxpYXMiCmRlY2xh
cmUgLXggQVJDSD0ieDg2IgpkZWNsYXJlIC14IENBTUFSQVM9InNtYWwiCmRlY2xhcmUgLXggQ0JV
SUxEPSJpNjg2LXBjLWxpbnV4LWdudSIKZGVjbGFyZSAteCBDREVGSU5FX2RlZmF1bHQ9Il9fdW5p
eF9fIgpkZWNsYXJlIC14IENGTEFHUz0iLU8yIC1tYXJjaD1pNjg2IC1waXBlIgpkZWNsYXJlIC14
IENGTEFHU19kZWZhdWx0PSIiCmRlY2xhcmUgLXggQ0hPU1Q9Imk2ODYtcGMtbGludXgtZ251Igpk
ZWNsYXJlIC14IENIT1NUX2RlZmF1bHQ9Imk2ODYtcGMtbGludXgtZ251IgpkZWNsYXJlIC14IENM
QVNTUEFUSD0iLiIKZGVjbGFyZSAteCBDVEFSR0VUX2RlZmF1bHQ9Imk2ODYtcGMtbGludXgtZ251
IgpkZWNsYXJlIC14IENWU19SU0g9InNzaCIKZGVjbGFyZSAteCBDWFhGTEFHUz0iLU8yIC1tYXJj
aD1pNjg2IC1waXBlIgpkZWNsYXJlIC14IERCVVNfU0VTU0lPTl9CVVNfQUREUkVTUz0idW5peDph
YnN0cmFjdD0vdG1wL2RidXMtWUJYNlcxUGc2WSxndWlkPWIzOWRkYmM3YjcxZTM3Mjk4MjE1YzNh
NjQ5MTk5YjIzIgpkZWNsYXJlIC14IERFQlVHQlVJTEQ9IjEiCmRlY2xhcmUgLXggREVGQVVMVF9B
Qkk9ImRlZmF1bHQiCmRlY2xhcmUgLXggREVTS1RPUF9TRVNTSU9OPSJrZGUtMy41IgpkZWNsYXJl
IC14IERFU1RUUkVFPSIvdXNyIgpkZWNsYXJlIC14IERJUk9QVElPTlM9Ii1tMDc1NSIKZGVjbGFy
ZSAteCBETV9DT05UUk9MPSIvdmFyL3J1bi94ZG1jdGwiCmRlY2xhcmUgLXggRUxJQkM9ImdsaWJj
IgpkZWNsYXJlIC14IEVYRU9QVElPTlM9Ii1tMDc1NSIKZGVjbGFyZSAteCBGRUFUVVJFUz0iY2Fu
ZHkgZGlzdGxvY2tzIG1ldGFkYXRhLXRyYW5zZmVyIG5vc3RyaXAgc2FuZGJveCBzZnBlcm1zIHN0
cmljdCB1bm1lcmdlLW9ycGhhbnMgdXNlcmZldGNoIgpkZWNsYXJlIC14IEdDQ19TUEVDUz0iIgpk
ZWNsYXJlIC14IEdES19VU0VfWEZUPSIxIgpkZWNsYXJlIC14IEdFTkVSQVRJT049IjIiCmRlY2xh
cmUgLXggR1NfTElCPSIvaG9tZS93bWljaGFlbHMxLy5mb250cyIKZGVjbGFyZSAteCBHVEsyX1JD
X0ZJTEVTPSIvZXRjL2d0ay0yLjAvZ3RrcmM6L2hvbWUvd21pY2hhZWxzMS8uZ3RrcmMtMi4wOi9o
b21lL3dtaWNoYWVsczEvLmtkZTMuNS9zaGFyZS9jb25maWcvZ3RrcmMtMi4wIgpkZWNsYXJlIC14
IEdUS19SQ19GSUxFUz0iL2V0Yy9ndGsvZ3RrcmM6L2hvbWUvd21pY2hhZWxzMS8uZ3RrcmM6L2hv
bWUvd21pY2hhZWxzMS8ua2RlMy41L3NoYXJlL2NvbmZpZy9ndGtyYyIKZGVjbGFyZSAteCBJTkhF
UklURUQ9InRvb2xjaGFpbi1mdW5jcyBxdDMgcG9ydGFiaWxpdHkgZmxhZy1vLW1hdGljIHB5dGhv
biBhbHRlcm5hdGl2ZXMgdmVyc2lvbmF0b3IgbXVsdGlsaWIgbXl0aHR2IHN1YnZlcnNpb24gY29u
ZnV0aWxzIGV1dGlscyIKZGVjbGFyZSAteCBJTlBVVF9ERVZJQ0VTPSJrZXlib2FyZCBtb3VzZSIK
ZGVjbGFyZSAteCBJTlNERVNUVFJFRT0iIgpkZWNsYXJlIC14IElOU09QVElPTlM9Ii1tMDY0NCIK
ZGVjbGFyZSAteCBJVVNFPSIgYWFjIGFsc2EgYWx0aXZlYyBhdXRvc3RhcnQgZGVidWcgZGlyZWN0
diBkdmIgZHZkIGZmdHcgaWVlZTEzOTQgamFjayBsY2QgbGlyYyBtbXggb3BlbmdsIHBlcmwgcHl0
aG9uIHh2bWMgdmlkZW9fY2FyZHNfbnZpZGlhIgpkZWNsYXJlIC14IEpBVkFDPSIvZXRjL2phdmEt
Y29uZmlnLTIvY3VycmVudC1zeXN0ZW0tdm0vYmluL2phdmFjIgpkZWNsYXJlIC14IEpBVkFfSE9N
RT0iL2V0Yy9qYXZhLWNvbmZpZy0yL2N1cnJlbnQtc3lzdGVtLXZtIgpkZWNsYXJlIC14IEpES19I
T01FPSIvZXRjL2phdmEtY29uZmlnLTIvY3VycmVudC1zeXN0ZW0tdm0iCmRlY2xhcmUgLXggS0RF
RElSPSIvdXNyL2tkZS8zLjUiCmRlY2xhcmUgLXggS0RFRElSUz0iL3VzcjovdXNyL2xvY2FsOi91
c3Iva2RlLzMuNSIKZGVjbGFyZSAteCBLREVfRlVMTF9TRVNTSU9OPSJ0cnVlIgpkZWNsYXJlIC14
IEtERV9NVUxUSUhFQUQ9InRydWUiCmRlY2xhcmUgLXggS0RFX1NFU1NJT05fVUlEPSIxMDAwIgpk
ZWNsYXJlIC14IEtFUk5FTD0ibGludXgiCmRlY2xhcmUgLXggS0VSTkVMX0FCST0iZGVmYXVsdCIK
ZGVjbGFyZSAteCBLT05TT0xFX0RDT1A9IkRDT1BSZWYoa29uc29sZS02MDk0LGtvbnNvbGUpIgpk
ZWNsYXJlIC14IEtPTlNPTEVfRENPUF9TRVNTSU9OPSJEQ09QUmVmKGtvbnNvbGUtNjA5NCxzZXNz
aW9uLTEpIgpkZWNsYXJlIC14IEtWPSIyLjYuMjUtZ2VudG9vLXI5IgpkZWNsYXJlIC14IExDRF9E
RVZJQ0VTPSJiYXlyYWQgY2ZvbnR6IGNmb250ejYzMyBnbGsgaGQ0NDc4MCBsYjIxNiBsY2RtMDAx
IG10eG9yYiBuY3Vyc2VzIHRleHQiCmRlY2xhcmUgLXggTERGTEFHUz0iLVdsLC1PMSIKZGVjbGFy
ZSAteCBMREZMQUdTX2RlZmF1bHQ9IiIKZGVjbGFyZSAteCBMRFBBVEg9Ii91c3Iva2RlLzMuNS9s
aWI6IgpkZWNsYXJlIC14IExJQkRJUl9kZWZhdWx0PSJsaWIiCmRlY2xhcmUgLXggTElCR0xfRFJJ
VkVSU19QQVRIPSIvdXNyL2xpYi9kcmkiCmRlY2xhcmUgLXggTElCT1BUSU9OUz0iLW0wNjQ0Igpk
ZWNsYXJlIC14IExJUkNfREVWSUNFUz0iZHZpY28iCmRlY2xhcmUgLXggTUFLRU9QVFM9Ii1qMiIK
ZGVjbGFyZSAteCBNVUxUSUxJQl9BQklTPSJkZWZhdWx0IgpkZWNsYXJlIC14IE9QRU5HTF9QUk9G
SUxFPSJhdGkiCmRlY2xhcmUgLXggUEtHX0NPTkZJR19QQVRIPSIvdXNyL3F0LzMvbGliL3BrZ2Nv
bmZpZyIKZGVjbGFyZSAteCBQUkVMSU5LX1BBVEhfTUFTSz0iL3Vzci9saWIva2xpYmMiCmRlY2xh
cmUgLXggUFJPRklMRV9PTkxZX1ZBUklBQkxFUz0iQVJDSCBFTElCQyBLRVJORUwgVVNFUkxBTkQi
CmRlY2xhcmUgLXggUFlUSE9ORE9DUz0iL3Vzci9zaGFyZS9kb2MvcHl0aG9uLWRvY3MtMi41LjEv
aHRtbC9saWIiCmRlY2xhcmUgLXggUFlUSE9ORE9OVFdSSVRFQllURUNPREU9IjEiCmRlY2xhcmUg
LXggUFlUSE9OUEFUSD0iL3Vzci9saWIvcG9ydGFnZS9weW0iCmRlY2xhcmUgLXggUFlUSE9OX0RP
TlRDT01QSUxFPSIxIgpkZWNsYXJlIC14IFFNQUtFU1BFQz0ibGludXgtZysrIgpkZWNsYXJlIC14
IFFURElSPSIvdXNyL3F0LzMiCmRlY2xhcmUgLXggUkVTVFJJQ1Q9IiIKZGVjbGFyZSAteCBTPSIv
dmFyL3RtcC9wb3J0YWdlL21lZGlhLXR2L215dGh0di0wLjIxX3AxODMxNC1yMS93b3JrL215dGh0
di0wLjIxIgpkZWNsYXJlIC14IFNBTkRCT1hfREVOWT0iL2V0Yy9sZC5zby5wcmVsb2FkIgpkZWNs
YXJlIC14IFNBTkRCT1hfUFJFRElDVD0iOi9wcm9jL3NlbGYvbWFwczovZGV2L2NvbnNvbGU6L2Rl
di9yYW5kb206L3Vzci9saWIvcG9ydGFnZS9weW06L3Zhci9jYWNoZS9lZGIvZGVwOi91c3IvcXQv
My9ldGMvc2V0dGluZ3MiCmRlY2xhcmUgLXggU0FOREJPWF9SRUFEPSI6LzovZGV2L3NobTovZGV2
L3N0ZGluOi92YXIvdG1wIgpkZWNsYXJlIC14IFNBTkRCT1hfV1JJVEU9IjovZGV2L3NobTovZGV2
L3N0ZG91dDovZGV2L3N0ZGVycjovdmFyL3RtcDovdXNyL3F0LzMvZXRjL3NldHRpbmdzIgpkZWNs
YXJlIC14IFNBTkVfQ09ORklHX0RJUj0iL2V0Yy9zYW5lLmQiCmRlY2xhcmUgLXggU0VTU0lPTl9N
QU5BR0VSPSJsb2NhbC9kcnVtOi90bXAvLklDRS11bml4LzYwNjIiCmRlY2xhcmUgLXggU0xPVD0i
MCIKZGVjbGFyZSAteCBTVURPX0NPTU1BTkQ9Ii91c3IvYmluL2VtZXJnZSAtdWFEIHdvcmxkIgpk
ZWNsYXJlIC14IFNVRE9fR0lEPSIxMDAwIgpkZWNsYXJlIC14IFNVRE9fVUlEPSIxMDAwIgpkZWNs
YXJlIC14IFNVRE9fVVNFUj0id21pY2hhZWxzMSIKZGVjbGFyZSAteCBVU0JfREVWRlNfUEFUSD0i
L2Rldi9idXMvdXNiIgpkZWNsYXJlIC14IFVTRT0iYWFjIGFsc2EgZHZiIGR2ZCBlbGliY19nbGli
YyBqYWNrIGtlcm5lbF9saW51eCBsaXJjIG1teCBvcGVuZ2wgcGVybCBweXRob24gdXNlcmxhbmRf
R05VIHg4NiIKZGVjbGFyZSAteCBVU0VSTEFORD0iR05VIgpkZWNsYXJlIC14IFVTRVJOQU1FPSJy
b290IgpkZWNsYXJlIC14IFZJREVPX0NBUkRTPSJmZ2xyeCB2ZXNhIgpkZWNsYXJlIC14IFZNSEFO
RExFPSJibGFja2Rvd24tamRrLTEuNC4yIgpkZWNsYXJlIC14IFdJTkRPV0lEPSIxMDQ4NTc2NiIK
ZGVjbGFyZSAteCBYQ1VSU09SX1RIRU1FPSJkZWZhdWx0IgpkZWNsYXJlIC14IFhER19DT05GSUdf
RElSUz0iL3Vzci9rZGUvMy41L2V0Yy94ZGciCmRlY2xhcmUgLXggWERHX0RBVEFfRElSUz0iL3Vz
ci9zaGFyZTovdXNyL2tkZS8zLjUvc2hhcmU6L3Vzci9sb2NhbC9zaGFyZSIKZGVjbGFyZSAteCBY
RE1fTUFOQUdFRD0iL3Zhci9ydW4veGRtY3RsL3hkbWN0bC06MCxtYXlzZCxtYXlmbixzY2hlZCxy
c3ZkLG1ldGhvZD1jbGFzc2ljIgpkZWNsYXJlIC14IF9FX0RPQ0RFU1RUUkVFXz0iIgpkZWNsYXJl
IC14IF9FX0VYRURFU1RUUkVFXz0iIgo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>171571</attachid>
            <date>2008-11-12 19:26 0000</date>
            <desc>mythtv-0.21-mythflix-naming-collision.patch-14586.out for comment #10</desc>
            <filename>mythtv-0.21-mythflix-naming-collision.patch-14586.out</filename>
            <type>text/plain</type>
            <data encoding="base64">KioqKiogbXl0aHR2LTAuMjEtbXl0aGZsaXgtbmFtaW5nLWNvbGxpc2lvbi5wYXRjaCAqKioqKgoK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoK
UEFUQ0ggQ09NTUFORDoJIHBhdGNoIC1wMCAtZzAgLUUgLS1uby1iYWNrdXAtaWYtbWlzbWF0Y2gg
PCAvdXNyL3BvcnRhZ2UvbWVkaWEtdHYvbXl0aHR2L2ZpbGVzL215dGh0di0wLjIxLW15dGhmbGl4
LW5hbWluZy1jb2xsaXNpb24ucGF0Y2gKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KcGF0Y2hpbmcgZmlsZSB0aGVtZXMvZGVmYXVsdC13aWRl
L25ldGZsaXgtdWkueG1sCkh1bmsgIzEgRkFJTEVEIGF0IDI2Ny4KMSBvdXQgb2YgMSBodW5rIEZB
SUxFRCAtLSBzYXZpbmcgcmVqZWN0cyB0byBmaWxlIHRoZW1lcy9kZWZhdWx0LXdpZGUvbmV0Zmxp
eC11aS54bWwucmVqCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KClBBVENIIENPTU1BTkQ6CSBwYXRjaCAtcDEgLWcwIC1FIC0tbm8tYmFja3Vw
LWlmLW1pc21hdGNoIDwgL3Vzci9wb3J0YWdlL21lZGlhLXR2L215dGh0di9maWxlcy9teXRodHYt
MC4yMS1teXRoZmxpeC1uYW1pbmctY29sbGlzaW9uLnBhdGNoCgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmNhbid0IGZpbmQgZmlsZSB0byBw
YXRjaCBhdCBpbnB1dCBsaW5lIDUKUGVyaGFwcyB5b3UgdXNlZCB0aGUgd3JvbmcgLXAgb3IgLS1z
dHJpcCBvcHRpb24/ClRoZSB0ZXh0IGxlYWRpbmcgdXAgdG8gdGhpcyB3YXM6Ci0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCnxJbmRleDogdGhlbWVzL2RlZmF1bHQtd2lkZS9uZXRmbGl4LXVpLnht
bA0KfD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCnwtLS0gdGhlbWVzL2RlZmF1bHQtd2lkZS9uZXRmbGl4LXVpLnhtbCAo
cmV2aXNpb24gMTQyOTUpDQp8KysrIHRoZW1lcy9kZWZhdWx0LXdpZGUvbmV0ZmxpeC11aS54bWwg
KHJldmlzaW9uIDE5MDQ2KQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTm8gZmlsZSB0byBw
YXRjaC4gIFNraXBwaW5nIHBhdGNoLgoxIG91dCBvZiAxIGh1bmsgaWdub3JlZAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpQQVRDSCBDT01N
QU5EOgkgcGF0Y2ggLXAyIC1nMCAtRSAtLW5vLWJhY2t1cC1pZi1taXNtYXRjaCA8IC91c3IvcG9y
dGFnZS9tZWRpYS10di9teXRodHYvZmlsZXMvbXl0aHR2LTAuMjEtbXl0aGZsaXgtbmFtaW5nLWNv
bGxpc2lvbi5wYXRjaAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpjYW4ndCBmaW5kIGZpbGUgdG8gcGF0Y2ggYXQgaW5wdXQgbGluZSA1ClBl
cmhhcHMgeW91IHVzZWQgdGhlIHdyb25nIC1wIG9yIC0tc3RyaXAgb3B0aW9uPwpUaGUgdGV4dCBs
ZWFkaW5nIHVwIHRvIHRoaXMgd2FzOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp8SW5kZXg6
IHRoZW1lcy9kZWZhdWx0LXdpZGUvbmV0ZmxpeC11aS54bWwNCnw9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQp8LS0tIHRo
ZW1lcy9kZWZhdWx0LXdpZGUvbmV0ZmxpeC11aS54bWwgKHJldmlzaW9uIDE0Mjk1KQ0KfCsrKyB0
aGVtZXMvZGVmYXVsdC13aWRlL25ldGZsaXgtdWkueG1sIChyZXZpc2lvbiAxOTA0NikNCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5vIGZpbGUgdG8gcGF0Y2guICBTa2lwcGluZyBwYXRjaC4K
MSBvdXQgb2YgMSBodW5rIGlnbm9yZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQoKUEFUQ0ggQ09NTUFORDoJIHBhdGNoIC1wMyAtZzAgLUUg
LS1uby1iYWNrdXAtaWYtbWlzbWF0Y2ggPCAvdXNyL3BvcnRhZ2UvbWVkaWEtdHYvbXl0aHR2L2Zp
bGVzL215dGh0di0wLjIxLW15dGhmbGl4LW5hbWluZy1jb2xsaXNpb24ucGF0Y2gKCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KbWlzc2luZyBo
ZWFkZXIgZm9yIHVuaWZpZWQgZGlmZiBhdCBsaW5lIDUgb2YgcGF0Y2gKY2FuJ3QgZmluZCBmaWxl
IHRvIHBhdGNoIGF0IGlucHV0IGxpbmUgNQpQZXJoYXBzIHlvdSB1c2VkIHRoZSB3cm9uZyAtcCBv
ciAtLXN0cmlwIG9wdGlvbj8KVGhlIHRleHQgbGVhZGluZyB1cCB0byB0aGlzIHdhczoKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KfEluZGV4OiB0aGVtZXMvZGVmYXVsdC13aWRlL25ldGZsaXgt
dWkueG1sDQp8PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KfC0tLSB0aGVtZXMvZGVmYXVsdC13aWRlL25ldGZsaXgtdWku
eG1sIChyZXZpc2lvbiAxNDI5NSkNCnwrKysgdGhlbWVzL2RlZmF1bHQtd2lkZS9uZXRmbGl4LXVp
LnhtbCAocmV2aXNpb24gMTkwNDYpDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpObyBmaWxl
IHRvIHBhdGNoLiAgU2tpcHBpbmcgcGF0Y2guCjEgb3V0IG9mIDEgaHVuayBpZ25vcmVkCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClBBVENI
IENPTU1BTkQ6CSBwYXRjaCAtcDQgLWcwIC1FIC0tbm8tYmFja3VwLWlmLW1pc21hdGNoIDwgL3Vz
ci9wb3J0YWdlL21lZGlhLXR2L215dGh0di9maWxlcy9teXRodHYtMC4yMS1teXRoZmxpeC1uYW1p
bmctY29sbGlzaW9uLnBhdGNoCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Cm1pc3NpbmcgaGVhZGVyIGZvciB1bmlmaWVkIGRpZmYgYXQgbGlu
ZSA1IG9mIHBhdGNoCmNhbid0IGZpbmQgZmlsZSB0byBwYXRjaCBhdCBpbnB1dCBsaW5lIDUKUGVy
aGFwcyB5b3UgdXNlZCB0aGUgd3JvbmcgLXAgb3IgLS1zdHJpcCBvcHRpb24/ClRoZSB0ZXh0IGxl
YWRpbmcgdXAgdG8gdGhpcyB3YXM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnxJbmRleDog
dGhlbWVzL2RlZmF1bHQtd2lkZS9uZXRmbGl4LXVpLnhtbA0KfD09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCnwtLS0gdGhl
bWVzL2RlZmF1bHQtd2lkZS9uZXRmbGl4LXVpLnhtbCAocmV2aXNpb24gMTQyOTUpDQp8KysrIHRo
ZW1lcy9kZWZhdWx0LXdpZGUvbmV0ZmxpeC11aS54bWwgKHJldmlzaW9uIDE5MDQ2KQ0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KTm8gZmlsZSB0byBwYXRjaC4gIFNraXBwaW5nIHBhdGNoLgox
IG91dCBvZiAxIGh1bmsgaWdub3JlZAo=
</data>        

          </attachment>
    </bug>

</bugzilla>