GNU bug report logs - #52319
imenu not detecting every bash function

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

Package: emacs; Reported by: fatiparty@HIDDEN; merged with #21477, #52928, #54265, #56003, #57255, #58554; dated Sun, 5 Dec 2021 22:03:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Forcibly Merged 21477 52319 52928 54265 56003 57255 58554. Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Forcibly Merged 21477 52319 52928 54265 56003 57255. Request was from Lars Ingebrigtsen <larsi@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Forcibly Merged 21477 52319 52928 54265 56003. Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Forcibly Merged 21477 52319 52928 54265. Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Forcibly Merged 21477 52319 52928. Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Merged 52319 52928. Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 52319) by debbugs.gnu.org; 18 Dec 2021 22:40:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 18 17:40:59 2021
Received: from localhost ([127.0.0.1]:44370 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1myiNv-0001JU-1y
	for submit <at> debbugs.gnu.org; Sat, 18 Dec 2021 17:40:59 -0500
Received: from w1.tutanota.de ([81.3.6.162]:41766)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <fatiparty@HIDDEN>) id 1myg5N-0001PM-6q
 for 52319 <at> debbugs.gnu.org; Sat, 18 Dec 2021 15:13:41 -0500
Received: from w3.tutanota.de (unknown [192.168.1.164])
 by w1.tutanota.de (Postfix) with ESMTP id EDA68FA04A8;
 Sat, 18 Dec 2021 20:13:34 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1639858414; 
 s=s1; d=tutanota.com;
 h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender;
 bh=HNgjSl8ZsxXU5ixLL1z39EYwvHMCf7TKAlFlqD6sXwI=;
 b=2w+FbD7e0BaekePVsGxAC4GdakD6932xaLPLlYy3YBZdtAE6jDBdHcoAe4Klv40d
 oLnACyJktx9vu+dcC2HQPsUNOwVw5MaeQgCpGvC63xYIR0lhqKyPpI0mbas1rTLGunx
 A4rtYPSRDgwqDmv8t8P60btvqpuGN4uq41Ya/TwzOypJovUqsR9c6dfVWt933K0Bjuz
 kNj9l1JQbWTIZJIDNafTKlQGR1Xcxm1auWgnfFn5im6KB+VKmZdo+o/qKQAL2r1WGfU
 zFKjRZoQVPB+dcUmbTPYbgnlgW0ml0g0yXE9kagj3cgkebl4F7KQhL86/mFM88ORa0E
 BWItlTv9vw==
Date: Sat, 18 Dec 2021 21:13:34 +0100 (CET)
From: fatiparty@HIDDEN
To: =?UTF-8?Q?Daniel_Mart=C3=ADn?= <mardani29@HIDDEN>
Message-ID: <MrEAPEy--3-2@HIDDEN>
In-Reply-To: <m1k0gieki9.fsf@HIDDEN>
References: <MqBaeNn--3-2@HIDDEN> <m1k0gieki9.fsf@HIDDEN>
Subject: bug#52319: imenu not detecting every bash function
MIME-Version: 1.0
Content-Type: multipart/alternative; 
 boundary="----=_Part_75073_622118904.1639858414960"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 52319
X-Mailman-Approved-At: Sat, 18 Dec 2021 17:40:57 -0500
Cc: 52319 <52319 <at> debbugs.gnu.org>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

------=_Part_75073_622118904.1639858414960
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable


No updates on this yet?



Dec 6, 2021, 10:48 by mardani29@HIDDEN:

> fatiparty--- via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs@HIDDEN> writes:
>
>> I am loading the attached bash file but imenu is not showing all the
>> declared bash functions in the file, it only shows PF(), PFB(), PF2(),
>> and pfm.=C2=A0 This has also the consequence of not displaying all
>> functions in speedbar.
>>
>> File is attached.
>>
>> Fati
>>
>
> The problem lies in that some of the functions have a hyphen in their
> name (for example "linge-newline ()").  Something like "linge_newline
> ()" should be detected correctly.  If I'm not mistaken, POSIX requires
> that shell function names only contain alphanumeric characters or an
> underscore; support for hyphens could be a Bash extension.
>
> One way to fix the issue could be to extend the
> sh-imenu-generic-expression alist in sh-script.el with a specific regexp
> for bash that accounts for hyphens (and any other character that Bash
> may support in function names).
>


------=_Part_75073_622118904.1639858414960
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF-8=
">
  </head>
  <body>
<div><br></div><div>No updates on this yet?<br></div><div><br></div><div><b=
r></div><div><br></div><div>Dec 6, 2021, 10:48 by mardani29@HIDDEN:<br></=
div><blockquote class=3D"tutanota_quote" style=3D"border-left: 1px solid #9=
3A3B8; padding-left: 10px; margin-left: 5px;"><div>fatiparty--- via "Bug re=
ports for GNU Emacs, the Swiss army knife of<br></div><div>text editors" &l=
t;bug-gnu-emacs@HIDDEN&gt; writes:<br></div><blockquote><div>I am loading =
the attached bash file but imenu is not showing all the<br></div><div>decla=
red bash functions in the file, it only shows PF(), PFB(), PF2(),<br></div>=
<div>and pfm.&nbsp; This has also the consequence of not displaying all<br>=
</div><div>functions in speedbar.<br></div><div><br></div><div>File is atta=
ched.<br></div><div><br></div><div>Fati<br></div></blockquote><div><br></di=
v><div>The problem lies in that some of the functions have a hyphen in thei=
r<br></div><div>name (for example "linge-newline ()").  Something like "lin=
ge_newline<br></div><div>()" should be detected correctly.  If I'm not mist=
aken, POSIX requires<br></div><div>that shell function names only contain a=
lphanumeric characters or an<br></div><div>underscore; support for hyphens =
could be a Bash extension.<br></div><div><br></div><div>One way to fix the =
issue could be to extend the<br></div><div>sh-imenu-generic-expression alis=
t in sh-script.el with a specific regexp<br></div><div>for bash that accoun=
ts for hyphens (and any other character that Bash<br></div><div>may support=
 in function names).<br></div></blockquote><div dir=3D"auto"><br></div>  </=
body>
</html>

------=_Part_75073_622118904.1639858414960--




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

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


Received: (at 52319) by debbugs.gnu.org; 8 Dec 2021 09:27:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 08 04:27:26 2021
Received: from localhost ([127.0.0.1]:39549 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mutEM-0003Iz-I0
	for submit <at> debbugs.gnu.org; Wed, 08 Dec 2021 04:27:26 -0500
Received: from w1.tutanota.de ([81.3.6.162]:60026)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <fatiparty@HIDDEN>) id 1murOb-0000To-8Z
 for 52319 <at> debbugs.gnu.org; Wed, 08 Dec 2021 02:29:48 -0500
Received: from w3.tutanota.de (unknown [192.168.1.164])
 by w1.tutanota.de (Postfix) with ESMTP id E97B8FBF613;
 Wed,  8 Dec 2021 07:29:36 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1638948576; 
 s=s1; d=tutanota.com;
 h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender;
 bh=+pcseve/nKGJsPvvrdayOGOSJImzuDgvBacLYhFKr+I=;
 b=RJUutUqs2s5pL7gDCTjyRnoOEt5S3zct03hOc/URcY7IMbHgISiurxhtrX55kSsL
 R4zhAIbcmSsELx3vU1p3OGFh5h28GUf18sm0wLUXnr+A/wAFmhbOI3CvlIY/WNy5sTh
 2APbuAX55h2ovmD8OUmkjwcjF0YmCzodayY7s4v0Sc+ZcHek38lEmRPtau64S/U2SKD
 c4erEA3BFyeQb1iYn76pxYxYAc0yl//QwxqhDuQQh+V15tDCito9nY7cGG8CTv7OnB2
 lT6MMIHxCon8qCKNPtE8Tt0wz3nCHCwAgvv238dkt3dJBklCE81U7J2JZn6iBq3jhzP
 PRDhG8WeWQ==
Date: Wed, 8 Dec 2021 08:29:36 +0100 (CET)
From: fatiparty@HIDDEN
To: =?UTF-8?Q?Daniel_Mart=C3=ADn?= <mardani29@HIDDEN>
Message-ID: <MqNwdhf--3-2@HIDDEN>
In-Reply-To: <m1k0gieki9.fsf@HIDDEN>
References: <MqBaeNn--3-2@HIDDEN> <m1k0gieki9.fsf@HIDDEN>
Subject: bug#52319: imenu not detecting every bash function
MIME-Version: 1.0
Content-Type: multipart/alternative; 
 boundary="----=_Part_253884_2030584612.1638948576940"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 52319
X-Mailman-Approved-At: Wed, 08 Dec 2021 04:27:18 -0500
Cc: 52319 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

------=_Part_253884_2030584612.1638948576940
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Dec 5, 2021, 22:48 by bug-gnu-emacs@HIDDEN:

> fatiparty--- via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs@HIDDEN> writes:
>
>> I am loading the attached bash file but imenu is not showing all the
>> declared bash functions in the file, it only shows PF(), PFB(), PF2(),
>> and pfm.=C2=A0 This has also the consequence of not displaying all
>> functions in speedbar.
>>
>> File is attached.
>>
>> Fati
>>
>
> The problem lies in that some of the functions have a hyphen in their
> name (for example "linge-newline ()").  Something like "linge_newline
> ()" should be detected correctly.  If I'm not mistaken, POSIX requires
> that shell function names only contain alphanumeric characters or an
> underscore; support for hyphens could be a Bash extension.
>
> One way to fix the issue could be to extend the
> sh-imenu-generic-expression alist in sh-script.el with a specific regexp
> for bash that accounts for hyphens (and any other character that Bash
> may support in function names).
>
It would help me a lot if I can see all supported bash function names in th=
e speedbar.
Currently this is slowing me down when going through the code base.



------=_Part_253884_2030584612.1638948576940
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF-8=
">
  </head>
  <body>
<div>Dec 5, 2021, 22:48 by bug-gnu-emacs@HIDDEN:<br></div><blockquote clas=
s=3D"tutanota_quote" style=3D"border-left: 1px solid #93A3B8; padding-left:=
 10px; margin-left: 5px;"><div>fatiparty--- via "Bug reports for GNU Emacs,=
 the Swiss army knife of<br></div><div>text editors" &lt;bug-gnu-emacs@gnu.=
org&gt; writes:<br></div><blockquote><div>I am loading the attached bash fi=
le but imenu is not showing all the<br></div><div>declared bash functions i=
n the file, it only shows PF(), PFB(), PF2(),<br></div><div>and pfm.&nbsp; =
This has also the consequence of not displaying all<br></div><div>functions=
 in speedbar.<br></div><div><br></div><div>File is attached.<br></div><div>=
<br></div><div>Fati<br></div></blockquote><div><br></div><div>The problem l=
ies in that some of the functions have a hyphen in their<br></div><div>name=
 (for example "linge-newline ()").  Something like "linge_newline<br></div>=
<div>()" should be detected correctly.  If I'm not mistaken, POSIX requires=
<br></div><div>that shell function names only contain alphanumeric characte=
rs or an<br></div><div>underscore; support for hyphens could be a Bash exte=
nsion.<br></div><div><br></div><div>One way to fix the issue could be to ex=
tend the<br></div><div>sh-imenu-generic-expression alist in sh-script.el wi=
th a specific regexp<br></div><div>for bash that accounts for hyphens (and =
any other character that Bash<br></div><div>may support in function names).=
<br></div></blockquote><div dir=3D"auto">It would help me a lot if I can se=
e all supported bash function names in the speedbar.<br></div><div dir=3D"a=
uto">Currently this is slowing me down when going through the code base.<br=
></div><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div>  </body>
</html>

------=_Part_253884_2030584612.1638948576940--




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

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


Received: (at 52319) by debbugs.gnu.org; 5 Dec 2021 22:48:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 05 17:48:26 2021
Received: from localhost ([127.0.0.1]:59962 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mu0J0-0002C0-JD
	for submit <at> debbugs.gnu.org; Sun, 05 Dec 2021 17:48:26 -0500
Received: from sonic308-18.consmr.mail.ir2.yahoo.com ([77.238.178.146]:43267)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mardani29@HIDDEN>) id 1mu0Ix-0002Bj-Ie
 for 52319 <at> debbugs.gnu.org; Sun, 05 Dec 2021 17:48:25 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.es; s=s2048;
 t=1638744496; bh=biYF0zsRwjannv+/7ot5UbPEcbzLowRB+aqsfBtvS7Y=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To;
 b=BS5oxXEd9/AIek3qpF2hNvd+kcWHvr54KhW9AiBIPlMjlFNRo2LxZB5zrWfMQX9Nuj8nLDOUQ+vir9QQC2ci+UIE5/xtB90Z6lW6W852p1pCWbj+hLDL5qXiGhGigeqx/hGfIQUfMhIbqLlZtUPZBJyhR79L/66YLj0eBBbZj70XQh/ukqJGzlluVgMXbQvnWRv5WubIDy3r739Eu1024EN+HDcGZ+xwwxBCVKJQDxoVeuPvwCOXlFplxmRm1en2RXaTDs/I6VmxaV4Sf8fGNuftTWF4ZpdzVZPe+z1PYbsZkiKX6Jqw1YQS/IrnvKgT8RZjQ0nSCAcHJVBeRzLTWA==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;
 t=1638744496; bh=3Zh/OQ3qKNZrVh+7C127+iL5VNQDyxFK8rv6ZbCEN/c=;
 h=X-Sonic-MF:From:To:Subject:Date:From:Subject;
 b=EZ5NSw8ZlRmIOPjXBB6zQMf2vPv4F439WTcSHbmKFmz6KVH8+CT5cDVej5MwK1aVAQA8TNmYyQ8dEgAeG4UlxerrCgwXcX3W7a/cqxGvaJ7IfV/KoR9Zy4A7/i5NoXLSI6UkVBRGrIH7mo6iCP6HlI7Fcc8fxcLzdlqgDO9Vl8PgGQUs2BhwIzw52HhZRCLYLU7Ax2JUISlqkck0wF2Ri2lNL0ApEkb3yLSy09V5ulle0EnvxWpfQZwPIgsWUYQmyp3RsjD5h8uW/pEKmqiLfKfa2gQhbZhsbgrbCqvP6OK+w8FKKByqPQ3pMFiJGvS34nqTa9Uqm7VvWhSczgcoDw==
X-YMail-OSG: d0vOO0MVM1nfIXL9ktHCl_4hXIM9pAWKaY7jkxHt_a2ZcZe_yTkbOyskO8oiD3V
 mi8_8zd.sbJWyGhId0_UEupfSEYFgJfB3r0d7v2nAe9bNCwuS.DwzVRuhujo3f1esO9ff719b2Mp
 8zFLbee6WWK5Zo3xBg85mdCFCvMDtqBH0trw1HGUtx2vZPyMT.Ky_abVW3Y5ourmzObeBNWMQb03
 ajLgKqE.Ewz7hToUMGReVNE0GBJb1ijXTenAS5WzLAxwxuuI6WduEL8riit1nExcUrNvpsooitgC
 337xPmkb9FHA.1rmf_OSzm400B0WTElbRBRNlo9oSCIqI805NUfOZaWopfE_hsxwxyyXzRPLcciD
 bMVMnMc4ltb_wmczV.WMICW6r39EDNVj2xb8RFSDNocnw62Q9hVZ5_AbYwkwmHSB7x3NF3XqSiw9
 1GT29Z8zWHMpCqrW.KZKEgwWJgHhNutBPX7Xdtw7RE3y0Dyb4ASBBXTdTej9Jp0zNK4rts2oBzVn
 iXvUAAYXQLQO0zpEK9GpXow30PwAB5R9kdEv8AU01bteLFJIxKrqUspzOklvxLFZUl0gUUinrB.f
 NRLZbuaumWhalS6xncQvjkneae8zoLHDC.tDNIuX3uHldqvPQgIHnH4dmvjMF1__bulnw3ew.qDA
 uI0..TKPQB4ky8FadX8niuSDQeDx_OXGBvVpiAVeKQ4W91i98pqoqYPgvuDii62nzjgRM0SZSWHz
 Rg45hWxl0Y6Oq.wVxqSkNy3dEoc0h7do7xpiYCzB99zKHNQgydKLAm6xKBt.l_MJWFXHOVFaGXR3
 MPMfNq3H33hIHSgW4StwazkAhwJ475rjCSCf8mSxIZ9YRfZcO0sXPLLM5hk4m4kS5O2bOIMnURA3
 4fNX4tXI7XkaH6PsDdooSNubJ4uiEJL1eWiEq6RcOav4GYLhei9_a6fW7upGACjfrlA_z3C0SkiQ
 9nGMeRL4zLSHKEF5_pkh0mIlDL1fW4F.ZzZPKhce06Jhn9II6QbtIy_J6ZR0j7sGG4XO6q3sndo_
 2AXmim8SDHFQz6QMN4z2rxvV.MFhGlkOYRNekQWtKcQBAGAgDZM4SFgIPhrafTWGG9mKBgXApALw
 51hcKd77vNaV0j75e7yY0tIP9QgOARdxUbG6Mza6LcWfShKZbMJThFnPdOAu88puaGR3jtPQZ30x
 8pOUdocNbK33i88HoWX3jERw2V9FztccijfnjyTowvU6x.xK8HIvB6rSKoCGX0p16i9RpNXoF9vy
 qu_lTlUliln_5o5W0BuaceLDJh4lOAGW2_ftqXGWVCQiQyMxnYfHGexzjvyShRUWU2LSJZ7dcdR9
 VqjYE.hgxeTHG5fL43xOpFHaKViMADEaxYbaTBdLG8ZnPuHi3DG4QScRQSi4F0CwXWHpStr8QQj2
 gu7Lurw4LFwCJO.ngkG_Hzd4Fgmq6c2iI53SouDgcGB.TBYyLlMQlifjPiOn02qE4Ooi0U.xRMU2
 OwK4nz5R6q6cHj7sxdyhxnnyw65kAMf0vB4D9YgzBkm_nlVmszFj8xI6j1_Vr02CUvPuhYz4Gh1f
 KdQwkIut8FlddNkHGPZsJ2Sk1Th98o.bM62zDK6vGTxBBpKJxEbd430AF_thlT7I1p3tZlsolJA5
 tlig18nuHeD5k1WW3G.FUCXx.dPRaRXpc2B5gVF8YT4AOBF1wO8wukc5qMx_GpaLyyaWldgvwuF.
 BfN0UDeZ8zy4V7pE.ERLr5yZfGhWpoJ8hIqET3v9LTxIXMbdl8LBdLsoiyg1yZ2zdXZDlx0XcO2q
 Ko3ML5S858KjD_cPiWtm0J3Vbn_hRXtqruT9Ov7Zelz6kAIyM.AZ28TPbYaSiVMukRiEhpSyaICV
 CHzPHTD2su0.1hnEzL.5qyCq_DSfuiKL17tDZDruLMQ1jkourXZnT5p3CwszNNLEsunCJ4qCvSy7
 Npnv6alv.8DXzZB8VDr1_hN.fVMNthwmoLWJG5xKk4UOJFIRvb8dSS28_hvKTIFpJGjnW2f29KNj
 LFutEG.c_dWml8PCSfUpHfiCK8iCziySe8i5.Q128DrPZBTMoaSxNdfxT80QNCioEOne6vw8m1TB
 4KpxkHgTUoMnJAbqAI49fj996eWlabIO_aYHaZqCh8Sg8beAsUrHdQW__yb6AxV8EtWU42gn0l5O
 tdzE.x9Uau_0Z7dLcp0HZm5ZEnmFMUmMJqN4L9gY0aIi_PteY5Nok.1SiHZWktESw5y5Q..ezmlH
 p6Ijz6lZBcw71G7UbkT4FDsdvS8YO76mJF1vUDO8IsCzZjCB0rHasx8.ZVwatrE4HyA--
X-Sonic-MF: <mardani29@HIDDEN>
Received: from sonic.gate.mail.ne1.yahoo.com by
 sonic308.consmr.mail.ir2.yahoo.com with HTTP; Sun, 5 Dec 2021 22:48:16 +0000
Received: by kubenode506.mail-prod1.omega.ir2.yahoo.com (VZM Hermes SMTP
 Server) with ESMTPA ID e182d6e816b60ee01985c05a1668b91b; 
 Sun, 05 Dec 2021 22:48:15 +0000 (UTC)
From: =?utf-8?Q?Daniel_Mart=C3=ADn?= <mardani29@HIDDEN>
To: 52319 <at> debbugs.gnu.org
Subject: Re: bug#52319: imenu not detecting every bash function
References: <MqBaeNn--3-2@HIDDEN>
Date: Sun, 05 Dec 2021 23:48:14 +0100
In-Reply-To: <MqBaeNn--3-2@HIDDEN> (fatiparty's message of "Sun, 5 Dec
 2021 22:58:06 +0100 (CET)")
Message-ID: <m1k0gieki9.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (darwin)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: WebService/1.1.19306
 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo
Content-Length: 949
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 52319
Cc: fatiparty@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.8 (/)

fatiparty--- via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs@HIDDEN> writes:

> I am loading the attached bash file but imenu is not showing all the
> declared bash functions in the file, it only shows PF(), PFB(), PF2(),
> and pfm.=C2=A0 This has also the consequence of not displaying all
> functions in speedbar.
>
> File is attached.
>
> Fati

The problem lies in that some of the functions have a hyphen in their
name (for example "linge-newline ()").  Something like "linge_newline
()" should be detected correctly.  If I'm not mistaken, POSIX requires
that shell function names only contain alphanumeric characters or an
underscore; support for hyphens could be a Bash extension.

One way to fix the issue could be to extend the
sh-imenu-generic-expression alist in sh-script.el with a specific regexp
for bash that accounts for hyphens (and any other character that Bash
may support in function names).




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

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


Received: (at submit) by debbugs.gnu.org; 5 Dec 2021 22:02:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 05 17:02:47 2021
Received: from localhost ([127.0.0.1]:59897 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mtzao-000129-Kb
	for submit <at> debbugs.gnu.org; Sun, 05 Dec 2021 17:02:46 -0500
Received: from lists.gnu.org ([209.51.188.17]:53734)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <fatiparty@HIDDEN>) id 1mtzWN-0000tT-Bw
 for submit <at> debbugs.gnu.org; Sun, 05 Dec 2021 16:58:11 -0500
Received: from eggs.gnu.org ([209.51.188.92]:54952)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <fatiparty@HIDDEN>)
 id 1mtzWM-0004Z9-BH
 for bug-gnu-emacs@HIDDEN; Sun, 05 Dec 2021 16:58:11 -0500
Received: from w1.tutanota.de ([81.3.6.162]:44332)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <fatiparty@HIDDEN>)
 id 1mtzWK-0005ag-7L
 for bug-gnu-emacs@HIDDEN; Sun, 05 Dec 2021 16:58:10 -0500
Received: from w3.tutanota.de (unknown [192.168.1.164])
 by w1.tutanota.de (Postfix) with ESMTP id 70BA4FA0325
 for <bug-gnu-emacs@HIDDEN>; Sun,  5 Dec 2021 21:58:06 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1638741486; 
 s=s1; d=tutanota.com;
 h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender;
 bh=iZmHahjUjyllwewx5u2JdbETKYfDDyDdbbcHvrwZ7RU=;
 b=uDPtVxcUTdY/9843X/9nkHWuYKpazzvap4cEOQq4WrgV0zCB+pQFDhD+juOw51mX
 52zm5AMRcDgS5iLN6V68743fAy4jrlnK2K8L0wOkpP+bWQ6WKTT4brIMT2u9/h+7kJU
 FR7EOCW3fXr2EBBa248AElMqyxqVSHjmy1BZK0FAHiu6tngsPSjkellpmMuKZ+4LYkM
 +64pSHwkhfiCc3Ci8Y7/BOK2T5eOPagPSxMdYGLlAe36+8KYLWbe8yzo3SOypfz0Ncc
 TPmdsi2s5Fiw4qi9mxYdKnPpDccbog91l6vmWIDxvWliIMsN1+3ssgVjH5acsQ64Nop
 lpe7dvjXLw==
Date: Sun, 5 Dec 2021 22:58:06 +0100 (CET)
From: fatiparty@HIDDEN
To: bug-gnu-emacs@HIDDEN
Message-ID: <MqBaeNn--3-2@HIDDEN>
Subject: imenu not detecting every bash function
MIME-Version: 1.0
Content-Type: multipart/mixed; 
 boundary="----=_Part_88295_26866892.1638741486440"
Received-SPF: pass client-ip=81.3.6.162; envelope-from=fatiparty@HIDDEN;
 helo=w1.tutanota.de
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001,
 RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Sun, 05 Dec 2021 17:02:46 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

------=_Part_88295_26866892.1638741486440
Content-Type: multipart/alternative; 
	boundary="----=_Part_88296_1510268902.1638741486440"

------=_Part_88296_1510268902.1638741486440
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable


I am loading the attached bash file but imenu is not showing all the declar=
ed bash functions in the file, it only shows PF(), PFB(), PF2(), and pfm.=
=C2=A0 This has also the consequence of not displaying all functions in spe=
edbar.

File is attached.

Fati

------=_Part_88296_1510268902.1638741486440
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
<div><br></div><div>I am loading the attached bash file but imenu is not showing all the declared bash functions in the file, it only shows PF(), PFB(), PF2(), and pfm.&nbsp; This has also the consequence of not displaying all functions in speedbar.<br></div><div dir="auto"><br></div><div dir="auto">File is attached.<br></div><div dir="auto"><br></div><div dir="auto">Fati<br></div>  </body>
</html>

------=_Part_88296_1510268902.1638741486440--

------=_Part_88295_26866892.1638741486440
Content-Type: application/x-shellscript; name=linge-copy.sh
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=linge-copy.sh

IyEvYmluL2Jhc2gKCiMgTW9kZTogcmVjCiMgRmlsZTogbGluZ2UucmMgVmVyc2lvbiAxLjAKIyBC
cmllZjogYmFzaCBjb21tYW5kcyBjYWxsZWQgZnJvbSAuYmFzaHJjIGZpbGUuCiMgQXV0aG9yOiBT
dHJhdGVnaXN0IENocmlzdG9waGVyIERpbWVjaAojIENvcHlyaWdodDogMjAyMSBTdHJhdGVnaXN0
IENocmlzdG9waGVyIERpbWVjaAojIExpY2Vuc2U6IEdudSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSAoR251IEFHUEwpCiMgKyBWZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb24uCiMg
IyBFbmQgb2YgcmVjCgojIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgojIyBoMSAqIENvcHlpbmcgQ29uZGl0aW9ucwoKIyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gICAgICAKIyAgX18gX19fIF8gX18gXyAg
XyAgIF9fIF9fXyBfIF8gIF9ffCB8XyBfICAKIyAvIF8vIF8gXCAnXyBcIHx8IHwgLyBfLyBfIFwg
JyBcLyBfYCB8ICcgXCAKIyBcX19cX19fLyAuX18vXF8sIHwgXF9fXF9fXy9ffHxfXF9fLF98X3x8
X3wKIyAgICAgICAgfF98ICAgfF9fLyAgICAgICAgICAgICAgICAgICAgICAgICAKCiMgVGhpcyBm
aWxlIGJlbG9uZ3MgdG8gQmVoaXN0dW4sIGEgR251IFBhY2thZ2UuCgojIEJlaGlzdHVuIGlzIGZy
ZWUgc29mdHdhcmUuICBZb3UgY2FuIHJlLWRpc3RyaWJ1dGUgQmVoaXN0dW4gYXMgaXMsIG9yCiMg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR251IEFmZmVybyBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCiMgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IGVpdGhlciB2ZXJzaW9uIDMgb2YKIyB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KCiMgQSBjb3B5IG9mIHRoZSBsaWNlbnNlIGlzIGluY2x1ZGVkIGlu
IHRoZSBmaWxlICJnbnUtLWFncGwudGV4aSIuICBJZgojIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu
dS5vcmcvbGljZW5zZXMvPi4KCiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIyBoMSAqIENvbW1lbnRhcnk6CgojIFRoZSAuYmFz
aHJjIGZpbGUgcnVucyBldmVyeSBhbiBpbnRlcmFjdGl2ZSBzaGVsbCBpcyBsYXVuY2hlZC4KIyBC
YXNoIGFsbG93cyBoeXBoZW5zIGluIGZ1bmN0aW9uIG5hbWVzLCBidXQgbm90IGluIC0tcG9zaXgg
bW9kZS4KCiMgQSBudW1iZXIgb2YgY2hlY2tib3hlcyBhcmUgZGlzcGxheWVkIGluIHRoaXMgZmls
ZS4gIFRoZXkgc3BsaXQgdGhlCiMgc2V0dXAgdGFza3MgZm9yIHRoZSB1c2VyIGludG8gc2ltcGxl
IHN0ZXBzLiAgV2hlbiBhIGpvYiBpcwojIGNvbXBsZXRlZCwgdHlwZSB0aGUgQ2FwaXRhbCBVcHBl
cmNhc2UgWCBpbnNpZGUgdGhlIGNoZWNrYm94LAojIGkuZS4gY2hhbmdpbmcgdGhlIGNoZWNrYm94
IHRhZyBmcm9tIFsgXSB0byBbWF0uICBUaGUgJ1swLzVdJyBpbiB0aGUKIyBUT0RPIE91dGxpbmUg
aW5kaWNhdGVzIGhvdyBtYW55IGpvYnMgd2l0aCBjaGVja2JveGVzIGhhdmUgYmVlbgojIGNvbXBs
ZXRlZCwgYW5kIHRoZSB0b3RhbCBudW1iZXIgb2YgY2hlY2tib3hlcyBwcmVzZW50LiAgT25jZSBh
bGwKIyBjaGVja2JveGVzIGFyZSBjb21wbGV0ZWQsIGNoYW5nZSB0aGUgIlRPRE8iIEl0ZW0gd2l0
aCBhICJET05FIiBJdGVtCiMgYnkgcmVtb3ZpbmcgdGhlIHdvcmQgIlRPRE8iIHdpdGggIkRPTkUi
LgoKIyAqIFRPRE8gVXNlciBkZWZpbmVkIHNldHVwIGpvYnMgWzAvNV0KIyAgIC0gWyBdIGRpcmNv
bG9ycyAtIFNldCBkaXJlY3RvcnkgcGF0aCBhbmQgZmlsZSBuYW1lCiMgICAtIFsgXSB4bW9kbWFw
IC0gU2V0IGRpcmVjdG9yeSBwYXRoIGFuZCBmaWxlIG5hbWUKIyAgICAgICAgIEludGVyY2hhbmdl
cyBDdHJsIHdpdGggQWx0IGtleSBieSBtb2RpZnlpbmcga2V5bWFwcyBpbiBYb3JnLgojICAgLSBb
IF0gU2V0IHN0YXJ0aW5nIGRpcmVjdG9yeSBmb3IgdGhlIENvbW1hbmQgTGluZSBUZXJtaW5hbC4K
CiMgQ29kZToKCiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjCgpQRiAoKQp7CiBwcmludGYgIiVzXG4iICIkQCIKfQoKIyArKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKClBGQiAoKQp7CiBsb2Nh
bCAtciBibHU9JCh0cHV0IGJvbGQpJCh0cHV0IHNldGFmIDM5KQogbG9jYWwgLXIgc2dyPSQodHB1
dCBzZ3IwKQogcHJpbnRmICIlcyIgICAiJGJsdSIKIHByaW50ZiAiJXNcbiIgIiRAIiAKIHByaW50
ZiAiJXMiICAgIiRzZ3IiCn0KCiMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrCgpQRjIgKCkKewogcHJpbnRmICIlc1xuXG4iICIkQCIKfQoKIyAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKCmxp
bmdlLWhlYWRpbmctdXNhZ2UgKCkKewogcHJpbnRmICclc1xuJyAibGluZ2UtaGVhZGluZy11c2Fn
ZSAuJCouICQjIgogaWYgKCggJCMgPT0gMCApKTsgdGhlbgogICBQRiAiRGlzcGxheSBhIGhlYWRp
bmciCiAgIGVjaG8KICAgUEYgIiAgbGluZ2UtaGVhZGluZyBbT1BUSU9OU10gSEVBRElORyIKICAg
ZWNobwogICBQRiAiR2VuZXJpYyBQcm9ncmFtIEluZm9ybWF0aW9uIgogICBQRiAiLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIgogICBQRiAiIiAiLXUxICAgQnJpZWYgbGlzdCBvZiBvcHRpb25z
IgogICBQRiAgICAiLXUyICAgQnJpZWYgbGlzdCBvZiBleGFtcGxlcyIKIGZpCgogY2FzZSAkMSBp
bgogICgxKQogICAgIFBGICIgey12IFZCLCAtdj1WQiwgLXZWQiwgLS12ZXJib3NpdHkgVkIsIC0t
dmVyYm9zaXR5PVZCfSIKICAgICBQRiAiIHstaCwgLS1oZWxwfSwgey11LCAtLXVzYWdlfSwgey1W
LCAtLXZlcnNpb259IgogICAgIDs7CiAgKDIpCiAgICAgUEYgIiIgCiAgICAgOzsKIGVzYWMKfQoK
IyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
CmxpbmdlLWhlYWRpbmcgKCkKewogbG9jYWwgLXIgZXRkYXRlPSJWMDEgSnVsIDIwMjEgV2syNyIg
CiBsb2NhbCAtciBhdXRob3I9IlN0cmF0ZWdpc3QgQ2hyaXN0b3BoZXIgRGltZWNoIgoKIGlmICgo
ICQjID09IDAgKSk7IHRoZW4KICAgcHJpbnRmICclc1xuJyAiRGlzcGxheSBoZWFkaW5nIgogICBw
cmludGYgIiVzXG4iICIkZXRkYXRlICRhdXRob3IiCiAgIHByaW50ZiAnJXNcbicgIkludm9rZSBc
YGxpbmdlLWhlYWRpbmcgLWgnIGZvciBkZXRhaWxzLCIKICAgcHJpbnRmICclc1xuJyAib3IgXGBs
aW5nZS1oZWFkaW5nIC11JyBmb3IgYSBzdW1tYXJ5LiIKIGZpCgogbG9jYWwgY29tcGFjdD0wIGVt
cGg9MAogd2hpbGUgKCggJCMgPiAwICkpOyBkbwogICBjYXNlICQxIGluCiAgICAoIi1WInwiLS12
ZXJzaW9uIikKICAgICAgcHJpbnRmICIlc1xuIiAiJGV0ZGF0ZSAkYXV0aG9yIgogICAgICByZXR1
cm4gMAogICAgICA7OwogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgKCIt
diJ8Ii0tdmVyYm9zaXR5IikgIHZiPSIkMiIgOyBzaGlmdCA7IHNoaWZ0IDs7CiAgICAoIi12PSIq
fCItLXZlcmJvc2l0eT0iKikgdmI9IiR7MSMqPX0iIDsgc2hpZnQgMSA7OwogICAgKCItdiIqKSB2
Yj0iJHsxIy12fSIgOyBzaGlmdCAxIDs7CiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAgICAoIi1oInwiLS1oZWxwIikKICAgICAgbGluZ2UtaGVhZGluZy1kZXRhaWxzCiAgICAg
IHJldHVybiAwCiAgICAgIDs7CiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg
ICAoIi11InwiLS11c2FnZSIpCiAgICAgIGlmIFtbICIkMiIgPX4gXlswMTIzNDU2Nzg5XSskIF1d
OyB0aGVuCiAgICAgICAgdXNnPSIkMiIgOyBzaGlmdCA7IHNoaWZ0CiAgICAgICAgcHJpbnRmICcl
c1xuJyAidXNnOiAuJHVzZy4iCiAgICAgICAgbGluZ2UtaGVhZGluZy11c2FnZSAiJHVzZyIKICAg
ICAgZWxzZQogICAgICAgIHNoaWZ0CiAgICAgICAgcHJpbnRmICclc1xuJyAidXNnOiAuJHVzZy4i
CiAgICAgICAgbGluZ2UtaGVhZGluZy11c2FnZSAiJHVzZyIKICAgICAgZmkKICAgICAgcmV0dXJu
IDAKICAgICAgOzsKICAgICgiLXU9Iip8Ii0tdXNhZ2U9IiopCiAgICAgIHVzZz0iJHsxIyo9fSIg
OyBzaGlmdCAxCiAgICAgIGxpbmdlLWhlYWRpbmctdXNhZ2UgIiR1c2ciCiAgICAgIHJldHVybiAw
CiAgICAgIDs7CiAgICAoIi11IiopCiAgICAgIHVzZz0iJHsxIy11fSIgOyBzaGlmdCAxCiAgICAg
IGxpbmdlLWhlYWRpbmctdXNhZ2UgIiR1c2ciCiAgICAgIHJldHVybiAwCiAgICAgIDs7CiAgICAj
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi1jIikgY29tcGFjdD0xIDsgc2hp
ZnQgMSA7OwogICAgKCItZSIpIGVtcGg9MSAgICA7IHNoaWZ0IDEgOzsKICAgICgqKSBicmVhayA7
OwogICBlc2FjCiBkb25lCgogbG9jYWwgLXIgdGl0bD0iJDEiCgogbG9jYWwgbWFyaz0iKiIKIGlm
ICgoICQjID4gMSApKTsgdGhlbiBtYXJrPSIkMiI7IGZpCgogIyBTY291dDogVXNpbmcgOjo6R3Vu
Z2E6RGluIGFzIGlucHV0LCB3aXRoIDogaW5zdGVhZCBvZiBibGFua3MKIGxvY2FsIC1yIHByZWZp
eD0kezElJVshWzpibGFuazpdXSp9ICAjIDo6OgoKICMgdHJpbSBpbnB1dCB0byByZW1vdmUgbGVh
ZGluZyBibGFua3MKIGxvY2FsIC1yIHRyaW1hcmc9JHsxIyIkcHJlZml4In0gICAgICAjICdHdW5n
YTpEaW4nCiAKICMjIFNldCBlbXBoYXNpc2luZyBtYXJrIHVzaW5nICoKICMgIFRoZSAvLyBpbnN0
cnVjdGlvbiByZXBsYWNlcyBhbGwgc2luZ2xlIGNoYXJhY3RlciBtYXRjaGVzIHdpdGggKgogIyAg
VGhlID8gaW5zdHJ1Y3Rpb24gbWF0Y2hlcyBhbGwgc2luZ2xlIGNoYXJhY3RlcnMKIGxvY2FsIC1y
IGVtcGhtcms9IiR7dHJpbWFyZy8vPy8kbWFya30iICAgIyAnKioqKioqKioqJwogCiAoKCBjb21w
YWN0ID09IDAgKSkgJiYgZWNobwogaWYgKCggZW1waCA9PSAxICkpOyB0aGVuCiAgIHByaW50ZiAn
JXNcbiVzXG4nICIkMSIgIiR7cHJlZml4fSR7ZW1waG1ya30iCiBlbHNlCiAgIHByaW50ZiAnJXNc
bicgIiR0aXRsIgogZmkKICgoIGNvbXBhY3QgPT0gMCApKSAmJiBlY2hvCgp9CgphbGlhcyBIREc9
J2xpbmdlLWhlYWRpbmcgLWUnCgojICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwoKbGluZ2UtbmV3bGluZSAoKQp7CiBpbXBsPSJlY2hvIgogaWYg
WyAiJGltcGwiID0gImVjaG8iIF07IHRoZW4gICMgW10gaXMgcG9zaXggc2hlbGwgY29tcGxpYW50
CiAgIGVjaG8KIGVsc2UgICAgCiAgIHByaW50ZiAnJXNcbicgIiIKIGZpCn0KCmFsaWFzIE5XTD0n
bGluZ2UtaGVhZGluZyAtZScKCiMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrCgpsaW5nZV90cms9IiR7SE9NRX0vT3BzdGsvYmluL2d1bmdhZGlu
LTEuMC9saW5nZSIKc291cmNlICIke2xpbmdlX3Rya30vZ3Vuc3RlYnkvbGluZ2UtbnltcGgucmMi
CgojICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IwoKbGluZ2UtZGV0YWlscy1udW1lcmljICgpCnsKIGZtdD0iXG4lc1xuIiBmbXQrPSJcbiIKIHBy
aW50ZiAiJGZtdCIgIlZhbGlkYXRlcyBudW1lcmljIG5vdGF0aW9uLiIgCgogcHJpbnRmICclc1xu
JyBsaW5nZS1udW1lcmljIFtPUFRJT05TXSAKIAogSERHICJGdW5jdGlvbiBEZXRhaWxzIgoKIFBG
ICIgLVYsIC0tdmVyc2lvbiwgLXUsIC0tdXNhZ2UsIC1oLCAtLWhlbHAiCgogUEZIICIgLWYgU1RZ
LCAtLWZtdD1TVFkiCiBQRiAgIiAgICBGb3JtYXQgc3R5bGUuIgoKIFBGSCAiICAgIFNUWSB8IERl
c2NpcHRpb24iCiBQRiAgIiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIgogUEYgICIgICAgRiAgIHwgRml4ZWQtcG9pbnQgbnVtYmVyIG5vdGF0aW9uIgogUEYg
ICIgICAgcEYgIHwgUG9zaXRpdmUgZml4ZWQtcG9pbnQgbm90YXRpb24iCiBQRiAgIiAgICBuRiAg
fCBOZWdhdGl2ZSBmaXhlZC1wb2ludCBub3RhdGlvbiIKIFBGICAiICAgIEUgICB8IEZsb2F0aW5n
LXBvaW50IG51bWJlciBub3RhdGlvbiIKIFBGICAiICAgIHBFICB8IFBvc2l0aXZlIGZsb2F0aW5n
LXBvaW50IG5vdGF0aW9uIgogUEYgICIgICAgbkUgIHwgTmVnYXRpdmUgZmxvYXRpbmctcG9pbnQg
bm90YXRpb24iICIiCgogUEYgIlwkMSBOVU0gIEZpcnN0IG51bWVyaWMgbnVtYmVyLiIKIFBGICJc
JDIgTlVNICBTZWNvbmQgbnVtZXJpYyBudW1iZXIuIgoKfQoKIyArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKCmxpbmdlLXVzYWdlLW51bWVyaWMg
KCkKewogY2FzZSAkMSBpbgogICgxKQogICAgIFBGICIgey1WLCAtLXZlcnNpb259LCB7LWgsIC0t
aGVscH0sIHstdSwgLS11c2FnZX0iCiAgICAgUEYgIiB7LXYgVkIsIC12PVZCLCAtdlZCLCAtLXZl
cmJvc2l0eSBWQiwgLS12ZXJib3NpdHk9VkJ9IgogICAgIFBGICIgey1mIEZSTVQsIC0tZnJtdCBG
Uk1UfSB8IEZSTVQ6IFtJfEZ8cEZ8bkZ8RXxwRXxuRV0iCiAgICAgUEYgIiB7LS1pbXBsIElNUEws
IC0taW1wbD1JTVBMfSB8IElNUEw6IFtyZWdleHB8c2hnbG9iXSIKICAgICBQRiAiIC1vIgogICAg
IDs7CiAgKDIpCiAgICAgSERHICJVc2FnZSIKICAgICBQRjIgIiBQcmludCByZXN1bHQgaW4gdGV4
dCBmb3JtYXQgd2l0aCAtbyIKICAgICBQRiAgIiBsaW5nZS1udW1lcmljIC1vIDIuMTQzICAgICAg
fCBSZXN1bHQ6IDEiCiAgICAgUEYgICIgbGluZ2UtbnVtZXJpYyAtbyAyLjE0M0UrMDcgIHwgUmVz
dWx0OiAxIgogICAgIFBGICAiIGxpbmdlLW51bWVyaWMgLW8gMi4xNDNFLTAyICB8IFJlc3VsdDog
MSIKICAgICBQRiAgIiBsaW5nZS1udW1lcmljIC1vIC1JIDM0ICAgICAgfCBSZXN1bHQ6IDEiCgog
ICAgIGVjaG8KICAgICBQRiAiIHZhbGlkbnVtPVwkKCBsaW5nZS1udW1lcmljIC1vIC1JIDMgKSIK
ICAgICA7OwogICgzKQogICAgIEhERyAiQ29uZGl0aW9uYWwgRXhwcmVzc2lvbiIKICAgICBQRiAi
IG51bT1cIjNcIiIgCiAgICAgUEYgIiBpZiBsaW5nZS1udW1lcmljIC1JIFwiXCRudW1cIiIgCiAg
ICAgUEYgIiB0aGVuIgogICAgIFBGICIgICAjIGNvZGUgaWYgbnVtIGlzIG51bWVyaWMiCiAgICAg
UEYgIiBlbHNlIgogICAgIFBGICIgICAjIGNvZGUgaWYgbnVtIGlzIG5vdCBudW1lcmljIgogICAg
IFBGICIgZmkiCiAgICAgOzsKIGVzYWMKCn0KCiMgOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgpsaW5nZS1udW1lcmljICgpCnsKIGxvY2FsIC1y
IGV0ZGF0ZT0iVjAxIEp1bCAyMDIxIFdrMjciIAogbG9jYWwgLXIgYXV0aG9yPSJTdHJhdGVnaXN0
IENocmlzdG9waGVyIERpbWVjaCIKIAogbG9jYWwgdmI9MSBmbT0iRSIgaW1wbD0icmVnZXhwIgog
bG9jYWwgb3V0dmFsPTAgbGVkZXNjdmFsPTAgZXJybnVtPTAgbGVkZXNjPSgpCgogbG9jYWwgaW5k
aWM9MCAgICMgaW5kaWNhdG9yCiBsb2NhbCBlcnJudW09MSAgIyBudW1lcmljIGVycm9yIGNvZGUK
CiAoKCAkIyA9PSAwICkpICYmIFBGICJJbnZva2UgXGBsaW5nZS1udW1lcmljIC1oJyBmb3IgZGV0
YWlscy4iCiAKIGxvY2FsIG91dHZhbD0wCiB3aGlsZSAoKCAkIyA+IDAgKSk7IGRvCiAgIG9wdD0i
JDEiCiAgIGNhc2UgJG9wdCBpbgogICAgKCItViJ8Ii0tdmVyc2lvbiIpCiAgICAgIHByaW50ZiAi
JXNcbiIgIiRldGRhdGUgJGF1dGhvciIKICAgICAgcmV0dXJuIDAKICAgICAgOzsKICAgICMgLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgiLXYifCItLXZlcmJvc2l0eSIpICB2Yj0i
JDIiIDsgc2hpZnQgOyBzaGlmdCA7OwogICAgKCItdj0iKnwiLS12ZXJib3NpdHk9IiopIHZiPSIk
ezEjKj19Ijsgc2hpZnQgMSA7OwogICAgKCItdiIqKSB2Yj0iJHsxIy12fSI7IHNoaWZ0IDEgOzsK
ICAgICMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgiLWgifCItLWhlbHAiKQog
ICAgICBsaW5nZS1kZXRhaWxzLW51bWVyaWMKICAgICAgcmV0dXJuIDAKICAgICAgOzsKICAgICgi
LXUifCItLXVzYWdlIikKICAgICAgUEYgImxpbmdlLW51bWVyaWMgT1BUSU9OUyBOVU0iCiAgICAg
IGxpbmdlLXVzYWdlLW51bWVyaWMgIiR2YiIKICAgICAgcmV0dXJuIDAKICAgICAgOzsKICAgICMg
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgiLW8iKSBvdXR2YWw9MSA7IHNoaWZ0
IDEgOzsKICAgICgiLS1sZWRlc2MiKSBsZWRlc2N2YWw9MSA7IG91dHZhbD0xIDsgc2hpZnQgMSA7
OwogICAgIyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgogICAgKCItZiJ8Ii0tZnJtdCIp
IGZtPSIkMiIgOyBzaGlmdCA7IHNoaWZ0IDs7CiAgICAoIi1mPSIqfCItLWZybXQ9IiopIGZtPSIk
ezEjKj19IiA7IHNoaWZ0IDEgOzsKICAgICgiLS1pbXBsIikgaW1wbD0iJDIiOyBzaGlmdCA7IHNo
aWZ0IDs7CiAgICAoIi0taW1wbD0iKikgaW1wbD0iJHsxIyo9fSI7IHNoaWZ0IDEgOzsKICAgICMg
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgiLUkiKSAgZm09IkkiICA7IHNoaWZ0
IDEgOzsKICAgICgiLUlwIikgZm09IklwIiA7IHNoaWZ0IDEgOzsKICAgICgiLUluIikgZm09Iklu
IiA7IHNoaWZ0IDEgOzsKICAgICgiLUYiKSAgZm09IkYiICA7IHNoaWZ0IDEgOzsKICAgICgiLUZw
IikgZm09IkZwIiA7IHNoaWZ0IDEgOzsKICAgICgiLUZuIikgZm09IkZuIiA7IHNoaWZ0IDEgOzsK
ICAgICgiLUUiKSAgZm09IkUiICA7IHNoaWZ0IDEgOzsKICAgICgiLUVwIikgZm09IkVwIiA7IHNo
aWZ0IDEgOzsKICAgICgiLUVuIikgZm09IkVuIiA7IHNoaWZ0IDEgOzsKICAgICMgLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgiLS0iKQoJICAgc2hpZnQgMSA7IGJyZWFrIDs7CiAg
ICAoIi0iKikKICAgICAgICAgICBlcnJzdHI9IiA2NCAgfCAkMSBjb21tYW5kIGxpbmUgdXNhZ2Ug
ZXJyb3IiCiAgICAgICAgICAgZXJybnVtPTY0IDsgbGVkZXNjKz0oIiRlcnJzdHIiKQogICAgICAg
ICAgIHNoaWZ0IDEgOzsKICAgICgqKQoJICAgYnJlYWsgOzsKICAgICMgLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4KICAgZXNhYyAgIyBjYXNlIGVuZHMgaGVyZQogZG9uZSAgIyB3aGlsZSBl
bmRzIGhlcmUKCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAjIEltcGxlbWVudGF0aW9uIHVzZXMgUmVndWxhciBFeHByZXNzaW9ucyBvciBH
bG9iYmluZyBQYXR0ZXJucwogCiBpbXBsPSJzaGVsbC1leHRnbG9iIgogaWYgW1sgIiRpbXBsIiA9
PSAic2hlbGwtcmVnZXhwIiBdXTsgdGhlbgogICAjIFVzaW5nIFJlZ3VsYXItRXhwcmVzc2lvbnMK
CiAgICMgRXhwcmVzc2lvbiB8IERlc2NyaXB0aW9uIG9mIFJlZ3VsYXIgRXhwcmVzc2lvbgogICAj
IC0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
IAogICAjIChyZWdleCk/ICAgfCBNYXRjaCB6ZXJvIG9yIG9uZSBvY2N1cnJlbmNlcyBvZiBnaXZl
biByZWdleAogICAjIChyZWdleCkqICAgfCBNYXRjaCB6ZXJvIG9yIG1vcmUgb2NjdXJyZW5jZXMg
b2YgZ2l2ZW4gcmVnZXgKICAgIyAocmVnZXgpKyAgIHwgTWF0Y2ggb25lIG9yIG1vcmUgb2NjdXJy
ZW5jZXMgb2YgZ2l2ZW4gcmVnZXgKCiAgICMgXCsgYXZvaWRzIFJlZ3VsYXIgRXhwcmVzc2lvbiBN
ZXRhLUNoYXJhY3RlciBJbnRlcnByZXRhdGlvbgogICAgIAogICAjIEludGVnZXIgbnVtYmVyIG5v
dGF0aW9uCiAgIGxvY2FsIGl0Zz0nXlstK10/WzAtOV0rJCcKICAgbG9jYWwgcGl0Zz0nXlwrP1sw
LTldKyQnCiAgIGxvY2FsIG5pdGc9J14tWzAtOV0rJCcKIAogICAjIEZpeGVkLVBvaW50IG51bWJl
ciBub3RhdGlvbgogICBsb2NhbCBmeHA9J15bLStdP1swLTldKlsuLF0/WzAtOV0rJCcKICAgbG9j
YWwgcGZ4cD0nXlwrP1swLTldKlsuLF0/WzAtOV0rJCcKICAgbG9jYWwgbmZ4cD0nXi1bMC05XSpb
LixdP1swLTldKyQnCiAKICAgIyBGbG9hdGluZy1Qb2ludCBudW1iZXIgbm90YXRpb24KICAgbG9j
YWwgZmxwPSdeWy0rXT9bMC05XSpbLixdP1swLTldKyhbZUVdWy0rXT9bMC05XSspPyQnCiAgIGxv
Y2FsIHBmbHA9J15cKz9bMC05XSpbLixdP1swLTldKyhbZUVdWy0rXT9bMC05XSspPyQnCiAgIGxv
Y2FsIG5mbHA9J14tWzAtOV0qWy4sXT9bMC05XSsoW2VFXVstK10/WzAtOV0rKT8kJwoKICAgIyBU
aGUgPX4gb3BlcmF0b3IgaW4gZG91YmxlIGJyYWNrZXQgY29uZGl0aW9uYWxzIFtbIF1dLCByZWdh
cmRzIHRoZQogICAjIHJpZ2h0IHNpZGUgYW4gZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9uLgoK
ICAgY2FzZSAkZm0gaW4KICAgICgiSSIpCiAgICAgICAgICAgW1sgIiQxIiA9fiAkaXRnICBdXSAm
JiB7IGluZGljPTEgOyBlcnJudW09MCA7IH0KICAgICAgICAgICBlcnJzdHI9IiAxICAgfCAkMSBm
YWlsZWQgaW50ZWdlciB2YWxpZGF0aW9uIgoJICAgKCggaW5kaWMgIT0gMSApKSAmJiBsZWRlc2Mr
PSgiJGVycnN0ciIpIDs7CiAgICAoIklwIikKICAgICAgICAgICBbWyAiJDEiID1+ICRwaXRnIF1d
ICYmIHsgaW5kaWM9MSA7IGVycm51bT0wIDsgfQogICAgICAgICAgIGVycnN0cj0iIDEgICB8ICQx
IGZhaWxlZCBwb3NpdGl2ZSBpbnRlZ2VyIHZhbGlkYXRpb24iCgkgICAoKCBpbmRpYyAhPSAxICkp
ICYmIGxlZGVzYys9KCIkZXJyc3RyIikgOzsKICAgICgiSW4iKSAKCSAgIFtbICIkMSIgPX4gJG5p
dGcgXV0gJiYgeyBpbmRpYz0xIDsgZXJybnVtPTAgOyB9CiAgICAgICAgICAgZXJyc3RyPSIgMSAg
IHwgJDEgZmFpbGVkIG5lZ2F0aXZlIGludGVnZXIgdmFsaWRhdGlvbiIKICAgICAgICAgICAoKCBp
bmRpYyAhPSAxICkpICYmIGxlZGVzYys9KCIkZXJyc3RyIikgOzsKICAgICgiRiIpIAoJICAgW1sg
IiQxIiA9fiAkZnhwICBdXSAmJiB7IGluZGljPTEgOyBlcnJudW09MCA7IH0KICAgICAgICAgICBl
cnJzdHI9IiAxICAgfCAkMSBmYWlsZWQgZml4ZWQgcG9pbnQgcmVhbCB2YWxpZGF0aW9uIgogICAg
ICAgICAgICgoIGluZGljICE9IDEgKSkgJiYgbGVkZXNjKz0oIiRlcnJzdHIiKSA7OwogICAgKCJG
cCIpIAoJICAgW1sgIiQxIiA9fiAkcGZ4cCBdXSAmJiB7IGluZGljPTEgOyBlcnJudW09MCA7IH0K
ICAgICAgICAgICBlcnJzdHI9IiAxICAgfCAkMSBmYWlsZWQgcG9zaXRpdmUgZml4ZWQgcG9pbnQg
cmVhbCB2YWxpZGF0aW9uIgogICAgICAgICAgICgoIGluZGljICE9IDEgKSkgJiYgbGVkZXNjKz0o
IiRlcnJzdHIiKSA7OyAKICAgICgiRm4iKSAKCSAgIFtbICIkMSIgPX4gJG5meHAgXV0gJiYgeyBp
bmRpYz0xIDsgZXJybnVtPTAgOyB9CiAgICAgICAgICAgZXJyc3RyPSIgMSAgIHwgJDEgZmFpbGVk
IG5lZ2F0aXZlIGZpeGVkIHBvaW50IHJlYWwgdmFsaWRhdGlvbiIKICAgICAgICAgICAoKCBpbmRp
YyAhPSAxICkpICYmIGxlZGVzYys9KCIkZXJyc3RyIikgOzsKICAgICgiRSIpIAoJICAgW1sgIiQx
IiA9fiAkZmxwICBdXSAmJiB7IGluZGljPTEgOyBlcnJudW09MCA7IH0KICAgICAgICAgICBlcnJz
dHI9IiAxICAgfCAkMSBmYWlsZWQgZmxvYXRpbmcgcG9pbnQgcmVhbCB2YWxpZGF0aW9uIgogICAg
ICAgICAgICgoIGluZGljICE9IDEgKSkgJiYgbGVkZXNjKz0oIiRlcnJzdHIiKSA7OwogICAgKCJF
cCIpIAoJICAgW1sgIiQxIiA9fiAkcGZscCBdXSAmJiB7IGluZGljPTEgOyBlcnJudW09MCA7IH0K
ICAgICAgICAgICBlcnJzdHI9IiAxICAgfCAkMSBmYWlsZWQgcG9zaXRpdmUgZmxvYXRpbmcgcG9p
bnQgcmVhbCB2YWxpZGF0aW9uIgogICAgICAgICAgICgoIGluZGljICE9IDEgKSkgJiYgbGVkZXNj
Kz0oIiRlcnJzdHIiKSA7OwogICAgKCJFbiIpCgkgICBbWyAiJDEiID1+ICRuZmxwIF1dICYmIHsg
aW5kaWM9MSA7IGVycm51bT0wIDsgfQogICAgICAgICAgIGVycnN0cj0iIDEgICB8ICQxIGZhaWxl
ZCBuZWdhdGl2ZSBmbG9hdGluZyBwb2ludCByZWFsIHZhbGlkYXRpb24iCiAgICAgICAgICAgKCgg
aW5kaWMgIT0gMSApKSAmJiBsZWRlc2MrPSgiJGVycnN0ciIpIDs7CiAgICAoKikgCgkgICBbWyAi
JDEiID1+ICRmbHAgIF1dICYmIHsgaW5kaWM9MSA7IGVycm51bT0wIDsgfQogICAgICAgICAgIGVy
cnN0cj0iIDEgICB8ICQxIGZhaWxlZCBmbG9hdGluZyBwb2ludCByZWFsIHZhbGlkYXRpb24iCiAg
ICAgICAgICAgKCggaW5kaWMgIT0gMSApKSAmJiBsZWRlc2MrPSgiJGVycnN0ciIpIDs7CiAgIGVz
YWMKCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiBlbGlmIFtbICIkaW1wbCIgPT0gInNoZWxsLWV4dGdsb2IiIF1dOyB0aGVuCiAgICMgVXNp
bmcgU2hlbGwgRXh0ZW5kZWQgR2xvYmJpbmcgUGF0dGVybnMKCiAgICMgUGF0dGVybiAJIHwgRGVz
Y3JpcHRpb24gb2YgRXh0ZW5kZWQgR2xvYnMKICAgIyAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICMgPyhwYXR0ZXJuKSB8IE1h
dGNoIHplcm8gb3Igb25lIG9jY3VycmVuY2VzIG9mIHRoZSBwYXR0ZXJucwogICAjICoocGF0dGVy
bikgfCBNYXRjaCB6ZXJvIG9yIG1vcmUgb2NjdXJyZW5jZXMgb2YgdGhlIHBhdHRlcm5zCiAgICMg
KyhwYXR0ZXJuKSB8IE1hdGNoIG9uZSBvciBtb3JlIG9jY3VycmVuY2VzIG9mIHRoZSBwYXR0ZXJu
cwogICAgIAogICBsb2NhbCBpdGc9Jz8oWy0rXSkrKFswLTldKScKICAgbG9jYWwgaXRnYT0nPyhb
LStdKSsoW1s6ZGlnaXQ6XV0pJyAgIyBhbHRlcm5hdGl2ZSB0byBpdGcKICAgCiAgIGxvY2FsIHBp
dGc9Jz8oKykrKFswLTldKScKICAgbG9jYWwgbml0Zz0nLSsoWzAtOV0pJwoKICAgbG9jYWwgZnhw
PSc/KFstK10pKihbMC05XSk/KFsuLF0pKyhbMC05XSknCiAgIGxvY2FsIHBmeHA9Jz8oKykqKFsw
LTldKT8oWy4sXSkrKFswLTldKScKICAgbG9jYWwgbmZ4cD0nLSooWzAtOV0pPyhbLixdKSsoWzAt
OV0pJwoKICAgbG9jYWwgZmxwPSc/KFstK10pKihbMC05XSk/KFsuLF0pKyhbMC05XSk/KFtlRV0/
KFstK10pKyhbMC05XSkpJwogICBsb2NhbCBwZmxwPSc/KCspKihbMC05XSk/KFsuLF0pKyhbMC05
XSk/KFtlRV0/KFstK10pKyhbMC05XSkpJwogICBsb2NhbCBuZmxwPSctKihbMC05XSk/KFsuLF0p
KyhbMC05XSk/KFtlRV0/KFstK10pKyhbMC05XSkpJwoKICAgIyBUaGUgPT0gYW5kICE9IG9wZXJh
dG9ycyBpbiBkb3VibGUgYnJhY2tldCBjb25kaXRpb25hbHMgW1sgXV0sCiAgICMgcmVnYXJkIHRo
ZSByaWdodCBzaWRlIGFzIGEgR2xvYmJpbmcgUGF0dGVybnMuCgogICBjYXNlICRmbSBpbgogICAg
KCJJIikKICAgICAgICAgICBbWyAiJDEiID09ICRpdGcgIF1dICYmIHsgaW5kaWM9MSA7IGVycm51
bT0wIDsgfQogICAgICAgICAgIGVycnN0cj0iIDEgICB8ICQxIGZhaWxlZCBpbnRlZ2VyIHZhbGlk
YXRpb24iCiAgICAgICAgICAgKCggaW5kaWMgIT0gMSApKSAmJiBsZWRlc2MrPSgiJGVycnN0ciIp
IDs7CiAgICAoIklwIikKICAgICAgICAgICBbWyAiJDEiID09ICRwaXRnIF1dICYmIHsgaW5kaWM9
MSA7IGVycm51bT0wIDsgfQogICAgICAgICAgIGVycnN0cj0iIDEgICB8ICQxIGZhaWxlZCBwb3Np
dGl2ZSBpbnRlZ2VyIHZhbGlkYXRpb24iCiAgICAgICAgICAgKCggaW5kaWMgIT0gMSApKSAmJiBs
ZWRlc2MrPSgiJGVycnN0ciIpIDs7CiAgICAoIkluIikKICAgICAgICAgICBbWyAiJDEiID09ICRu
aXRnIF1dICYmIHsgaW5kaWM9MSA7IGVycm51bT0wIDsgfQogICAgICAgICAgIGVycnN0cj0iIDEg
ICB8ICQxIGZhaWxlZCBuZWdhdGl2ZSBpbnRlZ2VyIHZhbGlkYXRpb24iCiAgICAgICAgICAgKCgg
aW5kaWMgIT0gMSApKSAmJiBsZWRlc2MrPSgiJGVycnN0ciIpIDs7CiAgICAoIkYiKQogICAgICAg
ICAgIFtbICIkMSIgPT0gJGZ4cCAgXV0gJiYgeyBpbmRpYz0xIDsgZXJybnVtPTAgOyB9CiAgICAg
ICAgICAgZXJyc3RyPSIgMSAgIHwgJDEgZmFpbGVkIGZpeGVkIHBvaW50IHJlYWwgdmFsaWRhdGlv
biIKICAgICAgICAgICAoKCBpbmRpYyAhPSAxICkpICYmIGxlZGVzYys9KCIkZXJyc3RyIikgOzsK
ICAgICgiRnAiKQogICAgICAgICAgIFtbICIkMSIgPT0gJHBmeHAgXV0gJiYgeyBpbmRpYz0xIDsg
ZXJybnVtPTAgOyB9CiAgICAgICAgICAgZXJyc3RyPSIgMSAgIHwgJDEgZmFpbGVkIHBvc2l0aXZl
IGZpeGVkIHBvaW50IHJlYWwgdmFsaWRhdGlvbiIKICAgICAgICAgICAoKCBpbmRpYyAhPSAxICkp
ICYmIGxlZGVzYys9KCIkZXJyc3RyIikgOzsKICAgICgiRm4iKQogICAgICAgICAgIFtbICIkMSIg
PT0gJG5meHAgXV0gJiYgeyBpbmRpYz0xIDsgZXJybnVtPTAgOyB9CiAgICAgICAgICAgZXJyc3Ry
PSIgMSAgIHwgJDEgZmFpbGVkIG5lZ2F0aXZlIGZpeGVkIHBvaW50IHJlYWwgdmFsaWRhdGlvbiIK
ICAgICAgICAgICAoKCBpbmRpYyAhPSAxICkpICYmIGxlZGVzYys9KCIkZXJyc3RyIikgOzsKICAg
ICgiRSIpCiAgICAgICAgICAgW1sgIiQxIiA9PSAkZmxwZSBdXSAmJiB7IGluZGljPTEgOyBlcnJu
dW09MCA7IH0KICAgICAgICAgICBlcnJzdHI9IiAxICAgfCAkMSBmYWlsZWQgZmxvYXRpbmcgcG9p
bnQgcmVhbCB2YWxpZGF0aW9uIgogICAgICAgICAgICgoIGluZGljICE9IDEgKSkgJiYgbGVkZXNj
Kz0oIiRlcnJzdHIiKSA7OwogICAgKCJFcCIpCiAgICAgICAgICAgW1sgIiQxIiA9PSAkcGZscCBd
XSAmJiB7IGluZGljPTEgOyBlcnJudW09MCA7IH0KICAgICAgICAgICBlcnJzdHI9IiAxICAgfCAk
MSBmYWlsZWQgcG9zaXRpdmUgZmxvYXRpbmcgcG9pbnQgcmVhbCB2YWxpZGF0aW9uIgogICAgICAg
ICAgICgoIGluZGljICE9IDEgKSkgJiYgbGVkZXNjKz0oIiRlcnJzdHIiKSA7OwogICAgKCJFbiIp
CiAgICAgICAgICAgW1sgIiQxIiA9PSAkbmZscCBdXSAmJiB7IGluZGljPTEgOyBlcnJudW09MCA7
IH0KICAgICAgICAgICBlcnJzdHI9IiAxICAgfCAkMSBmYWlsZWQgbmVnYXRpdmUgZmxvYXRpbmcg
cG9pbnQgcmVhbCB2YWxpZGF0aW9uIgogICAgICAgICAgICgoIGluZGljICE9IDEgKSkgJiYgbGVk
ZXNjKz0oIiRlcnJzdHIiKSA7OwogICAgKCopCiAgICAgICAgICAgW1sgIiQxIiA9PSAkZmxwICBd
XSAmJiB7IGluZGljPTEgOyBlcnJudW09MCA7IH0KICAgICAgICAgICBlcnJzdHI9IiAxICAgfCAk
MSBmYWlsZWQgZmxvYXRpbmcgcG9pbnQgcmVhbCB2YWxpZGF0aW9uIgogICAgICAgICAgICgoIGlu
ZGljICE9IDEgKSkgJiYgbGVkZXNjKz0oIiRlcnJzdHIiKSA7OwogICBlc2FjCgogZmkKCiAjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEZ1
bmN0aW9uIG91dHB1dHMgYSBzdGF0dXMgb3IgYSBzdHJpbmcKCiAjIEF2b2lkIGVycm51bSAxMjcg
YXMgaXQgY29tbW9ubHkgaW5kaWNhdGVzICJQcm9ncmFtIE5vdCBGb3VuZCIuCiAoKCAkeyNsZWRl
c2NbQF19ID09IDAgKSkgJiYgbGVkZXNjPSIwIHwgc3VjY2Vzc2Z1bCB0ZXJtaW5hdGlvbiIKIAog
aWYgWyAiJHZiIiAtZ2UgMyBdOyB0aGVuCiAgIHByaW50ZiAnJXNcbicgImFyZ3M6ICRAIHwgXCRA
IgogICBwcmludGYgJyVzXG4nICJpbmRpYzogJGluZGljIgogZmkKCiAjIE1vZGU6IHJlYwogIyAg
VG9waWM6IExpbmUgQ29udGludWF0aW9uIHdpdGggYmFja3NsYXNoIFwKICMgICAgRGVzYzogQ29t
bWFuZHMgY2FuIGJlIHNwbGl0IGFueXdoZXJlIGJ5IGFkZGluZyB0aGUgbGluZQogIyAgICArIGNv
bnRpbnVhdGlvbiBiYWNrc2xhc2ggXCBjaGFyYWN0ZXIgYXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9m
IHRoZQogIyAgICArIGxpbmUgZm9sbG93ZWQgYnkgYSBsaW5lLWJyZWFrLgogIyAgICBFeGNlcHRp
b246IFRoZSBjb250aW51YXRpb24gY2hhcmFjdGVyIGlzIG5vdCByZXF1aXJlZCB3aGVuIGEKICMg
ICAgKyBsaW5lLWJyZWFrIGlzIGluc2VydGVkIGF0IGEgcG9pbnQgd2hlcmUgYSBjb21tYW5kIGNh
bm5vdCBlbmQKICMgICAgKyBzdWNoIGFzIGFmdGVyIHRoZSAmJiBvciB8fCBvcGVyYXRvcnMuCiAj
ICBUb3BpYzogRmFpbHVyZXMgb2YgdGhlIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24geyBwICYmIHEg
fHwgciB9CiAjICAgIERlc2M6IHsgcCAmJiBxIHx8IHIgfSBhc3N1bWVzIHRoYXQgcSBkb2VzIG5v
dCBmYWlsLiAgSWYgcSBmYWlscwogIyAgICArIG9yIHJldHVybnMgYSBmYWxzZSBsb2dpY2FsIHZh
bHVlLCByIHdpbGwgZXhlY3V0ZSBldmVuIGlmIHAKICMgICAgKyBzdWNjZWVkcy4KICMgIyBFbmQg
b2YgcmVjIAogCiAjIGZuc3RhdHVzIHwgMCBkZXNpZ25hdGVzIHN1Y2Nlc3MgfCBvdGhlcndpc2Ug
ZmFpbHVyZQogbG9jYWwgZm5zdGF0dXMKIGlmICgoIG91dHZhbCA9PSAwICkpOyB0aGVuCiAgIGZu
c3RhdHVzPSQoKCBpbmRpYyA9PSAxID8gMCA6IDEgKSkgICMgY29uZGl0aW9uYWwgb3BlcmF0b3IK
ICAgKCggZXJybnVtID4gMCApKSAmJiBmbnN0YXR1cz0kZXJybnVtCiAgIHJldHVybiAiJGZuc3Rh
dHVzIgogZWxzZQogICAjIGluZGljPTEgZGVzaWduYXRlcyBjb25maXJtYXRpb24sIG90aGVyd2lz
ZSByZWZ1dGF0aW9uCiAgICgoIGxlZGVzY3ZhbCAhPSAxICkpICYmIGVjaG8gIiRpbmRpYyIgXAog
ICAgICB8fCB7IGVjaG8gImVycm5vIiA7IHByaW50ZiAnJXNcbicgIiR7bGVkZXNjW0BdfSIgOyB9
CiBmaQoKfQoKIyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKCmxpbmdlLXBhcmFkZS1udW1lcmljICgpCnsKIG51bT0iMyIKIGlmIGxpbmdlLW51
bWVyaWMgLUkgIiRudW0iCiB0aGVuCiAgIHByaW50ZiAnJXNcbicgIiRudW0gaXMgbnVtZXJpYyBp
bnRlZ2VyIgogZWxzZQogICBwcmludGYgJyVzXG4nICIkbnVtIGZhaWxzIG51bWVyaWMgaW50ZWdl
ciB2YWxpZGF0aW9uIgogZmkKCiBudW09IjMuMTQyIgogIyBjb25kaXRpb24gZXF1aXZhbGVudCB0
byBgaWYgbGluZ2UtbnVtZXJpYyAtSSAiJG51bSJgCiBpZiB7IGxpbmdlLW51bWVyaWMgLUkgIiRu
dW0iIDsgfQogdGhlbgogICBwcmludGYgJyVzXG4nICIkbnVtIGlzIG51bWVyaWMgaW50ZWdlciIK
IGVsc2UKICAgcHJpbnRmICclc1xuJyAiJG51bSBmYWlscyBudW1lcmljIGludGVnZXIgdmFsaWRh
dGlvbiIKIGZpCn0KCiMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrCgpsaW5nZS1kZXRhaWxzLW5nbnVtICgpCnsKIEhERyAiT3B0aW9uIFN1bW1h
cnkiCgogcHJpbnRmICclc1xuJyAiLWYgU1RZLCAtLWZtdD1TVFkiCiBwcmludGYgJyVzXG4nICIg
ICBGb3JtYXQgc3R5bGUgZm9yIG51bWVyYWxzLiIKCiBQRiAiICAgU1RZICAgIHwgRGVzY3JpcHRp
b24iCiBQRiAiICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IgogUEYgIiAgIGJjICAgICB8IFV0aWxpc2VzIGJhc2ljIGNhbGN1bGF0b3IgcHJvZ3JhbSBiYyIK
IFBGICIgICBmeGRwbnQgfCBGaXhlZC1wb2ludCBudW1lcmljIG5vdGF0aW9uIgogUEYgIiAgIGZs
dHBudCB8IEZsb2F0aW5nLXBvaW50IG51bWVyaWMgbm90YXRpb24iCiBQRiAiICAgbmdyZSAgIHwg
TmVnYXRpdmUgUmVndWxhciBFeHByZXNzaW9uIgogICAgCn0KCiMgKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCgpsaW5nZS11c2FnZS1uZ251bSAo
KQp7CiBjYXNlICQxIGluCiAgKDEpCiAgICAgUEYgIiB7LVYsIC0tdmVyc2lvbn0iCiAgICAgUEYg
IiB7LXYgTFYsIC12PUxWLCAtdkxWLCAtLXZlcmJvc2l0eSBMViwgLS12ZXJib3NpdHk9TFZ9Igog
ICAgIFBGICIgey1oLCAtLWhlbHB9LCB7LXUgTFYsIC11PUxWLCAtdUxWLCAtLXVzYWdlPUxWfSIK
ICAgICBQRiAiIHstZiBTVFksIC0tZm10PVNUWX0gfCBTVFk6IFtuRnxuRV0iCiAgICAgOzsKICAo
MikKICAgICBIREcgIlVzYWdlIgogICAgIHByaW50ZiAnJXNcbicgIiBsaW5nZS1uZ251bSAtMS4z
NTggfCBSZXN1bHQ6ICIKICAgICBwcmludGYgJyVzXG4nICIgbGluZ2UtbmdudW0gIDguNTMxIHwg
UmVzdWx0OiAiCiAgICAgOzsKICAoKikKICAgICBwcmludGYgJyVzXG4nICIgIgogICAgIDs7CiBl
c2FjCn0KCiMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrCgpsaW5nZS1uZ251bSAoKQp7CgogaWYgKCggJCMgPT0gMCApKTsgdGhlbgogICBwcmlu
dGYgJyVzXG4nICJJbnZva2UgXGBsaW5nZS1uZ251bSAtaCcgZm9yIGRldGFpbHMuIgogICByZXR1
cm4gMCAgCiBmaQogCiBsb2NhbCBpbXBsPSJiYyIgb3V0dmFsPTAKCiB3aGlsZSAoKCAkIyA+IDAg
KSk7IGRvCiAgIG9wdD0iJDEiCiAgIGNhc2UgJG9wdCBpbgogICAgKCItViJ8Ii0tdmVyc2lvbiIp
CiAgICAgIGxvY2FsIC1yIGV0ZGF0ZT0iVjAxIEp1bCAyMDIxIFdrMjciCiAgICAgIHByaW50ZiAi
JXNcbiIgIiAkZXRkYXRlIE1hdGVtYXRpa2VyIENocmlzdG9waGVyIERpbWVjaCAiCiAgICAgIHJl
dHVybiAwCiAgICAgIDs7CiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAo
Ii12InwiLS12ZXJib3NpdHkiKSAgICAgIHZiPSIkMiIgICAgICA7IHNoaWZ0IDsgc2hpZnQgOzsK
ICAgICgiLXY9Iip8Ii0tdmVyYm9zaXR5PSIqKSAgdmI9IiR7MSMqPX0iIDsgc2hpZnQgMSA7Owog
ICAgKCItdiIqKSB2Yj0iJHsxIy12fSIgOyBzaGlmdCAxIDs7CiAgICAjLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgICAoIi1oInwiLS1oZWxwIikKICAgICAgcHJpbnRmICclc1xuJyAi
VmFsaWRhdGVzIG51bWVyaWMgZm9ybWF0cy4iCiAgICAgIGxpbmdlLWRldGFpbHMtbmdudW0KICAg
ICAgcmV0dXJuIDAKICAgICAgOzsKICAgICgiLXUifCItLXVzYWdlIikKICAgICAgcHJpbnRmICcl
c1xuJyAiIgogICAgICBsaW5nZS11c2FnZS1uZ251bSAiJHZiIgogICAgICByZXR1cm4gMAogICAg
ICA7OwogICAgIyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgiLW8iKSBvdXR2
YWw9MSA7IHNoaWZ0IDEgOzsKICAgICgiLWYifCItLWZybXQiKSAgICAgIGZybXQ9IiQyIiAgICAg
IDsgc2hpZnQgOyBzaGlmdCA7OwogICAgKCItZj0iKnwiLS1mcm10PSIqKSAgZnJtdD0iJHsxIyo9
fSIgOyBzaGlmdCAxIDs7CiAgICAjIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgogICAg
KCItLSIpIHNoaWZ0IDEgOyBicmVhayA7OwogICAgKCopIGJyZWFrIDs7CiAgIGVzYWMgICMgIGNh
c2UgZW5kcyBoZXJlCiBkb25lICAjIHdoaWxlIGVuZHMgaGVyZQoKICMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKIGlm
ICgoIG91dHZhbCA9PSAxICkpOyB0aGVuCiAgIGs9JCggbGluZ2UtbnVtZXJpYyAtbyAtRW4gIiQx
IiApCiBlbHNlCiAgIGs9JCggZWNobyAiJDEgPCAwIiB8IGJjIC1sICkKICAgW1sgIiRrIiA9fiAi
ZXJyb3IiIF1dICYmIGs9MAogZmkKIAogaWYgKCggb3V0dmFsID09IDAgKSk7IHRoZW4KICAgbG9j
YWwgZm5zdGF0dXM9MSAgICAgICAgICAgICMgZmFpbHVyZQogICAoKCBrID09IDEgKSkgJiYgZm5z
dGF0dXM9MCAgIyBzdWNjZXNzCiAgIHJldHVybiAiJGZuc3RhdHVzIgogZWxzZQogICBlY2hvICIk
ayIKIGZpCiAKfQoKIyA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7OzsKCmxpbmdlLW51bWVyaWMtcGludGdyICgpCnsKCiAjIyBUaGUgJD8gaW5zdHJ1
Y3Rpb24KICMgICQ/IGdldHMgdGhlIEV4aXQgU3RhdHVzIG9mIGxhc3QgZXhlY3V0ZWQgY29tbWFu
ZC4KICMgIFJ1bm5pbmcgdGhlIHNhbWUgZnVuY3Rpb24gaW4gc2VwYXJhdGUgYmFzaCBzZXNzaW9u
cyB5aWVsZHMKICMgIGluZGVwZW5kZW50IHZhbHVlcyBmb3IgJD8gYmVjYXVzZSBzZXNzaW9ucyBy
dW5uaW5nIGluIHNlcGFyYXRlCiAjICBjb21tYW5kIGxpbmUgY29uc29sZSB0ZXJtaW5hbHMgdXNl
IGluZGVwZW5kZW50IGVudmlyb25tZW50cy4KCiBsb2NhbCB2Yj0wCiBsb2NhbCBpbXBsPSJsYXN0
LWNvbW1hbmQtc3RhdHVzIgogKCggJCMgPiAxICkpICYmIGltcGw9IiQyIgoKIGNhc2UgJGltcGwg
aW4KICAoImxhc3QtY29tbWFuZC1zdGF0dXMiKQogICAgbGluZ2UtbnVtZXJpYyAtSXAgIiQxIgog
ICAgcnN0YXR1cz0kPwogICAgKCggdmIgPiAwICkpICYmIGVjaG8gImxhc3QtY29tbWFuZC1zdGF0
dXMgXCQ/IHwgJHJzdGF0dXMiCiAgICByZXR1cm4gIiRyc3RhdHVzIgogICAgOzsKICAoKikKICAg
IHI9JCggbGluZ2UtbnVtZXJpYyAtbyAtSXAgIiQxIiApCiAgICAoKCByID09IDEgKSkgJiYgcmV0
dXJuIDAgfHwgcmV0dXJuIDEKICAgIDs7CiBlc2FjCgp9CiAgICAKIyA7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKCmxpbmdlLXVzYWdlLW5lYXJp
bnQgKCkKewogY2FzZSAkMSBpbiAKICAoMSkKICAgICBQRiAiIHstViwgLS12ZXJzaW9ufSIKICAg
ICBQRiAiIHstdiBMViwgLXY9TFYsIC12TFYsIC0tdmVyYm9zaXR5IExWLCAtLXZlcmJvc2l0eT1M
Vn0iCiAgICAgUEYgIiB7LWgsIC0taGVscH0sIHstdSBMViwgLXU9TFYsIC11TFYsIC0tdXNhZ2U9
TFZ9IgogICAgIDs7CiAgKDIpCiAgICAgSERHICJVc2FnZSIKICAgICA7OwogICgqKQogICAgIHBy
aW50ZiAnJXNcbicgIiAiCiAgICAgOzsKIGVzYWMKfQoKIyArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKCmxpbmdlLW5lYXJpbnQgKCkKewoKIHdo
aWxlICgoICQjID4gMCApKTsgZG8KICAgb3B0PSIkMSIKICAgY2FzZSAkb3B0IGluCiAgICAoIi1W
InwiLS12ZXJzaW9uIikKICAgICAgbG9jYWwgLXIgZXRkYXRlPSJWMDEgSnVsIDIwMjEgV2syNyIK
ICAgICAgcHJpbnRmICcnICIkZXRkYXRlIFN0cmF0ZWdpc3QgQ2hyaXN0b3BoZXIgRGltZWNoIiAi
IgogICAgICByZXR1cm4gMAogICAgICA7OwogICAgIyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4KICAgICgiLXYifCItLXZlcmJvc2l0eSIpICB2Yj0iJDIiIDsgc2hpZnQgOyBzaGlmdCA7
OwogICAgKCItdj0iKnwiLS12ZXJib3NpdHk9IiopIHZiPSIkezEjKj19Ijsgc2hpZnQgMSA7Owog
ICAgKCItdiIqKSB2Yj0iJHsxIy12fSI7IHNoaWZ0IDEgOzsKICAgICMgLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uCiAgICAoIi1oInwiLS1oZWxwIikKICAgICAgcHJpbnRmICclc1xuJyAg
ICJsaW5nZS1uZWFyaW50IE9QRVIgTlVNQSBOVU1CIgogICAgICBwcmludGYgJyVzXG4nICAgIlJv
dW5kcyBhIGZsb2F0aW5nIHBvaW50IG51bWJlci4iCiAgICAgIHByaW50ZiAnJXNcbicgICAiT1BF
UiAgT3BlcmF0b3IuIgogICAgICBwcmludGYgJyVzXG4nICAgIk5VTUEgIEZpcnN0IG51bWJlci4i
CiAgICAgIHByaW50ZiAnJXNcblxuJyAiTlVNQiAgU2Vjb25kIG51bWJlci4iCiAgICAgIHJldHVy
biAwCiAgICAgIDs7CiAgICAoIi11InwiLS11c2FnZSIpCiAgICAgIEhERyAiVXNhZ2UiCiAgICAg
IHByaW50ZiAnJXNcbicgIiAgbGluZ2UtbmVhcmludCAxOC4yMSIKICAgICAgcHJpbnRmICclc1xu
JyAiICBsaW5nZS1uZWFyaW50IDM0LjU1IgogICAgICBwcmludGYgJyVzXG4nICIgIGxpbmdlLW5l
YXJpbnQgLyAyMS4zIDM0LjU1IgogICAgICByZXR1cm4gMAogICAgICA7OwogICAgIyAuLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgqKSBicmVhayA7OwogICAgIyAuLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4KICAgZXNhYyAgIyAgY2FzZSBlbmRzIGhlcmUKIGRvbmUgICMg
d2hpbGUgZW5kcyBoZXJlCgogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCiBpZiAoKCAkIyA+IDMgKSk7IHRoZW4KICAgcHJpbnRmICclc1xu
JyAiTW9yZSB0aGFuIHR3byBhZ3JndW1lbnRzIHBhc3NlZCB0byBsaW5nZS1uZWFyaW50IgogZmkK
CiAjIHVzaW5nIGZpeGVkLXBvaW50IG51bWJlciBub3RhdGlvbgoKIGxvY2FsIHBzdj0wIG5ndj0w
CiBpZiAoKCAkIyA9PSAxICkpOyB0aGVuCiAgIGZ4cG50PSIkMSIKIGVsaWYgKCggJCMgPT0gMyAp
KTsgdGhlbgogICBvcGVyPSIkMSIgOyBhbnVtPSIkMiIgOyBibnVtPSIkMyIKICAgY29tcD0iJGFu
dW0gJG9wZXIgJGJudW0iCiAgIGZ4cG50PSQoIGVjaG8gIiRjb21wIiB8IGJjIC1sICkKIGVsc2UK
ICAgZnhwbnQ9MAogZmkKCiBwc3Y9JCggbGluZ2UtbnVtZXJpYyAtbyAtRnAgIiRmeHBudCIgKQog
bmd2PSQoIGxpbmdlLW51bWVyaWMgLW8gLUZuICIkZnhwbnQiICkKIGlmICgoIHBzdiA9PSAxICkp
OyB0aGVuCiAgIGluZWFyPSQoIGVjaG8gIigkZnhwbnQgKyAwLjUpIC8gMSIgfCBiYyApCiBlbGlm
ICgoIG5ndiA9PSAxICkpOyB0aGVuCiAgIGluZWFyPSQoIGVjaG8gIigkZnhwbnQgLSAwLjUpIC8g
MSIgfCBiYyApCiBmaQogCiBwcmludGYgJyVzXG4nICIkaW5lYXIiCgp9CgojICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwoKIyMgaDEgKiBQcmlu
dGluZyBtdWx0aXBsZSBsaW5lcyBpbmNsdWRpbmcgd2FybmluZ3MKCmxpbmdlLWRldGFpbHMtcHJp
bnRmLW11bHRpcGxlICgpCnsKIHByaW50ZiAnJXNcbicgIlByaW50cyBtdWx0aXBsZSBsaW5lcyBv
ZiB0ZXh0LCB3aXRoIGFsaWFzIHNldCB0byBcYHBmbSciCiBwcmludGYgJyVzXG4nICIiCiBwcmlu
dGYgJyVzXG4nICJFeGFtcGxlOiBwZm0gLS0gXCItZCBESVJcIiIKfQoKIyArKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKCmxpbmdlLXVzYWdlLXBy
aW50Zi1tdWx0aXBsZSAoKQp7CiBjYXNlICQxIGluCiAgKDIpCiAgICAgbGluZ2UtdXNhZ2UtcHJp
bnRmLW11bHRpcGxlLWVuCiAgICAgOzsKICAoKikKICAgICBQRiAiIGxpbmdlLXByaW50Zi1tdWx0
aXBsZSBbT1BUSU9OU10gIgogICAgIFBGICIgICBQcmludHMgYSBoZWFkaW5nIgogICAgIFBGICIg
ICAiCiAgICAgUEYgIiAtViwgLS12ZXJzaW9uIgogICAgIFBGICIgLXYgTFYsIC12PUxWLCAtdkxW
LCAtLXZlcmJvc2l0eSBMViwgLS12ZXJib3NpdHk9TFYiCiAgICAgUEYgIiB7LXUgTFYsIC11PUxW
LCAtdUxWLCAtLXVzYWdlPUxWfSwgey1oLCAtLWhlbHB9IgogICAgIFBGICIgLWYgU1RZLCAtLWZt
dD1TVFl9IHwgU1RZOiBbbkZ8bkVdIgogICAgIFBGICIgLUgsIC1IIENOVCwgLUg9Q05ULCAtSENO
VCwgLS1oZWFkaW5nIENOVCwgLS1oZWFkaW5nPUNOVCIKICAgICBQRiAiIC1XLCAtVyBDTlQsIC1X
PUNOVCwgLVdDTlQsIC0td2FybmluZyBDTlQsIC0td2FybmluZz1DTlQiCiAgICAgUEYgIiAtRSwg
LUUgQ05ULCAtRT1DTlQsIC1FQ05ULCAtLWVycm9yIENOVCwgLS1lcnJvcj1DTlQiCiAgICAgUEYg
IiAtYiBDTiwgLWI9Q04sIC1iQ04sIC0tYmx1IENOLCAtLWJsdT1DTiIKICAgICBQRiAiIC1nIENO
LCAtZz1DTiwgLWdDTiwgLS1ncm4gQ04sIC0tZ3JuPUNOIgogICAgIFBGICIgLWMgQ04sIC1jPUNO
LCAtY0NOLCAtLWN5biBDTiwgLS1jeW49Q04iCiAgICAgUEYgIiAtciBDTiwgLXI9Q04sIC1yQ04s
IC0tcmVkIENOLCAtLXJlZD1DTiIKICAgICBQRiAiIC1tIENOLCAtbT1DTiwgLW1DTiwgLS1tZ24g
Q04sIC0tbWduPUNOIgogICAgIFBGICIgLW8gQ04sIC1vPUNOLCAtb0NOLCAtLW9yZyBDTiwgLS1v
cmc9Q04iCiAgICAgUEYgIiB7LS1jb2xmIENOLCAtLWNvbGY9Q059LCB7LWwgQ04sIC1sPUNOLCAt
bENOfSIKICAgICA7OwogZXNhYwp9CgojICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKwoKbGluZ2UtZGV0YWlscy1wcmludGYtbXVsdGlwbGUgKCkK
ewogaWYgKCggJCMgPj0gMSApKTsgdGhlbgogICBpZiBbWyAiJDEiID09ICJmciIgfHwgIiQxIiA9
PSAiaXQiIF1dOyB0aGVuCiAgICAgY29tbGFuZz0iJDEiCiAgIGVsc2UKICAgICBjb21sYW5nPSIk
e0xBTkc6MDoyfSIKICAgICAoKCB2YiA+PTIgKSkgJiYgcHJpbnRmICclc1xuJyAiVXNpbmcgbG9j
YWxlICRMQU5HIgogICBmaQogZWxzZQogICBjb21sYW5nPSIke0xBTkc6MDoyfSIKICAgKCggdmIg
Pj0yICkpICYmIHByaW50ZiAnJXNcbicgIlVzaW5nIGxvY2FsZSAkTEFORyIKIGZpCgogY2FzZSAk
Y29tbGFuZyBpbgogICgiZnIiKQogICAgcHJpbnRmICdcbiVzXG4nICJBZmZpY2hlIGR1IHRleHRl
IGVuIGNvdWxldXIuIgogICAgcHJpbnRmICclc1xuJyAiICBsaW5nZS1wcmludGYtbXVsdGlwbGUg
W09QVElPTlNdIFRFWFQuLiIKICAgIGxpbmdlLWRldGFpbHMtcHJpbnRmLW11bHRpcGxlLWZyCiAg
ICA7OwogICgiaXQiKQogICAgcHJpbnRmICdcbiVzXG4nICJWaXN1YWxpenphIGlsIHRlc3RvIHV0
aWxpenphbmRvIGlsIGNvbG9yZS4iCiAgICBwcmludGYgJyVzXG4nICIgIGxpbmdlLXByaW50Zi1t
dWx0aXBsZSBbT1BUSU9OU10gVEVYVC4uIgogICAgbGluZ2UtZGV0YWlscy1wcmludGYtbXVsdGlw
bGUtaXQKICAgIDs7CiAgKCopCiAgICBwcmludGYgJ1xuJXNcbicgIkRpc3BsYXlzIGNvbG91cmVk
IHRleHQuIgogICAgcHJpbnRmICclc1xuJyAiICBsaW5nZS1wcmludGYtbXVsdGlwbGUgW09QVElP
TlNdIFRFWFQuLiIKICAgIGxpbmdlLWRldGFpbHMtcHJpbnRmLW11bHRpcGxlLWVuCiAgICA7Owog
ZXNhYwp9CgojICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwoKbGluZ2UtcHJpbnRmLW11bHRpcGxlICgpCnsKIGxvY2FsIC1yIGV0ZGF0ZT0iVjAx
IDIwMjEgSnVsIDIxIFdrMjciICAKIGxvY2FsIC1yIGF1dGhvcj0iTWF0ZW1hdGlrZXIgQ2hyaXN0
b3BoZXIgRGltZWNoIiAgCgogIyMgU2V0IEdyYXBoaWMgUmVuZGl0aW9uIGZvciBjb2xvdXJlZCB0
ZXJtaW5hbCBkaXNwbGF5LgogIyAgVXNpbmcgdHB1dCBjb21tYW5kIHRvIGFjY2VzcyB0ZXJtaW5m
byBkYXRhYmFzZSBjYXBhYmlsaXRpZXMuIEluCiAjICAxOTgxLCBNYXJ5IEFubiBIb3J0b24gbWFk
ZSB0aGUgZmlyc3QgdGVybWluZm8gbGlicmFyeSwgdXNpbmcgaHVtYW4KICMgIHVuZGVyc3RhbmRh
YmxlIG5hbWVzIGFuZCBpbXByb3ZpbmcgYWNjZXNzIHNwZWVkIG92ZXIgdGVybWNhcC4KCiAjIDgt
Yml0ICgyNTYsIDJeOCkgY29sb3VycwogbG9jYWwgLXIgYmx1PSQodHB1dCBib2xkKSQodHB1dCBz
ZXRhZiAzOSkKIGxvY2FsIC1yIGdybj0kKHRwdXQgYm9sZCkkKHRwdXQgc2V0YWYgNDYpCiBsb2Nh
bCAtciBjeW49JCh0cHV0IGJvbGQpJCh0cHV0IHNldGFmIDUxKQogbG9jYWwgLXIgcmVkPSQodHB1
dCBib2xkKSQodHB1dCBzZXRhZiAxOTYpCiBsb2NhbCAtciBtZ249JCh0cHV0IGJvbGQpJCh0cHV0
IHNldGFmIDIwMSkKIGxvY2FsIC1yIG9yZz0kKHRwdXQgYm9sZCkkKHRwdXQgc2V0YWYgMjA4KQoK
ICMgU2VsZWN0IEdyYXBoaWMgUmVuZGl0aW9uIFplcm8gKHNncjApIHJlc2V0cyB0byBub24tY29s
b3VyIGRpc3BsYXkKIGxvY2FsIHNncj0kKHRwdXQgc2dyMCkKIGxvY2FsIHJzdD0iJHNnciIgY3Rw
PSIiCiAKICMgTG9jYWwgYXJndW1lbnRzIHBsdXMgb3RoZXIKIGxvY2FsIHZiPTEgIG53bGluZT0x
ICBjbj0wICBubD0wICBjYXB0cj0wCiBsb2NhbCBjb21sYW5nPSIiCgogZGVjbGFyZSAtYSBlZHZl
cnIgICMgZGVjbGFyZSBhcnJheSBmb3IgZXJyb3IgbWVzc2FnZXMKCiAoKCAkIyA9PSAwKSkgJiYg
cHJpbnRmICIlc1xuIiAiJGV0ZGF0ZSAkYXV0aG9yIgogCiB3aGlsZSAoKCAkIyA+IDAgKSk7IGRv
CiAgIGNhc2UgJDEgaW4KICAgICgiLVYifCItLXZlcnNpb24iKSAgICAgICAgICAgICMgeyAtViB9
CiAgICAgIHByaW50ZiAiJXNcbiIgIiRldGRhdGUgU3RyYXRlZ2lzdCBDaHJpc3RvcGhlciBEaW1l
Y2giCiAgICAgIHJldHVybiAwCiAgICAgIDs7CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi12InwiLS12ZXJib3NpdHkiKSAgICAg
ICAgICAjIHsgLXYgTlVNIH0KICAgICAgbGluZ2UtbnVtZXJpYy1waW50Z3IgIiQyIgogICAgICBp
ZiAoKCAkPyA9PSAwICkpOyB0aGVuCiAgICAgICAgdmI9IiQyIiA7IHNoaWZ0IDsgc2hpZnQKICAg
ICAgZWxzZQogICAgICAgIGVkdmVycis9KCIgey12IE5VTX0gTlVNIGZhaWxzIG51bWVyaWMgdmFs
aWRhdGlvbiIpCglzaGlmdCAgCiAgICAgIGZpCiAgICAgIDs7CiAgICAoIi12PSIqfCItLXZlcmJv
c2l0eT0iKikgICAgICAjIHsgLXY9TlVNIH0KICAgICAgbGluZ2UtbnVtZXJpYy1waW50Z3IgIiR7
MSMqPX0iCiAgICAgIGlmICgoICQ/ID09IDAgKSk7IHRoZW4KICAgICAgICB2Yj0iJHsxIyo9fSIg
OyBzaGlmdCAxCiAgICAgIGVsc2UKCXNoaWZ0IDEKICAgICAgICBlZHZlcnIrPSgiIHstdiBOVU19
IE5VTSBmYWlscyBudW1lcmljIHZhbGlkYXRpb24iKQogICAgICBmaQogICAgICA7OwogICAgKCIt
diIqKSAgICAgICAgICAgICAgICAgICAgICAgIyB7IC12IE5VTSB9CiAgICAgIGxpbmdlLW51bWVy
aWMtcGludGdyICIkezEjLXZ9IgogICAgICBpZiAoKCAkPyA9PSAwICkpOyB0aGVuICAgICAgIyBu
dW1lcmljIG1hdGNoIHN1Y2Nlc3MKICAgICAgICB2Yj0iJHsxIy12fSIgOyBzaGlmdCAxCiAgICAg
IGVsc2UKCXNoaWZ0IDEKICAgICAgICBlZHZlcnIrPSgiIHstdk5VTX0gTlVNIGZhaWxzIG51bWVy
aWMgdmFsaWRhdGlvbiIpCiAgICAgIGZpCiAgICAgIDs7CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi1oInwiLS1oZWxwIikgICAg
ICAgICAgICAgICAjIHsgLWggTEFORyB9CiAgICAgIGxpbmdlLW51bWVyaWMtcGludGdyICIkMiIK
ICAgICAgKCggJD8gPT0gMCApKSAmJiB7IGNvbWxhbmc9IiQyIiA7IHNoaWZ0IDsgc2hpZnQgOyB9
CiAgICAgIGxpbmdlLWRldGFpbHMtcHJpbnRmLW11bHRpcGxlICIkY29tbGFuZyIKICAgICAgcmV0
dXJuIDAKICAgICAgOzsKICAgICgiLWg9Iip8Ii0taGVscD0iKikgICAgICAgICAgICMgeyAtaD1b
TEFOR10gfQogICAgICBsaW5nZS1udW1lcmljLXBpbnRnciAiJHsxIyo9fSIKICAgICAgKCggJD8g
PT0gMCApKSAmJiB7IGNvbWxhbmc9IiR7MSMqPX0iIDsgc2hpZnQgMSA7IH0KICAgICAgbGluZ2Ut
ZGV0YWlscy1wcmludGYtbXVsdGlwbGUgIiRjb21sYW5nIgogICAgICByZXR1cm4gMAogICAgICA7
OwogICAgKCItaCIqKSAgICAgICAgICAgICAgICAgICAgICAgIyB7IC1oW0xBTkddIH0KICAgICAg
bGluZ2UtbnVtZXJpYy1waW50Z3IgIiR7MSMtaH0iCiAgICAgICgoICQ/ID09IDAgKSkgJiYgeyBj
b21sYW5nPSIkezEjLWh9IiA7IHNoaWZ0IDEgOyB9CiAgICAgIGxpbmdlLWRldGFpbHMtcHJpbnRm
LW11bHRpcGxlICIkY29tbGFuZyIKICAgICAgcmV0dXJuIDAKICAgICAgOzsKICAgICMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICgiLXUifCIt
LXVzYWdlIikKICAgICAgIyB7IC11IE5VTSwgLXUgfSBhbGxvd3Mgb3B0aW9uYWwgYXJndW1lbnQg
dmFsdWUKICAgICAgaWYgeyBsaW5nZS1udW1lcmljIC1JcCAiJDIiIDsgfTsgdGhlbgogICAgICAg
IHVzZz0iJDIiIDsgc2hpZnQgOyBzaGlmdAogICAgICBlbHNlCgl1c2c9MSA7IHNoaWZ0IDEKICAg
ICAgZmkKICAgICAgbGluZ2UtdXNhZ2UtcHJpbnRmLW11bHRpcGxlICIkdXNnIgogICAgICByZXR1
cm4gMAogICAgICA7OwogICAgKCItdT0iKnwiLS11c2FnZT0iKikKICAgICAgIyB7IC11PTIsIC11
PSB9IGFsbG93cyBvcHRpb25hbCBhcmd1bWVudCB2YWx1ZQogICAgICBpZiBsaW5nZS1udW1lcmlj
IC1JcCAiJHsxIyo9fSIgOyB0aGVuCiAgICAgICAgdXNnPSIkezEjKj19IiA7IHNoaWZ0IDEKICAg
ICAgZWxzZQoJdXNnPTEgOyBzaGlmdCAxCiAgICAgIGZpCiAgICAgIGxpbmdlLXVzYWdlLXByaW50
Zi1tdWx0aXBsZSAiJHVzZyIKICAgICAgcmV0dXJuIDAKICAgICAgOzsKICAgICgiLXUiKikgICAg
ICAgICAgIyB7IC11TlVNIH0KICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiR7MSMqLXV9IiA7
IHRoZW4KICAgICAgICB1c2c9IiR7MSMqLXV9IiA7IHNoaWZ0IDEKICAgICAgZWxzZQoJc2hpZnQg
MQogICAgICAgIGVkdmVycis9KCIgey11TlVNfSBOVU0gZmFpbHMgbnVtZXJpYyB2YWxpZGF0aW9u
IikKICAgICAgZmkKICAgICAgbGluZ2UtdXNhZ2UtcHJpbnRmLW11bHRpcGxlICIkdXNnIgogICAg
ICByZXR1cm4gMAogICAgICA7OwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgKCItbiIpICAgICAgICAgICAgICAgICAgICAgICAgIyB7
IC1uIH0KICAgICAgbndsaW5lPTAgOyBzaGlmdCA7OwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgKCItSCJ8Ii0taGVhZGluZyIpICAg
ICAgICAgICAgIyB7IC1IIE5VTSB9CiAgICAgIGN0cD0iJG1nbiIKICAgICAgaWYgbGluZ2UtbnVt
ZXJpYyAtSXAgIiQyIiA7IHRoZW4KICAgICAgICBubD0iJDIiIDsgc2hpZnQgOyBzaGlmdAogICAg
ICBlbHNlCiAgICAgICAgbmw9MSA7IHNoaWZ0IDEKCWVkdmVycis9KCIgey1IIE5VTX0gTnVtIGZh
aWxzIG51bWVyaWMgdmVyaWZpY2F0aW9uIikKICAgICAgZmkKICAgICAgOzsKICAgICgiLUg9Iip8
Ii0taGVhZGluZz0iKikgICAgICAgICMgeyAtSD1OVU0gfSAKICAgICAgY3RwPSIkbWduIgogICAg
ICBpZiBsaW5nZS1udW1lcmljIC1JcCAiJHsxIyo9fSIgOyB0aGVuCiAgICAgICAgbmw9IiR7MSMq
PX0iIDsgc2hpZnQgMQogICAgICBlbHNlCiAgICAgICAgbmw9MSA7IHNoaWZ0IDEKCWVkdmVycis9
KCIgey1IPU5VTX0gTnVtIGZhaWxzIG51bWVyaWMgdmVyaWZpY2F0aW9uIikKICAgICAgZmkKICAg
ICAgOzsKICAgICgiLUgiKikgICMgeyAtSE5VTSB9CiAgICAgIGN0cD0iJG1nbiIKICAgICAgaWYg
bGluZ2UtbnVtZXJpYyAtSXAgIiR7MSMqPX0iIDsgdGhlbgogICAgICAgIG5sPSIkezEjKj19IiA7
IHNoaWZ0IDEKICAgICAgZWxzZQogICAgICAgIG5sPTEgOyBzaGlmdCAxCgllZHZlcnIrPSgiIHst
SE5VTX0gTnVtIGZhaWxzIG51bWVyaWMgdmVyaWZpY2F0aW9uIikKICAgICAgZmkKICAgICAgOzsK
ICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
ICAgICgiLVcifCItLXdhcm5pbmciKQogICAgICAjIHsgLVcgTlVNLCAtVyB9IGFsbG93cyBvcHRp
b25hbCBhcmd1bWVudCB2YWx1ZQogICAgICBjdHA9IiRibHUiCiAgICAgIGlmIGxpbmdlLW51bWVy
aWMgLUlwICIkMiIgOyB0aGVuCiAgICAgICAgbmw9IiQyIiA7IHNoaWZ0IDsgc2hpZnQKICAgICAg
ZWxzZQogICAgICAgIG5sPTEgOyBzaGlmdCAxCiAgICAgIGZpCiAgICAgIDs7CiAgICAoIi1XPSIq
fCItLXdhcm5pbmc9IiopCiAgICAgICMgeyAtVz1OVU0sIC1XPSB9IGFsbG93cyBvcHRpb25hbCBh
cmd1bWVudCB2YWx1ZQogICAgICBjdHA9IiRibHUiCiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlw
ICIkezEjKj19IiA7IHRoZW4KICAgICAgICBubD0iJHsxIyo9fSIgOyBzaGlmdCAxCiAgICAgIGVs
c2UKICAgICAgICBubD0xIDsgc2hpZnQgMQogICAgICBmaQogICAgICA7OwogICAgKCItVyIqfCIt
LXdhcm5pbmciKikgICMgeyAtV05VTSB9CiAgICAgIGN0cD0iJGJsdSIKICAgICAgaWYgbGluZ2Ut
bnVtZXJpYyAtSXAgIiR7MSMqPX0iIDsgdGhlbgogICAgICAgIG5sPSIkezEjKj19IiA7IHNoaWZ0
IDEKICAgICAgZWxzZQogICAgICAgIG5sPTEgOyBzaGlmdCAxCgllZHZlcnIrPSgiIHstV05VTX0g
TlVNIGZhaWxzIG51bWVyaWMgdmFsaWRhdGlvbiIpCiAgICAgIGZpCiAgICAgIDs7CiAgICAjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi1F
InwiLS1lcnJvciIpCiAgICAgICMgeyAtRSBOVU0sIC1FIH0gYWxsb3dzIG9wdGlvbmFsIGFyZ3Vt
ZW50IHZhbHVlCiAgICAgIGN0cD0iJHJlZCIKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiQy
IiA7IHRoZW4KICAgICAgICBubD0iJDIiIDsgc2hpZnQgOyBzaGlmdAogICAgICBlbHNlCiAgICAg
ICAgbmw9MSA7IHNoaWZ0IDEKICAgICAgZmkKICAgICAgOzsKICAgICgiLUU9Iip8Ii0tZXJyb3I9
IiopCiAgICAgICMgeyAtRT1OVU0sIC1FPSB9IGFsbG93cyBvcHRpb25hbCBhcmd1bWVudCB2YWx1
ZQogICAgICBjdHA9IiRyZWQiCiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlwICIkezEjKj19IiA7
IHRoZW4KICAgICAgICBubD0iJHsxIyo9fSIgOyBzaGlmdCAxCiAgICAgIGVsc2UKICAgICAgICBu
bD0xIDsgc2hpZnQgMQogICAgICBmaQogICAgICA7OwogICAgKCItRSIqKSAgICAgICAgICAjIHsg
LUVOVU0gfQogICAgICBjdHA9IiRyZWQiCiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlwICIkezEj
LUV9IiA7IHRoZW4KICAgICAgICBubD0iJHsxIy1FfSIgOyBzaGlmdCAxCiAgICAgIGVsc2UKICAg
ICAgICBubD0xIDsgc2hpZnQgMQoJZWR2ZXJyKz0oIiB7LUVOVU19IE5VTSBmYWlscyBudW1lcmlj
IHZhbGlkYXRpb24iKQogICAgICBmaQogICAgICA7OwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgKCItYiJ8Ii0tYmx1IikKICAgICAg
IyB7IC1iIE5VTSwgLWIgfSBhbGxvd3Mgb3B0aW9uYWwgYXJndW1lbnQgdmFsdWUKICAgICAgY3Rw
PSIkYmx1IgogICAgICBpZiBsaW5nZS1udW1lcmljIC1JcCAiJDIiIDsgdGhlbgoJZWNobyAiYmx1
ZSAkMiAkPyIKICAgICAgICBubD0iJDIiIDsgc2hpZnQgOyBzaGlmdAogICAgICBlbHNlCglubD0x
IDsgc2hpZnQgMQogICAgICBmaQogICAgICA7OwogICAgKCItYj0iKnwiLS1ibHU9IiopCiAgICAg
ICMgeyAtYj1OVU0sIC1iPSB9IGFsbG93cyBvcHRpb25hbCBhcmd1bWVudCB2YWx1ZQogICAgICBj
dHA9IiRibHUiCiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlwICIkezEjKj19IiA7IHRoZW4KICAg
ICAgICBubD0iJHsxIyo9fSIgOyBzaGlmdCAxCiAgICAgIGVsc2UKICAgICAgICBubD0xIDsgc2hp
ZnQgMQogICAgICBmaQogICAgICA7OwogICAgKCItYiIqKSAgIyB7IC1iTlVNIH0KICAgICAgY3Rw
PSIkYmx1IgogICAgICBpZiBsaW5nZS1udW1lcmljIC1JcCAiJHsxIy1ifSIgOyB0aGVuCiAgICAg
ICAgbmw9IiR7MSMtYn0iIDsgc2hpZnQgMQogICAgICBlbHNlCglubD0xIDsgc2hpZnQgMQoJZWR2
ZXJyKz0oIiB7LWJOVU19IE5VTSBmYWlscyBudW1lcmljIHZhbGlkYXRpb24iKQogICAgICBmaQog
ICAgICA7OwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogICAgKCItZyJ8Ii0tZ3JuIikKICAgICAgIyB7IC1nIE5VTSwgLWcgfSBhbGxvd3Mg
b3B0aW9uYWwgYXJndW1lbnQgdmFsdWUKICAgICAgY3RwPSIkZ3JuIgogICAgICBpZiBsaW5nZS1u
dW1lcmljIC1JcCAiJDIiIDsgdGhlbgogICAgICAgIG5sPSIkMiIgOyBzaGlmdCA7IHNoaWZ0CiAg
ICAgIGVsc2UKCW5sPTEgOyBzaGlmdCAxCiAgICAgIGZpCiAgICAgIDs7CiAgICAoIi1nPSIqfCIt
LWdybj0iKikKICAgICAgIyB7IC1nPU5VTSwgLWc9IH0gYWxsb3dzIG9wdGlvbmFsIGFyZ3VtZW50
IHZhbHVlCiAgICAgIGN0cD0iJGdybiIKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiR7MSMq
PX0iIDsgdGhlbgogICAgICAgIG5sPSIkezEjKj19IiA7IHNoaWZ0IDEKICAgICAgZWxzZQoJbmw9
MSA7IHNoaWZ0IDEKICAgICAgZmkKICAgICAgOzsKICAgICgiLWciKikgICMgeyAtZ05VTSB9CiAg
ICAgIGN0cD0iJGdybiIKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiR7MSMtZ30iIDsgdGhl
bgogICAgICAgIG5sPSIkezEjLWd9IiA7IHNoaWZ0IDEKICAgICAgZWxzZQoJbmw9MSA7IHNoaWZ0
IDEKCWVkdmVycis9KCIgey1nTlVNfSBOVU0gZmFpbHMgbnVtZXJpYyB2YWxpZGF0aW9uIikKICAg
ICAgZmkKICAgICAgOzsKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgICgiLWMifCItLWN5biIpCiAgICAgICMgeyAtYyBOVU0sIC1jIH0g
YWxsb3dzIG9wdGlvbmFsIGFyZ3VtZW50IHZhbHVlCiAgICAgIGN0cD0iJGN5biIKICAgICAgaWYg
bGluZ2UtbnVtZXJpYyAtSXAgIiQyIiA7IHRoZW4KICAgICAgICBubD0iJDIiIDsgc2hpZnQgOyBz
aGlmdAogICAgICBlbHNlCglubD0xIDsgc2hpZnQgMQogICAgICBmaQogICAgICA7OwogICAgKCIt
Yz0iKnwiLS1jeW49IiopCiAgICAgICMgeyAtYz1OVU0sIC1jPSB9IGFsbG93cyBvcHRpb25hbCBh
cmd1bWVudCB2YWx1ZQogICAgICBjdHA9IiRjeW4iCiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlw
ICIkezEjKj19IiA7IHRoZW4KICAgICAgICBubD0iJHsxIyo9fSIgOyBzaGlmdCAxCiAgICAgIGVs
c2UKCW5sPTEgOyBzaGlmdCAxCiAgICAgIGZpCiAgICAgIDs7CiAgICAoIi1jIikgICMgeyAtY05V
TSB9CiAgICAgIGN0cD0iJGN5biIKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiR7MSMtY30i
IDsgdGhlbgogICAgICAgIG5sPSIkezEjLWN9IiA7IHNoaWZ0IDEKICAgICAgZWxzZQoJbmw9MSA7
IHNoaWZ0IDEKCWVkdmVycis9KCIgey1jTlVNfSBOVU0gZmFpbHMgbnVtZXJpYyB2YWxpZGF0aW9u
IikKICAgICAgZmkKICAgICAgOzsKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICgiLXIifCItLXJlZCIpCiAgICAgICMgeyAtciBOVU0s
IC1yIH0gYWxsb3dzIG9wdGlvbmFsIGFyZ3VtZW50IHZhbHVlCiAgICAgIGN0cD0iJHJlZCIKICAg
ICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiQyIiA7IHRoZW4KICAgICAgICBubD0iJDIiIDsgc2hp
ZnQgOyBzaGlmdAogICAgICBlbHNlCglubD0xIDsgc2hpZnQgMSAKCWVkdmVycis9KCIgey1yIE5V
TX0gTlVNIGZhaWxzIG51bWVyaWMgdmFsaWRhdGlvbiIpCiAgICAgIGZpCiAgICAgIDs7CiAgICAo
Ii1yPSIqfCItLXJlZD0iKikKICAgICAgIyB7IC1yPU5VTSwgLXI9IH0gYWxsb3dzIG9wdGlvbmFs
IGFyZ3VtZW50IHZhbHVlCiAgICAgIGN0cD0iJHJlZCIKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAt
SXAgIiR7MSMqPX0iIDsgdGhlbgogICAgICAgIG5sPSIkezEjKj19IiA7IHNoaWZ0IDEKICAgICAg
ZWxzZQoJbmw9MSA7IHNoaWZ0IDEKICAgICAgZmkKICAgICAgOzsKICAgICgiLXIiKikgICMgeyAt
ck5VTSB9CiAgICAgIGN0cD0iJHJlZCIKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiR7MSMq
PX0iIDsgdGhlbgogICAgICAgIG5sPSIkezEjKj19IiA7IHNoaWZ0IDEKICAgICAgZWxzZQoJbmw9
MSA7IHNoaWZ0IDEgCgllZHZlcnIrPSgiIHstck5VTX0gTlVNIGZhaWxzIG51bWVyaWMgdmFsaWRh
dGlvbiIpCiAgICAgIGZpCiAgICAgIDs7CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi1tInwiLS1tZ24iKQogICAgICAjIHsgLW0g
TlVNLCAtbSB9IGFsbG93cyBvcHRpb25hbCBhcmd1bWVudCB2YWx1ZQogICAgICBjdHA9IiRtZ24i
CiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlwICIkMiIgOyB0aGVuCiAgICAgICAgbmw9IiQyIiA7
IHNoaWZ0IDsgc2hpZnQKICAgICAgZWxzZQoJbmw9MSA7IHNoaWZ0IDEKICAgICAgZmkKICAgICAg
OzsKICAgICgiLW09Iip8Ii0tbWduPSIqKQogICAgICAjIHsgLW0gTlVNLCAtbSB9IGFsbG93cyBv
cHRpb25hbCBhcmd1bWVudCB2YWx1ZSAKICAgICAgY3RwPSIkbWduIgogICAgICBpZiBsaW5nZS1u
dW1lcmljIC1JcCAiJHsxIyo9fSIgOyB0aGVuCiAgICAgICAgbmw9IiR7MSMqPX0iIDsgc2hpZnQg
MQogICAgICBlbHNlCglubD0xIDsgc2hpZnQgMQogICAgICBmaQogICAgICA7OwogICAgKCItbSIq
KSAgICMgeyAtbU5VTSB9CiAgICAgIGN0cD0iJG1nbiIKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAt
SXAgIiR7MSMtbX0iIDsgdGhlbgogICAgICAgIG5sPSIkezEjLW19IiA7IHNoaWZ0IDEKICAgICAg
ZWxzZQoJbmw9MSA7IHNoaWZ0IDEgCgllZHZlcnIrPSgiIHstbU5VTX0gTlVNIGZhaWxzIG51bWVy
aWMgdmFsaWRhdGlvbiIpCiAgICAgIGZpCiAgICAgIDs7CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi1vInwiLS1vcmciKQogICAg
ICAjIHsgLW8gTlVNLCAtbyB9IGFsbG93cyBvcHRpb25hbCBhcmd1bWVudCB2YWx1ZQogICAgICBj
dHA9IiRvcmciCiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlwICIkMiIgOyB0aGVuCiAgICAgICAg
bmw9IiQyIiA7IHNoaWZ0IDsgc2hpZnQKICAgICAgZWxzZQoJbmw9MSA7IHNoaWZ0IDEKICAgICAg
ZmkKICAgICAgOzsKICAgICgiLW89Iip8Ii0tb3JnPSIqKQogICAgICAjIHsgLW89TlVNLCAtbz0g
fSBhbGxvd3Mgb3B0aW9uYWwgYXJndW1lbnQgdmFsdWUKICAgICAgY3RwPSIkb3JnIgogICAgICBp
ZiBsaW5nZS1udW1lcmljIC1JcCAiJHsxIyo9fSIgOyB0aGVuCiAgICAgICAgbmw9IiR7MSMqPX0i
IDsgc2hpZnQgMQogICAgICBlbHNlCglubD0xIDsgc2hpZnQgMSAKICAgICAgZmkKICAgICAgOzsK
ICAgICgiLW8iKikgICMgeyAtb05VTSB9CiAgICAgIGN0cD0iJG9yZyIKICAgICAgaWYgbGluZ2Ut
bnVtZXJpYyAtSXAgIiR7MSMtb30iIDsgdGhlbgogICAgICAgIG5sPSIkezEjLW99IiA7IHNoaWZ0
IDEKICAgICAgZWxzZQoJbmw9MSA7IHNoaWZ0IDEgCgllZHZlcnIrPSgiIHstb05VTX0gTlVNIGZh
aWxzIG51bWVyaWMgdmFsaWRhdGlvbiIpCiAgICAgIGZpCiAgICAgIDs7CiAgICAjIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi0tY29sZiIp
ICAgICAgICMgeyAtLWNvbGYgMjMzIH0KICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiQyIiA7
IHRoZW4KICAgICAgICBjbj0iJDIiIDsgc2hpZnQgOyBzaGlmdAogICAgICBlbHNlCiAgICAgICAg
Y249MjA4IDsgc2hpZnQgMQoJZWR2ZXJyKz0oIiB7LS1jb2xmIE5VTX0gTlVNIGZhaWxzIG51bWVy
aWMgdmFsaWRhdGlvbiIpCiAgICAgIGZpCiAgICAgIG5sPTEKICAgICAgY3RwPSQodHB1dCBib2xk
KSQodHB1dCBzZXRhZiAkY24pIDsgcnN0PSIkc2dyIgogICAgICA7OwogICAgKCItLWNvbGY9Iiop
ICAgICAjIHsgLS1jb2xmPTIzMyB9CiAgICAgIGlmIGxpbmdlLW51bWVyaWMgLUlwICIkezEjKj19
IiA7IHRoZW4KICAgICAgICBjbj0iJHsxIyo9fSIgOyBzaGlmdCA7IHNoaWZ0CiAgICAgIGVsc2UK
ICAgICAgICBjbj0yMDggOyBzaGlmdCAxCgllZHZlcnIrPSgiIHstLWNvbGY9TlVNfSBOVU0gZmFp
bHMgbnVtZXJpYyB2YWxpZGF0aW9uIikKICAgICAgZmkKICAgICAgbmw9MQogICAgICBjdHA9JCh0
cHV0IGJvbGQpJCh0cHV0IHNldGFmICRjbikgOyByc3Q9IiRzZ3IiCiAgICAgIDs7CiAgICAjIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi1s
IikKICAgICAgIyB7LWwgTlVNLCAtbH0gYWxsb3dzIG9wdGlvbmFsIGFyZ3VtZW50IHZhbHVlCiAg
ICAgIGlmIGxpbmdlLW51bWVyaWMgLUlwICIkMiIgOyB0aGVuCiAgICAgICAgbmw9IiQyIiA7IHNo
aWZ0IDsgc2hpZnQKICAgICAgZWxzZQogICAgICAgIG5sPTEgOyBzaGlmdCAxCiAgICAgIGZpCiAg
ICAgIDs7CiAgICAoIi1sPSIqKQogICAgICAjIHsgLWw9TlVNLCAtbD0gfSBhbGxvd3Mgb3B0aW9u
YWwgYXJndW1lbnQgdmFsdWUKICAgICAgaWYgbGluZ2UtbnVtZXJpYyAtSXAgIiR7MSMqPX0iIDsg
dGhlbgogICAgICAgIG5sPSIkezEjKj19IiA7IHNoaWZ0IDEKICAgICAgZWxzZQogICAgICAgIG5s
PTEgOyBzaGlmdCAxCiAgICAgIGZpCiAgICAgIDs7CiAgICAoIi1sIiopICAjIHsgLWxOVU0gfQog
ICAgICBpZiBsaW5nZS1udW1lcmljIC1JcCAiJHsxIy1sfSIgOyB0aGVuCiAgICAgICAgbmw9IiR7
MSMtbH0iIDsgc2hpZnQgMQogICAgICBlbHNlCiAgICAgICAgbmw9MSA7IHNoaWZ0IDEKCWVkdmVy
cis9KCIgey1sTlVNfSBOVU0gZmFpbHMgbnVtZXJpYyB2YWxpZGF0aW9uIikKICAgICAgZmkKICAg
ICAgOzsKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KICAgICgiOiIpIHByaW50ZiAnJXNcbicgIlJlcXVpcmVzIGFuIGFyZ3VtZW50IHZhbHVl
IiA7OwogICAgKCI/IikgcHJpbnRmICclc1xuJyAiSW52YWxpZCBvcHRpb246IiA7OwogICAgKCIt
LSIpIHNoaWZ0IDEgOyBicmVhayA7OwogICAgKCopIG9wdF9lcnJvcj0xIDsgYnJlYWsgOzsKICAg
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg
ZXNhYwogZG9uZQogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCgogIyMgaDIgUFJJTlQgUHJpbnQgdGV4dCB3aXRoIHJlZ3VsYXIgb3Igd2Fy
bmluZyBjb2xvdXIKCiAjIGFsdGVybmF0aXZlIHZhbGlkYXRpb24gZm9yIGludGVnZXJzIHVzaW5n
IHBhcmFtZXRlciBleHBhbnNpb24KICMgdmFyPTEyMzQ1CiAjIGVjaG8gIiR7dmFyLy9bMC05XS99
IgogIyBjYXNlICR7dmFyLy9bMC05XS99IGluCiAjICAgPyopIGVjaG8gInZhcjogc3RyaW5nIG9y
IG5vbi1pbnRlZ2VyIiA7OwogIyAgICopICBlY2hvICJ2YXI6IGludGVnZXIiIDs7CiAjIGVzYWMK
CiAjIGVjaG8gImFnZ3I6IHwke2FnZ3JbKl19fCIKICMgZWNobyAibndsaW5lOiAkbndsaW5lIHwg
bmw6ICRubCIKCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogIyMgcHJpbnRmIGZvcm1hdCBkZXNjcmlwdG9yCiAjICBXaGVu
IHRoZXJlIGFyZSBtb3JlIGFyZ3VtZW50cyB0aGFuIGRlY2xhcmVkIGluIHRoZSBwcmludGYgZm9y
bWF0CiAjICBkZXNjcmlwdG9yLCB0aGUgZGVzY3JpcHRvciBpcyByZXBlYXRlZCBhcyBuZWNlc3Nh
cnkgdG8gY29uc3VtZSBhbGwKICMgIGFyZ3VtZW50cy4KCiBhZ2dyPSgiJEAiKQogKCggbndsaW5l
ID09IDEgKSkgJiYgZnM9J1xuJyB8fCBmcz0nICcKCiBpZiAoKCAkeyNlZHZlcnJbQF19ID4gMCAp
KTsgdGhlbgogICBwcmludGYgJ1xuJXMlcyVzXG4nICRyZWQgIkxpc3Qgb2YgZGV0ZWN0ZWQgZXJy
b3JzIiAkc2dyCiAgIHByaW50ZiAnJXNcbicgIiR7ZWR2ZXJyW0BdfSIKICAgZWNobwogZmkKCiBs
b2NhbCByZ2U9J15bMC05XSskJwogaWYgW1sgIiRubCIgPX4gJHJnZSBdXTsgdGhlbgoKICAgaW1w
bD0icm5nZSIKICAgY2FzZSAkaW1wbCBpbgogICAgIyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgogICAgIyBJbXBsZW1lbnRhdGlvbiB1c2luZyBhcnJheSBsb29wCiAgICAoImxvb3AiKQog
ICAgICBsb2NhbCBhcmdjPSQjCiAgICAgICgoIG5sID4gYXJnYyApKSAmJiBubD0kYXJnYwogICAg
ICBmb3IgKCggaj0wOyBqPGFyZ2M7IGorKyApKTsgZG8KCSgoIGorMSA8PSBubCApKSAmJiBwcmlu
dGYgJyVzJXMlcyR7ZnN9JyAkY3RwICIke2FnZ3Jbal19IiAkcnN0CgkoKCBqKzEgPiBubCApKSAm
JiBwcmludGYgJyVzJHtmc30nICIke2FnZ3Jbal19IgogICAgICBkb25lCiAgICAgIDs7CiAgICAj
IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCiAgICAjIEltcGxlbWVudGF0aW9uIHVzaW5n
IGFycmF5IHJhbmdlCiAgICAoInJuZ2UiKQogICAgICAoKCBubCA+IDAgKSkgICYmIHByaW50ZiAi
JXMke2ZzfSIgIiR7Y3RwfSR7YWdncltAXTowOm5sfSR7cnN0fSIKICAgICAgKCggbmwgPCAkIyAp
KSAmJiBwcmludGYgIiVzJHtmc30iICIke2FnZ3JbQF06bmx9IgogICAgICA7OwogICBlc2FjCgog
ZmkKCiAoKCBud2xpbmUgPT0gMCApKSAmJiBlY2hvCiAKIHJldHVybiAwCgp9CgojIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBEZWZpbmUg
YSBiYXNoIHNoZWxsIGZ1bmN0aW9uIHJhdGhlciB0aGFuIGFuIGFsaWFzCgpwZm0gKCkKewogIGxp
bmdlLXByaW50Zi1tdWx0aXBsZSAiJEAiCn0KCiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIyBoMSAqIFNldCBBbGlhc2VzCgojIyBoMiAg
ICogVXNlIG9mIENvbG91ciAKCmxpbmdlLXJlZ2lzdGVyICgpCnsKIGxvY2FsIGJsdT0kKHRwdXQg
Ym9sZCkkKHRwdXQgc2V0YWYgMzkpCiBsb2NhbCBzZ2E9JGJsdSBzZ3I9JCh0cHV0IHNncjApCiAg
ICAgCiBsb2NhbCBmbT0nJXNcbicKIF9QRj0icHJpbnRmICRmbSIKIAogZWNobwogcHJpbnRmICcl
c1xuJyAiZWR2YXJ0IiAiKioqKioqIgoKIGVjaG8KICRfUEYgIkZvciB1c2FnZSBpbmZvcm1hdGlv
biBpbnZva2UgdGhlIC11IGNvbW1hbmQiCiAkX1BGICIgIGVkdmFydC1tb2xuaXlhLWNvbWludCAt
dSIKIAogZWNobyAKICRfUEYgIiRzZ2EgZWR2YXJ0LW1vbG5peWEtY29taW50ICRzZ3IiCiAkX1BG
ICIgICBEaXNwbGF5cyBtYXRjaGluZyBwYXR0ZXJucyBpbiBwbGFpbi10ZXh0IGRhdGEgc2V0cy4i
CgogZWNobyAKICRfUEYgIiRzZ2EgZWR2YXJ0LW1vbG5peWEtY29taW50ICRzZ3IiCiAkX1BGICIg
ICBEaXNwbGF5cyBtYXRjaGluZyBwYXR0ZXJucyBpbiBwbGFpbi10ZXh0IGRhdGEgc2V0cy4iCgog
JF9QRiAiJHNnYSBlZHZhcnQtY3lnbml1bS1lbmdpbmUgJHNnciIKICRfUEYgIiAgIFRvb2wgZm9y
IGVmZmljaWVudGx5IHRyYW5zZmVycmluZyBhbmQgc3luY2hyb25pemluZyBmaWxlcyIKICRfUEYg
IiAgIGJldHdlZW4gbmV0d29ya2VkIGNvbXB1dGVycyBhbmQgc3RvcmFnZSBkZXZpY2VzIGJ5IGNv
bXBhcmluZyIKICRfUEYgIiAgIGZpbGUgbW9kaWZpY2F0aW9uIHRpbWVzIGFuZCBzaXplcy4iCgog
JF9QRiAiJHNnYSBlZHZhcnQtY3VyaXBsYXlhLXRhdXRvbmEgJHNnciIKICRfUEYgIiAgIFRvb2wg
Zm9yIGVmZmljaWVudGx5IHRyYW5zZmVycmluZyBhbmQgc3luY2hyb25pemluZyBmaWxlcyIKfQoK
IyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMKCjw8LSAiX2NvbW1lbnQiCiogc2V0IGFsdGVybmF0aXZlcyBmb3IgbGlzdGluZyBmaWxl
cyBpbiBhIHVuaXgtbGlrZSB0ZXJtaW5hbApfY29tbWVudAoKbGluZ2UtY21kLWxpc3QgKCkKewog
bG9jYWwgZXhlY19yYz0wCiBjYXNlICIkMSIgaW4KICAoIi1WInwiLS12ZXJzaW9uIikKICAgIGxv
Y2FsIC1yIGV0ZGF0ZT0iVjAxIEp1bCAyMDIxIFdrMjciCiAgICBwcmludGYgJyVzXG4nICIkZXRk
YXRlIFN0cmF0ZWdpc3QgQ2hyaXN0b3BoZXIgRGltZWNoIgogICAgcmV0dXJuIDAKICAgIDs7CiAg
KCItaCJ8Ii0taGVscCIpCiAgICBwcmludGYgIlNlYXJjaGVzIGlucHV0IGZpbGVzIGZvciBsaW5l
cyBjb250YWluaW5nIG1hdGNoZXMuXG4iCiAgICBwcmludGYgInJzICAgRmlsZSB0cmFuc2ZlciBv
ZiBhY2hpdmUuXG4iCiAgICBwcmludGYgInJzdSAgVXBkYXRlIGJ5IHNraXBwaW5nIG5ld2VyIGZp
bGVzIG9uIHJlY2VpdmVyLlxuIgogICAgcHJpbnRmICJycnMgIFJhcGlkIGZpbGUgdHJhbnNmZXIu
XG4iCiAgICByZXR1cm4gMAogICAgOzsKICAjIC0tLS0tLS0tLS0tLS0tLS0tCiAgKCItZSJ8Ii0t
ZXhlYyIpIGV4ZWNfcmM9MSA7IHNoaWZ0IDEgOzsKICAjIC0tLS0tLS0tLS0tLS0tLS0tCiAgKCop
CiAgICBwcmludGYgIkludm9rZSBcYGxpbmdlLWNtZC1saXN0IC1oJyBmb3IgZGV0YWlscy5cbiIK
IGVzYWMKCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCgogaWYgKCggZXhlY19yYyA9PSAxICkpOyB0aGVuCgogICAjIHVzZSBjb2xvdXIgc2No
ZW1lIHdoZW4gbGlzdGluZyBmaWxlcyBpbiB1bml4LWxpa2UgdGVybWluYWwKICAgYWxpYXMgbHM9
J2xzIC0tY29sb3InCiAgIGFsaWFzIGRpcj0nZGlyIC0tY29sb3InCiAgIGFsaWFzIHZkaXI9J3Zk
aXIgLS1jb2xvcicKICAgYWxpYXMgZ3JlcD0nZ3JlcCAtLWNvbG9yJwogICBhbGlhcyBmZ3JlcD0n
ZmdyZXAgLS1jb2xvcicKICAgYWxpYXMgZWdyZXA9J2VncmVwIC0tY29sb3InCgogICAjIC4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgogICAjIGxpc3QgaW5mb3JtYXRpb24gYWJvdXQgZmls
ZXMKCiAgIGFsaWFzIGxkPSdscyAtZCAqLycgICMgbGlzdCBkaXJlY3RvcmllcwoKICAgYWxpYXMg
bGw9J2xzIC1hbEYnCiAgIGFsaWFzIGxhPSdscyAtQScKICAgYWxpYXMgbD0nbHMgLUNGJwogICBh
bGlhcyBsdD0nbHMgLWx0JyAgICAgIyBzb3J0IGJ5IGRhdGUKICAgYWxpYXMgbHg9J2xzIC1sWEIn
ICAgICMgc29ydCBieSBleHRlbnNpb24KCiAgIGFsaWFzIGxhPSdscyAtQScKICAgYWxpYXMgbGE9
J2xzIC1hRicgICAgICMgTGlzdCBhbGwgYW5kIGZpbGUgdHlwZXMKICAgYWxpYXMgbGw9J2xzIC1h
bEYnCiAgIGFsaWFzIGxsPSdscyAtbEYnICAgICAjIExpc3QgPGRpcj4gc3R5bGUKICAgIAogICBh
bGlhcyBscj0nbHMgLWxSJyAgICAgIyByZWN1cnNpdmUgbHMKICAgYWxpYXMgbHRyPSdscyAtbHRy
JyAgICMgc29ydCBieSBkYXRlIHJlY3Vyc2l2ZWx5CiAgIGFsaWFzIGxjcj0nbHMgLWxjcicgICAj
IHNvcnQgYnkgY2hhbmdlIHRpbWUKICAgYWxpYXMgbHVyPSdscyAtbHVyJyAgICMgc29ydCBieSBh
Y2Nlc3MgdGltZQoKICAgYWxpYXMgbHNyPSdscyAtbFNyJyAgICMgc29ydCBieSBzaXplCiAgICAK
IGZpCgp9CgojIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7CgojIyBoMiAgICogVXRpbGl0aWVzCiMjIGgzICAgICAqIGxpbmdlLWNt
ZC11dGlsCgpsaW5nZS1jbWQtdXRpbCAoKQp7CiBsb2NhbCBleGVjX3JjPTAKIGNhc2UgJDEgaW4K
ICAgKCItViJ8Ii0tdmVyc2lvbiIpCiAgICAgbG9jYWwgLXIgZXRkYXRlPSJWMDEgSnVsIDIwMjEg
V2syNyIKICAgICBwcmludGYgJyVzXG4nICIkZXRkYXRlIFN0cmF0ZWdpc3QgQ2hyaXN0b3BoZXIg
RGltZWNoIgogICAgIHJldHVybiAwCiAgICAgOzsKICAgKCItaCJ8Ii0taGVscCIpCiAgICAgcHJp
bnRmICJTZXQgYWxpYXNlcyBmb3IgdXRpbGl0aWVzLlxuIgogICAgIHJldHVybiAwCiAgICAgOzsK
ICAgKCItZSJ8Ii0tZXhlYyIpIGV4ZWNfcmM9MSA7IHNoaWZ0IDs7CiAgICMgLi4uLi4uLi4uLi4u
Li4uLi4KICAgKCopCiAgICAgcHJpbnRmICJJbnZva2UgXGBsaW5nZS1jbWQtdXRpbCAtaCcgZm9y
IGRldGFpbHMuXG4iCiBlc2FjCgogaWYgKCggZXhlY19yYyA9PSAxICkpOyB0aGVuCgogICAjIHJl
Y3Vyc2l2ZSBsaXN0aW5nIG9mIGRpcmVjdG9yaWVzIGFuZCBmaWxlcwogICAjIGxpc3QgZGlyZWN0
b3JpZXMgb25seSB3aXRoIGRpc3BsYXkgZGVwdGggYC1MIExFVkVMYAogICBhbGlhcyB0ZGw9J3Ry
ZWUgLWQgLUwnCiAgICAgCiAgICMgcmVtb3ZlIGVhY2ggZ2l2ZW4gZmlsZQogICBhbGlhcyBybWk9
J3JtIC1pJyAgICAjIHByb21wdCBiZWZvcmUgZXZlcnkgcmVtb3ZhbAogICBhbGlhcyBybWY9J3Jt
IC1mJyAgICAjIGlnbm9yZSBub24tZXhpc3RlbnQgZmlsZXMsIG5ldmVyIHByb21wdAoKICAgIyB2
aWV3IHRleHQgZmlsZXMsIGBsZXNzJyBkb2VzIG5vdCByZWFkIGVudGlyZSBmaWxlIGJlZm9yZSBk
aXNwbGF5CiAgIGFsaWFzIGw9J2xlc3MnICAgICAgICMgZmFzdGVyIHRoYW4gYG1vcmUnIHdpdGgg
YmFja3dhcmQgbW92ZW1lbnQKICAgYWxpYXMgbT0nbW9yZScgICAgICAgIyByZWFkcyBlbnRpcmUg
ZmlsZSBiZWZvcmUgZGlzcGxheQoKICAgIyB2aWV3IHBkZiBmaWxlcwogICBhbGlhcyBwZGZhPSdh
dHJpbCcgICAjIHZpZXcgcGRmIGZpbGVzCiAgIGFsaWFzIHBkZmU9J2V2aW5jZScgICMgdmlldyBw
ZGYgZmlsZXMKICAgIAogICAjIHNpZGUtYnktc2lkZSBmaWxlIGRpZmZlcmVuY2UgdXNpbmcgY29t
bWFuZCB0ZXJtaW5hbCB3aWR0aAogICBhbGlhcyBkaWZzaWRlPSdkaWZmIC15IC1XICQoKCAkKHRw
dXQgY29scykgLSAyICkpJwoKICAgYWxpYXMgZmVzdGl2b3g9J3hzZWwgfCBmZXN0aXZhbCAtLXR0
cycgICMgdGV4dCB0byBzcGVlY2gKICAgYWxpYXMgZmlnbGV0X3Nob3dmb250cz0nc2hvd2ZpZ2Zv
bnRzJyAgIyBzaG93IGZpZ2xldCBmb250cwoKIGZpCgp9CgojIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgojIyBoMiAgICogUGF0
aCBsb2NhdGlvbnMKCiMjIGgzICAgICAqIGxpbmdlLWVudmlyb24tYWRtaXIKCmxpbmdlLWVudmly
b24tYWRtaXIgKCkKewogbG9jYWwgZXhlY19yYz0wCiBjYXNlICQxIGluCiAgKCItViJ8Ii0tdmVy
c2lvbiIpCiAgICBsb2NhbCAtciBldGRhdGU9IlYwMSBKdWwgMjAyMSBXazI3IgogICAgcHJpbnRm
ICclc1xuXG4nICIkZXRkYXRlIFN0cmF0ZWdpc3QgQ2hyaXN0b3BoZXIgRGltZWNoIgogICAgcmV0
dXJuIDAKICAgIDs7CiAgKCItaCJ8Ii0taGVscCIpCiAgICBwcmludGYgIlNldCBhbGlhc2VzIGZv
ciBwYXRoIGxvY2F0aW9ucy5cbiIKICAgIHByaW50ZiAiYWdlbmRhOiBIT01FL0FnZW5kYVxuIgog
ICAgcHJpbnRmICJnbnVwYTogIEhPTUUvQWN0aXZlSm9icy9Cb29rcy9JbmZvY3MvR251cGFcbiIK
ICAgIHByaW50ZiAidGRyOiAgICBIT01FL0FjdGl2ZUpvYnMvUmVwb3J0cy9UZHIiCiAgICByZXR1
cm4gMAogICAgOzsKICAjIC4uLi4uLi4uLi4uLi4uLi4uCiAgKCItZSJ8Ii0tZXhlYyIpIGV4ZWNf
cmM9MSA7IHNoaWZ0IDs7CiAgIyAuLi4uLi4uLi4uLi4uLi4uLgogICgqKQogICAgcHJpbnRmICcl
c1xuJyAiSW52b2tlIFxgbGluZ2UtZW52aXJvbi1hZG1pciAtaCcgZm9yIGRldGFpbHMuIgogZXNh
YyAjIGNhc2UgZW5kcyBoZXJlCgogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK
ICMgU2V0IHNob3J0Y3V0cyB0byBzcGVjaWZpYyBkaXJlY3RvcmllcwogaWYgKCggZXhlY19yYyA9
PSAxICkpOyB0aGVuCiAgIGFsaWFzIGFnZW5kYT0ke0hPTUV9L0FnZW5kYQogICBhbGlhcyBnbnVw
YT0ke0hPTUV9L0FjdGl2ZUpvYnMvQm9va3MvSW5mb2NzL0dudXBhCiAgIGFsaWFzIHRkcj0ke0hP
TUV9L0FjdGl2ZUpvYnMvUmVwb3J0cy9UZHIKICAgYWxpYXMgdGRyZGV2PSR7SE9NRX0vMDUtRGV2
ZWxvcG1lbnQKICAgYWxpYXMgaGFnYmFyZD0nZWNobyBhZ2VuZGEgZ251cGEgdGRyZGV2JwogZmkK
Cn0KCiMgOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7OzsKCiMjIGgzIGxpbmdlLWFnZ3ItdXRpbAoKbGluZ2UtYWdnci11dGlsICgpCnsK
IGxvY2FsIGV4ZWNfcmM9MAogY2FzZSAkMSBpbgogICgiLVYifCItLXZlcnNpb24iKQogICAgbG9j
YWwgLXIgZXRkYXRlPSJWMDEgSnVsIDIwMjEgV2syNyIKICAgIHByaW50ZiAnJXNcblxuJyAiJGV0
ZGF0ZSBTdHJhdGVnaXN0IENocmlzdG9waGVyIERpbWVjaCIKICAgIHJldHVybiAwCiAgICA7Owog
ICgiLWgifCItLWhlbHAiKQogICAgcHJpbnRmICdTZXQgYWxpYXNlcyBmb3IgcGF0aCBsb2NhdGlv
bnMuXG4nCiAgICBwcmludGYgJ2FnZW5kYTogSE9NRS9BZ2VuZGFcbicKICAgIHByaW50ZiAnZ251
cGE6ICBIT01FL0FjdGl2ZUpvYnMvQm9va3MvSW5mb2NzL0dudXBhXG4nCiAgICBwcmludGYgJ3Rk
cjogICAgSE9NRS9BY3RpdmVKb2JzL1JlcG9ydHMvVGRyJwogICAgcmV0dXJuIDAKICAgIDs7CiAg
IyAuLi4uLi4uLi4uLi4uLi4uLgogICgiLWUifCItLWV4ZWMiKSBleGVjX3JjPTEgOyBzaGlmdCAx
IDs7CiAgIyAuLi4uLi4uLi4uLi4uLi4uLgogICgqKQogICAgcHJpbnRmICdJbnZva2UgXGBsaW5n
ZS1hZ2dyLXV0aWwgLWhcYCBmb3IgZGV0YWlscy5cbicKICAgIDs7CiBlc2FjCgogaWYgKCggZXhl
Y19yYyA9PSAxICkpOyB0aGVuCiAgIGxpbmdlLWNtZC1saXN0IC0tZXhlYwogICBsaW5nZS1jbWQt
dXRpbCAtLWV4ZWMKICAgbGluZ2UtZW52aXJvbi1hZG1pciAtLWV4ZWMKIGZpCn0KCiMgLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4K
CiMjIGgzIGxpbmdlLWVudmlyb24tb3Bjb20KCmxpbmdlLWVudmlyb24tb3Bjb20gKCkKewogIyBQ
cmludHMgdXNlZnVsIGRpcmVjdG9yaWVzLiAgCiBzZ3I9JCh0cHV0IHNncjApIDsgc2dhPSQodHB1
dCBzZXRhZiAyMDApCiAKIHByaW50ZiAiJHtzZ2F9VXNlZnVsIERpcmVjdG9yaWVzOiIKIHByaW50
ZiAiIGNkIH4vMDFjaGFvcy90ZHIgIGNkIGFkbWlyL2d1bmdhZGluJHtzZ3J9Igp9CgojID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKIyMgaDMg
bGluZ2UtdXNhZ2UtY2FsCgpsaW5nZS11c2FnZS1jYWxjICgpCnsKIGNhc2UgJDEgaW4KICAoMSkK
ICAgICBwcmludGYgJyVzXG4nICJsaW5nZS1jYWxjIE9QVElPTlMgRVhQUiIKICAgICBwcmludGYg
JyVzXG4nICItdiBMViwgLXY9TFYsIC12TFYsIC0tdmVyYm9zaXR5IExWLCAtLXZlcmJvc2l0eT1M
ViIKICAgICBwcmludGYgJyVzXG4nICItdSBMViwgLXU9TFYsIC11TFYsIC0tdXNhZ2UgTFYsIC0t
dXNhZ2U9TFYiCiAgICAgcHJpbnRmICclc1xuJyAiey1WLCAtLXZlcnNpb259LCB7LWgsIC0taGVs
cH0iCiAgICAgOzsKICAoMikKICAgICBIREcgIlVzYWdlIgogICAgIHByaW50ZiAnJXNcbicgIiAg
bGluZ2UtY2FsYyBcIjE4LjIxICsgMzQuNTVcIiIKICAgICBwcmludGYgJyVzXG4nICIgIGxpbmdl
LWNhbGMgXCIxMF4yXCIiCiAgICAgcHJpbnRmICclc1xuJyAiICBsaW5nZS1jYWxjIFwidmFyPTEw
IDsgKyt2YXJcIiIKICAgICBwcmludGYgJyVzXG4nICIgIGxpbmdlLWNhbGMgXCJ2YXI9MTAgOyB2
YXIrK1wiIgogICAgIHByaW50ZiAnJXNcbicgIiAgbGluZ2UtY2FsYyBcIjEwID4gNVwiIgogICAg
IDs7CiBlc2FjCQp9CgojICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKwoKIyMgaDMgbGluZ2UtY2FsYwoKbGluZ2UtY2FsYyAoKQp7CiB3aGlsZSAo
KCAkIyA+IDAgKSk7IGRvCiAgIG9wdD0iJDEiCiAgIGNhc2UgJG9wdCBpbgogICAgKCItViJ8Ii0t
dmVyc2lvbiIpCiAgICAgIGxvY2FsIC1yIGV0ZGF0ZT0iVjAxIEp1bCAyMDIxIFdrMjciCiAgICAg
IHBmbSAiJGV0ZGF0ZSBNYXRlbWF0aWtlciBDaHJpc3RvcGhlciBEaW1lY2giICIiCiAgICAgIHJl
dHVybiAwCiAgICAgIDs7CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgICAoIi12InwiLS12ZXJib3NpdHkiKSAgdmI9IiQyIiA7IHNoaWZ0
IDsgc2hpZnQgOzsKICAgICgiLXY9Iip8Ii0tdmVyYm9zaXR5PSIqKSB2Yj0iJHsxIyo9fSI7IHNo
aWZ0IDEgOzsKICAgICgiLXYiKikgdmI9IiR7MSMtdn0iOyBzaGlmdCAxIDs7CiAgICAjIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAoIi11Inwi
LS11c2FnZSIpCiAgICAgIHJldHVybiAwCiAgICAgIDs7CiAgICAoIi1oInwiLS1oZWxwIikKICAg
ICAgcHJpbnRmICIlc1xuIiAiUGVyZm9ybXMgbWF0aGVtYXRpY2FsIGNvbXB1dGF0aW9ucyB3aXRo
IGJjLiIKICAgICAgcHJpbnRmICIlc1xuIiAiRVhQUiAgTWF0aGVtYXRpY2FsIGV4cHJlc3Npb24u
IgogICAgICBIREcgIlN1cHBvcnRlZCBNYXRoZW1hdGljYWwgRnVuY3Rpb25zIgogICAgICBQRiAi
IHMoeCkgICAgU2luZSBvZiB4LCB4IGlzIGluIHJhZGlhbnMiCiAgICAgIFBGICIgYyh4KSAgICBD
b3NpbmUgb2YgeCwgeCBpcyBpbiByYWRpYW5zIgogICAgICBQRiAiIGEoeCkgICAgQXJjdGFuZ2Vu
dCBvZiB4LCBhcmN0YW5lbnQgcmV0dXJucyByYWRpYW5zIgogICAgICBQRiAiIGwoeCkgICAgTmF0
dXJhbCBsb2dhcml0aG0gb2YgeCIKICAgICAgUEYgIiBlKHgpICAgIEV4cG9uZW50aWFsIGZ1bmN0
aW9uIG9mIHJhaXNpbmcgZSB0byB0aGUgdmFsdWUgeCIKICAgICAgUEYgIiBqKG4seCkgIEJlc3Nl
bCBmdW5jdGlvbiBvZiBpbnRlZ2VyIG9yZGVyIG4gb2YgeCIKICAgICAgUEYgIiBzcXJ0KHgpIFNx
dWFyZSByb290IG9mIG51bWJlciB4IgogICAgICByZXR1cm4gMAogICAgICA7OwogICAgIyAuLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgICgqKSBicmVhayA7OwogICAgIyAuLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KICAgZXNhYyAgIyAgY2FzZSBlbmRzIGhlcmUKIGRvbmUg
ICMgd2hpbGUgZW5kcyBoZXJlCgogcnNsdD0kKCBlY2hvICIkMSIgfCBiYyAtbCApCgogZWNobyAi
JHJzbHQiCn0KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CgojIyBoMyBsaW5nZS10YWJsZQoKbGluZ2UtdGFibGUgKCkKewogbG9jYWwgdmI9
MSBwcmVkaWNhdGVfZXJyb3I9MCB3aWR0aD0wIGFsaWduPSJyaWdodCIKCiBsb2NhbCBfUEY9InBy
aW50ZiAlc1xuIgogbG9jYWwgX1BGMT0icHJpbnRmIFxuJXNcbiIgX1BGMj0icHJpbnRmICVzXG5c
biIKCiAjICogTmVnYXRpdmUgUHJlZml4ZXMgKG5vbi0gYW5kIHVuLSkKICMgICB1bi0gICBJbmRp
Y2F0ZXMgbm90LCBsYWNrIG9mLCBvciBhYnNlbmNlIG9mIHNvbWV0aGluZy4KICMgICBub24tICBV
c2VkIHdpdGggYW55IHdvcmQsIHRodXMgdGhlIG1vc3QgdXNlZnVsIGFuZCB2ZXJzYXRpbGUuCiAK
IHdoaWxlICgoICQjID4gMCApKTsgZG8gICMgJCMgaXMgZGVjcmVtZW50ZWQgYnkgc2hpZnQKICBv
cHQ9IiQxIgogIGNhc2UgJG9wdCBpbgogICAoIi1WInwidmVyc2lvbiIpCiAgICAgbG9jYWwgLXIg
ZXRkYXRlPSJWMDEgSnVsIDIwMjEgV2syNyIgICAKICAgICAkX1BGMiAiICRldGRhdGUgU3RyYXRl
Z2lzdCBDaHJpc3RvcGhlciBEaW1lY2giCiAgICAgcmV0dXJuIDAKICAgICA7OwogICAoIi1oInwi
LS1oZWxwIikKICAgICAkX1BGICJQcmludHMgcGFyYW1ldGVycyBpbiB0YWJsZSBmb3JtYXQiCiAg
ICAgJF9QRiAiSW5jbHVkZXMgRHluYW1pYyBXaWR0aCBBZGp1c3RtZW50IgogICAgIHJldHVybiAw
CiAgICAgOzsKICAgKCItdSJ8Ii0tdXNhZ2UiKQogICAgIHByaW50ZiAnXG4lcycgIlVzYWdlIiAi
KioqKioiCiAgICAgcHJpbnRmICdcblxuJXNcbicgImxpbmdlLWNhbGMgT1BUSU9OUyBFWFBSIgog
ICAgIHByaW50ZiAnJXNcblxuJyAiLVYsIC0tdmVyc2lvbiwgLXUsIC0tdXNhZ2UsIC1oLCAtLWhl
bHAiCiAgICAgcHJpbnRmICclc1xuJyAiRXhhbXBsZXMiICIqKioqKioqKiIKICAgICBzYT0iXCJU
aGUgZmluZXN0XCIgXCJtYW4gSSBrbmV3XCIiCiAgICAgc2I9IlwiV2FzIG91clwiIFwicmVnaW1l
bnRhbCBiaGlzdGksXCIgXCJHdW5nYSBEaW4sXCIiCiAgICAgJF9QRjEgImxpbmdlLXRhYmxlIC13
IDE4IC0tYWxpZ24gXCJsXCIgJHNhIgogICAgICRfUEYgImxpbmdlLXRhYmxlIC13IDE4IC0tYWxp
Z24gXCJyXCIgJHNiIgogICAgIHJldHVybiAwCiAgICAgOzsKICAgIyAuLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4KICAgIyBzZXBhcmF0ZSB2YWx1ZXMgYnkgYSBzcGFjZSB7LXYgMn0gb3Ig
ZXF1YWwgc2lnbiB7LXY9Mn0KICAgKCItdiJ8Ii0tdmVyYm9zaXR5IikgdmI9IiQyIiA7IHNoaWZ0
IDIgOzsKICAgKCItdj0iKnwiLS12ZXJib3NpdHk9IiopCiAgICAgdmI9IiR7MSMqPX0iCiAgICAg
bGluZ2UtbnVtZXJpYyAtZiAicEkiICIkdmIiCiAgICAgc2hpZnQgMQogICAgIDs7CiAgICMgLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCiAgICgiLXcifCItLXdpZHRoIikgd2lkdGg9IiQy
IiA7IHNoaWZ0IDIgOzsKICAgKCItdz0iKnwiLS13aWR0aD0iKikgd2lkdGg9IiR7MSMqPX0iIDsg
c2hpZnQgMSA7OwogICAjCiAgICgiLS1hbGlnbiIpIGFsaWduPSIkMiIgOyBzaGlmdCAyIDs7CiAg
ICgiLS1hbGlnbj0iKikgYWxpZ249IiR7MSMqPX0iIDsgc2hpZnQgMSA7OwogICAjIC4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgogICAjCiAgICgiLS0iKQogICAgICAgICAgIyBsZWF2ZSBs
b29wIGF0IHN0YXJ0IG9mIG5vbi1vcHRpb24gYXJndW1lbnRzCiAgICAgICAgICBzaGlmdCAxIDsg
YnJlYWsgOzsKICAgKCItIiopCiAgICAgICAgICAjIGRldGVjdCB1bi1wbGFubmVkIG9wdGlvbnMK
ICAgICAgICAgIHByZWRpY2F0ZV9lcnJvcj0xCiAgICAgICAgICBpZiAoKCB2YiA+PSAxICkpOyB0
aGVuCiAgICAgICAgICAgIHByaW50ZiAnXG4lc1xuJyAiPyB1bnJlY29nbmlzZWQgcHJlZGljYXRl
ICQxIgogICAgICAgICAgZmkgIAogICAgICAgICAgc2hpZnQgMQogICAgICAgICAgOzsKICAgKCop
CiAgICAgICAgICAjIHByZWRpY2F0ZSBlcnJvciBvciBzdGFydCBvZiBub24tb3B0aW9uIGFyZ3Vt
ZW50cwogICAgICAgICAgaWYgWyAiJHByZWRpY2F0ZV9lcnJvciIgLWVxIDEgXTsgdGhlbgoJICAg
IHByZWRpY2F0ZV9lcnJvcj0yCiAgICAgICAgICAgIGlmICgoIHZiID49IDEgKSk7IHRoZW4KICAg
ICAgICAgICAgICBwcmludGYgJyVzXG5cbicgIjogdW5yZWNvZ25pc2VkIG9yIG1pc3NpbmcgdmFs
dWUgJDEiCiAgICAgICAgICAgIGZpCiAgICAgICAgICAgIHNoaWZ0IDEKICAgICAgICAgIGVsc2UK
CSAgICBpZiAoKCB2YiA+PSAzICkpOyB0aGVuCiAgICAgICAgICAgICAgJF9QRjEgIlN0YXJ0IG9m
IG5vbi1vcHRpb24gYXJndW1lbnRzLCBsZWF2ZSBvcHRpb24gbG9vcCIKICAgICAgICAgICAgICBw
cmludGYgJyVzXG5cbicgImFyZzogJDEiCiAgICAgICAgICAgIGZpCiAgICAgICAgICAgIGJyZWFr
CiAgICAgICAgICBmaQogICAgICAgICAgOzsKICBlc2FjICMgY2FzZSBlbmRzIGhlcmUKIGRvbmUg
IyB3aGlsZSBlbmRzIGhlcmUKCiAjIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCiAj
IER5bmFtaWMgYWRqdXN0bWVudCBvZiBjZWxsIHdpZHRoCgogbG9jYWwgZHluYWRqPTAKIGZvciBh
cmcgaW4gIiRAIgogZG8KICAgIyBBbHRlcm5hdGl2ZSBjb25kaXRpb25hbCB8IFsgIiR7I2FyZ30i
IC1ndCAiJHdpZHRoIiBdCiAgICgoICR7I2FyZ30gPiB3aWR0aCApKSAmJiB7IHdpZHRoPSR7I2Fy
Z30gOyBkeW5hZGo9MSA7IH0KIGRvbmUKCiBpZiAoKCBkeW5hZGogPiAwICYmIHZiID4gMSApKTsg
dGhlbgogICBwcmludGYgIiVzXG4iICJEeW5hbWljIENlbGwgV2lkdGggQWRqdXN0bWVudCIKICAg
cHJpbnRmICIlc1xuXG4iICJ3aWR0aDogQWRqdXN0ZWQgdG8gJHdpZHRoIgogZmkKCiAjIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGxvY2Fs
IGZybXQ9IiUke3dpZHRofXMgIHwgICIKIGlmIFsgIiRhbGlnbiIgPSAibGVmdCIgXSB8fCBbICIk
YWxpZ24iID0gImwiIF07IHRoZW4KICAgZnJtdD0iJS0ke3dpZHRofXMgIHwgICIKIGZpCiAoKCB2
YiA+IDEgKSkgJiYgcHJpbnRmICclc1xuJyAiZnJtdDogJGZybXQiCgogcHJpbnRmICIkZnJtdCIg
IiRAIiA7IGVjaG8KfQoKIyA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwoKIyMgaDEgKiBUZXJtaW5hbCBQcm9tcHQgU3RyaW5nCgo8
PCBfY29tbWVudAoqIENvbW1hbmQgdGVybWluYWwgcHJvbXB0IGFuZCBkaXJjb2xvcnMKU2V0IGRp
cmVjdG9yeSBwYXRoIGFuZCBmaWxlIG5hbWUgZm9yIGRpcmNvbG9ycyBzZXR1cApTZWUgTWFyZ2lu
YWxpYSBTZWN0aW9uIFtBXQpfY29tbWVudAoKIyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKIyMgaDIgICAqIGxpbmdlLWNvbnNv
bGUtdGNvZGVzCgojIyBoMyAgICogbGluZ2UtY29uc29sZS10Y29kZXMKCmxpbmdlLWNvbnNvbGUt
dGNvZGVzICgpCnsKIGxvY2FsIHZiPTAgZXhlY19yYz0wCiBsb2NhbCBfUEY9InByaW50ZiAlc1xu
IiBfUEYyPSJwcmludGYgJXNcblxuIgoKICMgJCMgaXMgZGVjcmVtZW50ZWQgYnkgc2hpZnQKIHdo
aWxlICgoICQjID4gMCApKTsgZG8KICBvcHQ9IiQxIgogIGNhc2UgJG9wdCBpbgogICAoIi1WInwi
dmVyc2lvbiIpCiAgICAgbG9jYWwgLXIgZXRkYXRlPSJWMDEgSnVsIDIwMjEgV2syNyIgICAKICAg
ICAkX1BGMiAiICRldGRhdGUgU3RyYXRlZ2lzdCBDaHJpc3RvcGhlciBEaW1lY2giCiAgICAgcmV0
dXJuIDAKICAgICA7OwogICAoIi1oInwiLS1oZWxwIikKICAgICAkX1BGICJTZXQgY29uc29sZSBw
cm9tcHQgd2l0aCA4LWJpdCAoMl44ID0gMjU2KSBjb2xvdXJzIHVzaW5nIgogICAgICRfUEYgInRo
ZSB0ZXJtaW5mbyBkYXRhYmFzZS4iCiAgICAgJF9QRiAiQ29uc29sZSBDb21tYW5kIExpbmUgVGVy
bWluYWwgaXMgYSB0ZXh0IGludGVyZmFjZSIKICAgICAkX1BGICJmb3IgZXhlY3V0aW5nIHVuaXgt
bGlrZSBwcm9ncmFtcy4iCiAgICAgcmV0dXJuIDAKICAgICA7OwogICAjIC4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgogICAjIHNlcGFyYXRlIHZhbHVlcyBieSBhIHNwYWNlIHstdiAyfSBv
ciBlcXVhbCBzaWduIHstdj0yfQogICAoIi12InwiLS12ZXJib3NpdHkiKSB2Yj0iJDIiIDsgc2hp
ZnQgMiA7OwogICAoIi12PSIqfCItLXZlcmJvc2l0eT0iKikgdmI9IiR7MSMqPX0iIDsgc2hpZnQg
MSA7OwogICAjIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgogICAoIi1lInwiLS1leGVj
IikgZXhlY19yYz0xIDsgc2hpZnQgMSA7OwogICAjIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgogICAjIGxlYXZlIHdoaWxlIGxvb3AgYXQgc3RhcnQgb2Ygbm9uLW9wdGlvbiBhcmd1bWVu
dHMKICAgKCItLSIpIHNoaWZ0IDEgOyBicmVhayA7OwogICAoIi0iKikgJF9QRiAiPyB1bnJlY29n
bmlzZWQgcHJlZGljYXRlICQxIiA7IHNoaWZ0IDEgOzsKICAgKCopICRfUEYgIjogdW5yZWNvZ25p
c2VkIG9yIG1pc3NpbmcgdmFsdWUgJDEiOyBzaGlmdCAxIDs7CiAgZXNhYwogZG9uZSAjIHdoaWxl
IGVuZHMgaGVyZQoKICMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4KCiAjIHByaW50ZiBmb3JtYXQgc3RyaW5nIHJlcGVhdHMgZm9yIGFsbCBhcmd1
bWVudHMgcHJlc2VudAogaWYgKCggdmIgPj0gMiApKTsgdGhlbgogICBwcmludGYgJyVzXG4nICIi
ICJPcHRpb24gYXJndW1lbnRzIiAiKioqKioqKioqKioqKioqKiIKICAgJF9QRiAiIiAidmI6ICR2
YiIgImV4ZWNfcmM6ICRleGVjX3JjIiAKIGZpCiAKIG9wdHM9IiRAIgogaWYgKCggdmIgPj0gMSAp
KQogdGhlbgogICBpZiAoKCAkIyA+IDAgKSk7IHRoZW4KICAgICBwcmludGYgJyVzXG4nICIiICJO
b24tb3B0aW9uIGFyZ3VtZW50cyIgIioqKioqKioqKioqKioqKioqKioqIgogICAgIHByaW50ZiAn
JXNcbicgIiIgIm9wdHM6ICRvcHRzIiAiIgogICBlbHNlCiAgICAgcHJpbnRmICclc1xuJyAiIiAi
IyBObyBub24tb3B0aW9uIGFyZ3VtZW50cyBlbmNvdW50ZXJlZCIgIiIKICAgZmkKIGZpCgogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQoKICMgKiA4LUJpdCB0cHV0IHByb2Nlc3NpbmcgZm9yIDI1Ni1jb2xvdXIgY2FwYWJpbGl0
eQogIyAgIFRoZSB0cHV0IHV0aWxpdHkgdXNlcyB0aGUgdGVybWluZm8gZGF0YWJhc2UgdG8gZ2Vu
ZXJhdGUKICMgICB0ZXJtaW5hbC1kZXBlbmRlbnQgb3V0cHV0IHRvIHRoZSBzaGVsbC4KIAogbG9j
YWwgc2dyIGRibHVlIGdyZW4zIG1vcmNkIG9yYW5yCiBzZ3I9JCh0cHV0IHNncjApCiB3aGl0ZT0k
KHRwdXQgc2V0YWYgNykgICA7IGRibHVlPSQodHB1dCBzZXRhZiAzMykgCiBtb3JjZD0kKHRwdXQg
c2V0YWYgMTcxKSA7IG9yYW5yPSQodHB1dCBzZXRhZiAyMDIpCgogIyBFeHBhbnNpb24gb2Ygd29y
a2luZyBkaXJlY3RvcnkgYXMgaWYgaXQgd2VyZSBhIHByb21wdCBzdHJpbmcKIGxvY2FsIHdvcmtk
cj0iXHciIDsgd29ya2RyPSR7d29ya2RyQFB9ICAjIHBhcmFtZXRlciBleHBhbnNpb24KCiAjIERl
dGVybWluZSBsZW5ndGggb2YgUFMxIHByb21wdCBzdHJpbmcKIGxvY2FsIHVzZXJubT0iJFVTRVIi
IGhvc3RubT1gY2F0IC9wcm9jL3N5cy9rZXJuZWwvaG9zdG5hbWVgCiBsb2NhbCBwc3RyPSIke3Vz
ZXJubX1AJHtob3N0bm19OiAkd29ya2RyIgogbG9jYWwgcGxlbj0iJHsjcHN0cn0iIDsgd2xlbj0k
KCggcGxlbiAtIGhsZW4gKyAxICkpCiAKIGxvY2FsIHNhIHNiIHdhIHdiCiBpZiAoKCB2YiA+PSAz
ICkpOyB0aGVuCiAgIHByaW50ZiAnJXNcbicgIkZ1bmN0aW9uIHZhcmlhYmxlcyIgIioqKioqKioq
KioqKioqKioqKiIgIiIKICAgcHJpbnRmICclc1xuJyAid29ya2RyOiAkd29ya2RyIgogICBwcmlu
dGYgJyVzXG4nICJ1c2Vybm06ICR1c2Vybm0iCiAgIHByaW50ZiAnJXNcbicgImhvc3RubTogJGhv
c3RubSIKICAgcHJpbnRmICclc1xuJyAicHN0cjogICAkcHN0ciIKICAKICAgc2E9InBsZW46ICRw
bGVuIiA7IHdhPSR7I3NhfSA7IHdhPSQoKCB3YSArIDIgKSkKICAgc2I9IndsZW46ICR3bGVuIiA7
IHdiPSR7I3NifSA7IHdiPSQoKCB3YiArIDIgKSkKCiAgICMgcHJpbnQgcGxlbiBhbmQgd2xlbiBp
biBhIHRhYmxlCiAgIHRhYmxfYWxpZ249ImxlZnQtYWxpZ24iCiAgIGlmIFsgIiR0YWJsX2FsaWdu
IiA9ICJsZWZ0LWFsaWduIiBdOyB0aGVuCiAgICAgZnJtdD0iJS0ke3dhfXMgIHwgICUtJHt3YX1z
XG4iCiAgICAgcHJpbnRmICclc1xuJyAiZnJtdDogJGZybXQiCiAgICAgcHJpbnRmICIkZnJtdCIg
IiRzYSIgIiRzYiIKICAgZWxpZiBbICIkdGFibF9hbGlnbiIgPSAicmlnaG4tYWxpZ24iIF07IHRo
ZW4KICAgICBmcm10PSIlJHt3YX1zICB8ICAlJHt3YX1zXG4iCiAgICAgcHJpbnRmICclc1xuJyAi
ZnJtdDogJGZybXQiCiAgICAgcHJpbnRmICIkZnJtdCIgIiRzYSIgIiRzYiIKICAgZWxzZQogICAg
IHByaW50ZiAiJXNcbiIgInBsZW46ICRwbGVuO3wgIHdsZW46ICR3bGVuIiB8IGNvbHVtbiAtdCAt
cyAnOycKICAgZmkKICAgCiBmaQoKICMgKiBCYXNoIFNoZWxsIGhhcyBmb3VyIGNvbnNvbGUgdGVy
bWluYWwgY29tbWFuZCBwcm9tcHQgdmFyaWFibGVzLgogIyAgIFBTMSAgRXhwYW5kZWQgYW5kIHVz
ZWQgYXMgdGhlIHByaW1hcnkgcHJvbXB0IHN0cmluZyBzaG93aW5nIHRoZQogIyAgICAgICAgU3lz
dGVtIFVzZXIgTmFtZSwgTWFjaGluZSBIb3N0IE5hbWUsIGFuZCBXb3JraW5nIERpcmVjdG9yeS4K
ICMgICAgICAgIEZvciBQUzEsIG5vbi1wcmludGluZyBzZXF1ZW5jZXMgYXJlIGVuY2xvc2VkIGJ5
IFxbIGFuZCBcXS4KICMgICBQUzAgIEV4cGFuZGVkIGFuZCB1c2VkIGJ5IGludGVyYWN0aXZlIHNo
ZWxscyBhZnRlciByZWFkaW5nIGEKICMgICAgICAgIGNvbW1hbmQgYW5kIGJlZm9yZSB0aGUgY29t
bWFuZCBpcyBleGVjdXRlZC4KIAogaWYgKCggd2xlbiA+IDcyICkpOyB0aGVuCiAgICMgV29ya2lu
ZyBkaXJlY3RvcnkgaXMgcHJpbnRlZCBvbiB0aGUgbmV4dCBsaW5lLgogICBQUzE9IlxuXFske2Ri
bHVlfVxdXHVcWyR7d2hpdGV9XF1AXFske2RibHVlfVxdXGhcWyR7d2hpdGV9XF06XG4iCiAgIFBT
MT0iJFBTMSsgXFske21vcmNkfVxdXHdcblxbJHtvcmFucn1cXSIKIGVsc2UKICAgUFMxPSJcblxb
JHtkYmx1ZX1cXVx1XFske3doaXRlfVxdQFxbJHtkYmx1ZX1cXVxoXFske3doaXRlfVxdOiIKICAg
UFMxPSIkUFMxIFxbJHttb3JjZH1cXVx3XG5cWyR7b3JhbnJ9XF0iCiBmaQogICAKIFBTMD0iJHtz
Z3J9IiAKCn0KCiMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4KCiMjIGgzIGxpbmdlLXByb21wdAoKbGluZ2UtcHJvbXB0ICgpCnsK
IGxpbmdlLWNvbnNvbGUtdGNvZGVzICIkQCIKfQoKIyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKIyMgaDIgICAqIGxpbmdlLWNv
bnNvbGUtb2NiaXQtZWNvZGVzCgpsaW5nZS1jbnNsLW9jYml0LWVjb2RlcyAoKQp7CiBsb2NhbCBl
eGVjX3JjPTAKIHdoaWxlICgoICQjID4gMCApKTsgZG8KICAgb3B0PSIkMSIKICAgY2FzZSAkb3B0
IGluCiAgICAoIi1WInwiLS12ZXJzaW9uIikKICAgICAgbG9jYWwgLXIgZXRkYXRlPSJWMDEgSnVs
IDIwMjEgV2syNyIKICAgICAgcHJpbnRmICclc1xuJyAiJGV0ZGF0ZSBTdHJhdGVnaXN0IENocmlz
dG9waGVyIERpbWVjaCIKICAgICAgcmV0dXJuIDAKICAgICAgOzsKICAgICgiLWgifCItLWhlbHAi
KQogICAgICBwcmludGYgIlVzZXMgYW4gOC1iaXQgY29sb3VyIGNvbW1hbmQgdGVybWluYWwgcHJv
bXB0LlxuIgogICAgICBwcmludGYgIk9jdGEtQml0IGNvbG91ciB1c2VzIDI1NiAoMl44KSBjb2xv
dXJzLlxuIgogICAgICBwcmludGYgIkVzY2FwZSBjb2RlcyBhcmUgdXNlZC5cbiIKICAgICAgcmV0
dXJuIDAKICAgICAgOzsKICAgICMgLi4uLi4uLi4uLi4uLi4uCiAgICAoIi1lInwiLS1leGVjIikg
ZXhlY19yYz0xIDsgc2hpZnQgMSA7OwogICAgIyAuLi4uLi4uLi4uLi4uLi4KICAgICgqKSBzaGlm
dCAxIDs7CiAgIGVzYWMgIyBjYXNlIGVuZHMgaGVyZQogZG9uZSAjIHdoaWxlIGVuZHMgaGVyZQoK
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCiAgaWYgKCggZXhlY19yYyA9PSAxICkpOyB0aGVuCiAgIHNncj0iXDAzM1szOW0i
ICAgICAgIDsgY3lhbjE9IlxlWzM4OzU7NTFtIgogICBnb2xkMT0iXGVbMzg7NTsyMTRtIiA7IHJl
ZDE9IlxlWzM4OzU7MTk2bSIKCiAgICMgUFMxIHVzZXMgXFsgYW5kIFxdIHRvIGJlZ2luIGFuZCBl
bmQgYSBzZXF1ZW5jZSBvZiBub24tcHJpbnRpbmcKICAgIyBjaGFyYWN0ZXJzLiAgTmV4dCBsaW5l
IGlzIHVzZWQgdG8gcHJpbnQgd29ya2luZyBkaXJlY3RvcnkuCiAgIFBTMT0iXG5cWyR7Y3lhbjF9
XF1cdUBcaDpcbiIKICAgUFMxPSRQUzEiKyBcWyR7Z29sZDF9XF1cd1xuXFske3JlZDF9XF0iCgog
ICAjIFBTMCBpcyB1c2VkIGFmdGVyIHJlYWRpbmcgYSBjb21tYW5kIGFuZCBiZWZvcmUgZXhlY3V0
aW5nIGl0LgogICBQUzA9IiRzZ3IiICAjIHNldCB2YWx1ZSBvZiBQUzAKIGZpCn0KCiMgLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4K
CiMjIGgyICAgKiBsaW5nZS1jb25zb2xlLXFkYml0LWVjb2RlcwoKbGluZ2UtY25zbC1xZGJpdC1l
Y29kZXMgKCkKewogbG9jYWwgZXhlY19yYz0wCiB3aGlsZSAoKCAkIyA+IDAgKSk7IGRvCiAgIG9w
dD0iJDEiCiAgIGNhc2UgJG9wdCBpbgogICAgKCItViJ8InZlcnNpb24iKQogICAgICBsb2NhbCAt
ciBldGRhdGU9IlYwMSBKdWwgMjAyMSBXazI3IgogICAgICBwcmludGYgJyVzXG4nICIkZXRkYXRl
IFN0cmF0ZWdpc3QgQ2hyaXN0b3BoZXIgRGltZWNoIgogICAgICByZXR1cm4gMAogICAgICA7Owog
ICAgKCJoInwiLS1oZWxwIikKICAgICAgcHJpbnRmICJVc2UgNC1iaXQgY29sb3VyIHRlcm1pbmFs
IGNvbW1hbmQgcHJvbXB0LlxuIgogICAgICBwcmludGYgIlF1YWQtQml0IGNvbG91ciB1c2VzIDE2
ICgyXjQpIGNvbG91cnMuXG4iCiAgICAgIHByaW50ZiAiRXNjYXBlIGNvZGVzIGFyZSB1c2VkLlxu
IgogICAgICByZXR1cm4gMAogICAgICA7OwogICAgIyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgogICAgKCItdiJ8Ii0tdmVyYm9zaXR5IikgICAgIHZiPSIkMiIgICAgICA7IHNoaWZ0IDsg
c2hpZnQgOzsKICAgICgiLXY9Iip8Ii0tdmVyYm9zaXR5PSIqKSB2Yj0iJHsxIyo9fSIgOyBzaGlm
dCAxIDs7CiAgICAjIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCiAgICAoIi0tZXhlYyIp
IGV4ZWNfcmM9MSA7IHNoaWZ0IDs7CiAgICAjIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
CiAgICAoKikgZXhlY19yYz0wIDs7CiAgIGVzYWMgIyBjYXNlIGVuZHMgaGVyZQogZG9uZSAjIHdo
aWxlIGVuZHMgaGVyZQoKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogaWYg
KCggZXhlY19yYyA9PSAxICkpOyB0aGVuCiAgIGN5bj0iXGVbMDE7MzZtIiA7IHlsdz0iXGVbMDE7
MzNtIiAgIyBib2xkIGN5YW4gYW5kIGJvbGQgeWVsbG93CiAgIHJlZD0iXGVbMDE7MzFtIiA7IHNn
cj0iXDAzM1szOW0iICAgIyBib2xkIHJlZCBhbmQgcmVndWxhciBmb3JlZ3JvdW5kCgogICAjIFBT
MSBlbmNsb3NlcyBub24tcHJpbnRpbmcgY2hhcmFjdGVycyB3aXRoIFxbIGFuZCBcXQogICAjIFBy
aW50IHdvcmtpbmcgZGlyZWN0YXJ5IFx3IG9uIG5leHQgbGluZQogICBQUzE9IlxuXFske2N5bn1c
XVx1QFxoOlxuIgogICBQUzE9JFBTMSIrIFxbJHt5bHd9XF1cd1xuXFske3JlZH1cXSIgIyBwcmlu
dCB3b3JraW5nIGRpcmVjdG9yeQoKICAgIyBQUzAgaXMgdXNlZCBhZnRlciByZWFkaW5nIGEgY29t
bWFuZCBhbmQgYmVmb3JlIGV4ZWN1dGluZyBpdC4KICAgUFMwPSIke3Nncn0iCiBmaQoKfQoKIyA7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
OzsKCiMjIGgxICogU2V0IGtleS1tYXBzIGFuZCB0ZXJtLWNvbG91cnMKCiMjIGgyIGxpbmdlLWNv
bnNvbGUta2V5bWFwCgpsaW5nZS1jb25zb2xlLWtleW1hcCAoKQp7CiBsb2NhbCBleGVjX3JjPTAK
IGxvY2FsIG5hcmc9IiQjIgogd2hpbGUgKCggJCMgPiAwICkpOyBkbwogICBvcHQ9IiQxIgogICBj
YXNlICRvcHQgaW4KICAgICgiLVYifCJ2ZXJzaW9uIikKICAgICAgbG9jYWwgLXIgZXRkYXRlPSJW
MDEgSnVsIDIwMjEgV2syNyIKICAgICAgcHJpbnRmICIkZXRkYXRlIFN0cmF0ZWdpc3QgQ2hyaXN0
b3BoZXIgRGltZWNoIgogICAgICByZXR1cm4gMAogICAgICA7OwogICAgKCJoInwiLS1oZWxwIikK
ICAgICAgcHJpbnRmICJQcmludHMgZmlyc3Qgc2V0IG9mIGxpbmVzIGZyb20gbmFtZWQgZmlsZXMu
XG4iCiAgICAgIHByaW50ZiAiXCQxIE5VTSAgTnVtYmVyIG9mIGxpbmVzIHRvIHByaW50LlxuIgog
ICAgICBwcmludGYgIlwkMiBESVIgIERpcmVjdG9yeS5cbiIKICAgICAgcmV0dXJuIDAKICAgICAg
OzsKICAgICMgLi4uLi4uLi4uLi4uLi4uLgogICAgKCItZSJ8Ii0tZXhlYyIpIGV4ZWNfcmM9MSA7
IHNoaWZ0IDs7CiAgICAjIC4uLi4uLi4uLi4uLi4uLi4KICAgICgqKQogICAgICBwcmludGYgJyVz
XG4nICJJbnZva2UgXGBsaW5nZS1jb25zb2xlLWtleW1hcCAtaCcgZm9yIGRldGFpbHMuIgogICAg
ICBicmVhawogICAgICA7OwogICBlc2FjICMgY2FzZSBlbmRzIGhlcmUKIGRvbmUgIyB3aGlsZSBl
bmRzIGhlcmUKCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKICMgVGFza3MKICMgMS4gcmUtbWFwIG1vZGlmaWVyIGtleXMg
Zm9yIGR2b3JhayBrZXlib2FyZAogIyAyLiBzZXQgbHMgY29sb3VyIHNjaGVtZSB3aGVuIGluIGEg
dW5peC1saWtlIHRlcm1pbmFsCiAjICAgIC1iIG9wdGlvbiBzcGVjaWZpZXMgdGhlIGJvdXJuZSBh
Z2FpbiBzaGVsbAoKICMgTElOR0VfVFJLICBWYXJpYWJsZSB0cmFja2luZyBwYXRoIHRvIGxpbmdl
IHV0aWxpdGllcyAgCgogIyBMU0NPTFJfREZMVD0iJExTX0NPTE9SUyIKICMgTFNfQ09MT1JTPSR7
TFNfQ09MT1JTfToiZGk9MTszMTpleD0xOzMxIgogIyBleHBvcnQgTFNfQ09MT1JTCgogIyBzZXQg
ZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIGxzIGNvbW1hbmQKIExTX0NPTE9SUz0iZGk9NDszNDpl
eD0xOzMxIgoKICMgVXNpbmcgJHtIT01FfSBiZWNhdXNlIH4vT3BzdGsgaXMgbm90IGV4cGFuZGVk
IGJ1dCB0cmVhdGVkIGxpdGVyYWxseQogbGluZ2VfdHJrPSIke0hPTUV9L09wc3RrL2Jpbi9ndW5n
YWRpbi0xLjAvbGluZ2UiCiBlY2hvICJsaW5nZV90cms6ICR7bGluZ2VfdHJrfSIKCiAjIFJlc2V0
IExTX0NPTE9SUyB1c2VkIGJ5IHsgbHMgLS1jb2xvcj1hdXRvIH0iCiBpZiAoKCBleGVjX3JjID09
IDEgKSk7IHRoZW4KICAgbGluZ2UtY29uc29sZS10Y29kZXMKICAgZXZhbCAiJCggZGlyY29sb3Jz
IC1iICR7bGluZ2VfdHJrfS9saW5nZS1kaXJjb2xvcnMgKSIKICAgeG1vZG1hcCAke2xpbmdlX3Ry
a30vbGluZ2UteG1vZG1hcCAgIyByZS1tYXBzIEN0cmwsIE1ldGEsIFN1cGVyCiBmaQoKfQoKIyA7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7OwoKIyMgaDIgbGluZ2UtZm91bnRhaW5oZWFkLXVzYWdlCgpsaW5nZS1mb3VudGFpbmhlYWQt
dXNhZ2UgKCkKewogY2FzZSAkMSBpbgogICgxKQogICAgIEhERyAiIEd1bmdhZGluLUxpbmdlIgog
ICAgIHBmbSAiIGxpbmdlLWZvdW50YWluaGVhZCBbT1BUSU9OU10iCiAgICAgcGZtICIgIHstdiBW
QiwgLXY9VkIsIC12VkIsIC0tdmVyYm9zaXR5IFZCLCAtLXZlcmJvc2l0eT1WQn0iCiAgICAgcGZt
ICIgIHstdSBMViwgLXU9TFYsIC11TFYsIC0tdXNhZ2UgTFYsIC0tdXNhZ2U9TFZ9IgogICAgIHBm
bSAiICB7LWgsIC0taGVscH0sIHstViwgLS12ZXJzaW9ufSIKICAgICA7OwogZXNhYyAgICAKfQoK
IyA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7OwoKIyMgaDIgbGluZ2UtZm91bnRhaW5oZWFkLWRldGFpbHMKCmxpbmdlLWZvdW50YWlu
aGVhZC1kZXRhaWxzICgpCnsKICBsb2NhbCAtciBsb2NhbGU9IiRMQU5HIgoKICBjYXNlICQxIGlu
CiAgICgxKQogICAgIEhERyAiIFRPRE8iCiAgICAgcGZtICIgbGluZ2UtZm91bnRhaW5oZWFkIFtP
UFRJT05TXSIKICAgICA7OwogZXNhYyAgICAKfQoKIyArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKCiMjIGgxICoqIEV4ZWN1dGVzIHRoZSBjb25m
aWd1cmF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBsaW5nZSByZXNvdXJjZXMgIAoKIyBVc2VzIGEgaGVy
ZS1kb2N1bWVudCBmb3IgbXVsdGktbGluZSBjb21tZW50aW5nLgojIFRoZSBoeXBoZW4gaW4gPDwt
IGlzIHVzZWQgdG8gaWdub3JlcyBsZWFkaW5nIHRhYiBjaGFyYWN0ZXJzLgojIFF1b3RpbmcgdGhl
IGxpbWl0IHN0cmluZyBfY29tbWVudCBkaXNwbGF5cyB2YXJpYWJsZSBuYW1lcyB2ZXJiYXRpbSwK
IyB3aXRob3V0IGNvbW1hbmQgc3Vic3RpdHV0aW9uLgoKPDwtICJfY29tbWVudCIKKiBDb21tYW5k
IHRlcm1pbmFsIHByb21wdCBhbmQgZGlyY29sb3JzClNldCBkaXJlY3RvcnkgcGF0aCBhbmQgZmls
ZSBuYW1lIGZvciBkaXJjb2xvcnMgc2V0dXAKU2VlIE1hcmdpbmFsaWEgU2VjdGlvbiBbQV0KX2Nv
bW1lbnQKCiMjIGgyIGxpbmdlLWZvdW50YWluaGVhZAoKbGluZ2UtZm91bnRhaW5oZWFkICgpCnsK
IGxvY2FsIC1yIGV0ZGF0ZT0iVjAxIDIwMjEgSnVsIDIxIFdrMjciCiBsb2NhbCAtciBhdXRob3I9
IlN0cmF0ZWdpc3QgQ2hyaXN0b3BoZXIgRGltZWNoIgoKIGlmICgoICQjIDw9IDAgKSk7IHRoZW4K
ICAgcHJpbnRmICclc1xuJyAibGluZ2UtZm91bnRhaW5oZWFkIgogICBwcmludGYgJyVzXG4nICIk
ZXRkYXRlICRhdXRob3IiCiBmaSAgICAKCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbXBsPSJ3aGlsZSIKIGlmIFtbICIkaW1wbCIgPT0g
IndoaWxlIiBdXTsgdGhlbgogCiAgIHdoaWxlIHRydWU7IGRvCiAgICAgcmVhZCAtcCAiVXBkYXRl
IEd1bmdhZGluLUxpbmdlIENvbnNvbGUiIGV4ZWNpbgogICAgIGNhc2UgJGV4ZWNpbiBpbgogICAg
ICBbWXldKiApIGV4ZWNfcmM9MSA7IGJyZWFrIDs7CiAgICAgIFtObl0qICkgZXhlY19yYz0wIDsg
YnJlYWsgOzsKICAgICAgW1FxXSogKSBleGVjX3JjPTAgOyBicmVhayA7OwogICAgICAgICAgKiAp
IGVjaG8gIkFuc3dlciB3aXRoIFxgWWVzJywgXGB5JywgXGBObycsIFxgbicuIgogICAgICAgICAg
ICAgIGVjaG8gIlVzZSBcYFEnIG9yIFxgcScgdG8gcXVpdCIKCSAgICAgIDs7CiAgICAgZXNhYwog
ICBkb25lCgogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogZWxpZiBbWyAiJGltcGwiID09ICJzZWxlY3QiIF1dOyB0aGVuCgogICBlY2hvICJV
cGRhdGUgR3VuZ2FkaW4tTGluZ2UgQ29uc29sZSIKICAgc2VsZWN0IGV4ZWNpbiBpbiAiWWVzIiAi
eWVzIiAiWSIgInkiICJObyIgIm5vIiAiTiIgIm4iOyBkbwogICAgIGNhc2UgJGV4ZWNpbiBpbgog
ICAgICBZZXMgKSBleGVjX3JjPTEgOyBicmVhayA7OwogICAgICBObyAgKSBicmVhayA7OwogICAg
ICAqICAgKSBlY2hvICJBbnN3ZXIgd2l0aCBcYFllcycsIFxgeScsIFxgTm8nLCBcYG4nLiIKICAg
ICAgICAgICAgZWNobyAiVXNlIFxgUScgb3IgXGBxJyB0byBxdWl0IgoJICAgIDs7CiAgICAgZXNh
YwogICBkb25lCgogZmkKCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAgICAgIAogbG9jYWwgZXhlY19yYz0iIgogd2hpbGUgKCggJCMgPiAw
ICkpOyBkbwogICBvcHQ9IiQxIgogICBjYXNlICRvcHQgaW4KICAgICgiLVYifCJ2ZXJzaW9uIikK
ICAgICAgcHJpbnRmICclc1xuJyAiJGV0ZGF0ZSAkYXV0aG9yIgogICAgICBwcmludGYgJyVzXG4n
ICJJbmNvcnBvcmF0ZXMgdGhlIEd1bmdhZGluLUxpbmdlIEJhc2ggU2hlbGwiCiAgICAgIHByaW50
ZiAnJXNcbicgImZ1bmN0aW9uYWxpdHkgdG8gdGhlIENvbW1hbmQgTGluZSBUZXJtaW5hbCBDb25z
b2xlIgogICAgICByZXR1cm4gMAogICAgICA7OwogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogICAgKCItdiJ8Ii0tdmVyYm9zaXR5IikgICAgIHZiPSIkMiIgICAgICA7IHNoaWZ0
IDsgc2hpZnQgOzsKICAgICgiLXY9Iip8Ii0tdmVyYm9zaXR5PSIqKSB2Yj0iJHsxIyo9fSIgOyBz
aGlmdCAxIDs7CiAgICAoIi12IiopIHZiPSIkezEjLXZ9IiA7IHNoaWZ0IDEgOzsKICAgICMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICgiLWgifCItLWhlbHAiKQogICAgICBzaGlm
dCAxCiAgICAgIHByaW50ZiAnJXNcbicgIlJlYWRzIGFuZCBleGVjdXRlcyB0aGUgdXNlciAuYmFz
aHJjIHJlc291cmNlIgogICAgICBwcmludGYgJyVzXG4nICJjb25maWd1cmF0aW9uIGZpbGUgdXNp
bmcgdGhlIHNvdXJjZSBjb21tYW5kLiIKICAgICAgcHJpbnRmICclc1xuJyAiQmFzaCBmdW5jdGlv
bnMgcmV0dXJuIGludGVnZXIgZXJyb3IgY29kZXMgZnJvbSAwIgogICAgICBwcmludGYgJyVzXG4n
ICJ0byAyNTUuICBBIHplcm8gZXhpdCBzdGF0dXMgaW5kaWNhdGVzIHN1Y2Nlc3MuIgogICAgICBs
aW5nZS1mb3VudGFpbmhlYWQtZGV0YWlscwogICAgICByZXR1cm4gMAogICAgICA7OwogICAgIy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgKCItdSJ8Ii0tdXNhZ2UiKQogICAgICBs
aW5nZS1mb3VudGFpbmhlYWQtdXNhZ2UgIiR1c2ciCiAgICAgIHVzZz0iJDIiIDsgc2hpZnQgMgog
ICAgICByZXR1cm4gMAogICAgICA7OwogICAgKCItdT0iKnwiLS11c2FnZT0iKikKICAgICAgbGlu
Z2UtZm91bnRhaW5oZWFkLXVzYWdlICIkdXNnIgogICAgICB1c2c9IiR7MSMqPX0iIDsgc2hpZnQg
MQogICAgICByZXR1cm4gMAogICAgICA7OwogICAgKCItdSIqKQogICAgICBsaW5nZS1mb3VudGFp
bmhlYWQtdXNhZ2UgIiR1c2ciCiAgICAgIHVzZz0iJHsxIy12fSIgOyBzaGlmdCAxCiAgICAgIHJl
dHVybiAwCiAgICAgIDs7CiAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAo
KikKICAgICAgcHJpbnRmICclc1xuJyAiSW52b2tlIFxgbGluZ2Utc291cmNlLXJjIC1oJyBmb3Ig
ZGV0YWlscy4iCiAgICAgIGJyZWFrCiAgICAgIDs7CiAgIGVzYWMgIyBjYXNlIGVuZHMgaGVyZQog
ZG9uZSAjIHdoaWxlIGVuZHMgaGVyZQoKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogIyBhbHRlcm5hdGl2ZWx5IHVzZSBgc291cmNlIH4v
LmJhc2hyY2Agb3IgYC4gJHtIT01FfS8uYmFzaHJjJwogKCggZXhlY19yYyA9PSAxICkpICYmIHNv
dXJjZSAiJHtIT01FfS8uYmFzaHJjIgoKICMgQmFzaCBmdW5jdGlvbnMgcmV0dXJuIGFuIGludGVn
ZXIgZXJyb3IgY29kZSB3aXRoIGEgemVybyBleGl0IHN0YXR1cwogIyBpbmRpY2F0aW5nIHN1Y2Nl
c3MuICBBIG5vbi16ZXJvIGV4aXQgc3RhdHVzIGluZGljYXRlcyBmYWlsdXJlLiAgRXhpdAogIyBz
dGF0dXNlcyBmYWxsIGJldHdlZW4gMCBhbmQgMjU1LiAKIHJldHVybiAwCgp9CgphbGlhcyBMRkQ9
J2xpbmdlLWZvdW50YWluaGVhZCcgCgojIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CgojIyBoMSAqIENhbGwgR3VuZ2FkaW4gRnVu
Y3Rpb25hbGl0eQoKIyMgaDIgICBsaW5nZS1sYXVuY2gKCmxpbmdlLWxhdW5jaCAoKQp7CiBsb2Nh
bCBlZHZhcnRfcmM9MAogbG9jYWwgZGVwbG95PSJnby1vbi1lcnJvciIKCiB3aGlsZSAoKCAkIyA+
IDAgKSk7IGRvCiAgIG9wdD0iJDEiCiAgIGNhc2UgJG9wdCBpbgogICAgKCItViJ8InZlcnNpb24i
KQogICAgICBsb2NhbCAtciBldGRhdGU9IlYwMSAyMDIxIEp1bCAyMSBXazI3IgogICAgICBwcmlu
dGYgJyVzXG5cbicgIiRldGRhdGUgU3RyYXRlZ2lzdCBDaHJpc3RvcGhlciBEaW1lY2giCiAgICAg
IHJldHVybiAwCiAgICAgIDs7CiAgICAoIi1oInwiLS1oZWxwIikKICAgICAgcHJpbnRmICclc1xu
JyAiUmVhZHMgYW5kIGV4ZWN1dGVzIHRoZSB1c2VyIC5iYXNocmMgcmVzb3VyY2UiCiAgICAgIHBy
aW50ZiAnJXNcbicgImNvbmZpZ3VyYXRpb24gZmlsZSB1c2luZyB0aGUgc291cmNlIGNvbW1hbmQu
IgogICAgICBwcmludGYgJyVzXG4nICJCYXNoIGZ1bmN0aW9ucyByZXR1cm4gaW50ZWdlciBlcnJv
ciBjb2RlcyBmcm9tIDAiCiAgICAgIHByaW50ZiAnJXNcbicgInRvIDI1NS4gIEEgemVybyBleGl0
IHN0YXR1cyBpbmRpY2F0ZXMgc3VjY2Vzcy4iCiAgICAgIHJldHVybiAwCiAgICAgIDs7CiAgICAj
IC4uLi4uLi4uLi4uLi4uLi4KICAgICgiLXYifCItLXZlcmJvc2l0eSIpICAgICB2Yj0iJDIiICAg
ICAgOyBzaGlmdCA7IHNoaWZ0IDs7CiAgICAoIi12PSIqfCItLXZlcmJvc2l0eT0iKikgdmI9IiR7
MSMqPX0iIDsgc2hpZnQgMSA7OwogICAgIyAuLi4uLi4uLi4uLi4uLi4uCiAgICAoIi0tZWR2YXJ0
LXJjIikgZWR2YXJ0X3JjPTEgOyBzaGlmdCA7OwogICAgIyAuLi4uLi4uLi4uLi4uLi4uCiAgICAo
Ii0tZ28tb24tZXJyb3IiKSAgICAgIyBDb250cm9sIFN0YXR1cywgY29udGludWUgYW5kIGFsbG93
IGZhaWx1cmUKICAgICAgZGVwbG95PSJnby1vbi1lcnJvciIKICAgICAgc2hpZnQgOzsKICAgICgi
LS1ub2dvLW9uLWVycm9yIikgICAjIENvbnRyb2wgU3RhdHVzLCByZWZ1c2UgdG8gcHJvY2VlZCBv
biBlcnJvcgogICAgICBkZXBsb3k9Im5vZ28tb24tZXJyb3IiCiAgICAgIHNoaWZ0IDs7CiAgICAj
IC4uLi4uLi4uLi4uLi4uLi4KICAgICgiLS0iKSBzaGlmdCA7IGJyZWFrIDs7CiAgICAoIi0iKikK
ICAgICAgIyB0aGlzIHBhdHRlcm4gZm9sbG93cyAtLSBiZWNhdXNlIGl0IGFsd2F5cyBvdmVyLXJp
ZGVzIC0tCiAgICAgIHByaW50ZiAnJXNcbicgIldyb25nIHBhcmFtZXRlci4iCiAgICAgIFsgIiRk
ZXBsb3kiID0gImdvLW9uLWVycm9yIiBdICYmIHNoaWZ0IDEKICAgICAgWyAiJGRlcGxveSIgPSAi
bm9nby1vbi1lcnJvciIgXSAmJiByZXR1cm4gMQogICAgICA7OwogICAgKCopCiAgICAgIHByaW50
ZiAnJXNcbicgIkludm9rZSBcYGxpbmdlLWxhdW5jaCAtaCcgZm9yIGRldGFpbHMuIgogICAgICBb
ICIkZGVwbG95IiA9ICJnby1vbi1lcnJvciIgXSAmJiBicmVhawogICAgICBbICIkZGVwbG95IiA9
ICJub2dvLW9uLWVycm9yIiBdICYmIHJldHVybiAxCiAgICAgIDs7CiAgIGVzYWMgICMgY2FzZSBl
bmRzIGhlcmUKIGRvbmUgICMgd2hpbGUgZW5kcyBoZXJlCgogIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIGVjaG8gCiBsaW5nZS1jb25zb2xl
LWtleW1hcCAtLWV4ZWMgICMgY29sb3VyIGFuZCBrZXltYXAgdXRpbHMKIGxpbmdlLWFnZ3ItdXRp
bCAtLWV4ZWMgICAgICAgIyBhZ2dyZXRhdGUgb2Ygb3RoZXIgdXRpbHMKCiBsaW5nZV90cmtyYz0i
JHtIT01FfS9PcHN0ay9iaW4vZ3VuZ2FkaW4tMS4wL2xpbmdlIgogc291cmNlICIke2xpbmdlX3Ry
a3JjfS9saW5nZS1ndW5nYWRpbi11c2FnZS5yYyIKCiAjIHNldCByZXNvdXJjZSBwYXRoIGFuZCBl
bmFibGUgZnVuY3Rpb25hbGl0eSBpbiBlZHZhcnQucmMKIGlmICgoIGVkdmFydF9yYyA9PSAxICkp
OyB0aGVuCiAgIGVkdmFydF90cmtyYz0iJHtIT01FfS9PcHN0ay9iaW4vZ3VuZ2FkaW4tMS4wL2xp
bmdlL2VkdmFydCIKICAgc291cmNlICIke2VkdmFydF90cmtyY30vZWR2YXJ0LnJjIgogZmkKIAp9
CgojICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwoKIyBsYXVuY2ggY29uZmlndXJhdGlvbiBwcm92aWRlZCBieSBsaW5nZS5zaApsaW5nZS1sYXVu
Y2ggLS1lZHZhcnQtcmMKCiMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCgojIyBtMSAqIE1hcmdpbmFsaWEKIyAgICAgICAgICAgICAgICAgICAg
ICBfICAgICAgICAgICBfIF8gICAgICAKIyAgXyBfXyAgX18gXyBfIF8gX18gXyhfKV8gXyAgX18g
X3wgKF8pX18gXyAKIyB8ICcgIFwvIF9gIHwgJ18vIF9gIHwgfCAnIFwvIF9gIHwgfCAvIF9gIHwK
IyB8X3xffF9cX18sX3xffCBcX18sIHxffF98fF9cX18sX3xffF9cX18sX3wKIyAgICAgICAgICAg
ICAgICB8X19fLyAgICAgICAgICAgICAgICAgICAgICAKCiMgLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgojIyBtMiBNQSBCYXNoIENvbmRpdGlv
bmFsIEV4cHJlc3Npb25zCgojIENvbmRpdGlvbmFsIGV4cHJlc3Npb25zIGFyZSB1c2VkIGJ5IHRo
ZSBjb21wb3VuZCBjb21tYW5kIGBbWyAgXV1gCgojIC12IHZhcm5hbWUKIyAgICBUcnVlIGlmIHZh
cmlhYmxlIHZhcm5hbWUgaXMgc2V0IChoYXMgYmVlbiBhc3NpZ25lZCBhIHZhbHVlKS4KIyAteiBz
dHJpbmcKIyAgICBUcnVlIGlmIHRoZSBsZW5ndGggb2Ygc3RyaW5nIGlzIHplcm8uCiMgLW4gc3Ry
aW5nCiMgICAgVHJ1ZSBpZiB0aGUgbGVuZ3RoIG9mIHN0cmluZyBpcyBub24temVyby4KCiMgLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCgojIEV4
YW1wbGU6IFJlZGlyZWN0aW9uIGNvbnN0cnVjdCB3aXRob3V0IGluZGVudGF0aW9uCgojIGNhdCA8
PC0gIl9sYWJlbCIKIyBncmVwIC1pciAtLWV4Y2x1ZGU9XCouZWwgLS1pbmNsdWRlPVwqLntvcmcs
dGV4aX0iCiMgICAtQyA4ICJoaWxiZXJ0IiAvbWFyc2hhbGwgIgojIF9sYWJlbAoKIyAuLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KCiMgRXhhbXBs
ZTogSW5kZW50YXRpb24gd2l0aCB0YWJzIGFuZCB2YXJpYWJsZSBuYW1lcyAKCiMgPHRhYj4gY2F0
IDw8LSAiX2xhYmVsIgojIDx0YWI+IFNlYXJjaGVzIGlucHV0IGZpbGVzIGZvciBsaW5lcyBjb250
YWluaW5nIG1hdGNoZXMuCiMgPHRhYj4gJEAgQVJHUyAgQXJyYXkgb2YgYWxsIGFyZ3VtZW50cy4K
IyA8dGFiPiBfbGFiZWwKCiMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uCgojIyBtMiAgIEBtYyAgc2V0eGtibWFwIGFuZCB4bW9kbWFwCgojIFNl
dCBrZXlib2FyZCBsYXlvdXQgbWFwIHdpdGggc2V0eGtibWFwLgojIGBzZXR4a2JtYXAgLWhlbHBg
ICAgUHJpbnRzIHNldHhrYm1hcCB1c2FnZS4KIyBgc2V0eGtibWFwIC1xdWVyeWAgIFByaW50cyBj
dXJyZW50IGtleWJvYXJkIGxheW91dC4KIyBgc2V0eGtibWFwIC1sYXlvdXQgdXMgLXZhcmlhbnQg
ZHZvcmFrYCAgU2V0cyBkdm9yYWsgbGF5b3V0LgoKIyBNb2RpZnkga2V5IGFuZCBwb2ludGVyIGJ1
dHRvbiBtYXBwaW5ncyB3aXRoIHhtb2RtYXAuCiMgYHhtb2RtYXAgLWhlbHBgICBQcmludCB1c2Fn
ZSBpbmZvcm1hbmlvbi4gCiMgYHhtb2RtYXAgLXBtYCAgICBQcmludCBtb2RpZmllciBtYXAuCgoj
IFJlLW1hcCBDdHJsLCBBbHQsIEh5cGVyLCBhbmQgU3VwZXIga2V5cy4KIyBUbyBkaXNwbGF5IGtl
eS1tYXAgdGFibGUsIHVzZSBgLXBrZWAgb3B0aW9uCiMgICBgeG1vZG1hcCAtcGtlIHwgZ3JlcCAi
Q29udHJvbFx8QWx0XHxNZXRhXHxTdXBlciJgCgojIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKIyMgbTIgICBAbWYgIDQtQml0IENvbG91ciBD
b2RlcwoKIyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CiMgICB8
IFNwZWNpYWwgQXR0cmlidXRlIENvZGVzICAgICAgICAgICAgICAgfAojICAgfC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKIyAgIHwgTm9uZSAgMDAgfCBCb2xkICAgIDAx
IHwgVW5kZXJzY29yZSAwNCB8CiMgICB8IEJsaW5rIDA1IHwgUmV2ZXJzZSAwNyB8IENvbmNlYWxl
ZCAgMDggfAojICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKCiMg
ICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAojICAg
fCBGb3JlZ3JvdW5kIENvbG9yIENvZGVzOiBGb3IgVGV4dCAgICAgICAgICAgICAgIHwKIyAgIHwt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CiMgICB8IEJs
YWNrIDMwICAgfCBSZWQgICAgIDMxIHwgR3JlZW4gMzIgfCBZZWxsb3cgMzMgfAojICAgfCBCbHVl
ICAzNCAgIHwgTWFnZW50YSAzNSB8IEN5YW4gIDM2IHwgV2hpdGUgIDM3IHwKIyAgIHwgUmVndWxh
ciAzOSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiMgICB8LS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAoKIyAuLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KIyAgW0JSRl0gQXV0b21h
dGUgdmFsdWVzIHVzaW5nIEJhc2ggU2hlbGwgUGFyYW1ldGVyIEV4cGFuc2lvbgogIAojICBUaGUg
Q29sb24gQ29tbWFuZCBgOmAgYXQgdGhlIGJlZ2lubmluZyBleHBhbmRzIGFyZ3VtZW50cyBhbmQK
IyAgcGVyZm9ybXMgcmVkaXJlY3Rpb25zIG9ubHksIHdpdGhvdXQgZXhlY3V0aW5nIHRoZSBsaW5l
LgoKIyBsaW5nZS1tb2xuaXlhLXJlZ2lvbiB1c2luZyBwYXJhbWV0ZXIgZXhwYW5zaW9uCgojICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBm
aWxlIGVuZHMgaGVyZSBbbGluZ2UucmNdCg==
------=_Part_88295_26866892.1638741486440--




Acknowledgement sent to fatiparty@HIDDEN:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#52319; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 16 Oct 2022 04:15:02 UTC

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