Re: Complex Exponential Integral

Erik Luijten <[email protected]> Fri, 11 Jul 2025 10:51:17 -0500
Newsgroups gmane.comp.graphics.gnuplot.devel
Message-ID <CAM4Pt-_N+KNt0mwmwo77HE-A=Y_Wb=eqk61i2HgPhccy5A2PiQ@mail.gmail.com>
--0000000000008940950639a948cd
Content-Type: multipart/alternative; boundary="0000000000008940940639a948cb"

--0000000000008940940639a948cb
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Apologies - I only sent this to Ethan directly.

---------- Forwarded message ---------

Thank you. I can confirm that this works properly. (I only tried it
with/without ZEXINT and CEXINT) Just two small (cosmetic) points:

* There is a closing parenthesis missing in configure. The corrected
configure.ac is attached

* In my setup, configure detects ZEXINT because I set LIBAMOS_LDFLAGS
(before calling configure), which then gets added automatically to LD_FLAGS=
:

checking for amos libraries using LDFLAGS:  -L/usr/local/lib -lcerf
-lopenspecfun -lgfortran /usr/local/lib/libzexpint.a ...

checking for library containing zairy_... none required

checking for library containing zexint_... none required


I noticed that configure then adds "-L/home/local/lib64" in LIBS in
the Makefile, which may be specific to your system and not serve a purpose
in other systems? (It is hard-wired in configure.)

Best,

Erik

On Thu, Jul 10, 2025 at 3:52=E2=80=AFPM Ethan A Merritt <[email protected]> wr=
ote:

> I have just pushed changes to the configure script and to amos_airy,c
> so that ZEXINT is used if found during configuration in preference to
> CEXINT.
> I tested configure+build against libraries with or without ZEXINT.
>
> commit dda9e5051d
>
> Since both routines were available for testing, I also sampled the
> real/imaginary
> plane for the difference in output between parallel calls to CEXINT and
> ZEXINT
> for orders 2,3,4, and 5.
> The maximum difference found was on the order of    3 x 10^{-15}
> Pure noise level for double precision would be about  2 x 10^{-16}
> Pure noise level for single precision would be about    1 x 10^{-7}.
>
> cheers,
>         Ethan
>
>
>

--0000000000008940940639a948cb
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Apologies - I only sent this to Ethan directly.<br><br><di=
v class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gma=
il_attr">---------- Forwarded message ---------<br></div><br><div dir=3D"lt=
r">Thank you. I can confirm that this works properly. (I only tried it with=
/without ZEXINT and CEXINT) Just two small (cosmetic) points:<br><br>* Ther=
e is a closing parenthesis missing in configure. The corrected <a href=3D"h=
ttp://configure.ac" target=3D"_blank">configure.ac</a> is attached<br><br><=
div>* In my setup, configure detects ZEXINT because I set=C2=A0LIBAMOS_LDFL=
AGS (before calling configure), which then gets added automatically to LD_F=
LAGS:<br><br>





<p style=3D"margin:0px;font-variant-numeric:normal;font-variant-east-asian:=
normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:au=
to;font-feature-settings:normal;font-stretch:normal;line-height:normal;font=
-family:Menlo;color:rgb(0,0,0)"><span style=3D"font-variant-ligatures:no-co=
mmon-ligatures">checking for amos libraries using LDFLAGS:<span>=C2=A0 </sp=
an>-L/usr/local/lib -lcerf -lopenspecfun -lgfortran /usr/local/lib/libzexpi=
nt.a ...<span>=C2=A0</span></span></p>
<p style=3D"margin:0px;font-variant-numeric:normal;font-variant-east-asian:=
normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:au=
to;font-feature-settings:normal;font-stretch:normal;line-height:normal;font=
-family:Menlo;color:rgb(0,0,0)"><span style=3D"font-variant-ligatures:no-co=
mmon-ligatures">checking for library containing zairy_... none required</sp=
an></p>
<p style=3D"margin:0px;font-variant-numeric:normal;font-variant-east-asian:=
normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:au=
to;font-feature-settings:normal;font-stretch:normal;line-height:normal;font=
-family:Menlo;color:rgb(0,0,0)"><span style=3D"font-variant-ligatures:no-co=
mmon-ligatures">checking for library containing zexint_... none required</s=
pan></p><p style=3D"margin:0px;font-variant-numeric:normal;font-variant-eas=
t-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-ke=
rning:auto;font-feature-settings:normal;font-stretch:normal;font-size:16px;=
line-height:normal;font-family:Menlo;color:rgb(0,0,0)"><br></p></div><div>I=
 noticed that configure then adds &quot;-L/home/local/lib64&quot; in LIBS i=
n the=C2=A0Makefile, which may be specific=C2=A0to your=C2=A0system and not=
 serve a purpose in other=C2=A0systems? (It is hard-wired in configure.)</d=
iv><div><br>Best,</div><div><br></div><div>Erik</div></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jul 10, 2025=
 at 3:52=E2=80=AFPM Ethan A Merritt &lt;<a href=3D"mailto:[email protected]" t=
arget=3D"_blank">[email protected]</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex">I have just pushed changes to the configur=
e script and to amos_airy,c<br>
so that ZEXINT is used if found during configuration in preference to CEXIN=
T.<br>
I tested configure+build against libraries with or without ZEXINT.<br>
<br>
commit dda9e5051d<br>
<br>
Since both routines were available for testing, I also sampled the real/ima=
ginary<br>
plane for the difference in output between parallel calls to CEXINT and ZEX=
INT<br>
for orders 2,3,4, and 5.<br>
The maximum difference found was on the order of=C2=A0 =C2=A0 3 x 10^{-15} =
<br>
Pure noise level for double precision would be about=C2=A0 2 x 10^{-16}<br>
Pure noise level for single precision would be about=C2=A0 =C2=A0 1 x 10^{-=
7}.<br>
<br>
cheers,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Ethan<br>
<br><br>
</blockquote></div>
</div></div>

--0000000000008940940639a948cb--
--0000000000008940950639a948cd
Content-Type: application/octet-stream; name="configure.ac"
Content-Disposition: attachment; filename="configure.ac"
Content-Transfer-Encoding: base64
Content-ID: <f_mcyvdsmh0>
X-Attachment-Id: f_mcyvdsmh0

ZG5sIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b2NvbmYgdG8gcHJvZHVjZSBhIGNvbmZpZ3Vy
ZSBzY3JpcHQuCmRubCBjb25maWd1cmUuaW4gZm9yIGdudXBsb3Qgb24gVW5peC4KZG5sCmRubCBO
QjogQ2hhbmdlIHZlcnNpb24vcGF0Y2hsZXZlbCBpbW1lZGlhdGVseSBiZWxvdwpkbmwgICAgIGFu
ZCBhbHNvIGluIFBBVENITEVWRUwgYW5kIHNyYy92ZXJzaW9uLmMKZG5sCgpBQ19JTklUKGdudXBs
b3QsIDYuMS4wKQoKQUNfQ09ORklHX1NSQ0RJUihzcmMvZ3JhcGhpY3MuYykKQUNfUFJFUkVRKFsy
LjY5XSkKQUNfQ09ORklHX0hFQURFUlMoY29uZmlnLmg6Y29uZmlnLmhpbikKCmRubCBUaGUgbGlu
ZSBiZWxvdyBpcyBmb3IgdXNlIGR1cmluZyBkZXZlbG9wbWVudApBQ19ERUZJTkUoREVWRUxPUE1F
TlRfVkVSU0lPTiwxLFtQcm92aWRlIGNvbnRhY3QgaW5mbyBmb3IgZ251cGxvdCBkZXZlbG9tZW50
XSkKZG5sIFRoZSBsaW5lIGJlbG93IGlzIGZvciBwYWNrYWdpbmcgYSByZWxlYXNlIHZlcnNpb24K
ZG5sIEFNX0NPTkRJVElPTkFMKFtERVZFTE9QTUVOVF9WRVJTSU9OXSwgZmFsc2UpCgpBTV9JTklU
X0FVVE9NQUtFKFsxLjEwIHN1YmRpci1vYmplY3RzXSkKCkFNX01BSU5UQUlORVJfTU9ERQoKVkVS
U0lPTl9NQUpPUj0iNi4xIgpQQVRDSExFVkVMPSJgY2F0ICRzcmNkaXIvUEFUQ0hMRVZFTGAiCkFD
X0RFRklORV9VTlFVT1RFRChWRVJTSU9OX01BSk9SLFsiJFZFUlNJT05fTUFKT1IiXSxbVGhlIG1h
aW4gdmVyc2lvbiBudW1iZXJdKQpBQ19ERUZJTkVfVU5RVU9URUQoUEFUQ0hMRVZFTCxbIiRQQVRD
SExFVkVMIl0sW1RoZSBwYXRjaCBsZXZlbCwgYS5rLmEuIG1pY3JvIHZlcnNpb24gbnVtYmVyXSkK
CmRubCBjb25maWd1cmUuaW4gYm9keQoKZG5sIENvbXBpbGVyIGNoYXJhY3RlcmlzdGljcwpkbmwg
Q2hlY2sgZm9yIHRoZSBjb25zdCBhbmQgaW5saW5lIGtleXdvcmRzIGFuZCBBTlNJIHN0eWxlIHN0
cmluZ2lmaWNhdGlvbgpBQ19VU0VfU1lTVEVNX0VYVEVOU0lPTlMKQUNfUFJPR19DQwpBQ19QUk9H
X0NQUApBQ19QUk9HX09CSkMKQUNfQ19DT05TVApBQ19DX0lOTElORQpBQ19DX1NUUklOR0laRQpB
Q19QUk9HX0xOX1MKCmlmIHRlc3QgIiR7YnVpbGR9IiAhPSAiJHtob3N0fSIKdGhlbgogIENDPSR7
Q0MtJHtob3N0X2FsaWFzLWdjY319CiAgQ0ZMQUdTPSR7Q0ZMQUdTLSItZyAtTzIifQogIENYWD0k
e0NYWC0ke2hvc3RfYWxpYXMtYysrfX0KICBDWFhGTEFHUz0ke0NYWEZMQUdTLSItZyAtTzIifQog
IENDX0ZPUl9CVUlMRD0ke0NDX0ZPUl9CVUlMRC1nY2N9CmVsc2UKICAjIFRoZSBjcm9zcy1jb21w
aWxhdGlvbiBwYXRjaCBvcmlnaW5hbGx5IGhhZCBDQ19GT1JfQlVJTEQgPSAiXCQoQ0MpIgogICMg
YnV0IHRoYXQgY2F1c2VzIGEgcmVjdXJzaXZlIGRlZmluaXRpb24gaW4gZG9jcy9NYWtlZmlsZS4g
RUFNIERlYyAyMDA5LgogIENDX0ZPUl9CVUlMRD0iJHtDQ30iCiAgQUNfUFJPR19DQwoKICAjIFdl
IG11c3Qgc2V0IHRoZSBkZWZhdWx0IGxpbmtlciB0byB0aGUgbGlua2VyIHVzZWQgYnkgZ2NjIGZv
ciB0aGUgY29ycmVjdAogICMgb3BlcmF0aW9uIG9mIGxpYnRvb2wuICBJZiBMRCBpcyBub3QgZGVm
aW5lZCBhbmQgd2UgYXJlIHVzaW5nIGdjYywgdHJ5IHRvCiAgIyBzZXQgdGhlIExEIGRlZmF1bHQg
dG8gdGhlIGxkIHVzZWQgYnkgZ2NjLgogIGlmIHRlc3QgLXogIiRMRCIKICB0aGVuCiAgICBpZiB0
ZXN0ICIkR0NDIiA9IHllcwogICAgdGhlbgogICAgICBjYXNlICRidWlsZCBpbgogICAgICAqLSot
bWluZ3cqKQogICAgICAgIGdjY19wcm9nX2xkPWAkQ0MgLXByaW50LXByb2ctbmFtZT1sZCAyPiYx
IHwgdHIgLWQgJ1wwMTUnYCA7OwogICAgICAqKQogICAgICAgIGdjY19wcm9nX2xkPWAkQ0MgLXBy
aW50LXByb2ctbmFtZT1sZCAyPiYxYCA7OwogICAgICBlc2FjCiAgICAgIGNhc2UgJGdjY19wcm9n
X2xkIGluCiAgICAgICMgQWNjZXB0IGFic29sdXRlIHBhdGhzLgogICAgICBbW1xcL10qIHwgW0Et
WmEtel06W1xcL10qKV0KICAgICAgICBMRD0iJGdjY19wcm9nX2xkIiA7OwogICAgICBlc2FjCiAg
ICBmaQogIGZpCgogIENYWD0ke0NYWC0iYysrIn0KICBDRkxBR1M9JHtDRkxBR1MtIi1nIC1PMiJ9
CiAgQ1hYRkxBR1M9JHtDWFhGTEFHUy0iLWcgLU8yIn0KZmkKQU1fUFJPR19DQ19DX08KQUNfU1VC
U1QoQ0NfRk9SX0JVSUxEKQoKZG5sIGxhcmdlIGZpbGUgc3VwcG9ydApBQ19DSEVDS19UWVBFUyhb
b2ZmX3RdKQpBQ19GVU5DX0ZTRUVLTwpBQ19TWVNfTEFSR0VGSUxFCgpkbmwgdGltZXpvbmUgc3Vw
cG9ydApBQ19DSEVDS19NRU1CRVJTKFtzdHJ1Y3QgdG0udG1fZ210b2ZmLCBzdHJ1Y3QgdG0uX190
bV9nbXRvZmZdLCwsWwojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDx0aW1lLmg+XSkK
CmRubCBleHBsaWNpdCBjYWxsIHRvIFBLR19QUk9HX1BLR19DT05GSUcgYmVjYXVzZSB0aGUgZmly
c3QgY2FsbCB0bwpkbmwgUEtHX0NIRUNLX01PRFVMRVN7LF9OT0ZBSUx9IG1heSBub3QgaGFwcGVu
ClBLR19QUk9HX1BLR19DT05GSUcKCkFDX0FSR19XSVRIKGxpYmNlcmYsZG5sClsgIC0td2l0aG91
dC1saWJjZXJmICAgICAgIGJ1aWxkIHdpdGhvdXQgc3BlY2lhbCBmdW5jdGlvbnMgZnJvbSBsaWJj
ZXJmIChkZWZhdWx0IGVuYWJsZWQpXSwsCiAgW3Rlc3QgLXogIiR7d2l0aF9saWJjZXJmfSIgJiYg
d2l0aF9saWJjZXJmPXllc10pCgppZiB0ZXN0ICIke3dpdGhfbGliY2VyZn0iID0geWVzIDsgdGhl
bgogIGRubCBUaGUgbGliY2VyZiBsaWJyYXJ5IGNvbnRhaW5zIGEgc2V0IG9mIGNvbXBsZXgtdmFs
dWVkIHNwZWNpYWwgZnVuY3Rpb25zCiAgZG5sIHJlbGF0ZWQgdG8gdGhlIGVycm9yIGZ1bmN0aW9u
IChjZXJmLCBlcmZpLCBEYXdzb24ncyBpbnRlZ3JhbCwgVm9pZ3QgcHJvZmlsZSkuCiAgZG5sIElm
IGxpYmNlcmYgaXMgaW5zdGFsbGVkIHRoZW4gd2UgY2FuIHVzZSB0aGVtLgogIFBLR19DSEVDS19N
T0RVTEVTX05PRkFJTChbTElCQ0VSRl0sIFtsaWJjZXJmXSwKICAgICAgWwogICAgICBDUFBGTEFH
Uz0iJENQUEZMQUdTICRMSUJDRVJGX0NGTEFHUyIKICAgICAgTERGTEFHUz0iJExERkxBR1MgJExJ
QkNFUkZfTElCUyIKICAgICAgXSwKICApCiAgQUNfU0VBUkNIX0xJQlMoW2NkYXdzb25dLCBbY2Vy
Zl0sCiAgICAgIFtBQ19ERUZJTkUoW0hBVkVfTElCQ0VSRl0sIDEsIFtkZWZpbmUgaWYgeW91IGhh
dmUgbGliY2VyZl0pCiAgICAgIGhhdmVfbGliY2VyZj15ZXNdCiAgKQpmaQoKQUNfQVJHX1dJVEgo
YW1vcyxkbmwKWyAgLS13aXRoLWFtb3NbPURJUl0gICAgICAgICBsb2NhdGlvbiBvZiBsaWJhbW9z
IG9yIGxpYm9wZW5zcGVjZnVuIChjb21wbGV4IGZ1bmN0aW9ucyldLCwKICB3aXRoX2Ftb3M9eWVz
KQoKaWYgdGVzdCAtZCAiJHdpdGhfYW1vcyI7IHRoZW4KICBMSUJBTU9TX0xERkxBR1M9LUwkd2l0
aF9hbW9zCmZpCgppZiB0ZXN0ICIke3dpdGhfYW1vc30iICE9IG5vIDsgdGhlbgogIF9sZGZsYWdz
PSIkTERGTEFHUyIKICBMREZMQUdTPSIkTERGTEFHUyAkTElCQU1PU19MREZMQUdTIgogIEFDX01T
R19DSEVDS0lORyggZm9yIGFtb3MgbGlicmFyaWVzIHVzaW5nIExERkxBR1M6ICRMREZMQUdTICkK
CiAgZG5sIFRoZSBBbW9zIHJvdXRpbmVzIChELiBFLiBBbW9zLCBTYW5kaWEgTmF0aW9uYWwgTGFi
b3JhdG9yaWVzKSBjYWxjdWxhdGUKICBkbmwgQmVzc2VsIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyB3
aXRoIGNvbXBsZXggYXJndW1lbnQgYW5kIG5vbm5lZ2F0aXZlIG9yZGVyLgogIGRubCBUaGVzZSBy
b3V0aW5lcyBleGlzdCBpbiB2YXJpb3VzIGxpYnJhcnkgcGFja2FnZXMgaW5jbHVkaW5nIGxpYm9w
ZW5zcGVjZnVuLgogIEFDX1NFQVJDSF9MSUJTKFt6YWlyeV9dLCBbYW1vcyBvcGVuc3BlY2Z1bl0s
CiAgICAgIFtBQ19ERUZJTkUoW0hBVkVfQU1PU10sIDEsIFtkZWZpbmUgaWYgeW91IGhhdmUgYSBs
aWJyYXJ5IG9mIEFtb3Mgc3BlY2lhbCBmdW5jdGlvbnNdKQogICAgICBoYXZlX2Ftb3NsaWJyYXJ5
PXllc10KICApCiAgZG5sIFRoZSBBbW9zIHJvdXRpbmVzIGNleGludCBhbmQgemV4aW50IChDb21w
bGV4IGV4cG9uZW50aWFsIGludGVncmFsKSBhcmUgbm90CiAgZG5sIGluIHRoZSBnZW5lcmFsIGNv
bGxlY3Rpb24gb2YgQmVzc2VsIGZ1bmN0aW9ucyBzbyBtYXkgb3IgbWF5IG5vdCBiZSBwcmVzZW50
CiAgZG5sIGluIHRoZSBzYW1lIGxpYnJhcnkgYXMgdGhlIG90aGVycy4KICBkbmwgU2VhcmNoIGZp
cnN0IGZvciB6ZXhpbnQgYW5kIGlmIG5vdCBmb3VuZCBzZWFyY2ggYWdhaW4gZm9yIGNleGludAog
IEFDX1NFQVJDSF9MSUJTKFt6ZXhpbnRfXSwgW2Ftb3Mgb3BlbnNwZWNmdW5dLAogICAgICBbQUNf
REVGSU5FKFtIQVZFX1pFWElOVF0sIDEsIFtkZWZpbmUgaWYgeW91IGhhdmUgQW1vcyBmdW5jdGlv
biB6ZXhpbnRdKQogICAgICBoYXZlX3pleGludD15ZXMgJiYgTElCUz0iJExJQlMgLUwvaG9tZS9s
b2NhbC9saWI2NCJdCiAgKQogIGlmIHRlc3QgIiRoYXZlX3pleGludCIgIT0geWVzOyB0aGVuCiAg
ICBBQ19TRUFSQ0hfTElCUyhbY2V4aW50X10sIFthbW9zIG9wZW5zcGVjZnVuXSwKICAgICAgICBb
QUNfREVGSU5FKFtIQVZFX0NFWElOVF0sIDEsIFtkZWZpbmUgaWYgeW91IGhhdmUgQW1vcyBmdW5j
dGlvbiBjZXhpbnRdKQogICAgICAgIGhhdmVfY2V4aW50PXllcyAmJiBMSUJTPSIkTElCUyAtTC9o
b21lL2xvY2FsL2xpYjY0Il0KICAgICkKICBmaQpmaQoKZG5sIFZhcmlvdXMgcHJvZ3JhbXMKZG5s
IFgvRW1hY3MgZm9yIGJ1aWxkaW5nIC50ZXhpIHZlcnNpb24gb2YgZG9jcwp0ZXN0IHgiJEVNQUNT
IiA9IHh0ICYmIEVNQUNTPQpBQ19DSEVDS19QUk9HUyhFTUFDUywgZW1hY3MgeGVtYWNzLCBubykK
CmRubCBBbGxvdyBtYW51YWwgc3BlY2lmaWNhdGlvbiBvZiB0ZXgKQUNfQVJHX1dJVEgobGF0ZXgs
WyAgLS13aXRob3V0LWxhdGV4ICAgICAgICAgZGlzYWJsZSBpbnN0YWxsYXRpb24gb2YgbGF0ZXgg
c3VwcG9ydCBmaWxlc10sW10sW3dpdGhfbGF0ZXg9InllcyJdKQppZiB0ZXN0ICIkd2l0aF9sYXRl
eCIgPSB5ZXM7IHRoZW4KICBBQ19DSEVDS19QUk9HUyhQTEFJTlRFWCwgdGV4LCBubykKICBBQ19D
SEVDS19QUk9HUyhMQVRFWCwgbGF0ZXggbGF0ZXgyZSwgbm8pCiAgQUNfQ0hFQ0tfUFJPR1MoUERG
TEFURVgsIHBkZmxhdGV4LCBubykKICB0ZXN0ICIkUExBSU5URVgiID0gIm5vIiAtbyAiJExBVEVY
IiA9IG5vIC1vICIkUERGTEFURVgiID0gIm5vIiAmJiB3aXRoX2xhdGV4PSJubyIKZWxzZQogICAg
UExBSU5URVg9Im5vIgogICAgTEFURVg9Im5vIgogICAgUERGTEFURVg9Im5vIgpmaQpBTV9DT05E
SVRJT05BTChIQVZFX0xBVEVYLCB0ZXN0ICIkd2l0aF9sYXRleCIgIT0gbm8pCkFDX0NIRUNLX1BS
T0dTKERWSVBTLCBkdmlwcywgbm8pCkFDX0NIRUNLX1BST0dTKFRST0ZGLCB0cm9mZiwgbm8pCgpB
Q19BUkdfV0lUSCh0ZXhkaXIsZG5sCiAgWy0td2l0aC10ZXhkaXI9RElSICAgICAgIHdoZXJlIHRv
IGluc3RhbGwgbGF0ZXggc3R5bGUgZmlsZXMgKGRlZmF1bHQ6IGFzayBrcHNld2hpY2gpXSwKICBU
RVhESVI9IiR3aXRodmFsIiwKICBURVhESVI9Im5vIikKZG5sIEFsbG93IG1hbnVhbCBzcGVjaWZp
Y2F0aW9uIG9mIGtwc2V3aGljaApBQ19DSEVDS19QUk9HUyhLUFNFV0hJQ0gsIGtwc2V3aGljaCwg
bm8pCkFDX0NIRUNLX1BST0dTKFRFWEhBU0gsIHRleGhhc2gsIHRydWUpCgpkbmwgd2Ugb25seSBj
YXJlIGFib3V0IHRleGRpciBpZiBsYXRleCBpcyBlbmFibGVkCmlmIHRlc3QgIiR3aXRoX2xhdGV4
IiA9IHllczsgdGhlbgogIHRlc3QgIiRLUFNFV0hJQ0giID0gIm5vIiAtYSAiJFRFWERJUiIgPSAi
bm8iICYmIEFDX01TR19FUlJPUihkbmwKICAgIFt0ZXhkaXIgaXMgbm90IGdpdmVuIGFuZCB0aGVy
ZSBpcyBubyBrcHNld2hpY2gsIHBsZWFzZSB0ZWxsIHdoZXJlIHRvIGluc3RhbGxdKQogIGRubCB0
ZXhkaXIgaGFzIHByaW9yaXR5CiAgaWYgdGVzdCAiJFRFWERJUiIgPSAibm8iOyB0aGVuCiAgICBU
RVhESVI9YCRLUFNFV0hJQ0ggLS1leHBhbmQtdmFyICckVEVYTUZMT0NBTCdgCiAgICBpZiB0ZXN0
ICJ4JFRFWERJUiIgPSAieCIgLW8gIiRURVhESVIiID0gIlwkVEVYTUZMT0NBTCI7IHRoZW4KICAg
ICAgaWYgdGVzdCAieCRwcmVmaXgiICE9ICJ4Tk9ORSI7IHRoZW4KICAgICAgICBURVhESVI9JHtw
cmVmaXh9L3NoYXJlL3RleG1mCiAgICAgIGVsc2UKICAgICAgICBURVhESVI9JHthY19kZWZhdWx0
X3ByZWZpeH0vc2hhcmUvdGV4bWYKICAgICAgZmkKICAgIGZpCiAgICBURVhESVI9JHtURVhESVJ9
L3RleC9sYXRleC9nbnVwbG90CiAgZmkKZmkKCmRubCBYIFdpbmRvdyBTeXN0ZW0gZmlsZXMuCkFD
X1NVQlNUKExJQlJBUklFU19GT1JfWCkKQUNfUEFUSF9YVFJBCgpkbmwgTmVlZGVkIGZvciBMeW54
T1MgdW50aWwgQUNfUEFUSF9YVFJBIGlzIGZpeGVkCmlmIHRlc3QgIiRhY19jdl9mdW5jX2dldGhv
c3RieW5hbWUiID0gbm87IHRoZW4KICBpZiB0ZXN0ICIkYWNfY3ZfbGliX25zbF9nZXRob3N0Ynlu
YW1lIiA9IG5vOyB0aGVuCiAgICBBQ19DSEVDS19MSUIoYnNkLCBnZXRob3N0YnluYW1lLCBYX0VY
VFJBX0xJQlM9IiRYX0VYVFJBX0xJQlMgLWxic2QiKQogIGZpCmZpCgppZiB0ZXN0ICIkbm9feCIg
IT0geWVzOyB0aGVuCiAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAkWF9DRkxBR1MiCiAgTElCUkFSSUVT
X0ZPUl9YPSIkWF9MSUJTIC1sWDExICRYX0VYVFJBX0xJQlMiCiAgQUNfREVGSU5FKFgxMSwxLFsg
RGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIFgxMSB3aW5kb3cgc3lzdGVtLiBdKQogIEFDX0FS
R19XSVRIKHgtZGNvcCxkbmwKICBbLS13aXRoLXgtZGNvcCAgICAgICAgICAgZ251cGxvdF94MTEg
Y2FuIHVzZSBLREUzL0RDT1AgZm9yIHNwYWNlLXJhaXNlcy1jb25zb2xlXSwKICBBQ19ERUZJTkUo
VVNFX0tERTNfRENPUCwxLFsgRGVmaW5lIGlmIGdudXBsb3RfeDExIGNhbiB1c2UgS0RFMyBEQ09Q
IHRvIHJhaXNlIGtvbnNvbGVdKSkKZmkKQU1fQ09ORElUSU9OQUwoQlVJTERfR05VUExPVF9YMTEs
IHRlc3QgIiRub194IiAhPSB5ZXMpCgpkbmwgT3BlcmF0aW5nIHN5c3RlbXMuCmRubCBDaGVjayBm
b3IgTVNET1MgYW5kIGRqZ3BwLCBBcHBsZSBNYWNPc1gsIEJlT1MKR1BfTVNET1MKR1BfQVBQTEUK
R1BfQkVPUwpHUF9BTFBIQQpBTV9DT05ESVRJT05BTChCVUlMRF9TUkNfQkVPU19TVUJESVIsIHRl
c3QgeCRidWlsZF9iZW9zX3N1YmRpciA9IHh5ZXMpCgpkbmwgX2luc3RlYWRfIG9mIC1sbSAuLi4K
QUNfQ0hFQ0tfRlVOQyhzaW4sLFtBQ19DSEVDS19MSUIobSxzaW4pXSkKCmRubCBIZWFkZXIgZmls
ZXMuIEFOU0kgZmlyc3QKZG5sIEFDX0hFQURFUl9TVERDCkFDX0NIRUNLX0hFQURFUlMoZGlyZW50
LmggZXJybm8uaCBmbG9hdC5oIGxhbmdpbmZvLmggbGltaXRzLmggbG9jYWxlLmggbWF0aC5oIFwK
ICBzdGRsaWIuaCBzdHJpbmcuaCB0aW1lLmggc3lzL3RpbWUuaCBzeXMvdHlwZXMuaCBcCiAgc3lz
L2JzZHR5cGVzLmggc3lzL2lvY3RsLmggc3lzL3BhcmFtLmggc3lzL3NlbGVjdC5oIHN5cy9zb2Nr
ZXQuaCBcCiAgc3lzL3N0YXQuaCBzeXMvc3lzdGVtaW5mby5oIHN5cy90aW1lYi5oIHN5cy91dHNu
YW1lLmggXAogIGxpYmMuaCBtYWxsb2MuaCBwb2xsLmggc2d0dHkuaCB0ZXJtaW9zLmggdmFsdWVz
LmggZGlyZW50LmggXAogIGludHR5cGVzLmggXAogIGRsZmNuLmggZGwuaAopCgpBQ19IRUFERVJf
U1REQk9PTAoKaWYgdGVzdCAiJGFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oIiA9IHllczsgdGhlbgog
IEFDX0hFQURFUl9TVEFUCmZpCgpBQ19IRUFERVJfU1lTX1dBSVQKCmRubCBDaGVjayBmb3IgZXh0
ZXJuYWwgZnVuY3Rpb25zIHBsdWdpbiBpbmZyYXN0cnVjdHVyZQpBQ19BUkdfRU5BQkxFKHBsdWdp
bnMsZG5sClsgIC0tZGlzYWJsZS1wbHVnaW5zICAgICAgIGRpc2FibGUgc3VwcG9ydCBmb3IgaW1w
b3J0aW5nIGV4dGVybmFsIGZ1bmN0aW9uc10sLCkKCmlmIHRlc3QgIiRlbmFibGVfcGx1Z2lucyIg
IT0gbm87IHRoZW4KICBpZiB0ZXN0ICIkYWNfY3ZfaGVhZGVyX2RsX2giID0geWVzOyB0aGVuCiAg
ICBBQ19TRUFSQ0hfTElCUyhzaGxfbG9hZCwgZGxkLAogICAgICBbQUNfREVGSU5FKEhBVkVfRVhU
RVJOQUxfRlVOQ1RJT05TLDEsWyBEZWZpbmUgaWYgZXh0ZXJuYWwgZnVuY3Rpb24gcGx1Z2lucyBh
cmUgdG8gYmUgc3VwcG9ydGVkLiBdKQogICAgICAgaGF2ZV9leHRlcm5hbF9mdW5jdGlvbnM9eWVz
CiAgICAgIF0pCiAgZmkKICBpZiB0ZXN0ICIkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geWVzOyB0
aGVuCiAgICBBQ19TRUFSQ0hfTElCUyhkbG9wZW4sIGRsLAogICAgICBbQUNfREVGSU5FKEhBVkVf
RVhURVJOQUxfRlVOQ1RJT05TLDEsWyBEZWZpbmUgaWYgZXh0ZXJuYWwgZnVuY3Rpb24gcGx1Z2lu
cyBhcmUgdG8gYmUgc3VwcG9ydGVkLiBdKQogICAgICAgaGF2ZV9leHRlcm5hbF9mdW5jdGlvbnM9
eWVzCiAgICAgIF0pCiAgZmkKZmkKQU1fQ09ORElUSU9OQUwoQlVJTERfUExVR0lOLCB0ZXN0ICIk
aGF2ZV9leHRlcm5hbF9mdW5jdGlvbnMiID0geWVzKQoKZG5sIGNoZWNrIGlmIHVuaXN0ZCBhY3R1
YWxseSBkZWNsYXJlcyBhbnl0aGluZy4KQUNfTVNHX0NIRUNLSU5HKGZvciB1bmlzdGQuaCkKQUNf
RUdSRVBfSEVBREVSKGV4ZWN2LCB1bmlzdGQuaCwKICBbQUNfREVGSU5FKEhBVkVfVU5JU1REX0gp
IEFDX01TR19SRVNVTFQoeWVzKV0sCiAgIEFDX01TR19SRVNVTFQobm8pKQoKZG5sIGNoZWNrIGlm
IGVycm5vLmggaGVhZGVyIGRlY2xhcmVzIGVycm5vCkFDX01TR19DSEVDS0lORyhpZiBlcnJubyB2
YXJpYWJsZSBpcyBkZWNsYXJlZCkKQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShb
WyNpbmNsdWRlIDxzdGRpby5oPgojaWZkZWYgSEFWRV9FUlJOT19ICiNpbmNsdWRlIDxlcnJuby5o
PgojZW5kaWZdXSwgW1tlcnJubz0wXV0pXSxbQUNfTVNHX1JFU1VMVCh5ZXMpXSxbQUNfREVGSU5F
KEVYVEVSTl9FUlJOTywxLFsgRGVmaW5lIGlmIDxlcnJuby5oPiBkZWNsYXJlcyBlcnJuby4gXSkK
ICAgQUNfTVNHX1JFU1VMVChubyldKQoKCmRubCBUeXBlcy4KQUNfVFlQRV9TSVpFX1QKQUNfTVNH
X0NIRUNLSU5HKGZvciB0aW1lX3QgaW4gdGltZS5oKQpBQ19FR1JFUF9IRUFERVIodGltZV90LHRp
bWUuaCwKICBbQUNfTVNHX1JFU1VMVCh5ZXMpCiAgIEFDX0RFRklORShIQVZFX1RJTUVfVF9JTl9U
SU1FX0gsMSwKICAgICAgICAgICAgIFsgRGVmaW5lIGlmIHRpbWVfdCBpcyBkZWNsYXJlZCBpbiB0
aW1lLmguIF0pXSkKIAoKZG5sIEZ1bmN0aW9ucy4gU3RhbmRhcmQgZmlyc3QsIHRoZW4gb3RoZXJz
CgpkbmwgQU5TSS9JU08gYW5kIHRoZWlyIHByZWRlY2Vzc29ycwpkbmwgc3Vub3MgNCBoYXMgb25f
ZXhpdCgpIGluIHBsYWNlIG9mIGF0ZXhpdCgpCmRubCBnYW1tYSBpcyBjYWxsZWQgbGdhbW1hIGxp
bnV4CmRubCB3ZSBwcmVmZXIgbGdhbW1hIG92ZXIgZ2FtbWEsIHNlZSBzcGVjZnVuLmMKZG5sIG1h
dGggbGliIGlzIGFscmVhZHkgYXZhaWxhYmxlLCBzZWUgb3BlcmF0aW5nIHN5c3RlbXMgcGFydApB
Q19DSEVDS19GVU5DUyhhdGV4aXQgbWVtY3B5IG1lbW1vdmUgbWVtc2V0IFwKICBvbl9leGl0IGJj
b3B5IGJ6ZXJvIFwKICBzZXR2YnVmIHN0cmVycm9yIHN0cmNociBzdHJyY2hyIHN0cnN0ciBcCiAg
aW5kZXggcmluZGV4IFwKICBlcmYgZXJmYyBnYW1tYSBsZ2FtbWEgdGdhbW1hIFwKICBnZXRjd2Qg
cG9sbCBwY2xvc2UgcG9wZW4gZmRvcGVuIHNlbGVjdCBzbGVlcCBzdHBjcHkgc3RybGNweSBcCiAg
c3RyY3NwbiBzdHJkdXAgc3RybmR1cCBzdHJubGVuIHN0cmNhc2VjbXAgc3RyaWNtcCBzdHJuY2Fz
ZWNtcCBzdHJuaWNtcCBcCiAgc3lzaW5mbyB0Y2dldGF0dHIgdmZwcmludGYgZG9wcm50IHVuYW1l
IHVzbGVlcCBcCiAgY2JydCBqbgopCgpkbmwgSEJCIDIwMDMwNjI0OiBzZWUgaWYgc2lnbmdhbSBp
cyBkZWNsYXJlZCBieSBtYXRoLmgKQUNfQ0hFQ0tfREVDTFMoW3NpZ25nYW1dLCwsClsjaWYgSEFW
RV9NQVRIX0gKI2luY2x1ZGUgPG1hdGguaD4KI2VuZGlmCl0pCgpkbmwgY2hlY2sgZm9yIEM5OSBj
b21wbGV4IHR5cGVzCmRubCBhbmQgbWluaW1hbCBzZXQgb2YgY29tcGxleCBtYXRoIGZ1bmN0aW9u
cwpBQ19DSEVDS19IRUFERVJTKGNvbXBsZXguaCkKQUNfQ0hFQ0tfRlVOQ1MoY3NxcnQgY2V4cCBj
YWJzIGNsb2cpCmRubCBjaGVjayBmb3IgQzk5IGZsb2F0aW5nIHBvaW50IGV4Y2VwdGlvbiBoYW5k
bGluZwpBQ19DSEVDS19IRUFERVJTKGZlbnYuaCkKCmRubCBjaGVjaywgaWYgd2UgaGF2ZSBzaWdz
ZXRqbXAgYW5kIHNpZ2xvbmdqbXAuCmRubCBhIHRyaXZpYWwgQUNfQ0hFQ0tfRlVOQ1Moc2lnc2V0
am1wKSB3b24ndCBkbwpkbmwgYmVjYXVzZSBzaWdzZXRqbXAoKSBtaWdodCBiZSBhIG1hY3JvIGRl
Y2xhcmVkCmRubCBpbiA8c2V0am1wLmg+LiAoam96ZSkKQUNfTVNHX0NIRUNLSU5HKGZvciBzaWdz
ZXRqbXApCkFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8c2V0am1w
Lmg+XV0sIFtbam1wX2J1ZiBlbnY7IHNpZ3NldGptcChlbnYsIDEpO11dKV0sW0FDX01TR19SRVNV
TFQoeWVzKQogICBBQ19ERUZJTkUoSEFWRV9TSUdTRVRKTVAsMSwKICAgICAgICAgICAgIFsgRGVm
aW5lIGlmIHdlIGhhdmUgc2lnc2V0am1wKCkuIF0pXSxbQUNfTVNHX1JFU1VMVChubyldKQoKaWYg
dGVzdCAiJGFjX2N2X2Z1bmNfcGNsb3NlIiA9IHllcyAtYSAiJGFjX2N2X2Z1bmNfcG9wZW4iID0g
eWVzIDsgdGhlbgogIEFDX0RFRklORShQSVBFUywxLFsgRGVmaW5lIGlmIHlvdSBkbyBoYXZlIHRo
ZSBwb3BlbiBhbmQgcGNsb3NlIGZ1bmN0aW9ucy4gXSkKZmkKCkFDX01TR19DSEVDS0lORyhpZiBt
YWxsb2MoMCkgcmV0dXJucyAwKQpBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaWZk
ZWYgSEFWRV9TVERMSUJfSAojaW5jbHVkZSA8c3RkbGliLmg+CiNlbmRpZgpdXSwKW1tpZihtYWxs
b2MoMCk9PTApIHJldHVybiAxO11dKV0sClttYWxsb2NfemVyb19yZXR1cm5zX3plcm89bm9dLApb
bWFsbG9jX3plcm9fcmV0dXJuc196ZXJvPXllc10sClttYWxsb2NfemVyb19yZXR1cm5zX3plcm89
eWVzXSkKQUNfTVNHX1JFU1VMVChbJG1hbGxvY196ZXJvX3JldHVybnNfemVyb10pCkFTX0lGKFt0
ZXN0IHgkbWFsbG9jX3plcm9fcmV0dXJuc196ZXJvID0geHllc10sCiAgICAgIFtBQ19ERUZJTkUo
W01BTExPQ19aRVJPX1JFVFVSTlNfWkVST10sWzFdLFtEZWZpbmUgdG8gMSBpZiBtYWxsb2MoMCk9
PTBdKV0pCgpkbmwgQXJndW1lbnQgdHlwZXMgb2Ygc2VsZWN0KCkKQUNfRlVOQ19TRUxFQ1RfQVJH
VFlQRVMKCmRubCAuZ2loIGhlbHAgZmlsZSBsb2NhdGlvbgpldmFsIGdwX2RhdGFkaXI9JGRhdGFk
aXIKaWYgdGVzdCAiJGdwX2RhdGFkaXIiID0gTk9ORS9zaGFyZTsgdGhlbgogIGRhdGFkaXI9Ii91
c3IvbG9jYWwvc2hhcmUiCmZpCnBrZ2RhdGFkaXI9IiRkYXRhZGlyLyRQQUNLQUdFIgpBQ19BUkdf
V0lUSChnaWhkaXIsZG5sClsgIC0td2l0aC1naWhkaXI9RElSICAgICAgIGxvY2F0aW9uIG9mIC5n
aWggaGVscCB0ZXh0IGZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCBQUkVG
SVgvc2hhcmUvUEFDS0FHRS9WRVJTSU9OKV0sCiAgR0lIRElSPSIkd2l0aHZhbCIsCiAgR0lIRElS
PSIkcGtnZGF0YWRpci8kVkVSU0lPTl9NQUpPUiIpCgpkbmwgVXNlIGJ1aWx0aW4gcmVhZGxpbmUg
b3IgR05VIHJlYWRsaW5lIG9yIE5ldEJTRCBlZGl0bGluZQpBQ19BUkdfV0lUSChyZWFkbGluZSxk
bmwKWyAgLS13aXRoLXJlYWRsaW5lPWJ1aWx0aW4gIHVzZSB0aGUgYnVpbHQtaW4gcmVhZGxpbmUK
ICAtLXdpdGgtcmVhZGxpbmU9Z251ICAgICAgdXNlIHRoZSBHTlUgcmVhZGxpbmUgbGlicmFyeSAo
ZGVmYXVsdCBpZiBwcmVzZW50KQogIC0td2l0aC1yZWFkbGluZT1ic2QgICAgICB1c2UgdGhlIE5l
dEJTRCBlZGl0bGluZSBsaWJyYXJ5CiAgLS13aXRoLXJlYWRsaW5lPURJUiAgICAgIHNwZWNpZnkg
dGhlIGxvY2F0aW9uIG9mIHJlYWRsaW5lL2VkaXRsaW5lCiAgLS13aXRob3V0LXJlYWRsaW5lICAg
ICAgIHNhbWUgYXMgLS13aXRoLXJlYWRsaW5lPWJ1aWx0aW5dLCAsCiAgdGVzdCAteiAiJHdpdGhf
cmVhZGxpbmUiICYmIHdpdGhfcmVhZGxpbmU9Z251KQoKQVNfSUYoW3Rlc3QgIngke3dpdGhfcmVh
ZGxpbmV9IiA9ICJ4bm8iXSwgd2l0aF9yZWFkbGluZT0iYnVpbHRpbiIsICkKCmRubCBHbnVwbG90
IGhpc3RvcnkKQUNfQVJHX0VOQUJMRShoaXN0b3J5LWZpbGUsZG5sClsgIC0tZGlzYWJsZS1oaXN0
b3J5LWZpbGUgIGRvIG5vdCB1c2UgaGlzdG9yeSBmaWxlXSwsCiAgdGVzdCAteiAiJGVuYWJsZV9o
aXN0b3J5X2ZpbGUiICYmIGVuYWJsZV9oaXN0b3J5X2ZpbGU9eWVzKQoKZG5sIEdOVSByZWFkbGlu
ZSBhbmQgdGhlIHJlcXVpcmVkIHRlcm1pbmFsIGxpYnJhcnkKaWYgdGVzdCAiJHdpdGhfcmVhZGxp
bmUiICE9IG5vOyB0aGVuCiAgX2xpYnM9IiRMSUJTIgogIGlmIHRlc3QgIiR3aXRoX3JlYWRsaW5l
IiAhPSBidWlsdGluOyB0aGVuCgogICAgZG5sIGNoZWNrIGZvciB0ZXJtaW5hbCBsaWJyYXJ5CiAg
ICBkbmwgdGhpcyBpcyBhIHZlcnkgY29vbCBzb2x1dGlvbiBmcm9tIG9jdGF2ZSdzIGNvbmZpZ3Vy
ZS5pbgogICAgZ3BfdGNhcD0iIgogICAgZm9yIHRlcm1saWIgaW4gbmN1cnNlcyBjdXJzZXMgdGVy
bWNhcCB0ZXJtaW5mbyB0ZXJtbGliOyBkbwogICAgICBBQ19DSEVDS19MSUIoJHt0ZXJtbGlifSwg
dHB1dHMsIFtncF90Y2FwPSIkZ3BfdGNhcCAtbCR0ZXJtbGliIl0pCiAgICAgIGNhc2UgIiRncF90
Y2FwIiBpbgogICAgICAgICotbCR7dGVybWxpYn0qKQogICAgICAgICAgYnJlYWsKICAgICAgICA7
OwogICAgICBlc2FjCiAgICBkb25lCgogICAgZG5sIGV4cGxpY2l0IHBhdGggdG8gcmVhZGxpbmUv
ZWRpdGxpbmUKICAgIGlmIHRlc3QgIiR3aXRoX3JlYWRsaW5lIiAhPSBnbnUgLWEgIiR3aXRoX3Jl
YWRsaW5lIiAhPSBic2Q7IHRoZW4KICAgICAgaWYgdGVzdCAtZCAkd2l0aF9yZWFkbGluZS9pbmNs
dWRlOyB0aGVuCiAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSR3aXRoX3JlYWRsaW5lL2lu
Y2x1ZGUiCiAgICAgIGZpCiAgICAgIGlmIHRlc3QgLWQgJHdpdGhfcmVhZGxpbmUvbGliOyB0aGVu
CiAgICAgICAgTERGTEFHUz0iJExERkxBR1MgLUwkd2l0aF9yZWFkbGluZS9saWIiCiAgICAgIGZp
CiAgICAgIGRubCBDb3VsZCBiZSBlaXRoZXIgbGliZWRpdCBvciByZWFkbGluZSEKICAgICAgaWYg
dGVzdCAhIC1kICR3aXRoX3JlYWRsaW5lL2luY2x1ZGUvcmVhZGxpbmU7IHRoZW4KICAgICAgICBp
ZiB0ZXN0IC1kICR3aXRoX3JlYWRsaW5lL2luY2x1ZGUvZWRpdGxpbmU7IHRoZW4KICAgICAgICAg
IEFDX01TR19XQVJOKFskd2l0aF9yZWFkbGluZSBjb250YWlucyBsaWJlZGl0LCBub3QgcmVhZGxp
bmUhXSkKICAgICAgICAgIHdpdGhfcmVhZGxpbmU9YnNkCiAgICAgICAgZWxzZQogICAgICAgICAg
QUNfTVNHX0VSUk9SKFtObyByZWFkbGluZSBmb3VuZCBpbiAkd2l0aF9yZWFkbGluZV0pCiAgICAg
ICAgZmkKICAgICAgZmkKICAgIGZpCgogICAgaWYgdGVzdCAiJHdpdGhfcmVhZGxpbmUiID0gYnNk
OyB0aGVuCgogICAgICBBQ19DSEVDS19MSUIoZWRpdCwgcmVhZGxpbmUsCiAgICAgICAgW1RFUk1M
SUJTPSItbGVkaXQgJFRFUk1MSUJTIl0sCgkgW0FDX01TR19XQVJOKFtDb3VsZCBub3QgZmluZCBC
U0QgZWRpdGxpbmUgbGlicmFyeSBdKQoJICB3aXRoX3JlYWRsaW5lPWJ1aWx0aW5dLCkKCiAgICAg
IGlmIHRlc3QgIiRhY19jdl9saWJfZWRpdF9yZWFkbGluZSIgPSB5ZXM7IHRoZW4KICAgICAgICBB
Q19ERUZJTkUoSEFWRV9MSUJFRElUTElORSwxLAogICAgICAgICAgICAgICAgWyBEZWZpbmUgaWYg
eW91IGFyZSB1c2luZyB0aGUgQlNEIGVkaXRsaW5lIGxpYnJhcnkuIF0pCiAgICAgICAgQUNfQ0hF
Q0tfSEVBREVSUyhlZGl0bGluZS9yZWFkbGluZS5oLCwKICAgICAgICAgIEFDX01TR19XQVJOKFtm
b3VuZCBCU0QgZWRpdGxpbmUgbGlicmFyeSBidXQgbm90IHJlYWRsaW5lLmggcGxlYXNlIGFkZCBw
YXRoIHRvIHJlYWRsaW5lLmggdG8gQ1BQRkxBR1MgaW4gTWFrZWZpbGVdKSkKCiAgICAgICAgaWYg
dGVzdCAiJGVuYWJsZV9oaXN0b3J5X2ZpbGUiID0geWVzOyB0aGVuCiAgICAgICAgICAgIEFDX0RF
RklORShHTlVQTE9UX0hJU1RPUlksMSwKICAgICAgICAgICAgICAgICAgICAgIFsgRGVmaW5lIGlm
IHlvdSB3YW50IHRvIHVzZSBhIGdudXBsb3QgaGlzdG9yeSBmaWxlLiBdKQogICAgICAgIGZpCiAg
ICAgIGZpCgogICAgZWxzZSAjICFic2QKCiAgICBBQ19DSEVDS19MSUIocmVhZGxpbmUsIHJlbW92
ZV9oaXN0b3J5LAogICAgICBbVEVSTUxJQlM9Ii1scmVhZGxpbmUgJGdwX3RjYXAgJFRFUk1MSUJT
Il0sLFske2dwX3RjYXB9XSkKICAgIGlmIHRlc3QgIiRhY19jdl9saWJfcmVhZGxpbmVfcmVtb3Zl
X2hpc3RvcnkiID0gbm87IHRoZW4KICAgICAgZG5sIE9TWCBrZWVwcyBoaXN0b3J5IGZ1bmN0aW9u
cyBpbiBhIHNlcGFyYXRlIGxpYnJhcnkKICAgICAgQUNfQ0hFQ0tfTElCKGhpc3RvcnksIHJlbW92
ZV9oaXN0b3J5LAogICAgICAgIFtURVJNTElCUz0iLWxyZWFkbGluZSAtbGhpc3RvcnkgJGdwX3Rj
YXAgJFRFUk1MSUJTIl0sCiAgICAgICAgWyBBQ19NU0dfV0FSTihbR05VIHJlYWRsaW5lIG5vdCBm
b3VuZCAtIGZhbGxpbmcgYmFjayB0byBidWlsdGluIHJlYWRsaW5lXSkKICAgICAgICAgIHdpdGhf
cmVhZGxpbmU9YnVpbHRpbiBdCiAgICAgICAgLFske2dwX3RjYXB9XSkKICAgIGZpCgogICAgZG5s
IFdvcmsgYXJvdW5kIHNvbWUgZnVuY3Rpb25zIG1pc3NpbmcgZnJvbSB0aGUgT1NYIHJlYWRsaW5l
IGxpYnJhcnkuCiAgICBkbmwgV291bGQgaXQgYmUgYmV0dGVyIHRvIHNpbXBseSBzd2l0Y2ggdG8g
d2l0aF9yZWFkbGluZT1ic2QgaW4gdGhpcyBjYXNlPwogICAgQUNfU0VBUkNIX0xJQlMocmxfZGlu
ZywgcmVhZGxpbmUsICwKCUFDX0RFRklORShNSVNTSU5HX1JMX0RJTkcsMSxbIERlZmluZSBpZiB5
b3VyIGxpYnJlYWRsaW5lIGhhcyBubyBybF9kaW5nXSksCiAgICAgICAgWyR7VEVSTUxJQlN9XSkK
ICAgIEFDX1NFQVJDSF9MSUJTKHJsX2ZvcmNlZF91cGRhdGVfZGlzcGxheSwgcmVhZGxpbmUsICwK
CUFDX0RFRklORShNSVNTSU5HX1JMX0ZPUkNFRF9VUERBVEVfRElTUExBWSwxLFsgRGVmaW5lIGlm
IHlvdXIgbGlicmVhZGxpbmUgaGFzIG5vIHJsX2ZvcmNlX3VwZGF0ZV9kaXNwbGF5XSksCiAgICAg
ICAgWyR7VEVSTUxJQlN9XSkKICAgIEFDX1NFQVJDSF9MSUJTKHJsX3Jlc2V0X2FmdGVyX3NpZ25h
bCwgcmVhZGxpbmUsCglBQ19ERUZJTkUoSEFWRV9SRUFETElORV9SRVNFVCwxLFsgRGVmaW5lIGlm
IHlvdXIgbGlicmVhZGxpbmUgaGFzIHJsX3Jlc2V0X2FmdGVyX3NpZ25hbF0pLAoJLAogICAgICAg
IFske1RFUk1MSUJTfV0pCiAgICBBQ19TRUFSQ0hfTElCUyhfcmxfc2lnbmFsX2hhbmRsZXIsIHJl
YWRsaW5lLAoJQUNfREVGSU5FKEhBVkVfUkVBRExJTkVfU0lHTkFMX0hBTkRMRVIsMSxbIERlZmlu
ZSBpZiB5b3VyIGxpYnJlYWRsaW5lIGhhcyBfcmxfc2lnbmFsX2hhbmRsZXJdKSwKCSwKICAgICAg
ICBbJHtURVJNTElCU31dKQogICAgQUNfU0VBUkNIX0xJQlMocmxfcGVuZGluZ19zaWduYWwsIHJl
YWRsaW5lLAoJQUNfREVGSU5FKEhBVkVfUkVBRExJTkVfUEVORElOR19TSUdOQUwsMSxbIERlZmlu
ZSBpZiB5b3VyIGxpYnJlYWRsaW5lIGhhcyBybF9wZW5kaW5nX3NpZ25hbF0pLAoJLAogICAgICAg
IFske1RFUk1MSUJTfV0pCiAgICAjIFdhcm5pbmc6IHJsX2NvbXBsZXRlX3dpdGhfdGlsZGVfZXhw
YW5zaW9uIGlzIGFuIGludCwgbm90IGEgZnVuY3Rpb24uCiAgICAjIEkuZS4sIGl0IGlzIG5vdCBj
YWxsYWJsZS4gIEFDX0NIRUNLX0xJQiBzZWVtcyB0byB3b3JrIGFueWhvdywgYnV0Li4uCiAgICBB
Q19TRUFSQ0hfTElCUyhybF9jb21wbGV0ZV93aXRoX3RpbGRlX2V4cGFuc2lvbiwgcmVhZGxpbmUs
ICwgCglBQ19ERUZJTkUoTUlTU0lOR19STF9USUxERV9FWFBBTlNJT04sMSxbIERlZmluZSBpZiB5
b3VyIGxpYnJlYWRsaW5lIGhhcyBubyBybF9jb21wbGV0ZV93aXRoX3RpbGRlX2V4cGFuc2lvbl0p
LAogICAgICAgIFske1RFUk1MSUJTfV0pCgogICAgaWYgW3Rlc3QgIiRhY19jdl9saWJfcmVhZGxp
bmVfcmVtb3ZlX2hpc3RvcnkiICE9IG5vIHx8IHRlc3QgIiRhY19jdl9saWJfaGlzdG9yeV9yZW1v
dmVfaGlzdG9yeSIgIT0gbm9dOyB0aGVuCiAgICAgIGlmIHRlc3QgIiR3aXRoX3JlYWRsaW5lIiA9
IGJzZDsgdGhlbgogICAgICAgICAgQUNfREVGSU5FKEhBVkVfTElCRURJVExJTkUsMSwKICAgICAg
ICAgICAgICAgIFsgRGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIEJTRCBlZGl0bGluZSBsaWJy
YXJ5LiBdKQogICAgICBlbHNlCiAgICAgICAgICBBQ19ERUZJTkUoSEFWRV9MSUJSRUFETElORSwx
LAogICAgICAgICAgICAgICAgWyBEZWZpbmUgaWYgeW91IGFyZSB1c2luZyB0aGUgR05VIHJlYWRs
aW5lIGxpYnJhcnkuIF0pCiAgICAgIGZpCiAgICAgIEFDX0NIRUNLX0hFQURFUlMocmVhZGxpbmUv
cmVhZGxpbmUuaCwsCiAgICAgICAgQUNfTVNHX1dBUk4oW2ZvdW5kIEdOVSByZWFkbGluZSBsaWJy
YXJ5IGJ1dCBub3QgcmVhZGxpbmUuaApwbGVhc2UgYWRkIHBhdGggdG8gcmVhZGxpbmUuaCB0byBD
UFBGTEFHUyBpbiBNYWtlZmlsZV0pKQogICAgICBBQ19DSEVDS19IRUFERVJTKHJlYWRsaW5lL2hp
c3RvcnkuaCwsCiAgICAgICAgQUNfTVNHX1dBUk4oW2ZvdW5kIEdOVSByZWFkbGluZSBsaWJyYXJ5
IGJ1dCBub3QgaGlzdG9yeS5oCnBsZWFzZSBhZGQgcGF0aCB0byBoaXN0b3J5LmggdG8gQ1BQRkxB
R1MgaW4gTWFrZWZpbGVdKSkKCiAgICAgIGlmIHRlc3QgIiRlbmFibGVfaGlzdG9yeV9maWxlIiA9
IHllczsgdGhlbgogICAgICAgICAgQUNfREVGSU5FKEdOVVBMT1RfSElTVE9SWSwxLAogICAgICAg
ICAgICAgICAgICAgIFsgRGVmaW5lIGlmIHlvdSB3YW50IHRvIHVzZSBhIGdudXBsb3QgaGlzdG9y
eSBmaWxlLiBdKQogICAgICBmaQoKICAgIGZpICMgISBhY19jdl9saWJfcmVhZGxpbmVfcmVhZGxp
bmUgPSBubwoKICAgZmkgIyAhIHdpdGhfcmVhZGxpbmUgPSBic2QKCiAgZmkgIyAhIHdpdGhfcmVh
ZGxpbmUgIT0gYnVpbHRpbiAKCiAgaWYgdGVzdCAiJHdpdGhfcmVhZGxpbmUiID0gYnVpbHRpbjsg
dGhlbgogICAgQUNfQ0hFQ0tfRlVOQ1Mod2N3aWR0aCkKICAgIEFDX0NIRUNLX0hFQURFUlMod2No
YXIuaCwsCiAgICAgICAgQUNfTVNHX1dBUk4oW3BsZWFzZSBhZGQgcGF0aCB0byB3Y2hhci5oIHRv
IENQUEZMQUdTIGluIE1ha2VmaWxlXSkpCiAgICBBQ19ERUZJTkUoUkVBRExJTkUsMSwKICAgICAg
ICAgICAgICBbIERlZmluZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGluY2x1ZGVkIHJlYWRsaW5l
IGZ1bmN0aW9uLiBdKQogICAgaWYgdGVzdCAiJGVuYWJsZV9oaXN0b3J5X2ZpbGUiID0geWVzOyB0
aGVuCiAgICAgICBBQ19ERUZJTkUoR05VUExPVF9ISVNUT1JZLDEsCiAgICAgICAgICAgICAgICBb
IERlZmluZSBpZiB5b3Ugd2FudCB0byB1c2UgYSBnbnVwbG90IGhpc3RvcnkgZmlsZS4gXSkKICAg
IGZpCiAgZmkKCiAgTElCUz0iJF9saWJzIgpmaQpkbmwgZW5kIHJlYWRsaW5lCgpkbmwgdGhlICJx
c29ydCIgcHJvdmlkZWQgYnkgbWFjT1MgaXMgbm90IHN0YWJsZSAoaXRlbXMgdGhhdCBldmFsdWF0
ZSBlcXVhbCBhcmUgbm90CmRubCBndWFyYW50ZWVkIHRvIHJldGFpbiB0aGVpciBvcmlnaW5hbCBv
cmRlcmluZykuCmRubCBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIHJlcGxhY2UgaXQgd2l0aCBt
ZXJnZXNvcnQsIGlmIGZvdW5kLApkbmwgb3IgYWRkIGNvZGUgaW4gZ251cGxvdCB0byBtYWtlIHRo
ZSBzb3J0IHN0YWJsZSB3aXRoIHJlc3BlY3QgdG8gcG0zZCBkZXB0aG9yZGVyCkFDX0NIRUNLX0ZV
TkNTKG1lcmdlc29ydCwgaGF2ZV9zdGFibGVfc29ydD15ZXMpCkFDX0NIRUNLX0ZVTkNTKGdudV9n
ZXRfbGliY192ZXJzaW9uLCBoYXZlX3N0YWJsZV9zb3J0PXllcykKQUNfQVJHX0VOQUJMRShzdGFi
bGUtc29ydCwgZG5sClsgIC0tZW5hYmxlLXN0YWJsZS1zb3J0ICAgIGd1YXJhbnRlZSB0aGF0IHBt
M2QgZGVwdGgtc29ydGluZyByZXRhaW5zIG9iamVjdCBvcmRlcl0sCiAgW0FDX0RFRklORShXSVRI
X1NUQUJMRV9TT1JULDEsCiAgICAgICAgICAgICBbIERlZmluZSBpZiBxc29ydCBvbiB5b3VyIE8v
UyBpcyB1bnN0YWJsZSBhbmQgdGhhdCBib3RoZXJzIHlvdS4gXSkKICBdCiAgLCkKCmRubCBjaGVj
ayBwcmVzZW5jZSBvZiB6IGxpYnJhcnkKZG5sIFRPRE86IHBhdGggdG8gemxpYiBpbmNsdWRlczsg
LWx6IC1sbSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMKZG5sICAgICAgIHdlIGRvbid0IGRvIGFu
eXRoaW5nIGFib3V0IG1pc3NpbmcgcG5nL2dkIGluY2x1ZGVzIGVpdGhlcgpBQ19DSEVDS19MSUIo
eixkZWZsYXRlLAogIFtURVJNTElCUz0iJFRFUk1MSUJTIC1seiIKICAgQUNfREVGSU5FKEhBVkVf
TElCWiwxLFsgRGVmaW5lIGlmIHlvdSBoYXZlIHpsaWIuIF0pCiAgIEFDX0NIRUNLX0hFQURFUih6
bGliLmgsLAogICAgIFtBQ19NU0dfV0FSTihbZm91bmQgeiBsaWJyYXJ5IGJ1dCBub3QgemxpYi5o
CnBsZWFzZSBhZGQgcGF0aCB0byB6bGliLmggdG8gQ1BQRkxBR1MgaW4gTWFrZWZpbGVdKV0pXSwK
ICBBQ19NU0dfV0FSTihbemxpYiBpcyByZXF1aXJlZCAtIHNlZSBodHRwOi8vd3d3Lmd6aXAub3Jn
L3psaWIvXSkpCgpkbmwgY2hlY2sgcHJlc2VuY2Ugb2YgZ2QgbGlicmFyeQpkbmwgd2UgZG9uJ3Qg
Y2hlY2sgZm9yIGxpYmZyZWV0eXBlIGFuZCBsaWJqcGVnIGxvY2F0aW9ucyAtIGlmIGdkIHJlcXVp
cmVzCmRubCB0aGVtLCB0aGUgZ2RsaWItY29uZmlnIHNjcmlwdCBvciB0aGUgZ2RsaWJjLnBjIGNv
bnRhaW5zIGFsbCB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24KQUNfQVJHX1dJVEgoZ2QsZG5sClsg
IC0td2l0aC1nZFs9RElSXSAgICAgICAgICAgKERJUiBpcyBsb2NhdGlvbiBvZiBpbmNsdWRlL2dk
LmggYW5kIGxpYi9saWJnZC5zbyldLCwKICB3aXRoX2dkPXllcykKCmlmIHRlc3QgLWQgIiR3aXRo
X2dkIjsgdGhlbgogIGxpYmdkX0xERkxBR1M9LUwkd2l0aF9nZC9saWIKICBsaWJnZF9DRkxBR1M9
LUkkd2l0aF9nZC9pbmNsdWRlCiAgbGliZ2RfTElCUz0tbGdkCiAgQUNfTVNHX1dBUk4oKFtMb29r
aW5nIGZvciAkd2l0aF9nZC9pbmNsdWRlL2dkLmggYW5kICR3aXRoX2dkL2xpYi9saWJnZC5zb10p
KQoKZWxpZiB0ZXN0ICIkd2l0aF9nZCIgIT0gbm87IHRoZW4KICBQS0dfQ0hFQ0tfTU9EVUxFU19O
T0ZBSUwobGliZ2QsIFtnZGxpYl0pCiAgIyBJZiBwa2ctY29uZmlnIGRpZCByZXR1cm4gbGliZ2Qg
Y29uZmlndXJhdGlvbiB0aGVuCiAgIyBsaWJnZF97Q0ZMQUdTLExERkxBR1MsTElCU30gaXMgc2V0
CmZpCgppZiB0ZXN0ICIkd2l0aF9nZCIgIT0gbm87IHRoZW4KICAjIFZlcmlmeSB0aGF0IGxpYmdk
IHdvcmtzLCBidXQgYmFja3VwIHRoZSBwcmV2aW91cyBjb21waWxhdGlvbiB2YXJpYWJsZXMgdG8K
ICAjIGJlIGFibGUgdG8gcmV2ZXJ0IGluIHRoZSBjYXNlIHRoYXQgbGliZ2QgaXMgbm90IGZ1bmN0
aW9uYWwKICBfY3BwZmxhZ3M9IiRDUFBGTEFHUyIKICBfbGRmbGFncz0iJExERkxBR1MiCiAgX2xp
YnM9IiRMSUJTIgogIENQUEZMQUdTPSIkQ1BQRkxBR1MgJGxpYmdkX0NGTEFHUyIKICBMREZMQUdT
PSIkTERGTEFHUyAkbGliZ2RfTERGTEFHUyIKICBMSUJTPSIkTElCUyAkbGliZ2RfTElCUyIKCiAg
QUNfQ0hFQ0tfTElCKGdkLGdkSW1hZ2VDcmVhdGVUcnVlQ29sb3IsCiAgICBbZG5sIGZvdW5kIGdk
IGxpYnJhcnkKICAgICBBQ19ERUZJTkUoSEFWRV9MSUJHRCwxLFsgRGVmaW5lIGlmIHlvdSBoYXZl
IGdkIGxpYnJhcnkuIF0pCiAgICAgQUNfQ0hFQ0tfSEVBREVSUyhnZC5oLCwKICAgICAgIEFDX01T
R19XQVJOKFtwbGVhc2UgYWRkIHBhdGggdG8gZ2QuaCB0byBDUFBGTEFHUyBpbiBNYWtlZmlsZV0p
KQoKICAgICBkbmwgZ2lmIHN1cHBvcnQgaW4gbGliZ2QKICAgICBBQ19DSEVDS19MSUIoZ2QsZ2RJ
bWFnZUdpZiwKICAgICAgIFtBQ19ERUZJTkUoSEFWRV9HRF9HSUYsMSxbIERlZmluZSBpZiBsaWJn
ZCBzdXBwb3J0cyBnaWYuIF0pXSkKICAgICBBQ19DSEVDS19MSUIoZ2QsZ2RJbWFnZUdpZkFuaW1C
ZWdpbiwKICAgICAgIFtBQ19ERUZJTkUoR0lGX0FOSU1BVElPTiwxLFsgRGVmaW5lIGlmIGxpYmdk
IHN1cHBvcnRzIGFuaW1hdGVkIGdpZnMuIF0pXSkKCiAgICAgZG5sIGpwZWcgc3VwcG9ydCBpbiBs
aWJnZAogICAgIEFDX0NIRUNLX0xJQihnZCxnZEltYWdlSnBlZywKICAgICAgIFtBQ19ERUZJTkUo
SEFWRV9HRF9KUEVHLDEsWyBEZWZpbmUgaWYgbGliZ2Qgc3VwcG9ydHMganBlZy4gXSldKQoKICAg
ICBkbmwgZnJlZXR5cGUgc3VwcG9ydCBpbiBsaWJnZAogICAgIEFDX0NIRUNLX0xJQihnZCxnZElt
YWdlU3RyaW5nRlQsCiAgICAgICBBQ19ERUZJTkUoSEFWRV9HRF9UVEYsMSwKICAgICAgICAgICBb
IERlZmluZSBpZiBsaWJnZCBzdXBwb3J0cyBUcnVlVHlwZSBmb250cyB0aHJvdWdoIGxpYmZyZWV0
eXBlLiBdKSkKCiAgICAgZG5sIHBuZyBzdXBwb3J0IGluIGxpYmdkCiAgICAgQUNfQ0hFQ0tfTElC
KGdkLGdkSW1hZ2VQbmcsCiAgICAgICBbQUNfREVGSU5FKEhBVkVfR0RfUE5HLDEsWyBEZWZpbmUg
aWYgbGliZ2Qgc3VwcG9ydHMgcG5nLiBdKV0pCgogICAgXSxbZG5sIGdkIGxpYnJhcnkgbm90IGZv
dW5kCiAgICAgICBBQ19NU0dfV0FSTihbbGliZ2Qgbm90IGZvdW5kIG9yIHRvbyBvbGQsIHZlcnNp
b24gPj0gMi4wIGlzIHJlcXVpcmVkXSkKICAgICAgIHdpdGhfZ2Q9bm8KICAgIF0pCgogIGRubCBw
aWVjZSBpdCBhbGwgdG9nZXRoZXIKICBpZiB0ZXN0ICIkd2l0aF9nZCIgPSBubzsgdGhlbgogICAg
Q1BQRkxBR1M9IiRfY3BwZmxhZ3MiCiAgICBMREZMQUdTPSIkX2xkZmxhZ3MiCiAgICBMSUJTPSIk
X2xpYnMiCiAgZWxzZQogICAgTElCUz0iJF9saWJzIgogICAgVEVSTUxJQlM9IiRURVJNTElCUyAt
bGdkICRsaWJnZF9MSUJTIgogIGZpCgpmaQpkbmwgZW5kIGdkCgpkbmwgVGhlIGljb252IGxpYnJh
cnkgY2FuIGJlIHVzZWQgdG8gc3dpdGNoIGNoYXJhY3RlciBlbmNvZGluZ3MuCmRubCBTbyBmYXIg
dGhpcyBpcyBvbmx5IHVzZWQgYnkgZ2QudHJtIGFuZCBlbWYudHJtLgpBQ19TRUFSQ0hfTElCUyhb
aWNvbnZfb3Blbl0sIFtpY29udl0sCiAgW0FDX0NIRUNLX0hFQURFUihbaWNvbnYuaF0sCiAgICBb
QUNfREVGSU5FKFtIQVZFX0lDT05WXSwgMSwgW2RlZmluZSBpZiB5b3UgaGF2ZSBsaWJpY29udiBh
bmQgaWNvbnYuaF0pXQogICldCikKCmRubCBjaGVjayBwcmVzZW5jZSBvZiBsdWEvVGlrWiBzdXBw
b3J0CkFDX0FSR19XSVRIKGx1YSxkbmwKWyAgLS13aXRob3V0LWx1YSAgICAgICAgICAgZGlzYWJs
ZSBsdWEvVGlrWiB0ZXJtaW5hbCAoZGVmYXVsdCBlbmFibGVkKV0sLAogIFt0ZXN0IC16ICIke3dp
dGhfbHVhfSIgJiYgd2l0aF9sdWE9eWVzXSkKCmRubCBTb21lIGRpc3RyaWJ1dGlvbnMgYWxsb3cg
Zm9yIHBhcmFsbGVsIGluc3RhbGxhdGlvbiBvZiBkaWZmZXJlbnQKZG5sIGx1YSB2ZXJzaW9ucy4g
IFdlIHRlc3QgZm9yIHRoYXQgaW4gb3JkZXIgb2YgcGVyZWZlcmVuY2UuCmlmIHRlc3QgIiR7d2l0
aF9sdWF9IiA9IHllcyA7IHRoZW4KICBMVUE9bHVhCiAgUEtHX0NIRUNLX01PRFVMRVMoW0xVQV0s
IFtsdWFdLCBMVUFGT1VORD15ZXMsCiAgICBbUEtHX0NIRUNLX01PRFVMRVMoW0xVQV0sIFtsdWE1
LjNdLCBMVUE9bHVhNS4zLCAKICAgICAgW1BLR19DSEVDS19NT0RVTEVTKFtMVUFdLCBbbHVhNS4y
XSwgTFVBPWx1YTUuMiwgCiAgICAgICAgW1BLR19DSEVDS19NT0RVTEVTKFtMVUFdLCBbbHVhNS4x
XSwgTFVBPWx1YTUuMSwgCiAgICAgICAgICBbTFVBRk9VTkQ9bm9dKV0pXSldKQogIGlmIHRlc3Qg
JHBrZ19mYWlsZWQgIT0gbm87IHRoZW4KICAgIEFDX01TR19XQVJOKFtDb3VsZCBub3QgZmluZCBz
dXBwb3J0IGZvciBsdWEgdXNpbmcgcGtnLWNvbmZpZy5dKQogICAgd2l0aF9sdWE9bm8KICBmaQoK
ICBpZiB0ZXN0ICIkd2l0aF9sdWEiICE9IG5vOyB0aGVuCiAgICBURVJNTElCUz0iJFRFUk1MSUJT
ICRMVUFfTElCUyIKICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgJExVQV9DRkxBR1MiCiAgZWxzZQog
ICAgZG5sIGlmIHBrZy1jb25maWcgZGlkbid0IHdvcmssIHdlIG1pZ2ggc3RpbGwgZmluZCBpdCBt
YW51YWxseQogICAgQUNfU0VBUkNIX0xJQlMobHVhTF9vcGVubGlicywgbHVhIGx1YTUuMyBsdWE1
LjIgbHVhNS4xLAogICAgICAgd2l0aF9sdWE9eWVzLCB3aXRoX2x1YT1ubykKICBmaQogIGlmIHRl
c3QgIiR3aXRoX2x1YSIgPSB5ZXM7IHRoZW4KICAgICBBQ19ERUZJTkUoSEFWRV9MVUEsMSwgWyBE
ZWZpbmUgaWYgeW91IHdhbnQgdGhlIGx1YS9UaWtaIHRlcm1pbmFsLiBdKQogICAgIEFDX0NIRUNL
X0hFQURFUlMobHVhLmgsLAogICAgICAgQUNfTVNHX1dBUk4oW3BsZWFzZSBhZGQgcGF0aCB0byBs
dWEuaCB0byBDUFBGTEFHUyBpbiBNYWtlZmlsZV0pKQogIGZpCiAgQUNfU1VCU1QoTFVBKQpmaQpB
TV9DT05ESVRJT05BTChCVUlMRF9MVUEsIHRlc3QgIiR7d2l0aF9sdWF9IiA9IHllcykKZG5sIGVu
ZCBsdWEKCmRubCBjaGVjayBwcmVzZW5jZSBvZiBjYWNhIGxpYnJhcnkKQUNfQVJHX1dJVEgoY2Fj
YSxkbmwKWyAgLS13aXRoLWNhY2FbPURJUl0gICAgICAgICB3aGVyZSB0byBmaW5kIHRoZSBjYWNh
IGxpYnJhcnldLCwKICB3aXRoX2NhY2E9bm8pCgppZiB0ZXN0ICIkd2l0aF9jYWNhIiAhPSBubzsg
dGhlbgogIGlmIHRlc3QgLWQgIiR3aXRoX2NhY2EiOyB0aGVuCiAgICBkbmwgcGF0aCB0byBsaWJj
YWNhIHdhcyBzcGVjaWZpZWQgbWFudWFsbHkKICAgIGNhY2FfQ1BQRkxBR1M9Ii1JJHdpdGhfY2Fj
YS9pbmNsdWRlIgogICAgY2FjYV9MREZMQUdTPSItTCR3aXRoX2NhY2EvbGliIC1XbCwtcnBhdGgg
LVdsLCR3aXRoX2NhY2EvbGliIgogICAgY2FjYV9MSUJTPSItbGNhY2EiCiAgICB3aXRoX2NhY2E9
eWVzCiAgZWxzZQogICAgZG5sIHRyeSB0byB1c2UgcGtnLWNvbmZpZyBmaXJzdAogICAgUEtHX0NI
RUNLX01PRFVMRVMoY2FjYSwgW2NhY2FdLCBbd2l0aF9jYWNhPXllc10sIFt3aXRoX2NhY2E9bm9d
KQogICAgaWYgdGVzdCAkcGtnX2ZhaWxlZCAhPSBubzsgdGhlbgogICAgICBkbmwgdHJ5IHRvIGxv
Y2F0ZSBsaWJjYWNhIHVzaW5nIGl0cyBjb25maWcgdG9vbAogICAgICBBQ19QQVRIX1BST0coW0NB
Q0FfQ09ORklHXSwgW2NhY2EtY29uZmlnXSkKICAgICAgaWYgdGVzdCAtbiAiJENBQ0FfQ09ORklH
IjsgdGhlbgogICAgICAgIGNhY2FfQ1BQRkxBR1M9YCRDQUNBX0NPTkZJRyAtLWNmbGFnc2AKICAg
ICAgICBjYWNhX0xERkxBR1M9YCRDQUNBX0NPTkZJRyAtLWxkZmxhZ3NgCiAgICAgICAgY2FjYV9M
SUJTPWAkQ0FDQV9DT05GSUcgLS1saWJzYAogICAgICAgIHdpdGhfY2FjYT15ZXMKICAgICAgZWxz
ZQogICAgICAgIGRubCBsaWJjYWNhIHdhcyBub3QgZm91bmQKICAgICAgICBBQ19NU0dfV0FSTihb
bGliY2FjYSBub3QgZm91bmQgb3IgdG9vIG9sZCwgdmVyc2lvbiA+PSAwLjk5LmJldGExNSBpcyBy
ZXF1aXJlZF0pCiAgICAgICAgd2l0aF9jYWNhPW5vCiAgICAgIGZpCiAgICBmaQogIGZpCgogIGRu
bCB0ZXN0IHVzYWJpbGl0eQogIF9jcHBmbGFncz0iJENQUEZMQUdTIgogIF9sZGZsYWdzPSIkTERG
TEFHUyIKICBDUFBGTEFHUz0iJGNhY2FfQ1BQRkxBR1MgJENQUEZMQUdTIgogIExERkxBR1M9IiRj
YWNhX0xERkxBR1MgJExERkxBR1MiCiAgQUNfQ0hFQ0tfTElCKGNhY2EsY2FjYV9nZXRfdmVyc2lv
biwKICAgIFtkbmwgZm91bmQgY2FjYSBsaWJyYXJ5LCB0ZXN0IGZvciB2ZXJzaW9uID49IDAuOTku
YmV0YTE1IChsaWJjdWN1bCBtZXJnZWQgYmFjaykKICAgICBBQ19DSEVDS19MSUIoW2NhY2FdLFtj
YWNhX2V4cG9ydF9jYW52YXNfdG9fbWVtb3J5XSwsCiAgICAgICBbQUNfREVGSU5FKFVTRV9DQUNB
X0VYUE9SVF9NRU1PUlksMSxbIERlZmluZSBpZiB5b3VyIGxpYmNhY2EgZG9lcyBub3QgaGF2ZSBj
YWNhX2V4cG9ydF9jYW52YXNfdG9fbWVtb3J5IGJ1dCB0aGUgb2xkIGNhY2FfZXhwb3J0X21lbW9y
eV0pXSxbXSkKICAgICBBQ19DSEVDS19ERUNMKFtDQUNBX0RFUFJFQ0FURURdLAogICAgICAgW0FD
X0RFRklORShIQVZFX0xJQkNBQ0EsMSxbIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY2FjYSBsaWJy
YXJ5LiBdKV0sCiAgICAgICBbQUNfTVNHX1dBUk4oW2xpYmNhY2EgaGVhZGVyIG5vdCBmb3VuZCBv
ciB0b28gb2xkLCB2ZXJzaW9uID49IDAuOTkuYmV0YTE1IGlzIHJlcXVpcmVkXSkKICAgICAgICB3
aXRoX2NhY2E9bm9dLAogICAgICAgW1sjaW5jbHVkZSA8Y2FjYS5oPl1dKQogICAgXSwKICAgIFtk
bmwgY2FjYSBsaWJyYXJ5IG5vdCBmb3VuZAogICAgICAgQUNfTVNHX1dBUk4oW2xpYmNhY2Egbm90
IGZvdW5kIG9yIHRvbyBvbGQsIHZlcnNpb24gPj0gMC45OS5iZXRhMTUgaXMgcmVxdWlyZWRdKQog
ICAgICAgd2l0aF9jYWNhPW5vCiAgICBdKQoKICBkbmwgcGllY2UgaXQgYWxsIHRvZ2V0aGVyCiAg
aWYgdGVzdCAiJHdpdGhfY2FjYSIgPSBubzsgdGhlbgogICAgQ1BQRkxBR1M9IiRfY3BwZmxhZ3Mi
CiAgICBMREZMQUdTPSIkX2xkZmxhZ3MiCiAgZWxzZQogICAgVEVSTUxJQlM9IiRURVJNTElCUyAk
Y2FjYV9MSUJTIgogIGZpCmZpCmRubCBlbmQgY2FjYQoKZG5sIFByb2Nlc3MgcmVzdCBvZiB3aXRo
IGFuZCBlbmFibGUgb3B0aW9ucwoKZG5sIEVYUEVSSU1FTlRBTCBzdXBwb3J0IGZvciBjb25jYXZl
IGh1bGxzIHZpYSBEZWxhdW5heSB0cmlhbmd1bGF0aW9uIGFuZCBjaGktc2hhcGVzCkFDX0FSR19F
TkFCTEUoY2hpLXNoYXBlcyxkbmwKWyAgLS1kaXNhYmxlLWNoaS1zaGFwZXMgICAgbm8gc3VwcG9y
dCBmb3IgRGVsYXVuYXkgdHJpYW5ndWxhdGlvbiBvciBjaGktc2hhcGVzXSwsKQppZiB0ZXN0ICIk
ZW5hYmxlX2NoaV9zaGFwZXMiICE9IG5vOyB0aGVuCiAgICBBQ19ERUZJTkUoV0lUSF9DSElfU0hB
UEVTLDEsCiAgICAgICAgICAgICAgWyBEZWZpbmUgdG8gc3VwcG9ydCBEZWxhdW5heSB0cmlhbmd1
bGF0aW9uIGFuZCBjaGktc2hhcGVzIF0pCmZpCmRubCB3aXRob3V0LWV4dHJhLWNvb3JkaW5hdGUg
bWF5IGxlYXZlIGEgaG9sZSBpbiAic3RydWN0IGNvb3JkaW5hdGUiCkFDX0FSR19FTkFCTEUoZXh0
cmEtY29vcmRpbmF0ZSxkbmwKWyAgLS1kaXNhYmxlLWV4dHJhLWNvb3JkaW5hdGUgICAgbGVhdmUg
cG9zc2libGUgaG9sZSBpbiBzdHJ1Y3QgY29vcmRpbmF0ZV0sLCkKaWYgdGVzdCAiJGVuYWJsZV9l
eHRyYV9jb29yZGluYXRlIiAhPSBubyAtbyAiJGVuYWJsZV9jaGlfc2hhcGVzIiAhPSBubzsgdGhl
bgogICAgIEFDX0RFRklORShXSVRIX0VYVFJBX0NPT1JESU5BVEUsMSwKICAgICAgICAgICAgICAg
WyBEZWZpbmUgdG8gbWFrZSB1c2Ugb2Ygb3RoZXJ3aXNlIGVtcHR5IHNwYWNlIGluIHN0cnVjdCBj
b29yZGluYXRlIF0pCmZpCgpkbmwgZW5hYmxlIG11bHRpLWJ5dGUgZm9udCBzdXBwb3J0IGluIHgx
MSB0ZXJtaW5hbApBQ19BUkdfRU5BQkxFKHgxMS1tYmZvbnRzLGRubApbICAtLWRpc2FibGUteDEx
LW1iZm9udHMgICBkaXNhYmxlIG11bHRpLWJ5dGUgZm9udCBzdXBwb3J0IGZvciB4MTEgXSwsCiAg
dGVzdCAteiAiJGVuYWJsZV94MTFfbWJmb250cyIgJiYgZW5hYmxlX3gxMV9tYmZvbnRzPXllcykK
ICBpZiB0ZXN0ICIkZW5hYmxlX3gxMV9tYmZvbnRzIiA9IHllczsgdGhlbgoKICAgIF9sZGZsYWdz
PSIkTERGTEFHUyIKICAgIExERkxBR1M9IiRMREZMQUdTICRMSUJSQVJJRVNfRk9SX1giCgogICAg
QUNfTVNHX0NIRUNLSU5HKFtmb3IgbXVsdGktYnl0ZSBzdXBwb3J0IGluIHgxMV0pCiAgICBBQ19D
SEVDS19MSUIoWDExLCBYbWJEcmF3U3RyaW5nLAogICAgICBBQ19ERUZJTkUoVVNFX1gxMV9NVUxU
SUJZVEUsMSxbIERlZmluZSB0byBlbmFibGUgbXVsdGktYnl0ZSBmb250IHN1cHBvcnQgZm9yIHgx
MSBdKSwKICAgICAgZW5hYmxlX3gxMV9tYmZvbnRzPW5vICkKICAgIAogICAgTERGTEFHUz0iJF9s
ZGZsYWdzIgogIAogIGZpCgpkbmwgeDExX2V4dGVybmFsCkFDX0FSR19FTkFCTEUoeDExX2V4dGVy
bmFsLGRubApbICAtLWRpc2FibGUteDExLWV4dGVybmFsICBkaXNhYmxlIGRyYXdpbmcgdG8gd2lu
ZG93cyBiZWxvbmdpbmcgdG8gZXh0ZXJuYWwgYXBwc10sLAogIHRlc3QgLXogIiRlbmFibGVfeDEx
X2V4dGVybmFsIiAmJiBlbmFibGVfeDExX2V4dGVybmFsPXllcykKCmlmIHRlc3QgIiRlbmFibGVf
eDExX2V4dGVybmFsIiA9IHllczsgdGhlbgogIEFDX0RFRklORShFWFRFUk5BTF9YMTFfV0lORE9X
LDEsWyBEZWZpbmUgaWYgeW91IHdhbnQgdG8gc3VwcGx5IHByZS1leGlzdGluZyBYMTEgd2luZG93
cy4gXSkKZmkKCmRubCBkaXNhYmxlIHRoZSAic3BhY2UgcmFpc2VzIGNvbnNvbGUiIGJlaGF2aW91
cgpBQ19BUkdfRU5BQkxFKHJhaXNlLWNvbnNvbGUsZG5sClsgIC0tZGlzYWJsZS1yYWlzZS1jb25z
b2xlIHNwYWNlYmFyIGluIHBsb3Qgd2luZG93IGRvZXMgbm90IHJhaXNlIGNvbnNvbGVdLCwKICB0
ZXN0IC16ICIkZW5hYmxlX3JhaXNlX2NvbnNvbGUiICYmIGVuYWJsZV9yYWlzZV9jb25zb2xlPXll
cykKICBpZiB0ZXN0ICIkZW5hYmxlX3JhaXNlX2NvbnNvbGUiICE9IHllczsgdGhlbgogICAgICBB
Q19ERUZJTkUoRElTQUJMRV9TUEFDRV9SQUlTRVNfQ09OU09MRSwxLAogICAgICAgICAgICAgICAg
WyBEZWZpbmUgdG8gdHJlYXQgc3BhY2ViYXIgbGlrZSBhbnkgb3RoZXIga2V5c3Ryb2tlLiBdKQog
IGZpCgoKZG5sICB3eFdpZGdldHMgdGVybWluYWwKCmRubCB3eFdpZGdldHMgdGVybWluYWwgbmVl
ZHMgQysrCmRubCBUaGVzZSB0ZXN0cyBjYW5ub3QgYmUgY2FsbGVkIGNvbmRpdGlvbmFsbHkuCmRu
bCBUaGVzZSB0ZXN0cyBhcmUgbm9uLWZhdGFsIG9uIGF1dG9jb25mIDIuNTggYW5kIDIuNTksCmRu
bCBidXQgaXQgbWF5IGNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMsIHNvIHdlIHJlZGVmaW5lIEFD
X01TR19FUlJPUi4KZG5sIEV2ZW4gaWYgdGhlcmUgaXMgbm8gQysrIGNvbXBpbGVyIG9uIHRoZSBz
eXN0ZW0sCmRubCBhdXRvY29uZiB3aWxsIHNldCBDWFggYXMgZysrIDogdGhpcyBtdXN0IGJlIHJl
dmVydGVkLgoKbTRfcHVzaGRlZihbQUNfTVNHX0VSUk9SXSxbY3h4ZXJyb3I9eWVzXSkKQUNfUFJP
R19DWFgKbTRfcG9wZGVmKFtBQ19NU0dfRVJST1JdKQoKaWYgdGVzdCAieCR7Y3h4ZXJyb3J9IiAh
PSAieHllcyI7IHRoZW4KICBBQ19MQU5HX1BVU0goW0MrK10pCiAgQUNfQ09NUElMRV9JRkVMU0Uo
W0FDX0xBTkdfUFJPR1JBTShbWyNpbmNsdWRlIDxpb3N0cmVhbT5dXSwKCVtbY29uc3QgY2hhciBo
d1tdID0gIkhlbGxvLCBXb3JsZFxuIjsgc3RkOjpjb3V0IDw8IGh3O11dKV0sCglbY3h4ZXJyb3I9
bm8KCUFDX1BST0dfQ1hYQ1BQXSwKCVtjeHhlcnJvcj15ZXMKCUNYWD0kQ0NdKQogIEFDX0xBTkdf
UE9QKFtDKytdKQpmaQoKQUNfQVJHX0VOQUJMRSh3eHdpZGdldHMsZG5sClsgIC0tZGlzYWJsZS13
eHdpZGdldHMgICAgIHd4V2lkZ2V0cyB0ZXJtaW5hbCAoZGVmYXVsdCBlbmFibGVkKV0sLAogIFt0
ZXN0IC16ICIke2VuYWJsZV93eHdpZGdldHN9IiAmJiBlbmFibGVfd3h3aWRnZXRzPXllc10pCgpp
ZiB0ZXN0ICIke2VuYWJsZV93eHdpZGdldHN9IiA9IHllcyA7IHRoZW4KICBkbmwgdmFyaWFibGUg
dXNlZCB0byBkZXRlcm1pbmUgaWYgYWxsIGNoZWNrcyBwYXNzCiAgZW5hYmxlX3d4d2lkZ2V0c19v
az15ZXMKCiAgZG5sIENoZWNrIGZvciB0aGUgQysrIGNvbXBpbGVyCiAgaWYgdGVzdCAieCR7Y3h4
ZXJyb3J9IiA9ICJ4eWVzIjsgdGhlbgogICAgQUNfTVNHX1dBUk4oW05vIEMrKyBjb21waWxlciBm
b3VuZC4gVGhlIHd4V2lkZ2V0cyB0ZXJtaW5hbCB3aWxsIG5vdCBiZSBjb21waWxlZC5dKQogICAg
ICBlbmFibGVfd3h3aWRnZXRzX29rPW5vCiAgZmkKCiAgZG5sIFRoZSB1c2VyIGNhbiBzcGVjaWZ5
IGFub3RoZXIgcGF0aCBmb3Igd3gtY29uZmlnCiAgV1hXSURHRVRTX1BBVEg9IiR7UEFUSH0iCiAg
QUNfQVJHX1dJVEgod3gsZG5sCiAgWy0td2l0aC13eD1ESVIgICAgICAgICAgIFdoZXJlIHRvIGZp
bmQgd3gtY29uZmlnLCB0aGUgd3hXaWRnZXRzIGNvbmZpZ3VyYXRpb24gcHJvZ3JhbQogICAgKGRl
ZmF1bHQgc2VhcmNoIGluICRQQVRIKV0sCiAgICBbIGlmIHRlc3QgIiR7d2l0aF93eH0iICE9ICJu
byIgOyB0aGVuCglXWFdJREdFVFNfUEFUSD0iJHt3aXRoX3d4fToke1BBVEh9IgogICAgIGZpIF0p
CgogIGRubCBMb29rIGZvciB3eC1jb25maWcgaW4gdGhlIHBhdGgKICBBQ19QQVRIX1BST0coV1hf
Q09ORklHLCB3eC1jb25maWcsIG5vLCAke1dYV0lER0VUU19QQVRIfSkKICBpZiB0ZXN0ICIke1dY
X0NPTkZJR30iID0gIm5vIjsgdGhlbgogICAgQUNfTVNHX1dBUk4oW3d4V2lkZ2V0cyBjYW4ndCBi
ZSBmb3VuZC4gWW91IGNhbiB0cnkgLS13aXRoLXd4PURJUiB0byBnaXZlIHRoZSByaWdodCBwYXRo
IHRvIHd4LWNvbmZpZy4gVGhlIHd4V2lkZ2V0cyB0ZXJtaW5hbCB3aWxsIG5vdCBiZSBjb21waWxl
ZC5dKQogICAgZW5hYmxlX3d4d2lkZ2V0c19vaz1ubwogIGVsc2UKCiAgICBkbmwgQ2tlY2sgZm9y
IHd4V2lkZ2V0cyB2ZXJzaW9uCiAgICBXWFdJREdFVFNfVkVSU0lPTj1gJHtXWF9DT05GSUd9IC0t
cmVsZWFzZWAKICAgIGlmIGV4cHIgMi42IFw+ICR7V1hXSURHRVRTX1ZFUlNJT059ID4vZGV2L251
bGw7IHRoZW4KICAgICAgQUNfTVNHX1dBUk4oW1lvdXIgZGV2ZWxvcG1lbnQgcGFja2FnZSBmb3Ig
d3hXaWRnZXRzIGlzIHRvbyBvbGQsIHlvdSBuZWVkIGF0IGxlYXN0IHZlcnNpb24gMi42LiBUaGUg
d3hXaWRnZXRzIHRlcm1pbmFsIHdpbGwgbm90IGJlIGNvbXBpbGVkLl0pCiAgICAgIGVuYWJsZV93
eHdpZGdldHNfb2s9bm8KICAgIGZpCiAgICBpZiBleHByICR7V1hXSURHRVRTX1ZFUlNJT059IFw+
IDIuOCA+L2Rldi9udWxsOyB0aGVuCiAgICAgIEFDX0RFRklORShXWF9ORUVEU19YSU5JVFRIUkVB
RFMsIDEsIFt3eFdpZGdldHMgPj0gMi45IHdhbnRzIGNhbGxpbmcgcHJvZ3JhbSB0byBpbnZva2Ug
WEluaXQoKV0pCiAgICBmaQoKICAgIGRubCBNYWtlIHN1cmUgd2UncmUgdXNpbmcgbW9yZSB0aGFu
IHRoZSAnYmFzZScgd3hXaWRnZXRzLiBUaG9zZSAKICAgIGlmIGV4cHIgYCR7V1hfQ09ORklHfSAt
LWJhc2VuYW1lYCA6ICcuKmJhc2UnID4vZGV2L251bGw7IHRoZW4KICAgICAgQUNfTVNHX1dBUk4o
W1lvdSBvbmx5IGhhdmUgdGhlICdiYXNlJyBmbGF2b3Igb2Ygd3hXaWRnZXRzLiBBIGZ1bGwgd3hX
aWRnZXRzIGxpYnJhcnkgaXMgcmVxdWlyZWQuIE9uIERlYmlhbi9VYnVudHUsIHBsZWFzZSBtYWtl
IHN1cmUgdGhhdCB5b3UgaGF2ZSBhICdsaWJ3eC4uLi1kZXYnIHBhY2thZ2Ugb3RoZXIgdGhhbiBq
dXN0ICdsaWJ3eGJhc2UuLi4tZGV2JyBpbnN0YWxsZWQuIFRoZSB3eFdpZGdldHMgdGVybWluYWwg
d2lsbCBub3QgYmUgY29tcGlsZWQuXSkKICAgICAgZW5hYmxlX3d4d2lkZ2V0c19vaz1ubwogICAg
ZmkKICBmaQoKICBkbmwgQ2hlY2sgZm9yIENhaXJvCiAgUEtHX0NIRUNLX01PRFVMRVNfTk9GQUlM
KENBSVJPUEFOR08sIFtjYWlybyA+PSAwLjkuMCBwYW5nbyA+PSAxLjIyIHBhbmdvY2Fpcm8gPj0g
MS4xMF0pCiAgaWYgdGVzdCAkcGtnX2ZhaWxlZCAhPSBubzsgdGhlbgogICAgQUNfTVNHX1dBUk4o
W1RoZSB3eFdpZGdldHMgdGVybWluYWwgd2lsbCBub3QgYmUgY29tcGlsZWQuXSkKICAgIGVuYWJs
ZV93eHdpZGdldHNfb2s9bm8KICBmaQpmaQoKaWYgdGVzdCAiJHtlbmFibGVfd3h3aWRnZXRzX29r
fSIgPSB5ZXMgOyB0aGVuCiAgV1hfQ1hYRkxBR1M9ImAkV1hfQ09ORklHIC0tY3h4ZmxhZ3MgfCBz
ZWQgJ3MvLWZuby1leGNlcHRpb25zLy8nYCAkQ0FJUk9QQU5HT19DRkxBR1MiCiAgV1hfTElCUz0i
YCRXWF9DT05GSUcgLS1saWJzYCAkQ0FJUk9QQU5HT19MSUJTICRMSUJSQVJJRVNfRk9SX1giCgog
IGRubCBDaGVjayBmb3IgZm9yaygpLCB1c2VkIGZvciB0aGUgJ3BlcnNpc3QnIGVmZmVjdAogIEFD
X0ZVTkNfRk9SSwoKICBkbmwgQ2hlY2sgaWYgd3hXaWRnZXRzIHVzZXMgZ3RrIG9uIHRoaXMgcGxh
dGZvcm0KICBXWF9UT09MS0lUPSJgJFdYX0NPTkZJRyAtLXF1ZXJ5LXRvb2xraXRgIgogIGlmIHRl
c3QgIiR7V1hfVE9PTEtJVH0iID0gZ3RrMiA7IHRoZW4KICAgIFBLR19DSEVDS19NT0RVTEVTKEdU
SywgW2d0aystMi4wXSwgaGF2ZV9ndGs9eWVzLCBoYXZlX2d0az1ubykKICAgIHdhbnRfZ3RrPXll
cwogIGVsaWYgdGVzdCAiJHtXWF9UT09MS0lUfSIgPSBndGszIDsgdGhlbgogICAgUEtHX0NIRUNL
X01PRFVMRVMoR1RLLCBbZ3RrKy0zLjBdLCBoYXZlX2d0az15ZXMsIGhhdmVfZ3RrPW5vKQogICAg
d2FudF9ndGs9eWVzCiAgZmkKICBpZiAgdGVzdCAiJHtoYXZlX2d0a30iID0geWVzIDsgdGhlbgog
ICAgQUNfREVGSU5FKEhBVkVfR1RLLCAxLCBbZGVmaW5lIGlmIHlvdXIgd3hXaWRnZXRzIHVzZXMg
dGhlIGd0ayB0b29sa2l0XSkKICAgIFdYX0NYWEZMQUdTPSIkV1hfQ1hYRkxBR1MgJEdUS19DRkxB
R1MiCiAgICBXWF9MSUJTPSIkV1hfTElCUyAkR1RLX0xJQlMiCiAgZmkKCiAgZG5sIERlZmF1bHQg
dG8gc2luZ2xlLXRocmVhZGVkCiAgZG5sICBBQ19BUkdfV0lUSCh3eC1tdWx0aXRocmVhZGVkLCBk
bmwKICBkbmwgIFstLXdpdGgtd3gtbXVsdGl0aHJlYWRlZCAgdXNlIG11bHRpdGhyZWFkZWQgd3hn
dGsgKGtub3duIHByb2JsZW1zLCBub3QgcmVjb21tZW5kZWQpXSwKICBkbmwgICwgV1hfQ1hYRkxB
R1M9IiRXWF9DWFhGTEFHUyAtRFdYVF9NT05PVEhSRUFERUQiCiAgZG5sICApCgogIENQUEZMQUdT
PSIkQ1BQRkxBR1MgJENBSVJPUEFOR09fQ0ZMQUdTIgogIENYWEZMQUdTPSIkQ1hYRkxBR1MgJFdY
X0NYWEZMQUdTIgogIEFDX1NVQlNUKFdYX0xJQlMpCiAgQUNfREVGSU5FKFdYV0lER0VUUywgMSwg
WyBEZWZpbmUgaWYgeW91IHdhbnQgdGhlIHd4d2lkZ2V0cyB0ZXJtaW5hbC4gXSkKZmkKCkFNX0NP
TkRJVElPTkFMKEJVSUxEX1dYV0lER0VUUywgdGVzdCAiJHtlbmFibGVfd3h3aWRnZXRzX29rfSIg
PSB5ZXMpCgpkbmwgIEVuZCB3eFdpZGdldHMgdGVybWluYWwKCmRubCAgQWxsb3cgdG8gZGlzYWJs
ZSB0ZXJtaW5hbHMgcmVxdWlyaW5nIGJpdG1hcCBzdXBwb3J0LgpBQ19BUkdfV0lUSChiaXRtYXBf
dGVybWluYWxzLGRubApbICAtLXdpdGgtYml0bWFwLXRlcm1pbmFscyAgZG90LW1hdHJpeCBwcmlu
dGVycyBhbmQgcGJtXSkKQVNfSUYoW3Rlc3QgIngke3dpdGhfYml0bWFwX3Rlcm1pbmFsc30iID0g
Inh5ZXMiXSwsCiAgQUNfREVGSU5FKE5PX0JJVE1BUF9TVVBQT1JULDEsCiAgICAgICAgICBbIERl
ZmluZSB0byBkaXNhYmxlIHRlcm1pbmFscyB0aGF0IGRlcGVuZCBvbiBjb2RlIGluIGJpdG1hcC5j
IF0pKQpBTV9DT05ESVRJT05BTChCVUlMRF9CSVRNQVAsIHRlc3QgIiR7d2l0aF9iaXRtYXBfdGVy
bWluYWxzfSIgPSB5ZXMpCgpkbmwgIEFsbG93IHRvIGRpc2FibGUgc3VwcG9ydCBmb3IgdGVrdHJv
bml4IHRlcm1pbmFsIGVtdWxhdG9ycwpBQ19BUkdfV0lUSCh0ZWt0cm9uaXgsZG5sClsgIC0td2l0
aG91dC10ZWt0cm9uaXggICAgICB0ZWt0cm9uaXggdGVybWluYWwgZW11bGF0b3JzIChkZWZhdWx0
IGVuYWJsZWQpXSkKQVNfSUYoW3Rlc3QgIngke3dpdGhfdGVrdHJvbml4fSIgIT0gInhubyJdLAog
IEFDX0RFRklORShXSVRIX1RFS1RST05JWCwxLAogICAgICAgICAgWyBEZWZpbmUgdG8gaW5jbHVk
ZSBzdXBwb3J0IGZvciB0ZWt0cm9uaXggdGVybWluYWwgZW11bGF0b3JzIF0sKSkKCmRubCAgQWxs
b3cgdG8gaW5jbHVkZSBncGljIHRlcm1pbmFsCkFDX0FSR19XSVRIKGdwaWMsZG5sClsgIC0td2l0
aC1ncGljICAgICAgICAgICAgICBncGljIHRlcm1pbmFsXSkKQVNfSUYoW3Rlc3QgIngke3dpdGhf
Z3BpY30iID0gInh5ZXMiXSwKICBBQ19ERUZJTkUoSEFWRV9HUElDLDEsCiAgICAgICAgICBbIERl
ZmluZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIGdwaWMgdGVybWluYWwgXSwpKQoKZG5sICBBbGxv
dyB0byBpbmNsdWRlIHRnaWYgdGVybWluYWwKQUNfQVJHX1dJVEgodGdpZixkbmwKWyAgLS13aXRo
LXRnaWYgICAgICAgICAgICAgIHRnaWYgdGVybWluYWxdKQpBU19JRihbdGVzdCAieCR7d2l0aF90
Z2lmfSIgPSAieHllcyJdLAogIEFDX0RFRklORShIQVZFX1RHSUYsMSwKICAgICAgICAgIFsgRGVm
aW5lIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGdpZiB0ZXJtaW5hbCBdLCkpCgpkbmwgIEFsbG93
IHRvIGluY2x1ZGUgbWV0YWZvbnQgdGVybWluYWwKQUNfQVJHX1dJVEgobWV0YWZvbnQsZG5sClsg
IC0td2l0aC1tZXRhZm9udCAgICAgICAgICBtZXRhZm9udCB0ZXJtaW5hbF0pCkFTX0lGKFt0ZXN0
ICJ4JHt3aXRoX21ldGFmb250fSIgPSAieHllcyJdLAogIEFDX0RFRklORShIQVZFX01FVEFGT05U
LDEsCiAgICAgICAgICBbIERlZmluZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIG1ldGFmb250IHRl
cm1pbmFsIF0sKSkKCmRubCAgQWxsb3cgdG8gaW5jbHVkZSBtZXRhcG9zdCB0ZXJtaW5hbApBQ19B
UkdfV0lUSChtZXRhcG9zdCxkbmwKWyAgLS13aXRoLW1ldGFwb3N0ICAgICAgICAgIG1ldGFwb3N0
IHRlcm1pbmFsXSkKQVNfSUYoW3Rlc3QgIngke3dpdGhfbWV0YXBvc3R9IiA9ICJ4eWVzIl0sCiAg
QUNfREVGSU5FKEhBVkVfTUVUQVBPU1QsMSwKICAgICAgICAgIFsgRGVmaW5lIHRvIGluY2x1ZGUg
c3VwcG9ydCBmb3IgbWV0YXBvc3QgdGVybWluYWwgXSwpKQpBTV9DT05ESVRJT05BTChET0NfTUVU
QVBPU1QsIHRlc3QgIngke3dpdGhfbWV0YXBvc3R9IiA9ICJ4eWVzIikKCmRubCBSZUdJUyB0ZXJt
aW5hbApBQ19BUkdfV0lUSChyZWdpcyxkbmwKWyAgLS13aXRoLXJlZ2lzICAgICAgICAgICAgIFJl
R0lTIHRlcm1pbmFsXSkKQVNfSUYoW3Rlc3QgIngke3dpdGhfcmVnaXN9IiA9ICJ4eWVzIl0sCiAg
QUNfREVGSU5FKEhBVkVfUkVHSVMsMSwKICAgICAgICAgIFsgRGVmaW5lIHRvIGluY2x1ZGUgc3Vw
cG9ydCBmb3IgUmVHSVMgdGVybWluYWwgXSwpKQoKQUNfQVJHX1dJVEgoY2Fpcm8sZG5sClsgIC0t
d2l0aG91dC1jYWlybyAgICAgICAgICBjYWlyby1iYXNlZCB0ZXJtaW5hbHMgKGRlZmF1bHQgZW5h
YmxlZCldLCwKICBbdGVzdCAteiAiJHt3aXRoX2NhaXJvfSIgJiYgd2l0aF9jYWlybz15ZXNdKQoK
aWYgdGVzdCAiJHt3aXRoX2NhaXJvfSIgPSB5ZXMgOyB0aGVuCiAgZG5sIGNhaXJvIHRlcm1pbmFs
cwogIFBLR19DSEVDS19NT0RVTEVTX05PRkFJTChDQUlST1BERixkbmwKICAgICAgIFtjYWlybyA+
PSAxLjIgY2Fpcm8tcGRmID49IDEuMiBwYW5nbyA+PSAxLjIyIHBhbmdvY2Fpcm8gPj0gMS4xMCBn
bGliLTIuMCA+PSAyLjI4XSkKICBpZiB0ZXN0ICRwa2dfZmFpbGVkICE9IG5vOyB0aGVuCiAgICBB
Q19NU0dfV0FSTihbVGhlIGNhaXJvIHRlcm1pbmFscyB3aWxsIG5vdCBiZSBjb21waWxlZC5dKQog
ICAgd2l0aF9jYWlybz1ubwogIGVsc2UKICAgIEFDX0RFRklORShIQVZFX0NBSVJPUERGLDEsIFsg
RGVmaW5lIGlmIHlvdSB3YW50IHRoZSBjYWlyby1iYXNlZCB0ZXJtaW5hbHMuIF0pCiAgICBDUFBG
TEFHUz0iJENQUEZMQUdTICRDQUlST1BERl9DRkxBR1MiCiAgICBMSUJTPSIkTElCUyAkQ0FJUk9Q
REZfTElCUyIKICAgIHdpdGhfY2Fpcm89eWVzCiAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhDQUlST0VQ
UywgW2NhaXJvID49IDEuNi4wXSwKICAgICAgICBBQ19ERUZJTkUoW0hBVkVfQ0FJUk9FUFNdLCAx
LCBbbGliY2Fpcm8gc3VwcG9ydCBmb3IgZXBzIChjYWlybyA+PSAxLjYpXSksCiAgICAgICAgQUNf
TVNHX1dBUk4oW1lvdXIgdmVyc2lvbiBvZiBjYWlybyBpcyB0b28gb2xkIHRvIHN1cHBvcnQgZXBz
Y2Fpcm8gb3V0cHV0XSkpCiAgZmkKZmkKCmJ1aWxkX2dwY2Fpcm89bm8KaWYgdGVzdCAiJHtlbmFi
bGVfd3h3aWRnZXRzX29rfSIgPSB5ZXM7IHRoZW4KICBidWlsZF9ncGNhaXJvPXllcwpmaQppZiB0
ZXN0ICIke3dpdGhfY2Fpcm99IiA9IHllczsgdGhlbgogIGJ1aWxkX2dwY2Fpcm89eWVzCmZpCgpB
TV9DT05ESVRJT05BTChCVUlMRF9HUENBSVJPLCB0ZXN0ICIke2J1aWxkX2dwY2Fpcm99IiA9IHll
cykKCmRubCBJZiBuZWl0aGVyIGxpYmdkIG5vciBjYWlybyBpcyBwcmVzZW50LCB3ZSBuZWVkIGFu
b3RoZXIgd2F5IHRvIHJlYWQgaW4gaW1hZ2UgZmlsZXMuCmRubCBUcnkgbGlic3RiaQppZiB0ZXN0
ICIkd2l0aF9nZCIgPSBubyAmJiB0ZXN0ICIkd2l0aF9jYWlybyIgPSBubzsgdGhlbgogICAgQUNf
Q0hFQ0tfTElCKHN0YmksIHN0YmlfbG9hZF9mcm9tX2ZpbGUsCiAgICAgICBbQUNfREVGSU5FKEhB
VkVfU1RCSSwxLFsgRGVmaW5lIHRvIHVzZSBsaWJzdGJpIGFzIGEgZmFsbGJhY2sgZm9yIHJlYWRp
bmcgaW1hZ2UgZGF0YV0pCiAgICAgICAgd2l0aF9zdGJpPXllcyAmJiBURVJNTElCUz0iJFRFUk1M
SUJTIC1sc3RiaSIKICAgICAgICBBQ19DSEVDS19IRUFERVJTKHN0Yl9pbWFnZS5oLCwKICAgICAg
ICAgICAgQUNfTVNHX1dBUk4oW3BsZWFzZSBhZGQgcGF0aCB0byBzdGJfaW1hZ2UuaCB0byBDUFBG
TEFHUyBpbiBNYWtlZmlsZV0pKQogICAgXSkKZmkKZG5sIGVuZCBjaGVjayBmb3IgbGlic3RiaQoK
ZG5sIHdlYnAgdGVybWluYWwKaWYgdGVzdCAiJHt3aXRoX2NhaXJvfSIgPSB5ZXM7IHRoZW4KICB3
aXRoX3dlYnA9eWVzCiAgUEtHX0NIRUNLX01PRFVMRVNfTk9GQUlMKFdFQlAsIFtsaWJ3ZWJwIGxp
YndlYnBtdXhdLAogICAgICBbCiAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgJFdFQlBfQ0ZMQUdT
IgogICAgICBURVJNTElCUz0iJFRFUk1MSUJTICRXRUJQX0xJQlMiCiAgICAgIEFDX0RFRklORShI
QVZFX1dFQlAsMSwgWyBEZWZpbmUgdG8gYnVpbGQgdGhlIHdlYnAgdGVybWluYWwuIF0pCiAgICAg
IF0sCiAgICAgIHdpdGhfd2VicD1ubwogICkKZmkKCmRubCBFbmFibGUgcG9sYXIgbW9kZSBncmlk
ZGVkIHN1cmZhY2UgcGxvdHMKQUNfQVJHX0VOQUJMRShwb2xhci1ncmlkLGRubApbICAtLWVuYWJs
ZS1wb2xhci1ncmlkICAgICBpbmNsdWRlIHN1cHBvcnQgZm9yIGdyaWRkZWQgcG9sYXIgc3VyZmFj
ZSBwbG90c10sCiAgW2lmIHRlc3QgIiRlbmFibGV2YWwiICE9IG5vOyB0aGVuCiAgICBBQ19ERUZJ
TkUoVVNFX1BPTEFSX0dSSUQsMSwKICAgICAgICAgICAgICAgWyBEZWZpbmUgdG8gc3VwcG9ydCBw
b2xhciBncmlkZGVkIHN1cmZhY2UgcGxvdHNdKQogICBmaV0sCiAgICBBQ19ERUZJTkUoVVNFX1BP
TEFSX0dSSUQsMSwKICAgICAgICAgICAgICAgWyBEZWZpbmUgdG8gc3VwcG9ydCBwb2xhciBncmlk
ZGVkIHN1cmZhY2UgcGxvdHNdKQogICkKCmRubCBFbmFibGUgc3Vic3lzdGVtIHRvIGdlbmVyYXRl
IHN0YXRpc3RpY2FsIHN1bW1hcnkgb2YgZmlsZSBjb250ZW50cwpBQ19BUkdfRU5BQkxFKHN0YXRz
LGRubApbICAtLWRpc2FibGUtc3RhdHMgICAgICAgICBPbWl0IGNhbGN1bGF0aW9uIG9mIHN0YXRp
c3RpY2FsIHN1bW1hcnkgb2YgZGF0YV0sCiAgW2lmIHRlc3QgIiRlbmFibGV2YWwiICE9IG5vOyB0
aGVuCiAgICBBQ19ERUZJTkUoVVNFX1NUQVRTLDEsCiAgICAgICAgICAgICAgIFsgRGVmaW5lIHRv
IGFkZCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIGEgc3RhdGlzdGljYWwgc3VtbWFyeSBvZiBkYXRh
XSkKICAgZmldLAogICAgQUNfREVGSU5FKFVTRV9TVEFUUywxLAogICAgICAgICAgICAgICBbIERl
ZmluZSB0byBhZGQgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBhIHN0YXRpc3RpY2FsIHN1bW1hcnkg
b2YgZGF0YV0pCiAgICkKCmRubCBFbmFibGUgc3Vic3lzdGVtIHRvIHNldCB3YXRjaHBvaW50cyB0
aGF0IHRyaWdnZXIgZHVyaW5nIDJEIHBsb3R0aW5nCkFDX0FSR19FTkFCTEUod2F0Y2hwb2ludHMs
ZG5sClsgIC0tZW5hYmxlLXdhdGNocG9pbnRzICAgIGluY2x1ZGUgc3VwcG9ydCBmb3Igc2V0dGlu
ZyB3YXRjaHBvaW50cyBpbiAyRCBwbG90c10sCiAgW2lmIHRlc3QgIiRlbmFibGV2YWwiICE9IG5v
OyB0aGVuCiAgICBBQ19ERUZJTkUoVVNFX1dBVENIUE9JTlRTLDEsCiAgICAgICAgICAgICAgIFsg
RGVmaW5lIHRvIHN1cHBvcnQgc2V0dGluZyB3YXRjaHBvaW50cyBpbiAyRCBwbG90c10pCiAgIGZp
XSwKICAgIEFDX0RFRklORShVU0VfV0FUQ0hQT0lOVFMsMSwKICAgICAgICAgICAgICAgWyBEZWZp
bmUgdG8gc3VwcG9ydCBzZXR0aW5nIHdhdGNocG9pbnRzIGluIDJEIHBsb3RzXSkKICAgKQoKZG5s
IEVuYWJsZSBjYWxsYWJsZSBibG9ja3Mgb2YgZ251cGxvdCBjb2RlIHRyZWF0ZWQgYXMgZnVuY3Rp
b25zCkFDX0FSR19FTkFCTEUoZnVuY3Rpb24tYmxvY2tzLGRubApbICAtLWVuYWJsZS1mdW5jdGlv
bi1ibG9ja3MgaW5jbHVkZSBzdXBwb3J0IGZvciBkZWZpbmluZyBhIGZ1bmN0aW9uIGFzIGEgaGVy
ZSBkb2N1bWVudF0sCiAgW2lmIHRlc3QgIiRlbmFibGV2YWwiID0geWVzOyB0aGVuCiAgICBBQ19E
RUZJTkUoVVNFX0ZVTkNUSU9OQkxPQ0tTLCAxLAogICAgICAgICAgICAgICBbIERlZmluZSB0byBz
dXBwb3J0IGRlZmluaW5nIGEgZnVuY3Rpb24gYXMgYSBoZXJlIGRvY3VtZW50XSkKICAgZmldCiAg
ICkKCmRubCBFbmFibGUgcGFyc2luZyBvZiBkZXByZWNhdGVkIHN5bnRheApkbmwgQUNfQVJHX0VO
QUJMRShiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSxkbmwKZG5sIFsgIC0tZW5hYmxlLWJhY2t3YXJk
cy1jb21wYXRpYmlsaXR5ICAgICAgIGVuYWJsZSBkZXByZWNhdGVkIHN5bnRheCBdLApkbmwgICBb
aWYgdGVzdCAiJGVuYWJsZXZhbCIgPSB5ZXM7IHRoZW4KZG5sICAgICBBQ19ERUZJTkUoQkFDS1dB
UkRTX0NPTVBBVElCTEUsMSwKZG5sICAgICAgICAgICAgICAgIFsgRGVmaW5lIHRvIGFsbG93IHVz
ZSBvZiBjZXJ0YWluIGRlcHJlY2F0ZWQgc3ludGF4LiBdKQpkbmwgICBmaV0pCgpkbmwgUXQgdGVy
bWluYWwKCkFDX0FSR19XSVRIKHF0LGRubApbICAtLXdpdGgtcXQgWz1xdDQgPXF0NSA9bm9dICBR
dCB0ZXJtaW5hbCAoZGVmYXVsdCBhdXRvZGV0ZWN0KV0sCiAgW2lmIHRlc3QgIngke3dpdGhfcXR9
IiAhPSAieG5vIjsgdGhlbgogICAgIGVuYWJsZV9xdD15ZXM7CiAgIGZpXSwKICBlbmFibGVfcXQ9
eWVzKQoKaWYgdGVzdCAiJHtlbmFibGVfcXR9IiA9IHllcyA7IHRoZW4KICBkbmwgdmFyaWFibGUg
dXNlZCB0byBkZXRlcm1pbmUgaWYgYWxsIGNoZWNrcyBwYXNzCiAgZW5hYmxlX3F0X29rPXllcwoK
ICBkbmwgQ2hlY2sgZm9yIHRoZSBDKysgY29tcGlsZXIKICBpZiB0ZXN0ICJ4JHtjeHhlcnJvcn0i
ID0gInh5ZXMiOyB0aGVuCiAgICBBQ19NU0dfV0FSTihbTm8gQysrIGNvbXBpbGVyIGZvdW5kLiBU
aGUgUXQgdGVybWluYWwgd2lsbCBub3QgYmUgY29tcGlsZWQuXSkKICAgICAgZW5hYmxlX3F0X29r
PW5vCiAgZmkKCiAgZG5sIFF0NCBvbmx5IGJ5IHNwZWNpYWwgcmVxdWVzdAogIGlmIHRlc3QgIngk
e3dpdGhfcXR9IiA9ICJ4cXQ0IjsgdGhlbgogICAgdHJ5X3F0ND15ZXMKICBlbHNlCiAgICB0cnlf
cXQ0PW5vCiAgZmkKCiAgaWYgdGVzdCAieCR7d2l0aF9xdH0iICE9ICJ4cXQ0IjsgdGhlbgogICAg
cGtnX2ZhaWxlZD0ibm90X3RyaWVkIgogICAgaWYgdGVzdCAieCR7d2l0aF9xdH0iICE9ICJ4cXQ1
IjsgdGhlbgogICAgICBBQ19NU0dfQ0hFQ0tJTkcoW0NoZWNraW5nIGZvciBRdDYgc3VwcG9ydCBs
aWJyYXJpZXNdKQogICAgICBQS0dfQ0hFQ0tfTU9EVUxFU19OT0ZBSUwoUVQsIFtRdDZDb3JlIFF0
Nkd1aSBRdDZOZXR3b3JrIFF0NlN2ZyBRdDZQcmludFN1cHBvcnQgUXQ2V2lkZ2V0cyBRdDZDb3Jl
NUNvbXBhdF0pCiAgICBmaQogICAgaWYgdGVzdCAkcGtnX2ZhaWxlZCA9IG5vOyB0aGVuCiAgICAg
IFFUNkxPQz1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1saWJleGVjZGlyIFF0NkNvcmVgCiAgICAg
IGlmIHRlc3QgIngke1FUNkxPQ30iICE9ICJ4IjsgdGhlbgogICAgICAgICAgVUlDPSR7UVQ2TE9D
fS91aWMKICAgICAgICAgIE1PQz0ke1FUNkxPQ30vbW9jCiAgICAgICAgICBSQ0M9JHtRVDZMT0N9
L3JjYwogICAgICBlbGlmIHRlc3QgIngke1VJQ30iID0gIngiOyB0aGVuCiAgICAgICAgICBVSUM9
dWljLXF0NgogICAgICAgICAgTU9DPW1vYy1xdDYKICAgICAgICAgIFJDQz1yY2MtcXQ2CiAgICAg
IGZpCiAgICAgIFFUNkJJTj1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1iaW5kaXIgUXQ2Q29yZWAK
ICAgICAgaWYgdGVzdCAieCR7UVQ2QklOfSIgIT0gIngiOyB0aGVuCiAgICAgICAgICBMUkVMRUFT
RT0ke1FUNkJJTn0vbHJlbGVhc2UKICAgICAgZWxpZiB0ZXN0ICJ4JHtMUkVMRUFTRX0iID0gIngi
OyB0aGVuCiAgICAgICAgICBMUkVMRUFTRT1scmVsZWFzZS1xdDYKICAgICAgZmkKCiAgICAgIENY
WEZMQUdTPSIkQ1hYRkxBR1MgLWZQSUMiCiAgICAgIEFDX01TR19SRVNVTFQoW1RoZSBRdCB0ZXJt
aW5hbCB3aWxsIHVzZSBRdDYuXSkKICAgICAgUVRWRVI9IjYiCiAgICBlbHNlCiAgICAgIEFDX01T
R19DSEVDS0lORyhbQ2hlY2tpbmcgZm9yIFF0NSBzdXBwb3J0IGxpYnJhcmllc10pCiAgICAgIFBL
R19DSEVDS19NT0RVTEVTX05PRkFJTChRVCwgW1F0NUNvcmUgUXQ1R3VpIFF0NU5ldHdvcmsgUXQ1
U3ZnIFF0NVByaW50U3VwcG9ydF0pCiAgICAgIGlmIHRlc3QgJHBrZ19mYWlsZWQgPSBubzsgdGhl
bgogICAgICAgIFFUNUxPQz1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1ob3N0X2JpbnMgUXQ1Q29y
ZWAKICAgICAgICBpZiB0ZXN0ICJ4JHtRVDVMT0N9IiAhPSAieCI7IHRoZW4KICAgICAgICAgIFVJ
Qz0ke1FUNUxPQ30vdWljCiAgICAgICAgICBNT0M9JHtRVDVMT0N9L21vYwogICAgICAgICAgUkND
PSR7UVQ1TE9DfS9yY2MKICAgICAgICAgIExSRUxFQVNFPSR7UVQ1TE9DfS9scmVsZWFzZQogICAg
ICAgIGZpCiAgICAgICAgQ1hYRkxBR1M9IiRDWFhGTEFHUyAtZlBJQyIKICAgICAgICBBQ19NU0df
UkVTVUxUKFtUaGUgUXQgdGVybWluYWwgd2lsbCB1c2UgUXQ1Ll0pCiAgICAgICAgUVRWRVI9IjUi
CiAgICAgIGZpCiAgICBmaSAKICBmaQoKICBkbmwgRXhwbGljaXQgcmVxdWVzdCBmb3IgcXQ0IAog
IGlmIHRlc3QgJHt0cnlfcXQ0fSA9IHllczsgdGhlbgogICAgQUNfTVNHX0NIRUNLSU5HKFtDaGVj
a2luZyBmb3IgUXQ0IHN1cHBvcnRdKQogICAgUEtHX0NIRUNLX01PRFVMRVNfTk9GQUlMKFFULCBb
UXRDb3JlID49IDQuNSBRdEd1aSA+PSA0LjUgUXROZXR3b3JrID49IDQuNSBRdFN2ZyA+PSA0LjVd
KQogICAgaWYgdGVzdCAkcGtnX2ZhaWxlZCAhPSBubzsgdGhlbgogICAgICBlbmFibGVfcXRfb2s9
bm8KICAgICAgQUNfTVNHX1JFU1VMVChbVGhlIFF0IHRlcm1pbmFsIHdpbGwgbm90IGJlIGNvbXBp
bGVkLl0pCiAgICBlbHNlCiAgICAgIFFUNExPQz1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1leGVj
X3ByZWZpeCBRdENvcmVgCiAgICAgIFVJQz1gJFBLR19DT05GSUcgLS12YXJpYWJsZT11aWNfbG9j
YXRpb24gUXRDb3JlYAogICAgICBNT0M9YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9bW9jX2xvY2F0
aW9uIFF0Q29yZWAKICAgICAgUkNDPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPXJjY19sb2NhdGlv
biBRdENvcmVgCiAgICAgIExSRUxFQVNFPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWxyZWxlYXNl
X2xvY2F0aW9uIFF0Q29yZWAKICAgICAgQUNfTVNHX1JFU1VMVChbVGhlIFF0IHRlcm1pbmFsIHdp
bGwgdXNlIFF0NC5dKQogICAgICBRVFZFUj0iNCIKICAgIGZpCiAgZmkKZmkKCmlmIHRlc3QgIiR7
ZW5hYmxlX3F0X29rfSIgPSB5ZXMgOyB0aGVuCiAgZG5sIENoZWNrIGZvciBmb3JrKCkKICBBQ19G
VU5DX0ZPUksKCiAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAkUVRfQ0ZMQUdTIgogIENYWEZMQUdTPSIk
Q1hYRkxBR1MgJFFUX0NYWEZMQUdTIgoKICBpZiB0ZXN0IHgiJE1PQyIgPSB4OyB0aGVuCiAgICBN
T0M9bW9jCiAgZmkKICBpZiB0ZXN0IHgiJFVJQyIgPSB4OyB0aGVuCiAgICBVSUM9dWljCiAgZmkK
ICBpZiB0ZXN0IHgiJFJDQyIgPSB4IDsgdGhlbgogICAgaWYgdGVzdCB4IiRRVDRMT0MiICE9IHgg
OyB0aGVuCiAgICAgICAgUkNDPSRRVDRMT0MvYmluL3JjYwogICAgZWxzZQogICAgICAgIFJDQz1y
Y2MKICAgIGZpCiAgZmkKICBpZiB0ZXN0IHgiJExSRUxFQVNFIiA9IHggOyB0aGVuCiAgICBpZiB0
ZXN0IHgiJFFUNExPQyIgIT0geCA7IHRoZW4KICAgICAgICBMUkVMRUFTRT0kUVQ0TE9DL2Jpbi9s
cmVsZWFzZQogICAgZWxzZQogICAgICAgIExSRUxFQVNFPWxyZWxlYXNlCiAgICBmaQogIGZpCiAg
QUNfU1VCU1QoUkNDKQogIEFDX1NVQlNUKE1PQykKICBBQ19TVUJTVChVSUMpCiAgQUNfU1VCU1Qo
UVRfTElCUykKICBBQ19TVUJTVChMUkVMRUFTRSkKICBBQ19ERUZJTkUoUVRURVJNLDEsIFsgRGVm
aW5lIGlmIHlvdSB3YW50IHRoZSBRdCB0ZXJtaW5hbC4gXSkKICBBQ19ERUZJTkVfVU5RVU9URUQo
UVRWRVIsJFFUVkVSLFsgb25seSB1c2VkIGZvciBkb2NzXSkKZmkKQU1fQ09ORElUSU9OQUwoQlVJ
TERfUVQsIHRlc3QgIiR7ZW5hYmxlX3F0X29rfSIgPSB5ZXMpCgpkbmwgYnVpbGQgbW91c2Ugc3Vw
cG9ydCBpZiBhbnkgbW91c2UtcmVxdWlyaW5nIHRlcm1pbmFsIGlzIHNlbGVjdGVkCmlmIHRlc3Qg
IiR7ZW5hYmxlX3F0X29rfSIgPSB5ZXMgXAogIHx8IHRlc3QgIiR7ZW5hYmxlX3d4d2lkZ2V0c19v
a30iID0geWVzIFwKICB8fCB0ZXN0ICIkR0dJX1NVUFBPUlQiID0geWVzIFwKICB8fCB0ZXN0ICIk
bm9feCIgIT0geWVzOyB0aGVuCiAgICBlbmFibGVfbW91c2U9eWVzOwpmaQoKaWYgdGVzdCAiJGVu
YWJsZV9tb3VzZSIgPSB5ZXM7IHRoZW4KICBBQ19ERUZJTkUoVVNFX01PVVNFLDEsCiAgICAgICAg
ICAgIFsgRGVmaW5lIGlmIHlvdSBoYXZlIGludGVyYWN0aXZlIHRlcm1pbmFscyB0aGF0IHVzZSBt
b3VzZSBzdXBwb3J0LiBdKQogIEFDX0RFRklORShQSVBFX0lQQywxLAogICAgICAgICAgICBbIFVu
aXgtdHlwZSBvZiBJbnRlcnByb2Nlc3MgQ29tbXVuaWNhdGlvbiBpcyByZXF1aXJlZCBmb3IgbW91
c2Ugc3VwcG9ydC4gXSkKZmkKCmRubCB0cmFuc2xhdGlvbiB0b29scwpBTV9DT05ESVRJT05BTChI
QVZFX0xSRUxFQVNFLCB0ZXN0ICIke0xSRUxFQVNFfSIgIT0gbm8pCgpBQ19BUkdfVkFSKERJU1Rf
Q09OVEFDVCxbQ29udGFjdCBhZGRyZXNzIGZvciBtb2RpZmllZCBhbmQgYmluYXJ5IGRpc3RyaWJ1
dGVkIGdudXBsb3QgdmVyc2lvbnNdKQppZiB0ZXN0IC1uICIke0RJU1RfQ09OVEFDVH0iOyB0aGVu
CiAgQUNfREVGSU5FX1VOUVVPVEVEKFtESVNUX0NPTlRBQ1RdLFsiJERJU1RfQ09OVEFDVCJdLFtD
b250YWN0IGFkZHJlc3MgZm9yIG1vZGlmaWVkIGFuZCBiaW5hcnkgZGlzdHJpYnV0ZWQgZ251cGxv
dCB2ZXJzaW9uc10pCmZpCgpkbmwgU3Vic3RpdHV0ZSB2YXJpYWJsZXMKQUNfU1VCU1QoUEFDS0FH
RSkKQUNfU1VCU1QoVkVSU0lPTl9NQUpPUikKQUNfU1VCU1QoVkVSU0lPTikKQUNfU1VCU1QoUEFU
Q0hMRVZFTCkKQUNfU1VCU1QoR0lIRElSKQpBQ19TVUJTVChURVhESVIpCkFDX1NVQlNUKFRFUk1M
SUJTKQpBQ19TVUJTVChURVJNWExJQlMpCmRubCBBQ19TVUJTVChUVVRPUklBTCkKCmRubCBXcml0
ZSBNYWtlZmlsZXMgYW5kIGNvbmZpZ3VyYXRpb24gaGVhZGVyCkFDX0NPTkZJR19GSUxFUyhbTWFr
ZWZpbGUKICAgICAgICAgICBjb25maWcvTWFrZWZpbGUKICAgICAgICAgICBkZW1vL01ha2VmaWxl
CiAgICAgICAgICAgZGVtby9wbHVnaW4vTWFrZWZpbGUKICAgICAgICAgICBkb2NzL01ha2VmaWxl
CiAgICAgICAgICAgbTQvTWFrZWZpbGUKICAgICAgICAgICBtYW4vTWFrZWZpbGUKICAgICAgICAg
ICBtYW4vamEvTWFrZWZpbGUKICAgICAgICAgICBzaGFyZS9NYWtlZmlsZQogICAgICAgICAgIHNo
YXJlL0xhVGVYL01ha2VmaWxlCiAgICAgICAgICAgc3JjL01ha2VmaWxlCiAgICAgICAgICAgc3Jj
L2Jlb3MvTWFrZWZpbGUKICAgICAgICAgICBzcmMvd3h0ZXJtaW5hbC9NYWtlZmlsZQogICAgICAg
ICAgIHNyYy9xdHRlcm1pbmFsL01ha2VmaWxlCiAgICAgICAgICAgdGVybS9NYWtlZmlsZQogICAg
ICAgICAgIF0pCkFDX0NPTkZJR19DT01NQU5EUyhbZGVmYXVsdF0sW3Rlc3QgLXogIiRDT05GSUdf
SEVBREVSUyIgfHwgZWNobyB0aW1lc3RhbXAgPnN0YW1wLWhdLFtdKQpBQ19PVVRQVVQKCmRubCBS
ZXBvcnQgY29uZmlndXJhdGlvbgpkbmwgUmF0aW9uYWxlOgpkbmwgLSBpZiBzb21ldGhpbmcgaXMg
ZGlzYWJsZWQgYnkgZGVmYXVsdCwgc2hvdyBhcmd1bWVudHMgdG8gdXNlIHRvIGVuYWJsZS4KZG5s
IC0gaWYgc29tZXRoaW5nIGhhcyBwYXJ0aWN1bGFyIGRlcGVuZGVuY2llcywgc2hvdyB0aGVtIGFs
bCB3aGVuIHRoZXkgYXJlCmRubCBtaXNzaW5nICh0aGUgZGV0YWlsZWQgb3V0cHV0IHdpbGwgZ2l2
ZSBtb3JlIGRldGFpbHMgYW55d2F5KS4KZG5sIFRoZSBnb2FsIGlzIHRvIGdpdmUgc2Vuc2libGUg
YW5kIGVhc2lseSBhY2Nlc3NpYmxlIGluZm9ybWF0aW9uIHRvIHVzZXJzCmRubCBhbmQgcGFja2Fn
ZXJzLgoKQUNfTVNHX1JFU1VMVChbXSkKQUNfTVNHX1JFU1VMVChbKiogQ29uZmlndXJhdGlvbiBz
dW1tYXJ5IGZvciAkUEFDS0FHRSAkVkVSU0lPTjpdKQpBQ19NU0dfUkVTVUxUKFtdKQoKQUNfTVNH
X1JFU1VMVChbZ251cGxvdCB3aWxsIGJlIGNvbXBpbGVkIHdpdGggdGhlIGZvbGxvd2luZyB0ZXJt
aW5hbHM6XSkKQUNfTVNHX1JFU1VMVChbXSkKCkFDX01TR19SRVNVTFQoWyAgU3RhbmRhbG9uZSB0
ZXJtaW5hbHM6IHllcyAoaW5jbHVkZWQgYnkgZGVmYXVsdCldKQpBQ19NU0dfUkVTVUxUKFsgICAg
Y2FudmFzIGNnbSBjb250ZXh0IGR1bWIgZHhmIGVtZiBlcHNsYXRleF0pCkFDX01TR19SRVNVTFQo
WyAgICBmaWcgaHBnbCBwY2w1IHBvc3RzY3JpcHRdKQpBQ19NU0dfUkVTVUxUKFsgICAgcGljdDJl
IHBzbGF0ZXggcHN0ZXggcHN0cmlja3Mgc3ZnIHRleGRyYXcgdGtjYW52YXNdKQpBQ19NU0dfUkVT
VUxUKFtdKQoKaWYgdGVzdCAiJHdpdGhfYml0bWFwX3Rlcm1pbmFscyIgPSB5ZXM7IHRoZW4KICBB
Q19NU0dfUkVTVUxUKFsgIERvdC1tYXRyaXggdGVybWluYWxzOiB5ZXMgKCAtLXdpdGhvdXQtYml0
bWFwLXRlcm1pbmFscyB0byBkaXNhYmxlKV0pCmVsc2UKICBBQ19NU0dfUkVTVUxUKFsgIERvdC1t
YXRyaXggdGVybWluYWxzOiBubyAodXNlIC0td2l0aC1iaXRtYXAtdGVybWluYWxzIHRvIGVuYWJs
ZSldKQogIEFDX01TR19SRVNVTFQoWyAgVGhlc2Ugd291bGQgaW5jbHVkZSwgaWYgZW5hYmxlZF0p
CmZpCkFDX01TR19SRVNVTFQoWyAgICBwcmludGVyczogZXBzb24gbmVjIG9raWRhdGEgdGFuZHkg
c2Vpa28gZHB1NDE0IF0pCkFDX01TR19SRVNVTFQoWyAgICAgICAgICAgICAgaHA1MDBjIGhwZGog
aHBsamlpIGhwcGogc3RhcmNdKQpBQ19NU0dfUkVTVUxUKFsgICAgb3RoZXI6ICAgIGJsb2NrIHBi
bSBdKQpBQ19NU0dfUkVTVUxUKFtdKQoKaWYgdGVzdCAiJHdpdGhfdGVrdHJvbml4IiA9IG5vOyB0
aGVuCiAgQUNfTVNHX1JFU1VMVChbICBUZWt0cm9uaXggdGVybWluYWwgZW11bGF0b3JzOiBubyAo
IC0td2l0aC10ZWt0cm9uaXggdG8gZW5hYmxlKV0pCmVsc2UKICBBQ19NU0dfUkVTVUxUKFsgIFRl
a3Ryb25peCB0ZXJtaW5hbCBlbXVsYXRvcnM6IHllcyAoIC0td2l0aG91dC10ZWt0cm9uaXggdG8g
ZGlzYWJsZSldKQpmaQpBQ19NU0dfUkVTVUxUKFsgICAgdGVrNDEweCB0ZWs0MCB2dHRlayB4dGVy
bSBrY190ZWs0MCBrbV90ZWs0MCBzZWxhbmFyIGJpdGdyYXBoXSkKQUNfTVNHX1JFU1VMVChbICAg
IHNpeGVsdGVrIChub3QgbmVlZGVkIGZvciBzaXhlbCBncmFwaGljcyBvdXRwdXQgdG8gdnQxMDAt
c2VyaWVzIGVtdWxhdG9ycyldKQoKQUNfTVNHX1JFU1VMVChbXSkKQUNfTVNHX1JFU1VMVChbICBQ
bGF0Zm9ybS1zcGVjaWZpYywgbGVnYWN5LCBvciBzcGVjaWFsaXplZCB0ZXJtaW5hbHMgb21pdHRl
ZCBieSBkZWZhdWx0Ol0pCgppZiB0ZXN0ICIkd2l0aF9ncGljIiA9IHllczsgdGhlbgogIEFDX01T
R19SRVNVTFQoWyAgICBncGljICAgICAgOiB5ZXNdKQplbHNlCiAgQUNfTVNHX1JFU1VMVChbICAg
IGdwaWMgICAgICA6ICBubyAgICh1c2UgLS13aXRoLWdwaWMgdG8gZW5hYmxlKV0pCmZpCgppZiB0
ZXN0ICIkd2l0aF90Z2lmIiA9IHllczsgdGhlbgogIEFDX01TR19SRVNVTFQoWyAgICB0Z2lmICAg
ICAgOiB5ZXNdKQplbHNlCiAgQUNfTVNHX1JFU1VMVChbICAgIHRnaWYgICAgICA6ICBubyAgICh1
c2UgLS13aXRoLXRnaWYgdG8gZW5hYmxlKV0pCmZpCgppZiB0ZXN0ICIkd2l0aF9tZXRhZm9udCIg
PSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsgICAgbWV0YWZvbnQgIDogeWVzXSkKZWxzZQog
IEFDX01TR19SRVNVTFQoWyAgICBtZXRhZm9udCAgOiAgbm8gICAodXNlIC0td2l0aC1tZXRhZm9u
dCB0byBlbmFibGUpXSkKZmkKCmlmIHRlc3QgIiR3aXRoX21ldGFwb3N0IiA9IHllczsgdGhlbgog
IEFDX01TR19SRVNVTFQoWyAgICBtZXRhcG9zdCAgOiB5ZXNdKQplbHNlCiAgQUNfTVNHX1JFU1VM
VChbICAgIG1ldGFwb3N0ICA6ICBubyAgICh1c2UgLS13aXRoLW1ldGFwb3N0IHRvIGVuYWJsZSld
KQpmaQoKaWYgdGVzdCAiJHdpdGhfcmVnaXMiID0geWVzOyB0aGVuCiAgQUNfTVNHX1JFU1VMVChb
ICAgIFJlR0lTICAgICA6IHllc10pCmVsc2UKICBBQ19NU0dfUkVTVUxUKFsgICAgUmVHSVMgICAg
IDogIG5vICAgKHVzZSAtLXdpdGgtcmVnaXMgdG8gZW5hYmxlKV0pCmZpCgppZiB0ZXN0ICIkaXNf
bXNkb3MiID0geWVzOyB0aGVuCiAgQUNfTVNHX1JFU1VMVChbICAgIHN2Z2EgKGRqZ3BwKTogeWVz
XSkKZmkKCmlmIHRlc3QgIiRidWlsZF9zcmNfYmVvc19zdWJkaXIiID0geWVzOyB0aGVuCiAgQUNf
TVNHX1JFU1VMVChbICAgIGJlIChCZU9TKSA6IHllc10pCgpmaQoKaWYgdGVzdCAiJHdpdGhfY2Fj
YSIgPSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsgICAgY2FjYSAgICAgIDogeWVzICAgKEVY
UEVSSU1FTlRBTCldKQplbHNlCiAgQUNfTVNHX1JFU1VMVChbICAgIGNhY2EgICAgICA6ICBubyAg
ICh1c2UgLS13aXRoLWNhY2EgdG8gZW5hYmxlKV0pCmZpCgppZiB0ZXN0ICIkZ251cGxvdF9mcmFt
ZXdvcmtfQXF1YVRlcm0iID0geWVzOyB0aGVuCiAgQUNfTVNHX1JFU1VMVChbICAgIGFxdWEgKG1h
Y09TKTogeWVzXSkKZWxzZQogIEFDX01TR19SRVNVTFQoWyAgICBhcXVhIChtYWNPUyk6ICBub10p
CmZpCgpBQ19NU0dfUkVTVUxUKFtdKQpBQ19NU0dfUkVTVUxUKFsgIE90aGVyIHRlcm1pbmFscyB0
aGF0IGNhbiBiZSBlbmFibGVkIGJ1dCBoYXZlIG5vIC4vY29uZmlndXJlIG9wdGlvbjpdKQpBQ19N
U0dfUkVTVUxUKFsgICAgZWVwaWMsIGVtdGV4LCBocDI2MjNhLCBocDI2NDgsIGltYWdlbiwga3lv
Y2VyYSwgbGF0ZXgsIG1pZiwgdHBpYyBdKQpBQ19NU0dfUkVTVUxUKFsgICAgcW1zLCBwbSAobWFr
ZWZpbGUub3MyKSwgYmUgKEJlT1MpLCBzdmdhIChNU0RPUy9kamdwcCksIHdpbmRvd3NdKQoKZG5s
IFRoZXNlIGFyZSB0aGUgbW9zdCBjb21tb24gaW50ZXJhY3RpdmUgdGVybWluYWwgb3B0aW9ucwpB
Q19NU0dfUkVTVUxUKFtdKQppZiB0ZXN0ICIkbm9feCIgIT0geWVzOyB0aGVuCiAgaWYgdGVzdCAi
JGVuYWJsZV94MTFfbWJmb250cyIgPSB5ZXM7IHRoZW4KICAgIEFDX01TR19SRVNVTFQoWyAgeDEx
IChYIFdpbmRvdyBTeXN0ZW0pOiB5ZXMgIChtdWx0aS1ieXRlIGZvbnRzIE9LKV0pCiAgZWxzZQog
ICAgQUNfTVNHX1JFU1VMVChbICB4MTEgKFggV2luZG93IFN5c3RlbSk6IHllcyAgKG11bHRpLWJ5
dGUgZm9udHMgbm90IHN1cHBvcnRlZCldKQogIGZpCgogIGlmIHRlc3QgIiRlbmFibGVfeDExX2V4
dGVybmFsIiAhPSB5ZXM7IHRoZW4KICAgIEFDX01TR19SRVNVTFQoWyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChkaXNhYmxlIHBsb3R0aW5nIHRvIHdpbmRvd3Mgb3BlbmVkIGJ5IGV4dGVy
bmFsIGFwcHMpIF0pCiAgZmkKCiAgaWYgdGVzdCAiJHdpdGhfeF9kY29wIiA9IHllczsgdGhlbgog
ICAgQUNfTVNHX1JFU1VMVChbICAgIChnbnVwbG90X3gxMSBjYW4gdXNlIEtERTMvRENPUCB0byBy
YWlzZSBrb25zb2xlKSBdKQogIGZpCmVsc2UKICBBQ19NU0dfUkVTVUxUKFsgIHgxMSAoWCBXaW5k
b3cgU3lzdGVtKSA6ICAgbm8gKHJlcXVpcmVzIFggbGlicmFyaWVzKV0pCmZpCgppZiB0ZXN0ICIk
YWNfY3ZfbGliX2dkX2dkSW1hZ2VKcGVnIiA9IHllcyAmJiAKICAgdGVzdCAiJGFjX2N2X2xpYl9n
ZF9nZEltYWdlUG5nIiA9IHllcyAmJiAKICAgdGVzdCAiJGFjX2N2X2xpYl9nZF9nZEltYWdlR2lm
IiA9IHllczsgdGhlbgogICAgaWYgdGVzdCAiJGFjX2N2X2xpYl9nZF9nZEltYWdlR2lmQW5pbUJl
Z2luIiA9IHllczsgdGhlbgogICAgICBBQ19NU0dfUkVTVUxUKFsgIGxpYmdkLWJhc2VkIHBuZyBq
cGVnIGdpZiBzaXhlbDogeWVzICh3aXRoIGFuaW1hdGVkIGdpZildKQogICAgZWxzZQogICAgICBB
Q19NU0dfUkVTVUxUKFsgIGxpYmdkLWJhc2VkIHBuZyBqcGVnIGdpZiBzaXhlbDogeWVzIChubyBh
bmltYXRlZCBnaWYpXSkKICAgIGZpCmVsc2UKICAgIEFDX01TR19SRVNVTFQoWyAgbGliZ2QtYmFz
ZWQgcG5nIGpwZWcgZ2lmIHNpeGVsOiBubyAocmVxdWlyZXMgbGliZ2QsICBzZWUgY29uZmlnLmxv
ZykgXSkKZmkKCmlmIHRlc3QgIiR3aXRoX2NhaXJvIiA9IHllczsgdGhlbgogIEFDX01TR19SRVNV
TFQoWyAgY2Fpcm8tYmFzZWQgcGRmIHBuZyAgOiB5ZXMgXSkKZWxzZQogIEFDX01TR19SRVNVTFQo
WyAgY2Fpcm8tYmFzZWQgdGVybWluYWxzOiBubyAocmVxdWlyZXMgY2Fpcm8+PTEuMiwgcGFuZ28+
PTEuMjIsIGdsaWI+PTIuMjgpXSkKZmkKCmlmIHRlc3QgIiR3aXRoX3dlYnAiID0geWVzOyB0aGVu
CiAgQUNfTVNHX1JFU1VMVChbICB3ZWJwICAgICAgICAgICAgICAgICA6IHllcyBdKQplbHNlCiAg
QUNfTVNHX1JFU1VMVChbICB3ZWJwICAgICAgICAgICAgICAgICA6IG5vIChyZXF1aXJlcyBjYWly
bywgcGFuZ28sIGxpYndlYnAsIGxpYndlYnBtdXgpXSkKZmkKCmlmIHRlc3QgIiR3aXRoX2NhaXJv
IiA9IHllcyB8fCB0ZXN0ICIkd2l0aF9nZCIgPSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsg
IGtpdHR5ICAgICAgICAgICAgICAgIDogeWVzIF0pCmVsc2UKICBBQ19NU0dfUkVTVUxUKFsgIGtp
dHR5ICAgICAgICAgICAgICAgIDogbm8gXSkKZmkKCgppZiB0ZXN0ICIkd2l0aF9sdWEiID0geWVz
OyB0aGVuCiAgQUNfTVNHX1JFU1VMVChbICBsdWEvVGlrWiAgICAgICAgICAgICA6IHllcyBdKQpl
bHNlCiAgQUNfTVNHX1JFU1VMVChbICBsdWEvVGlrWiAgICAgICAgICAgICA6IG5vIF0pCmZpCgpp
ZiB0ZXN0ICIkZW5hYmxlX3d4d2lkZ2V0c19vayIgPSB5ZXM7IHRoZW4KICBpZiB0ZXN0ICIkd2l0
aF93eF9tdWx0aXRocmVhZGVkIiA9IHllczsgdGhlbgogICAgQUNfTVNHX1JFU1VMVChbICB3eHQg
ICAgICAgICAgICAgICAgICA6IHllcyAobXVsdGl0aHJlYWRlZCldKQogIGVsc2UKICAgIEFDX01T
R19SRVNVTFQoWyAgd3h0ICAgICAgICAgICAgICAgICAgOiB5ZXMgXSkKICBmaQplbHNlCiAgQUNf
TVNHX1JFU1VMVChbICB3eHQgICAgICAgICAgICAgICAgICA6IG5vIChyZXF1aXJlcyBDKyssIHd4
V2lkZ2V0cz4yLjYsIGNhaXJvPjAuOSwgcGFuZ28+MS4yMildKQpmaQoKaWYgdGVzdCAiJGVuYWJs
ZV9xdF9vayIgPSB5ZXM7IHRoZW4KICBpZiB0ZXN0ICIkUVRWRVIiID0gNDsgdGhlbgogICAgICBB
Q19NU0dfUkVTVUxUKFsgIFF0ICAgICAgICAgICAgICAgICAgIDogeWVzIChxdDQpXSkKICBlbGlm
IHRlc3QgIiRRVFZFUiIgPSA1OyB0aGVuCiAgICAgIEFDX01TR19SRVNVTFQoWyAgUXQgICAgICAg
ICAgICAgICAgICAgOiB5ZXMgKHF0NSldKQogIGVsaWYgdGVzdCAiJFFUVkVSIiA9IDY7IHRoZW4K
ICAgICAgQUNfTVNHX1JFU1VMVChbICBRdCAgICAgICAgICAgICAgICAgICA6IHllcyAocXQ2KV0p
CiAgZWxzZQogICAgICBBQ19NU0dfUkVTVUxUKFsgIFF0ICAgICAgICAgICAgICAgICAgIDogbm8g
KHJlcXVpcmVzIEMrKywgUXQ1IG9yIFF0NiBzdXBwb3J0IGxpYnJhcmllcyldKQogIGZpCmVsc2UK
ICBBQ19NU0dfUkVTVUxUKFsgIFF0ICAgICAgICAgICAgICAgICAgIDogbm8gKHVzZSAtLXdpdGgt
cXQgb3IgLS13aXRoLXF0PXF0NCBvciAtLXdpdGgtcXQ9cXQ1IHRvIGVuYWJsZV0pCmZpCgpBQ19N
U0dfUkVTVUxUKFtdKQpBQ19NU0dfUkVTVUxUKFtnbnVwbG90IHdpbGwgYmUgY29tcGlsZWQgd2l0
aCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYWJsZSBmZWF0dXJlczpdKQpBQ19NU0dfUkVTVUxUKFtd
KQoKaWYgdGVzdCAiJHdpdGhfcmVhZGxpbmUiID0gbm87IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsg
IE5vIHJlYWRsaW5lIHN1cHBvcnQgKHVzZSAtLXdpdGgtcmVhZGxpbmU9Z251IG9yIC0td2l0aC1y
ZWFkbGluZT1idWlsdGluKV0pCmZpCgogIGlmIHRlc3QgIiR3aXRoX3JlYWRsaW5lIiA9IGJzZDsg
dGhlbgogICAgaWYgdGVzdCAtbiAiJGdwX3RjYXAiOyB0aGVuCiAgICAgIEFDX01TR19SRVNVTFQo
WyAgUmVhZGxpbmUgbGlicmFyeTogQlNEIGVkaXRsaW5lIHdpdGggJGdwX3RjYXBdKQogICAgZWxz
ZQogICAgICBBQ19NU0dfUkVTVUxUKFsgIFJlYWRsaW5lIGxpYnJhcnk6IEJTRCBlZGl0bGluZSBs
aWJyYXJ5XSkKICAgIGZpCiAgZWxzZSBpZiB0ZXN0ICIkd2l0aF9yZWFkbGluZSIgIT0gYnVpbHRp
bjsgdGhlbgogICAgaWYgdGVzdCAtbiAiJGdwX3RjYXAiOyB0aGVuCiAgICAgIEFDX01TR19SRVNV
TFQoWyAgUmVhZGxpbmUgbGlicmFyeTogR05VIHJlYWRsaW5lIGxpYnJhcnkgd2l0aCAkZ3BfdGNh
cF0pCiAgICBlbHNlCiAgICAgIEFDX01TR19SRVNVTFQoWyAgUmVhZGxpbmUgbGlicmFyeTogR05V
IHJlYWRsaW5lIGxpYnJhcnldKQogICAgZmkKICAgIGlmIHRlc3QgIiRhY19jdl9saWJfcmVhZGxp
bmVfcmxfZm9yY2VkX3VwZGF0ZV9kaXNwbGF5IiA9IG5vOyB0aGVuCiAgICAgIEFDX01TR19SRVNV
TFQoWyAgICAgICAgICAgICAgICAgICAgbWlzc2luZyBzb21lIGZlYXR1cmVzIChPU1ggdmVyc2lv
bj8pXSkKICAgIGZpCiAgZWxzZQogICAgQUNfTVNHX1JFU1VMVChbICBSZWFkbGluZSBsaWJyYXJ5
OiBidWlsdGluIG1pbmltYWwgKHVzZSAtLXdpdGgtcmVhZGxpbmU9Z251IGZvciBHTlUgcmVhZGxp
bmUpXSkKICBmaQpmaQoKaWYgdGVzdCAiJGVuYWJsZV9oaXN0b3J5X2ZpbGUiID0geWVzOyB0aGVu
CiAgQUNfTVNHX1JFU1VMVChbICBDb21tYW5kLWxpbmUgaGlzdG9yeSBmaWxlOiAgICAgICAgICAg
ICAgICAgICAgICAgeWVzXSkKZWxzZQogIEFDX01TR19SRVNVTFQoWyAgQ29tbWFuZC1saW5lIGhp
c3RvcnkgZmlsZTogICAgICAgICAgICAgICAgICAgICAgIG5vXSkKZmkKCmlmIHRlc3QgIiR3aXRo
X2dkIiA9IHllczsgdGhlbgogIEFDX01TR19SRVNVTFQoWyAgU3VwcG9ydCBmb3IgaW1hZ2UgZmls
ZSBpbnB1dDogICAgICAgICAgICAgICAgICAgIHllcyAodXNpbmcgbGliZ2QpXSkKZWxpZiB0ZXN0
ICIkd2l0aF9jYWlybyIgPSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsgIFN1cHBvcnQgZm9y
IGltYWdlIGZpbGUgaW5wdXQ6ICAgICAgICAgICAgICAgICAgICB5ZXMgKHVzaW5nIGNhaXJvKV0p
CmVsaWYgdGVzdCAiJHdpdGhfc3RiaSIgPSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsgIFN1
cHBvcnQgZm9yIGltYWdlIGZpbGUgaW5wdXQ6ICAgICAgICAgICAgICAgICAgICB5ZXMgKHVzaW5n
IGxpYnN0YmkpXSkKZWxpZiB0ZXN0ICIkd2l0aF9nZCIgPSBubzsgdGhlbgogIEFDX01TR19SRVNV
TFQoWyAgU3VwcG9ydCBmb3IgaW1hZ2UgZmlsZSBpbnB1dDogICAgICAgICAgICAgICAgICAgIG5v
XSkKZmkKCmlmIHRlc3QgIiR7ZW5hYmxlX3N0YWJsZV9zb3J0fSIgPSB5ZXM7IHRoZW4KICBBQ19N
U0dfUkVTVUxUKFsgIEFkZCBjb2RlIHRvIGVuc3VyZSBwbTNkIGRlcHRoIHNvcnRpbmcgaXMgc3Rh
YmxlOiB5ZXNdKQplbGlmIHRlc3QgIiR7aGF2ZV9zdGFibGVfc29ydH0iID0geWVzOyB0aGVuCiAg
QUNfTVNHX1JFU1VMVChbICBBZGQgY29kZSB0byBlbnN1cmUgcG0zZCBkZXB0aCBzb3J0aW5nIGlz
IHN0YWJsZTogbm8gKG5vdCBuZWVkZWQpXSkKZWxzZQogIEFDX01TR19SRVNVTFQoWyAgQWRkIGNv
ZGUgdG8gZW5zdXJlIHBtM2QgZGVwdGggc29ydGluZyBpcyBzdGFibGU6IG5vXSkKZmkKCmlmIHRl
c3QgIiRlbmFibGVfbW91c2UiID0geWVzOyB0aGVuCiAgQUNfTVNHX1JFU1VMVChbICBNb3VzZSBz
dXBwb3J0IGluIGludGVyYWN0aXZlIHRlcm1pbmFsczogICAgICAgICAgeWVzXSkKZWxzZQogIEFD
X01TR19SRVNVTFQoWyAgTW91c2Ugc3VwcG9ydCBpbiBpbnRlcmFjdGl2ZSB0ZXJtaW5hbHM6ICAg
ICAgICAgIG5vXSkKZmkKCmlmIHRlc3QgIiRlbmFibGVfcmFpc2VfY29uc29sZSIgPSB5ZXM7IHRo
ZW4KICBBQ19NU0dfUkVTVUxUKFsgIFR5cGluZyA8c3BhY2U+IGluIHBsb3Qgd2luZG93IHJhaXNl
cyBjb25zb2xlOiAgICB5ZXNdKQplbHNlCiAgQUNfTVNHX1JFU1VMVChbICBUeXBpbmcgPHNwYWNl
PiBpbiBwbG90IHdpbmRvdyByYWlzZXMgY29uc29sZTogICAgbm9dKQpmaQoKaWYgdGVzdCAiJGhh
dmVfbGliY2VyZiIgPSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsgIGNlcmYoKSBhbmQgb3Ro
ZXIgc3BlY2lhbCBmdW5jdGlvbnMgZnJvbSBsaWJjZXJmOiB5ZXNdKQplbHNlCiAgQUNfTVNHX1JF
U1VMVChbICBjZXJmKCkgYW5kIG90aGVyIHNwZWNpYWwgZnVuY3Rpb25zOiBubyAobGliY2VyZiBu
b3QgZm91bmQpXSkKZmkKCmlmIHRlc3QgIiRoYXZlX2Ftb3NsaWJyYXJ5IiA9IHllczsgdGhlbgog
IEFDX01TR19SRVNVTFQoWyAgQ29tcGxleCBBaXJ5IGFuZCBCZXNzZWwgZnVuY3Rpb25zOiAgICAg
ICAgICAgICAgIHllc10pCmVsc2UKICBBQ19NU0dfUkVTVUxUKFsgIENvbXBsZXggQWlyeSBhbmQg
QmVzc2VsIGZ1bmN0aW9uczogICAgICAgICAgICAgICBubyAocmVxdWlyZXMgbGlib3BlbnNwZWMg
b3IgbGliYW1vcyldKQpmaQppZiB0ZXN0ICIkaGF2ZV96ZXhpbnQiID0geWVzOyB0aGVuCiAgQUNf
TVNHX1JFU1VMVChbICBDb21wbGV4IGV4cG9uZW50aWFsIGludGVncmFsIHpleGludCAobGliYW1v
cyk6ICAgeWVzXSkKZWxpZiB0ZXN0ICIkaGF2ZV9jZXhpbnQiID0geWVzOyB0aGVuCiAgQUNfTVNH
X1JFU1VMVChbICBDb21wbGV4IGV4cG9uZW50aWFsIGludGVncmFsIGNleGludCAobGliYW1vcyk6
ICAgeWVzXSkKZWxzZQogIEFDX01TR19SRVNVTFQoWyAgQ29tcGxleCBleHBvbmVudGlhbCBpbnRl
Z3JhbCAobGliYW1vcyk6ICAgICAgICAgIG5vXSkKZmkKCmlmIHRlc3QgIiRoYXZlX2V4dGVybmFs
X2Z1bmN0aW9ucyIgPSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsgIHBsdWdpbiBzdXBwb3J0
IGZvciBsb2FkaW5nIGV4dGVybmFsIGZ1bmN0aW9uczogICB5ZXMgXSkKZWxzZQogIEFDX01TR19S
RVNVTFQoWyAgcGx1Z2luIHN1cHBvcnQgZm9yIGxvYWRpbmcgZXh0ZXJuYWwgZnVuY3Rpb25zOiAg
IG5vIF0pCmZpCgpkbmwgaWYgdGVzdCAiJGVuYWJsZV9iYWNrd2FyZHNfY29tcGF0aWJpbGl0eSIg
PSB5ZXM7IHRoZW4KZG5sICAgQUNfTVNHX1JFU1VMVChbICBBbGxvdyBkZXByZWNhdGVkIHN5bnRh
eDogeWVzXSkKZG5sIGVsc2UKZG5sICAgQUNfTVNHX1JFU1VMVChbICBBbGxvdyBkZXByZWNhdGVk
IHN5bnRheDogbm8gKHVzZSAtLWVuYWJsZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eSldKQpkbmwg
ZmkKCmlmIHRlc3QgIiRlbmFibGVfc3RhdHMiICE9IG5vOyB0aGVuCiAgQUNfTVNHX1JFU1VMVChb
ICBTdGF0aXN0aWNhbCBzdW1tYXJ5IG9mIGRhdGEgKCJzdGF0cyIgY29tbWFuZCk6ICAgeWVzXSkK
ZWxzZQogIEFDX01TR19SRVNVTFQoWyAgU3RhdGlzdGljYWwgc3VtbWFyeSBvZiBkYXRhICgic3Rh
dHMiIGNvbW1hbmQpOiAgIG5vICgtLWVuYWJsZS1zdGF0cyB0byBlbmFibGUpXSkKZmkKCmlmIHRl
c3QgIiRlbmFibGVfd2F0Y2hwb2ludHMiICE9IG5vOyB0aGVuCiAgQUNfTVNHX1JFU1VMVChbICBT
dXBwb3J0IHdhdGNocG9pbnRzIGR1cmluZyAyRCBwbG90dGluZzogICAgICAgICAgeWVzXSkKZWxz
ZQogIEFDX01TR19SRVNVTFQoWyAgU3VwcG9ydCB3YXRjaHBvaW50cyBkdXJpbmcgMkQgcGxvdHRp
bmc6ICAgICAgICAgIG5vICgtLWVuYWJsZS13YXRjaHBvaW50cyB0byBlbmFibGUpXSkKZmkKCmlm
IHRlc3QgIiRlbmFibGVfcG9sYXJfZ3JpZCIgIT0gbm87IHRoZW4KICBBQ19NU0dfUkVTVUxUKFsg
IFN1cHBvcnQgZm9yIHBvbGFyIGdyaWRkZWQgc3VyZmFjZXM6ICAgICAgICAgICAgICB5ZXNdKQpl
bHNlCiAgQUNfTVNHX1JFU1VMVChbICBTdXBwb3J0IGZvciBwb2xhciBncmlkZGVkIHN1cmZhY2Vz
OiAgICAgICAgICAgICAgbm8gKC0tZW5hYmxlLXBvbGFyLWdyaWQgdG8gZW5hYmxlKV0pCmZpCgpp
ZiB0ZXN0ICIkZW5hYmxlX2Z1bmN0aW9uX2Jsb2NrcyIgPSB5ZXM7IHRoZW4KICBBQ19NU0dfUkVT
VUxUKFsgIFN1cHBvcnQgZnVuY3Rpb24gYmxvY2tzOiAgICAgICAgICAgICAgICAgICAgICAgICB5
ZXNdKQplbHNlCiAgQUNfTVNHX1JFU1VMVChbICBTdXBwb3J0IGZ1bmN0aW9uIGJsb2NrczogICAg
ICAgICAgICAgICAgICAgICAgICAgbm8gKC0tZW5hYmxlLWZ1bmN0aW9uLWJsb2NrcyB0byBlbmFi
bGUpXSkKZmkKCmlmIHRlc3QgIiRlbmFibGVfY2hpX3NoYXBlcyIgIT0gbm87IHRoZW4KICBBQ19N
U0dfUkVTVUxUKFsgIFN1cHBvcnQgY29uY2F2ZSBodWxsczogICAgICAgICAgICAgICAgICAgICAg
ICAgICB5ZXNdKQplbHNlCiAgQUNfTVNHX1JFU1VMVChbICBTdXBwb3J0IGNvbmNhdmUgaHVsbHM6
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm8gKC0tZW5hYmxlLWNoaS1zaGFwZXMgdG8gZW5h
YmxlKV0pCmZpCgpBQ19NU0dfUkVTVUxUKFtdKQpBQ19NU0dfUkVTVUxUKFtnbnVwbG90IHdpbGwg
aW5zdGFsbCB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbWF0ZXJpYWxzOl0pCkFDX01TR19SRVNV
TFQoW10pCgppZiB0ZXN0ICIkd2l0aF9sYXRleCIgIT0gbm87IHRoZW4KICBBQ19NU0dfUkVTVUxU
KFsgIFRlWCBmaWxlcyB3aWxsIGJlIGluc3RhbGxlZCBpbiAkVEVYRElSXSkKICBBQ19NU0dfUkVT
VUxUKFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVzZSAtLXdpdGgtdGV4ZGlyPURJ
UiB0byBjaGFuZ2UpXSkKZWxzZQogIEFDX01TR19SRVNVTFQoWyAgVGVYIGZpbGVzIHdpbGwgbm90
IGJlIGluc3RhbGxlZF0pCmZpCkFDX01TR19SRVNVTFQoWyAgUG9zdFNjcmlwdCBwcm9sb2d1ZSBm
aWxlczogJEdJSERJUi9Qb3N0U2NyaXB0L10pCkFDX01TR19SRVNVTFQoWyAgSGVscCBmaWxlOiAk
R0lIRElSL2dudXBsb3QuZ2loXSkKCkFDX01TR19SRVNVTFQoW10pCgpkbmwgZW5kIGNvbmZpZyBy
ZXBvcnQKCmRubCBlbmQgY29uZmlndXJlLmluCg==
--0000000000008940950639a948cd
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--0000000000008940950639a948cd
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gnuplot-beta mailing list
[email protected]
Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-beta

--0000000000008940950639a948cd--