GNU logs - #33827, boring messages


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: SRFI 69 weak hash-tables is broken
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Fri, 21 Dec 2018 16:23:01 +0000
Resent-Message-ID: <handler.33827.B.154540933131085 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guile@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.154540933131085
          (code B ref -1); Fri, 21 Dec 2018 16:23:01 +0000
Received: (at submit) by debbugs.gnu.org; 21 Dec 2018 16:22:11 +0000
Received: from localhost ([127.0.0.1]:58702 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gaNYw-00085J-Mw
	for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 11:22:10 -0500
Received: from eggs.gnu.org ([208.118.235.92]:38466)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIl3-0004l1-FX
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:21 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIkw-0002XP-2b
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:15 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=1.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM,
 FROM_EXCESS_BASE64,HTML_MESSAGE autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:47113)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <jessymilare@HIDDEN>)
 id 1gaIks-0002VH-Vj
 for submit <at> debbugs.gnu.org; Fri, 21 Dec 2018 06:14:12 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:48052)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIks-0000H5-6C
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:10 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <jessymilare@HIDDEN>) id 1gaIkq-0002TZ-7l
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:10 -0500
Received: from mail-it1-x132.google.com ([2607:f8b0:4864:20::132]:50343)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <jessymilare@HIDDEN>)
 id 1gaIko-0002O5-4I
 for bug-guile@HIDDEN; Fri, 21 Dec 2018 06:14:08 -0500
Received: by mail-it1-x132.google.com with SMTP id z7so6299507iti.0
 for <bug-guile@HIDDEN>; Fri, 21 Dec 2018 03:14:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=tQuJtSolxmnboASWju1QdWd1dlujOQQsBsIbcgLjK3E=;
 b=IJ0Rh4Bmd2+63UsLz8WcNjzV2udlMK1UvNmEe2Ufgy3R/ds0mas8G9PrgzqbYL44QW
 6geH1Jy7a9ZKz1UnZpmsIyieLlJtXy3ZFgELV5S5h+38cFy8CGus/G4KcZZEi9W7RNTf
 ID+GW/u7Q/3rQntS2xVAxK0ZC4vfXlRQiKXHmp+og6shl1Z++gQ2PUr3gCq2eQpXPIUK
 D/3+mj6SRswGTVbq94J/rnBVTX37dP0wdy4dS+18BTnAfofq1DxhWk+sQ5ugJWYrntkE
 PpbYcV7pCl8nqGHGbvu4UeOWV3FAMJjVL3B/4C9NZnu+GOpGkk0D6BDKogSay8kK0Ksv
 QAeg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=tQuJtSolxmnboASWju1QdWd1dlujOQQsBsIbcgLjK3E=;
 b=aTLw4ayikTBGQqq5s6lh4LRHa4kms4aTbR92Tc37KsFwiVSwrydhU4C/0iBiaal2M4
 Q/jF3l+53Rg5CDBsNXrwkYt7evU+WtLXMIrjrn2uqi9bDcs8f8N8JlJkq3P/HGlIAvTB
 J6ExWNGJsOa6zzDlEwqq/Xmgy3vSF5fDW1YPkPGWc71wUMyvXQFr27jH2iZITN4huhaK
 qXnwOSb1bk8F1MclJQXWobEobCtXUSCx9/O3Tx45GODZ7XqktKabBBJKx3cqzWwsVdMg
 djDf25r2wIpWdK9ygnfz5PtKsmkfMsRHvm2g5ml0k5KPc+sbTrMmN4ggq9M+Kjpe58jK
 nEow==
X-Gm-Message-State: AA+aEWY6b2GbAnGFd9kLBHA7zshFhx5tI4gCRDRssHMUgyo1F8NfasAF
 LksYZywGFHVje1RQ2y9fQ0RdMyXQil/OsTya13UussCI
X-Google-Smtp-Source: AFSGD/U5zkF7HlRvCRPqgsS4pyUGY9biT/Nn9KOO+Sh7IqoIyKVT9VBLyHrnO26oYWb5C3h/DBuKNaMDiADpU9GR8sg=
X-Received: by 2002:a24:6c12:: with SMTP id w18mr1822384itb.14.1545390841804; 
 Fri, 21 Dec 2018 03:14:01 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Fri, 21 Dec 2018 09:13:50 -0200
Message-ID: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
Content-Type: multipart/alternative; boundary="0000000000002a3f90057d865886"
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -3.9 (---)
X-Mailman-Approved-At: Fri, 21 Dec 2018 11:22:09 -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: -4.9 (----)

--0000000000002a3f90057d865886
Content-Type: text/plain; charset="UTF-8"

The srfi-69 implementation that comes with Guile doesn't function properly
when some non-false #:weak argument is provided. The problems seems to be
that it tries to use handles, which are only available for non-weak
hash-tables.

scheme@(guile-user)> (import (srfi :69))
scheme@(guile-user)> (define ht (make-hash-table eq? hashq #:weak 'key))
scheme@(guile-user)> (hash-table-set! ht 10 10)
ERROR: In procedure hashx-create-handle!:
In procedure scm_hash_fn_create_handle_x: Wrong type argument in position 1
(expecting hash-table): #<weak-table 0/31>

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>


Regards,
Jessica

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">The srf=
i-69 implementation that comes with Guile doesn&#39;t function properly whe=
n some non-false #:weak argument is provided. The problems seems to be that=
 it tries to use handles, which are only available for non-weak hash-tables=
.<div><br></div></div></div></div><blockquote style=3D"margin:0 0 0 40px;bo=
rder:none;padding:0px"><div><div><div><div><div><font face=3D"monospace, mo=
nospace">scheme@(guile-user)&gt; (import (srfi :69))</font></div></div></di=
v></div></div><div><div><div><div><div><font face=3D"monospace, monospace">=
scheme@(guile-user)&gt; (define ht (make-hash-table eq? hashq #:weak &#39;k=
ey))</font></div></div></div></div></div><div><div><div><div><div><font fac=
e=3D"monospace, monospace">scheme@(guile-user)&gt; (hash-table-set! ht 10 1=
0)</font></div></div></div></div></div><div><div><div><div><div><font face=
=3D"monospace, monospace">ERROR: In procedure hashx-create-handle!:</font><=
/div></div></div></div></div><div><div><div><div><div><font face=3D"monospa=
ce, monospace">In procedure scm_hash_fn_create_handle_x: Wrong type argumen=
t in position 1 (expecting hash-table): #&lt;weak-table 0/31&gt;</font></di=
v></div></div></div></div><div><div><div><div><div><font face=3D"monospace,=
 monospace"><br></font></div></div></div></div></div><div><div><div><div><d=
iv><font face=3D"monospace, monospace">Entering a new prompt.=C2=A0 Type `,=
bt&#39; for a backtrace or `,q&#39; to continue.</font></div></div></div></=
div></div><div><div><div><div><div><font face=3D"monospace, monospace">sche=
me@(guile-user) [1]&gt;</font></div></div></div></div></div></blockquote><d=
iv dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div><br></div><div>Regard=
s,</div><div>Jessica</div></div></div></div></div>

--0000000000002a3f90057d865886--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Subject: bug#33827: Acknowledgement (SRFI 69 weak hash-tables is broken)
Message-ID: <handler.33827.B.154540933131085.ack <at> debbugs.gnu.org>
References: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
X-Gnu-PR-Message: ack 33827
X-Gnu-PR-Package: guile
Reply-To: 33827 <at> debbugs.gnu.org
Date: Fri, 21 Dec 2018 16:23:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-guile@HIDDEN

If you wish to submit further information on this problem, please
send it to 33827 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
33827: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33827
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: Attempt to fix
References: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
In-Reply-To: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Sat, 22 Dec 2018 17:46:01 +0000
Resent-Message-ID: <handler.33827.B33827.154550070420551 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
Received: via spool by 33827-submit <at> debbugs.gnu.org id=B33827.154550070420551
          (code B ref 33827); Sat, 22 Dec 2018 17:46:01 +0000
Received: (at 33827) by debbugs.gnu.org; 22 Dec 2018 17:45:04 +0000
Received: from localhost ([127.0.0.1]:60201 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1galKh-0005LO-Nq
	for submit <at> debbugs.gnu.org; Sat, 22 Dec 2018 12:45:03 -0500
Received: from mail-io1-f51.google.com ([209.85.166.51]:46874)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1galKf-0005Kc-PL
 for 33827 <at> debbugs.gnu.org; Sat, 22 Dec 2018 12:45:02 -0500
Received: by mail-io1-f51.google.com with SMTP id v10so6216110ios.13
 for <33827 <at> debbugs.gnu.org>; Sat, 22 Dec 2018 09:45:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=HoyMrOlzoXi0NvLyzRanSvWmKeA2kYKGV6cb+7sYV2Y=;
 b=MYPlJOHd0BgOEVu4uJ9OJDXzE2Xz0cPnR9v0zumEJI8d6hqK519PPsBu1/dw/3WHEf
 8YKpEiayCGqqwIuxonZYg5gtYil2lhqFPZIq/MNa0i5A73SQwfa5PxcpKVu5PmkNh2AS
 nRR/0AQ6HXg7uObetMvWwPpxv3Dp3A63YVSXdS8A3FNN9PdQ5AbXCvwfBjp1x4wejkB0
 u1iBNy7j9LjeqYtgRBdvBTF2JfhELi/MFWDj+Q4H1M5o8ymaMmXe+pZLZG8gxoWDBXUx
 8BQyOhAjOn69+kMGCIVSgigFZBoJjdxbTSTvSChQMAkYT9pmjbgfmWXhnxWnWMudUcfv
 QiiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=HoyMrOlzoXi0NvLyzRanSvWmKeA2kYKGV6cb+7sYV2Y=;
 b=Ja/vZG8dHpF1nLuuYUVHMp2iKU0lGha/nTR3C3y/v/GrtZPQJ9HWTmIc4PGwBMayaR
 yaXs5oLXHLzjWQW52M6s0WQq9hmzVVY6pXuLePEdgLkKUzI6RQLG1NBEqe1zIfiGcSpn
 GTDZF6b+UtsMmrCl2DcQh5UiVttMUYHpKUl661TCgy58AF/YM5CE10WGGBhqzgp3l4Gv
 T8bVfZ6Lwq4kqQbN5Kqcb1uZ84yP4oRGkoI7GYoo/sChrNujbt613YIbcsIsRStSyxYq
 X2NIknW8jLBI5ztLqJijihw1qV2cJCrRqp1yK9Cfv8ybElMFq6y3lsmIUWvJPAUERDKU
 4CGA==
X-Gm-Message-State: AJcUukfi7o4c6mxny+/uXwq+SMYrsL/71SoaxgwGhXKCLKxdFyQYlQqo
 w2k1N3Y/BF/zjkRPG982FGvwWWoUc6PU4zR5LjxN4Q==
X-Google-Smtp-Source: ALg8bN5a2KJ+XJsvyMBt2vIGwUOKcYw+HtGeobbYqQR8fHTJIHAwgE4xzNUPOUkg1zOFeR2wzCiEkSdLA8VhaIVdX94=
X-Received: by 2002:a6b:156:: with SMTP id 83mr4743257iob.63.1545500695595;
 Sat, 22 Dec 2018 09:44:55 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Sat, 22 Dec 2018 15:44:44 -0200
Message-ID: <CAGBcF1YqKUqkNzSW_=hNVVE86WU2Hdh6RGBW3KD7AU7dj_iQRA@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000f60eab057d9febc3"
X-Spam-Score: 0.1 (/)
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.9 (/)

--000000000000f60eab057d9febc3
Content-Type: text/plain; charset="UTF-8"

I'll try to fix this bug and create some tests, then I send a format-patch
here. I'll need to do that anyway.

--000000000000f60eab057d9febc3
Content-Type: text/html; charset="UTF-8"

<div dir="ltr">I&#39;ll try to fix this bug and create some tests, then I send a format-patch here. I&#39;ll need to do that anyway.</div>

--000000000000f60eab057d9febc3--




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: Patch
References: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
In-Reply-To: <CAGBcF1bqdT0nDnQZvc_tUJjhcu-RHAPsWNGUPGgYLf0mYVL_1w@HIDDEN>
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Sun, 23 Dec 2018 17:10:02 +0000
Resent-Message-ID: <handler.33827.B33827.154558498222678 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
Received: via spool by 33827-submit <at> debbugs.gnu.org id=B33827.154558498222678
          (code B ref 33827); Sun, 23 Dec 2018 17:10:02 +0000
Received: (at 33827) by debbugs.gnu.org; 23 Dec 2018 17:09:42 +0000
Received: from localhost ([127.0.0.1]:33966 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gb7G1-0005th-Ia
	for submit <at> debbugs.gnu.org; Sun, 23 Dec 2018 12:09:42 -0500
Received: from mail-io1-f47.google.com ([209.85.166.47]:43217)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gb7Fz-0005tU-A2
 for 33827 <at> debbugs.gnu.org; Sun, 23 Dec 2018 12:09:40 -0500
Received: by mail-io1-f47.google.com with SMTP id q17so4151119ior.10
 for <33827 <at> debbugs.gnu.org>; Sun, 23 Dec 2018 09:09:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=gPxRgx/PXSiUvuxxbLLlD7TRxE9/gR3n6MpbGVuzHGs=;
 b=nV6BldKApEzuHtIR+P9O0inLtyaK6Vs1JlBsr+1yvpLM7sH/YcqPE101MNDK2YFIHU
 4V/AI2AoseP1nWXEgB900NHmJuyIQxbwrVzDXUxlgykZ+MSSkyHUTRcxt/go5NYM+cem
 7eELVrvpoaFzdW+t7fVzEABeeTnfv5uBs7KXFE8g+kg5//7decjmYBIbPMPMKTj7/seQ
 qxya20PR9f7m3P/49T1Cknv5xZY4XVmHOAV81SyNA1pAy0uPzd2k1lEx6POepRC6bfSf
 rhAKelXPCRE5PqkKZzbWJzBezTZMt1EZ1jrYI4flxHNZ9mFBh+Honkc1r6iOkUzdUhhv
 w2dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=gPxRgx/PXSiUvuxxbLLlD7TRxE9/gR3n6MpbGVuzHGs=;
 b=k1OXwsdTmkJ0nSmrcvl0DlQiC8FK2AKE+Aaw8OGc56I+Hjz0IhE4Q8to3XHr/r7oQA
 KEibkUUmEMRgyOlKIPnp0Pj1QzGqPE821rvmKgX0U+isA2HobQWj2se1UziJ6wIW5e8A
 lQd7r71jtVpWdP7x1d9ycfVDUWsa0JDflQLUXMGBAFwcJ+iQlZAmx0BJcbseA1myT0Kw
 gHeomQv0tMyihFlD2gbH/imwuf9MTPshs7OhRYR+0qPXBljn4EAJXVRwbpONh7itWMuB
 yWF6Cv4dspkwzZdRZdqAqFhyLq1pnzII3dbaEi5OfAhTWGrk5fgCgjYGzzS2ayRKjkD4
 cIjg==
X-Gm-Message-State: AJcUukcA05edCyoh6/+sL7z1KlaxF+HIgRueI+8xJIG6jmPMYUaJ8GWz
 Fb2eAbn7Q3UFPAMy8Yl4wBaxFpUi9aEoD1sFc8awWQ==
X-Google-Smtp-Source: ALg8bN5B1ZrQ3bVVjPhIcFf9A3pX4ejXKy/bsQY/r+Fb9Mp5HAI8VJw8wLDnx5tZobD0NXnBQP2C4Ow1DI0hRkcTmMU=
X-Received: by 2002:a6b:600b:: with SMTP id r11mr7537125iog.259.1545584973273; 
 Sun, 23 Dec 2018 09:09:33 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Sun, 23 Dec 2018 15:09:22 -0200
Message-ID: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000004d8042057db38bed"
X-Spam-Score: 0.1 (/)
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.9 (/)

--0000000000004d8042057db38bed
Content-Type: multipart/alternative; boundary="0000000000004d8040057db38beb"

--0000000000004d8040057db38beb
Content-Type: text/plain; charset="UTF-8"



--0000000000004d8040057db38beb
Content-Type: text/html; charset="UTF-8"

<div dir="ltr"><br></div>

--0000000000004d8040057db38beb--

--0000000000004d8042057db38bed
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables-anymo.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables-anymo.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jq15dexw0>
X-Attachment-Id: f_jq15dexw0

RnJvbSA4N2ZmNTE5YjkyODhkZWRjYzYyYTJmZDFiMmMwM2VjY2JmNjMxZTU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDIzIERlYyAyMDE4IDE1OjA3OjMy
IC0wMjAwClN1YmplY3Q6IFtQQVRDSF0gRml4OiAoU1JGSSA6NjkpIGRvbid0IHVzZSBoYW5kbGVz
IHdpdGggd2VhayB0YWJsZXMgYW55bW9yZS4KCk1hbnkgcHJvY2VkdXJlcyB1c2VkIGhhc2h4LWdl
dC1oYW5kbGUgYW5kIGhhc2h4LWNyZWF0ZS1oYW5kbGUhIHdpdGhvdXQKY2hlY2tpbmcgd2hldGhl
ciByZWFsLWhhc2gtdGFibGUgd2FzIHdlYWsuIE5vdyB0aGF0IGlzbid0IHRoZSBjYXNlCmFueW1v
cmUgKEJ1ZyAzMzgyNykuIEEgYnVnIHdhcyBmaXhlZCBpbiBoYXNoLXRhYmxlLW1lcmdlISBhbmQg
YSB0ZXN0IGNhc2UKd2FzIGFkZGVkLiBBIGZldyBvdGhlciBvcHRpbWl6YXRpb25zIHdlcmUgbWFk
ZS4KCiogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gKGFsaXN0LT5oYXNoLXRhYmxlKToKKGhhc2gt
dGFibGUtZGVsZXRlISk6CihoYXNoLXRhYmxlLWV4aXN0cz8pOgooaGFzaC10YWJsZS1yZWYpOiBE
b24ndCB1c2UgaGFzaHgtZ2V0LWhhbmRsZS4KKGhhc2gtdGFibGUtc2V0ISk6IElmIHdlYWtuZXNz
IGlzIHNldCwgZG9uJ3QgdXNlIGhhc2h4LWNyZWF0ZS1oYW5kbGUhCmFuZCBkb24ndCB1cGRhdGUg
c2l6ZS4KKGhhc2gtdGFibGUtdXBkYXRlISk6IElmIHdlYWtuZXNzIGlzIHNldCwgZG9uJ3QgdXNl
IGhhc2h4LWdldC1oYW5kbGUKYW5kIGRvbid0IHVwZGF0ZSBzaXplLiBPdGhlcndpc2UsIGNoZWNr
IHdoZXRoZXIgZGVmYXVsdC10aHVuayBpcyBnaXZlbgphbmQsIGlmIHNvLCB1c2UgaGFzaHgtY3Jl
YXRlLWhhbmRsZSEgdG8gYXZvaWQgZG91YmxlIGxvb2t1cC4KKGhhc2gtdGFibGUtdXBkYXRlIS9k
ZWZhdWx0KTogQWRkZWQgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IGNhbGwKaGFzaC10
YWJsZS11cGRhdGUhLCBhdm9pZGluZyBhbGxvY2F0aW5nIGEgcHJvY2VkdXJlLgooaGFzaC10YWJs
ZS1zaXplKTogU2V0IGh0LXNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMuCihoYXNoLXRhYmxlLXdh
bGspOgooaGFzaC10YWJsZS1jb3B5KTogVXNlIG5hdGl2ZSBoYXNoLWZvci1lYWNoIGluc3RlYWQg
b2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS0+YWxpc3QpOiBVc2UgbmF0aXZlIGhhc2gt
bWFwLT5saXN0IGluc3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS1tZXJnZSEp
OiBVc2UgbmF0aXZlIGhhc2gtZm9yLWVhY2ggaW5zdGVhZCBvZiBoYXNoLXRhYmxlLWZvbGQuCldh
bGtzIG92ZXIgb3RoZXItaHQgcmF0aGVyIHRoYW4gd2Fsa2luZyBodCAoYW5kIGRvaW5nIG5vdGhp
bmcpLgoqIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0OiBhbGwgYXBwcm9wcmlhdGUgdGVz
dCBhcmUgcmVwbGljYXRlZCBmb3IKYWxsIHBvc3NpYmxlIHdlYWs6IGFyZ3VtZW50cy4gQWRkZWQg
YSB0ZXN0IGZvciBoYXNoLXRhYmxlLW1lcmdlIS4KLS0tCiBUSEFOS1MgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMSArCiBtb2R1bGUvc3JmaS9zcmZpLTY5LnNjbSAgICAgICB8IDE0OSArKysr
KysrKysrKysrKysrKy0tLS0tLS0tLS0tCiB0ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdCB8
IDE3NyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQs
IDIwNSBpbnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVEhBTktT
IGIvVEhBTktTCmluZGV4IDYxNmQzYjA0Yi4uOTA1NmE3OTVjIDEwMDY0NAotLS0gYS9USEFOS1MK
KysrIGIvVEhBTktTCkBAIC0yMCw2ICsyMCw3IEBAIENvbnRyaWJ1dG9ycyBzaW5jZSB0aGUgbGFz
dCByZWxlYXNlOgogICAgICAgICAgICBOb2FoIExhdmluZQogICAgICAgICAgRGFuaWVsIExsb3Jl
bnMKICAgICAgICAgR3JlZ29yeSBNYXJ0b24KKyAgICAgICAgSsOpc3NpY2EgTWlsYXLDqQogICAg
ICAgVGhpZW4tVGhpIE5ndXllbgogICAgICAgICBIYW4tV2VuIE5pZW5odXlzCiAgICAgICAgICAg
ICBKYW4gTmlldXdlbmh1aXplbgpkaWZmIC0tZ2l0IGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20g
Yi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQppbmRleCBiOTQ4NmM0NjUuLmEwNWVjNjFlYSAxMDA2
NDQKLS0tIGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20KKysrIGIvbW9kdWxlL3NyZmkvc3JmaS02
OS5zY20KQEAgLTYyLDYgKzYyLDE0IEBACiA7OyBpbXBsZW1lbnRhdGlvbiwgYm90aCBhbnN3ZXIg
KCJ4WSIpLiAgSG93ZXZlciwgSSBkb24ndCBndWFyYW50ZWUgdGhhdAogOzsgdGhpcyB3b24ndCBj
aGFuZ2UgaW4gdGhlIGZ1dHVyZS4KIAorCis7Ozs7IENvbW1lbnRhcnkgYnkgSmVzc2ljYSBNaWxh
cmUgMjAxOAorCis7OyBNYWtlIGJ1ZyBmaXhlcyBmb3Igd2VhayBoYXNoLXRhYmxlcywgc2luY2Ug
aGFuZGxlcyBkb24ndCB3b3JrIGFueW1vcmUsCis7OyBhbmQgYWxzbyBzb21lIG9wdGltaXphdGlv
bnMuCis7OworOzsgTXkgcGVyc29uYWwgY29tbWVudHMgYXJlIG1hcmtlZCBieSBKLk0uCisKIDs7
OyBDb2RlOgogDAogOzs7OyBNb2R1bGUgZGVmaW5pdGlvbiAmIGV4cG9ydHMKQEAgLTczLDE4ICs4
MSwxOCBAQAogICAjOnVzZS1tb2R1bGUgKGljZS05IG9wdGFyZ3MpCiAgICM6ZXhwb3J0ICg7OyBU
eXBlIGNvbnN0cnVjdG9ycyAmIHByZWRpY2F0ZQogCSAgICBtYWtlLWhhc2gtdGFibGUgaGFzaC10
YWJsZT8gYWxpc3QtPmhhc2gtdGFibGUKLQkgICAgOzsgUmVmbGVjdGl2ZSBxdWVyaWVzCi0JICAg
IGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9u
Ci0JICAgIDs7IERlYWxpbmcgd2l0aCBzaW5nbGUgZWxlbWVudHMKLQkgICAgaGFzaC10YWJsZS1y
ZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBoYXNoLXRhYmxlLXNldCEKLQkgICAgaGFzaC10YWJs
ZS1kZWxldGUhIGhhc2gtdGFibGUtZXhpc3RzPyBoYXNoLXRhYmxlLXVwZGF0ZSEKLQkgICAgaGFz
aC10YWJsZS11cGRhdGUhL2RlZmF1bHQKLQkgICAgOzsgRGVhbGluZyB3aXRoIHRoZSB3aG9sZSBj
b250ZW50cwotCSAgICBoYXNoLXRhYmxlLXNpemUgaGFzaC10YWJsZS1rZXlzIGhhc2gtdGFibGUt
dmFsdWVzCi0JICAgIGhhc2gtdGFibGUtd2FsayBoYXNoLXRhYmxlLWZvbGQgaGFzaC10YWJsZS0+
YWxpc3QKLQkgICAgaGFzaC10YWJsZS1jb3B5IGhhc2gtdGFibGUtbWVyZ2UhCi0JICAgIDs7IEhh
c2hpbmcKLQkgICAgc3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKKyAgICAgICAgICAg
IDs7IFJlZmxlY3RpdmUgcXVlcmllcworICAgICAgICAgICAgaGFzaC10YWJsZS1lcXVpdmFsZW5j
ZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgIDs7IERlYWxp
bmcgd2l0aCBzaW5nbGUgZWxlbWVudHMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtcmVmIGhhc2gt
dGFibGUtcmVmL2RlZmF1bHQgaGFzaC10YWJsZS1zZXQhCisgICAgICAgICAgICBoYXNoLXRhYmxl
LWRlbGV0ZSEgaGFzaC10YWJsZS1leGlzdHM/IGhhc2gtdGFibGUtdXBkYXRlIQorICAgICAgICAg
ICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQKKyAgICAgICAgICAgIDs7IERlYWxpbmcgd2l0
aCB0aGUgd2hvbGUgY29udGVudHMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRh
YmxlLWtleXMgaGFzaC10YWJsZS12YWx1ZXMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtd2FsayBo
YXNoLXRhYmxlLWZvbGQgaGFzaC10YWJsZS0+YWxpc3QKKyAgICAgICAgICAgIGhhc2gtdGFibGUt
Y29weSBoYXNoLXRhYmxlLW1lcmdlIQorICAgICAgICAgICAgOzsgSGFzaGluZworICAgICAgICAg
ICAgc3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKICAgIzpyZS1leHBvcnQgKHN0cmlu
Zy1oYXNoKQogICAjOnJlcGxhY2UgKGhhc2ggbWFrZS1oYXNoLXRhYmxlIGhhc2gtdGFibGU/KSkK
IApAQCAtMjA0LDMwICsyMTIsMzIgQEAgbWFudWFsIGZvciBzcGVjaWZpY3MsIG9mIHdoaWNoIHRo
ZXJlIGFyZSBtYW55LiIKIAkgKHNpemUgKGh0LXNpemUgcmVzdWx0KSkpCiAgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlKSByZXN1bHQKICAgICAg
IChmb3ItZWFjaCAobGFtYmRhIChwYWlyKQotCQkgIChsZXQgKChoYW5kbGUgKGhhc2h4LWdldC1o
YW5kbGUgaGFzaC1wcm9jIGFzc29jaWF0b3IKLQkJCQkJCSAgcmVhbC10YWJsZSAoY2FyIHBhaXIp
KSkpCi0JCSAgICAoY29uZCAoKG5vdCBoYW5kbGUpCi0JCQkgICAoc2V0ISBzaXplICgxKyBzaXpl
KSkKLQkJCSAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUKLQkJ
CQkgICAgICAgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkpKSkKLQkJYWxpc3QpKQorICAgICAgICAg
ICAgICAgICAgKGxldCAoKHZhbHVlIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWwtdGFibGUgKGNhciBw
YWlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZpZWQg
dmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgxKyBzaXplKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lh
dG9yIHJlYWwtdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj
YXIgcGFpcikgKGNkciBwYWlyKSkpKSkpCisgICAgICAgICAgICAgICAgYWxpc3QpKQogICAgICho
dC1zaXplISByZXN1bHQgc2l6ZSkKICAgICByZXN1bHQpKQogDAogOzs7OyBBY2Nlc3NpbmcgdGFi
bGUgaXRlbXMKIAogOzsgV2UgdXNlIHRoaXMgdG8gZGVub3RlIG1pc3Npbmcgb3IgdW5zcGVjaWZp
ZWQgdmFsdWVzIHRvIGF2b2lkCisKIDs7IHBvc3NpYmxlIGNvbGxpc2lvbiB3aXRoICp1bnNwZWNp
ZmllZCouCiAoZGVmaW5lIGh0LXVuc3BlY2lmaWVkIChjb25zICp1bnNwZWNpZmllZCogImh0LXZh
bHVlIikpCiAKLShkZWZpbmUgKGhhc2gtdGFibGUtcmVmIGh0IGtleSAuIGRlZmF1bHQtdGh1bmst
bHN0KQorKGRlZmluZSogKGhhc2gtdGFibGUtcmVmIGh0IGtleSAgIzpvcHRpb25hbCAoZGVmYXVs
dC10aHVuayBodC11bnNwZWNpZmllZCkpCiAgICJMb29rdXAgS0VZIGluIEhUIGFuZCBhbnN3ZXIg
dGhlIHZhbHVlLCBpbnZva2UgREVGQVVMVC1USFVOSyBpZiBLRVkKIGlzbid0IHByZXNlbnQsIG9y
IHNpZ25hbCBhbiBlcnJvciBpZiBERUZBVUxULVRIVU5LIGlzbid0IHByb3ZpZGVkLiIKICAgKGxl
dCAoKHJlc3VsdCAoaGFzaHgtaW52b2tlIGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQp
KSkKICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCByZXN1bHQpCi0JKGlmIChwYWlyPyBkZWZh
dWx0LXRodW5rLWxzdCkKLQkgICAgKChmaXJzdCBkZWZhdWx0LXRodW5rLWxzdCkpCi0JICAgIChl
cnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KSkKKwkoaWYgKGVxPyBodC11bnNwZWNpZmll
ZCBkZWZhdWx0LXRodW5rKQorCSAgICAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkK
KwkgICAgKGRlZmF1bHQtdGh1bmspKQogCXJlc3VsdCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXJlZi9kZWZhdWx0IGh0IGtleSBkZWZhdWx0KQpAQCAtMjM3LDQ5ICsyNDcsNzkgQEAgcHJlc2Vu
dC4iCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtc2V0ISBodCBrZXkgbmV3LXZhbHVlKQogICAiU2V0
IEtFWSB0byBORVctVkFMVUUgaW4gSFQuIgotICAobGV0ICgoaGFuZGxlIChoYXNoeC1pbnZva2Ug
aGFzaHgtY3JlYXRlLWhhbmRsZSEgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpCi0gICAgKGlmIChl
cT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQotCShodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkpCi0gICAgKHNldC1jZHIhIGhhbmRsZSBuZXctdmFsdWUpKQorICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQorICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3
ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAgOzsgSi5NLiBkb24ndCBuZWVkIHRvIHVwZGF0
ZSBzaXplIGZvciB3ZWFrIGhhc2gtdGFibGVzCisgICAgICAoaGFzaHgtaW52b2tlIGhhc2h4LXNl
dCEgaHQga2V5IG5ldy12YWx1ZSkKKyAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWludm9rZSBo
YXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAo
Y2RyIGhhbmRsZSkpCisgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDErIChodC1zaXplIGh0KSkp
KQorICAgICAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpKQogICAqdW5zcGVjaWZpZWQq
KQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQga2V5KQogICAiUmVtb3ZlIEtFWSdz
IGFzc29jaWF0aW9uIGluIEhULiIKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC1odCkg
aHQKLSAgICAoaWYgKGhhc2h4LWdldC1oYW5kbGUgaCBhIHJlYWwtaHQga2V5KQotCShiZWdpbgot
CSAgKGh0LXNpemUhIGh0ICgxLSAoaHQtc2l6ZSBodCkpKQotCSAgKGhhc2h4LXJlbW92ZSEgaCBh
IHJlYWwtaHQga2V5KSkpKQorICAgIChpZiAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4
LXJlZiBoIGEgcmVhbC1odCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKKyAgICAgICAgKGJlZ2luCisg
ICAgICAgICAgKGh0LXNpemUhIGh0ICgxLSAoaHQtc2l6ZSBodCkpKQorICAgICAgICAgIChoYXNo
eC1yZW1vdmUhIGggYSByZWFsLWh0IGtleSkpKSkKICAgKnVuc3BlY2lmaWVkKikKIAogKGRlZmlu
ZSAoaGFzaC10YWJsZS1leGlzdHM/IGh0IGtleSkKICAgIlJldHVybiB3aGV0aGVyIEtFWSBpcyBh
IGtleSBpbiBIVC4iCi0gIChhbmQgKGhhc2h4LWludm9rZSBoYXNoeC1nZXQtaGFuZGxlIGh0IGtl
eSkgI3QpKQorICAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4LWludm9rZSBoYXNoeC1y
ZWYgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpKQogCi07OzsgYGhhc2h4LXNldCEnIGR1cGxpY2F0
ZXMgdGhlIGhhc2ggbG9va3VwLCBidXQgd2UgdXNlIGl0IGFueXdheSB0bwotOzs7IGF2b2lkIGNy
ZWF0aW5nIGEgaGFuZGxlIGluIGNhc2UgREVGQVVMVC1USFVOSyBleGl0cwogOzs7IGBoYXNoLXRh
YmxlLXVwZGF0ZSEnIG5vbi1sb2NhbGx5LgotKGRlZmluZSAoaGFzaC10YWJsZS11cGRhdGUhIGh0
IGtleSBtb2RpZmllciAuIGRlZmF1bHQtdGh1bmstbHN0KQorKGRlZmluZSogKGhhc2gtdGFibGUt
dXBkYXRlISBodCBrZXkgbW9kaWZpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpv
cHRpb25hbCAoZGVmYXVsdC10aHVuayBodC11bnNwZWNpZmllZCkpCiAgICJNb2RpZnkgSFQncyB2
YWx1ZSBhdCBLRVkgYnkgcGFzc2luZyBpdHMgdmFsdWUgdG8gTU9ESUZJRVIgYW5kCiBzZXR0aW5n
IGl0IHRvIHRoZSByZXN1bHQgdGhlcmVvZi4gIEludm9rZSBERUZBVUxULVRIVU5LIGZvciB0aGUg
b2xkCiB2YWx1ZSBpZiBLRVkgaXNuJ3QgaW4gSFQsIG9yIHNpZ25hbCBhbiBlcnJvciBpZiBERUZB
VUxULVRIVU5LIGlzIG5vdAogcHJvdmlkZWQuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gt
cHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0gICAgKGxldCAoKGhhbmRsZSAoaGFzaHgt
Z2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtleSkpKQotICAgICAg
KGNvbmQgKGhhbmRsZQotCSAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgKGNkciBoYW5k
bGUpKSkpCi0JICAgIChlbHNlCi0JICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleQotCQkJIChpZiAocGFpcj8gZGVmYXVsdC10aHVuay1sc3QpCi0JCQkg
ICAgIChtb2RpZmllciAoKGNhciBkZWZhdWx0LXRodW5rLWxzdCkpKQotCQkJICAgICAoZXJyb3Ig
IktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKQotCSAgICAgKGh0LXNpemUhIGh0ICgxKyAoaHQt
c2l6ZSBodCkpKSkpKSkKKyAgICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgICA7OyBKLk0u
IHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisg
ICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10
YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodC11bnNwZWNpZmllZCkp
KQorICAgICAgICAgIChjb25kICgoZXE/IGh0LXVuc3BlY2lmaWVkIG9sZCkKKyAgICAgICAgICAg
ICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgZGVmYXVsdC10aHVuaykKKyAgICAgICAgICAg
ICAgICAgICAgIChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KQorICAgICAgICAgICAg
ICAgICAgICAgKGhhc2h4LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciAoZGVmYXVsdC10aHVu
aykpKSkpCisgICAgICAgICAgICAgICAgKGVsc2UKKyAgICAgICAgICAgICAgICAgKGhhc2h4LXNl
dCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1vZGlmaWVyIG9sZCkpKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAg
ICAgICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCisgICAg
ICAgICAgICAgICAgICAgKGhhc2h4LWdldC1oYW5kbGUgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVh
bC10YWJsZSBrZXkpCisgICAgICAgICAgICAgICAgICAgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhh
c2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpKQorICAgICAgICAgIChjb25kICho
YW5kbGUKKyAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5k
bGUpKQorICAgICAgICAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlICht
b2RpZmllciAoZGVmYXVsdC10aHVuaykpKSkKKyAgICAgICAgICAgICAgICAgICAgIChzZXQtY2Ry
ISBoYW5kbGUgKG1vZGlmaWVyIChjZHIgaGFuZGxlKSkpKSkKKyAgICAgICAgICAgICAgICAoZWxz
ZQorICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKSkp
KQogICAqdW5zcGVjaWZpZWQqKQogCis7OzsgSi5NLiBDdXN0b20gaW1wbGVtZW50YXRpb24gaW5z
dGVhZCBvZiB1c2luZyBoYXNoLXRhYmxlLXVwZGF0ZSEKIChkZWZpbmUgKGhhc2gtdGFibGUtdXBk
YXRlIS9kZWZhdWx0IGh0IGtleSBtb2RpZmllciBkZWZhdWx0KQogICAiTW9kaWZ5IEhUJ3MgdmFs
dWUgYXQgS0VZIGJ5IHBhc3NpbmcgaXRzIG9sZCB2YWx1ZSwgb3IgREVGQVVMVCBpZiBpdAogZG9l
c24ndCBoYXZlIG9uZSwgdG8gTU9ESUZJRVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQg
dGhlcmVvZi4iCi0gIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyIChsYW1iZGEg
KCkgZGVmYXVsdCkpKQorICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9y
IHJlYWwtdGFibGUpIGh0CisgICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgSi5N
LiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQor
ICAgICAgICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwt
dGFibGUga2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNz
b2NpYXRvciByZWFsLXRhYmxlIGtleSAobW9kaWZpZXIgb2xkKSkpCisgICAgICAgIChsZXQgKCho
YW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFi
bGUga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVu
c3BlY2lmaWVkKSkpCisgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5k
bGUpKQorICAgICAgICAgICAgICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkp
KQorICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVs
dCkpKQorICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRs
ZSkpKSkpKSkpCiAMCiA7Ozs7IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIApAQCAtMjg3LDcgKzMy
Nyw5IEBAIGRvZXNuJ3QgaGF2ZSBvbmUsIHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0
aGUgcmVzdWx0IHRoZXJlb2YuIgogICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25z
IGluIEhULiAgVGhpcyBpcyBndWFyYW50ZWVkIE8oMSkKIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFr
IHdhcyAjZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAo
MSsgYW5zKSkgMCkKKyAgICAgIChsZXQgKChzaXplIChoYXNoLXRhYmxlLWZvbGQgaHQgKGxhbWJk
YSAoayB2IGFucykgKDErIGFucykpIDApKSkKKyAgICAgICAgKGh0LXNpemUhIGh0IHNpemUpCisg
ICAgICAgIHNpemUpCiAgICAgICAoaHQtc2l6ZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LWtleXMgaHQpCkBAIC0zMDAsMTAgKzM0Miw3IEBAIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdh
cyAjZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogCiAoZGVmaW5lIChoYXNo
LXRhYmxlLXdhbGsgaHQgcHJvYykKICAgIkNhbGwgUFJPQyB3aXRoIGVhY2gga2V5IGFuZCB2YWx1
ZSBhcyB0d28gYXJndW1lbnRzLiIKLSAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYg
dW5zcGVjKQotICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC12YWx1ZXMgKGxhbWJk
YSAoKSAocHJvYyBrIHYpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIHZhbHMg
dW5zcGVjKSkpCi0JCSAgICp1bnNwZWNpZmllZCopKQorICAoaGFzaC1mb3ItZWFjaCBwcm9jICho
dC1yZWFsLXRhYmxlIGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZm9sZCBodCBmIGtuaWwp
CiAgICJJbnZva2UgKEYgS0VZIFZBTCBQUkVWKSBmb3IgZWFjaCBLRVkgYW5kIFZBTCBpbiBIVCwg
d2hlcmUgUFJFViBpcwpAQCAtMzEzLDE1ICszNTIsMTUgQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJl
c3VsdC4iCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtPmFsaXN0IGh0KQogICAiUmV0dXJuIGFuIGFs
aXN0IGZvciBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQgaHQgYWxpc3QtY29ucyAnKCkpKQorICAo
aGFzaC1tYXAtPmxpc3QgY29ucyAoaHQtcmVhbC10YWJsZSBodCkpKQogCiAoZGVmaW5lIChoYXNo
LXRhYmxlLWNvcHkgaHQpCiAgICJBbnN3ZXIgYSBjb3B5IG9mIEhULiIKICAgKHdpdGgtaGFzaHgt
dmFsdWVzIChoIGEgcmVhbC1odCkgaHQKICAgICAobGV0KiAoKHNpemUgKGhhc2gtdGFibGUtc2l6
ZSBodCkpICh3ZWFrIChodC13ZWFrbmVzcyBodCkpCiAJICAgKG5ldy1yZWFsLWh0ICgoZ3VpbGUt
aHQtY3RvciB3ZWFrKSBzaXplKSkpCi0gICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGsgdiBpZ24p
IChoYXNoeC1zZXQhIGggYSBuZXctcmVhbC1odCBrIHYpKQotCQkgI2YgcmVhbC1odCkKKyAgICAg
IChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2h4LXNldCEgaCBhIG5ldy1yZWFsLWh0
IGsgdikpCisgICAgICAgICAgICAgICAgICAgICByZWFsLWh0KQogICAgICAgKG1ha2Utc3JmaS02
OS1oYXNoLXRhYmxlCQk7cmVhbCxhc3NvYyxzaXplLHdlYWssZXF1aXYsaAogICAgICAgIG5ldy1y
ZWFsLWh0IGEgc2l6ZSB3ZWFrCiAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rp
b24gaHQpIGgpKSkpCkBAIC0zMjksOCArMzY4LDggQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3Vs
dC4iCiAoZGVmaW5lIChoYXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwg
a2V5L3ZhbHVlIHBhaXJzIGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFw
cGluZ3Mgd2hlcmUgcHJlc2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQKLSAg
IGh0IChsYW1iZGEgKGsgdiBpZ24pIChoYXNoLXRhYmxlLXNldCEgaHQgayB2KSkgI2YpCisgICho
YXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gtdGFibGUtc2V0ISBodCBrIHYpKQorICAg
ICAgICAgICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhlci1odCkpCiAgIGh0KQogCiA7Ozsgc3Jm
aS02OS5zY20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjku
dGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CmluZGV4IGU5OWI3NmM2ZC4uMTA1
YWUzNzU5IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAorKysgYi90
ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdApAQCAtMjgsODAgKzI4LDEyMyBAQCBjYXNlLWlu
c2Vuc2l0aXZlIHN0cmluZ3MgdG8gYGVxdWFsPyctdGVzdGVkIHZhbHVlcy4iCiAgIChhbmQgKHN0
cmluZy1jaT0/IChjYXIgbGVmdCkgKGNhciByaWdodCkpCiAgICAgICAgKGVxdWFsPyAoY2RyIGxl
ZnQpIChjZHIgcmlnaHQpKSkpCiAKKyhkZWZpbmUtc3ludGF4IHdpdGgtd2Vha25lc3MtbGlzdAor
ICAoc3ludGF4LXJ1bGVzICgpCisgICAgKCh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mgd2Vh
a25lc3MtbGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgod2Vha25lc3MtbGlzdCogd2Vh
a25lc3MtbGlzdCkpCisgICAgICAgKG9yIChudWxsPyB3ZWFrbmVzcy1saXN0KikKKyAgICAgICAg
ICAgKGFuZCAobGV0ICgod2Vha25lc3MgKGNhciB3ZWFrbmVzcy1saXN0KikpKQorICAgICAgICAg
ICAgICAgICAgZXhwciAuLi4pCisgICAgICAgICAgICAgICAgKGxvb3AgKGNkciB3ZWFrbmVzcy1s
aXN0KikpKSkpKSkpCisKKyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykK
KyAgKGlmIChub3Qgd2Vha25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2VhazogfmEpIiBzdHIg
d2Vha25lc3MpKSkKKwogKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktNjkiCiAKLSAgKHBhc3MtaWYg
InNtYWxsIGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIKLSAgICAobGV0KiAoKHN0YXJ0
LWFsaXN0ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQotCSAgIChodCAoYWxp
c3QtPmhhc2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/KSkKLQkgICAoZW5kLWFsaXN0IChoYXNoLXRh
YmxlLT5hbGlzdCBodCkpKQotICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQot
CSAgIChsc2V0PSBlcXVhbD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQotCSAgICg9
IDEgKGhhc2gtdGFibGUtcmVmIGh0ICdhKSkKLQkgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBodCAn
YikpCi0JICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKQotCi0gIChwYXNzLWlmICJz
dHJpbmctY2k9PyB0YWJsZXMgd29yayBieSBkZWZhdWx0IgotICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8pKSkKLSAg
ICAgIChoYXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKLSAgICAgIChoYXNoLXRhYmxlLXNldCEg
aHQgInFxcSIgMTAwKQotICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIp
KQotCSAgICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKLQkgICAoPSAzIChoYXNoLXRh
YmxlLXNpemUgaHQpKQotCSAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1YWw/Ci0JCSAgJygo
Inh5IiAuIDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKLQkJICAoaGFzaC10YWJsZS0+
YWxpc3QgaHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdr
ZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNz
ICJzbWFsbCBhbGlzdDwtPmhhc2ggdGFibGVzIHJvdW5kLXRyaXAiIHdlYWtuZXNzKQorICAgICAg
KGxldCogKChzdGFydC1hbGlzdCAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChhIC4gNDIpKSkK
KyAgICAgICAgICAgICAoaHQgKGFsaXN0LT5oYXNoLXRhYmxlIHN0YXJ0LWFsaXN0IGVxPykpCisg
ICAgICAgICAgICAgKGVuZC1hbGlzdCAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkKKyAgICAgICAg
KGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVh
bD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQorICAgICAgICAgICAgICg9IDEgKGhh
c2gtdGFibGUtcmVmIGh0ICdhKSkKKyAgICAgICAgICAgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBo
dCAnYikpCisgICAgICAgICAgICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKSkKKwor
ICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdrZXkt
b3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJzdHJpbmctY2k9PyB0
YWJsZXMgd29yayBieSBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrIHdlYWtuZXNzKSkpCisgICAgICAg
IChoYXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKKyAgICAgICAgKGhhc2gtdGFibGUtc2V0ISBo
dCAicXFxIiAxMDApCisgICAgICAgIChhbmQgKD0gNTQgKGhhc2gtdGFibGUtcmVmIGh0ICJBQmMi
KSkKKyAgICAgICAgICAgICAoPSA0MiAoaGFzaC10YWJsZS1yZWYgaHQgInh5IikpCisgICAgICAg
ICAgICAgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gc3Ry
aW5nLWNpLWFzc29jLWVxdWFsPworICAgICAgICAgICAgICAgICAgICAnKCgieHkiIC4gNDIpICgi
YWJjIiAuIDU0KSAoInFxcSIgLiAxMDApKQorICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKSkpKSkKIAogICAocGFzcy1pZi1leGNlcHRpb24gIkJhZCB3ZWFrbmVzcyBh
cmcgdG8gbWh0IHNpZ25hbHMgYW4gZXJyb3IiCi0JCSAgICAgJyhtaXNjLWVycm9yIC4gIl5JbnZh
bGlkIHdlYWsgaGFzaCB0YWJsZSB0eXBlIikKKyAgICAgICAgICAgICAgICAgICAgICcobWlzYy1l
cnJvciAuICJeSW52YWxpZCB3ZWFrIGhhc2ggdGFibGUgdHlwZSIpCiAgICAgKG1ha2UtaGFzaC10
YWJsZSBlcXVhbD8gaGFzaCAjOndlYWsgJ2tleS1hbmQtdmFsdWUpKQogCi0gIChwYXNzLWlmICJl
bXB0eSBoYXNoIHRhYmxlcyBhcmUgZW1wdHkiCi0gICAgKG51bGw/IChoYXNoLXRhYmxlLT5hbGlz
dCAobWFrZS1oYXNoLXRhYmxlIGVxPykpKSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS1yZWYg
dXNlcyBkZWZhdWx0IgotICAgIChlcXVhbD8gJyg0KQotCSAgICAoaGFzaC10YWJsZS1yZWYgKGFs
aXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/KQotCQkJICAgICdiIChjdXQgbGlzdCAoKyAy
IDIpKSkpKQotCi0gIChwYXNzLWlmICJoYXNoLXRhYmxlLWRlbGV0ZSEgZGVsZXRlcyBwcmVzZW50
IGFzc29jcywgaWdub3JlcyBvdGhlcnMiCi0gICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJs
ZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/KSkpCi0gICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0
ICdjKQotICAgICAgKGFuZCAoPSAyIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAgIChiZWdpbgot
CSAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodCAnYSkKLQkgICAgICg9IDEgKGhhc2gtdGFibGUt
c2l6ZSBodCkpKQotCSAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDIpKSAoaGFzaC10YWJsZS0+YWxp
c3QgaHQpKSkpKQotCi0gIChwYXNzLWlmICJhbGlzdC0+aGFzaC10YWJsZSBkb2VzIG5vdCByZXF1
aXJlIGxpbmVhciBzdGFjayBzcGFjZSIKLSAgICAoZXF2PyA5OTk5OQotCSAgKGhhc2gtdGFibGUt
cmVmIChhbGlzdC0+aGFzaC10YWJsZQotCQkJICAgKHVuZm9sZC1yaWdodCAoY3V0ID49IDw+IDEw
MDAwMCkKLQkJCQkJIChsYW1iZGEgKHMpIGAoeCAuICxzKSkgMSsgMCkKLQkJCSAgIGVxPykKLQkJ
CSAgJ3gpKSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS13YWxrIGlnbm9yZXMgcmV0dXJuIHZh
bHVlcyIKLSAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIp
IChjIC4gMykpIGVxPykpKQotICAgICAgKGZvci1lYWNoIChjdXQgaGFzaC10YWJsZS13YWxrIGh0
IDw+KQotCQkobGlzdCAobGFtYmRhIChrIHYpICh2YWx1ZXMpKQotCQkgICAgICAobGFtYmRhIChr
IHYpICh2YWx1ZXMgMSAyIDMpKSkpCi0gICAgICAjdCkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFi
bGUtdXBkYXRlISBtb2RpZmllcyBleGlzdGluZyBiaW5kaW5nIgotICAgIChsZXQgKChodCAoYWxp
c3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8pKSkKLSAgICAgIChoYXNoLXRhYmxlLXVwZGF0
ZSEgaHQgJ2EgMSspCi0gICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdhIChjdXQgKyA0IDw+
KSAobGFtYmRhICgpIDQyKSkKLSAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkK
LQkgICAobHNldD0gZXF1YWw/ICcoKGEgLiA2KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
LQotICAocGFzcy1pZiAiaGFzaC10YWJsZS11cGRhdGUhIGNyZWF0ZXMgbmV3IGJpbmRpbmcgd2hl
biBhcHByb3ByaWF0ZSIKLSAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcT8pKSkKLSAg
ICAgIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2IgMSsgKGxhbWJkYSAoKSA0MikpCi0gICAgICAo
aGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIChjdXQgKyAxMCA8PikpCi0gICAgICAoYW5kICg9IDEg
KGhhc2gtdGFibGUtc2l6ZSBodCkpCi0JICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gNTMpKSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJlbXB0eSBoYXNoIHRhYmxlcyBhcmUgZW1wdHkiIHdlYWtuZXNzKQorICAgICAg
KGxldCBsb29wICgod2Vha25lc3MtbGlzdCAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZh
bHVlKSkpCisgICAgICAgIChvciAobnVsbD8gd2Vha25lc3MtbGlzdCkKKyAgICAgICAgICAgIChs
ZXQgKCh3ZWFrbmVzcyAoY2FyIHdlYWtuZXNzLWxpc3QpKSkKKyAgICAgICAgICAgICAgKGFuZCAo
bnVsbD8gKGhhc2gtdGFibGUtPmFsaXN0IChtYWtlLWhhc2gtdGFibGUgZXE/ICM6d2VhayB3ZWFr
bmVzcykpKQorICAgICAgICAgICAgICAgICAgIChsb29wIChjZHIgd2Vha25lc3MtbGlzdCkpKSkp
KSkpCisKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1
ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10
YWJsZS1yZWYgdXNlcyBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAgIChlcXVhbD8gJyg0KQorICAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkg
ZXE/ICM6d2VhayB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiIChj
dXQgbGlzdCAoKyAyIDIpKSkpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLWRlbGV0ZSEgZGVsZXRlcyBwcmVzZW50IGFzc29jcywgaWdu
b3JlcyBvdGhlcnMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQor
ICAgICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/
ICM6d2VhayB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdjKQor
ICAgICAgICAoYW5kICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGJl
Z2luCisgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdhKQorICAgICAgICAg
ICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkpCisgICAgICAgICAgICAgKGxzZXQ9IGVx
dWFsPyAnKChiIC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpKQorCisgICh3aXRoLXdl
YWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkK
KyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImFsaXN0LT5oYXNoLXRhYmxlIGRvZXMg
bm90IHJlcXVpcmUgbGluZWFyIHN0YWNrIHNwYWNlIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChlcXY/IDk5OTk5CisgICAgICAgICAgICAoaGFzaC10
YWJsZS1yZWYgKGFsaXN0LT5oYXNoLXRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh1bmZvbGQtcmlnaHQgKGN1dCA+PSA8PiAxMDAwMDApCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocykgYCh4IC4gLHMpKSAxKyAwKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Izp3ZWFrIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd4KSkpKQorCisg
ICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1v
ci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtd2Fs
ayBpZ25vcmVzIHJldHVybiB2YWx1ZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkg
KGIgLiAyKSAoYyAuIDMpKSBlcT8pKSkKKyAgICAgICAgKGZvci1lYWNoIChjdXQgaGFzaC10YWJs
ZS13YWxrIGh0IDw+KQorICAgICAgICAgICAgICAgICAgKGxpc3QgKGxhbWJkYSAoayB2KSAodmFs
dWVzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGsgdikgKHZhbHVlcyAxIDIg
MykpKSkKKyAgICAgICAgI3QpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChs
aXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgbW9kaWZpZXMgZXhpc3RpbmcgYmluZGluZyIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0ICgo
aHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/ICM6d2VhayB3ZWFrbmVzcykpKQor
ICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdhIDErKQorICAgICAgICAoaGFzaC10YWJs
ZS11cGRhdGUhIGh0ICdhIChjdXQgKyA0IDw+KSAobGFtYmRhICgpIDQyKSkKKyAgICAgICAgKGFu
ZCAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVhbD8g
JygoYSAuIDYpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworICAod2l0aC13ZWFrbmVz
cy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdrZXktb3ItdmFsdWUpCisgICAg
KHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgY3JlYXRlcyBu
ZXcgYmluZGluZyB3aGVuIGFwcHJvcHJpYXRlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAjOndl
YWsgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYiAxKyAobGFt
YmRhICgpIDQyKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYiAoY3V0ICsgMTAg
PD4pKQorICAgICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gNTMpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkK
KworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3ZhbHVlICdr
ZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxl
LW1lcmdlISBmdW5jdGlvbnMgcHJvcGVybHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYWtuZXNzKQorICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEg
LiAxKSAoYiAuIDIpKSBlcT8gIzp3ZWFrIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICAoaHQyIChh
bGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICM6d2VhayB3ZWFrbmVzcykp
KQorICAgICAgICAoc2V0ISBodDEgKGhhc2gtdGFibGUtbWVyZ2UhIGh0MSBodDIpKQorICAgICAg
ICAoYW5kICg9IDMgKGhhc2gtdGFibGUtc2l6ZSBodDEpKQorICAgICAgICAgICAgICg9IDIgKGhh
c2gtdGFibGUtc2l6ZSBodDIpKQorICAgICAgICAgICAgIChsc2V0PSBlcXVhbD8gJygoYSAuIDEp
IChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0MSkpCisgICAgICAgICAgICAg
KGxzZXQ9IGVxdWFsPyAnKChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0Mikp
KSkpKQogCiAgIChwYXNzLWlmICJjYW4gdXNlIGFsbCBhcmd1bWVudHMsIGluY2x1ZGluZyBzaXpl
IgogICAgIChoYXNoLXRhYmxlPyAobWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBoYXNoICM6d2VhayAn
a2V5IDMxKSkpCiAKLSkKKyAgKQotLSAKMi4xOS4xCgo=
--0000000000004d8042057db38bed--




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: Patches
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Wed, 09 Jan 2019 00:22:01 +0000
Resent-Message-ID: <handler.33827.B33827.15469932844542 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
Received: via spool by 33827-submit <at> debbugs.gnu.org id=B33827.15469932844542
          (code B ref 33827); Wed, 09 Jan 2019 00:22:01 +0000
Received: (at 33827) by debbugs.gnu.org; 9 Jan 2019 00:21:24 +0000
Received: from localhost ([127.0.0.1]:50659 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gh1ca-0001BC-BX
	for submit <at> debbugs.gnu.org; Tue, 08 Jan 2019 19:21:24 -0500
Received: from mail-io1-f46.google.com ([209.85.166.46]:36210)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1gh1cY-0001Az-Cy
 for 33827 <at> debbugs.gnu.org; Tue, 08 Jan 2019 19:21:22 -0500
Received: by mail-io1-f46.google.com with SMTP id m19so4670880ioh.3
 for <33827 <at> debbugs.gnu.org>; Tue, 08 Jan 2019 16:21:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
 bh=hPKnBztstyAL426C2WIwSz5LV+xsm3dsuY3t6JHnAso=;
 b=NL//hpDbAMiwhkko4+/sp7eVvq+ZuLD1HS3eVVjUQk4mXi+r9VBcpiACXOiE1vtWuR
 +kiHfV4hbR9oezSucw0xAIFtPNHG5Fhay+htKSCe534wJop6Ix1fUcrRkvYP5eQX3/me
 njAww2Nej9vjwmJdfVU1ct7q0vMUHdOgZKubnCu05MwuJYB+PXtKWzV2ZIM7G5b8p3Xn
 nQV8wNX/5+hh1u7aRTNNdIuJV0RMohpCJKArQdQNcHjUs7wqUA2pRFHB9Bh8bPMiEN0B
 noS/wjmAo3HgOvSxAJ4Lvpw0XnW/fVBJSTORX50y5xO76VI+wRQmifzyUF2KxVKETsJf
 Dp6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to;
 bh=hPKnBztstyAL426C2WIwSz5LV+xsm3dsuY3t6JHnAso=;
 b=WuSM/7LfpqbS2/xVH23XBDqdpnSZmnANCDjD7TtPtR3c9iWP2De82trH7P9T8coczd
 wCHpzBrxdEnl9zMJgBoXLNFX7jspZeglUw6N/bB1KUgnacpwXS4Eelprn+se9KpCouih
 hsIwSwrmLmXBhESxn+72gGZ5tdSe8IG//RyyIEyttmAxdV585Dd0Cl805wLxIqN580Tj
 vaNQRXa2HPkHikzymjS1ATQAHmE+WZ9oowylPQcT4W6DGWyzibfukg0exmYomGGurckd
 QivgLSYMU1vkREdfokp2xaeEZnwv6gSwKYveLUllrlyde4yQ1BgUJz4Lt66m0UQjpIuN
 +W2Q==
X-Gm-Message-State: AJcUukfYEzRdp43BotxlwFlXMw1NKeNR3dmPpjNLQYxyAv7fgcNAJsak
 EfXevIEWAh3aOGYu4DMRoq9PdLhl9oOkNFe2p60yCgkX
X-Google-Smtp-Source: ALg8bN7ihvv9V9CukS3mjcnYDlYQNnloZO8y7cVJUx5tVqNpRf2Owzl7Psni3r7GUdNZyUAZJFttf0UVQQ96GsGbqr0=
X-Received: by 2002:a6b:da10:: with SMTP id x16mr2494069iob.101.1546993276398; 
 Tue, 08 Jan 2019 16:21:16 -0800 (PST)
MIME-Version: 1.0
References: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
In-Reply-To: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Tue, 8 Jan 2019 22:21:04 -0200
Message-ID: <CAGBcF1aZrZhBjEk=tvsJHLJnMDc1ERt-ZaCiwOzqMksnfZsP_Q@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000b6a39d057efb700b"
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>

--000000000000b6a39d057efb700b
Content-Type: multipart/alternative; boundary="000000000000b6a39a057efb7009"

--000000000000b6a39a057efb7009
Content-Type: text/plain; charset="UTF-8"

Patch 0001 fixes SRFI-69 bugs as specified. Patches 0002 to 0005 implement
the module (ice-9 generic-hash-tables) and then reimplement SRFI-69 and
(rnrs hashtables) and add an implementation of SRFI 126, all of them using
generic-hash-tables (and therefore compatible to each other).

I've called `make check' after each commit and all tests PASS: or XFAIL:,
except the four tests in linker.test, as reported in Bug 33991[1].

[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33991

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

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr">Patch 0001 fixes SRFI-69=
 bugs as specified. Patches 0002 to 0005 implement the module (ice-9 generi=
c-hash-tables) and then reimplement SRFI-69 and (rnrs hashtables) and add a=
n implementation of SRFI 126, all of them using generic-hash-tables (and th=
erefore compatible to each other).<div><br></div><div>I&#39;ve called `make=
 check&#39; after each commit and all tests PASS: or XFAIL:, except the fou=
r tests in linker.test, as reported in Bug=C2=A033991[1].</div><div><br></d=
iv><div>[1]=C2=A0<a href=3D"https://debbugs.gnu.org/cgi/bugreport.cgi?bug=
=3D33991">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991</a></div></=
div></div></div>

--000000000000b6a39a057efb7009--

--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0003-Reimplemented-SRFI-69-using-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0003-Reimplemented-SRFI-69-using-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmio12>
X-Attachment-Id: f_jqofmio12

RnJvbSBhODM5NDZmMGNkOGFiYjY0YjliODkwNjY4OTM4Njc1OTU1ODE1OTE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDI6MjUg
LTAyMDAKU3ViamVjdDogW1BBVENIIDMvNV0gUmVpbXBsZW1lbnRlZCBTUkZJLTY5IHVzaW5nIEdF
TkVSSUMtSEFTSC1UQUJMRVMKCi0tLQogbW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20gICAgfCAg
MjkgKystLQogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gICAgICAgfCAzMTggKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QgfCAg
IDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMjU3IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL21vZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2NtIGIvbW9kdWxlL3JucnMv
aGFzaHRhYmxlcy5zY20KaW5kZXggMjJiYWU3ZjA5Li40ODY0NTJhMmEgMTAwNjQ0Ci0tLSBhL21v
ZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2NtCisrKyBiL21vZHVsZS9ybnJzL2hhc2h0YWJsZXMuc2Nt
CkBAIC02Nyw2ICs2Nyw3IEBACiAJCQkJICAgaGFzaC10YWJsZS1mb2xkKQogCQkgIChoYXNoIGVx
dWFsLWhhc2gpCiAJCSAgKGhhc2gtYnktaWRlbnRpdHkgc3ltYm9sLWhhc2gpKQorICAgICAgICAg
IChvbmx5IChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSBoYXNoLWJ5LXZhbHVlKQogCSAgKHJu
cnMgYmFzZSAoNikpCiAJICAocm5ycyByZWNvcmRzIHByb2NlZHVyYWwgKDYpKSkKICAgCkBAIC05
MCw5ICs5MSw5IEBACiAKICAgKGRlZmluZSBoYXNodGFibGUtbXV0YWJsZT8gcjZyczpoYXNodGFi
bGUtbXV0YWJsZT8pCiAKLSAgKGRlZmluZSBoYXNoLWJ5LXZhbHVlICgoQEAgKHNyZmkgc3JmaS02
OSkgY2FsbGVyLXdpdGgtZGVmYXVsdC1zaXplKSBoYXNodikpCi0gIChkZWZpbmUgKHdyYXAtaGFz
aC1mdW5jdGlvbiBwcm9jKSAKLSAgICAobGFtYmRhIChrZXkgY2FwYWNpdHkpIChtb2R1bG8gKHBy
b2Mga2V5KSBjYXBhY2l0eSkpKQorICA7OyAoZGVmaW5lIGhhc2gtYnktdmFsdWUgKChAQCAoc3Jm
aSBzcmZpLTY5KSBjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUpIGhhc2h2KSkKKyAgOzsgKGRlZmlu
ZSAod3JhcC1oYXNoLWZ1bmN0aW9uIHByb2MpCisgIDs7ICAgKGxhbWJkYSAoa2V5IGNhcGFjaXR5
KSAobW9kdWxvIChwcm9jIGtleSkgY2FwYWNpdHkpKSkKIAogICAoZGVmaW5lKiAobWFrZS1lcS1o
YXNodGFibGUgIzpvcHRpb25hbCBrKQogICAgIChtYWtlLXI2cnMtaGFzaHRhYmxlIApAQCAtMTA5
LDE0ICsxMTAsMTMgQEAKICAgICAgJ2VxdikpCiAKICAgKGRlZmluZSogKG1ha2UtaGFzaHRhYmxl
IGhhc2gtZnVuY3Rpb24gZXF1aXYgIzpvcHRpb25hbCBrKQotICAgIChsZXQgKCh3cmFwcGVkLWhh
c2gtZnVuY3Rpb24gKHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpCi0gICAgICAo
bWFrZS1yNnJzLWhhc2h0YWJsZQotICAgICAgIChpZiBrIAotCSAgIChtYWtlLWhhc2gtdGFibGUg
ZXF1aXYgd3JhcHBlZC1oYXNoLWZ1bmN0aW9uIGspCi0JICAgKG1ha2UtaGFzaC10YWJsZSBlcXVp
diB3cmFwcGVkLWhhc2gtZnVuY3Rpb24pKQotICAgICAgIGhhc2gtZnVuY3Rpb24KLSAgICAgICAj
dAotICAgICAgICdjdXN0b20pKSkKKyAgICAobWFrZS1yNnJzLWhhc2h0YWJsZQorICAgICAoaWYg
aworICAgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNoLWZ1bmN0aW9uIGspCisgICAg
ICAgICAobWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24pKQorICAgICBoYXNoLWZ1
bmN0aW9uCisgICAgICN0CisgICAgICdjdXN0b20pKQogIAogICAoZGVmaW5lIChoYXNodGFibGUt
c2l6ZSBoYXNodGFibGUpCiAgICAgKGhhc2gtdGFibGUtc2l6ZSAocjZyczpoYXNodGFibGUtd3Jh
cHBlZC10YWJsZSBoYXNodGFibGUpKSkKQEAgLTE1NiwxMyArMTU2LDEyIEBACiAgICAgKGlmIChy
NnJzOmhhc2h0YWJsZS1tdXRhYmxlPyBoYXNodGFibGUpCiAJKGxldCogKChodCAocjZyczpoYXNo
dGFibGUtd3JhcHBlZC10YWJsZSBoYXNodGFibGUpKQogCSAgICAgICAoZXF1aXYgKGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpKQotCSAgICAgICAoaGFzaC1mdW5jdGlvbiAocjZy
czpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhhc2h0YWJsZSkpCi0JICAgICAgICh3cmFw
cGVkLWhhc2gtZnVuY3Rpb24gKHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpCisJ
ICAgICAgIChoYXNoLWZ1bmN0aW9uIChyNnJzOmhhc2h0YWJsZS1vcmlnLWhhc2gtZnVuY3Rpb24g
aGFzaHRhYmxlKSkpCiAJICAocjZyczpoYXNodGFibGUtc2V0LXdyYXBwZWQtdGFibGUhCiAJICAg
aGFzaHRhYmxlCiAJICAgKGlmIGsgCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgd3Jh
cHBlZC1oYXNoLWZ1bmN0aW9uIGspCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgd3Jh
cHBlZC1oYXNoLWZ1bmN0aW9uKSkpKSkKKwkgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBo
YXNoLWZ1bmN0aW9uIGspCisJICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5j
dGlvbikpKSkpCiAgICAgKnVuc3BlY2lmaWVkKikKIAogICAoZGVmaW5lIChoYXNodGFibGUta2V5
cyBoYXNodGFibGUpCmRpZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbSBiL21vZHVs
ZS9zcmZpL3NyZmktNjkuc2NtCmluZGV4IDJiN2ZiOWE3Zi4uYWU1YmM3ZjA2IDEwMDY0NAotLS0g
YS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQpA
QCAtMTYsNyArMTYsOCBAQAogOzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogOzsgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQog
DAotOzs7OyBDb21tZW50YXJ5OgorCis7Ozs7IE9yaWdpbmFsIChzdGFsZSkgU1JGSS02OSBjb21t
ZW50YXJ5OgogCiA7OyBNeSBgaGFzaCcgaXMgY29tcGF0aWJsZSB3aXRoIGNvcmUgYGhhc2gnLCBz
byBJIHJlcGxhY2UgaXQuCiA7OyBIb3dldmVyLCBteSBgaGFzaC10YWJsZT8nIGFuZCBgbWFrZS1o
YXNoLXRhYmxlJyBhcmUgZGlmZmVyZW50LCBzbwpAQCAtNjUsOCArNjYsNyBAQAogCiA7Ozs7IENv
bW1lbnRhcnkgYnkgSmVzc2ljYSBNaWxhcmUgMjAxOAogCi07OyBNYWtlIGJ1ZyBmaXhlcyBmb3Ig
d2VhayBoYXNoLXRhYmxlcywgc2luY2UgaGFuZGxlcyBkb24ndCB3b3JrIGFueW1vcmUsCi07OyBh
bmQgYWxzbyBzb21lIG9wdGltaXphdGlvbnMuCis7OyBOb3cgaW1wbGVtZW50ZWQgdXNpbmcgbW9k
dWxlIChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKQogOzsKIDs7IE15IHBlcnNvbmFsIGNvbW1l
bnRzIGFyZSBtYXJrZWQgYnkgSi5NLgogCkBAIC03NSwzMDAgKzc1LDEzNiBAQAogOzs7OyBNb2R1
bGUgZGVmaW5pdGlvbiAmIGV4cG9ydHMKIAogKGRlZmluZS1tb2R1bGUgKHNyZmkgc3JmaS02OSkK
LSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkJO2FsaXN0LWNvbnMsc2Vjb25kJmMsYXNzb2MK
LSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOSkKLSAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmkt
MTMpCTtzdHJpbmctaGFzaCxzdHJpbmctaGFzaC1jaQotICAjOnVzZS1tb2R1bGUgKGljZS05IG9w
dGFyZ3MpCi0gICM6ZXhwb3J0ICg7OyBUeXBlIGNvbnN0cnVjdG9ycyAmIHByZWRpY2F0ZQotCSAg
ICBtYWtlLWhhc2gtdGFibGUgaGFzaC10YWJsZT8gYWxpc3QtPmhhc2gtdGFibGUKKyAgIzp1c2Ut
bW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlICgoaWNlLTkgZ2VuZXJpYy1oYXNo
LXRhYmxlcykgIzpwcmVmaXggZ2VuOikKKyAgIzpyZXBsYWNlIChtYWtlLWhhc2gtdGFibGUgaGFz
aC10YWJsZT8gaGFzaCkKKyAgIzpleHBvcnQgKDs7IFR5cGUgY29uc3RydWN0b3JzCisgICAgICAg
ICAgICBtYWtlLWhhc2gtdGFibGUKKyAgICAgICAgICAgIGhhc2gtdGFibGU/IGFsaXN0LT5oYXNo
LXRhYmxlCiAgICAgICAgICAgICA7OyBSZWZsZWN0aXZlIHF1ZXJpZXMKICAgICAgICAgICAgIGhh
c2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCiAg
ICAgICAgICAgICA7OyBEZWFsaW5nIHdpdGggc2luZ2xlIGVsZW1lbnRzCiAgICAgICAgICAgICBo
YXNoLXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGhhc2gtdGFibGUtc2V0IQotICAg
ICAgICAgICAgaGFzaC10YWJsZS1kZWxldGUhIGhhc2gtdGFibGUtZXhpc3RzPyBoYXNoLXRhYmxl
LXVwZGF0ZSEKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLXVwZGF0
ZSEKICAgICAgICAgICAgIGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0CisgICAgICAgICAgICBo
YXNoLXRhYmxlLWV4aXN0cz8KICAgICAgICAgICAgIDs7IERlYWxpbmcgd2l0aCB0aGUgd2hvbGUg
Y29udGVudHMKICAgICAgICAgICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRhYmxlLWtleXMgaGFz
aC10YWJsZS12YWx1ZXMKLSAgICAgICAgICAgIGhhc2gtdGFibGUtd2FsayBoYXNoLXRhYmxlLWZv
bGQgaGFzaC10YWJsZS0+YWxpc3QKLSAgICAgICAgICAgIGhhc2gtdGFibGUtY29weSBoYXNoLXRh
YmxlLW1lcmdlIQorICAgICAgICAgICAgaGFzaC10YWJsZS0+YWxpc3QgaGFzaC10YWJsZS1mb2xk
CisgICAgICAgICAgICBoYXNoLXRhYmxlLXdhbGsgaGFzaC10YWJsZS1tZXJnZSEKKyAgICAgICAg
ICAgIGhhc2gtdGFibGUtY29weQogICAgICAgICAgICAgOzsgSGFzaGluZwotICAgICAgICAgICAg
c3RyaW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKLSAgIzpyZS1leHBvcnQgKHN0cmluZy1o
YXNoKQotICAjOnJlcGxhY2UgKGhhc2ggbWFrZS1oYXNoLXRhYmxlIGhhc2gtdGFibGU/KSkKKyAg
ICAgICAgICAgIHN0cmluZy1jaS1oYXNoIGhhc2gtYnktaWRlbnRpdHkgaGFzaCkKKyAgIzpyZS1l
eHBvcnQgKHN0cmluZy1oYXNoKSkKIAogKGNvbmQtZXhwYW5kLXByb3ZpZGUgKGN1cnJlbnQtbW9k
dWxlKSAnKHNyZmktNjkpKQotDAotOzs7OyBJbnRlcm5hbCBoZWxwZXIgbWFjcm9zCi0KLTs7IERl
ZmluZSB0aGVzZSBmaXJzdCwgc28gdGhlIGNvbXBpbGVyIHdpbGwgcGljayB0aGVtIHVwLgotCi07
OyBJIGFtIGEgbWFjcm8gb25seSBmb3IgZWZmaWNpZW5jeSwgdG8gYXZvaWQgdmFyYXJncy9hcHBs
eS4KLShkZWZpbmUtbWFjcm8gKGhhc2h4LWludm9rZSBoYXNoeC1wcm9jIGh0LXZhciAuIGFyZ3Mp
Ci0gICJJbnZva2UgSEFTSFgtUFJPQywgYSBgaGFzaHgtKicgcHJvY2VkdXJlIHRha2luZyBhIGhh
c2gtZnVuY3Rpb24sCi1hc3NvYy1mdW5jdGlvbiwgYW5kIHRoZSBoYXNoLXRhYmxlIGFzIGZpcnN0
IGFyZ3MuIgotICBgKCxoYXNoeC1wcm9jIChoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24gLGh0LXZh
cikKLQkJKGh0LWFzc29jaWF0b3IgLGh0LXZhcikKLQkJKGh0LXJlYWwtdGFibGUgLGh0LXZhcikK
LQkJLiAsYXJncykpCiAKLShkZWZpbmUtbWFjcm8gKHdpdGgtaGFzaHgtdmFsdWVzIGJpbmRpbmdz
IGh0LXZhciAuIGJvZHktZm9ybXMpCi0gICJCaW5kIEJJTkRJTkdTIHRvIHRoZSBoYXNoLWZ1bmN0
aW9uLCBhc3NvY2lhdG9yLCBhbmQgcmVhbC10YWJsZSBvZgotSFQtVkFSLCB3aGlsZSBldmFsdWF0
aW5nIEJPRFktRk9STVMuIgotICBgKGxldCAoKCwoZmlyc3QgYmluZGluZ3MpIChoYXNoLXRhYmxl
LWhhc2gtZnVuY3Rpb24gLGh0LXZhcikpCi0JICgsKHNlY29uZCBiaW5kaW5ncykgKGh0LWFzc29j
aWF0b3IgLGh0LXZhcikpCi0JICgsKHRoaXJkIGJpbmRpbmdzKSAoaHQtcmVhbC10YWJsZSAsaHQt
dmFyKSkpCi0gICAgIC4gLGJvZHktZm9ybXMpKQotCi0MCiA7Ozs7IEhhc2hpbmcKLQotOzs7IFRo
ZSBsYXJnZXN0IGZpeG51bSBpcyBpbiBgbW9zdC1wb3NpdGl2ZS1maXhudW0nIGluIG1vZHVsZSAo
Z3VpbGUpLAotOzs7IHRob3VnaCBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSBidXQgbGliZ3VpbGUv
bnVtYmVycy5jLgotCi0oZGVmaW5lIChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaC1mbikK
LSAgIkFuc3dlciBhIGZ1bmN0aW9uIHRoYXQgbWFrZXMgYG1vc3QtcG9zaXRpdmUtZml4bnVtJyB0
aGUgZGVmYXVsdAotc2Vjb25kIGFyZ3VtZW50IHRvIEhBU0gtRk4sIGEgMi1hcmcgcHJvY2VkdXJl
LiIKLSAgKGxhbWJkYSogKG9iaiAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9zaXRpdmUtZml4bnVt
KSkKLSAgICAoaGFzaC1mbiBvYmogc2l6ZSkpKQotCi0oZGVmaW5lIGhhc2ggKGNhbGxlci13aXRo
LWRlZmF1bHQtc2l6ZSAoQCAoZ3VpbGUpIGhhc2gpKSkKLQogKGRlZmluZSBzdHJpbmctY2ktaGFz
aCBzdHJpbmctaGFzaC1jaSkKKyhkZWZpbmUgaGFzaCBnZW46aGFzaCkKKyhkZWZpbmUgaGFzaC1i
eS1pZGVudGl0eSBnZW46aGFzaC1ieS1pZGVudGl0eSkKIAotKGRlZmluZSBoYXNoLWJ5LWlkZW50
aXR5IChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaHEpKQogDAogOzs7OyBSZWZsZWN0aXZl
IHF1ZXJpZXMsIGNvbnN0cnVjdGlvbiwgcHJlZGljYXRlCiAKLShkZWZpbmUtcmVjb3JkLXR5cGUg
c3JmaS02OTpoYXNoLXRhYmxlCi0gIChtYWtlLXNyZmktNjktaGFzaC10YWJsZSByZWFsLXRhYmxl
IGFzc29jaWF0b3Igc2l6ZSB3ZWFrbmVzcwotCQkJICAgZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFz
aC1mdW5jdGlvbikKLSAgaGFzaC10YWJsZT8KLSAgKHJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSkK
LSAgKGFzc29jaWF0b3IgaHQtYXNzb2NpYXRvcikKLSAgOzsgcmVxdWlyZWQgZm9yIE8oMSkgYnkg
U1JGSS02OS4gIEl0IHJlYWxseSBtYWtlcyBhIG1lc3Mgb2YgdGhpbmdzLAotICA7OyBhbmQgSSdk
IGxpa2UgdG8gY29tcHV0ZSBpdCBpbiBPKG4pIGFuZCBtZW1vaXplIGl0IGJlY2F1c2UgaXQKLSAg
OzsgZG9lc24ndCBzZWVtIHRlcnJpYmx5IHVzZWZ1bCwgYnV0IFNSRkktNjkgaXMgZmluYWwuCi0g
IChzaXplIGh0LXNpemUgaHQtc2l6ZSEpCi0gIDs7IHJlcXVpcmVkIGZvciBgaGFzaC10YWJsZS1j
b3B5JwotICAod2Vha25lc3MgaHQtd2Vha25lc3MpCi0gIDs7IHVzZWQgb25seSB0byBpbXBsZW1l
bnQgaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbjsgSSBkb24ndAotICA7OyB1c2UgaXQg
aW50ZXJuYWxseSBvdGhlciB0aGFuIGZvciBgaHQtYXNzb2NpYXRvcicuCi0gIChlcXVpdmFsZW5j
ZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uKQotICAoaGFzaC1mdW5j
dGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24pKQorKGRlZmluZSBoYXNoLXRhYmxlPyBnZW46
aGFzaC10YWJsZT8pCiAKIChkZWZpbmUgKGd1ZXNzLWhhc2gtZnVuY3Rpb24gZXF1YWwtcHJvYykK
ICAgIkd1ZXNzIGEgaGFzaCBmdW5jdGlvbiBmb3IgRVFVQUwtUFJPQywgZmFsbGluZyBiYWNrIG9u
IGBoYXNoJywgYXMKIHNwZWNpZmllZCBpbiBTUkZJLTY5IGZvciBgbWFrZS1oYXNoLXRhYmxlJy4i
Ci0gIChjb25kICgoZXE/IGVxdWFsPyBlcXVhbC1wcm9jKSAoQCAoZ3VpbGUpIGhhc2gpKSA7c2hv
cnRjdXQgbW9zdCBjb21tb24gY2FzZQotCSgoZXE/IGVxPyBlcXVhbC1wcm9jKSBoYXNocSkKLQko
KGVxPyBlcXY/IGVxdWFsLXByb2MpIGhhc2h2KQotCSgoZXE/IHN0cmluZz0/IGVxdWFsLXByb2Mp
IHN0cmluZy1oYXNoKQotCSgoZXE/IHN0cmluZy1jaT0/IGVxdWFsLXByb2MpIHN0cmluZy1jaS1o
YXNoKQotCShlbHNlIChAIChndWlsZSkgaGFzaCkpKSkKLQotKGRlZmluZSAod2l0aG91dC1rZXl3
b3JkLWFyZ3MgcmVzdC1saXN0KQotICAiQW5zd2VyIFJFU1QtTElTVCB3aXRoIGFsbCBrZXl3b3Jk
cyByZW1vdmVkIGFsb25nIHdpdGggaXRlbXMgdGhhdAotZm9sbG93IHRoZW0uIgotICAobGV0IGxw
ICgoYWNjICcoKSkgKHJlc3QtbGlzdCByZXN0LWxpc3QpKQotICAgIChjb25kICgobnVsbD8gcmVz
dC1saXN0KSAocmV2ZXJzZSEgYWNjKSkKLQkgICgoa2V5d29yZD8gKGZpcnN0IHJlc3QtbGlzdCkp
Ci0JICAgKGxwIGFjYyAoY2RkciByZXN0LWxpc3QpKSkKLQkgIChlbHNlIChscCAoY29ucyAoZmly
c3QgcmVzdC1saXN0KSBhY2MpIChjZHIgcmVzdC1saXN0KSkpKSkpCi0KLShkZWZpbmUgKGd1aWxl
LWh0LWN0b3Igd2Vha25lc3MpCi0gICJBbnN3ZXIgdGhlIEd1aWxlIEhUIGNvbnN0cnVjdG9yIGZv
ciB0aGUgZ2l2ZW4gV0VBS05FU1MuIgotICAoY2FzZSB3ZWFrbmVzcwotICAgICgoI2YpIChAIChn
dWlsZSkgbWFrZS1oYXNoLXRhYmxlKSkKLSAgICAoKGtleSkgbWFrZS13ZWFrLWtleS1oYXNoLXRh
YmxlKQotICAgICgodmFsdWUpIG1ha2Utd2Vhay12YWx1ZS1oYXNoLXRhYmxlKQotICAgICgoa2V5
LW9yLXZhbHVlKSBtYWtlLWRvdWJseS13ZWFrLWhhc2gtdGFibGUpCi0gICAgKGVsc2UgKGVycm9y
ICJJbnZhbGlkIHdlYWsgaGFzaCB0YWJsZSB0eXBlIiB3ZWFrbmVzcykpKSkKLQotKGRlZmluZSAo
ZXF1aXZhbGVuY2UtcHJvYy0+YXNzb2NpYXRvciBlcXVhbC1wcm9jKQotICAiQW5zd2VyIGFuIGBh
c3NvYyctbGlrZSBwcm9jZWR1cmUgdGhhdCBjb21wYXJlcyB0aGUgYXJndW1lbnQga2V5IHRvCi1h
bGlzdCBrZXlzIHdpdGggRVFVQUwtUFJPQy4iCi0gIChjb25kICgob3IgKGVxPyBlcXVhbD8gZXF1
YWwtcHJvYykKLQkgICAgIChlcT8gc3RyaW5nPT8gZXF1YWwtcHJvYykpIChAIChndWlsZSkgYXNz
b2MpKQotCSgoZXE/IGVxPyBlcXVhbC1wcm9jKSBhc3NxKQotCSgoZXE/IGVxdj8gZXF1YWwtcHJv
YykgYXNzdikKLQkoZWxzZSAobGFtYmRhIChpdGVtIGFsaXN0KQotCQkoYXNzb2MgaXRlbSBhbGlz
dCBlcXVhbC1wcm9jKSkpKSkKLQotKGRlZmluZSogKG1ha2UtaGFzaC10YWJsZQotCSAgIzpvcHRp
b25hbCAoZXF1YWwtcHJvYyBlcXVhbD8pCi0JICAoaGFzaC1wcm9jIChndWVzcy1oYXNoLWZ1bmN0
aW9uIGVxdWFsLXByb2MpKQotCSAgIzprZXkgKHdlYWsgI2YpICM6cmVzdCBndWlsZS1vcHRzKQor
ICAoY29uZCAoKGVxPyBlcXVhbD8gZXF1YWwtcHJvYykgZ2VuOmhhc2gpIDtzaG9ydGN1dCBtb3N0
IGNvbW1vbiBjYXNlCisJKChlcT8gZXE/IGVxdWFsLXByb2MpIGdlbjpoYXNoLWJ5LWlkZW50aXR5
KQorCSgoZXE/IGVxdj8gZXF1YWwtcHJvYykgZ2VuOmhhc2gtYnktdmFsdWUpCisJKChlcT8gc3Ry
aW5nPT8gZXF1YWwtcHJvYykgZ2VuOnN0cmluZy1oYXNoKQorCSgoZXE/IHN0cmluZy1jaT0/IGVx
dWFsLXByb2MpIGdlbjpzdHJpbmctY2ktaGFzaCkKKwkoZWxzZSBnZW46aGFzaCkpKQorCisoZGVm
aW5lIChub3JtYWxpemUtd2Vha25lc3Mgd2VhaykKKyAgIk5vcm1hbGl6ZXMgU1JGSS02OSBzdGFu
ZGFyZCAjOndlYWsgdG8gU1JGSS0xMjYgd2Vha25lc3MgYXJndW1lbnQuIgorICAoY2FzZSB3ZWFr
CisgICAgKCgjZikgI2YpCisgICAgKChrZXkpICd3ZWFrLWtleSkKKyAgICAoKHZhbHVlKSAnd2Vh
ay12YWx1ZSkKKyAgICAoKGtleS1vci12YWx1ZSkgJ3dlYWsta2V5LWFuZC12YWx1ZSkKKyAgICAo
ZWxzZSAoZXJyb3IgIkludmFsaWQgd2VhayBoYXNoIHRhYmxlIHR5cGUiIHdlYWspKSkpCisKKyhk
ZWZpbmUqIChtYWtlLWhhc2gtdGFibGUgIzpvcHRpb25hbCAoZXF1YWwtcHJvYyBlcXVhbD8pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoLXByb2MgKGd1ZXNzLWhhc2gtZnVuY3Rpb24g
ZXF1YWwtcHJvYykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5ICh3ZWFrICNmKSAj
OnJlc3QgYXJncykKICAgIkFuc3dlciBhIG5ldyBoYXNoIHRhYmxlIHVzaW5nIEVRVUFMLVBST0Mg
YXMgdGhlIGNvbXBhcmlzb24KIGZ1bmN0aW9uLCBhbmQgSEFTSC1QUk9DIGFzIHRoZSBoYXNoIGZ1
bmN0aW9uLiAgU2VlIHRoZSByZWZlcmVuY2UKIG1hbnVhbCBmb3Igc3BlY2lmaWNzLCBvZiB3aGlj
aCB0aGVyZSBhcmUgbWFueS4iCi0gIChtYWtlLXNyZmktNjktaGFzaC10YWJsZQotICAgKGFwcGx5
IChndWlsZS1odC1jdG9yIHdlYWspICh3aXRob3V0LWtleXdvcmQtYXJncyBndWlsZS1vcHRzKSkK
LSAgIChlcXVpdmFsZW5jZS1wcm9jLT5hc3NvY2lhdG9yIGVxdWFsLXByb2MpCi0gICAwIHdlYWsg
ZXF1YWwtcHJvYyBoYXNoLXByb2MpKQorICAobGV0ICgoY2FwYWNpdHkgKGZpbmQgaW50ZWdlcj8g
YXJncykpKQorICAgIChnZW46bWFrZS1oYXNoLXRhYmxlIGVxdWFsLXByb2MgaGFzaC1wcm9jCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyAobm9ybWFsaXplLXdlYWtuZXNzIHdl
YWspCisgICAgICAgICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkp
KSkKKworKGRlZmluZSBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGdlbjpoYXNoLXRh
YmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uKQorKGRlZmluZSBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rp
b24gZ2VuOmhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbikKKyhkZWZpbmUqIChhbGlzdC0+aGFzaC10
YWJsZSBhbGlzdCAjOm9wdGlvbmFsIChlcXVhbC1wcm9jIGVxdWFsPykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaGFzaC1wcm9jIChndWVzcy1oYXNoLWZ1bmN0aW9uIGVxdWFsLXByb2Mp
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5ICh3ZWFrICNmKSAjOnJlc3QgYXJn
cykKKyAgKGxldCAoKGNhcGFjaXR5IChmaW5kIGludGVnZXI/IGFyZ3MpKSkKKyAgICAoZ2VuOmFs
aXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWFsLXByb2MgaGFzaC1wcm9jCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjOndlYWtuZXNzIChub3JtYWxpemUtd2Vha25lc3Mgd2VhaykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICM6Y2FwYWNpdHkgKG9yIGNhcGFjaXR5IDEpKSkpCiAKLShk
ZWZpbmUgKGFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IC4gbWh0LWFyZ3MpCi0gICJDb252ZXJ0IEFM
SVNUIHRvIGEgaGFzaCB0YWJsZSBjcmVhdGVkIHdpdGggTUhULUFSR1MuIgotICAobGV0KiAoKHJl
c3VsdCAoYXBwbHkgbWFrZS1oYXNoLXRhYmxlIG1odC1hcmdzKSkKLQkgKHNpemUgKGh0LXNpemUg
cmVzdWx0KSkpCi0gICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoYXNoLXByb2MgYXNzb2NpYXRvciBy
ZWFsLXRhYmxlKSByZXN1bHQKLSAgICAgIChmb3ItZWFjaCAobGFtYmRhIChwYWlyKQotICAgICAg
ICAgICAgICAgICAgKGxldCAoKHZhbHVlIChoYXNoeC1yZWYgaGFzaC1wcm9jIGFzc29jaWF0b3IK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWwtdGFibGUgKGNh
ciBwYWlyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5z
cGVjaWZpZWQpKSkKLSAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZp
ZWQgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgxKyBzaXpl
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3Nv
Y2lhdG9yIHJlYWwtdGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjYXIgcGFpcikgKGNkciBwYWlyKSkpKSkpCi0gICAgICAgICAgICAgICAgYWxpc3QpKQotICAg
IChodC1zaXplISByZXN1bHQgc2l6ZSkKLSAgICByZXN1bHQpKQogDAotOzs7OyBBY2Nlc3Npbmcg
dGFibGUgaXRlbXMKLQotOzsgV2UgdXNlIHRoaXMgdG8gZGVub3RlIG1pc3Npbmcgb3IgdW5zcGVj
aWZpZWQgdmFsdWVzIHRvIGF2b2lkCi0KLTs7IHBvc3NpYmxlIGNvbGxpc2lvbiB3aXRoICp1bnNw
ZWNpZmllZCouCi0oZGVmaW5lIGh0LXVuc3BlY2lmaWVkIChjb25zICp1bnNwZWNpZmllZCogImh0
LXZhbHVlIikpCis7OyBEZWFsaW5nIHdpdGggc2luZ2xlIGVsZW1lbnRzCiAKLShkZWZpbmUqICho
YXNoLXRhYmxlLXJlZiBodCBrZXkgICM6b3B0aW9uYWwgKGRlZmF1bHQtdGh1bmsgaHQtdW5zcGVj
aWZpZWQpKQorKGRlZmluZSogKGhhc2gtdGFibGUtcmVmIGh0IGtleSAjOm9wdGlvbmFsIGZhaWx1
cmUpCiAgICJMb29rdXAgS0VZIGluIEhUIGFuZCBhbnN3ZXIgdGhlIHZhbHVlLCBpbnZva2UgREVG
QVVMVC1USFVOSyBpZiBLRVkKIGlzbid0IHByZXNlbnQsIG9yIHNpZ25hbCBhbiBlcnJvciBpZiBE
RUZBVUxULVRIVU5LIGlzbid0IHByb3ZpZGVkLiIKLSAgKGxldCAoKHJlc3VsdCAoaGFzaHgtaW52
b2tlIGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAoaWYgKGVxPyBodC11
bnNwZWNpZmllZCByZXN1bHQpCi0JKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgZGVmYXVsdC10aHVu
aykKLQkgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpCi0JICAgIChkZWZhdWx0
LXRodW5rKSkKLQlyZXN1bHQpKSkKLQotKGRlZmluZSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBo
dCBrZXkgZGVmYXVsdCkKLSAgIkxvb2t1cCBLRVkgaW4gSFQgYW5kIGFuc3dlciB0aGUgdmFsdWUu
ICBBbnN3ZXIgREVGQVVMVCBpZiBLRVkgaXNuJ3QKLXByZXNlbnQuIgotICAoaGFzaHgtaW52b2tl
IGhhc2h4LXJlZiBodCBrZXkgZGVmYXVsdCkpCi0KLShkZWZpbmUgKGhhc2gtdGFibGUtc2V0ISBo
dCBrZXkgbmV3LXZhbHVlKQotICAiU2V0IEtFWSB0byBORVctVkFMVUUgaW4gSFQuIgotICAoaWYg
KGh0LXdlYWtuZXNzIGh0KQotICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBo
dCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgOzsgSi5NLiBkb24ndCBuZWVkIHRv
IHVwZGF0ZSBzaXplIGZvciB3ZWFrIGhhc2gtdGFibGVzCi0gICAgICAoaGFzaHgtaW52b2tlIGhh
c2h4LXNldCEgaHQga2V5IG5ldy12YWx1ZSkKLSAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWlu
dm9rZSBoYXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNp
ZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDErIChodC1zaXpl
IGh0KSkpKQotICAgICAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpKQotICAqdW5zcGVj
aWZpZWQqKQorICAoaWYgZmFpbHVyZQorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZiBodCBrZXkg
ZmFpbHVyZSkKKyAgICAgIChnZW46aGFzaC10YWJsZS1yZWYgaHQga2V5KSkpCiAKKyhkZWZpbmUg
aGFzaC10YWJsZS1yZWYvZGVmYXVsdCBnZW46aGFzaC10YWJsZS1yZWYvZGVmYXVsdCkKKyhkZWZp
bmUgaGFzaC10YWJsZS1leGlzdHM/IGdlbjpoYXNoLXRhYmxlLWNvbnRhaW5zPykKKyhkZWZpbmUg
aGFzaC10YWJsZS1zZXQhIGdlbjpoYXNoLXRhYmxlLXNldC1zaW5nbGUhKQogKGRlZmluZSAoaGFz
aC10YWJsZS1kZWxldGUhIGh0IGtleSkKLSAgIlJlbW92ZSBLRVkncyBhc3NvY2lhdGlvbiBpbiBI
VC4iCi0gICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtaHQpIGh0Ci0gICAgKGlmIChub3Qg
KGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtcmVmIGggYSByZWFsLWh0IGtleSBodC11bnNwZWNp
ZmllZCkpKQotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDEtIChodC1z
aXplIGh0KSkpCi0gICAgICAgICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtaHQga2V5KSkpKQor
ICAoZ2VuOmhhc2gtdGFibGUtZGVsZXRlLXNpbmdsZSEgaHQga2V5KQogICAqdW5zcGVjaWZpZWQq
KQogCi0oZGVmaW5lIChoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQotICAiUmV0dXJuIHdoZXRo
ZXIgS0VZIGlzIGEga2V5IGluIEhULiIKLSAgKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkIChoYXNo
eC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBodC11bnNwZWNpZmllZCkpKSkKLQotOzs7IGBoYXNo
LXRhYmxlLXVwZGF0ZSEnIG5vbi1sb2NhbGx5LgotKGRlZmluZSogKGhhc2gtdGFibGUtdXBkYXRl
ISBodCBrZXkgbW9kaWZpZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpvcHRpb25h
bCAoZGVmYXVsdC10aHVuayBodC11bnNwZWNpZmllZCkpCisoZGVmaW5lKiAoaGFzaC10YWJsZS11
cGRhdGUhIGh0IGtleSBtb2RpZmllciAjOm9wdGlvbmFsIGRlZmF1bHQtdGh1bmspCiAgICJNb2Rp
ZnkgSFQncyB2YWx1ZSBhdCBLRVkgYnkgcGFzc2luZyBpdHMgdmFsdWUgdG8gTU9ESUZJRVIgYW5k
CiBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQgdGhlcmVvZi4gIEludm9rZSBERUZBVUxULVRIVU5L
IGZvciB0aGUgb2xkCiB2YWx1ZSBpZiBLRVkgaXNuJ3QgaW4gSFQsIG9yIHNpZ25hbCBhbiBlcnJv
ciBpZiBERUZBVUxULVRIVU5LIGlzIG5vdAogcHJvdmlkZWQuIgotICAod2l0aC1oYXNoeC12YWx1
ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0gICAgKGlmIChodC13ZWFr
bmVzcyBodCkKLSAgICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3
ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhh
c2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAgICAgICAoY29uZCAoKGVxPyBodC11bnNw
ZWNpZmllZCBvbGQpCi0gICAgICAgICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIGRl
ZmF1bHQtdGh1bmspCi0gICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4gdGFi
bGUiIGtleSBodCkKLSAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBh
c3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobW9kaWZpZXIgKGRlZmF1bHQtdGh1bmspKSkpKQotICAgICAgICAgICAgICAgIChlbHNlCi0g
ICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFi
bGUga2V5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciBvbGQpKSkpKQot
ICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1nZXQtaGFuZGxlIGhhc2gtcHJvYyBhc3NvY2lh
dG9yIHJlYWwtdGFibGUga2V5KSkpCi0gICAgICAgICAgKGNvbmQgKGhhbmRsZSAoaWYgKGVxPyBo
dC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGJlZ2luIChodC1zaXplISBodCAoMSsgKGh0LXNpemUgaHQpKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgKGRlZmF1bHQtdGh1
bmspKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9k
aWZpZXIgKGNkciBoYW5kbGUpKSkpKQotICAgICAgICAgICAgICAgIChlbHNlIChpZiAoZXE/IGh0
LXVuc3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChl
cnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoZGVmYXVsdCAoZGVmYXVsdC10aHVuaykpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChodC1zaXplISBodCAoMSsgKGh0LXNpemUgaHQpKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtl
eQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RpZmllciBkZWZh
dWx0KSkpKSkpKSkpCi0gICp1bnNwZWNpZmllZCopCisgIChpZiBkZWZhdWx0LXRodW5rCisgICAg
ICAoZ2VuOmhhc2gtdGFibGUtdXBkYXRlISBodCBrZXkgbW9kaWZpZXIgZGVmYXVsdC10aHVuaykK
KyAgICAgIChnZW46aGFzaC10YWJsZS11cGRhdGUhIGh0IGtleSBtb2RpZmllcikpKQorCisoZGVm
aW5lIGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGdlbjpoYXNoLXRhYmxlLXVwZGF0ZSEvZGVm
YXVsdCkKIAotOzs7IEouTS4gQ3VzdG9tIGltcGxlbWVudGF0aW9uIGluc3RlYWQgb2YgdXNpbmcg
aGFzaC10YWJsZS11cGRhdGUhCi0oZGVmaW5lIChoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdCBo
dCBrZXkgbW9kaWZpZXIgZGVmYXVsdCkKLSAgIk1vZGlmeSBIVCdzIHZhbHVlIGF0IEtFWSBieSBw
YXNzaW5nIGl0cyBvbGQgdmFsdWUsIG9yIERFRkFVTFQgaWYgaXQKLWRvZXNuJ3QgaGF2ZSBvbmUs
IHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVzdWx0IHRoZXJlb2YuIgotICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIGh0Ci0g
ICAgKGlmIChodC13ZWFrbmVzcyBodCkKLSAgICAgICAgOzsgSi5NLiBzZXBhcmF0ZSB0aGUgY2Fz
ZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQotICAgICAgICAobGV0KiAoKG9s
ZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5IGRlZmF1bHQp
KSkKLSAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxl
IGtleSAobW9kaWZpZXIgb2xkKSkpCi0gICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0
ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpCi0gICAg
ICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQotICAgICAgICAgICAg
ICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkpKQotICAgICAgICAgICAgICAg
ICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVsdCkpKQotICAgICAgICAgICAg
ICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRsZSkpKSkpKSkpCiAMCiA7Ozs7
IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIAotKGRlZmluZSAoaGFzaC10YWJsZS1zaXplIGh0KQot
ICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhULiAgVGhpcyBpcyBndWFy
YW50ZWVkIE8oMSkKLWZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAjZiBvciBub3Qgc3BlY2lm
aWVkIGF0IGNyZWF0aW9uIHRpbWUuIgotICAoaWYgKGh0LXdlYWtuZXNzIGh0KQotICAgICAgKGxl
dCAoKHNpemUgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAoMSsgYW5zKSkg
MCkpKQotICAgICAgICAoaHQtc2l6ZSEgaHQgc2l6ZSkKLSAgICAgICAgc2l6ZSkKLSAgICAgICho
dC1zaXplIGh0KSkpCi0KLShkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKLSAgIlJldHVybiBh
IGxpc3Qgb2YgdGhlIGtleXMgaW4gSFQuIgotICAoaGFzaC10YWJsZS1mb2xkIGh0IChsYW1iZGEg
KGsgdiBsc3QpIChjb25zIGsgbHN0KSkgJygpKSkKLQotKGRlZmluZSAoaGFzaC10YWJsZS12YWx1
ZXMgaHQpCi0gICJSZXR1cm4gYSBsaXN0IG9mIHRoZSB2YWx1ZXMgaW4gSFQuIgotICAoaGFzaC10
YWJsZS1mb2xkIGh0IChsYW1iZGEgKGsgdiBsc3QpIChjb25zIHYgbHN0KSkgJygpKSkKKyhkZWZp
bmUgaGFzaC10YWJsZS1zaXplIGdlbjpoYXNoLXRhYmxlLXNpemUpCisoZGVmaW5lIGhhc2gtdGFi
bGUta2V5cyBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNoLXRhYmxlLXZhbHVlcyBn
ZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2gtdGFibGUtPmFsaXN0IGdlbjpoYXNo
LXRhYmxlLT5hbGlzdCkKIAogKGRlZmluZSAoaGFzaC10YWJsZS13YWxrIGh0IHByb2MpCiAgICJD
YWxsIFBST0Mgd2l0aCBlYWNoIGtleSBhbmQgdmFsdWUgYXMgdHdvIGFyZ3VtZW50cy4iCi0gICho
YXNoLWZvci1lYWNoIHByb2MgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgKGdlbjpoYXNoLXRhYmxl
LWZvci1lYWNoIHByb2MgaHQpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWZvbGQgaHQgZiBrbmls
KQogICAiSW52b2tlIChGIEtFWSBWQUwgUFJFVikgZm9yIGVhY2ggS0VZIGFuZCBWQUwgaW4gSFQs
IHdoZXJlIFBSRVYgaXMKIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIGludm9jYXRpb24sIHVz
aW5nIEtOSUwgYXMgdGhlIGZpcnN0IFBSRVYuCiBBbnN3ZXIgdGhlIGZpbmFsIEYgcmVzdWx0LiIK
LSAgKGhhc2gtZm9sZCBmIGtuaWwgKGh0LXJlYWwtdGFibGUgaHQpKSkKLQotKGRlZmluZSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpCi0gICJSZXR1cm4gYW4gYWxpc3QgZm9yIEhULiIKLSAgKGhhc2gt
bWFwLT5saXN0IGNvbnMgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgKGdlbjpoYXNoLXRhYmxlLWZv
bGQgZiBrbmlsIGh0KSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1jb3B5IGh0KQogICAiQW5zd2Vy
IGEgY29weSBvZiBIVC4iCi0gICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtaHQpIGh0Ci0g
ICAgKGxldCogKChzaXplIChoYXNoLXRhYmxlLXNpemUgaHQpKSAod2VhayAoaHQtd2Vha25lc3Mg
aHQpKQotCSAgIChuZXctcmVhbC1odCAoKGd1aWxlLWh0LWN0b3Igd2Vhaykgc2l6ZSkpKQotICAg
ICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoayB2KSAoaGFzaHgtc2V0ISBoIGEgbmV3LXJlYWwt
aHQgayB2KSkKLSAgICAgICAgICAgICAgICAgICAgIHJlYWwtaHQpCi0gICAgICAobWFrZS1zcmZp
LTY5LWhhc2gtdGFibGUJCTtyZWFsLGFzc29jLHNpemUsd2VhayxlcXVpdixoCi0gICAgICAgbmV3
LXJlYWwtaHQgYSBzaXplIHdlYWsKLSAgICAgICAoaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5j
dGlvbiBodCkgaCkpKSkKKyAgKGdlbjpoYXNoLXRhYmxlLWNvcHkgaHQpKQogCiAoZGVmaW5lICho
YXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwga2V5L3ZhbHVlIHBhaXJz
IGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFwcGluZ3Mgd2hlcmUgcHJl
c2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gt
dGFibGUtc2V0ISBodCBrIHYpKQotICAgICAgICAgICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhl
ci1odCkpCisgIDs7IEhBU0gtVEFCTEUtU0VUISB0ZXN0cyBpZiBIVCBpcyBtdXRhYmxlLgorICAo
Z2VuOmhhc2gtdGFibGUtZm9yLWVhY2ggKGxhbWJkYSAoayB2KSAoaGFzaC10YWJsZS1zZXQhIGh0
IGsgdikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci1odCkKICAgaHQpCiAKIDs7
OyBzcmZpLTY5LnNjbSBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3Jm
aS02OS50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QKaW5kZXggYzJhNTU0ZGIz
Li5lMTU3OWY3M2EgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0Cisr
KyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CkBAIC0xNDEsNiArMTQxLDcgQEAgY2Fz
ZS1pbnNlbnNpdGl2ZSBzdHJpbmdzIHRvIGBlcXVhbD8nLXRlc3RlZCB2YWx1ZXMuIgogICAgICAg
ICAgICAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDMpIChjIC4gNCkpIChoYXNoLXRhYmxlLT5hbGlz
dCBodDIpKSkpKSkKIAogICAocGFzcy1pZiAiY2FuIHVzZSBhbGwgYXJndW1lbnRzLCBpbmNsdWRp
bmcgc2l6ZSIKLSAgICAoaGFzaC10YWJsZT8gKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8gaGFzaCAj
OndlYWsgJ2tleSAzMSkpKQorICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBo
YXNoICM6d2VhayAna2V5IDMxKSkpCisgICAgICAoaGFzaC10YWJsZT8gaHQpKSkKIAogICApCi0t
IAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-SRFI-69-don-t-use-handles-with-weak-tables.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofminb0>
X-Attachment-Id: f_jqofminb0

RnJvbSBjZTEwOTk0ZmQ3Y2Q3NTQ2Yjc3MDdhNDA3MTJlYzk2MDNlNzQwMTA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjE6NTU6NDAg
LTAyMDAKU3ViamVjdDogW1BBVENIIDEvNV0gRml4OiBTUkZJLTY5IGRvbid0IHVzZSBoYW5kbGVz
IHdpdGggd2VhayB0YWJsZXMgIGFueW1vcmUuCgpNYW55IHByb2NlZHVyZXMgdXNlZCBoYXNoeC1n
ZXQtaGFuZGxlIGFuZCBoYXNoeC1jcmVhdGUtaGFuZGxlISB3aXRob3V0CmNoZWNraW5nIHdoZXRo
ZXIgcmVhbC1oYXNoLXRhYmxlIHdhcyB3ZWFrLiBOb3cgdGhhdCBpc24ndCB0aGUgY2FzZQphbnlt
b3JlIChCdWcgMzM4MjcpLiBBIGJ1ZyB3YXMgZml4ZWQgaW4gaGFzaC10YWJsZS1tZXJnZSEgYW5k
IGEgdGVzdCBjYXNlCndhcyBhZGRlZC4gQSBmZXcgb3RoZXIgb3B0aW1pemF0aW9ucyB3ZXJlIG1h
ZGUuCgoqIG1vZHVsZS9zcmZpL3NyZmktNjkuc2NtIChhbGlzdC0+aGFzaC10YWJsZSk6CihoYXNo
LXRhYmxlLWRlbGV0ZSEpOgooaGFzaC10YWJsZS1leGlzdHM/KToKKGhhc2gtdGFibGUtcmVmKTog
RG9uJ3QgdXNlIGhhc2h4LWdldC1oYW5kbGUuCihoYXNoLXRhYmxlLXNldCEpOiBJZiB3ZWFrbmVz
cyBpcyBzZXQsIGRvbid0IHVzZSBoYXNoeC1jcmVhdGUtaGFuZGxlIQphbmQgZG9uJ3QgdXBkYXRl
IHNpemUuCihoYXNoLXRhYmxlLXVwZGF0ZSEpOiBJZiB3ZWFrbmVzcyBpcyBzZXQsIGRvbid0IHVz
ZSBoYXNoeC1nZXQtaGFuZGxlCmFuZCBkb24ndCB1cGRhdGUgc2l6ZS4KKGhhc2gtdGFibGUtdXBk
YXRlIS9kZWZhdWx0KTogQWRkZWQgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBkb2Vzbid0IGNhbGwK
aGFzaC10YWJsZS11cGRhdGUhLCBhdm9pZGluZyBhbGxvY2F0aW5nIGEgcHJvY2VkdXJlLgooaGFz
aC10YWJsZS1zaXplKTogU2V0IGh0LXNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMuCihoYXNoLXRh
YmxlLXdhbGspOgooaGFzaC10YWJsZS1jb3B5KTogVXNlIG5hdGl2ZSBoYXNoLWZvci1lYWNoIGlu
c3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS0+YWxpc3QpOiBVc2UgbmF0aXZl
IGhhc2gtbWFwLT5saXN0IGluc3RlYWQgb2YgaGFzaC10YWJsZS1mb2xkLgooaGFzaC10YWJsZS1t
ZXJnZSEpOiBVc2UgbmF0aXZlIGhhc2gtZm9yLWVhY2ggaW5zdGVhZCBvZiBoYXNoLXRhYmxlLWZv
bGQuCldhbGtzIG92ZXIgb3RoZXItaHQgcmF0aGVyIHRoYW4gd2Fsa2luZyBodCAoYW5kIGRvaW5n
IG5vdGhpbmcpLgoqIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0OiBhbGwgYXBwcm9wcmlh
dGUgdGVzdCBhcmUgcmVwbGljYXRlZCBmb3IKYWxsIHBvc3NpYmxlICM6d2VhayBhcmd1bWVudHMu
IEFkZGVkIGEgdGVzdCBmb3IgaGFzaC10YWJsZS1tZXJnZSEuCi0tLQogVEhBTktTICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEgKwogbW9kdWxlL3NyZmkvc3JmaS02OS5zY20gICAgICAgfCAx
NDggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS02
OS50ZXN0IHwgMTczICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDMgZmlsZXMg
Y2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDEyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9USEFOS1MgYi9USEFOS1MKaW5kZXggNjE2ZDNiMDRiLi45MDU2YTc5NWMgMTAwNjQ0Ci0tLSBh
L1RIQU5LUworKysgYi9USEFOS1MKQEAgLTIwLDYgKzIwLDcgQEAgQ29udHJpYnV0b3JzIHNpbmNl
IHRoZSBsYXN0IHJlbGVhc2U6CiAgICAgICAgICAgIE5vYWggTGF2aW5lCiAgICAgICAgICBEYW5p
ZWwgTGxvcmVucwogICAgICAgICBHcmVnb3J5IE1hcnRvbgorICAgICAgICBKw6lzc2ljYSBNaWxh
csOpCiAgICAgICBUaGllbi1UaGkgTmd1eWVuCiAgICAgICAgIEhhbi1XZW4gTmllbmh1eXMKICAg
ICAgICAgICAgIEphbiBOaWV1d2VuaHVpemVuCmRpZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZp
LTY5LnNjbSBiL21vZHVsZS9zcmZpL3NyZmktNjkuc2NtCmluZGV4IGI5NDg2YzQ2NS4uMmI3ZmI5
YTdmIDEwMDY0NAotLS0gYS9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQorKysgYi9tb2R1bGUvc3Jm
aS9zcmZpLTY5LnNjbQpAQCAtNjIsNiArNjIsMTQgQEAKIDs7IGltcGxlbWVudGF0aW9uLCBib3Ro
IGFuc3dlciAoInhZIikuICBIb3dldmVyLCBJIGRvbid0IGd1YXJhbnRlZSB0aGF0CiA7OyB0aGlz
IHdvbid0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLgogCisKKzs7OzsgQ29tbWVudGFyeSBieSBKZXNz
aWNhIE1pbGFyZSAyMDE4CisKKzs7IE1ha2UgYnVnIGZpeGVzIGZvciB3ZWFrIGhhc2gtdGFibGVz
LCBzaW5jZSBoYW5kbGVzIGRvbid0IHdvcmsgYW55bW9yZSwKKzs7IGFuZCBhbHNvIHNvbWUgb3B0
aW1pemF0aW9ucy4KKzs7Cis7OyBNeSBwZXJzb25hbCBjb21tZW50cyBhcmUgbWFya2VkIGJ5IEou
TS4KKwogOzs7IENvZGU6CiAMCiA7Ozs7IE1vZHVsZSBkZWZpbml0aW9uICYgZXhwb3J0cwpAQCAt
NzMsMTggKzgxLDE4IEBACiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgb3B0YXJncykKICAgIzpleHBv
cnQgKDs7IFR5cGUgY29uc3RydWN0b3JzICYgcHJlZGljYXRlCiAJICAgIG1ha2UtaGFzaC10YWJs
ZSBoYXNoLXRhYmxlPyBhbGlzdC0+aGFzaC10YWJsZQotCSAgICA7OyBSZWZsZWN0aXZlIHF1ZXJp
ZXMKLQkgICAgaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gt
ZnVuY3Rpb24KLQkgICAgOzsgRGVhbGluZyB3aXRoIHNpbmdsZSBlbGVtZW50cwotCSAgICBoYXNo
LXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGhhc2gtdGFibGUtc2V0IQotCSAgICBo
YXNoLXRhYmxlLWRlbGV0ZSEgaGFzaC10YWJsZS1leGlzdHM/IGhhc2gtdGFibGUtdXBkYXRlIQot
CSAgICBoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAotCSAgICA7OyBEZWFsaW5nIHdpdGggdGhl
IHdob2xlIGNvbnRlbnRzCi0JICAgIGhhc2gtdGFibGUtc2l6ZSBoYXNoLXRhYmxlLWtleXMgaGFz
aC10YWJsZS12YWx1ZXMKLQkgICAgaGFzaC10YWJsZS13YWxrIGhhc2gtdGFibGUtZm9sZCBoYXNo
LXRhYmxlLT5hbGlzdAotCSAgICBoYXNoLXRhYmxlLWNvcHkgaGFzaC10YWJsZS1tZXJnZSEKLQkg
ICAgOzsgSGFzaGluZwotCSAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50aXR5KQorICAg
ICAgICAgICAgOzsgUmVmbGVjdGl2ZSBxdWVyaWVzCisgICAgICAgICAgICBoYXNoLXRhYmxlLWVx
dWl2YWxlbmNlLWZ1bmN0aW9uIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAg
OzsgRGVhbGluZyB3aXRoIHNpbmdsZSBlbGVtZW50cworICAgICAgICAgICAgaGFzaC10YWJsZS1y
ZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBoYXNoLXRhYmxlLXNldCEKKyAgICAgICAgICAgIGhh
c2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLWV4aXN0cz8gaGFzaC10YWJsZS11cGRhdGUhCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAgOzsgRGVh
bGluZyB3aXRoIHRoZSB3aG9sZSBjb250ZW50cworICAgICAgICAgICAgaGFzaC10YWJsZS1zaXpl
IGhhc2gtdGFibGUta2V5cyBoYXNoLXRhYmxlLXZhbHVlcworICAgICAgICAgICAgaGFzaC10YWJs
ZS13YWxrIGhhc2gtdGFibGUtZm9sZCBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAgaGFz
aC10YWJsZS1jb3B5IGhhc2gtdGFibGUtbWVyZ2UhCisgICAgICAgICAgICA7OyBIYXNoaW5nCisg
ICAgICAgICAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50aXR5KQogICAjOnJlLWV4cG9y
dCAoc3RyaW5nLWhhc2gpCiAgICM6cmVwbGFjZSAoaGFzaCBtYWtlLWhhc2gtdGFibGUgaGFzaC10
YWJsZT8pKQogCkBAIC0yMDQsMzAgKzIxMiwzMiBAQCBtYW51YWwgZm9yIHNwZWNpZmljcywgb2Yg
d2hpY2ggdGhlcmUgYXJlIG1hbnkuIgogCSAoc2l6ZSAoaHQtc2l6ZSByZXN1bHQpKSkKICAgICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUpIHJlc3Vs
dAogICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCi0JCSAgKGxldCAoKGhhbmRsZSAoaGFz
aHgtZ2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvcgotCQkJCQkJICByZWFsLXRhYmxlIChj
YXIgcGFpcikpKSkKLQkJICAgIChjb25kICgobm90IGhhbmRsZSkKLQkJCSAgIChzZXQhIHNpemUg
KDErIHNpemUpKQotCQkJICAgKGhhc2h4LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10
YWJsZQotCQkJCSAgICAgICAoY2FyIHBhaXIpIChjZHIgcGFpcikpKSkpKQotCQlhbGlzdCkpCisg
ICAgICAgICAgICAgICAgICAobGV0ICgodmFsdWUgKGhhc2h4LXJlZiBoYXNoLXByb2MgYXNzb2Np
YXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJs
ZSAoY2FyIHBhaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
dC11bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGVxPyBodC11bnNw
ZWNpZmllZCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQhIHNpemUgKDEr
IHNpemUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaGFzaC1wcm9j
IGFzc29jaWF0b3IgcmVhbC10YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkpKSkKKyAgICAgICAgICAgICAgICBhbGlzdCkp
CiAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKQogICAgIHJlc3VsdCkpCiAMCiA7Ozs7IEFjY2Vz
c2luZyB0YWJsZSBpdGVtcwogCiA7OyBXZSB1c2UgdGhpcyB0byBkZW5vdGUgbWlzc2luZyBvciB1
bnNwZWNpZmllZCB2YWx1ZXMgdG8gYXZvaWQKKwogOzsgcG9zc2libGUgY29sbGlzaW9uIHdpdGgg
KnVuc3BlY2lmaWVkKi4KIChkZWZpbmUgaHQtdW5zcGVjaWZpZWQgKGNvbnMgKnVuc3BlY2lmaWVk
KiAiaHQtdmFsdWUiKSkKIAotKGRlZmluZSAoaGFzaC10YWJsZS1yZWYgaHQga2V5IC4gZGVmYXVs
dC10aHVuay1sc3QpCisoZGVmaW5lKiAoaGFzaC10YWJsZS1yZWYgaHQga2V5ICAjOm9wdGlvbmFs
IChkZWZhdWx0LXRodW5rIGh0LXVuc3BlY2lmaWVkKSkKICAgIkxvb2t1cCBLRVkgaW4gSFQgYW5k
IGFuc3dlciB0aGUgdmFsdWUsIGludm9rZSBERUZBVUxULVRIVU5LIGlmIEtFWQogaXNuJ3QgcHJl
c2VudCwgb3Igc2lnbmFsIGFuIGVycm9yIGlmIERFRkFVTFQtVEhVTksgaXNuJ3QgcHJvdmlkZWQu
IgogICAobGV0ICgocmVzdWx0IChoYXNoeC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBodC11bnNw
ZWNpZmllZCkpKQogICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIHJlc3VsdCkKLQkoaWYgKHBh
aXI/IGRlZmF1bHQtdGh1bmstbHN0KQotCSAgICAoKGZpcnN0IGRlZmF1bHQtdGh1bmstbHN0KSkK
LQkgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpKQorCShpZiAoZXE/IGh0LXVu
c3BlY2lmaWVkIGRlZmF1bHQtdGh1bmspCisJICAgIChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIg
a2V5IGh0KQorCSAgICAoZGVmYXVsdC10aHVuaykpCiAJcmVzdWx0KSkpCiAKIChkZWZpbmUgKGhh
c2gtdGFibGUtcmVmL2RlZmF1bHQgaHQga2V5IGRlZmF1bHQpCkBAIC0yMzcsNDkgKzI0Nyw3OCBA
QCBwcmVzZW50LiIKIAogKGRlZmluZSAoaGFzaC10YWJsZS1zZXQhIGh0IGtleSBuZXctdmFsdWUp
CiAgICJTZXQgS0VZIHRvIE5FVy1WQUxVRSBpbiBIVC4iCi0gIChsZXQgKChoYW5kbGUgKGhhc2h4
LWludm9rZSBoYXNoeC1jcmVhdGUtaGFuZGxlISBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKLSAg
ICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0JKGh0LXNpemUhIGh0ICgx
KyAoaHQtc2l6ZSBodCkpKSkKLSAgICAoc2V0LWNkciEgaGFuZGxlIG5ldy12YWx1ZSkpCisgIChp
ZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJl
IGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisgICAgICA7OyBKLk0uIGRvbid0IG5lZWQg
dG8gdXBkYXRlIHNpemUgZm9yIHdlYWsgaGFzaC10YWJsZXMKKyAgICAgIChoYXNoeC1pbnZva2Ug
aGFzaHgtc2V0ISBodCBrZXkgbmV3LXZhbHVlKQorICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgt
aW52b2tlIGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGh0IGtleQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgIChpZiAoZXE/IGh0LXVuc3Bl
Y2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgIChodC1zaXplISBodCAoMSsgKGh0LXNp
emUgaHQpKSkpCisgICAgICAgIChzZXQtY2RyISBoYW5kbGUgbmV3LXZhbHVlKSkpCiAgICp1bnNw
ZWNpZmllZCopCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZGVsZXRlISBodCBrZXkpCiAgICJSZW1v
dmUgS0VZJ3MgYXNzb2NpYXRpb24gaW4gSFQuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSBy
ZWFsLWh0KSBodAotICAgIChpZiAoaGFzaHgtZ2V0LWhhbmRsZSBoIGEgcmVhbC1odCBrZXkpCi0J
KGJlZ2luCi0JICAoaHQtc2l6ZSEgaHQgKDEtIChodC1zaXplIGh0KSkpCi0JICAoaGFzaHgtcmVt
b3ZlISBoIGEgcmVhbC1odCBrZXkpKSkpCisgICAgKGlmIChub3QgKGVxPyBodC11bnNwZWNpZmll
ZCAoaGFzaHgtcmVmIGggYSByZWFsLWh0IGtleSBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAo
YmVnaW4KKyAgICAgICAgICAoaHQtc2l6ZSEgaHQgKDEtIChodC1zaXplIGh0KSkpCisgICAgICAg
ICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtaHQga2V5KSkpKQogICAqdW5zcGVjaWZpZWQqKQog
CiAoZGVmaW5lIChoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQogICAiUmV0dXJuIHdoZXRoZXIg
S0VZIGlzIGEga2V5IGluIEhULiIKLSAgKGFuZCAoaGFzaHgtaW52b2tlIGhhc2h4LWdldC1oYW5k
bGUgaHQga2V5KSAjdCkpCisgIChub3QgKGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtaW52b2tl
IGhhc2h4LXJlZiBodCBrZXkgaHQtdW5zcGVjaWZpZWQpKSkpCiAKLTs7OyBgaGFzaHgtc2V0IScg
ZHVwbGljYXRlcyB0aGUgaGFzaCBsb29rdXAsIGJ1dCB3ZSB1c2UgaXQgYW55d2F5IHRvCi07Ozsg
YXZvaWQgY3JlYXRpbmcgYSBoYW5kbGUgaW4gY2FzZSBERUZBVUxULVRIVU5LIGV4aXRzCiA7Ozsg
YGhhc2gtdGFibGUtdXBkYXRlIScgbm9uLWxvY2FsbHkuCi0oZGVmaW5lIChoYXNoLXRhYmxlLXVw
ZGF0ZSEgaHQga2V5IG1vZGlmaWVyIC4gZGVmYXVsdC10aHVuay1sc3QpCisoZGVmaW5lKiAoaGFz
aC10YWJsZS11cGRhdGUhIGh0IGtleSBtb2RpZmllcgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOm9wdGlvbmFsIChkZWZhdWx0LXRodW5rIGh0LXVuc3BlY2lmaWVkKSkKICAgIk1vZGlm
eSBIVCdzIHZhbHVlIGF0IEtFWSBieSBwYXNzaW5nIGl0cyB2YWx1ZSB0byBNT0RJRklFUiBhbmQK
IHNldHRpbmcgaXQgdG8gdGhlIHJlc3VsdCB0aGVyZW9mLiAgSW52b2tlIERFRkFVTFQtVEhVTksg
Zm9yIHRoZSBvbGQKIHZhbHVlIGlmIEtFWSBpc24ndCBpbiBIVCwgb3Igc2lnbmFsIGFuIGVycm9y
IGlmIERFRkFVTFQtVEhVTksgaXMgbm90CiBwcm92aWRlZC4iCiAgICh3aXRoLWhhc2h4LXZhbHVl
cyAoaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSkgaHQKLSAgICAobGV0ICgoaGFuZGxl
IChoYXNoeC1nZXQtaGFuZGxlIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5KSkp
Ci0gICAgICAoY29uZCAoaGFuZGxlCi0JICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAo
Y2RyIGhhbmRsZSkpKSkKLQkgICAgKGVsc2UKLQkgICAgIChoYXNoeC1zZXQhIGhhc2gtcHJvYyBh
c3NvY2lhdG9yIHJlYWwtdGFibGUga2V5Ci0JCQkgKGlmIChwYWlyPyBkZWZhdWx0LXRodW5rLWxz
dCkKLQkJCSAgICAgKG1vZGlmaWVyICgoY2FyIGRlZmF1bHQtdGh1bmstbHN0KSkpCi0JCQkgICAg
IChlcnJvciAiS2V5IG5vdCBpbiB0YWJsZSIga2V5IGh0KSkpCi0JICAgICAoaHQtc2l6ZSEgaHQg
KDErIChodC1zaXplIGh0KSkpKSkpKQorICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAg
IDs7IEouTS4gc2VwYXJhdGUgdGhlIGNhc2Ugd2hlcmUgaHQgaXMgd2VhayAtIGRvbid0IHVzZSBo
YW5kbGUKKyAgICAgICAgKGxldCogKChvbGQgKGhhc2h4LXJlZiBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3Bl
Y2lmaWVkKSkpCisgICAgICAgICAgKGNvbmQgKChlcT8gaHQtdW5zcGVjaWZpZWQgb2xkKQorICAg
ICAgICAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBkZWZhdWx0LXRodW5rKQorICAg
ICAgICAgICAgICAgICAgICAgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpCisgICAg
ICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRh
YmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGlmaWVyIChkZWZh
dWx0LXRodW5rKSkpKSkKKyAgICAgICAgICAgICAgICAoZWxzZQorICAgICAgICAgICAgICAgICAo
aGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtleQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAobW9kaWZpZXIgb2xkKSkpKSkKKyAgICAgICAgKGxldCAoKGhh
bmRsZSAoaGFzaHgtZ2V0LWhhbmRsZSBoYXNoLXByb2MgYXNzb2NpYXRvciByZWFsLXRhYmxlIGtl
eSkpKQorICAgICAgICAgIChjb25kIChoYW5kbGUgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNk
ciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEg
aHQgKDErIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZXQtY2RyISBoYW5kbGUgKG1vZGlmaWVyIChkZWZhdWx0LXRodW5rKSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUgKG1vZGlmaWVyIChjZHIgaGFuZGxl
KSkpKSkKKyAgICAgICAgICAgICAgICAoZWxzZSAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBkZWZh
dWx0LXRodW5rKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIktleSBub3QgaW4g
dGFibGUiIGtleSBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGRlZmF1bHQg
KGRlZmF1bHQtdGh1bmspKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEg
aHQgKDErIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4
LXNldCEgaGFzaC1wcm9jIGFzc29jaWF0b3IgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kaWZpZXIgZGVmYXVsdCkpKSkpKSkpKQogICAq
dW5zcGVjaWZpZWQqKQogCis7OzsgSi5NLiBDdXN0b20gaW1wbGVtZW50YXRpb24gaW5zdGVhZCBv
ZiB1c2luZyBoYXNoLXRhYmxlLXVwZGF0ZSEKIChkZWZpbmUgKGhhc2gtdGFibGUtdXBkYXRlIS9k
ZWZhdWx0IGh0IGtleSBtb2RpZmllciBkZWZhdWx0KQogICAiTW9kaWZ5IEhUJ3MgdmFsdWUgYXQg
S0VZIGJ5IHBhc3NpbmcgaXRzIG9sZCB2YWx1ZSwgb3IgREVGQVVMVCBpZiBpdAogZG9lc24ndCBo
YXZlIG9uZSwgdG8gTU9ESUZJRVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRoZSByZXN1bHQgdGhlcmVv
Zi4iCi0gIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyIChsYW1iZGEgKCkgZGVm
YXVsdCkpKQorICAod2l0aC1oYXNoeC12YWx1ZXMgKGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwt
dGFibGUpIGh0CisgICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgSi5NLiBzZXBh
cmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFrIC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAg
ICAobGV0KiAoKG9sZCAoaGFzaHgtcmVmIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUg
a2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoYXNoLXByb2MgYXNzb2NpYXRv
ciByZWFsLXRhYmxlIGtleSAobW9kaWZpZXIgb2xkKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUg
KGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGhhc2gtcHJvYyBhc3NvY2lhdG9yIHJlYWwtdGFibGUga2V5
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lm
aWVkKSkpCisgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQor
ICAgICAgICAgICAgICAoYmVnaW4gKGh0LXNpemUhIGh0ICgxKyAoaHQtc2l6ZSBodCkpKQorICAg
ICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAobW9kaWZpZXIgZGVmYXVsdCkpKQor
ICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChtb2RpZmllciAoY2RyIGhhbmRsZSkpKSkp
KSkpCiAMCiA7Ozs7IEFjY2Vzc2luZyB3aG9sZSB0YWJsZXMKIApAQCAtMjg3LDcgKzMyNiw5IEBA
IGRvZXNuJ3QgaGF2ZSBvbmUsIHRvIE1PRElGSUVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVz
dWx0IHRoZXJlb2YuIgogICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhU
LiAgVGhpcyBpcyBndWFyYW50ZWVkIE8oMSkKIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAj
ZiBvciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogICAoaWYgKGh0LXdlYWtuZXNz
IGh0KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgYW5zKSAoMSsgYW5z
KSkgMCkKKyAgICAgIChsZXQgKChzaXplIChoYXNoLXRhYmxlLWZvbGQgaHQgKGxhbWJkYSAoayB2
IGFucykgKDErIGFucykpIDApKSkKKyAgICAgICAgKGh0LXNpemUhIGh0IHNpemUpCisgICAgICAg
IHNpemUpCiAgICAgICAoaHQtc2l6ZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLWtleXMg
aHQpCkBAIC0zMDAsMTAgKzM0MSw3IEBAIGZvciB0YWJsZXMgd2hlcmUgIzp3ZWFrIHdhcyAjZiBv
ciBub3Qgc3BlY2lmaWVkIGF0IGNyZWF0aW9uIHRpbWUuIgogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXdhbGsgaHQgcHJvYykKICAgIkNhbGwgUFJPQyB3aXRoIGVhY2gga2V5IGFuZCB2YWx1ZSBhcyB0
d28gYXJndW1lbnRzLiIKLSAgKGhhc2gtdGFibGUtZm9sZCBodCAobGFtYmRhIChrIHYgdW5zcGVj
KQotICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGwtd2l0aC12YWx1ZXMgKGxhbWJkYSAoKSAo
cHJvYyBrIHYpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIHZhbHMgdW5zcGVj
KSkpCi0JCSAgICp1bnNwZWNpZmllZCopKQorICAoaGFzaC1mb3ItZWFjaCBwcm9jIChodC1yZWFs
LXRhYmxlIGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtZm9sZCBodCBmIGtuaWwpCiAgICJJ
bnZva2UgKEYgS0VZIFZBTCBQUkVWKSBmb3IgZWFjaCBLRVkgYW5kIFZBTCBpbiBIVCwgd2hlcmUg
UFJFViBpcwpAQCAtMzEzLDE1ICszNTEsMTUgQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3VsdC4i
CiAKIChkZWZpbmUgKGhhc2gtdGFibGUtPmFsaXN0IGh0KQogICAiUmV0dXJuIGFuIGFsaXN0IGZv
ciBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQgaHQgYWxpc3QtY29ucyAnKCkpKQorICAoaGFzaC1t
YXAtPmxpc3QgY29ucyAoaHQtcmVhbC10YWJsZSBodCkpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxl
LWNvcHkgaHQpCiAgICJBbnN3ZXIgYSBjb3B5IG9mIEhULiIKICAgKHdpdGgtaGFzaHgtdmFsdWVz
IChoIGEgcmVhbC1odCkgaHQKICAgICAobGV0KiAoKHNpemUgKGhhc2gtdGFibGUtc2l6ZSBodCkp
ICh3ZWFrIChodC13ZWFrbmVzcyBodCkpCiAJICAgKG5ldy1yZWFsLWh0ICgoZ3VpbGUtaHQtY3Rv
ciB3ZWFrKSBzaXplKSkpCi0gICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGsgdiBpZ24pIChoYXNo
eC1zZXQhIGggYSBuZXctcmVhbC1odCBrIHYpKQotCQkgI2YgcmVhbC1odCkKKyAgICAgIChoYXNo
LWZvci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2h4LXNldCEgaCBhIG5ldy1yZWFsLWh0IGsgdikp
CisgICAgICAgICAgICAgICAgICAgICByZWFsLWh0KQogICAgICAgKG1ha2Utc3JmaS02OS1oYXNo
LXRhYmxlCQk7cmVhbCxhc3NvYyxzaXplLHdlYWssZXF1aXYsaAogICAgICAgIG5ldy1yZWFsLWh0
IGEgc2l6ZSB3ZWFrCiAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQp
IGgpKSkpCkBAIC0zMjksOCArMzY3LDggQEAgQW5zd2VyIHRoZSBmaW5hbCBGIHJlc3VsdC4iCiAo
ZGVmaW5lIChoYXNoLXRhYmxlLW1lcmdlISBodCBvdGhlci1odCkKICAgIkFkZCBhbGwga2V5L3Zh
bHVlIHBhaXJzIGZyb20gT1RIRVItSFQgdG8gSFQsIG92ZXJyaWRpbmcgSFQncwogbWFwcGluZ3Mg
d2hlcmUgcHJlc2VudC4gIFJldHVybiBIVC4iCi0gIChoYXNoLXRhYmxlLWZvbGQKLSAgIGh0IChs
YW1iZGEgKGsgdiBpZ24pIChoYXNoLXRhYmxlLXNldCEgaHQgayB2KSkgI2YpCisgIChoYXNoLWZv
ci1lYWNoIChsYW1iZGEgKGsgdikgKGhhc2gtdGFibGUtc2V0ISBodCBrIHYpKQorICAgICAgICAg
ICAgICAgICAoaHQtcmVhbC10YWJsZSBvdGhlci1odCkpCiAgIGh0KQogCiA7Ozsgc3JmaS02OS5z
Y20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdCBi
L3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS02OS50ZXN0CmluZGV4IGU5OWI3NmM2ZC4uYzJhNTU0ZGIz
IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAorKysgYi90ZXN0LXN1
aXRlL3Rlc3RzL3NyZmktNjkudGVzdApAQCAtMjgsODAgKzI4LDExOSBAQCBjYXNlLWluc2Vuc2l0
aXZlIHN0cmluZ3MgdG8gYGVxdWFsPyctdGVzdGVkIHZhbHVlcy4iCiAgIChhbmQgKHN0cmluZy1j
aT0/IChjYXIgbGVmdCkgKGNhciByaWdodCkpCiAgICAgICAgKGVxdWFsPyAoY2RyIGxlZnQpIChj
ZHIgcmlnaHQpKSkpCiAKKyhkZWZpbmUtc3ludGF4IHdpdGgtd2Vha25lc3MtbGlzdAorICAoc3lu
dGF4LXJ1bGVzICgpCisgICAgKCh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mgd2Vha25lc3Mt
bGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgod2Vha25lc3MtbGlzdCogd2Vha25lc3Mt
bGlzdCkpCisgICAgICAgKG9yIChudWxsPyB3ZWFrbmVzcy1saXN0KikKKyAgICAgICAgICAgKGFu
ZCAobGV0ICgod2Vha25lc3MgKGNhciB3ZWFrbmVzcy1saXN0KikpKQorICAgICAgICAgICAgICAg
ICAgZXhwciAuLi4pCisgICAgICAgICAgICAgICAgKGxvb3AgKGNkciB3ZWFrbmVzcy1saXN0Kikp
KSkpKSkpCisKKyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlm
IChub3Qgd2Vha25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2VhazogfmEpIiBzdHIgd2Vha25l
c3MpKSkKKwogKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktNjkiCiAKLSAgKHBhc3MtaWYgInNtYWxs
IGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIKLSAgICAobGV0KiAoKHN0YXJ0LWFsaXN0
ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQotCSAgIChodCAoYWxpc3QtPmhh
c2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/KSkKLQkgICAoZW5kLWFsaXN0IChoYXNoLXRhYmxlLT5h
bGlzdCBodCkpKQotICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAgIChs
c2V0PSBlcXVhbD8gZW5kLWFsaXN0ICh0YWtlIHN0YXJ0LWFsaXN0IDMpKQotCSAgICg9IDEgKGhh
c2gtdGFibGUtcmVmIGh0ICdhKSkKLQkgICAoPSAyIChoYXNoLXRhYmxlLXJlZiBodCAnYikpCi0J
ICAgKD0gMyAoaGFzaC10YWJsZS1yZWYgaHQgJ2MpKSkpKQotCi0gIChwYXNzLWlmICJzdHJpbmct
Y2k9PyB0YWJsZXMgd29yayBieSBkZWZhdWx0IgotICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gt
dGFibGUgJygoInhZIiAuIDIpICgiYWJjIiAuIDU0KSkgc3RyaW5nLWNpPT8pKSkKLSAgICAgICho
YXNoLXRhYmxlLXNldCEgaHQgIlhZIiA0MikKLSAgICAgIChoYXNoLXRhYmxlLXNldCEgaHQgInFx
cSIgMTAwKQotICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIpKQotCSAg
ICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKLQkgICAoPSAzIChoYXNoLXRhYmxlLXNp
emUgaHQpKQotCSAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1YWw/Ci0JCSAgJygoInh5IiAu
IDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKLQkJICAoaGFzaC10YWJsZS0+YWxpc3Qg
aHQpKSkpKQorICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3Zh
bHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJzbWFs
bCBhbGlzdDwtPmhhc2ggdGFibGVzIHJvdW5kLXRyaXAiIHdlYWtuZXNzKQorICAgICAgKGxldCog
KChzdGFydC1hbGlzdCAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChhIC4gNDIpKSkKKyAgICAg
ICAgICAgICAoaHQgKGFsaXN0LT5oYXNoLXRhYmxlIHN0YXJ0LWFsaXN0IGVxPyAjOndlYWsgd2Vh
a25lc3MpKQorICAgICAgICAgICAgIChlbmQtYWxpc3QgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkp
CisgICAgICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAo
bHNldD0gZXF1YWw/IGVuZC1hbGlzdCAodGFrZSBzdGFydC1hbGlzdCAzKSkKKyAgICAgICAgICAg
ICAoPSAxIChoYXNoLXRhYmxlLXJlZiBodCAnYSkpCisgICAgICAgICAgICAgKD0gMiAoaGFzaC10
YWJsZS1yZWYgaHQgJ2IpKQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUtcmVmIGh0ICdj
KSkpKSkpCisKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2
YWx1ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAic3Ry
aW5nLWNpPT8gdGFibGVzIHdvcmsgYnkgZGVmYXVsdCIgd2Vha25lc3MpCisgICAgICAobGV0ICgo
aHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKCJ4WSIgLiAyKSAoImFiYyIgLiA1NCkpIHN0cmluZy1j
aT0/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2VhayB3ZWFrbmVzcykp
KQorICAgICAgICAoaGFzaC10YWJsZS1zZXQhIGh0ICJYWSIgNDIpCisgICAgICAgIChoYXNoLXRh
YmxlLXNldCEgaHQgInFxcSIgMTAwKQorICAgICAgICAoYW5kICg9IDU0IChoYXNoLXRhYmxlLXJl
ZiBodCAiQUJjIikpCisgICAgICAgICAgICAgKD0gNDIgKGhhc2gtdGFibGUtcmVmIGh0ICJ4eSIp
KQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAg
KGxzZXQ9IHN0cmluZy1jaS1hc3NvYy1lcXVhbD8KKyAgICAgICAgICAgICAgICAgICAgJygoInh5
IiAuIDQyKSAoImFiYyIgLiA1NCkgKCJxcXEiIC4gMTAwKSkKKyAgICAgICAgICAgICAgICAgICAg
KGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkpCiAKICAgKHBhc3MtaWYtZXhjZXB0aW9uICJCYWQg
d2Vha25lc3MgYXJnIHRvIG1odCBzaWduYWxzIGFuIGVycm9yIgotCQkgICAgICcobWlzYy1lcnJv
ciAuICJeSW52YWxpZCB3ZWFrIGhhc2ggdGFibGUgdHlwZSIpCisgICAgICAnKG1pc2MtZXJyb3Ig
LiAiXkludmFsaWQgd2VhayBoYXNoIHRhYmxlIHR5cGUiKQogICAgIChtYWtlLWhhc2gtdGFibGUg
ZXF1YWw/IGhhc2ggIzp3ZWFrICdrZXktYW5kLXZhbHVlKSkKIAotICAocGFzcy1pZiAiZW1wdHkg
aGFzaCB0YWJsZXMgYXJlIGVtcHR5IgotICAgIChudWxsPyAoaGFzaC10YWJsZS0+YWxpc3QgKG1h
a2UtaGFzaC10YWJsZSBlcT8pKSkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFibGUtcmVmIHVzZXMg
ZGVmYXVsdCIKLSAgICAoZXF1YWw/ICcoNCkKLQkgICAgKGhhc2gtdGFibGUtcmVmIChhbGlzdC0+
aGFzaC10YWJsZSAnKChhIC4gMSkpIGVxPykKLQkJCSAgICAnYiAoY3V0IGxpc3QgKCsgMiAyKSkp
KSkKLQotICAocGFzcy1pZiAiaGFzaC10YWJsZS1kZWxldGUhIGRlbGV0ZXMgcHJlc2VudCBhc3Nv
Y3MsIGlnbm9yZXMgb3RoZXJzIgotICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPykpKQotICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodCAnYykK
LSAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkKLQkgICAoYmVnaW4KLQkgICAg
IChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EpCi0JICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUg
aHQpKSkKLQkgICAobHNldD0gZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
KSkpKSkKLQotICAocGFzcy1pZiAiYWxpc3QtPmhhc2gtdGFibGUgZG9lcyBub3QgcmVxdWlyZSBs
aW5lYXIgc3RhY2sgc3BhY2UiCi0gICAgKGVxdj8gOTk5OTkKLQkgIChoYXNoLXRhYmxlLXJlZiAo
YWxpc3QtPmhhc2gtdGFibGUKLQkJCSAgICh1bmZvbGQtcmlnaHQgKGN1dCA+PSA8PiAxMDAwMDAp
Ci0JCQkJCSAobGFtYmRhIChzKSBgKHggLiAscykpIDErIDApCi0JCQkgICBlcT8pCi0JCQkgICd4
KSkpCi0KLSAgKHBhc3MtaWYgImhhc2gtdGFibGUtd2FsayBpZ25vcmVzIHJldHVybiB2YWx1ZXMi
Ci0gICAgKGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAu
IDMpKSBlcT8pKSkKLSAgICAgIChmb3ItZWFjaCAoY3V0IGhhc2gtdGFibGUtd2FsayBodCA8PikK
LQkJKGxpc3QgKGxhbWJkYSAoayB2KSAodmFsdWVzKSkKLQkJICAgICAgKGxhbWJkYSAoayB2KSAo
dmFsdWVzIDEgMiAzKSkpKQotICAgICAgI3QpKQotCi0gIChwYXNzLWlmICJoYXNoLXRhYmxlLXVw
ZGF0ZSEgbW9kaWZpZXMgZXhpc3RpbmcgYmluZGluZyIKLSAgICAobGV0ICgoaHQgKGFsaXN0LT5o
YXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/KSkpCi0gICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0
ICdhIDErKQotICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAoY3V0ICsgNCA8PikgKGxh
bWJkYSAoKSA0MikpCi0gICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCi0JICAg
KGxzZXQ9IGVxdWFsPyAnKChhIC4gNikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpCi0KLSAg
KHBhc3MtaWYgImhhc2gtdGFibGUtdXBkYXRlISBjcmVhdGVzIG5ldyBiaW5kaW5nIHdoZW4gYXBw
cm9wcmlhdGUiCi0gICAgKGxldCAoKGh0IChtYWtlLWhhc2gtdGFibGUgZXE/KSkpCi0gICAgICAo
aGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIDErIChsYW1iZGEgKCkgNDIpKQotICAgICAgKGhhc2gt
dGFibGUtdXBkYXRlISBodCAnYiAoY3V0ICsgMTAgPD4pKQotICAgICAgKGFuZCAoPSAxIChoYXNo
LXRhYmxlLXNpemUgaHQpKQotCSAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDUzKSkgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KSkpKSkKKyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAj
ZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFr
bmVzcyAiZW1wdHkgaGFzaCB0YWJsZXMgYXJlIGVtcHR5IiB3ZWFrbmVzcykKKyAgICAgIChudWxs
PyAoaGFzaC10YWJsZS0+YWxpc3QgKG1ha2UtaGFzaC10YWJsZSBlcT8gIzp3ZWFrIHdlYWtuZXNz
KSkpKSkKKworICAod2l0aC13ZWFrbmVzcy1saXN0IHdlYWtuZXNzIChsaXN0ICNmICdrZXkgJ3Zh
bHVlICdrZXktb3ItdmFsdWUpCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNo
LXRhYmxlLXJlZiB1c2VzIGRlZmF1bHQiIHdlYWtuZXNzKQorICAgICAgKGVxdWFsPyAnKDQpCisg
ICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEp
KSBlcT8gIzp3ZWFrIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ig
KGN1dCBsaXN0ICgrIDIgMikpKSkpKQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mg
KGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1z
dHItd2Vha25lc3MgImhhc2gtdGFibGUtZGVsZXRlISBkZWxldGVzIHByZXNlbnQgYXNzb2NzLCBp
Z25vcmVzIG90aGVycyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3Mp
CisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gIzp3ZWFrIHdlYWtuZXNzKSkpCisgICAgICAgIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2Mp
CisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAo
YmVnaW4KKyAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EpCisgICAgICAg
ICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKSkKKyAgICAgICAgICAgICAobHNldD0g
ZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkpCisKKyAgKHdpdGgt
d2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5LW9yLXZhbHVl
KQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiYWxpc3QtPmhhc2gtdGFibGUgZG9l
cyBub3QgcmVxdWlyZSBsaW5lYXIgc3RhY2sgc3BhY2UiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdlYWtuZXNzKQorICAgICAgKGVxdj8gOTk5OTkKKyAgICAgICAgICAgIChoYXNo
LXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHVuZm9sZC1yaWdodCAoY3V0ID49IDw+IDEwMDAwMCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChzKSBgKHggLiAscykpIDErIDApCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVxPworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjOndlYWsgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3gpKSkpCisK
KyAgKHdpdGgtd2Vha25lc3MtbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAna2V5ICd2YWx1ZSAna2V5
LW9yLXZhbHVlKQorICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS13
YWxrIGlnbm9yZXMgcmV0dXJuIHZhbHVlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAx
KSAoYiAuIDIpIChjIC4gMykpIGVxPykpKQorICAgICAgICAoZm9yLWVhY2ggKGN1dCBoYXNoLXRh
YmxlLXdhbGsgaHQgPD4pCisgICAgICAgICAgICAgICAgICAobGlzdCAobGFtYmRhIChrIHYpICh2
YWx1ZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoayB2KSAodmFsdWVzIDEg
MiAzKSkpKQorICAgICAgICAjdCkpKQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3Mg
KGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1z
dHItd2Vha25lc3MgImhhc2gtdGFibGUtdXBkYXRlISBtb2RpZmllcyBleGlzdGluZyBiaW5kaW5n
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQg
KChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8gIzp3ZWFrIHdlYWtuZXNzKSkp
CisgICAgICAgIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2EgMSspCisgICAgICAgIChoYXNoLXRh
YmxlLXVwZGF0ZSEgaHQgJ2EgKGN1dCArIDQgPD4pIChsYW1iZGEgKCkgNDIpKQorICAgICAgICAo
YW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFs
PyAnKChhIC4gNikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpKQorCisgICh3aXRoLXdlYWtu
ZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUgJ2tleS1vci12YWx1ZSkKKyAg
ICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtdXBkYXRlISBjcmVhdGVz
IG5ldyBiaW5kaW5nIHdoZW4gYXBwcm9wcmlhdGUiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChtYWtlLWhhc2gtdGFibGUgZXE/ICM6
d2VhayB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIDErIChs
YW1iZGEgKCkgNDIpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0ICdiIChjdXQgKyAx
MCA8PikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiA1MykpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkp
KQorCisgICh3aXRoLXdlYWtuZXNzLWxpc3Qgd2Vha25lc3MgKGxpc3QgI2YgJ2tleSAndmFsdWUg
J2tleS1vci12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFi
bGUtbWVyZ2UhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPyAjOndlYWsgd2Vha25lc3MpKQorICAgICAgICAgICAgIChodDIg
KGFsaXN0LT5oYXNoLXRhYmxlICcoKGIgLiAzKSAoYyAuIDQpKSBlcT8gIzp3ZWFrIHdlYWtuZXNz
KSkpCisgICAgICAgIChzZXQhIGh0MSAoaGFzaC10YWJsZS1tZXJnZSEgaHQxIGh0MikpCisgICAg
ICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAgICAgKD0gMiAo
aGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4g
MSkgKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAgICAgICAg
ICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQy
KSkpKSkpCiAKICAgKHBhc3MtaWYgImNhbiB1c2UgYWxsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHNp
emUiCiAgICAgKGhhc2gtdGFibGU/IChtYWtlLWhhc2gtdGFibGUgZXF1YWw/IGhhc2ggIzp3ZWFr
ICdrZXkgMzEpKSkKIAotKQorICApCi0tIAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0004-Reimplemented-RNRS-HASHTABLES-using-GENERIC-HASH-TAB.patch"
Content-Disposition: attachment; 
	filename="0004-Reimplemented-RNRS-HASHTABLES-using-GENERIC-HASH-TAB.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmioc3>
X-Attachment-Id: f_jqofmioc3

RnJvbSBiOWU0ZWJmZWViOGQ5YjE2YTExZWZmYmU0OWY0YTdlODI2ODQ0ZGI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDY6MTAg
LTAyMDAKU3ViamVjdDogW1BBVENIIDQvNV0gUmVpbXBsZW1lbnRlZCAoUk5SUyBIQVNIVEFCTEVT
KSB1c2luZyBHRU5FUklDLUhBU0gtVEFCTEVTCgotLS0KIG1vZHVsZS9ybnJzL2hhc2h0YWJsZXMu
c2NtIHwgMjEyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj
aGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAxMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20gYi9tb2R1bGUvcm5ycy9oYXNodGFibGVzLnNjbQpp
bmRleCA0ODY0NTJhMmEuLmZkMjdjNTRjNiAxMDA2NDQKLS0tIGEvbW9kdWxlL3JucnMvaGFzaHRh
Ymxlcy5zY20KKysrIGIvbW9kdWxlL3JucnMvaGFzaHRhYmxlcy5zY20KQEAgLTQzLDE0NyArNDMs
ODUgQEAKIAkgIHN0cmluZy1jaS1oYXNoCiAJICBzeW1ib2wtaGFzaCkKICAgKGltcG9ydCAocmVu
YW1lIChvbmx5IChndWlsZSkgc3RyaW5nLWhhc2gtY2kgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cmluZy1oYXNoIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNocSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaHYKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kdWxvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICp1bnNwZWNpZmllZCoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQEApCisg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmctaGFzaAorICAgICAgICAgICAgICAgICAgICAg
ICAgaGFzaHEKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2h2CisgICAgICAgICAgICAgICAg
ICAgICAgICBtb2R1bG8KKyAgICAgICAgICAgICAgICAgICAgICAgICp1bnNwZWNpZmllZCopCiAJ
CSAgKHN0cmluZy1oYXNoLWNpIHN0cmluZy1jaS1oYXNoKSkKIAkgIChvbmx5IChpY2UtOSBvcHRh
cmdzKSBkZWZpbmUqKQotCSAgKHJlbmFtZSAob25seSAoc3JmaSA6NjkpIG1ha2UtaGFzaC10YWJs
ZQotCQkJICAgICAgICAgICBoYXNoCi0JCQkJICAgaGFzaC1ieS1pZGVudGl0eQotCQkJICAgICAg
ICAgICBoYXNoLXRhYmxlLXNpemUKLQkJCQkgICBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0Ci0JCQkJ
ICAgaGFzaC10YWJsZS1zZXQhCi0JCQkJICAgaGFzaC10YWJsZS1kZWxldGUhCi0JCQkJICAgaGFz
aC10YWJsZS1leGlzdHM/Ci0JCQkJICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQKLQkJCQkg
ICBoYXNoLXRhYmxlLWNvcHkKLQkJCQkgICBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9u
Ci0JCQkJICAgaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCi0JCQkJICAgaGFzaC10YWJsZS1rZXlz
Ci0JCQkJICAgaGFzaC10YWJsZS1mb2xkKQotCQkgIChoYXNoIGVxdWFsLWhhc2gpCi0JCSAgKGhh
c2gtYnktaWRlbnRpdHkgc3ltYm9sLWhhc2gpKQotICAgICAgICAgIChvbmx5IChpY2UtOSBnZW5l
cmljLWhhc2gtdGFibGVzKSBoYXNoLWJ5LXZhbHVlKQorCSAgKHJlbmFtZSAob25seSAoaWNlLTkg
Z2VuZXJpYy1oYXNoLXRhYmxlcykKKyAgICAgICAgICAgICAgICAgICAgICAgIG1ha2UtaGFzaC10
YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZT8KKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhhc2gtdGFibGUtbXV0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAgICAgIGhh
c2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gtYnktaWRlbnRpdHkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhhc2gtYnktdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gt
dGFibGUtc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1yZWYvZGVmYXVs
dAorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1zZXQtc2luZ2xlIQorICAgICAg
ICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1kZWxldGUtc2luZ2xlIQorICAgICAgICAgICAg
ICAgICAgICAgICAgaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgICAgICAgICAgICAg
IGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNo
LXRhYmxlLWNsZWFyIQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC10YWJsZS1jb3B5Cisg
ICAgICAgICAgICAgICAgICAgICAgICBoYXNoLXRhYmxlLWVudHJ5LXZlY3RvcnMKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgaGFzaC10YWJsZS1rZXktdmVjdG9yKQorICAgICAgICAgICAgICAgICAgKG1ha2Ut
aGFzaC10YWJsZSBnZW46bWFrZS1oYXNoLXRhYmxlKQorCQkgIChoYXNoIGVxdWFsLWhhc2gpKQor
ICAgICAgICAgIChvbmx5IChzcmZpIHNyZmktNjkpIGhhc2gtdGFibGUtc2V0ISBoYXNoLXRhYmxl
LWRlbGV0ZSEpCiAJICAocm5ycyBiYXNlICg2KSkKIAkgIChybnJzIHJlY29yZHMgcHJvY2VkdXJh
bCAoNikpKQorCisgIChkZWZpbmUgaGFzaHRhYmxlPyBoYXNoLXRhYmxlPykKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1tdXRhYmxlPyBoYXNoLXRhYmxlLW11dGFibGU/KQorCisgIChkZWZpbmUgc3lt
Ym9sLWhhc2ggaGFzaC1ieS1pZGVudGl0eSkKKworICAoZGVmaW5lKiAobWFrZS1lcS1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNpdHkKKyAgICAgICAgKGdlbjpt
YWtlLWhhc2gtdGFibGUgZXE/ICNmICM6Y2FwYWNpdHkgY2FwYWNpdHkpCisgICAgICAgIChnZW46
bWFrZS1oYXNoLXRhYmxlIGVxPyAjZikpKQorCisgIChkZWZpbmUqIChtYWtlLWVxdi1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNpdHkKKyAgICAgICAgKGdlbjpt
YWtlLWhhc2gtdGFibGUgZXF2PyAjZiAjOmNhcGFjaXR5IGNhcGFjaXR5KQorICAgICAgICAoZ2Vu
Om1ha2UtaGFzaC10YWJsZSBlcXY/ICNmKSkpCisKKyAgKGRlZmluZSogKG1ha2UtaGFzaHRhYmxl
IGhhc2gtZnVuY3Rpb24gZXF1aXYgIzpvcHRpb25hbCBjYXBhY2l0eSkKKyAgICAoaWYgY2FwYWNp
dHkKKyAgICAgICAgKGdlbjptYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlvbiAjOmNh
cGFjaXR5IGNhcGFjaXR5KQorICAgICAgICAoZ2VuOm1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNo
LWZ1bmN0aW9uKSkpCiAgIAotICAoZGVmaW5lIHI2cnM6aGFzaHRhYmxlIAotICAgIChtYWtlLXJl
Y29yZC10eXBlLWRlc2NyaXB0b3IgCi0gICAgICdyNnJzOmhhc2h0YWJsZSAjZiAjZiAjdCAjdCAK
LSAgICAgJyMoKG11dGFibGUgd3JhcHBlZC10YWJsZSkKLSAgICAgICAgKGltbXV0YWJsZSBvcmln
LWhhc2gtZnVuY3Rpb24pCi0gICAgICAgIChpbW11dGFibGUgbXV0YWJsZSkKLSAgICAgICAgKGlt
bXV0YWJsZSB0eXBlKSkpKQotCi0gIChkZWZpbmUgaGFzaHRhYmxlPyAocmVjb3JkLXByZWRpY2F0
ZSByNnJzOmhhc2h0YWJsZSkpCi0gIChkZWZpbmUgbWFrZS1yNnJzLWhhc2h0YWJsZSAKLSAgICAo
cmVjb3JkLWNvbnN0cnVjdG9yIChtYWtlLXJlY29yZC1jb25zdHJ1Y3Rvci1kZXNjcmlwdG9yIAot
CQkJIHI2cnM6aGFzaHRhYmxlICNmICNmKSkpCi0gIChkZWZpbmUgcjZyczpoYXNodGFibGUtd3Jh
cHBlZC10YWJsZSAocmVjb3JkLWFjY2Vzc29yIHI2cnM6aGFzaHRhYmxlIDApKQotICAoZGVmaW5l
IHI2cnM6aGFzaHRhYmxlLXNldC13cmFwcGVkLXRhYmxlISAocmVjb3JkLW11dGF0b3IgcjZyczpo
YXNodGFibGUgMCkpCi0gIChkZWZpbmUgcjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9u
IChyZWNvcmQtYWNjZXNzb3IgcjZyczpoYXNodGFibGUgMSkpCi0gIChkZWZpbmUgcjZyczpoYXNo
dGFibGUtbXV0YWJsZT8gKHJlY29yZC1hY2Nlc3NvciByNnJzOmhhc2h0YWJsZSAyKSkKLSAgKGRl
ZmluZSByNnJzOmhhc2h0YWJsZS10eXBlIChyZWNvcmQtYWNjZXNzb3IgcjZyczpoYXNodGFibGUg
MykpCi0KLSAgKGRlZmluZSBoYXNodGFibGUtbXV0YWJsZT8gcjZyczpoYXNodGFibGUtbXV0YWJs
ZT8pCi0KLSAgOzsgKGRlZmluZSBoYXNoLWJ5LXZhbHVlICgoQEAgKHNyZmkgc3JmaS02OSkgY2Fs
bGVyLXdpdGgtZGVmYXVsdC1zaXplKSBoYXNodikpCi0gIDs7IChkZWZpbmUgKHdyYXAtaGFzaC1m
dW5jdGlvbiBwcm9jKQotICA7OyAgIChsYW1iZGEgKGtleSBjYXBhY2l0eSkgKG1vZHVsbyAocHJv
YyBrZXkpIGNhcGFjaXR5KSkpCi0KLSAgKGRlZmluZSogKG1ha2UtZXEtaGFzaHRhYmxlICM6b3B0
aW9uYWwgaykKLSAgICAobWFrZS1yNnJzLWhhc2h0YWJsZSAKLSAgICAgKGlmIGsgKG1ha2UtaGFz
aC10YWJsZSBlcT8gaGFzaHEgaykgKG1ha2UtaGFzaC10YWJsZSBlcT8gc3ltYm9sLWhhc2gpKQot
ICAgICBzeW1ib2wtaGFzaAotICAgICAjdAotICAgICAnZXEpKQotCi0gIChkZWZpbmUqIChtYWtl
LWVxdi1oYXNodGFibGUgIzpvcHRpb25hbCBrKQotICAgIChtYWtlLXI2cnMtaGFzaHRhYmxlIAot
ICAgICAoaWYgayAobWFrZS1oYXNoLXRhYmxlIGVxdj8gaGFzaHYgaykgKG1ha2UtaGFzaC10YWJs
ZSBlcXY/IGhhc2gtYnktdmFsdWUpKQotICAgICBoYXNoLWJ5LXZhbHVlCi0gICAgICN0Ci0gICAg
ICdlcXYpKQotCi0gIChkZWZpbmUqIChtYWtlLWhhc2h0YWJsZSBoYXNoLWZ1bmN0aW9uIGVxdWl2
ICM6b3B0aW9uYWwgaykKLSAgICAobWFrZS1yNnJzLWhhc2h0YWJsZQotICAgICAoaWYgawotICAg
ICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNoLWZ1bmN0aW9uIGspCi0gICAgICAgICAo
bWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24pKQotICAgICBoYXNoLWZ1bmN0aW9u
Ci0gICAgICN0Ci0gICAgICdjdXN0b20pKQotIAotICAoZGVmaW5lIChoYXNodGFibGUtc2l6ZSBo
YXNodGFibGUpCi0gICAgKGhhc2gtdGFibGUtc2l6ZSAocjZyczpoYXNodGFibGUtd3JhcHBlZC10
YWJsZSBoYXNodGFibGUpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUtcmVmIGhhc2h0YWJsZSBr
ZXkgZGVmYXVsdCkKLSAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCAKLSAgICAgKHI2cnM6aGFz
aHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSBrZXkgZGVmYXVsdCkpCi0KLSAgKGRlZmlu
ZSAoaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlIGtleSBvYmopCi0gICAgKGlmIChyNnJzOmhhc2h0
YWJsZS1tdXRhYmxlPyBoYXNodGFibGUpCi0gICAgICAgIChoYXNoLXRhYmxlLXNldCEgKHI2cnM6
aGFzaHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSBrZXkgb2JqKQotICAgICAgICAoYXNz
ZXJ0aW9uLXZpb2xhdGlvbgotICAgICAgICAgJ2hhc2h0YWJsZS1zZXQhICJIYXNodGFibGUgaXMg
aW1tdXRhYmxlLiIgaGFzaHRhYmxlKSkpCi0KLSAgKGRlZmluZSAoaGFzaHRhYmxlLWRlbGV0ZSEg
aGFzaHRhYmxlIGtleSkKLSAgICAoaWYgKHI2cnM6aGFzaHRhYmxlLW11dGFibGU/IGhhc2h0YWJs
ZSkKLQkoaGFzaC10YWJsZS1kZWxldGUhIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhh
c2h0YWJsZSkga2V5KSkKLSAgICAqdW5zcGVjaWZpZWQqKQotCi0gIChkZWZpbmUgKGhhc2h0YWJs
ZS1jb250YWlucz8gaGFzaHRhYmxlIGtleSkKLSAgICAoaGFzaC10YWJsZS1leGlzdHM/IChyNnJz
Omhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkga2V5KSkKLQotICAoZGVmaW5lICho
YXNodGFibGUtdXBkYXRlISBoYXNodGFibGUga2V5IHByb2MgZGVmYXVsdCkKLSAgICAoaWYgKHI2
cnM6aGFzaHRhYmxlLW11dGFibGU/IGhhc2h0YWJsZSkKLQkoaGFzaC10YWJsZS11cGRhdGUhL2Rl
ZmF1bHQgCi0JIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkga2V5IHBy
b2MgZGVmYXVsdCkpCi0gICAgKnVuc3BlY2lmaWVkKikKLQotICAoZGVmaW5lKiAoaGFzaHRhYmxl
LWNvcHkgaGFzaHRhYmxlICM6b3B0aW9uYWwgbXV0YWJsZSkKLSAgICAobWFrZS1yNnJzLWhhc2h0
YWJsZSAKLSAgICAgKGhhc2gtdGFibGUtY29weSAocjZyczpoYXNodGFibGUtd3JhcHBlZC10YWJs
ZSBoYXNodGFibGUpKQotICAgICAocjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhh
c2h0YWJsZSkKLSAgICAgKGFuZCBtdXRhYmxlICN0KQotICAgICAocjZyczpoYXNodGFibGUtdHlw
ZSBoYXNodGFibGUpKSkKLQotICAoZGVmaW5lKiAoaGFzaHRhYmxlLWNsZWFyISBoYXNodGFibGUg
IzpvcHRpb25hbCBrKQotICAgIChpZiAocjZyczpoYXNodGFibGUtbXV0YWJsZT8gaGFzaHRhYmxl
KQotCShsZXQqICgoaHQgKHI2cnM6aGFzaHRhYmxlLXdyYXBwZWQtdGFibGUgaGFzaHRhYmxlKSkK
LQkgICAgICAgKGVxdWl2IChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KSkKLQkg
ICAgICAgKGhhc2gtZnVuY3Rpb24gKHI2cnM6aGFzaHRhYmxlLW9yaWctaGFzaC1mdW5jdGlvbiBo
YXNodGFibGUpKSkKLQkgIChyNnJzOmhhc2h0YWJsZS1zZXQtd3JhcHBlZC10YWJsZSEKLQkgICBo
YXNodGFibGUKLQkgICAoaWYgayAKLQkgICAgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVpdiBoYXNo
LWZ1bmN0aW9uIGspCi0JICAgICAgIChtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlv
bikpKSkpCi0gICAgKnVuc3BlY2lmaWVkKikKLQotICAoZGVmaW5lIChoYXNodGFibGUta2V5cyBo
YXNodGFibGUpCi0gICAgKGxpc3QtPnZlY3RvciAoaGFzaC10YWJsZS1rZXlzIChyNnJzOmhhc2h0
YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUt
ZW50cmllcyBoYXNodGFibGUpCi0gICAgKGxldCogKChodCAocjZyczpoYXNodGFibGUtd3JhcHBl
ZC10YWJsZSBoYXNodGFibGUpKQotCSAgIChzaXplIChoYXNoLXRhYmxlLXNpemUgaHQpKQotCSAg
IChrZXlzIChtYWtlLXZlY3RvciBzaXplKSkKLQkgICAodmFscyAobWFrZS12ZWN0b3Igc2l6ZSkp
KQotICAgICAgKGhhc2gtdGFibGUtZm9sZCAocjZyczpoYXNodGFibGUtd3JhcHBlZC10YWJsZSBo
YXNodGFibGUpCi0JCSAgICAgICAobGFtYmRhIChrIHYgaSkKLQkJCSAodmVjdG9yLXNldCEga2V5
cyBpIGspCi0JCQkgKHZlY3Rvci1zZXQhIHZhbHMgaSB2KQotCQkJICgrIGkgMSkpCi0JCSAgICAg
ICAwKQotICAgICAgKHZhbHVlcyBrZXlzIHZhbHMpKSkKLQotICAoZGVmaW5lIChoYXNodGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaHRhYmxlKQotICAgIChoYXNoLXRhYmxlLWVxdWl2YWxl
bmNlLWZ1bmN0aW9uIChyNnJzOmhhc2h0YWJsZS13cmFwcGVkLXRhYmxlIGhhc2h0YWJsZSkpKQor
ICAoZGVmaW5lIGhhc2h0YWJsZS1zaXplIGhhc2gtdGFibGUtc2l6ZSkKKworICAoZGVmaW5lIGhh
c2h0YWJsZS1yZWYgaGFzaC10YWJsZS1yZWYvZGVmYXVsdCkKKworICAoZGVmaW5lIGhhc2h0YWJs
ZS1zZXQhIGhhc2gtdGFibGUtc2V0ISkKKworICAoZGVmaW5lIGhhc2h0YWJsZS1kZWxldGUhIGhh
c2gtdGFibGUtZGVsZXRlISkKKworICAoZGVmaW5lIGhhc2h0YWJsZS1jb250YWlucz8gaGFzaC10
YWJsZS1jb250YWlucz8pCisKKyAgKGRlZmluZSBoYXNodGFibGUtdXBkYXRlISBoYXNoLXRhYmxl
LXVwZGF0ZSEvZGVmYXVsdCkKKworICAoZGVmaW5lKiAoaGFzaHRhYmxlLWNvcHkgaHQgIzpvcHRp
b25hbCBtdXRhYmxlKQorICAgIChoYXNoLXRhYmxlLWNvcHkgaHQgIzptdXRhYmxlIG11dGFibGUp
KQorCisgIChkZWZpbmUgaGFzaHRhYmxlLWNsZWFyISBoYXNoLXRhYmxlLWNsZWFyISkKKworICAo
ZGVmaW5lIGhhc2h0YWJsZS1rZXlzIGhhc2gtdGFibGUta2V5LXZlY3RvcikKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1lbnRyaWVzIGhhc2gtdGFibGUtZW50cnktdmVjdG9ycykKKworICAoZGVmaW5l
IGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1
bmN0aW9uKQogCiAgIChkZWZpbmUgKGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIGhhc2h0YWJsZSkK
LSAgICAoY2FzZSAocjZyczpoYXNodGFibGUtdHlwZSBoYXNodGFibGUpCi0gICAgICAoKGVxIGVx
dikgI2YpCi0gICAgICAoZWxzZSAocjZyczpoYXNodGFibGUtb3JpZy1oYXNoLWZ1bmN0aW9uIGhh
c2h0YWJsZSkpKSkpCisgICAgKGxldCAoKGhhc2gtZnVuY3Rpb24gKGhhc2gtdGFibGUtaGFzaC1m
dW5jdGlvbiBoYXNodGFibGUpKSkKKyAgICAgIChjb25kICgob3IgKGVxPyBoYXNoLWJ5LWlkZW50
aXR5IGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgIChlcT8gaGFzaC1ieS12YWx1ZSAg
ICBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAjZikKKyAgICAgICAgICAgIChlbHNlIGhh
c2gtZnVuY3Rpb24pKSkpKQotLSAKMi4xOS4xCgo=
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0005-Implemented-SRFI-126-using-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0005-Implemented-SRFI-126-using-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofmiol4>
X-Attachment-Id: f_jqofmiol4

RnJvbSA1NzVhMzMxNjkxNmZkZGRiYzMwYTQwNGYxOTAyNzdlMWI1YzBlNzFhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjI6MDc6MDIg
LTAyMDAKU3ViamVjdDogW1BBVENIIDUvNV0gSW1wbGVtZW50ZWQgU1JGSS0xMjYgdXNpbmcgR0VO
RVJJQy1IQVNILVRBQkxFUwoKLS0tCiBtb2R1bGUvTWFrZWZpbGUuYW0gICAgICAgICAgICAgfCAg
IDEgKwogbW9kdWxlL3NyZmkvc3JmaS0xMjYuc2NtICAgICAgIHwgMjE1ICsrKysrKysrKysrKysr
KysrKysrKwogdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSAgICAgICAgIHwgICAxICsKIHRlc3Qtc3Vp
dGUvdGVzdHMvc3JmaS0xMjYudGVzdCB8IDM0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTYxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBtb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0LXN1
aXRlL3Rlc3RzL3NyZmktMTI2LnRlc3QKCmRpZmYgLS1naXQgYS9tb2R1bGUvTWFrZWZpbGUuYW0g
Yi9tb2R1bGUvTWFrZWZpbGUuYW0KaW5kZXggNmRiYTg3Y2U4Li42ZTczOWZlZDAgMTAwNjQ0Ci0t
LSBhL21vZHVsZS9NYWtlZmlsZS5hbQorKysgYi9tb2R1bGUvTWFrZWZpbGUuYW0KQEAgLTI5NCw2
ICsyOTQsNyBAQCBTT1VSQ0VTID0JCQkJCVwKICAgc3JmaS9zcmZpLTg4LnNjbQkJCQlcCiAgIHNy
Zmkvc3JmaS05OC5zY20JCQkJXAogICBzcmZpL3NyZmktMTExLnNjbQkJCQlcCisgIHNyZmkvc3Jm
aS0xMjYuc2NtCQkJCVwKIAkJCQkJCVwKICAgc3RhdHByb2Yuc2NtCQkJCQlcCiAJCQkJCQlcCmRp
ZmYgLS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20gYi9tb2R1bGUvc3JmaS9zcmZpLTEy
Ni5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43YTY1OTQ0MzQKLS0t
IC9kZXYvbnVsbAorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KQEAgLTAsMCArMSwyMTUg
QEAKKzs7OyBzcmZpLTY5LnNjbSAtLS0gQmFzaWMgaGFzaCB0YWJsZXMKKworOzsgCUNvcHlyaWdo
dCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7Cis7OyBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7
OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
Kzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisM
CisKKyhkZWZpbmUtbW9kdWxlIChzcmZpIHNyZmktMTI2KQorICAjOnVzZS1tb2R1bGUgKHNyZmkg
c3JmaS0xKQorICAjOnVzZS1tb2R1bGUgKChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSAjOnBy
ZWZpeCBnZW46KQorICAjOnVzZS1tb2R1bGUgKChybnJzIGhhc2h0YWJsZXMpCisgICAgICAgICAg
ICAgICAgIzpzZWxlY3QgKGhhc2h0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGFz
aHRhYmxlLWNvbnRhaW5zPyBoYXNodGFibGUtbXV0YWJsZT8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlLWRlbGV0ZSEgaGFzaHRhYmxlLWNsZWFyIQor
ICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNodGFibGUtc2l6ZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICBoYXNodGFibGUta2V5cyBoYXNodGFibGUtZW50cmllcworICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNodGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXF1YWwtaGFzaCBzeW1ib2wtaGFzaAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJpbmctaGFzaCBzdHJpbmctY2ktaGFzaCkpCisgICM6cmUtZXhwb3J0IChoYXNodGFibGU/
CisgICAgICAgICAgICAgICBoYXNodGFibGUtY29udGFpbnM/IGhhc2h0YWJsZS1tdXRhYmxlPwor
ICAgICAgICAgICAgICAgaGFzaHRhYmxlLXNldCEgaGFzaHRhYmxlLWRlbGV0ZSEgaGFzaHRhYmxl
LWNsZWFyIQorICAgICAgICAgICAgICAgaGFzaHRhYmxlLXNpemUKKyAgICAgICAgICAgICAgIGhh
c2h0YWJsZS1rZXlzIGhhc2h0YWJsZS1lbnRyaWVzCisgICAgICAgICAgICAgICBoYXNodGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24KKyAgICAgICAgICAgICAgIGhhc2h0YWJsZS1oYXNoLWZ1bmN0
aW9uCisgICAgICAgICAgICAgICBlcXVhbC1oYXNoIHN5bWJvbC1oYXNoCisgICAgICAgICAgICAg
ICBzdHJpbmctaGFzaCBzdHJpbmctY2ktaGFzaCkKKyAgIzpleHBvcnQgKG1ha2UtZXEtaGFzaHRh
YmxlCisgICAgICAgICAgICBtYWtlLWVxdi1oYXNodGFibGUgbWFrZS1oYXNodGFibGUKKyAgICAg
ICAgICAgIGFsaXN0LT5lcS1oYXNodGFibGUgYWxpc3QtPmVxdi1oYXNodGFibGUgYWxpc3QtPmhh
c2h0YWJsZQorICAgICAgICAgICAgaGFzaHRhYmxlLXdlYWtuZXNzCisgICAgICAgICAgICBoYXNo
dGFibGUtcmVmIGhhc2h0YWJsZS1sb29rdXAKKyAgICAgICAgICAgIGhhc2h0YWJsZS11cGRhdGUh
IGhhc2h0YWJsZS1pbnRlcm4hCisgICAgICAgICAgICBoYXNodGFibGUtY29weSBoYXNodGFibGUt
ZW1wdHktY29weQorICAgICAgICAgICAgaGFzaHRhYmxlLXZhbHVlcworICAgICAgICAgICAgaGFz
aHRhYmxlLWtleS1saXN0IGhhc2h0YWJsZS12YWx1ZS1saXN0IGhhc2h0YWJsZS1lbnRyeS1saXN0
cworICAgICAgICAgICAgaGFzaHRhYmxlLXdhbGsgaGFzaHRhYmxlLXVwZGF0ZS1hbGwhCisgICAg
ICAgICAgICBoYXNodGFibGUtcHJ1bmUhIGhhc2h0YWJsZS1tZXJnZSEgaGFzaHRhYmxlLXN1bQor
ICAgICAgICAgICAgaGFzaHRhYmxlLW1hcC0+bHNldAorICAgICAgICAgICAgaGFzaHRhYmxlLWZp
bmQgaGFzaHRhYmxlLWVtcHR5PworICAgICAgICAgICAgaGFzaHRhYmxlLXBvcCEKKyAgICAgICAg
ICAgIGhhc2h0YWJsZS1pbmMhIGhhc2h0YWJsZS1kZWMhCisgICAgICAgICAgICBoYXNoLXNhbHQp
KQorCisoY29uZC1leHBhbmQtcHJvdmlkZSAoY3VycmVudC1tb2R1bGUpICcoc3JmaS0xMjYpKQor
CisoZGVmaW5lIGhhc2h0YWJsZT8gZ2VuOmhhc2gtdGFibGU/KQorCisoZGVmaW5lKiAobWFrZS1o
YXNodGFibGUgaGFzaC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICM6b3B0aW9uYWwgY2FwYWNpdHkgd2Vha25lc3MpCisgICJDcmVhdGVzIGEgbmV3IGhh
c2ggdGFibGUuIEVRVUlWLUZVTkNUSU9OIGlzIHVzZWQgYXMgdGhlIGNvbXBhcmlzb24KK2Z1bmN0
aW9uIGFuZCBIQVNILUZVTkNUSU9OLCBpZiBwcm92aWRlZCBhbmQgbm90IGZhbHNlLCBpcyB1c2Vk
IGFzIHRoZQoraGFzaCBmdW5jdGlvbiwgb3RoZXJ3aXNlIGEgc3VpdGFibGUgaGFzaC1mdW5jdGlv
biBmb3IgdGhlIGhhc2ggdGFibGUgaXMKK2d1ZXNzZWQgb3IsIGlmIG9uZSBjYW4ndCBiZSBndWVz
c2VkLCBhbiBlcnJvciBpcyBzaWduYWxlZC4gV0VBS05FU1MKK3Nob3VsZCBiZSBlaXRoZXIgI2Ys
IFdFQUstS0VZLCBXRUFLLVZBTFVFIG9yIFdFQUstS0VZLUFORC1WQUxVRS4KK0NBUEFDSVRZIGlz
IHRoZSBtaW5pbWFsIG51bWJlciBvZiBidWNrZXRzIG9mIHRoZSBoYXNoIHRhYmxlLiIKKyAgKGdl
bjptYWtlLWhhc2gtdGFibGUgZXF1aXYtZnVuY3Rpb24gKGlmIChwYWlyPyBoYXNoLWZ1bmN0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciBoYXNoLWZ1
bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC1m
dW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkg
MSkKKyAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKyhkZWZp
bmUqIChtYWtlLWVxLWhhc2h0YWJsZSAjOm9wdGlvbmFsIGNhcGFjaXR5IHdlYWtuZXNzKQorICAo
Z2VuOm1ha2UtaGFzaC10YWJsZSBlcT8gZ2VuOmhhc2gtYnktaWRlbnRpdHkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKyhkZWZpbmUqIChtYWtlLWVxdi1oYXNodGFi
bGUgIzpvcHRpb25hbCBjYXBhY2l0eSB3ZWFrbmVzcykKKyAgKGdlbjptYWtlLWhhc2gtdGFibGUg
ZXF2PyBnZW46aGFzaC1ieS12YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5
IChvciBjYXBhY2l0eSAxKQorICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkKKworKGRlZmluZSBhbGlzdC0+aGFzaHRhYmxlCisgIChjYXNlLWxhbWJkYQorICAgICgo
aGFzaC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbiBhbGlzdCkKKyAgICAgKGdlbjphbGlzdC0+aGFz
aC10YWJsZSBhbGlzdCBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChpZiAocGFpcj8gaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNhciBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNoLWZ1bmN0aW9uKSkpCisgICAgKChoYXNoLWZ1bmN0aW9uIGVxdWl2LWZ1bmN0aW9uIGNhcGFj
aXR5IGFsaXN0KQorICAgICAoZ2VuOmFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWl2LWZ1bmN0
aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChwYWlyPyBoYXNoLWZ1bmN0aW9u
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGhhc2gtZnVuY3Rpb24pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIzpjYXBhY2l0eSAob3IgY2FwYWNpdHkgMSkpKQorICAgICgoaGFz
aC1mdW5jdGlvbiBlcXVpdi1mdW5jdGlvbiBjYXBhY2l0eSB3ZWFrbmVzcyBhbGlzdCkKKyAgICAg
KGdlbjphbGlzdC0+aGFzaC10YWJsZSBhbGlzdCBlcXVpdi1mdW5jdGlvbgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpZiAocGFpcj8gaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGNhciBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICM6Y2FwYWNpdHkgKG9yIGNhcGFjaXR5IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Izp3ZWFrbmVzcyB3ZWFrbmVzcykpKSkKKworKGRlZmluZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAu
IGFyZ3MpCisgIChhcHBseSBhbGlzdC0+aGFzaHRhYmxlICNmIGVxPyBhcmdzKSkKKworKGRlZmlu
ZSAoYWxpc3QtPmVxdi1oYXNodGFibGUgLiBhcmdzKQorICAoYXBwbHkgYWxpc3QtPmhhc2h0YWJs
ZSAjZiBlcXY/IGFyZ3MpKQorCisoZGVmaW5lKiAoaGFzaHRhYmxlLXJlZiBodCBrZXkgIzpvcHRp
b25hbCBkZWZhdWx0KQorICAoaWYgZGVmYXVsdAorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZi9k
ZWZhdWx0IGh0IGtleSBkZWZhdWx0KQorICAgICAgKGdlbjpoYXNoLXRhYmxlLXJlZiBodCBrZXkp
KSkKKworOzsgKGRlZmluZSBoYXNodGFibGUtY29udGFpbnM/IHJucnM6aGFzaHRhYmxlLWNvbnRh
aW5zPykKKzs7IChkZWZpbmUgaGFzaHRhYmxlLXNldCEgcm5yczpoYXNodGFibGUtc2V0ISkKKzs7
IChkZWZpbmUgaGFzaHRhYmxlLWRlbGV0ZSEgcm5yczpoYXNodGFibGUtZGVsZXRlISkKKworKGRl
ZmluZSAoaGFzaHRhYmxlLWxvb2t1cCBoYXNodGFibGUga2V5KQorICAobGV0KiAoKGZvdW5kPyAj
dCkKKyAgICAgICAgICh2YWx1ZSAoZ2VuOmhhc2gtdGFibGUtcmVmIGhhc2h0YWJsZSBrZXkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgKHNldCEgZm91bmQ/
ICNmKSAjZikpKSkKKyAgICAodmFsdWVzIHZhbHVlIGZvdW5kPykpKQorCisoZGVmaW5lKiAoaGFz
aHRhYmxlLXVwZGF0ZSEgaHQga2V5IG1vZGlmaWVyICM6b3B0aW9uYWwgZGVmYXVsdCkKKyAgKGlm
IGRlZmF1bHQKKyAgICAgIChnZW46aGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQgaHQga2V5IG1v
ZGlmaWVyIGRlZmF1bHQpCisgICAgICAoZ2VuOmhhc2gtdGFibGUtdXBkYXRlISBodCBrZXkgbW9k
aWZpZXIpKSkKKworKGRlZmluZSBoYXNodGFibGUtaW50ZXJuISBnZW46aGFzaC10YWJsZS1pbnRl
cm4hKQorCisoZGVmaW5lKiAoaGFzaHRhYmxlLWNvcHkgaGFzaHRhYmxlICM6b3B0aW9uYWwgbXV0
YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICh3ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtu
ZXNzIGhhc2h0YWJsZSkpKQorICAoZ2VuOmhhc2gtdGFibGUtY29weSBoYXNodGFibGUgIzptdXRh
YmxlIG11dGFibGUgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisKKzs7IChkZWZpbmUgaGFzaHRhYmxl
LWNsZWFyISBybnJzOmhhc2h0YWJsZS1jbGVhciEpCisKKyhkZWZpbmUqIChoYXNodGFibGUtZW1w
dHktY29weSBoYXNodGFibGUgIzpvcHRpb25hbCBjYXBhY2l0eQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh3ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtuZXNzIGhhc2h0YWJsZSkpKQor
ICAobGV0ICgoY2FwYWNpdHkgKGNhc2UgY2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgKCgj
ZikgMSkKKyAgICAgICAgICAgICAgICAgICAgKCgjdCkgKGhhc2h0YWJsZS1zaXplIGhhc2h0YWJs
ZSkpCisgICAgICAgICAgICAgICAgICAgIChlbHNlIGNhcGFjaXR5KSkpKQorICAgIChnZW46aGFz
aC10YWJsZS1lbXB0eS1jb3B5IGhhc2h0YWJsZSAjOmNhcGFjaXR5IGNhcGFjaXR5ICM6d2Vha25l
c3Mgd2Vha25lc3MpKSkKKworDAorOzs7OyBBY2Nlc3Npbmcgd2hvbGUgdGFibGVzCisKKzs7IChk
ZWZpbmUgaGFzaHRhYmxlLXNpemUgcm5yczpoYXNodGFibGUtc2l6ZSkKKzs7IChkZWZpbmUgaGFz
aHRhYmxlLWtleXMgZ2VuOmhhc2gtdGFibGUta2V5LXZlY3RvcikKKyhkZWZpbmUgaGFzaHRhYmxl
LXZhbHVlcyBnZW46aGFzaC10YWJsZS12YWx1ZS12ZWN0b3IpCis7OyAoZGVmaW5lIGhhc2h0YWJs
ZS1lbnRyaWVzIHJucnM6aGFzaHRhYmxlLWVudHJpZXMpCisoZGVmaW5lIGhhc2h0YWJsZS1rZXkt
bGlzdCBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNodGFibGUtdmFsdWUtbGlzdCBn
ZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2h0YWJsZS1lbnRyeS1saXN0cyBnZW46
aGFzaC10YWJsZS1lbnRyaWVzKQorKGRlZmluZSBoYXNodGFibGUtPmFsaXN0IGdlbjpoYXNoLXRh
YmxlLT5hbGlzdCkKKworKGRlZmluZSAoaGFzaHRhYmxlLXdhbGsgaGFzaHRhYmxlIHByb2MpCisg
IChnZW46aGFzaC10YWJsZS1mb3ItZWFjaCBwcm9jIGhhc2h0YWJsZSkpCisKKyhkZWZpbmUgKGhh
c2h0YWJsZS11cGRhdGUtYWxsISBoYXNodGFibGUgcHJvYykKKyAgKGdlbjpoYXNoLXRhYmxlLW1h
cCEgcHJvYyBoYXNodGFibGUpKQorCisoZGVmaW5lIChoYXNodGFibGUtcHJ1bmUhIGhhc2h0YWJs
ZSBwcm9jKQorICAoZ2VuOmhhc2gtdGFibGUtcHJ1bmUhIHByb2MgaGFzaHRhYmxlKSkKKworKGRl
ZmluZSAoaGFzaHRhYmxlLXN1bSBoYXNodGFibGUgaW5pdCBwcm9jKQorICAoZ2VuOmhhc2gtdGFi
bGUtZm9sZCBwcm9jIGluaXQgaGFzaHRhYmxlKSkKKworKGRlZmluZSAoaGFzaHRhYmxlLW1lcmdl
ISBodCBvdGhlci1odCkKKyAgKGdlbjpoYXNoLXRhYmxlLWZvci1lYWNoIChsYW1iZGEgKGsgdikg
KGhhc2h0YWJsZS1zZXQhIGh0IGsgdikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhl
ci1odCkKKyAgaHQpCisKKyhkZWZpbmUgKGhhc2h0YWJsZS1tYXAtPmxzZXQgaGFzaHRhYmxlIHBy
b2MpCisgIChnZW46aGFzaC10YWJsZS1tYXAtPmxpc3QgcHJvYyBoYXNodGFibGUpKQorCisoZGVm
aW5lIChoYXNodGFibGUtZmluZCBoYXNodGFibGUgcHJvYykKKyAgKGNhbGwvY2MgKGxhbWJkYSAo
cmV0dXJuKQorICAgICAgICAgICAgIChnZW46aGFzaC10YWJsZS1mb3ItZWFjaCAobGFtYmRhIChr
IHYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKHByb2Mg
ayB2KSAocmV0dXJuIGsgdiAjdCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoYXNodGFibGUpCisgICAgICAgICAgICAgKHZhbHVlcyAqdW5zcGVjaWZpZWQqICp1bnNw
ZWNpZmllZCogI2YpKSkpCisKKyhkZWZpbmUgaGFzaHRhYmxlLWVtcHR5PyBnZW46aGFzaC10YWJs
ZS1lbXB0eT8pCisoZGVmaW5lIGhhc2h0YWJsZS1wb3AhIGdlbjpoYXNoLXRhYmxlLXBvcCEpCisK
KyhkZWZpbmUqIChoYXNodGFibGUtaW5jISBoYXNodGFibGUga2V5ICM6b3B0aW9uYWwgKG51bWJl
ciAxKSkKKyAgKGhhc2h0YWJsZS11cGRhdGUhIGhhc2h0YWJsZSBrZXkgKGxhbWJkYSAodikgKCsg
diBudW1iZXIpKSAwKSkKKworKGRlZmluZSogKGhhc2h0YWJsZS1kZWMhIGhhc2h0YWJsZSBrZXkg
IzpvcHRpb25hbCAobnVtYmVyIDEpKQorICAoaGFzaHRhYmxlLXVwZGF0ZSEgaGFzaHRhYmxlIGtl
eSAobGFtYmRhICh2KSAoLSB2IG51bWJlcikpIDApKQorCisoZGVmaW5lIGhhc2h0YWJsZS13ZWFr
bmVzcyBnZW46aGFzaC10YWJsZS13ZWFrbmVzcykKKzs7IChkZWZpbmUgaGFzaHRhYmxlLW11dGFi
bGU/IHJucnM6aGFzaHRhYmxlLW11dGFibGU/KQorOzsgKGRlZmluZSBoYXNodGFibGUtZXF1aXZh
bGVuY2UtZnVuY3Rpb24gcm5yczpoYXNodGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24pCis7OyAo
ZGVmaW5lIGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIHJucnM6aGFzaHRhYmxlLWhhc2gtZnVuY3Rp
b24pCis7OyAoZGVmaW5lIGVxdWFsLWhhc2ggcm5yczplcXVhbC1oYXNoKQorOzsgKGRlZmluZSBz
dHJpbmctaGFzaCBybnJzOnN0cmluZy1oYXNoKQorOzsgKGRlZmluZSBzdHJpbmctY2ktaGFzaCBy
bnJzOnN0cmluZy1jaS1oYXNoKQorOzsgKGRlZmluZSBzeW1ib2wtaGFzaCBybnJzOnN5bWJvbC1o
YXNoKQorCisoZGVmaW5lICpoYXNoLXNhbHQqCisgIChsZXQgKChzZWVkIChnZXRlbnYgIlNSRklf
MTI2X0hBU0hfU0VFRCIpKSkKKyAgICAoaWYgKG9yIChub3Qgc2VlZCkgKHN0cmluZz0/IHNlZWQg
IiIpKQorICAgICAgICAocmFuZG9tIG1vc3QtcG9zaXRpdmUtZml4bnVtKQorICAgICAgICAobW9k
dWxvIChzdHJpbmctaGFzaCBzZWVkKSBtb3N0LXBvc2l0aXZlLWZpeG51bSkpKSkKKworKGRlZmlu
ZSAoaGFzaC1zYWx0KSAqaGFzaC1zYWx0KikKKworOzsgZW9mCmRpZmYgLS1naXQgYS90ZXN0LXN1
aXRlL01ha2VmaWxlLmFtIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQppbmRleCBlMTU0NjAyYTcu
LmYwYWQ4YmI5MSAxMDA2NDQKLS0tIGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQorKysgYi90ZXN0
LXN1aXRlL01ha2VmaWxlLmFtCkBAIC0xNjIsNiArMTYyLDcgQEAgU0NNX1RFU1RTID0gdGVzdHMv
MDAtaW5pdGlhbC1lbnYudGVzdAkJXAogCSAgICB0ZXN0cy9zcmZpLTk4LnRlc3QJCQlcCiAJICAg
IHRlc3RzL3NyZmktMTA1LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktMTExLnRlc3QJCQlcCisJ
ICAgIHRlc3RzL3NyZmktMTI2LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktNC50ZXN0CQkJXAog
CSAgICB0ZXN0cy9zcmZpLTkudGVzdAkJCVwKIAkgICAgdGVzdHMvc3RhdHByb2YudGVzdAkJCVwK
ZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYudGVzdCBiL3Rlc3Qtc3VpdGUv
dGVzdHMvc3JmaS0xMjYudGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu
LmU2YTRlNjZhOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYu
dGVzdApAQCAtMCwwICsxLDM0NCBAQAorOzs7OyBzcmZpLTY5LnRlc3QgLS0tIFRlc3Qgc3VpdGUg
Zm9yIFNSRkkgNjkgLSotIHNjaGVtZSAtKi0KKzs7OzsKKzs7OzsgCUNvcHlyaWdodCAoQykgMjAw
NyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsKKzs7OzsgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorOzs7OyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Cis7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorOzs7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7Ozs7Cis7Ozs7IFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzs7OyBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
Ozs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorOzs7OworOzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKzs7OzsgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAwMjExMC0xMzAxIFVTQQorCis7OzsgVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgdGhlIHRlc3Rz
IGZyb20gU1JGSS0xMjYgcmVmZXJlbmNlCis7OzsgaW1wbGVtZW50YXRpb24gcG9ydGVkIHRvIEd1
aWxlIHRlc3Qgc3VpdGUuCisKKyhkZWZpbmUtbW9kdWxlICh0ZXN0LXNyZmktMTI2KQorICAjOnVz
ZS1tb2R1bGUgKHRlc3Qtc3VpdGUgbGliKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjYp
CisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZp
LTIpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTgpKQorCisoZGVmaW5lLXN5bnRheCB3aXRo
LWVsdC1pbi1saXN0CisgIChzeW50YXgtcnVsZXMgKCkKKyAgICAoKHdpdGgtZWx0LWluLWxpc3Qg
YXJnIGFyZy1saXN0IGV4cHIgLi4uKQorICAgICAobGV0IGxvb3AgKChhcmctbGlzdCogYXJnLWxp
c3QpKQorICAgICAgIChvciAobnVsbD8gYXJnLWxpc3QqKQorICAgICAgICAgICAoYW5kIChsZXQg
KChhcmcgKGNhciBhcmctbGlzdCopKSkKKyAgICAgICAgICAgICAgICAgIGV4cHIgLi4uKQorICAg
ICAgICAgICAgICAgIChsb29wIChjZHIgYXJnLWxpc3QqKSkpKSkpKSkKKworKGRlZmluZSAoZXhh
Y3QtaW50ZWdlcj8gb2JqKQorICAoYW5kIChpbnRlZ2VyPyBvYmopIChleGFjdD8gb2JqKSkpCisK
KyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlmIChub3Qgd2Vh
a25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2Vha25lc3M6IH5hKSIgc3RyIHdlYWtuZXNzKSkp
CisKKworCisod2l0aC10ZXN0LXByZWZpeCAiU1JGSS0xMjYiCisKKyAgOzsgVGhlIGZvbGxvd2lu
ZyB0ZXN0cyBhcmUgZG9uZSBvbmNlIHdpdGggZWFjaCBraW5kIG9mIHdlYWtuZXNzCisgICh3aXRo
LWVsdC1pbi1saXN0IHdlYWtuZXNzIChsaXN0ICNmICd3ZWFrLWtleSAnd2Vhay12YWx1ZSAnd2Vh
ay1rZXktYW5kLXZhbHVlKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxIgorICAgICAgKGxl
dCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2UtZXEtaGFzaHRhYmxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG1ha2UtZXEtaGFzaHRhYmxlIDEwIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWFrZS1lcS1oYXNodGFibGUgI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWhhc2h0YWJsZSAjZiBlcT8gI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChhbmQgKG5vdCB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAxMCB3ZWFrbmVzcyAnKChh
IC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+ZXEtaGFz
aHRhYmxlICNmIHdlYWtuZXNzICcoKGEgLiBiKSAoYyAuIGQpKSkpKSkKKyAgICAgICAgKGRvICgo
dGFibGVzIHRhYmxlcyAoY2RyIHRhYmxlcykpCisgICAgICAgICAgICAgKGkgMCAoKyBpIDEpKSkK
KyAgICAgICAgICAgICgobnVsbD8gdGFibGVzKSkKKyAgICAgICAgICAoYW5kLWxldCogKCh0YWJs
ZSAoY2FyIHRhYmxlcykpKQorICAgICAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggKHRlc3Qtc3Ry
LXdlYWtuZXNzIChmb3JtYXQgI2YgInRhYmxlIH5hIiBpKSB3ZWFrbmVzcykKKyAgICAgICAgICAg
ICAgKHBhc3MtaWYgKGhhc2h0YWJsZT8gdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZi1l
cXVhbCAjZiAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUpKQorICAgICAgICAgICAgICAo
cGFzcy1pZi1lcXVhbCBlcT8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZSkp
CisgICAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25l
c3MgdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/IHRh
YmxlKSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxdiIKKyAgICAgIChsZXQgKCh0
YWJsZXMgKGxpc3QgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWVxdi1oYXNodGFibGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo
bWFrZS1lcXYtaGFzaHRhYmxlIDEwIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAobWFrZS1lcXYtaGFzaHRhYmxlICNmIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAobWFrZS1oYXNodGFibGUgI2YgZXF2PyAjZiB3ZWFrbmVzcykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhbGlzdC0+ZXF2LWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxdi1oYXNodGFibGUgMTAgd2Vha25lc3MgJygo
YSAuIGIpIChjIC4gZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxdi1o
YXNodGFibGUgI2Ygd2Vha25lc3MgJygoYSAuIGIpIChjIC4gZCkpKSkpKQorICAgICAgICAoZG8g
KCh0YWJsZXMgdGFibGVzIChjZHIgdGFibGVzKSkKKyAgICAgICAgICAgICAoaSAwICgrIGkgMSkp
KQorICAgICAgICAgICAgKChudWxsPyB0YWJsZXMpKQorICAgICAgICAgIChhbmQtbGV0KiAoKHRh
YmxlIChjYXIgdGFibGVzKSkpCisgICAgICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAodGVzdC1z
dHItd2Vha25lc3MgKGZvcm1hdCAjZiAidGFibGUgfmEiIGkpIHdlYWtuZXNzKQorICAgICAgICAg
ICAgICAocGFzcy1pZiAoaGFzaHRhYmxlPyB0YWJsZSkpCisgICAgICAgICAgICAgIChwYXNzLWlm
LWVxdWFsICNmIChoYXNodGFibGUtaGFzaC1mdW5jdGlvbiB0YWJsZSkpCisgICAgICAgICAgICAg
IChwYXNzLWlmLWVxdWFsIGVxdj8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJs
ZSkpCisgICAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vh
a25lc3MgdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/
IHRhYmxlKSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImVxdWFsIgorICAgICAgKGxl
dCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG1ha2UtaGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/KSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgKG1ha2UtaGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/IDEwIHdl
YWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1oYXNodGFibGUgZXF1YWwt
aGFzaCBlcXVhbD8gI2Ygd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQg
KG5vdCB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmhh
c2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAnKChhIC4gYikgKGMgLiBkKSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYWxpc3QtPmhhc2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAxMCB3
ZWFrbmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChh
IC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+aGFzaHRh
YmxlIGVxdWFsLWhhc2ggZXF1YWw/ICNmIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcoKGEgLiBiKSAoYyAuIGQpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGFuZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChtYWtlLWhhc2h0YWJsZSAoY29ucyBlcXVhbC1oYXNoIGVxdWFsLWhhc2gpIGVxdWFs
PykpKSkpCisgICAgICAgIChkbyAoKHRhYmxlcyB0YWJsZXMgKGNkciB0YWJsZXMpKQorICAgICAg
ICAgICAgIChpIDAgKCsgaSAxKSkpCisgICAgICAgICAgICAoKG51bGw/IHRhYmxlcykpCisgICAg
ICAgICAgKGFuZC1sZXQqICgodGFibGUgKGNhciB0YWJsZXMpKSkKKyAgICAgICAgICAgICh3aXRo
LXRlc3QtcHJlZml4ICh0ZXN0LXN0ci13ZWFrbmVzcyAoZm9ybWF0ICNmICJ0YWJsZSB+YSIgaSkg
d2Vha25lc3MpCisgICAgICAgICAgICAgIChwYXNzLWlmIChoYXNodGFibGU/IHRhYmxlKSkKKyAg
ICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVu
Y3Rpb24gdGFibGUpKQorICAgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0
YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZSkpCisgICAgICAgICAgICAgIChwYXNzLWlm
LWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25lc3MgdGFibGUpKQorICAgICAgICAgICAg
ICAocGFzcy1pZiAoaGFzaHRhYmxlLW11dGFibGU/IHRhYmxlKSkpKSkpKQorCisgICAgKHdpdGgt
dGVzdC1wcmVmaXggImFsaXN0IgorICAgICAgKGxldCAoKHRhYmxlcyAobGlzdCAoYW5kIChub3Qg
d2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaXN0LT5lcS1oYXNo
dGFibGUgJygoYSAuIGIpIChhIC4gYykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFu
ZCAobm90IHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+
ZXF2LWhhc2h0YWJsZSAnKChhIC4gYikgKGEgLiBjKSkpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYW5kIChub3Qgd2Vha25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGFsaXN0LT5oYXNodGFibGUgZXF1YWwtaGFzaCBlcXVhbD8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKChhIC4gYikgKGEgLiBjKSkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYWxpc3QtPmVxLWhhc2h0YWJsZSAjZiB3ZWFrbmVzcyAnKChh
IC4gYikgKGEgLiBjKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGlzdC0+ZXF2LWhh
c2h0YWJsZSAjZiB3ZWFrbmVzcyAnKChhIC4gYikgKGEgLiBjKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIChhbGlzdC0+aGFzaHRhYmxlIGVxdWFsLWhhc2ggZXF1YWw/ICNmIHdlYWtuZXNz
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKGEgLiBiKSAo
YSAuIGMpKSkpKSkKKyAgICAgICAgKGRvICgodGFibGVzIHRhYmxlcyAoY2RyIHRhYmxlcykpCisg
ICAgICAgICAgICAgKGkgMCAoKyBpIDEpKSkKKyAgICAgICAgICAgICgobnVsbD8gdGFibGVzKSkK
KyAgICAgICAgICAoYW5kLWxldCogKCh0YWJsZSAoY2FyIHRhYmxlcykpKQorICAgICAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggKHRlc3Qtc3RyLXdlYWtuZXNzIChmb3JtYXQgI2YgInRhYmxlIH5h
IiBpKSB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgJ2IgKGhhc2h0YWJs
ZS1yZWYgdGFibGUgJ2EpKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAicHJvY2VkdXJl
cyIKKyAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJiYXNpY3MiCisgICAgICAgIChsZXQgKCh0YWJs
ZSAobWFrZS1lcS1oYXNodGFibGUgI2Ygd2Vha25lc3MpKSkKKyAgICAgICAgICAod2l0aC10ZXN0
LXByZWZpeCAicmVmIgorICAgICAgICAgICAgKHBhc3MtaWYtZXhjZXB0aW9uICJrZXkgbm90IGZv
dW5kIgorICAgICAgICAgICAgICAgICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBpbiB0YWJsZSIp
CisgICAgICAgICAgICAgIChoYXNodGFibGUtcmVmIHRhYmxlICdhKSkKKyAgICAgICAgICAgIChw
YXNzLWlmLWVxdWFsICdiIChoYXNodGFibGUtcmVmIHRhYmxlICdhICdiKSkKKyAgICAgICAgICAg
IChwYXNzLWlmIChub3QgKGhhc2h0YWJsZS1jb250YWlucz8gdGFibGUgJ2EpKSkKKyAgICAgICAg
ICAgIChwYXNzLWlmLWVxdWFsIDAgKGhhc2h0YWJsZS1zaXplIHRhYmxlKSkpCisgICAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggInNldCIKKyAgICAgICAgICAgIChoYXNodGFibGUtc2V0ISB0YWJs
ZSAnYSAnYykKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdjIChoYXNodGFibGUtcmVmIHRh
YmxlICdhKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdjIChoYXNodGFibGUtcmVmIHRh
YmxlICdhICdiKSkKKyAgICAgICAgICAgIChwYXNzLWlmIChoYXNodGFibGUtY29udGFpbnM/IHRh
YmxlICdhKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIDEgKGhhc2h0YWJsZS1zaXplIHRh
YmxlKSkpCisgICAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImRlbGV0ZSIKKyAgICAgICAgICAg
IChoYXNodGFibGUtZGVsZXRlISB0YWJsZSAnYSkKKyAgICAgICAgICAgIChwYXNzLWlmLWV4Y2Vw
dGlvbiAia2V5IG5vdCBmb3VuZCIKKyAgICAgICAgICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXktl
eSBub3QgaW4gdGFibGUiKQorICAgICAgICAgICAgICAoaGFzaHRhYmxlLXJlZiB0YWJsZSAnYSkp
CisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiAoaGFzaHRhYmxlLXJlZiB0YWJsZSAnYSAn
YikpCisgICAgICAgICAgICAocGFzcy1pZiAobm90IChoYXNodGFibGUtY29udGFpbnM/IHRhYmxl
ICdhKSkpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAwIChoYXNodGFibGUtc2l6ZSB0YWJs
ZSkpKSkpKQorCisgICAgKHdpdGgtdGVzdC1wcmVmaXggImFkdmFuY2VkIgorICAgICAgKGxldCAo
KHRhYmxlIChtYWtlLWVxLWhhc2h0YWJsZSkpKQorICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAi
bG9va3VwIgorICAgICAgICAgIChyZWNlaXZlICh4IGZvdW5kPykgKGhhc2h0YWJsZS1sb29rdXAg
dGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZiAobm90IGZvdW5kPykpKSkKKyAgICAgICAg
KHdpdGgtdGVzdC1wcmVmaXggInVwZGF0ZSIKKyAgICAgICAgICAocGFzcy1pZi1leGNlcHRpb24g
ImtleSBub3QgZm91bmQiCisgICAgICAgICAgICAgICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBp
biB0YWJsZSIpCisgICAgICAgICAgICAoaGFzaHRhYmxlLXVwZGF0ZSEgdGFibGUgJ2EgKGxhbWJk
YSAoeCkgKCsgeCAxKSkpKQorICAgICAgICAgIChoYXNodGFibGUtdXBkYXRlISB0YWJsZSAnYSAo
bGFtYmRhICh4KSAoKyB4IDEpKSAwKQorICAgICAgICAgIChyZWNlaXZlICh4IGZvdW5kPykgKGhh
c2h0YWJsZS1sb29rdXAgdGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAxIHgp
CisgICAgICAgICAgICAocGFzcy1pZiBmb3VuZD8pKQorICAgICAgICAgIChoYXNodGFibGUtdXBk
YXRlISB0YWJsZSAnYSAobGFtYmRhICh4KSAoKyB4IDEpKSkKKyAgICAgICAgICAocmVjZWl2ZSAo
eCBmb3VuZD8pIChoYXNodGFibGUtbG9va3VwIHRhYmxlICdhKQorICAgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgeCAyKQorICAgICAgICAgICAgKHBhc3MtaWYgZm91bmQ/KSkKKyAgICAgICAgICAo
aGFzaHRhYmxlLXVwZGF0ZSEgdGFibGUgJ2EgKGxhbWJkYSAoeCkgKCsgeCAxKSkgMCkKKyAgICAg
ICAgICAocmVjZWl2ZSAoeCBmb3VuZD8pIChoYXNodGFibGUtbG9va3VwIHRhYmxlICdhKQorICAg
ICAgICAgICAgKHBhc3MtaWYtZXF1YWwgeCAzKQorICAgICAgICAgICAgKHBhc3MtaWYgZm91bmQ/
KSkpCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJpbnRlcm4iCisgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgMCAoaGFzaHRhYmxlLWludGVybiEgdGFibGUgJ2IgKGxhbWJkYSAoKSAwKSkpCisg
ICAgICAgICAgKHBhc3MtaWYtZXF1YWwgMCAoaGFzaHRhYmxlLWludGVybiEgdGFibGUgJ2IgKGxh
bWJkYSAoKSAxKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAiY29weS9jbGVhciIKKyAg
ICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmhhc2h0YWJsZSBlcXVhbC1oYXNoIGVxdWFsPyAjZiB3
ZWFrbmVzcyAnKChhIC4gYikpKSkpCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJjb3B5Igor
ICAgICAgICAgIChsZXQgKCh0YWJsZTIgKGhhc2h0YWJsZS1jb3B5IHRhYmxlKSkpCisgICAgICAg
ICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbC1oYXNoIChoYXNodGFibGUtaGFzaC1mdW5jdGlvbiB0
YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1YWw/IChoYXNodGFibGUtZXF1
aXZhbGVuY2UtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsICdi
IChoYXNodGFibGUtcmVmIHRhYmxlMiAnYSkpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCB3
ZWFrbmVzcyAoaGFzaHRhYmxlLXdlYWtuZXNzIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1p
Zi1leGNlcHRpb24gInNldCEgaW1tdXRhYmxlIHRhYmxlIgorICAgICAgICAgICAgICAgICcobWlz
Yy1lcnJvciAuICJeSGFzaCB0YWJsZSBpcyBub3QgbXV0YWJsZSIpCisgICAgICAgICAgICAgICho
YXNodGFibGUtc2V0ISB0YWJsZTIgJ2EgJ2MpKSkKKyAgICAgICAgICAobGV0ICgodGFibGUyICho
YXNodGFibGUtY29weSB0YWJsZSAjZikpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgZXF1
YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAgICAgICAgIChw
YXNzLWlmLWVxdWFsIGVxdWFsPyAoaGFzaHRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIHRhYmxl
MikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiAoaGFzaHRhYmxlLXJlZiB0YWJsZTIg
J2EpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgd2Vha25lc3MgKGhhc2h0YWJsZS13ZWFr
bmVzcyB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXhjZXB0aW9uICJzZXQhIGltbXV0
YWJsZSB0YWJsZSIKKyAgICAgICAgICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXkhhc2ggdGFibGUg
aXMgbm90IG11dGFibGUiKQorICAgICAgICAgICAgICAoaGFzaHRhYmxlLXNldCEgdGFibGUyICdh
ICdjKSkpCisgICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWNvcHkgdGFibGUgI3Qp
KSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNo
LWZ1bmN0aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhh
c2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3Mt
aWYtZXF1YWwgJ2IgKGhhc2h0YWJsZS1yZWYgdGFibGUyICdhKSkKKyAgICAgICAgICAgIChwYXNz
LWlmLWVxdWFsIHdlYWtuZXNzIChoYXNodGFibGUtd2Vha25lc3MgdGFibGUyKSkKKyAgICAgICAg
ICAgIChoYXNodGFibGUtc2V0ISB0YWJsZTIgJ2EgJ2MpCisgICAgICAgICAgICAocGFzcy1pZi1l
cXVhbCAnYyAoaGFzaHRhYmxlLXJlZiB0YWJsZTIgJ2EpKSkKKyAgICAgICAgICAobGV0ICgodGFi
bGUyIChoYXNodGFibGUtY29weSB0YWJsZSAjZiAjZikpKQorICAgICAgICAgICAgKHBhc3MtaWYt
ZXF1YWwgZXF1YWwtaGFzaCAoaGFzaHRhYmxlLWhhc2gtZnVuY3Rpb24gdGFibGUyKSkKKyAgICAg
ICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsPyAoaGFzaHRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAjZiAoaGFzaHRhYmxlLXdl
YWtuZXNzIHRhYmxlMikpKSkKKworICAgICAgICAod2l0aC10ZXN0LXByZWZpeCAiY2xlYXIiCisg
ICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWNvcHkgdGFibGUgI3QpKSkKKyAgICAg
ICAgICAgIChoYXNodGFibGUtY2xlYXIhIHRhYmxlMikKKyAgICAgICAgICAgIChwYXNzLWlmLWVx
dWFsIDAgKGhhc2h0YWJsZS1zaXplIHRhYmxlMikpKQorICAgICAgICAgIChsZXQgKCh0YWJsZTIg
KGhhc2h0YWJsZS1jb3B5IHRhYmxlICN0KSkpCisgICAgICAgICAgICAoaGFzaHRhYmxlLWNsZWFy
ISB0YWJsZTIgMTApCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAwIChoYXNodGFibGUtc2l6
ZSB0YWJsZTIpKSkpCisKKyAgICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImVtcHR5LWNvcHkiCisg
ICAgICAgICAgKGxldCAoKHRhYmxlMiAoaGFzaHRhYmxlLWVtcHR5LWNvcHkgdGFibGUpKSkKKyAg
ICAgICAgICAgIChwYXNzLWlmLWVxdWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNoLWZ1bmN0
aW9uIHRhYmxlMikpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0YWJs
ZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1
YWwgMCAoaGFzaHRhYmxlLXNpemUgdGFibGUyKSkpCisgICAgICAgICAgKGxldCAoKHRhYmxlMiAo
aGFzaHRhYmxlLWVtcHR5LWNvcHkgdGFibGUgMTApKSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVx
dWFsIGVxdWFsLWhhc2ggKGhhc2h0YWJsZS1oYXNoLWZ1bmN0aW9uIHRhYmxlMikpCisgICAgICAg
ICAgICAocGFzcy1pZi1lcXVhbCBlcXVhbD8gKGhhc2h0YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlv
biB0YWJsZTIpKQorICAgICAgICAgICAgKHBhc3MtaWYtZXF1YWwgMCAoaGFzaHRhYmxlLXNpemUg
dGFibGUyKSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAia2V5cy92YWx1ZXMiCisgICAg
ICAobGV0ICgodGFibGUgKGFsaXN0LT5lcS1oYXNodGFibGUgJygoYSAuIGIpIChjIC4gZCkpKSkp
CisgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpICh2ZWN0b3ItPmxpc3QgKGhhc2h0
YWJsZS1rZXlzIHRhYmxlKSkpKQorICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAo
dmVjdG9yLT5saXN0IChoYXNodGFibGUtdmFsdWVzIHRhYmxlKSkpKQorICAgICAgICAocmVjZWl2
ZSAoa2V5cyB2YWx1ZXMpIChoYXNodGFibGUtZW50cmllcyB0YWJsZSkKKyAgICAgICAgICAocGFz
cy1pZiAobHNldD0gZXE/ICcoYSBjKSAodmVjdG9yLT5saXN0IGtleXMpKSkKKyAgICAgICAgICAo
cGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAodmVjdG9yLT5saXN0IHZhbHVlcykpKSkKKyAgICAg
ICAgKHBhc3MtaWYgKGxzZXQ9IGVxPyAnKGEgYykgKGhhc2h0YWJsZS1rZXktbGlzdCB0YWJsZSkp
KQorICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYiBkKSAoaGFzaHRhYmxlLXZhbHVlLWxp
c3QgdGFibGUpKSkKKyAgICAgICAgKHJlY2VpdmUgKGtleXMgdmFsdWVzKSAoaGFzaHRhYmxlLWVu
dHJ5LWxpc3RzIHRhYmxlKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpIGtl
eXMpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhiIGQpIHZhbHVlcykpKSkpCisK
KyAgICAod2l0aC10ZXN0LXByZWZpeCAiaXRlcmF0aW9uIgorICAgICAgKHdpdGgtdGVzdC1wcmVm
aXggIndhbGsiCisgICAgICAgIChsZXQgKChrZXlzICcoKSkKKyAgICAgICAgICAgICAgKHZhbHVl
cyAnKCkpKQorICAgICAgICAgIChoYXNodGFibGUtd2FsayAoYWxpc3QtPmVxLWhhc2h0YWJsZSAn
KChhIC4gYikgKGMgLiBkKSkpCisgICAgICAgICAgICAobGFtYmRhIChrIHYpCisgICAgICAgICAg
ICAgIChzZXQhIGtleXMgKGNvbnMgayBrZXlzKSkKKyAgICAgICAgICAgICAgKHNldCEgdmFsdWVz
IChjb25zIHYgdmFsdWVzKSkpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMp
IGtleXMpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhiIGQpIHZhbHVlcykpKSkK
KworICAgICAgKHdpdGgtdGVzdC1wcmVmaXggInVwZGF0ZS1hbGwiCisgICAgICAgIChsZXQgKCh0
YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikgKGMgLiBkKSkpKSkKKyAgICAgICAg
ICAoaGFzaHRhYmxlLXVwZGF0ZS1hbGwhIHRhYmxlCisgICAgICAgICAgICAobGFtYmRhIChrIHYp
CisgICAgICAgICAgICAgIChzdHJpbmctPnN5bWJvbCAoc3RyaW5nLWFwcGVuZCAoc3ltYm9sLT5z
dHJpbmcgdikgIngiKSkpKQorICAgICAgICAgIChwYXNzLWlmIChsc2V0PSBlcT8gJyhhIGMpICho
YXNodGFibGUta2V5LWxpc3QgdGFibGUpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/
ICcoYnggZHgpIChoYXNodGFibGUtdmFsdWUtbGlzdCB0YWJsZSkpKSkpCisKKyAgICAgICh3aXRo
LXRlc3QtcHJlZml4ICJwcnVuZSIKKyAgICAgICAgKGxldCAoKHRhYmxlIChhbGlzdC0+ZXEtaGFz
aHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAgIChoYXNodGFibGUtcHJ1bmUh
IHRhYmxlIChsYW1iZGEgKGsgdikgKGVxPyBrICdhKSkpCisgICAgICAgICAgKHBhc3MtaWYgKG5v
dCAoaGFzaHRhYmxlLWNvbnRhaW5zPyB0YWJsZSAnYSkpKQorICAgICAgICAgIChwYXNzLWlmICho
YXNodGFibGUtY29udGFpbnM/IHRhYmxlICdjKSkpKQorCisgICAgICAod2l0aC10ZXN0LXByZWZp
eCAibWVyZ2UiCisgICAgICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChh
IC4gYikgKGMgLiBkKSkpKQorICAgICAgICAgICAgICAodGFibGUyIChhbGlzdC0+ZXEtaGFzaHRh
YmxlICcoKGEgLiB4KSAoZSAuIGYpKSkpKQorICAgICAgICAgIChoYXNodGFibGUtbWVyZ2UhIHRh
YmxlIHRhYmxlMikKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICcoYSBjIGUpIChoYXNo
dGFibGUta2V5LWxpc3QgdGFibGUpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICco
eCBkIGYpIChoYXNodGFibGUtdmFsdWUtbGlzdCB0YWJsZSkpKSkpCisKKyAgICAgICh3aXRoLXRl
c3QtcHJlZml4ICJzdW0iCisgICAgICAgIChsZXQgKCh0YWJsZSAoYWxpc3QtPmVxLWhhc2h0YWJs
ZSAnKChhIC4gYikgKGMgLiBkKSkpKSkKKyAgICAgICAgICAocGFzcy1pZiAobHNldD0gZXE/ICco
YSBiIGMgZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h0YWJsZS1zdW0gdGFibGUg
JygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoayB2IGFjYykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsc2V0LWFkam9pbiBlcT8gYWNjIGsgdikpKSkpKSkK
KworICAgICAgKHdpdGgtdGVzdC1wcmVmaXggIm1hcC0+bHNldCIKKyAgICAgICAgKGxldCAoKHRh
YmxlIChhbGlzdC0+ZXEtaGFzaHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAg
IChwYXNzLWlmIChsc2V0PSBlcXVhbD8gJygoYSAuIGIpIChjIC4gZCkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIChoYXNodGFibGUtbWFwLT5sc2V0IHRhYmxlIGNvbnMpKSkpKQorCisgICAg
ICAod2l0aC10ZXN0LXByZWZpeCAiZmluZCIKKyAgICAgICAgKGxldCAoKHRhYmxlIChhbGlzdC0+
ZXEtaGFzaHRhYmxlICcoKGEgLiBiKSAoYyAuIGQpKSkpKQorICAgICAgICAgIChyZWNlaXZlIChr
IHYgZj8pIChoYXNodGFibGUtZmluZCB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxhbWJkYSAoayB2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXE/IGsg
J2EpKSkKKyAgICAgICAgICAgIChwYXNzLWlmIChhbmQgZj8gKGVxPyBrICdhKSAoZXE/IHYgJ2Ip
KSkpCisgICAgICAgICAgKHJlY2VpdmUgKGsgdiBmPykgKGhhc2h0YWJsZS1maW5kIHRhYmxlIChs
YW1iZGEgKGsgdikgI2YpKQorICAgICAgICAgICAgKHBhc3MtaWYgKG5vdCBmPykpKSkpCisKKyAg
ICAgICh3aXRoLXRlc3QtcHJlZml4ICJtaXNjIgorCisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4
ICJlbXB0eT8iCisgICAgICAgICAgKHBhc3MtaWYgKGhhc2h0YWJsZS1lbXB0eT8gKGFsaXN0LT5l
cS1oYXNodGFibGUgJygpKSkpCisgICAgICAgICAgKHBhc3MtaWYgKG5vdCAoaGFzaHRhYmxlLWVt
cHR5PyAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gYikpKSkpKSkKKworICAgICAgICAod2l0
aC10ZXN0LXByZWZpeCAicG9wISIKKyAgICAgICAgICAocGFzcy1pZi1leGNlcHRpb24gIiIKKyAg
ICAgICAgICAgICAgJyhtaXNjLWVycm9yIC4gIl5IYXNoIHRhYmxlIGlzIGVtcHR5IikKKyAgICAg
ICAgICAgIChoYXNodGFibGUtcG9wISAobWFrZS1lcS1oYXNodGFibGUpKSkKKyAgICAgICAgICAo
bGV0ICgodGFibGUgKGFsaXN0LT5lcS1oYXNodGFibGUgJygoYSAuIGIpKSkpKQorICAgICAgICAg
ICAgKHJlY2VpdmUgKGsgdikgKGhhc2h0YWJsZS1wb3AhIHRhYmxlKQorICAgICAgICAgICAgICAo
cGFzcy1pZi1lcXVhbCAnYSBrKQorICAgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAnYiB2KQor
ICAgICAgICAgICAgICAocGFzcy1pZiAoaGFzaHRhYmxlLWVtcHR5PyB0YWJsZSkpKSkpCisKKyAg
ICAgICAgKHdpdGgtdGVzdC1wcmVmaXggImluYyEiCisgICAgICAgICAgKGxldCAoKHRhYmxlIChh
bGlzdC0+ZXEtaGFzaHRhYmxlICcoKGEgLiAwKSkpKSkKKyAgICAgICAgICAgIChoYXNodGFibGUt
aW5jISB0YWJsZSAnYSkKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIDEgKGhhc2h0YWJsZS1y
ZWYgdGFibGUgJ2EpKQorICAgICAgICAgICAgKGhhc2h0YWJsZS1pbmMhIHRhYmxlICdhIDIpCisg
ICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAzIChoYXNodGFibGUtcmVmIHRhYmxlICdhKSkpKQor
CisgICAgICAgICh3aXRoLXRlc3QtcHJlZml4ICJkZWMhIgorICAgICAgICAgIChsZXQgKCh0YWJs
ZSAoYWxpc3QtPmVxLWhhc2h0YWJsZSAnKChhIC4gMCkpKSkpCisgICAgICAgICAgICAoaGFzaHRh
YmxlLWRlYyEgdGFibGUgJ2EpCisgICAgICAgICAgICAocGFzcy1pZi1lcXVhbCAtMSAoaGFzaHRh
YmxlLXJlZiB0YWJsZSAnYSkpCisgICAgICAgICAgICAoaGFzaHRhYmxlLWRlYyEgdGFibGUgJ2Eg
MikKKyAgICAgICAgICAgIChwYXNzLWlmLWVxdWFsIC0zIChoYXNodGFibGUtcmVmIHRhYmxlICdh
KSkpKSkpCisKKyAgICAod2l0aC10ZXN0LXByZWZpeCAiaGFzaGluZyIKKyAgICAgIChwYXNzLWlm
IChleGFjdC1pbnRlZ2VyPyAoaGFzaC1zYWx0KSkpCisgICAgICAocGFzcy1pZiAobm90IChuZWdh
dGl2ZT8gKGhhc2gtc2FsdCkpKSkKKyAgICAgIChwYXNzLWlmICg9IChoYXNoLXNhbHQpIChoYXNo
LXNhbHQpKSkKKyAgICAgIChwYXNzLWlmICg9IChlcXVhbC1oYXNoIChsaXN0ICJmb28iICdiYXIg
NDIpKQorICAgICAgICAgICAgICAgICAgKGVxdWFsLWhhc2ggKGxpc3QgImZvbyIgJ2JhciA0Mikp
KSkKKyAgICAgIChwYXNzLWlmICg9IChzdHJpbmctaGFzaCAoc3RyaW5nLWNvcHkgImZvbyIpKQor
ICAgICAgICAgICAgICAgICAgKHN0cmluZy1oYXNoIChzdHJpbmctY29weSAiZm9vIikpKSkKKyAg
ICAgIChwYXNzLWlmICg9IChzdHJpbmctY2ktaGFzaCAoc3RyaW5nLWNvcHkgImZvbyIpKQorICAg
ICAgICAgICAgICAgICAgKHN0cmluZy1jaS1oYXNoIChzdHJpbmctY29weSAiRk9PIikpKSkKKyAg
ICAgIChwYXNzLWlmICg9IChzeW1ib2wtaGFzaCAoc3RyaW5nLT5zeW1ib2wgImZvbyIpKQorICAg
ICAgICAgICAgICAgICAgKHN5bWJvbC1oYXNoIChzdHJpbmctPnN5bWJvbCAiZm9vIikpKSkpCisg
ICAgKQorICApCi0tIAoyLjE5LjEKCg==
--000000000000b6a39d057efb700b
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0002-Implemented-GENERIC-HASH-TABLES-module.patch"
Content-Disposition: attachment; 
	filename="0002-Implemented-GENERIC-HASH-TABLES-module.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqofminu1>
X-Attachment-Id: f_jqofminu1

RnJvbSA0NzI1NmMwY2JmZjliMWNhNmUyNjhkNWQ0NDA3NjcxODA3ZWRjMjAyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMjE6NTg6Mzcg
LTAyMDAKU3ViamVjdDogW1BBVENIIDIvNV0gSW1wbGVtZW50ZWQgR0VORVJJQy1IQVNILVRBQkxF
UyBtb2R1bGUuCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB0byBpbnRlcm1l
ZGlhdGUgaGFzaCB0YWJsZXMgYW5kIGNhbgpiZSB1c2VkIHRvIGltcGxlbWVudCBTUkZJLTY5LCBT
UkZJLTEyNSwgU1JGSS0xMjYgYW5kIFI2UlMgaGFzaCB0YWJsZQpsaWJyYXJpZXMuIFRoYXQgd2F5
LCB3ZSBhdm9pZCBkdXBsaWNhdGlvbiBvZiBjb2RlLCBtaXNzaW5nIGZlYXR1cmVzIGFuZAppbmNv
bXBhdGliaWxpdGllcy4gSXQgcmV1c2VzIGN1cnJlbnQgU1JGSS02OSBjb2RlIGFuZCBpdHMgcHJv
Y2VkdXJlcyBhcmUKbW9zdGx5IGJhc2VkIG9uIFNSRkktMTI1IHNwZWNpZmljYXRpb25zIHdpdGgg
c29tZSBjaGFuZ2VzLiBJdCBkb2VzIG5vdApkZXBlbmQgb24gU1JGSS0xMjg6IGluc3RlYWQgb2Yg
dXNpbmcgY29tcGFyYXRvcnMsIHRoZSBwcm9jZWR1cmVzIGFjY2VwdAp0aGUgc2FtZSBhcmd1bWVu
dHMgdGhhdCBhcmUgYWNjZXB0ZWQgYnkgTUFLRS1IQVNILVRBQkxFLiBUaGUgd2Vha25lc3MKYXJn
dW1lbnQgaXMgYXMgc3BlY2lmaWVkIGJ5IFNSRkkgMTI2LgotLS0KIG1vZHVsZS9NYWtlZmlsZS5h
bSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIG1vZHVsZS9pY2UtOS9nZW5lcmljLWhh
c2gtdGFibGVzLnNjbSAgICAgIHwgOTE1ICsrKysrKysrKysrKysrKysrKysrKysKIHRlc3Qtc3Vp
dGUvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHRlc3Qtc3VpdGUvdGVz
dHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0IHwgNDE1ICsrKysrKysrKysKIDQgZmlsZXMgY2hh
bmdlZCwgMTMzMiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbW9kdWxlL2ljZS05
L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC1zdWl0ZS90
ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QKCmRpZmYgLS1naXQgYS9tb2R1bGUvTWFrZWZp
bGUuYW0gYi9tb2R1bGUvTWFrZWZpbGUuYW0KaW5kZXggYzcyZmI5MjI4Li42ZGJhODdjZTggMTAw
NjQ0Ci0tLSBhL21vZHVsZS9NYWtlZmlsZS5hbQorKysgYi9tb2R1bGUvTWFrZWZpbGUuYW0KQEAg
LTY2LDYgKzY2LDcgQEAgU09VUkNFUyA9CQkJCQlcCiAgIGljZS05L2Z1dHVyZXMuc2NtCQkJCVwK
ICAgaWNlLTkvZ2FwLWJ1ZmZlci5zY20JCQkJXAogICBpY2UtOS9nZXRvcHQtbG9uZy5zY20JCQkJ
XAorICBpY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbSAgICAgICAgICAgICAgICAgXAogICBp
Y2UtOS9oYXNoLXRhYmxlLnNjbQkJCQlcCiAgIGljZS05L2hjb25zLnNjbQkJCQlcCiAgIGljZS05
L2hpc3Rvcnkuc2NtCQkJCVwKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gt
dGFibGVzLnNjbSBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjAzM2MzZWNkYQotLS0gL2Rldi9udWxsCisr
KyBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbQpAQCAtMCwwICsxLDkxNSBA
QAorOzs7IGdlbmVyaWMtaGFzaC10YWJsZXMuc2NtIC0tLSBJbnRlcm1lZGlhdGUgaGFzaCB0YWJs
ZXMKKworOzsgCUNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCis7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7OyBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
Kzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7OyBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
IDAyMTEwLTEzMDEgVVNBCisMCisKKzs7OzsgQ29tbWVudGFyeSBieSBKZXNzaWNhIE1pbGFyZSAy
MDE4CisKKzs7IFRoaXMgaW1wbGVtZW50YXRpb24gd2FzIGNyZWF0ZWQgb24gdG9wIG9mIFNSRkkt
NjkgKG9sZCkgR3VpbGUgY29kZSwKKzs7IGV4dGVuZGluZyBpdCB0byBzdXBwb3J0IFNSRkktMTI1
IHNwZWNpZmljYXRpb25zIGFuZCBpbnRlbmRlZCB0byBiZQorOzsgdXNlZCBieSBTUkZJLTY5LCBT
UkZJLTEyNSwgU1JGSS0xMjYgYW5kIFI2UlMuIE9uZSBzaW5nbGUgaGFzaCB0YWJsZXMKKzs7IGlt
cGxlbWVudGF0aW9uIGNvdWxkIGJlIGV4cG9ydGVkIHRvIGFsbCBvZiB0aGVzZSBsaWJyYXJpZXMs
IGF2b2lkaW5nCis7OyBkdXBsaWNhdGlvbiBvZiBjb2RlLCBtaXNzaW5nIGZlYXR1cmVzIGFuZCBp
bmNvbXBhdGliaWxpdGllcy4KKzs7Cis7OyBIYXNoIHRhYmxlcyBoZXJlIGhhdmUgMiBoYXNoIGZ1
bmN0aW9ucywgb25lIGludGVybmFsICh0aGF0IGlzIHVzZWQgYnkKKzs7IEd1aWxlKSBhbmQgb25l
IGV4dGVybmFsICh0aGF0IGlzIHJldHVybmVkIGJ5IGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiku
Cis7OyBJbnRlcm5hbCBoYXNoIGZ1bmN0aW9ucyBhY2NlcHRzIHR3byBhcmd1bWVudHMsIHdoaWxl
IGV4dGVybmFsIGZ1bmN0aW9ucworOzsgYWNjZXB0IG9uZSBhcmd1bWVudCAoYW5kIHBvc3NpYmx5
IG1vcmUgb3B0aW9uYWwgYXJndW1lbnRzKS4KKworOzs7IENvZGU6CisMCis7Ozs7IE1vZHVsZSBk
ZWZpbml0aW9uICYgZXhwb3J0cworCisoZGVmaW5lLW1vZHVsZSAoaWNlLTkgZ2VuZXJpYy1oYXNo
LXRhYmxlcykKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkJO2FsaXN0LWNvbnMsc2Vjb25k
JmMsYXNzb2MKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOCkgICAgO3JlY2VpdmUKKyAgIzp1
c2UtbW9kdWxlIChzcmZpIHNyZmktOSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOSBnbnUp
CisgICM6dXNlLW1vZHVsZSAoaWNlLTkgZm9ybWF0KQorICAjOmV4cG9ydCAoOzsgVHlwZSBjb25z
dHJ1Y3RvcnMgJiBwcmVkaWNhdGUKKwkgICAgbWFrZS1oYXNoLXRhYmxlCisgICAgICAgICAgICBo
YXNoLXRhYmxlPyBoYXNoLXRhYmxlIGhhc2gtdGFibGUtdW5mb2xkIGFsaXN0LT5oYXNoLXRhYmxl
CisgICAgICAgICAgICA7OyBSZWZsZWN0aXZlIHF1ZXJpZXMKKyAgICAgICAgICAgIGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uCisgICAgICAg
ICAgICBoYXNoLXRhYmxlLXdlYWtuZXNzIGhhc2gtdGFibGUta2V5LXdlYWtuZXNzIGhhc2gtdGFi
bGUtdmFsdWUtd2Vha25lc3MKKyAgICAgICAgICAgIDs7IFByZWRpY2F0ZXMKKyAgICAgICAgICAg
IGhhc2gtdGFibGUtbXV0YWJsZT8gaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgIGhh
c2gtdGFibGUtZW1wdHk/IGhhc2gtdGFibGU9PworICAgICAgICAgICAgOzsgQWNjZXNzb3JzCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLXJlZiBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0CisgICAgICAg
ICAgICA7OyBNdXRhdG9ycworICAgICAgICAgICAgaGFzaC10YWJsZS1zZXQhIGhhc2gtdGFibGUt
c2V0LXNpbmdsZSEKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZGVsZXRlISBoYXNoLXRhYmxlLWRl
bGV0ZS1zaW5nbGUhCisgICAgICAgICAgICBoYXNoLXRhYmxlLWludGVybiEgaGFzaC10YWJsZS1p
bnRlcm4hL2RlZmF1bHQKKyAgICAgICAgICAgIGhhc2gtdGFibGUtdXBkYXRlISBoYXNoLXRhYmxl
LXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAgaGFzaC10YWJsZS1wb3AhIGhhc2gtdGFibGUt
Y2xlYXIhCisgICAgICAgICAgICA7OyBUaGUgd2hvbGUgaGFzaCB0YWJsZQorICAgICAgICAgICAg
aGFzaC10YWJsZS1zaXplIGhhc2gtdGFibGUtZmluZCBoYXNoLXRhYmxlLWNvdW50CisgICAgICAg
ICAgICBoYXNoLXRhYmxlLWtleXMgaGFzaC10YWJsZS12YWx1ZXMgaGFzaC10YWJsZS1lbnRyaWVz
CisgICAgICAgICAgICBoYXNoLXRhYmxlLWtleS12ZWN0b3IgaGFzaC10YWJsZS12YWx1ZS12ZWN0
b3IgaGFzaC10YWJsZS1lbnRyeS12ZWN0b3JzCisgICAgICAgICAgICA7OyBNYXBwaW5nIGFuZCBm
b2xkaW5nCisgICAgICAgICAgICBoYXNoLXRhYmxlLW1hcCBoYXNoLXRhYmxlLWZvci1lYWNoIGhh
c2gtdGFibGUtbWFwISBoYXNoLXRhYmxlLW1hcC0+bGlzdAorICAgICAgICAgICAgaGFzaC10YWJs
ZS1mb2xkIGhhc2gtdGFibGUtcHJ1bmUhCisgICAgICAgICAgICA7OyBDb3B5aW5nCisgICAgICAg
ICAgICBoYXNoLXRhYmxlLWNvcHkgaGFzaC10YWJsZS1lbXB0eS1jb3B5CisgICAgICAgICAgICA7
OyBDb252ZXJzaW9uCisgICAgICAgICAgICBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAg
OzsgSGFzaCB0YWJsZXMgYXMgc2V0cworICAgICAgICAgICAgaGFzaC10YWJsZS11bmlvbiEgaGFz
aC10YWJsZS1pbnRlcnNlY3Rpb24hIGhhc2gtdGFibGUtZGlmZmVyZW5jZSEKKyAgICAgICAgICAg
IGhhc2gtdGFibGUteG9yIQorICAgICAgICAgICAgOzsgSGFzaGluZworICAgICAgICAgICAgc3Ry
aW5nLWNpLWhhc2ggaGFzaC1ieS1pZGVudGl0eSBoYXNoLWJ5LXZhbHVlIGhhc2gpCisgICM6cmUt
ZXhwb3J0IChzdHJpbmctaGFzaCkKKyAgIzpyZXBsYWNlIChoYXNoIG1ha2UtaGFzaC10YWJsZSBo
YXNoLXRhYmxlPykpCisKKwwKKzs7OzsgSW50ZXJuYWwgaGVscGVyIG1hY3JvcworCis7OyBEZWZp
bmUgdGhlc2UgZmlyc3QsIHNvIHRoZSBjb21waWxlciB3aWxsIHBpY2sgdGhlbSB1cC4KKworOzsg
SSBhbSBhIG1hY3JvIG9ubHkgZm9yIGVmZmljaWVuY3ksIHRvIGF2b2lkIHZhcmFyZ3MvYXBwbHku
CisoZGVmaW5lLW1hY3JvIChoYXNoeC1pbnZva2UgaGFzaHgtcHJvYyBodC12YXIgLiBhcmdzKQor
ICAiSW52b2tlIEhBU0hYLVBST0MsIGEgYGhhc2h4LSonIHByb2NlZHVyZSB0YWtpbmcgYSBoYXNo
LWZ1bmN0aW9uLAorYXNzb2MtZnVuY3Rpb24sIGFuZCB0aGUgaGFzaC10YWJsZSBhcyBmaXJzdCBh
cmdzLiIKKyAgYCgsaGFzaHgtcHJvYyAoaHQtaGFzaC1mdW5jdGlvbiAsaHQtdmFyKQorCQkoaHQt
YXNzb2NpYXRvciAsaHQtdmFyKQorCQkoaHQtcmVhbC10YWJsZSAsaHQtdmFyKQorCQkuICxhcmdz
KSkKKworKGRlZmluZS1tYWNybyAod2l0aC1oYXNoeC12YWx1ZXMgYmluZGluZ3MgaHQtdmFyIC4g
Ym9keS1mb3JtcykKKyAgIkJpbmQgQklORElOR1MgdG8gdGhlIGhhc2gtZnVuY3Rpb24sIGFzc29j
aWF0b3IsIGFuZCByZWFsLXRhYmxlIG9mCitIVC1WQVIsIHdoaWxlIGV2YWx1YXRpbmcgQk9EWS1G
T1JNUy4iCisgIGAobGV0ICgoLCh0aGlyZCBiaW5kaW5ncykgKGh0LXJlYWwtdGFibGUgLGh0LXZh
cikpCisgICAgICAgICAoLChmaXJzdCBiaW5kaW5ncykgKGh0LWhhc2gtZnVuY3Rpb24gLGh0LXZh
cikpCisJICgsKHNlY29uZCBiaW5kaW5ncykgKGh0LWFzc29jaWF0b3IgLGh0LXZhcikpKQorICAg
ICAuICxib2R5LWZvcm1zKSkKKworKGRlZmluZS1zeW50YXggYXNzZXJ0LW11dGFibGUKKyAgKHN5
bnRheC1ydWxlcyAoKQorICAgICgoYXNzZXJ0LW11dGFibGUgaHQpCisgICAgIChvciAoaGFzaC10
YWJsZS1tdXRhYmxlPyBodCkKKyAgICAgICAgIChlcnJvciAiSGFzaCB0YWJsZSBpcyBub3QgbXV0
YWJsZSIgaHQpKSkpKQorCisMCis7Ozs7IEhhc2hpbmcKKworOzs7IFNSRkktMTI1IGFuZCBSNlJT
IGhhc2ggZnVuY3Rpb25zIGFyZSBzdXBwb3NlZCB0byBhY2NlcHQgb25seSBvbmUKKzs7OyBhcmd1
bWVudCwgYnV0IEd1aWxlIHN0YW5kYXJkIGhhc2ggdGFibGVzIG5lZWRzIHR3byBhcmdzLgorOzs7
IFRoZXJlZm9yZSwgdGhlIGhhc2ggZnVuY3Rpb25zIGluc2lkZSB0aGUgaGFzaCB0YWJsZSBhbHdh
eXMgYWNjZXB0cworOzs7IG9uZSAocmVxdWlyZWQpIGFyZ3VtZW50IGFuZCBhdCBsZWFzdCBvbmUg
cG9zc2libGUgYXJndW1lbnQsIHdoaWNoCis7OzsgbXVzdCBiZSBhIGZpeG51bS4KKworOzs7IFRo
ZSBsYXJnZXN0IGZpeG51bSBpcyBpbiBgbW9zdC1wb3NpdGl2ZS1maXhudW0nIGluIG1vZHVsZSAo
Z3VpbGUpLAorOzs7IHRob3VnaCBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSBidXQgbGliZ3VpbGUv
bnVtYmVycy5jLgorCisoZGVmaW5lIChjYWxsZXItd2l0aC1kZWZhdWx0LXNpemUgaGFzaC1mbikK
KyAgIkFuc3dlciBhIGZ1bmN0aW9uIHRoYXQgbWFrZXMgYG1vc3QtcG9zaXRpdmUtZml4bnVtJyB0
aGUgZGVmYXVsdAorc2Vjb25kIGFyZ3VtZW50IHRvIEhBU0gtRk4sIGEgMi1hcmcgcHJvY2VkdXJl
LiIKKyAgKGxhbWJkYSogKG9iaiAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9zaXRpdmUtZml4bnVt
KSkKKyAgICAoaGFzaC1mbiBvYmogc2l6ZSkpKQorCisoZGVmaW5lIGhhc2ggKGNhbGxlci13aXRo
LWRlZmF1bHQtc2l6ZSAoQCAoZ3VpbGUpIGhhc2gpKSkKKworKGRlZmluZSBzdHJpbmctY2ktaGFz
aCBzdHJpbmctaGFzaC1jaSkKKworKGRlZmluZSBoYXNoLWJ5LWlkZW50aXR5IChjYWxsZXItd2l0
aC1kZWZhdWx0LXNpemUgaGFzaHEpKQorKGRlZmluZSBoYXNoLWJ5LXZhbHVlICAgIChjYWxsZXIt
d2l0aC1kZWZhdWx0LXNpemUgaGFzaHYpKQorCisoZGVmaW5lICh3cmFwLWhhc2gtZnVuY3Rpb24g
aGFzaC1mdW5jdGlvbikKKyAgKGxhbWJkYSogKG9iaiBzaXplKQorICAgIChtb2R1bG8gKGhhc2gt
ZnVuY3Rpb24gb2JqKSBzaXplKSkpCisKKwwKKzs7OzsgUmVmbGVjdGl2ZSBxdWVyaWVzLCBjb25z
dHJ1Y3Rpb24sIHByZWRpY2F0ZQorCisoZGVmaW5lIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYt
ZnVuY3Rpb24gaGFzaC1mdW5jdGlvbikKKyAgIlJldHVybnMgYW4gaW50ZXJuYWwgYW5kIGFuIGV4
dGVybmFsIGhhc2ggZnVuY3Rpb24uIgorICAoY29uZAorICAgKGhhc2gtZnVuY3Rpb24gKGNvbmQK
KyAgICAgICAgICAgICAgICAgICA7OyBTUkZJLTY5IHNob3VsZCBnaXZlIEhBU0ggYXMgZGVmYXVs
dCBoYXNoLWZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgICgob3IgKGVxPyAoQCAoZ3VpbGUp
IGhhc2gpIGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAoZXE/IGhhc2gg
aGFzaC1mdW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZXMgKEAgKGd1aWxlKSBo
YXNoKSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICA7OyBUaGVzZSBwcm9jZWR1
cmVzIGRvbid0IG5lZWQgdG8gYmUgd3JhcHBlZC4KKyAgICAgICAgICAgICAgICAgICAoKG9yIChl
cT8gc3RyaW5nLWhhc2ggaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChl
cT8gc3RyaW5nLWNpLWhhc2ggaGFzaC1mdW5jdGlvbikpCisgICAgICAgICAgICAgICAgICAgICh2
YWx1ZXMgaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAo
KG9yIChlcT8gaGFzaHEgaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChl
cT8gaGFzaC1ieS1pZGVudGl0eSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAg
KHZhbHVlcyBoYXNocSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAoKG9yIChl
cT8gaGFzaHYgaGFzaC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIChlcT8gaGFz
aC1ieS12YWx1ZSBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgKHZhbHVlcyBo
YXNodiBoYXNoLWZ1bmN0aW9uKSkKKyAgICAgICAgICAgICAgICAgICA7OyBPdGhlcndpc2UsIHdy
YXAgdGhlIGdpdmVuIGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgIChlbHNlICh2YWx1ZXMg
KHdyYXAtaGFzaC1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSBoYXNoLWZ1bmN0aW9uKSkpKQorICAg
KChlcT8gZXF1YWw/IGVxdWl2LWZ1bmN0aW9uKSAodmFsdWVzIChAIChndWlsZSkgaGFzaCkgaGFz
aCkpCisgICAoKGVxPyBlcT8gZXF1aXYtZnVuY3Rpb24pICh2YWx1ZXMgaGFzaHEgaGFzaC1ieS1p
ZGVudGl0eSkpCisgICAoKGVxPyBlcXY/IGVxdWl2LWZ1bmN0aW9uKSAodmFsdWVzIGhhc2h2IGhh
c2gtYnktdmFsdWUpKQorICAgKChlcT8gc3RyaW5nPT8gZXF1aXYtZnVuY3Rpb24pICh2YWx1ZXMg
c3RyaW5nLWhhc2ggc3RyaW5nLWhhc2gpKQorICAgKChlcT8gc3RyaW5nLWNpPT8gZXF1aXYtZnVu
Y3Rpb24pICh2YWx1ZXMgc3RyaW5nLWNpLWhhc2ggc3RyaW5nLWNpLWhhc2gpKQorICAgKGVsc2Ug
KGVycm9yICJBIHN1aXRhYmxlIGhhc2ggZnVuY3Rpb24gY291bGQgbm90IGJlIGRldGVybWluZWQi
IGVxdWl2LWZ1bmN0aW9uKSkpKQorCisoZGVmaW5lIChndWlsZS1odC1jdG9yIHdlYWtuZXNzKQor
ICAiQW5zd2VyIHRoZSBHdWlsZSBIVCBjb25zdHJ1Y3RvciBmb3IgdGhlIGdpdmVuIFdFQUtORVNT
LCB3aGVyZQorV0VBS05FU1MgaXMgYXMgc3BlY2lmaWVkIGJ5IFNSRkktMTI2LiIKKyAgKGNhc2Ug
d2Vha25lc3MKKyAgICAoKCNmKSAoQCAoZ3VpbGUpIG1ha2UtaGFzaC10YWJsZSkpCisgICAgKCh3
ZWFrLWtleSkgbWFrZS13ZWFrLWtleS1oYXNoLXRhYmxlKQorICAgICgod2Vhay12YWx1ZSkgbWFr
ZS13ZWFrLXZhbHVlLWhhc2gtdGFibGUpCisgICAgKCh3ZWFrLWtleS1hbmQtdmFsdWUpIG1ha2Ut
ZG91Ymx5LXdlYWstaGFzaC10YWJsZSkKKyAgICAoKGVwaGVtZXJhbC1rZXkgZXBoZW1lcmFsLXZh
bHVlIGVwaGVtZXJhbC1rZXktYW5kLXZhbHVlKQorICAgICAoZXJyb3IgIlVuc3VwcG9ydGVkIGhh
c2ggdGFibGUgd2Vha25lc3MiIHdlYWtuZXNzKSkKKyAgICAoZWxzZSAoZXJyb3IgIkludmFsaWQg
aGFzaCB0YWJsZSB3ZWFrbmVzcyIgd2Vha25lc3MpKSkpCisKKyhkZWZpbmUgKGVxdWl2YWxlbmNl
LXByb2MtPmFzc29jaWF0b3IgZXF1aXYtZnVuY3Rpb24pCisgICJBbnN3ZXIgYW4gYGFzc29jJy1s
aWtlIHByb2NlZHVyZSB0aGF0IGNvbXBhcmVzIHRoZSBhcmd1bWVudCBrZXkgdG8KK2FsaXN0IGtl
eXMgd2l0aCBFUVVJVi1GVU5DVElPTi4iCisgIChjb25kICgob3IgKGVxPyBlcXVhbD8gZXF1aXYt
ZnVuY3Rpb24pCisJICAgICAoZXE/IHN0cmluZz0/IGVxdWl2LWZ1bmN0aW9uKSkgKEAgKGd1aWxl
KSBhc3NvYykpCisJKChlcT8gZXE/IGVxdWl2LWZ1bmN0aW9uKSBhc3NxKQorCSgoZXE/IGVxdj8g
ZXF1aXYtZnVuY3Rpb24pIGFzc3YpCisJKGVsc2UgKGxhbWJkYSAoaXRlbSBhbGlzdCkKKwkJKGFz
c29jIGl0ZW0gYWxpc3QgZXF1aXYtZnVuY3Rpb24pKSkpKQorCisoZGVmaW5lLXJlY29yZC10eXBl
IGdlbmVyaWMtaGFzaC10YWJsZQorICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUgcmVhbC10YWJs
ZSBoYXNoLWZ1bmN0aW9uIGFzc29jaWF0b3Igd2Vha25lc3MKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11dGFibGU/IHNpemUgZXF1aXZhbGVuY2UtZnVuY3Rpb24gb3JpZ2luYWwtaGFzaC1m
dW5jdGlvbikKKyAgaGFzaC10YWJsZT8KKyAgOzsgVGhlc2UgdGhyZWUgYXJlIHRoZSBtb3N0IGFj
Y2Vzc2VkIGZpZWxkcy4KKyAgKHJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSBodC1yZWFsLXRhYmxl
ISkKKyAgKGhhc2gtZnVuY3Rpb24gaHQtaGFzaC1mdW5jdGlvbikKKyAgKGFzc29jaWF0b3IgaHQt
YXNzb2NpYXRvcikKKyAgOzsgV2VhayBoYXNoIHRhYmxlcyBkb24ndCB1c2UgaGFuZGxlcyBhbmQg
ZG9uJ3QgdXBkYXRlIGh0LXNpemUuCisgICh3ZWFrbmVzcyBodC13ZWFrbmVzcykKKyAgOzsgU3Vw
cG9ydHMgaW1tdXRhYmlsaXR5LgorICAobXV0YWJsZT8gaGFzaC10YWJsZS1tdXRhYmxlPykKKyAg
OzsgU2l6ZSBvZiBoYXNoLXRhYmxlLCBhbGxvd2luZyBPKDEpIGhhc2gtdGFibGUtc2l6ZSBmb3IK
KyAgOzsgbm9uLXdlYWsgaGFzaCB0YWJsZXMuCisgIChzaXplIGh0LXNpemUgaHQtc2l6ZSEpCisg
IDs7IFRoZXNlIGFyZSBtb3N0bHkgbmVlZGVkIGZvciByZWZsZWN0aXZlIHF1ZXJpZXMKKyAgKGVx
dWl2YWxlbmNlLWZ1bmN0aW9uIGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24pCisgIChv
cmlnaW5hbC1oYXNoLWZ1bmN0aW9uIGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbikpCisKKzs7IFNo
b3cgc29tZSBpbmZvcm1hdGlvbnMuCisoZGVmaW5lIChwcmludC1oYXNoLXRhYmxlIGh0IHBvcnQp
CisgIChsZXQgKChlcXVpdi1uYW1lIChwcm9jZWR1cmUtbmFtZSAoaGFzaC10YWJsZS1lcXVpdmFs
ZW5jZS1mdW5jdGlvbiBodCkpKSkKKyAgICAoZm9ybWF0IHBvcnQgIiM8Z2VuZXJpYy1oYXNoLXRh
YmxlIH5AW35hIH5dfkBbfmEgfl1zaXplOiB+YSBtdXRhYmxlPyB+YT4iCisgICAgICAgICAgICBl
cXVpdi1uYW1lIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgICAgIChoYXNoLXRhYmxlLXNpemUg
aHQpIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKQorCisoc2V0LXJlY29yZC10eXBlLXByaW50
ZXIhIGdlbmVyaWMtaGFzaC10YWJsZSBwcmludC1oYXNoLXRhYmxlKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWtleS13ZWFrbmVzcyBodCkKKyAgIlJldHVybnMgV0VBSy1LRVlTIGlmIEhUIGhhcyB3
ZWFrIGtleXMsIG9yICNmIG90aGVyd2lzZS4iCisgIDs7IElmIEd1aWxlIGV2ZXIgc3VwcG9ydHMg
ZXBoZW1lcmFsIGtleXMsIHRoaXMgcHJvY2VkdXJlIHNob3VsZAorICA7OyByZXR1cm4gRVBIRU1F
UkFMLUtFWVMgaWYgdGhlIEhUIGtleXMgYXJlIGVwaGVtZXJhbC4KKyAgKGNhc2UgKGh0LXdlYWtu
ZXNzIGh0KQorICAgICgoI2Ygd2Vhay12YWx1ZSkgI2YpCisgICAgKCh3ZWFrLWtleSB3ZWFrLWtl
eS1hbmQtdmFsdWUpICd3ZWFrLWtleXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS12YWx1ZS13
ZWFrbmVzcyBodCkKKyAgIlJldHVybnMgV0VBSy1WQUxVRVMgaWYgSFQgaGFzIHdlYWsgdmFsdWVz
LCBvciAjZiBvdGhlcndpc2UuIgorICA7OyBJZiBHdWlsZSBldmVyIHN1cHBvcnRzIGVwaGVtZXJh
bCB2YWx1ZXMsIHRoaXMgcHJvY2VkdXJlIHNob3VsZAorICA7OyByZXR1cm4gRVBIRU1FUkFMLVZB
TFVFUyBpZiB0aGUgSFQgdmFsdWVzIGFyZSBlcGhlbWVyYWwuCisgIChjYXNlIChodC13ZWFrbmVz
cyBodCkKKyAgICAoKCNmIHdlYWsta2V5KSAjZikKKyAgICAoKHdlYWstdmFsdWUgd2Vhay1rZXkt
YW5kLXZhbHVlKSAnd2Vhay12YWx1ZXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS13ZWFrbmVz
cyBodCkKKyAgIlJldHVybiB0aGUgd2Vha25lc3Mgb2YgSFQgYWNjb3JkaW5nIHRvIFNSRkktMTI2
IHNwZWMuIgorICAoaHQtd2Vha25lc3MgaHQpKQorCis7OyBUaGlzIGludGVybmFsIGZ1bmN0aW9u
IGFsbG93cyB1cyB0byBjcmVhdGUgaW1tdXRhYmxlIGhhc2ggdGFibGVzCisoZGVmaW5lICglbWFr
ZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24gbXV0YWJsZSBjYXBhY2l0
eSB3ZWFrbmVzcykKKyAgKHJlY2VpdmUgKGludGVybmFsLWhhc2gtZnVuY3Rpb24gaGFzaC1mdW5j
dGlvbikKKyAgICAgIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5j
dGlvbikKKyAgICAobGV0ICgocmVhbC10YWJsZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNh
cGFjaXR5KSkpCisgICAgICA7OyBBcmd1bWVudHM6IHJlYWwtdGFibGUgaGFzaC1mdW5jdGlvbiBh
c3NvY2lhdG9yCisgICAgICA7OyAgICAgICAgICAgIHdlYWtuZXNzIG11dGFibGU/IHNpemUgZXF1
aXZhbGVuY2UtZnVuY3Rpb24gb3JpZy1oYXNoLWZ1bmN0aW9uCisgICAgICAobWFrZS1nZW5lcmlj
LWhhc2gtdGFibGUgcmVhbC10YWJsZSBpbnRlcm5hbC1oYXNoLWZ1bmN0aW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGVxdWl2YWxlbmNlLXByb2MtPmFzc29jaWF0b3IgZXF1aXYt
ZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MgKGFuZCBt
dXRhYmxlICN0KSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1aXYtZnVuY3Rp
b24gaGFzaC1mdW5jdGlvbikpKSkKKworOzsgSWYgdGhlIGxpc3Qgb2YgYXJndW1lbnRzIGlzIHVw
ZGF0ZWQsIEhBU0gtVEFCTEUsIEFMSVNULT5IQVNILVRBQkxFLAorOzsgSEFTSC1UQUJMRS1VTkZP
TEQgYW5kIEhBU0gtVEFCTEUtTUFQIHNob3VsZCBiZSB1cGRhdGVkIGFzIHdlbGwuCisoZGVmaW5l
KiAobWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIzprZXkgKGNhcGFjaXR5IDEpICh3ZWFrbmVzcyAjZikgIzpyZXN0
IGFyZ3MpCisgICJDcmVhdGVzIGEgbmV3IGhhc2ggdGFibGUuIEVRVUlWLUZVTkNUSU9OIGlzIHVz
ZWQgYXMgdGhlIGNvbXBhcmlzb24KK2Z1bmN0aW9uIGFuZCBIQVNILUZVTkNUSU9OLCBpZiBub3Qg
ZmFsc2UsIGlzIHVzZWQgYXMgdGhlIGhhc2ggZnVuY3Rpb24sCitvdGhlcndpc2UgYSBzdWl0YWJs
ZSBoYXNoLWZ1bmN0aW9uIGZvciB0aGUgaGFzaCB0YWJsZSBpcyBndWVzc2VkIG9yLCBpZgorb25l
IGNhbid0IGJlIGd1ZXNzZWQsIGFuIGVycm9yIGlzIHNpZ25hbGVkLiAjOldFQUtORVNTIHNob3Vs
ZCBiZSBlaXRoZXIKKyNmLCBXRUFLLUtFWSwgV0VBSy1WQUxVRSBvciBXRUFLLUtFWS1BTkQtVkFM
VUUsIGFzIHNwZWNpZmllZCBieQorU1JGSS0xMjYuICM6Q0FQQUNJVFkgaXMgdGhlIG1pbmltYWwg
bnVtYmVyIG9mIGJ1Y2tldHMgb2YgdGhlIGhhc2ggdGFibGUuCisKK0FSR1MgaXMgaWdub3JlZCBh
bmQgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHRlbnNpb25zLiIKKyAgKCVtYWtlLWhhc2gtdGFibGUg
ZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbiAjdCBjYXBhY2l0eSB3ZWFrbmVzcykpCisKKzs7
IFdlIHVzZSB0aGlzIHRvIGRlbm90ZSBtaXNzaW5nIG9yIHVuc3BlY2lmaWVkIHZhbHVlcyB0byBh
dm9pZAorOzsgcG9zc2libGUgY29sbGlzaW9uIHdpdGggKnVuc3BlY2lmaWVkKi4KKworKGRlZmlu
ZSBodC11bnNwZWNpZmllZCAoY29ucyAqdW5zcGVjaWZpZWQqICJodC12YWx1ZSIpKQorCisoZGVm
aW5lKiAoaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncyAuIGFyZ3MpCisgICJD
cmVhdGVzIGEgbmV3IGltbXV0YWJsZSBoYXNoIHRhYmxlIHdpdGggdGhlIGFzc29jaWF0aW9ucyBn
aXZlbiBieQorQVJHUy4gSWYgRVFVSVYtRlVOQ1RJT04tT1ItTUhULUFSR1MgaXMgYSBsaXN0LCB0
aGUgbmV3IGhhc2ggdGFibGUgaXMKK2NyZWF0ZWQgYnkgKEFQUExZIE1BS0UtSEFTSC1UQUJMRSBF
UVVJVi1GVU5DVElPTi1PUi1NSFQtQVJHUyksIG90aGVyd2lzZQoraXQgaXMgY3JlYXRlZCBieSAo
TUFLRS1IQVNILVRBQkxFIEVRVUlWLUZVTkNUSU9OLU9SLU1IVC1BUkdTKSB3aXRoIHRoZQoraW5p
dGlhbCBjYXBhY2l0eSBzZXQgdG8gdGhlIG51bWJlciBvZiBhc3NvY2lhdGlvbnMgaW4gYXJncy4K
KworVGhlIEFSR1MgYWx0ZXJuYXRlIGJldHdlZW4ga2V5cyBhbmQgdmFsdWVzLiBJZiB0aGUgc2Ft
ZSBrZXkgKGluIHRoZQorc2Vuc2Ugb2YgdGhlIGVxdWFsaXR5IHByb2NlZHVyZSkgaXMgc3BlY2lm
aWVkIG1vcmUgdGhlbiBvbmNlLCBhbiBlcnJvcgoraXMgc2lnbmFsZWQuIgorICAobGV0ICgobGVu
IChsZW5ndGggYXJncykpKQorICAgICh1bmxlc3MgKGV2ZW4/IGxlbikKKyAgICAgIChlcnJvciAi
T2RkIG51bWJlciBvZiBrZXktdmFsdWUgcGFpcnMiIGFyZ3MpKQorICAgIChsZXQqICgoY2FwYWNp
dHkgKHF1b3RpZW50IGxlbiAyKSkKKyAgICAgICAgICAgKGh0IChpZiAocGFpcj8gZXF1aXYtZnVu
Y3Rpb24tb3ItbWh0LWFyZ3MpCisgICAgICAgICAgICAgICAgICAgKGNvbmQgKChudWxsPyBlcXVp
di1mdW5jdGlvbi1vci1taHQtYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgU1JG
SS0xMjUgU3BlYyBzYXlzIHRoaXMgc2hvdWxkIHJldHVybiBhbiBpbW11dGFibGUgaGFzaCB0YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAoJW1ha2UtaGFzaC10YWJsZSBlcXVhbD8gI2Yg
I2YgY2FwYWNpdHkgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAgICgobnVsbD8gKGNkciBl
cXVpdi1mdW5jdGlvbi1vci1taHQtYXJncykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICgl
bWFrZS1oYXNoLXRhYmxlIChjYXIgZXF1aXYtZnVuY3Rpb24tb3ItbWh0LWFyZ3MpICNmCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmIGNhcGFjaXR5ICNmKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAoKG51bGw/IChjZGRyIGVxdWl2LWZ1bmN0aW9uLW9y
LW1odC1hcmdzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCVtYWtlLWhhc2gtdGFibGUg
KGNhciBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGNhZHIgZXF1aXYtZnVuY3Rpb24tb3ItbWh0LWFyZ3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmIGNhcGFjaXR5ICNm
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYXBwbHkgKGxhbWJkYSogKGVxdWl2LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5IChtdXRhYmxlICNmKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXBhY2l0eSBjYXBhY2l0eSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2Vha25lc3MgI2YpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzpyZXN0IGFyZ3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICglbWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1
bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBhY2l0eSB3ZWFrbmVzcykpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGVxdWl2LWZ1bmN0aW9uLW9yLW1odC1hcmdzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhZHIgZXF1aXYtZnVuY3Rpb24tb3It
bWh0LWFyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5IGNh
cGFjaXR5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RkciBlcXVpdi1mdW5j
dGlvbi1vci1taHQtYXJncykpKSkKKyAgICAgICAgICAgICAgICAgICAoJW1ha2UtaGFzaC10YWJs
ZSBlcXVpdi1mdW5jdGlvbi1vci1taHQtYXJncyAjZiAjZiBjYXBhY2l0eSAjZikpKSkKKyAgICAg
ICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0CisgICAgICAgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAgICAgICAobGV0IGxvb3AgKChrdnMgYXJncykpCisgICAgICAg
ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAoKG51bGw/IGt2cykgI2YpCisgICAgICAgICAg
ICAgICAoKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICAg
IChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUgKGNhciBrdnMpIGh0LXVuc3BlY2lmaWVkKSkpCisg
ICAgICAgICAgICAgICAgKGVycm9yICJUd28gZXF1aXZhbGVudCBrZXlzIHdlcmUgcHJvdmlkZWQi
CisgICAgICAgICAgICAgICAgICAgICAgIChjYXIgKG1lbWJlciAoY2FyIGt2cykgKGhhc2gtdGFi
bGUta2V5cyBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoLXRh
YmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgIChj
YXIga3ZzKSkpCisgICAgICAgICAgICAgICAoZWxzZSAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJs
ZSAoY2FyIGt2cykgKGNhZHIga3ZzKSkKKyAgICAgICAgICAgICAgICAgICAgIChsb29wIChjZGRy
IGt2cykpKSkpCisgICAgICAgICAgICAobGV0IGxvb3AgKChrdnMgYXJncykpCisgICAgICAgICAg
ICAgIChjb25kCisgICAgICAgICAgICAgICAoKG51bGw/IGt2cykgI2YpCisgICAgICAgICAgICAg
ICAoZWxzZSAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJs
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGNhciBrdnMpIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICh1
bmxlc3MgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgKGVycm9yICJUd28gZXF1aXZhbGVudCBrZXlzIHdlcmUgcHJvdmlkZWQiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgaGFuZGxlKSAoY2FyIGt2cykpKQorICAg
ICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIChjYWRyIGt2cykpKQorICAgICAg
ICAgICAgICAgICAgICAgKGxvb3AgKGNkZHIga3ZzKSkpKQorICAgICAgICAgICAgICAoaHQtc2l6
ZSEgaHQgY2FwYWNpdHkpKSkpCisgICAgICBodCkpKQorCisoZGVmaW5lKiAoaGFzaC10YWJsZS11
bmZvbGQgc3RvcD8gbWFwcGVyIHN1Y2Nlc3NvciBzZWVkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICM6a2V5IChtdXRhYmxlICN0KSAod2Vha25lc3MgI2YpIChjYXBhY2l0eSAxKSAjOnJl
c3QgYXJncykKKyAgIlJldHVybnMgYSBuZXcgaGFzaCB0YWJsZSBjcmVhdGVkIGJ5IE1BS0UtSEFT
SC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRzLiBJZiB0aGUgcmVzdWx0IG9mIGFwcGx5
aW5nIHRoZSBwcmVkaWNhdGUgU1RPUD8gdG8gU0VFRCBpcwordHJ1ZSwgcmV0dXJucyB0aGUgaGFz
aCB0YWJsZS4gT3RoZXJ3aXNlLCBhcHBseSB0aGUgcHJvY2VkdXJlIE1BUFBFUiB0bworU0VFRC4g
TUFQUEVSIHJldHVybnMgdHdvIHZhbHVlcywgd2hpY2ggYXJlIGluc2VydGVkIGludG8gdGhlIGhh
c2ggdGFibGUKK2FzIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZSByZXNwZWN0aXZlbHkuIFRoZW4gZ2V0
IGEgbmV3IHNlZWQgYnkgYXBwbHlpbmcKK3RoZSBwcm9jZWR1cmUgU1VDQ0VTU09SIHRvIFNFRUQs
IGFuZCByZXBlYXQgdGhpcyBhbGdvcml0aG0uIgorICAobGV0ICgocmVzdWx0ICglbWFrZS1oYXNo
LXRhYmxlIGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXRhYmxlIGNhcGFjaXR5IHdlYWtuZXNzKSkpCisgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgcmVzdWx0CisgICAgICAoaWYgKGh0LXdlYWtuZXNz
IHJlc3VsdCkKKyAgICAgICAgICAobGV0IGxvb3AgKChzZWVkIHNlZWQpKQorICAgICAgICAgICAg
KGlmIChzdG9wPyBzZWVkKQorICAgICAgICAgICAgICAgIHJlc3VsdAorICAgICAgICAgICAgICAg
IChyZWNlaXZlIChrZXkgdmFsKSAobWFwcGVyIHNlZWQpCisgICAgICAgICAgICAgICAgICAoaGFz
aHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgKGxvb3Ag
KHN1Y2Nlc3NvciBzZWVkKSkpKSkKKyAgICAgICAgICAobGV0ICgoc2l6ZSAoaHQtc2l6ZSByZXN1
bHQpKSkKKyAgICAgICAgICAgIChsZXQgbG9vcCAoKHNlZWQgc2VlZCkpCisgICAgICAgICAgICAg
IChpZiAoc3RvcD8gc2VlZCkKKyAgICAgICAgICAgICAgICAgIHJlc3VsdAorICAgICAgICAgICAg
ICAgICAgKHJlY2VpdmUgKGtleSB2YWwpIChtYXBwZXIgc2VlZCkKKyAgICAgICAgICAgICAgICAg
ICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRsZSEgaCBhIHJlYWwtdGFibGUga2V5
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5z
cGVjaWZpZWQgKGNkciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBz
aXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUg
dmFsKSkKKyAgICAgICAgICAgICAgICAgICAgKGxvb3AgKHN1Y2Nlc3NvciBzZWVkKSkpKSkKKyAg
ICAgICAgICAgIChodC1zaXplISByZXN1bHQgc2l6ZSkpKSkKKyAgICByZXN1bHQpKQorCisoZGVm
aW5lKiAoYWxpc3QtPmhhc2gtdGFibGUgYWxpc3QgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlv
bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6a2V5IChtdXRhYmxlICN0KSAoY2FwYWNp
dHkgKGxlbmd0aCBhbGlzdCkpICh3ZWFrbmVzcyAjZikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOnJlc3QgYXJncykKKyAgIlJldHVybnMgYSBuZXcgaGFzaC10YWJsZSBjcmVhdGVkIGJ5
IE1BS0UtSEFTSC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRzLiBJdCBpcyBpbml0aWFs
aXplZCBmcm9tIHRoZSBhc3NvY2lhdGlvbnMgb2YgYWxpc3QuCitBc3NvY2lhdGlvbnMgZWFybGll
ciBpbiB0aGUgbGlzdCB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aG9zZSB0aGF0Citjb21lIGxhdGVy
LiIKKyAgKGxldCAoKHJlc3VsdCAoJW1ha2UtaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbiBoYXNo
LWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBh
Y2l0eSB3ZWFrbmVzcykpKQorICAgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUp
IHJlc3VsdAorICAgICAgKGlmIChodC13ZWFrbmVzcyByZXN1bHQpCisgICAgICAgICAgKGZvci1l
YWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaCBh
IHJlYWwtdGFibGUgKGNhciBwYWlyKSAoY2RyIHBhaXIpKSkKKyAgICAgICAgICAgICAgICAgICAg
KHJldmVyc2UgYWxpc3QpKQorICAgICAgICAgIChsZXQgKChzaXplIChodC1zaXplIHJlc3VsdCkp
KQorICAgICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlIQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJlYWwtdGFibGUgKGNhciBwYWlyKSBodC11
bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXE/IGh0LXVu
c3BlY2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0
ISBzaXplICgrIDEgc2l6ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIh
IGhhbmRsZSAoY2RyIHBhaXIpKSkpKQorICAgICAgICAgICAgICAgICAgICAgIGFsaXN0KQorICAg
ICAgICAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKSkpKQorICAgIHJlc3VsdCkpCisKKwwKKzs7
OzsgQWNjZXNzaW5nIHRhYmxlIGl0ZW1zCisKKyhkZWZpbmUqIChoYXNoLXRhYmxlLXJlZiBodCBr
ZXkgIzpvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsdXJlIChsYW1iZGEg
KCkgKGVycm9yICJLZXkgbm90IGluIHRhYmxlIiBrZXkgaHQpKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBzdWNjZXNzKQorICAiRXh0cmFjdHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gS0VZ
IGluIEhULCBpbnZva2VzIHRoZSBwcm9jZWR1cmUKK1NVQ0NFU1Mgb24gaXQsIGFuZCByZXR1cm5z
IGl0cyByZXN1bHQ7IGlmIFNVQ0NFU1MgaXMgbm90IHByb3ZpZGVkLCB0aGVuCit0aGUgdmFsdWUg
aXRzZWxmIGlzIHJldHVybmVkLiBJZiBrZXkgaXMgbm90IGNvbnRhaW5lZCBpbiBoYXNoLXRhYmxl
IGFuZAorRkFJTFVSRSBpcyBzdXBwbGllZCwgdGhlbiBGQUlMVVJFIGlzIGludm9rZWQgb24gbm8g
YXJndW1lbnRzIGFuZCBpdHMKK3Jlc3VsdCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlLCBhbiBlcnJv
ciBpcyBzaWduYWxlZC4iCisgIChsZXQgKChyZXN1bHQgKGhhc2h4LWludm9rZSBoYXNoeC1yZWYg
aHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgcmVz
dWx0KQorICAgICAgICAoZmFpbHVyZSkKKyAgICAgICAgKGlmIHN1Y2Nlc3MgKHN1Y2Nlc3MgcmVz
dWx0KSByZXN1bHQpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQga2V5
IGRlZmF1bHQpCisgICJMb29rdXBzIEtFWSBpbiBIVCBhbmQgcmV0dXJucyB0aGUgYXNzb2NpYXRl
ZCB2YWx1ZS4gUmV0dXJucyBERUZBVUxUIGlmCitLRVkgaXNuJ3QgcHJlc2VudC4iCisgIChoYXNo
eC1pbnZva2UgaGFzaHgtcmVmIGh0IGtleSBkZWZhdWx0KSkKKworDAorOzs7IFByZWRpY2F0ZXMu
CisKKzs7IChkZWZpbmUgKGhhc2gtdGFibGU/IG9iaikpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUt
ZW1wdHk/IGh0KQorICAiUmV0dXJucyB3aGV0aGVyIEtFWSBpcyBlbXB0eS4iCisgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAoY2FsbC9jYyAobGFtYmRhIChleGl0KQorICAgICAgICAgICAg
ICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKSAoZXhpdCAjZikpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0KSkKKyAgICAgICAgICAg
ICAgICAgI3QpKQorICAgICAgKHplcm8/IChodC1zaXplIGh0KSkpKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWNvbnRhaW5zPyBodCBrZXkpCisgICJSZXR1cm4gd2hldGhlciBLRVkgaXMgYSBrZXkg
aW4gSFQuIgorICAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQgKGhhc2h4LWludm9rZSBoYXNoeC1y
ZWYgaHQga2V5IGh0LXVuc3BlY2lmaWVkKSkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlPT8gdmFs
PT8gaHQxIGh0MikKKyAgIlJldHVybnMgI3QgaWYgdGhlIGhhc2ggdGFibGVzIEhUMSBhbmQgSFQy
IGhhdmUgdGhlIHNhbWUga2V5cyAoaW4gdGhlCitzZW5zZSBvZiB0aGVpciBjb21tb24gZXF1YWxp
dHkgcHJlZGljYXRlKSBhbmQgZWFjaCBrZXkgaGFzIHRoZSBzYW1lCit2YWx1ZSAoaW4gdGhlIHNl
bnNlIG9mIFZBTD0/KSwgYW5kICNmIG90aGVyd2lzZS4iCisgIChsZXQgKChuMSAoaGFzaC10YWJs
ZS1zaXplIGh0MSkpCisgICAgICAgIChuMiAoaGFzaC10YWJsZS1zaXplIGh0MikpKQorICAgIChh
bmQgKD0gbjEgbjIpCisgICAgICAgICAoZXE/IChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uIGh0MSkKKyAgICAgICAgICAgICAgKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24g
aHQyKSkKKyAgICAgICAgIChyZWNlaXZlIChrZXlzIHZhbHMpIChoYXNoLXRhYmxlLWVudHJpZXMg
aHQxKQorICAgICAgICAgICAoZXZlcnkgKGxhbWJkYSAoa2V5IHZhbDEpCisgICAgICAgICAgICAg
ICAgICAgIChhbmQgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0MiBrZXkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgKHZhbD0/IHZhbDEgKGhhc2gtdGFibGUtcmVmIGh0MiBrZXkpKSkpCisgICAg
ICAgICAgICAgICAgICBrZXlzIHZhbHMpKSkpKQorCisMCis7OzsgTXV0YXRvcnMuCisKKyhkZWZp
bmUgKGhhc2gtdGFibGUtc2V0LXNpbmdsZSEgaHQga2V5IHZhbCkKKyAgIklmIEhUIGlzIGltbXV0
YWJsZSwgYW4gZXJyb3IgaXMgc2lnbmFsZWQuIE90aGVyd2lzZSwgYSBuZXcKK2Fzc29jaWF0aW9u
IGlzIGNyZWF0ZWQgYmV0d2VlbiBLRVkgYW5kIFZBTC4gSWYgdGhlcmUgaXMgYSBwcmV2aW91cwor
YXNzb2NpYXRpb24gZm9yIEtFWSwgaXQgaXMgZGVsZXRlZC4iCisgIChhc3NlcnQtbXV0YWJsZSBo
dCkKKyAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0
LXdlYWtuZXNzIGh0KQorICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFs
KQorICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlIQorICAgICAgICAg
ICAgICAgICAgICAgICBoIGEgcmVhbC10YWJsZSBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAg
aHQtdW5zcGVjaWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2Ry
IGhhbmRsZSkpCisgICAgICAgICAgICAgIChodC1zaXplISBodCAoKyAxIChodC1zaXplIGh0KSkp
KQorICAgICAgICAgIChzZXQtY2RyISBoYW5kbGUgdmFsKSkpKSkKKworKGRlZmluZSogKGhhc2gt
dGFibGUtc2V0ISBodCAjOm9wdGlvbmFsIChrZXkxIGh0LXVuc3BlY2lmaWVkKSAodmFsMSBodC11
bnNwZWNpZmllZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIzpyZXN0IGFyZ3MpCisgICJJ
ZiBIVCBpcyBpbW11dGFibGUsIGFuIGVycm9yIGlzIHNpZ25hbGVkLiBPdGhlcndpc2UsIHJlcGVh
dGVkbHkKK211dGF0ZXMgdGhlIGhhc2ggdGFibGUgSFQsIGNyZWF0aW5nIG5ldyBhc3NvY2lhdGlv
bnMgaW4gaXQgYnkgcHJvY2Vzc2luZwordGhlIGFyZ3VtZW50cyBmcm9tIGxlZnQgdG8gcmlnaHQu
IFRoZSBBUkdTIGFsdGVybmF0ZSBiZXR3ZWVuIGtleXMgYW5kCit2YWx1ZXMuIFdoZW5ldmVyIHRo
ZXJlIGlzIGEgcHJldmlvdXMgYXNzb2NpYXRpb24gZm9yIGEga2V5LCBpdCBpcworZGVsZXRlZC4i
CisgIChpZiAobnVsbD8gYXJncykKKyAgICAgIChpZiAoZXE/IHZhbDEgaHQtdW5zcGVjaWZpZWQp
CisgICAgICAgICAgKGlmIChlcT8ga2V5MSBodC11bnNwZWNpZmllZCkKKyAgICAgICAgICAgICAg
OzsgSWYgb25lIGNhbGxzIChoYXNoLXRhYmxlLXNldCEgaHQpIHdpdGggYW4KKyAgICAgICAgICAg
ICAgOzsgaW1tdXRhYmxlIGhhc2ggdGFibGUsIHNvbWV0aGluZyBpcyByZWFsbHkgd3JvbmcuCisg
ICAgICAgICAgICAgIChhc3NlcnQtbXV0YWJsZSBodCkKKyAgICAgICAgICAgICAgKGVycm9yICJO
byB2YWx1ZSBwcm92aWRlZCBmb3Iga2V5IiBrZXkxKSkKKyAgICAgICAgICAoaGFzaC10YWJsZS1z
ZXQtc2luZ2xlISBodCBrZXkxIHZhbDEpKQorICAgICAgKGJlZ2luCisgICAgICAgIChhc3NlcnQt
bXV0YWJsZSBodCkKKyAgICAgICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkg
aHQKKyAgICAgICAgICAobGV0ICgoc2V0LW9uZSEgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRs
ZSEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJl
YWwtdGFibGUga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGlmIChlcT8gaHQtdW5zcGVjaWZpZWQgKGNkciBoYW5kbGUpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIHZhbCkpKSkp
KQorICAgICAgICAgICAgKHNldC1vbmUhIGtleTEgdmFsMSkKKyAgICAgICAgICAgIChsZXQgbG9v
cCAoKGt2cyBhcmdzKSkKKyAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICgobnVs
bD8ga3ZzKSAqdW5zcGVjaWZpZWQqKQorICAgICAgICAgICAgICAgKChudWxsPyAoY2RyIGt2cykp
CisgICAgICAgICAgICAgICAgKGVycm9yICJPZGQgbnVtYmVyIG9mIGtleS12YWx1ZSBwYWlycyIK
KyAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMqIGtleTEgdmFsMSBhcmdzKSkpCisgICAgICAg
ICAgICAgICAoZWxzZSAoc2V0LW9uZSEgKGNhciBrdnMpIChjYWRyIGt2cykpCisgICAgICAgICAg
ICAgICAgICAgICAobG9vcCAoY2RkciBrdnMpKSkpKSkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFi
bGUtZGVsZXRlLXNpbmdsZSEgaHQga2V5KQorICAiRGVsZXRlcyBLRVkgYW5kIGFzc29jaWF0ZWQg
dmFsdWUgaW4gaGFzaCB0YWJsZSBIVC4gUmV0dXJucyAjdCBpZiBLRVkKK2hhZCBhbiBhc3NvY2lh
dGlvbiBhbmQgI2Ygb3RoZXJ3aXNlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAod2l0aC1o
YXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChpZiAoZXE/IGh0LXVuc3BlY2lm
aWVkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5IGh0LXVuc3BlY2lmaWVkKSkKKyAgICAg
ICAgI2YKKyAgICAgICAgKGJlZ2luIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkK
KyAgICAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgMSkpCisgICAgICAg
ICAgICAgICAjdCkpKSkKKworKGRlZmluZSogKGhhc2gtdGFibGUtZGVsZXRlISBodCAjOm9wdGlv
bmFsIChrZXkxIGh0LXVuc3BlY2lmaWVkKSAjOnJlc3Qga2V5cykKKyAgIkRlbGV0ZXMgYW55IGFz
c29jaWF0aW9uIHRvIGVhY2gga2V5IGluIGhhc2ggdGFibGUgSFQgYW5kIHJldHVybnMgdGhlCitu
dW1iZXIgb2Yga2V5cyB0aGF0IGhhZCBhc3NvY2lhdGlvbnMuIgorICAoaWYgKG51bGw/IGtleXMp
CisgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCBrZXkxKQorICAgICAgICAgIChiZWdpbiAo
YXNzZXJ0LW11dGFibGUgaHQpIDApCisgICAgICAgICAgKGlmIChoYXNoLXRhYmxlLWRlbGV0ZS1z
aW5nbGUhIGh0IGtleTEpIDEgMCkpCisgICAgICAoYmVnaW4KKyAgICAgICAgKGFzc2VydC1tdXRh
YmxlIGh0KQorICAgICAgICAobGV0KiAoKGNvdW50IDApCisgICAgICAgICAgICAgICAoZGVsZXRl
LW9uZSEgKGxhbWJkYSAoa2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGgt
aGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHdoZW4gKG5vdCAoZXE/IGh0LXVuc3BlY2lmaWVkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtcmVmIGggYSByZWFsLXRhYmxl
IGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZXQhIGNvdW50ICgrIDEgY291bnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkpKSkpKQorICAgICAgICAg
IChkZWxldGUtb25lISBrZXkxKQorICAgICAgICAgIChmb3ItZWFjaCBkZWxldGUtb25lISBrZXlz
KQorICAgICAgICAgICh1bmxlc3MgKG9yIChodC13ZWFrbmVzcyBodCkgKHplcm8/IGNvdW50KSkK
KyAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgY291bnQpKSkKKyAgICAg
ICAgICBjb3VudCkpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0IGtleSBmYWls
dXJlKQorICAiRWZmZWN0aXZlbHkgaW52b2tlcyBIQVNILVRBQkxFLVJFRiB3aXRoIHRoZSBnaXZl
biBhcmd1bWVudHMgYW5kCityZXR1cm5zIHdoYXQgaXQgcmV0dXJucy4gSWYgS0VZIHdhcyBub3Qg
Zm91bmQgaW4gaGFzaC10YWJsZSwgaXRzIHZhbHVlCitpcyBzZXQgdG8gdGhlIHJlc3VsdCBvZiBj
YWxsaW5nIEZBSUxVUkUgYW5kIHRoZSBuZXcgdmFsdWUgaXMgcmV0dXJuZWQuIgorICAoYXNzZXJ0
LW11dGFibGUgaHQpCisgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0Cisg
ICAgKGlmIChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgOzsgU2VwYXJhdGUgdGhlIGNhc2Ugd2hl
cmUgaHQgaXMgd2VhayAtIGRvbid0IHVzZSBoYW5kbGUKKyAgICAgICAgKGxldCogKCh2YWx1ZSAo
aGFzaHgtcmVmIGggYSByZWFsLXRhYmxlIGtleSBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAg
IChjb25kICgoZXE/IGh0LXVuc3BlY2lmaWVkIHZhbHVlKQorICAgICAgICAgICAgICAgICAobGV0
ICgodmFsdWUgKGZhaWx1cmUpKSkKKyAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEg
cmVhbC10YWJsZSBrZXkgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgdmFsdWUpKQorICAgICAg
ICAgICAgICAgIChlbHNlIHZhbHVlKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAgICAgICAg
ICAgICAgIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkp
CisgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQor
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAoZmFpbHVyZSkpKSkKKyAgICAg
ICAgICAoY2RyIGhhbmRsZSkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtaW50ZXJuIS9kZWZh
dWx0IGh0IGtleSBkZWZhdWx0KQorICAiRWZmZWN0aXZlbHkgaW52b2tlcyBIQVNILVRBQkxFLVJF
RiB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMgYW5kCityZXR1cm5zIHdoYXQgaXQgcmV0dXJucy4g
SWYgS0VZIHdhcyBub3QgZm91bmQgaW4gaGFzaC10YWJsZSwgaXRzIHZhbHVlCitpcyBzZXQgdG8g
REVGQVVMVCBhbmQgREVGQVVMVCBpcyByZXR1cm5lZC4iCisgIChhc3NlcnQtbXV0YWJsZSBodCkK
KyAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0LXdl
YWtuZXNzIGh0KQorICAgICAgICA7OyBTZXBhcmF0ZSB0aGUgY2FzZSB3aGVyZSBodCBpcyB3ZWFr
IC0gZG9uJ3QgdXNlIGhhbmRsZQorICAgICAgICAobGV0KiAoKHZhbHVlIChoYXNoeC1yZWYgaCBh
IHJlYWwtdGFibGUga2V5IGh0LXVuc3BlY2lmaWVkKSkpCisgICAgICAgICAgKGNvbmQgKChlcT8g
aHQtdW5zcGVjaWZpZWQgdmFsdWUpCisgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQhIGggYSBy
ZWFsLXRhYmxlIGtleSBkZWZhdWx0KQorICAgICAgICAgICAgICAgICBkZWZhdWx0KQorICAgICAg
ICAgICAgICAgIChlbHNlIHZhbHVlKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUKKyAgICAgICAg
ICAgICAgIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVj
aWZpZWQpKSkKKyAgICAgICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkp
CisgICAgICAgICAgICAgIChiZWdpbiAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQor
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSBkZWZhdWx0KSkpCisgICAgICAg
ICAgKGNkciBoYW5kbGUpKSkpKQorCisoZGVmaW5lKiAoaGFzaC10YWJsZS11cGRhdGUhIGh0IGtl
eSB1cGRhdGVyICM6b3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWx1
cmUgKGxhbWJkYSAoKSAoZXJyb3IgIktleSBub3QgaW4gdGFibGUiIGtleSBodCkpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKQorICAiU2VtYW50aWNhbGx5IGVxdWl2YWxl
bnQgdG8sIGJ1dCBtYXkgYmUgbW9yZSBlZmZpY2llbnQgdGhhbiwgdGhlCisgZm9sbG93aW5nIGNv
ZGU6CisgKEhBU0gtVEFCTEUtU0VUISBIVCBLRVkgKFVQREFURVIgKEhBU0gtVEFCTEUtUkVGIEhU
IEtFWSBbRkFJTFVSRSBbU1VDQ0VTU11dKSkpCisKK1NpZ25hbHMgYW4gZXJyb3IgaWYgSFQgaXMg
aW1tdXRhYmxlLiBPdGhlcndpc2UsIGlmIEtFWSBpcyBmb3VuZCBpbiBoYXNoCit0YWJsZSBIVCwg
aXRzIGFzc29jaWF0ZWQgVkFMVUUgaXMgc2V0IHRvIChVUERBVEVSIChTVUNDRVNTIFZBTFVFKSks
CitvciAoVVBEQVRFUiBWQUxVRSkgaWYgU1VDQ0VTUyBpc24ndCBwcm92aWRlZC4gSWYgS0VZIGlz
IG5vdCBmb3VuZCwgc2V0cwordGhlIG5ldyB2YWx1ZSB0byB0aGUgcmVzdWx0IG9mIChVUERBVEVS
IChGQUlMVVJFKSkgaWYgRkFJTFVSRSBpcworcHJvdmlkZWQsIG9yIHNpZ25hbHMgYW4gZXJyb3Ig
b3RoZXJ3aXNlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAod2l0aC1oYXNoeC12YWx1ZXMg
KGggYSByZWFsLXRhYmxlKSBodAorICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAgIDs7
IFNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2UgaGFuZGxlCisg
ICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5IGh0LXVuc3Bl
Y2lmaWVkKSkKKyAgICAgICAgICAgICAgIChuZXcgKHVwZGF0ZXIgKGlmIChlcT8gb2xkIGh0LXVu
c3BlY2lmaWVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWx1cmUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgc3VjY2VzcyAoc3VjY2VzcyBvbGQp
IG9sZCkpKSkpCisgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUga2V5IG5ldykp
CisgICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWdldC1oYW5kbGUgaCBhIHJlYWwtdGFibGUg
a2V5KSkpCisgICAgICAgICAgKGNvbmQgKGhhbmRsZQorICAgICAgICAgICAgICAgICAobGV0KiAo
KG9sZCAoY2RyIGhhbmRsZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAobmV3ICh1cGRhdGVy
IChpZiBzdWNjZXNzIChzdWNjZXNzIG9sZCkgb2xkKSkpKQorICAgICAgICAgICAgICAgICAgIChz
ZXQtY2RyISBoYW5kbGUgbmV3KSkpCisgICAgICAgICAgICAgICAgKGVsc2UKKyAgICAgICAgICAg
ICAgICAgKGxldCAoKG5ldyAodXBkYXRlciAoZmFpbHVyZSkpKSkKKyAgICAgICAgICAgICAgICAg
ICAoaHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQorICAgICAgICAgICAgICAgICAgICho
YXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSBuZXcpKSkpKSkpCisgICp1bnNwZWNpZmllZCop
CisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGh0IGtleSB1cGRhdGVyIGRl
ZmF1bHQpCisgICJTZW1hbnRpY2FsbHkgZXF1aXZhbGVudCB0bywgYnV0IG1heSBiZSBtb3JlIGVm
ZmljaWVudCB0aGFuLCB0aGUKK2ZvbGxvd2luZyBjb2RlOgorIChIQVNILVRBQkxFLVNFVCEgSFQg
S0VZIChVUERBVEVSIChIQVNILVRBQkxFLVJFRi9ERUZBVUxUIEhUIEtFWSBERUZBVUxUKSkpCisK
K1NpZ25hbHMgYW4gZXJyb3IgaWYgSFQgaXMgaW1tdXRhYmxlLiBPdGhlcndpc2UsIG1vZGlmaWVz
IEhUJ3MgdmFsdWUgYXQKK0tFWSBieSBwYXNzaW5nIGl0cyBvbGQgdmFsdWUsIG9yIERFRkFVTFQg
aWYgaXQgZG9lc24ndCBoYXZlIG9uZSwgdG8KK1VQREFURVIsIGFuZCBzZXR0aW5nIGl0IHRvIHRo
ZSByZXN1bHQgdGhlcmVvZi4iCisgIChhc3NlcnQtbXV0YWJsZSBodCkKKyAgKHdpdGgtaGFzaHgt
dmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAg
ICAgICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1
c2UgaGFuZGxlCisgICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUg
a2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkg
KHVwZGF0ZXIgb2xkKSkpCisgICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5k
bGUhIGggYSByZWFsLXRhYmxlIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQorICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3Bl
Y2lmaWVkIChjZHIgaGFuZGxlKSkKKyAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAo
KyAxIChodC1zaXplIGh0KSkpCisgICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxl
ICh1cGRhdGVyIGRlZmF1bHQpKSkKKyAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAodXBk
YXRlciAoY2RyIGhhbmRsZSkpKSkpKSkKKyAgKnVuc3BlY2lmaWVkKikKKworKGRlZmluZSAoaGFz
aC10YWJsZS1wb3AhIGh0KQorICAiU2lnbmFscyBhbiBlcnJvciBpZiBIVCBpcyBpbW11dGFibGUg
b3IgZW1wdHkuIE90aGVyd2lzZSwgY2hvb3NlcyBhbgorYXJiaXRyYXJ5IGFzc29jaWF0aW9uIGZy
b20gaGFzaC10YWJsZSBhbmQgcmVtb3ZlcyBpdCwgcmV0dXJuaW5nIHRoZSBrZXkKK2FuZCB2YWx1
ZSBhcyB0d28gdmFsdWVzLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAoY2FsbC9jYworICAg
KGxhbWJkYSAocmV0dXJuKQorICAgICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxl
KSBodAorICAgICAgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleSB2YWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChoYXNoeC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICh1bmxlc3MgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQgKC0gKGh0LXNpemUgaHQpIDEpKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIChyZXR1cm4ga2V5IHZhbHVlKSkKKyAgICAgICAgICAgICAgICAgICAg
ICByZWFsLXRhYmxlKSkKKyAgICAgKGVycm9yICJIYXNoIHRhYmxlIGlzIGVtcHR5IiBodCkpKSkK
KworKGRlZmluZSogKGhhc2gtdGFibGUtY2xlYXIhIGh0ICM6b3B0aW9uYWwgY2FwYWNpdHkpCisg
ICJEZWxldGVzIGFsbCBhc3NvY2lhdGlvbnMgZnJvbSBIVC4iCisgIChhc3NlcnQtbXV0YWJsZSBo
dCkKKyAgKGlmIGNhcGFjaXR5CisgICAgICAoaHQtcmVhbC10YWJsZSEgaHQgKChndWlsZS1odC1j
dG9yIChodC13ZWFrbmVzcyBodCkpIGNhcGFjaXR5KSkKKyAgICAgIChoYXNoLWNsZWFyISAoaHQt
cmVhbC10YWJsZSBodCkpKQorICAoaHQtc2l6ZSEgaHQgMCkKKyAgKnVuc3BlY2lmaWVkKikKKwor
DAorOzsgVGhlIHdob2xlIGhhc2ggdGFibGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtc2l6ZSBo
dCkKKyAgIlJldHVybnMgdGhlIG51bWJlciBvZiBhc3NvY2lhdGlvbnMgaW4gSFQuIFRoaXMgaXMg
Z3VhcmFudGVlZCBPKDEpIGZvcgordGFibGVzIHdoZXJlICM6V0VBS05FU1MgaXMgI2YuIgorICAo
aWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGFu
cykgKCsgMSBhbnMpKQorICAgICAgICAgICAgICAgICAwIChodC1yZWFsLXRhYmxlIGh0KSkKKyAg
ICAgIChodC1zaXplIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKKyAgIlJl
dHVybnMgYSBsaXN0IG9mIHRoZSBrZXlzIGluIEhULiIKKyAgKGhhc2gtZm9sZCAobGFtYmRhIChr
ZXkgdmFsIGxzdCkgKGNvbnMga2V5IGxzdCkpCisgICAgICAgICAgICAgJygpIChodC1yZWFsLXRh
YmxlIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdmFsdWVzIGh0KQorICAiUmV0dXJucyBh
IGxpc3Qgb2YgdGhlIHZhbHVlcyBpbiBIVC4iCisgIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5IHZh
bCBsc3QpIChjb25zIHZhbCBsc3QpKQorICAgICAgICAgICAgICcoKSAoaHQtcmVhbC10YWJsZSBo
dCkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWVudHJpZXMgaHQpCisgICJSZXR1cm5zIHR3byB2
YWx1ZXM6IGEgbGlzdCBvZiB0aGUga2V5cyBhbmQgYSBsaXN0IG9mIHRoZSBhc3NvY2lhdGVkCit2
YWx1ZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgb3JkZXIuIgorICAobGV0ICgoa2V5cyAnKCkpICh2
YWxzICcoKSkpCisgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgIChzZXQhIGtleXMgKGNvbnMga2V5IGtleXMpKQorICAgICAgICAgICAgICAg
ICAgICAgKHNldCEgdmFscyAoY29ucyB2YWwgdmFscykpKQorICAgICAgICAgICAgICAgICAgICho
dC1yZWFsLXRhYmxlIGh0KSkKKyAgICAodmFsdWVzIGtleXMgdmFscykpKQorCis7OzsgSW4gYSBu
b24td2VhayBoYXNoIHRhYmxlLCB3ZSBrbm93IHRoZSBzaXplIHRoYXQgdGhlIGtleS92YWx1ZSB2
ZWN0b3IKKzs7OyB3aWxsIGhhdmUuIEluIGEgd2VhayBoYXNoIHRhYmxlLCB3ZSBoYXZlIHRvIGl0
ZXJhdGUgdGhyb3cKKzs7OyBhc3NvY2lhdGlvbnMgb2YgdGhlIGhhc2ggdGFibGUgdG8gY29tcHV0
ZSBpdHMgc2l6ZSwgc28gaXQgaXMgZWFzaWVyCis7OzsgdG8gc2ltcGx5IGNhbGwgSEFTSC1UQUJM
RS1LRVlTL0hBU0gtVEFCTEUtVkFMVUVTLgorKGRlZmluZSAoaGFzaC10YWJsZS1rZXktdmVjdG9y
IGh0KQorICAiUmV0dXJucyBhIHZlY3RvciBvZiB0aGUga2V5cyBpbiBIVC4iCisgIChpZiAoaHQt
d2Vha25lc3MgaHQpCisgICAgICAobGlzdC0+dmVjdG9yIChoYXNoLXRhYmxlLWtleXMgaHQpKQor
ICAgICAgKGxldCogKChsZW4gKGh0LXNpemUgaHQpKQorICAgICAgICAgICAgIChrZXlzIChtYWtl
LXZlY3RvciBsZW4pKSkKKyAgICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGkpCisg
ICAgICAgICAgICAgICAgICAgICAodmVjdG9yLXNldCEga2V5cyBpIGtleSkKKyAgICAgICAgICAg
ICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJsZSBo
dCkpCisgICAgICAgIGtleXMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS12YWx1ZS12ZWN0b3Ig
aHQpCisgICJSZXR1cm5zIGEgdmVjdG9yIG9mIHRoZSB2YWx1ZXMgaW4gSFQuIgorICAoaWYgKGh0
LXdlYWtuZXNzIGh0KQorICAgICAgKGxpc3QtPnZlY3RvciAoaGFzaC10YWJsZS12YWx1ZXMgaHQp
KQorICAgICAgKGxldCogKChsZW4gKGh0LXNpemUgaHQpKQorICAgICAgICAgICAgICh2YWxzICht
YWtlLXZlY3RvciBsZW4pKSkKKyAgICAgICAgKGhhc2gtZm9sZCAobGFtYmRhIChrZXkgdmFsIGkp
CisgICAgICAgICAgICAgICAgICAgICAodmVjdG9yLXNldCEgdmFscyBpIHZhbCkKKyAgICAgICAg
ICAgICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJs
ZSBodCkpCisgICAgICAgIHZhbHMpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1lbnRyeS12ZWN0
b3JzIGh0KQorICAiUmV0dXJucyB0d28gdmFsdWVzOiBhIHZlY3RvciBvZiB0aGUga2V5cyBhbmQg
YSB2ZWN0b3Igb2YgdGhlCithc3NvY2lhdGVkIHZhbHVlcyBpbiB0aGUgY29ycmVzcG9uZGluZyBv
cmRlci4iCisgIChpZiAoaHQtd2Vha25lc3MgaHQpCisgICAgICAocmVjZWl2ZSAoa2V5cyB2YWxz
KSAoaGFzaC10YWJsZS1lbnRyaWVzIGh0KQorICAgICAgICAodmFsdWVzIChsaXN0LT52ZWN0b3Ig
a2V5cykgKGxpc3QtPnZlY3RvciB2YWxzKSkpCisgICAgICAobGV0KiAoKGxlbiAoaHQtc2l6ZSBo
dCkpCisgICAgICAgICAgICAgKGtleXMgKG1ha2UtdmVjdG9yIGxlbikpCisgICAgICAgICAgICAg
KHZhbHMgKG1ha2UtdmVjdG9yIGxlbikpKQorICAgICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGtl
eSB2YWwgaSkKKyAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQor
ICAgICAgICAgICAgICAgICAgICAgKHZlY3Rvci1zZXQhIHZhbHMgaSB2YWwpCisgICAgICAgICAg
ICAgICAgICAgICAoKyBpIDEpKQorICAgICAgICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUg
aHQpKQorICAgICAgICAodmFsdWVzIGtleXMgdmFscykpKSkKKworKGRlZmluZSAoaGFzaC10YWJs
ZS1maW5kIHByb2MgaHQgZmFpbHVyZSkKKyAgIkZvciBlYWNoIGFzc29jaWF0aW9uIG9mIHRoZSBo
YXNoIHRhYmxlIEhULCBpbnZva2UgUFJPQyBvbiBpdHMga2V5IGFuZAordmFsdWUuIElmIFBST0Mg
cmV0dXJucyB0cnVlLCB0aGVuIEhBU0gtVEFCTEUtRklORCByZXR1cm5zIHdoYXQgUFJPQworcmV0
dXJucy4gSWYgYWxsIHRoZSBjYWxscyB0byBQUk9DIHJldHVybiAjZiwgcmV0dXJucyB0aGUgcmVz
dWx0IG9mCitpbnZva2luZyB0aGUgdGh1bmsgRkFJTFVSRS4iCisgIChjYWxsL2NjIChsYW1iZGEg
KHJldHVybikKKyAgICAgICAgICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKHggKHByb2Mga2V5IHZhbCkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgeCAocmV0dXJuIHgpKSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUgaHQpKQorICAgICAgICAgICAg
IChmYWlsdXJlKSkpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWNvdW50IHByZWQgaHQpCisgICJG
b3IgZWFjaCBhc3NvY2lhdGlvbiBvZiBIVCwgaW52b2tlIFBSRUQgb24gaXRzIGtleSBhbmQgdmFs
dWUuIFJldHVybgordGhlIG51bWJlciBvZiBjYWxscyB0byBQUkVEIHdoaWNoIHJldHVybmVkIHRy
dWUuIgorICAoaGFzaC1mb2xkIChsYW1iZGEgKGtleSB2YWwgbikKKyAgICAgICAgICAgICAgIChp
ZiAocHJlZCBrZXkgdmFsKSAoKyAxIG4pIG4pKQorICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFi
bGUgaHQpKSkKKworDAorOzs7IE1hcHBpbmcgYW5kIGZvbGRpbmcuCisKKyhkZWZpbmUqIChoYXNo
LXRhYmxlLW1hcCBwcm9jIGh0IGVxdWl2LWZ1bmN0aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAjOmtleSAobXV0YWJsZSAjdCkgKGNhcGFjaXR5IChoYXNoLXRhYmxl
LXNpemUgaHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICh3ZWFrbmVzcyAjZikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAjOnJlc3QgYXJncykKKyAgIkNyZWF0ZXMgYSBuZXcgaGFzaCB0
YWJsZSBieSBjYWxsaW5nIE1BS0UtSEFTSC1UQUJMRSB3aXRoIHRoZSBnaXZlbgorYXJndW1lbnRz
LiBBZnRlciBjcmVhdGlvbiwgSEFTSC1UQUJMRS1NQVAgY2FsbHMgUFJPQyBmb3IgZXZlcnkKK2Fz
c29jaWF0aW9uIGluIGhhc2gtdGFibGUgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIGFzc29jaWF0aW9u
LiBUaGUga2V5IG9mCit0aGUgYXNzb2NpYXRpb24gYW5kIHRoZSByZXN1bHQgb2YgaW52b2tpbmcg
UFJPQyBhcmUgZW50ZXJlZCBpbnRvIHRoZSBuZXcKK2hhc2ggdGFibGUsIHdoaWNoIGlzIHRoZW4g
cmV0dXJuZWQuIgorICAobGV0ICgocmVzdWx0ICglbWFrZS1oYXNoLXRhYmxlIGVxdWl2LWZ1bmN0
aW9uIGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRh
YmxlIGNhcGFjaXR5IHdlYWtuZXNzKSkKKyAgICAgICAgKHNpemUgMCkpCisgICAgKHdpdGgtaGFz
aHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgcmVzdWx0CisgICAgICAoaGFzaC1mb3ItZWFjaAor
ICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10
YWJsZSBrZXkgKHByb2MgdmFsKSkKKyAgICAgICAgIChzZXQhIHNpemUgKCsgMSBzaXplKSkpCisg
ICAgICAgKGh0LXJlYWwtdGFibGUgaHQpKSkKKyAgICAoaHQtc2l6ZSEgcmVzdWx0IHNpemUpCisg
ICAgcmVzdWx0KSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1tYXAtPmxpc3QgcHJvYyBodCkKKyAg
IkNhbGxzIFBST0MgZm9yIGV2ZXJ5IGFzc29jaWF0aW9uIGluIEhUIHdpdGggdHdvIGFyZ3VtZW50
czoKK3RoZSBrZXkgb2YgdGhlIGFzc29jaWF0aW9uIGFuZCB0aGUgdmFsdWUgb2YgdGhlIGFzc29j
aWF0aW9uLiBUaGUgdmFsdWVzCityZXR1cm5lZCBieSB0aGUgaW52b2NhdGlvbnMgb2YgUFJPQyBh
cmUgYWNjdW11bGF0ZWQgaW50byBhIGxpc3QsIHdoaWNoCitpcyByZXR1cm5lZC4iCisgIChoYXNo
LW1hcC0+bGlzdCBwcm9jIChodC1yZWFsLXRhYmxlIGh0KSkpCisKKzs7OyBXaXRoIHRoaXMgcGFy
dGljdWxhciBpbXBsZW1lbnRhdGlvbiwgdGhlIHByb2MgY2FuIHNhZmVseSBtdXRhdGUgaHQuCis7
OzsgVGhhdCBwcm9wZXJ0eSBpcyBub3QgZ3VhcmFudGVlZCBieSB0aGUgc3BlY2lmaWNhdGlvbiwg
YnV0IGNhbiBiZQorOzs7IHJlbGllZCB1cG9uIGJ5IHByb2NlZHVyZXMgZGVmaW5lZCBpbiB0aGlz
IGZpbGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtZm9yLWVhY2ggcHJvYyBodCkKKyAgIkNhbGxz
IFBST0Mgd2l0aCBlYWNoIGtleSBhbmQgdmFsdWUgYXMgdHdvIGFyZ3VtZW50cy4gUmV0dXJucyBh
bgordW5zcGVjaWZpZWQgdmFsdWUuIgorICAoaGFzaC1mb3ItZWFjaCBwcm9jIChodC1yZWFsLXRh
YmxlIGh0KSkpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtbWFwISBwcm9jIGh0KQorICAiU2lnbmFs
cyBhbiBlcnJvciBpZiBIVCBpcyBpbW11dGFibGUuIE90aGVyd2lzZSwgY2FsbHMgUFJPQyBmb3Ig
ZXZlcnkKK2Fzc29jaWF0aW9uIGluIEhUIHdpdGggdHdvIGFyZ3VtZW50czogdGhlIGtleSBvZiB0
aGUgYXNzb2NpYXRpb24gYW5kIHRoZQordmFsdWUgb2YgdGhlIGFzc29jaWF0aW9uLiBUaGUgdmFs
dWUgcmV0dXJuZWQgYnkgUFJPQyBpcyB1c2VkIHRvIHVwZGF0ZQordGhlIHZhbHVlIG9mIHRoZSBh
c3NvY2lhdGlvbi4gUmV0dXJuIGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKKyAgKGFzc2VydC1tdXRh
YmxlIGh0KQorICAoaWYgKGh0LXdlYWtuZXNzIGh0KQorICAgICAgKHdpdGgtaGFzaHgtdmFsdWVz
IChoIGEgcmVhbC10YWJsZSkgaHQKKyAgICAgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5
IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJs
ZSBrZXkgKHByb2Mga2V5IHZhbCkpKQorICAgICAgICAgICAgICAgICAgICAgICByZWFsLXRhYmxl
KSkKKyAgICAgIChsZXQgKChyZWFsLXRhYmxlIChodC1yZWFsLXRhYmxlIGh0KSkpCisgICAgICAg
IChoYXNoLWZvci1lYWNoLWhhbmRsZSAobGFtYmRhIChoYW5kbGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsZXQgKChrZXkgKGNhciBoYW5kbGUpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodmFsIChjZHIgaGFuZGxlKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAocHJvYyBrZXkgdmFsKSkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJsZSkpKSkKKworKGRlZmluZSAo
aGFzaC10YWJsZS1mb2xkIHByb2MgaW5pdCBodCkKKyAgIkNhbGxzIFBST0MgZm9yIGV2ZXJ5IGFz
c29jaWF0aW9uIGluIEhUIHdpdGggdGhyZWUgYXJndW1lbnRzOiB0aGUga2V5CitvZiB0aGUgYXNz
b2NpYXRpb24sIHRoZSB2YWx1ZSBvZiB0aGUgYXNzb2NpYXRpb24sIGFuZCBhbiBhY2N1bXVsYXRl
ZAordmFsdWUgVkFMLiBWQUwgaXMgU0VFRCBmb3IgdGhlIGZpcnN0IGludm9jYXRpb24gb2YgcHJv
Y2VkdXJlLCBhbmQgZm9yCitzdWJzZXF1ZW50IGludm9jYXRpb25zIG9mIFBST0MsIHRoZSByZXR1
cm5lZCB2YWx1ZSBvZiB0aGUgcHJldmlvdXMKK2ludm9jYXRpb24uIFRoZSB2YWx1ZSByZXR1cm5l
ZCBieSBIQVNILVRBQkxFLUZPTEQgaXMgdGhlIHJldHVybiB2YWx1ZSBvZgordGhlIGxhc3QgaW52
b2NhdGlvbiBvZiBQUk9DLiIKKyAgKGhhc2gtZm9sZCBwcm9jIGluaXQgKGh0LXJlYWwtdGFibGUg
aHQpKSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1wcnVuZSEgcHJvYyBodCkKKyAgIklmIEhUIGlz
IGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNlLCBjYWxscyBQUk9DIGZvciBl
dmVyeQorYXNzb2NpYXRpb24gaW4gaGFzaC10YWJsZSB3aXRoIHR3byBhcmd1bWVudHMsIHRoZSBr
ZXkgYW5kIHRoZSB2YWx1ZSBvZgordGhlIGFzc29jaWF0aW9uLCBhbmQgcmVtb3ZlcyBhbGwgYXNz
b2NpYXRpb25zIGZyb20gaGFzaC10YWJsZSBmb3Igd2hpY2gKK1BST0MgcmV0dXJucyB0cnVlLiBS
ZXR1cm5zIGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKKyAgKGFzc2VydC1tdXRhYmxlIGh0KQorICAo
d2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChoYXNoLWZvci1lYWNo
IChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAgICAgICAgICAoaWYgKHByb2Mga2V5IHZh
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtcmVtb3ZlISBoIGEgcmVhbC10YWJs
ZSBrZXkpKSkKKyAgICAgICAgICAgICAgICAgICByZWFsLXRhYmxlKSkpCisKKwwKKzs7OyBDb3B5
aW5nIGFuZCBjb252ZXJzaW9uLgorCisoZGVmaW5lKiAoaGFzaC10YWJsZS1jb3B5IGh0ICM6a2V5
IChtdXRhYmxlIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNhcGFjaXR5IChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAod2Vha25lc3MgKGhhc2gtdGFibGUtd2Vha25lc3MgaHQpKSkKKyAgIlJldHVybnMg
YSBuZXdseSBhbGxvY2F0ZWQgaGFzaCB0YWJsZSB3aXRoIHRoZSBhc3NvY2lhdGlvbnMgYXMgSFQg
YW5kCitwcm9wZXJ0aWVzIGFzIGdpdmVuIGJ5IGtleXdvcmQgYXJndW1lbnRzLCB3aGljaCBkZWZh
dWx0IHRvIEhUCitwcm9wZXJ0aWVzLiBJZiBNVVRBQkxFIGlzIHRydWUsIHRoZSBuZXcgaGFzaCB0
YWJsZSBpcyBtdXRhYmxlLAorb3RoZXJ3aXNlLCBpdCBpcyBpbW11dGFibGUuIgorICAod2l0aC1o
YXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAorICAgIChsZXQgKChuZXctcmVhbC10YWJs
ZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNhcGFjaXR5KSkKKyAgICAgICAgICAoc2l6ZSAw
KSkKKyAgICAgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleSB2YWwpCisgICAgICAgICAgICAg
ICAgICAgICAgIChoYXNoeC1zZXQhIGggYSBuZXctcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAg
ICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAg
ICAgICAgcmVhbC10YWJsZSkKKyAgICAgIDs7IEFyZ3VtZW50czogcmVhbC10YWJsZSBoYXNoLWZ1
bmN0aW9uIGFzc29jaWF0b3IKKyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0YWJsZT8g
c2l6ZSBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhhc2gtZnVuY3Rpb24KKyAgICAgIChtYWtl
LWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJsZSBoIGEgd2Vha25lc3MgKGFuZCBtdXRh
YmxlICN0KSBzaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUt
ZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBodCkpKSkpCisKKyhkZWZpbmUqIChoYXNoLXRhYmxl
LWVtcHR5LWNvcHkgaHQgIzprZXkgKG11dGFibGUgI3QpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChjYXBhY2l0eSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
d2Vha25lc3MgKGhhc2gtdGFibGUtd2Vha25lc3MgaHQpKSkKKyAgIlJldHVybnMgYSBuZXdseSBh
bGxvY2F0ZWQgbXV0YWJsZSBoYXNoIHRhYmxlIHdpdGggdGhlIHNhbWUgcHJvcGVydGllcworYXMg
SFQsIGJ1dCB3aXRoIG5vIGFzc29jaWF0aW9ucy4iCisgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBh
IHJlYWwtdGFibGUpIGh0CisgICAgKGxldCAoKG5ldy1yZWFsLXRhYmxlICgoZ3VpbGUtaHQtY3Rv
ciB3ZWFrbmVzcykgY2FwYWNpdHkpKSkKKyAgICAgIDs7IEFyZ3VtZW50czogcmVhbC10YWJsZSBo
YXNoLWZ1bmN0aW9uIGFzc29jaWF0b3IKKyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0
YWJsZT8gc2l6ZSBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhhc2gtZnVuY3Rpb24KKyAgICAg
IChtYWtlLWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJsZSBoIGEgd2Vha25lc3MgKGFu
ZCBtdXRhYmxlICN0KSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFi
bGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBodCkpKSkpCisKKyhkZWZpbmUgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KQorICAiUmV0dXJucyBhbiBhbGlzdCB3aXRoIHRoZSBzYW1lIGFzc29jaWF0
aW9ucyBhcyBoYXNoLXRhYmxlIGluIGFuCit1bnNwZWNpZmllZCBvcmRlci4iCisgIChoYXNoLW1h
cC0+bGlzdCBjb25zIChodC1yZWFsLXRhYmxlIGh0KSkpCisKKwwKKzs7OyBIYXNoIHRhYmxlcyBh
cyBzZXRzLgorCisoZGVmaW5lIChoYXNoLXRhYmxlLXVuaW9uISBodDEgaHQyKQorICAiSWYgSFQx
IGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNlLCBhZGRzIHRoZSBhc3Nv
Y2lhdGlvbnMKK29mIEhUMiB0byBIVDEgYW5kIHJldHVybiBIVDEuIElmIGEga2V5IGFwcGVhcnMg
aW4gYm90aCBoYXNoIHRhYmxlcywgaXRzCit2YWx1ZSBpcyBzZXQgdG8gdGhlIHZhbHVlIGFwcGVh
cmluZyBpbiBIVDEuIgorICAoYXNzZXJ0LW11dGFibGUgaHQxKQorICAoaGFzaC1mb3ItZWFjaCAo
bGFtYmRhIChrZXkyIHZhbDIpCisgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUtaW50ZXJu
IS9kZWZhdWx0IGh0MSBrZXkyIHZhbDIpKQorICAgICAgICAgICAgICAgICAoaHQtcmVhbC10YWJs
ZSBodDIpKQorICBodDEpCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtaW50ZXJzZWN0aW9uISBodDEg
aHQyKQorICAiSWYgSFQxIGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBlcnJvci4gT3RoZXJ3aXNl
LCBkZWxldGVzIHRoZQorYXNzb2NpYXRpb25zIGZyb20gSFQgd2hvc2Uga2V5cyBkb24ndCBhbHNv
IGFwcGVhciBpbiBIVDIgYW5kIHJldHVybnMKK0hUMS4iCisgIChhc3NlcnQtbXV0YWJsZSBodDEp
CisgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleTEgdmFsMSkKKyAgICAgICAgICAgICAgICAg
ICAoaWYgKG5vdCAoaGFzaC10YWJsZS1jb250YWlucz8gaHQyIGtleTEpKQorICAgICAgICAgICAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0MSBrZXkxKSkpCisgICAgICAgICAgICAg
ICAgIChodC1yZWFsLXRhYmxlIGh0MSkpCisgIGh0MSkKKworKGRlZmluZSAoaGFzaC10YWJsZS1k
aWZmZXJlbmNlISBodDEgaHQyKQorICAiSWYgSFQxIGlzIGltbXV0YWJsZSwgc2lnbmFscyBhbiBl
cnJvci4gT3RoZXJ3aXNlLCBkZWxldGVzIHRoZQorYXNzb2NpYXRpb25zIG9mIEhUMSB3aG9zZSBr
ZXlzIGFyZSBhbHNvIHByZXNlbnQgaW4gSFQyIGFuZCByZXR1cm5zIEhUMS4iCisgIChhc3NlcnQt
bXV0YWJsZSBodDEpCisgIChoYXNoLWZvci1lYWNoIChsYW1iZGEgKGtleTEgdmFsMSkKKyAgICAg
ICAgICAgICAgICAgICAoaWYgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0MiBrZXkxKQorICAgICAg
ICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUhIGh0MSBrZXkxKSkpCisgICAgICAg
ICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0MSkpCisgIGh0MSkKKworKGRlZmluZSAoaGFzaC10
YWJsZS14b3IhIGh0MSBodDIpCisgICJJZiBIVDEgaXMgaW1tdXRhYmxlLCBzaWduYWxzIGFuIGVy
cm9yLiBPdGhlcndpc2UsIGRlbGV0ZXMgdGhlCithc3NvY2lhdGlvbnMgb2YgSFQxIHdob3NlIGtl
eXMgYXJlIGFsc28gcHJlc2VudCBpbiBIVDIsIGFuZCB0aGVuIGFkZHMKK3RoZSBhc3NvY2lhdGlv
bnMgb2YgSFQyIHdob3NlIGtleXMgYXJlIG5vdCBwcmVzZW50IGluIEhUMSB0bworSFQxLiBSZXR1
cm5zIEhUMS4iCisgIChhc3NlcnQtbXV0YWJsZSBodDEpCisgIChoYXNoLWZvci1lYWNoIChsYW1i
ZGEgKGtleTIgdmFsMikKKyAgICAgICAgICAgICAgICAgICAoaWYgKGhhc2gtdGFibGUtY29udGFp
bnM/IGh0MSBrZXkyKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1kZWxldGUh
IGh0MSBrZXkyKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1zZXQhIGh0MSBr
ZXkyIHZhbDIpKSkKKyAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUgaHQyKSkKKyAgaHQx
KQorCis7OyBlb2YKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0gYi90ZXN0LXN1
aXRlL01ha2VmaWxlLmFtCmluZGV4IDA5MzRkYmIzNC4uZTE1NDYwMmE3IDEwMDY0NAotLS0gYS90
ZXN0LXN1aXRlL01ha2VmaWxlLmFtCisrKyBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KQEAgLTYz
LDYgKzYzLDcgQEAgU0NNX1RFU1RTID0gdGVzdHMvMDAtaW5pdGlhbC1lbnYudGVzdAkJXAogCSAg
ICB0ZXN0cy9mdHcudGVzdAkJCVwKIAkgICAgdGVzdHMvZnV0dXJlLnRlc3QJCQlcCiAJICAgIHRl
c3RzL2djLnRlc3QJCQlcCisgICAgICAgICAgICB0ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRl
c3QgICAgICBcCiAJICAgIHRlc3RzL2dldG9wdC1sb25nLnRlc3QJCVwKIAkgICAgdGVzdHMvZ29v
cHMudGVzdAkJCVwKIAkgICAgdGVzdHMvZ3VhcmRpYW5zLnRlc3QJCVwKZGlmZiAtLWdpdCBhL3Rl
c3Qtc3VpdGUvdGVzdHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0
cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwLi40OTRjYmY3MGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL2dl
bmVyaWMtaGFzaC10YWJsZXMudGVzdApAQCAtMCwwICsxLDQxNSBAQAorOzs7OyBzcmZpLTY5LnRl
c3QgLS0tIFRlc3Qgc3VpdGUgZm9yIFNSRkkgNjkgLSotIHNjaGVtZSAtKi0KKzs7OzsKKzs7Ozsg
CUNvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsK
Kzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorOzs7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorOzs7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7Ozs7Cis7Ozs7IFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorOzs7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorOzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7OworOzs7OyBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKzs7OzsgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorCisoZGVmaW5lLW1vZHVsZSAodGVz
dC1nZW5lcmljLWhhc2gtdGFibGVzKQorICAjOnVzZS1tb2R1bGUgKHRlc3Qtc3VpdGUgbGliKQor
ICAjOnVzZS1tb2R1bGUgKGljZS05IGdlbmVyaWMtaGFzaC10YWJsZXMpCisgICM6dXNlLW1vZHVs
ZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTgpCisgICM6dXNlLW1v
ZHVsZSAoc3JmaSBzcmZpLTI2KSkKKworKGRlZmluZSAoc3RyaW5nLWNpLWFzc29jLWVxdWFsPyBs
ZWZ0IHJpZ2h0KQorICAiQW5zd2VyIHdoZXRoZXIgTEVGVCBhbmQgUklHSFQgYXJlIGVxdWFsLCBi
ZWluZyBhc3NvY2lhdGlvbnMgb2YKK2Nhc2UtaW5zZW5zaXRpdmUgc3RyaW5ncyB0byBgZXF1YWw/
Jy10ZXN0ZWQgdmFsdWVzLiIKKyAgKGFuZCAoc3RyaW5nLWNpPT8gKGNhciBsZWZ0KSAoY2FyIHJp
Z2h0KSkKKyAgICAgICAoZXF1YWw/IChjZHIgbGVmdCkgKGNkciByaWdodCkpKSkKKworKGRlZmlu
ZS1zeW50YXggd2l0aC1lbHQtaW4tbGlzdAorICAoc3ludGF4LXJ1bGVzICgpCisgICAgKCh3aXRo
LWVsdC1pbi1saXN0IGFyZyBhcmctbGlzdCBleHByIC4uLikKKyAgICAgKGxldCBsb29wICgoYXJn
LWxpc3QqIGFyZy1saXN0KSkKKyAgICAgICAob3IgKG51bGw/IGFyZy1saXN0KikKKyAgICAgICAg
ICAgKGFuZCAobGV0ICgoYXJnIChjYXIgYXJnLWxpc3QqKSkpCisgICAgICAgICAgICAgICAgICBl
eHByIC4uLikKKyAgICAgICAgICAgICAgICAobG9vcCAoY2RyIGFyZy1saXN0KikpKSkpKSkpCisK
KyhkZWZpbmUgKHRlc3Qtc3RyLXdlYWtuZXNzIHN0ciB3ZWFrbmVzcykKKyAgKGlmIChub3Qgd2Vh
a25lc3MpIHN0ciAoZm9ybWF0ICNmICJ+YSAod2Vha25lc3M6IH5hKSIgc3RyIHdlYWtuZXNzKSkp
CisKKyh3aXRoLXRlc3QtcHJlZml4ICJnZW5lcmljLWhhc2gtdGFibGVzIgorCisgIChwYXNzLWlm
LWV4Y2VwdGlvbiAiYmFkIHdlYWtuZXNzIGFyZyB0byBtaHQgc2lnbmFscyBhbiBlcnJvciIKKyAg
ICAgICcobWlzYy1lcnJvciAuICJeSW52YWxpZCBoYXNoIHRhYmxlIHdlYWtuZXNzIikKKyAgICAo
bWFrZS1oYXNoLXRhYmxlIGVxdWFsPyBoYXNoICM6d2Vha25lc3MgJ3dlYWsta2V5LW9yLXZhbHVl
KSkKKworICAocGFzcy1pZi1leGNlcHRpb24gInVuc3VwcG9ydGVkIHdlYWtuZXNzIGFyZyB0byBt
aHQgc2lnbmFscyBhbiBlcnJvciIKKyAgICAgICcobWlzYy1lcnJvciAuICJeVW5zdXBwb3J0ZWQg
aGFzaCB0YWJsZSB3ZWFrbmVzcyIpCisgICAgKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8gaGFzaCAj
OndlYWtuZXNzICdlcGhlbWVyYWwta2V5KSkKKworICAocGFzcy1pZiAiY2FuIHVzZSBhbGwgYXJn
dW1lbnRzLCBpbmNsdWRpbmcgc2l6ZSIKKyAgICAoaGFzaC10YWJsZT8gKG1ha2UtaGFzaC10YWJs
ZSBlcXVhbD8gaGFzaCAjOndlYWtuZXNzICd3ZWFrLWtleSAzMSkpKQorCisgIDs7IFRoZSBmb2xs
b3dpbmcgdGVzdHMgYXJlIGRvbmUgb25jZSB3aXRoIGVhY2gga2luZCBvZiB3ZWFrbmVzcworICAo
d2l0aC1lbHQtaW4tbGlzdCB3ZWFrbmVzcyAobGlzdCAjZiAnd2Vhay1rZXkgJ3dlYWstdmFsdWUg
J3dlYWsta2V5LWFuZC12YWx1ZSkKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgInJl
ZmxlY3RpdmUgcXVlcmllcyBmdW5jdGlvbiBwcm9wZXJseSIgd2Vha25lc3MpCisgICAgICAobGV0
ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcXY/ICNmICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAg
ICAgICAgKGFuZCAoaGFzaC10YWJsZS1tdXRhYmxlPyBodCkKKyAgICAgICAgICAgICAoZXE/IGVx
dj8gKGhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQpKQorICAgICAgICAgICAgIChl
cT8gaGFzaC1ieS12YWx1ZSAoaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0KSkKKyAgICAgICAg
ICAgICAoZXE/IHdlYWtuZXNzIChoYXNoLXRhYmxlLXdlYWtuZXNzIGh0KSkKKyAgICAgICAgICAg
ICAoZXF1YWw/IChsaXN0IChoYXNoLXRhYmxlLWtleS13ZWFrbmVzcyBodCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXZhbHVlLXdlYWtuZXNzIGh0KSkKKyAgICAgICAg
ICAgICAgICAgICAgIChjYXNlIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAgICgoI2Yp
ICcoI2YgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAoKHdlYWsta2V5KSAnKHdlYWsta2V5
cyAjZikpCisgICAgICAgICAgICAgICAgICAgICAgICgod2Vhay12YWx1ZSkgJygjZiB3ZWFrLXZh
bHVlcykpCisgICAgICAgICAgICAgICAgICAgICAgICgod2Vhay1rZXktYW5kLXZhbHVlKSAnKHdl
YWsta2V5cyB3ZWFrLXZhbHVlcykpKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFr
bmVzcyAiaGFzaC10YWJsZS1jb250YWlucz8gZnVuY3Rpb25zIHByb3Blcmx5IiB3ZWFrbmVzcykK
KyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkpCisgICAgICAgIChoYXNoLXRhYmxlLXNldC1zaW5nbGUhIGh0ICdhIDEpCisgICAgICAg
IChhbmQgKGhhc2gtdGFibGUtY29udGFpbnM/IGh0ICdhKQorICAgICAgICAgICAgIChub3QgKGhh
c2gtdGFibGUtY29udGFpbnM/IGh0ICdiKSkKKyAgICAgICAgICAgICAoYmVnaW4gKGhhc2gtdGFi
bGUtc2V0LXNpbmdsZSEgaHQgJ2IgMSkKKyAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUt
Y29udGFpbnM/IGh0ICdiKSkKKyAgICAgICAgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtZGVsZXRl
LXNpbmdsZSEgaHQgJ2EpCisgICAgICAgICAgICAgICAgICAgIChub3QgKGhhc2gtdGFibGUtY29u
dGFpbnM/IGh0ICdhKSkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgInNt
YWxsIGFsaXN0PC0+aGFzaCB0YWJsZXMgcm91bmQtdHJpcCIgd2Vha25lc3MpCisgICAgICAobGV0
KiAoKHN0YXJ0LWFsaXN0ICcoKGEgLiAxKSAoYiAuIDIpIChjIC4gMykgKGEgLiA0MikpKQorICAg
ICAgICAgICAgIChodCAoYWxpc3QtPmhhc2gtdGFibGUgc3RhcnQtYWxpc3QgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKQorICAgICAgICAgICAgIChlbmQtYWxpc3QgKGhhc2gtdGFibGUtPmFs
aXN0IGh0KSkpCisgICAgICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAg
ICAgICAgICAobHNldD0gZXF1YWw/IGVuZC1hbGlzdCAodGFrZSBzdGFydC1hbGlzdCAzKSkKKyAg
ICAgICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXJlZiBodCAnYSkpCisgICAgICAgICAgICAgKD0g
MiAoaGFzaC10YWJsZS1yZWYgaHQgJ2IpKQorICAgICAgICAgICAgICg9IDMgKGhhc2gtdGFibGUt
cmVmIGh0ICdjKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAic3RyaW5n
LWNpPT8gdGFibGVzIHdvcmsgYnkgZGVmYXVsdCIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQg
KGFsaXN0LT5oYXNoLXRhYmxlICcoKCJ4WSIgLiAyKSAoImFiYyIgLiA1NCkpIHN0cmluZy1jaT0/
ICNmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25l
c3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtc2V0ISBodCAiWFkiIDQyICJxcXEiIDEwMCkKKyAg
ICAgICAgKGFuZCAoPSA1NCAoaGFzaC10YWJsZS1yZWYgaHQgIkFCYyIpKQorICAgICAgICAgICAg
ICg9IDQyIChoYXNoLXRhYmxlLXJlZiBodCAieHkiKSkKKyAgICAgICAgICAgICAoPSAzIChoYXNo
LXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0PSBzdHJpbmctY2ktYXNzb2MtZXF1
YWw/CisgICAgICAgICAgICAgICAgICAgICcoKCJ4eSIgLiA0MikgKCJhYmMiIC4gNTQpICgicXFx
IiAuIDEwMCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkp
CisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImVtcHR5IGhhc2ggdGFibGVzIGFy
ZSBlbXB0eSIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBlcT8g
I2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDAgKGhhc2gtdGFibGUt
c2l6ZSBodCkpCisgICAgICAgICAgICAgKGhhc2gtdGFibGUtZW1wdHk/IGh0KQorICAgICAgICAg
ICAgIChudWxsPyAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKQorCisgICAgKHBhc3MtaWYgKHRl
c3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlIGZ1bmN0aW9ucyBwcm9wZXJseSIgd2Vha25lc3Mp
CisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUgKGxpc3QgZXE/ICNmICM6d2Vha25lc3Mgd2Vh
a25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EgMSAnYiAyICdjIDMpKSkKKyAg
ICAgICAgKGFuZCAoPSAzIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChsc2V0
PSBlcXVhbD8gJygoYSAuIDEpIChiIC4gMikgKGMgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
KSkKKyAgICAgICAgICAgICAoZXE/IHdlYWtuZXNzIChoYXNoLXRhYmxlLXdlYWtuZXNzIGh0KSkK
KyAgICAgICAgICAgICAobm90IChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKSkKKworICAgIChw
YXNzLWlmLWV4Y2VwdGlvbgorICAgICAgICAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUg
d2l0aCBlcXVpdmFsZW50IGtleXMgc2lnbmFscyBhbiBlcnJvciIgd2Vha25lc3MpCisgICAgICAg
ICcobWlzYy1lcnJvciAuICJeVHdvIGVxdWl2YWxlbnQga2V5cyB3ZXJlIHByb3ZpZGVkIikKKyAg
ICAgIChoYXNoLXRhYmxlIChsaXN0IHN0cmluZz0/ICNmICM6d2Vha25lc3Mgd2Vha25lc3MpCisg
ICAgICAgICAgICAgICAgICAiYSIgMSAiYiIgMiAiYyIgMyAiYSIgNCkpCisKKyAgICAocGFzcy1p
ZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtdW5mb2xkIGZ1bmN0aW9ucyBwcm9wZXJs
eSIgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUtdW5mb2xkIChsYW1iZGEg
KGkpICg+PSBpIDUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRh
IChpKSAodmFsdWVzIGkgKCogaSAxMCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxKyAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdj8gI2YgIzp3
ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDUgKGhhc2gtdGFibGUtc2l6ZSBo
dCkpCisgICAgICAgICAgICAgKGVxPyB3ZWFrbmVzcyAoaGFzaC10YWJsZS13ZWFrbmVzcyBodCkp
CisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKCgwIC4gMCkgKDEgLiAxMCkgKDIgLiAyMCkg
KDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlz
dCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGU9
PyBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0MSAoaGFzaC10
YWJsZS11bmZvbGQgKGxhbWJkYSAoaSkgKD49IGkgNSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGFtYmRhIChpKSAodmFsdWVzIGkgKCogaSAxMCkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSsgMAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXF2PyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICho
dDIgKGFsaXN0LT5oYXNoLXRhYmxlICcoKDAgLiAwKSAoMSAuIDEwKSAoMiAuIDIwKSAoMyAuIDMw
KSAoNCAuIDQwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdj8gI2Yg
Izp3ZWFrbmVzcyB3ZWFrbmVzcykpCisgICAgICAgICAgICAoaHQzIChhbGlzdC0+aGFzaC10YWJs
ZSAnKCgwIC4gMCkgKDEgLiAxMCkgKDIgLiAyMCkgKDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcXVhbD8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVz
cykpCisgICAgICAgICAgICAoaHQ0IChhbGlzdC0+aGFzaC10YWJsZSAnKCgwIC4gMTApICgxIC4g
MTApICgyIC4gMjApICgzIC4gMzApICg0IC4gNDApKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXF2PyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQg
KGhhc2gtdGFibGU9PyBlcXY/IGh0MSBodDIpCisgICAgICAgICAgICAgKG5vdCAoaGFzaC10YWJs
ZT0/IGVxdj8gaHQxIGh0MykpCisgICAgICAgICAgICAgKG5vdCAoaGFzaC10YWJsZT0/IGVxdj8g
aHQxIGh0NCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKCgwIC4gMCkgKDEgLiAxMCkg
KDIgLiAyMCkgKDMgLiAzMCkgKDQgLiA0MCkpCisgICAgICAgICAgICAgICAgICAgIChoYXNoLXRh
YmxlLT5hbGlzdCBodDMpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJo
YXNoLXRhYmxlLXJlZiB1c2VzIGRlZmF1bHQiIHdlYWtuZXNzKQorICAgICAgKGVxdWFsPyAnKDQp
CisgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJlZiAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjOndlYWtuZXNzIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2IgKGN1dCBsaXN0ICgrIDIgMikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2gtdGFibGUtcmVmL2RlZmF1bHQgdXNlcyBkZWZhdWx0IiB3ZWFrbmVzcykKKyAgICAg
IChlcXVhbD8gJ2ZvbworICAgICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCAoYWxp
c3QtPmhhc2gtdGFibGUgJygoYSAuIDEpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiICdmb28pKSkKKworICAgIChw
YXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1kZWxldGUhIGRlbGV0ZXMgcHJl
c2VudCBhc3NvY3MsIGlnbm9yZXMgb3RoZXJzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQg
KD0gMCAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdjKSkKKyAgICAgICAgICAgICAoPSAyIChoYXNo
LXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgICg9IDEgKGhhc2gtdGFibGUtZGVsZXRlISBo
dCAnYSkpCisgICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAyKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
KworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1kZWxldGUhIGRl
bGV0ZXMgc2V2ZXJhbCBrZXlzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWFr
bmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4g
MikgKGQgLiA0KSAoZSAuIDUpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDQgKGhhc2gtdGFi
bGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKD0gMyAoaGFzaC10YWJsZS1kZWxldGUhIGh0ICdh
ICdiICdjICdlKSkKKyAgICAgICAgICAgICAoPSAxIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAg
ICAgICAgICAgIChsc2V0PSBlcXVhbD8gJygoZCAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQp
KSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJhbGlzdC0+aGFzaC10YWJs
ZSBkb2VzIG5vdCByZXF1aXJlIGxpbmVhciBzdGFjayBzcGFjZSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAoZXF2PyA5OTk5OQorICAgICAgICAgICAg
KGhhc2gtdGFibGUtcmVmCisgICAgICAgICAgICAgKGFsaXN0LT5oYXNoLXRhYmxlICh1bmZvbGQt
cmlnaHQgKGN1dCA+PSA8PiAxMDAwMDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxhbWJkYSAocykgYCh4IC4gLHMpKSAxKyAwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAneCkpKQorCisgICAgKHBhc3Mt
aWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVwZGF0ZSEgbW9kaWZpZXMgZXhpc3Rp
bmcgYmluZGluZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisg
ICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSkgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAxKykK
KyAgICAgICAgKGhhc2gtdGFibGUtdXBkYXRlISBodCAnYSAoY3V0ICsgNCA8PikgKGxhbWJkYSAo
KSA0MikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAg
ICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiA2KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkK
KworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS11cGRhdGUhIGNy
ZWF0ZXMgbmV3IGJpbmRpbmcgd2hlbiBhcHByb3ByaWF0ZSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKG1ha2UtaGFzaC10YWJsZSBl
cT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUh
IGh0ICdiIDErIChsYW1iZGEgKCkgNDIpKQorICAgICAgICAoaGFzaC10YWJsZS11cGRhdGUhIGh0
ICdiIChjdXQgKyAxMCA8PikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0
KSkKKyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiA1MykpIChoYXNoLXRhYmxlLT5h
bGlzdCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFi
bGUtaW50ZXJuISBjcmVhdGVzIG5ldyBiaW5kaW5nIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGVxPyAj
ZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1p
bnRlcm4hIGh0ICdiIChjb25zdCAxKSkpCisgICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1z
aXplIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAxKSkgKGhhc2gtdGFi
bGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFz
aC10YWJsZS1pbnRlcm4hIGRvZXNuJ3QgbW9kaWZ5IGV4aXN0aW5nIGJpbmRpbmciCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlz
dC0+aGFzaC10YWJsZSAnKChhIC4gMSkpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkpCisg
ICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0ICdhIChjb25zdCAyKSkpCisg
ICAgICAgICAgICAgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICAgICAobHNl
dD0gZXF1YWw/ICcoKGEgLiAxKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChw
YXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1wb3AhIGZ1bmN0aW9ucyBwcm9w
ZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha25lc3MpCisgICAgICAo
bGV0KiAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmICM6
d2Vha25lc3Mgd2Vha25lc3MpKQorICAgICAgICAgICAgIChwb3BwZWQgKHJlY2VpdmUgKGtleSB2
YWwpIChoYXNoLXRhYmxlLXBvcCEgaHQpIChsaXN0IGtleSB2YWwpKSkpCisgICAgICAgIChvciAo
YW5kIChlcXVhbD8gJyhhIDEpIHBvcHBlZCkKKyAgICAgICAgICAgICAgICAgKGVxdWFsPyAnKChi
IC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKQorICAgICAgICAgICAgKGFuZCAoZXF1YWw/
ICcoYiAyKSBwb3BwZWQpCisgICAgICAgICAgICAgICAgIChlcXVhbD8gJygoYSAuIDEpKSAoaGFz
aC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworICAgIChwYXNzLWlmLWV4Y2VwdGlvbgorICAgICAg
ICAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtcG9wISB3aXRoIGVtcHR5IGhhc2ggdGFi
bGUgc2lnbmFscyBhbiBlcnJvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNz
KQorICAgICAgICAnKG1pc2MtZXJyb3IgLiAiXkhhc2ggdGFibGUgaXMgZW1wdHkiKQorICAgICAg
KGhhc2gtdGFibGUtcG9wISAobWFrZS1oYXNoLXRhYmxlIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtu
ZXNzKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtY2xl
YXIhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2Vha25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAo
YiAuIDIpKSBlcT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoaGFzaC10YWJs
ZS1jbGVhciEgaHQpCisgICAgICAgIChhbmQgKD0gMCAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAg
ICAgICAgICAgICAoaGFzaC10YWJsZS1lbXB0eT8gaHQpCisgICAgICAgICAgICAgKG51bGw/ICho
YXNoLXRhYmxlLT5hbGlzdCBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2gtdGFibGUtZmluZCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFr
bmVzcykpKQorICAgICAgICAoYW5kIChlcT8gJ2IgKGhhc2gtdGFibGUtZmluZCAobGFtYmRhIChr
ZXkgdmFsKSAoYW5kIChldmVuPyB2YWwpIGtleSkpIGh0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgI2YpKSkKKyAgICAgICAgICAgICAobm90IChoYXNo
LXRhYmxlLWZpbmQgKGxhbWJkYSAoa2V5IHZhbCkgKD0gdmFsIDQpKSBodAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICgpICNmKSkpKSkpCisKKyAgICAocGFzcy1p
ZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtY291bnQgZnVuY3Rpb25zIHByb3Blcmx5
IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEp
IChiIC4gMikgKGMgLiAzKSAoZCAuIDQpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kICg9IDIgKGhh
c2gtdGFibGUtY291bnQgKGxhbWJkYSAoa2V5IHZhbCkgKGV2ZW4/IHZhbCkpIGh0KSkKKyAgICAg
ICAgICAgICAoPSAxIChoYXNoLXRhYmxlLWNvdW50IChsYW1iZGEgKGtleSB2YWwpICg9IHZhbCA0
KSkgaHQpKQorICAgICAgICAgICAgICg9IDAgKGhhc2gtdGFibGUtY291bnQgKGxhbWJkYSAoa2V5
IHZhbCkgKD0gdmFsIDUpKSBodCkpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25l
c3MgImhhc2ggdGFibGUga2V5cyBhbmQgdmFsdWVzIGFyZSBjb3JyZWN0IiB3ZWFrbmVzcykKKyAg
ICAgIChsZXQgKChodCAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikgKGMgLiAz
KSAoZCAuIDQpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3
ZWFrbmVzcyB3ZWFrbmVzcykpKQorICAgICAgICAoYW5kIChsc2V0PSBlcT8gJyhhIGIgYyBkKSAo
aGFzaC10YWJsZS1rZXlzIGh0KSkKKyAgICAgICAgICAgICAobHNldD0gPSAgICcoMSAyIDMgNCkg
KGhhc2gtdGFibGUtdmFsdWVzIGh0KSkKKyAgICAgICAgICAgICAocmVjZWl2ZSAoa2V5cyB2YWxz
KSAoaGFzaC10YWJsZS1lbnRyaWVzIGh0KQorICAgICAgICAgICAgICAgKGFuZCAobHNldD0gZXE/
ICcoYSBiIGMgZCkga2V5cykKKyAgICAgICAgICAgICAgICAgICAgKGxzZXQ9ID0gICAnKDEgMiAz
IDQpIHZhbHMpKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaCB0
YWJsZSBrZXkgYW5kIHZhbHVlIHZlY3RvcnMgYXJlIGNvcnJlY3QiIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpIChk
IC4gNCkpIGVxPyAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtu
ZXNzIHdlYWtuZXNzKSkpCisgICAgICAgIChhbmQgKGxzZXQ9IGVxPyAnKGEgYiBjIGQpICh2ZWN0
b3ItPmxpc3QgKGhhc2gtdGFibGUta2V5LXZlY3RvciBodCkpKQorICAgICAgICAgICAgIChsc2V0
PSA9ICAgJygxIDIgMyA0KSAodmVjdG9yLT5saXN0IChoYXNoLXRhYmxlLXZhbHVlLXZlY3RvciBo
dCkpKQorICAgICAgICAgICAgIChyZWNlaXZlIChrZXlzIHZhbHMpIChoYXNoLXRhYmxlLWVudHJ5
LXZlY3RvcnMgaHQpCisgICAgICAgICAgICAgICAoYW5kIChsc2V0PSBlcT8gJyhhIGIgYyBkKSAo
dmVjdG9yLT5saXN0IGtleXMpKQorICAgICAgICAgICAgICAgICAgICAobHNldD0gPSAgICcoMSAy
IDMgNCkgKHZlY3Rvci0+bGlzdCB2YWxzKSkpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3Ry
LXdlYWtuZXNzICJoYXNoLXRhYmxlLW1hcCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQor
ICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOndlYWtuZXNzIHdl
YWtuZXNzKSkKKyAgICAgICAgICAgICAoaHQyIChoYXNoLXRhYmxlLW1hcCAxKyBodDEgZXE/ICNm
KSkpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4gMikgKGIgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
MikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gtdGFibGUtbWFw
ISBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChhbGlzdC0+
aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGhhc2gtdGFi
bGUtbWFwISAobGFtYmRhIChrZXkgdmFsKSAoKyB2YWwgMSkpIGh0KQorICAgICAgICAoYW5kICg9
IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChh
IC4gMikgKGIgLiAzKSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0KSkpKSkKKworICAgIChwYXNzLWlm
ICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1mb3ItZWFjaCBpZ25vcmVzIHJldHVybiB2
YWx1ZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNzKQorICAgICAg
KGxldCAoKGh0IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSAoYyAuIDMpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFr
bmVzcykpKQorICAgICAgICAoZm9yLWVhY2ggKGN1dCBoYXNoLXRhYmxlLWZvci1lYWNoIDw+IGh0
KQorICAgICAgICAgICAgICAgICAgKGxpc3QgKGxhbWJkYSAoayB2KSAodmFsdWVzKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGsgdikgKHZhbHVlcyAxIDIgMykpKSkKKyAgICAg
ICAgI3QpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLW1h
cC0+bGlzdCBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0IChh
bGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICM6d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKGFu
ZCAobHNldD0gZXE/ICcoYSBiKSAoaGFzaC10YWJsZS1tYXAtPmxpc3QgKGxhbWJkYSAoa2V5IHZh
bCkga2V5KSBodCkpCisgICAgICAgICAgICAgKGxzZXQ9ID0gJygxIDIpIChoYXNoLXRhYmxlLW1h
cC0+bGlzdCAobGFtYmRhIChrZXkgdmFsKSB2YWwpIGh0KSkpKSkKKworICAgIChwYXNzLWlmICh0
ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1mb2xkIGZ1bmN0aW9ucyBwcm9wZXJseSIgd2Vh
a25lc3MpCisgICAgICAobGV0ICgoaHQgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAu
IDIpKSBlcT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVz
cyB3ZWFrbmVzcykpKQorICAgICAgICAoPSAzIChoYXNoLXRhYmxlLWZvbGQgKGxhbWJkYSAoa2V5
IHZhbCBhY2MpICgrIHZhbCBhY2MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCBo
dCkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1wcnVu
ZSEgZnVuY3Rpb25zIHByb3Blcmx5IiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikgKGMgLiAzKSAoZCAuIDQpKSBlcT8gI2YKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpKQor
ICAgICAgICAoaGFzaC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkgKGV2ZW4/IHZhbCkp
IGh0KQorICAgICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiAxKSAoYyAuIDMpKSAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImhhc2gt
dGFibGUtY29weSBmdW5jdGlvbnMgcHJvcGVybHkiIHdlYWtuZXNzKQorICAgICAgKGxldCAoKGh0
IChoYXNoLXRhYmxlLWNvcHkgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIpKSBl
cT8gI2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjOndlYWtuZXNzIHdlYWtuZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IzptdXRhYmxlICN0KSkpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0KSkK
KyAgICAgICAgICAgICAobHNldD0gZXF1YWw/ICcoKGEgLiAxKSAoYiAuIDIpKSAoaGFzaC10YWJs
ZS0+YWxpc3QgaHQpKQorICAgICAgICAgICAgIChoYXNoLXRhYmxlLW11dGFibGU/IGh0KSkpKQor
CisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxlLXVuaW9uISBmdW5j
dGlvbnMgcHJvcGVybHkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYWtuZXNz
KQorICAgICAgKGxldCogKChodDEgKGFsaXN0LT5oYXNoLXRhYmxlICcoKGEgLiAxKSAoYiAuIDIp
KSBlcT8gI2YgIzp3ZWFrbmVzcyB3ZWFrbmVzcykpCisgICAgICAgICAgICAgKGh0MiAoYWxpc3Qt
Pmhhc2gtdGFibGUgJygoYiAuIDMpIChjIC4gNCkpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNz
KSkpCisgICAgICAgIChzZXQhIGh0MSAoaGFzaC10YWJsZS11bmlvbiEgaHQxIGh0MikpCisgICAg
ICAgIChhbmQgKD0gMyAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAgICAgKD0gMiAo
aGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFsPyAnKChhIC4g
MSkgKGIgLiAyKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAgICAgICAg
ICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQy
KSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJsZS1pbnRl
cnNlY3Rpb24hIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygo
YSAuIDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAg
ICAoaHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6d2Vh
a25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLWludGVyc2Vj
dGlvbiEgaHQxIGh0MikpCisgICAgICAgIChhbmQgKD0gMSAoaGFzaC10YWJsZS1zaXplIGh0MSkp
CisgICAgICAgICAgICAgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAg
KGxzZXQ9IGVxdWFsPyAnKChiIC4gMikpIChoYXNoLXRhYmxlLT5hbGlzdCBodDEpKQorICAgICAg
ICAgICAgIChsc2V0PSBlcXVhbD8gJygoYiAuIDMpIChjIC4gNCkpIChoYXNoLXRhYmxlLT5hbGlz
dCBodDIpKSkpKQorCisgICAgKHBhc3MtaWYgKHRlc3Qtc3RyLXdlYWtuZXNzICJoYXNoLXRhYmxl
LWRpZmZlcmVuY2UhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUg
JygoYSAuIDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAg
ICAgICAoaHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6
d2Vha25lc3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLWRpZmZl
cmVuY2UhIGh0MSBodDIpKQorICAgICAgICAoYW5kICg9IDEgKGhhc2gtdGFibGUtc2l6ZSBodDEp
KQorICAgICAgICAgICAgICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodDIpKQorICAgICAgICAgICAg
IChsc2V0PSBlcXVhbD8gJygoYSAuIDEpKSAoaGFzaC10YWJsZS0+YWxpc3QgaHQxKSkKKyAgICAg
ICAgICAgICAobHNldD0gZXF1YWw/ICcoKGIgLiAzKSAoYyAuIDQpKSAoaGFzaC10YWJsZS0+YWxp
c3QgaHQyKSkpKSkKKworICAgIChwYXNzLWlmICh0ZXN0LXN0ci13ZWFrbmVzcyAiaGFzaC10YWJs
ZS14b3IhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2Vha25lc3MpCisgICAgICAobGV0KiAoKGh0MSAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAu
IDEpIChiIC4gMikpIGVxPyAjZiAjOndlYWtuZXNzIHdlYWtuZXNzKSkKKyAgICAgICAgICAgICAo
aHQyIChhbGlzdC0+aGFzaC10YWJsZSAnKChiIC4gMykgKGMgLiA0KSkgZXE/ICNmICM6d2Vha25l
c3Mgd2Vha25lc3MpKSkKKyAgICAgICAgKHNldCEgaHQxIChoYXNoLXRhYmxlLXhvciEgaHQxIGh0
MikpCisgICAgICAgIChhbmQgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MSkpCisgICAgICAgICAg
ICAgKD0gMiAoaGFzaC10YWJsZS1zaXplIGh0MikpCisgICAgICAgICAgICAgKGxzZXQ9IGVxdWFs
PyAnKChhIC4gMSkgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0MSkpCisgICAgICAgICAg
ICAgKGxzZXQ9IGVxdWFsPyAnKChiIC4gMykgKGMgLiA0KSkgKGhhc2gtdGFibGUtPmFsaXN0IGh0
MikpKSkpCisKKyAgICAocGFzcy1pZiAodGVzdC1zdHItd2Vha25lc3MgImltbXV0YWJsZSBoYXNo
IHRhYmxlcyBhcmUgaW1tdXRhYmxlIiB3ZWFrbmVzcykKKyAgICAgIChsZXQgKChodCAoaGFzaC10
YWJsZS1jb3B5IChhbGlzdC0+aGFzaC10YWJsZSAnKChhIC4gMSkgKGIgLiAyKSkgZXE/ICNmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIzp3ZWFr
bmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6bXV0YWJs
ZSAjZikpKQorICAgICAgICAoYW5kICg9IDIgKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAg
ICAgICAgKG5vdCAoaGFzaC10YWJsZS1tdXRhYmxlPyBodCkpKSkpCisKKyAgICA7OyBUZXN0cyB3
aGV0aGVyIGVhY2ggb2YgdGhlIGZvbGxvd2luZyBwcm9jZWR1cmUgc2lnbmFscyBhbiBlcnJvciBv
bgorICAgIDs7IGltbXV0YWJsZSBoYXNoIHRhYmxlcworICAgICh3aXRoLWVsdC1pbi1saXN0IHN5
bStwcm9jCisgICAgICAgIChsaXN0CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1zZXQhCisg
ICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtc2V0ISBodCAnYSAyICdiIDMp
KSkKKyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLXNldC1zaW5nbGUhCisgICAgICAgICAgICAg
ICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtc2V0LXNpbmdsZSEgaHQgJ2EgMikpKQorICAgICAg
ICAgKGNvbnMgJ2hhc2gtdGFibGUtZGVsZXRlIQorICAgICAgICAgICAgICAgKGxhbWJkYSAoaHQp
IChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgJ2EgJ2IpKSkKKyAgICAgICAgIChjb25zICdoYXNoLXRh
YmxlLWRlbGV0ZS1zaW5nbGUhCisgICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFi
bGUtZGVsZXRlLXNpbmdsZSEgaHQgJ2EpKSkKKyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLWlu
dGVybiEKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGh0KSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0
ICdhIChjb25zdCAyKSkpKQorICAgICAgICAgKGNvbnMgJ2hhc2gtdGFibGUtdXBkYXRlIQorICAg
ICAgICAgICAgICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQgJ2EgMSspKSkK
KyAgICAgICAgIChjb25zICdoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdAorICAgICAgICAgICAg
ICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLXVwZGF0ZSEvZGVmYXVsdCBodCAnYSAxKyAwKSkp
CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1wb3AhCisgICAgICAgICAgICAgICAobGFtYmRh
IChodCkgKGhhc2gtdGFibGUtcG9wISBodCkpKQorICAgICAgICAgKGNvbnMgJ2hhc2gtdGFibGUt
Y2xlYXIhCisgICAgICAgICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUtY2xlYXIhIGh0
KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1wcnVuZSEKKyAgICAgICAgICAgICAgIChs
YW1iZGEgKGh0KSAoaGFzaC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkgI3QpIGh0KSkp
CisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS11bmlvbiEKKyAgICAgICAgICAgICAgIChsYW1i
ZGEgKGh0KSAoaGFzaC10YWJsZS11bmlvbiEgaHQgaHQpKSkKKyAgICAgICAgIChjb25zICdoYXNo
LXRhYmxlLWludGVyc2VjdGlvbiEKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGh0KSAoaGFzaC10
YWJsZS1pbnRlcnNlY3Rpb24hIGh0IGh0KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS1k
aWZmZXJlbmNlIQorICAgICAgICAgICAgICAgKGxhbWJkYSAoaHQpIChoYXNoLXRhYmxlLWRpZmZl
cmVuY2UhIGh0IGh0KSkpCisgICAgICAgICAoY29ucyAnaGFzaC10YWJsZS14b3IhCisgICAgICAg
ICAgICAgICAobGFtYmRhIChodCkgKGhhc2gtdGFibGUteG9yISBodCBodCkpKSkKKyAgICAgIChw
YXNzLWlmLWV4Y2VwdGlvbgorICAgICAgICAgICh0ZXN0LXN0ci13ZWFrbmVzcworICAgICAgICAg
ICAoZm9ybWF0ICNmICJ+YSB3aXRoIGltbXV0YWJsZSBoYXNoIHRhYmxlIHNpZ25hbHMgYW4gZXJy
b3IiIChjYXIgc3ltK3Byb2MpKQorICAgICAgICAgICB3ZWFrbmVzcykKKyAgICAgICAgICAnKG1p
c2MtZXJyb3IgLiAiXkhhc2ggdGFibGUgaXMgbm90IG11dGFibGUiKQorICAgICAgICAobGV0ICgo
aHQgKGhhc2gtdGFibGUtY29weSAoYWxpc3QtPmhhc2gtdGFibGUgJygoYSAuIDEpIChiIC4gMikp
IGVxPyAjZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzp3ZWFrbmVzcyB3ZWFrbmVzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIzptdXRhYmxlICNmKSkpCisgICAgICAgICAgKChjZHIgc3ltK3Byb2MpIGh0KSkpKQor
ICAgICkKKyAgKQotLSAKMi4xOS4xCgo=
--000000000000b6a39d057efb700b--




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#33827: Patches
Resent-From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Sun, 13 Jan 2019 22:54:02 +0000
Resent-Message-ID: <handler.33827.B33827.15474200035522 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 33827
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 33827 <at> debbugs.gnu.org
Received: via spool by 33827-submit <at> debbugs.gnu.org id=B33827.15474200035522
          (code B ref 33827); Sun, 13 Jan 2019 22:54:02 +0000
Received: (at 33827) by debbugs.gnu.org; 13 Jan 2019 22:53:23 +0000
Received: from localhost ([127.0.0.1]:58172 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1giod8-0001R0-Sw
	for submit <at> debbugs.gnu.org; Sun, 13 Jan 2019 17:53:22 -0500
Received: from mail-io1-f50.google.com ([209.85.166.50]:44985)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jessymilare@HIDDEN>) id 1giod7-0001Qk-LK
 for 33827 <at> debbugs.gnu.org; Sun, 13 Jan 2019 17:53:21 -0500
Received: by mail-io1-f50.google.com with SMTP id r200so16277477iod.11
 for <33827 <at> debbugs.gnu.org>; Sun, 13 Jan 2019 14:53:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
 bh=ppW40DuBYi1PajJYqIFTFHzz1IAKNFo7l4UxOoFzRAA=;
 b=WuLToive7jlEjL5jFP4Czg139VV1DlbZiTBo/OvP7ddOJdFfZzZyfVSuglbvsFxMdZ
 0HmNiJBw4yqvsTTgUAASfoqOsYrxJfddS6QL1tP+ycT3vDV5Hsk6vupTVkyvammWp0AH
 n8Bp4r0vEuIPTZ+0nQbo3x953SQb99IDdzhxHovyq82RJo+yy9L7/9j2lpYurAXXYmQA
 b6LMzttH89ttL/OL4WyX57aUrimKI7InGAOM5SBfrzQltu0Wj2m3SPg8lxpkmjvQWRnl
 u0DhjYlqGtNO/v3MNZsBubfup2XpMPxXDdEYnIgg79W8nJwrXicRP05SLhqTFYUp/xfP
 Y/fQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to;
 bh=ppW40DuBYi1PajJYqIFTFHzz1IAKNFo7l4UxOoFzRAA=;
 b=p6Nfi9ylI5lC0ZdmNoQPQjj6JQZlaNrQgDvIYwhI5TCK3uP6NnOcYcXZosFPI/kx3w
 /RK7B3kwjZRSl/+VgS9fm8gobtih+s8Ufyz0j1vGz5olVs2wSKlhLPeBXXIkd4GkwSSm
 KY0bc2j/CuLPXwsPT095MAE/fVMfw9aIDAnIgvUbcJgKxIqSL2CxPLoABLV1JRr6Yif9
 kfoCyphi59UQFqRrCvVQv5d/aG6kezFQvlbRLd0pek4JtC6o1Rfb6O3nGSZGF/nDTPhT
 ojma6pcQvQ0jry1cZKg8+PlAZu3DHuWUGKS9Amqi+vqnW+vAvMT0HXoKc/DqQUW9LKM/
 rzyg==
X-Gm-Message-State: AJcUukd3JDvB7xyax7NTCeJl90xafvOAFmot9pEAmI/IroW9lNhVRht3
 gainhvOIFoA2YyhWgLDn0+zeAqhSlgXSPSZie9fSQA==
X-Google-Smtp-Source: ALg8bN49jHFKwSPPwjknUpVPk+Rj1SArVRfgb0ivnfi5J7x4f3dwWZZ4JvBW0OTvj/V4H41syX4eGZ2Z4PbXocBFosU=
X-Received: by 2002:a6b:156:: with SMTP id 83mr14409641iob.63.1547419995521;
 Sun, 13 Jan 2019 14:53:15 -0800 (PST)
MIME-Version: 1.0
References: <CAGBcF1Z5WmXij2vX+EhxQHvWkmmOkeL-hV+Y-SUSpByH0tZQHw@HIDDEN>
 <CAGBcF1aZrZhBjEk=tvsJHLJnMDc1ERt-ZaCiwOzqMksnfZsP_Q@HIDDEN>
In-Reply-To: <CAGBcF1aZrZhBjEk=tvsJHLJnMDc1ERt-ZaCiwOzqMksnfZsP_Q@HIDDEN>
From: =?UTF-8?Q?J=C3=A9ssica_?= =?UTF-8?Q?Milar=C3=A9?= <jessymilare@HIDDEN>
Date: Sun, 13 Jan 2019 20:53:04 -0200
Message-ID: <CAGBcF1a70RQVCgRZA8cYm7mdREz0yT0NsrHn_6e9rnuK3QaZdA@HIDDEN>
Content-Type: multipart/mixed; boundary="00000000000027132d057f5ecbea"
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>

--00000000000027132d057f5ecbea
Content-Type: multipart/alternative; boundary="000000000000271327057f5ecbe8"

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

The rest of the patches are here, implementing SRFI 128 and SRFI 125.

Em ter, 8 de jan de 2019 =C3=A0s 22:21, J=C3=A9ssica Milar=C3=A9 <jessymila=
re@HIDDEN>
escreveu:

> Patch 0001 fixes SRFI-69 bugs as specified. Patches 0002 to 0005 implemen=
t
> the module (ice-9 generic-hash-tables) and then reimplement SRFI-69 and
> (rnrs hashtables) and add an implementation of SRFI 126, all of them usin=
g
> generic-hash-tables (and therefore compatible to each other).
>
> I've called `make check' after each commit and all tests PASS: or XFAIL:,
> except the four tests in linker.test, as reported in Bug 33991[1].
>
> [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991
>

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

<div dir=3D"ltr">The rest of the patches are here, implementing SRFI 128 an=
d SRFI 125.</div><br><div class=3D"gmail_quote"><div dir=3D"ltr">Em ter, 8 =
de jan de 2019 =C3=A0s 22:21, J=C3=A9ssica Milar=C3=A9 &lt;<a href=3D"mailt=
o:jessymilare@HIDDEN">jessymilare@HIDDEN</a>&gt; escreveu:<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=
=3D"ltr"><div dir=3D"ltr">Patch 0001 fixes SRFI-69 bugs as specified. Patch=
es 0002 to 0005 implement the module (ice-9 generic-hash-tables) and then r=
eimplement SRFI-69 and (rnrs hashtables) and add an implementation of SRFI =
126, all of them using generic-hash-tables (and therefore compatible to eac=
h other).<div><br></div><div>I&#39;ve called `make check&#39; after each co=
mmit and all tests PASS: or XFAIL:, except the four tests in linker.test, a=
s reported in Bug=C2=A033991[1].</div><div><br></div><div>[1]=C2=A0<a href=
=3D"https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991" target=3D"_blank=
">https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D33991</a></div></div></di=
v></div>
</blockquote></div>

--000000000000271327057f5ecbe8--

--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0006-Fix-wrong-year-in-copyright-notices.patch"
Content-Disposition: attachment; 
	filename="0006-Fix-wrong-year-in-copyright-notices.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvngx0>
X-Attachment-Id: f_jqvhvngx0

RnJvbSBhMDJmZDA5MTE3MDEzMTU0YzAxMTA3NGI1YTc1ODNhMWJlZDVlY2E0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBGcmksIDExIEphbiAyMDE5IDE3OjQwOjM4
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8xMF0gRml4IHdyb25nIHllYXIgaW4gY29weXJpZ2h0
IG5vdGljZXMuCgotLS0KIG1vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNjbSAgICAg
IHwgMiArLQogbW9kdWxlL3NyZmkvc3JmaS0xMjYuc2NtICAgICAgICAgICAgICAgICAgfCA0ICsr
LS0KIG1vZHVsZS9zcmZpL3NyZmktNjkuc2NtICAgICAgICAgICAgICAgICAgIHwgMiArLQogdGVz
dC1zdWl0ZS90ZXN0cy9nZW5lcmljLWhhc2gtdGFibGVzLnRlc3QgfCA0ICsrLS0KIHRlc3Qtc3Vp
dGUvdGVzdHMvc3JmaS0xMjYudGVzdCAgICAgICAgICAgIHwgNCArKy0tCiB0ZXN0LXN1aXRlL3Rl
c3RzL3NyZmktNjkudGVzdCAgICAgICAgICAgICB8IDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgOSBp
bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL21vZHVsZS9pY2UtOS9n
ZW5lcmljLWhhc2gtdGFibGVzLnNjbSBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVz
LnNjbQppbmRleCAwMzNjM2VjZGEuLjMxZGVhZDk3YSAxMDA2NDQKLS0tIGEvbW9kdWxlL2ljZS05
L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCisrKyBiL21vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gt
dGFibGVzLnNjbQpAQCAtMSw2ICsxLDYgQEAKIDs7OyBnZW5lcmljLWhhc2gtdGFibGVzLnNjbSAt
LS0gSW50ZXJtZWRpYXRlIGhhc2ggdGFibGVzCiAKLTs7IAlDb3B5cmlnaHQgKEMpIDIwMDcgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7OyAgICBDb3B5cmlnaHQgKEMpIDIwMDcsMjAx
OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7CiA7OyBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiA7OyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCmRpZmYg
LS1naXQgYS9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20gYi9tb2R1bGUvc3JmaS9zcmZpLTEyNi5z
Y20KaW5kZXggN2E2NTk0NDM0Li5lN2ZlZTM1ZDMgMTAwNjQ0Ci0tLSBhL21vZHVsZS9zcmZpL3Ny
ZmktMTI2LnNjbQorKysgYi9tb2R1bGUvc3JmaS9zcmZpLTEyNi5zY20KQEAgLTEsNiArMSw2IEBA
Ci07Ozsgc3JmaS02OS5zY20gLS0tIEJhc2ljIGhhc2ggdGFibGVzCis7Ozsgc3JmaS0xMjYuc2Nt
IC0tLSBSNlJTIGhhc2ggdGFibGVzCiAKLTs7IAlDb3B5cmlnaHQgKEMpIDIwMDcgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7OyAgICBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiA7OwogOzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogOzsgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEvbW9k
dWxlL3NyZmkvc3JmaS02OS5zY20gYi9tb2R1bGUvc3JmaS9zcmZpLTY5LnNjbQppbmRleCBhZTVi
YzdmMDYuLjEzNGJjZDY5NCAxMDA2NDQKLS0tIGEvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20KKysr
IGIvbW9kdWxlL3NyZmkvc3JmaS02OS5zY20KQEAgLTEsNiArMSw2IEBACiA7Ozsgc3JmaS02OS5z
Y20gLS0tIEJhc2ljIGhhc2ggdGFibGVzCiAKLTs7IAlDb3B5cmlnaHQgKEMpIDIwMDcgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7OyAgICBDb3B5cmlnaHQgKEMpIDIwMDcsMjAxOCBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7CiA7OyBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiA7OyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCmRpZmYgLS1n
aXQgYS90ZXN0LXN1aXRlL3Rlc3RzL2dlbmVyaWMtaGFzaC10YWJsZXMudGVzdCBiL3Rlc3Qtc3Vp
dGUvdGVzdHMvZ2VuZXJpYy1oYXNoLXRhYmxlcy50ZXN0CmluZGV4IDQ5NGNiZjcwYS4uZDFlYjJh
YzJkIDEwMDY0NAotLS0gYS90ZXN0LXN1aXRlL3Rlc3RzL2dlbmVyaWMtaGFzaC10YWJsZXMudGVz
dAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL2dlbmVyaWMtaGFzaC10YWJsZXMudGVzdApAQCAtMSw2
ICsxLDYgQEAKLTs7Ozsgc3JmaS02OS50ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDY5IC0q
LSBzY2hlbWUgLSotCis7Ozs7IGdlbmVyaWMtaGFzaC10YWJsZXMudGVzdCAtLS0gVGVzdCBzdWl0
ZSBmb3IgR0VORVJJQy1IQVNILVRBQkxFUyAtKi0gc2NoZW1lIC0qLQogOzs7OwotOzs7OyAJQ29w
eXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorOzs7OyAgICBD
b3B5cmlnaHQgKEMpIDIwMDcsMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7
OzsKIDs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogOzs7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCmRpZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3NyZmkt
MTI2LnRlc3QgYi90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI2LnRlc3QKaW5kZXggZTZhNGU2NmE5
Li45NzA3NzBhNmUgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjYudGVzdAor
KysgYi90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI2LnRlc3QKQEAgLTEsNiArMSw2IEBACi07Ozs7
IHNyZmktNjkudGVzdCAtLS0gVGVzdCBzdWl0ZSBmb3IgU1JGSSA2OSAtKi0gc2NoZW1lIC0qLQor
Ozs7OyBzcmZpLTEyNi50ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDEyNiAtKi0gc2NoZW1l
IC0qLQogOzs7OwotOzs7OyAJQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLgorOzs7OyBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuCiA7Ozs7CiA7Ozs7IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKIDs7OzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEvdGVzdC1zdWl0
ZS90ZXN0cy9zcmZpLTY5LnRlc3QgYi90ZXN0LXN1aXRlL3Rlc3RzL3NyZmktNjkudGVzdAppbmRl
eCBlMTU3OWY3M2EuLjk3NDkxYmE4MyAxMDA2NDQKLS0tIGEvdGVzdC1zdWl0ZS90ZXN0cy9zcmZp
LTY5LnRlc3QKKysrIGIvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTY5LnRlc3QKQEAgLTEsNiArMSw2
IEBACiA7Ozs7IHNyZmktNjkudGVzdCAtLS0gVGVzdCBzdWl0ZSBmb3IgU1JGSSA2OSAtKi0gc2No
ZW1lIC0qLQogOzs7OwotOzs7OyAJQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLgorOzs7OyAgICBDb3B5cmlnaHQgKEMpIDIwMDcsMjAxOCBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4KIDs7OzsKIDs7OzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogOzs7OyBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0tIAoyLjE5LjEK
Cg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="UTF-8"; name="0009-Implemented-SRFI-125.patch"
Content-Disposition: attachment; filename="0009-Implemented-SRFI-125.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnoy3>
X-Attachment-Id: f_jqvhvnoy3

RnJvbSAxOGNlMTAyYzI3MGJhYjNjZjUyNDBlN2FjOTMxMjllMTA3YzMzNWRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEzIEphbiAyMDE5IDEyOjAxOjA4
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwOS8xMF0gSW1wbGVtZW50ZWQgU1JGSS0xMjUKCi0tLQog
bW9kdWxlL01ha2VmaWxlLmFtICAgICAgICAgICAgIHwgICAxICsKIG1vZHVsZS9zcmZpL3NyZmkt
MTI1LnNjbSAgICAgICB8IDQ3OSArKysrKysrKysrKysrKysrKysKIHRlc3Qtc3VpdGUvTWFrZWZp
bGUuYW0gICAgICAgICB8ICAgMSArCiB0ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI1LnRlc3QgfCA4
NjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDEz
NDEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IG1vZHVsZS9zcmZpL3NyZmktMTI1
LnNjbQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjUudGVzdAoK
ZGlmZiAtLWdpdCBhL21vZHVsZS9NYWtlZmlsZS5hbSBiL21vZHVsZS9NYWtlZmlsZS5hbQppbmRl
eCA1ZmMzMDEwYzEuLjQxYzFjMjgyNiAxMDA2NDQKLS0tIGEvbW9kdWxlL01ha2VmaWxlLmFtCisr
KyBiL21vZHVsZS9NYWtlZmlsZS5hbQpAQCAtMjk0LDYgKzI5NCw3IEBAIFNPVVJDRVMgPQkJCQkJ
XAogICBzcmZpL3NyZmktODguc2NtCQkJCVwKICAgc3JmaS9zcmZpLTk4LnNjbQkJCQlcCiAgIHNy
Zmkvc3JmaS0xMTEuc2NtCQkJCVwKKyAgc3JmaS9zcmZpLTEyNS5zY20JCQkJXAogICBzcmZpL3Ny
ZmktMTI2LnNjbQkJCQlcCiAgIHNyZmkvc3JmaS0xMjgvZ251LnNjbQkJCQlcCiAgIHNyZmkvc3Jm
aS0xMjguc2NtCQkJCVwKZGlmZiAtLWdpdCBhL21vZHVsZS9zcmZpL3NyZmktMTI1LnNjbSBiL21v
ZHVsZS9zcmZpL3NyZmktMTI1LnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAuLmYwYTFkZmIwMgotLS0gL2Rldi9udWxsCisrKyBiL21vZHVsZS9zcmZpL3NyZmktMTI1LnNj
bQpAQCAtMCwwICsxLDQ3OSBAQAorOzs7IHNyZmktMTI1LnNjbSAtLS0gSW50ZXJtZWRpYXRlIGhh
c2ggdGFibGVzCisKKzs7ICAgIENvcHlyaWdodCAoQykgMjAxOSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4KKzs7Cis7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKzs7IHZlcnNpb24gMyBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7Cis7
OyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzsgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7Cis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCis7OyBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
Cis7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisKKzs7IFRoaXMgZmlsZSBjb250YWlucyBjb2RlIGZy
b20gU1JGSSAxMjggcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBieQorOzsgV2lsbGlhbSBEIENs
aW5nZXIKKworOzs7IENvcHlyaWdodCAyMDE1IFdpbGxpYW0gRCBDbGluZ2VyLgorOzs7Cis7Ozsg
UGVybWlzc2lvbiB0byBjb3B5IHRoaXMgc29mdHdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsIHRv
IHVzZSB0aGlzCis7Ozsgc29mdHdhcmUgZm9yIGFueSBsYXdmdWwgcHVycG9zZSwgYW5kIHRvIHJl
ZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlCis7OzsgaXMgZ3JhbnRlZCBzdWJqZWN0IHRvIHRoZSBy
ZXN0cmljdGlvbiB0aGF0IGFsbCBjb3BpZXMgbWFkZSBvZiB0aGlzCis7Ozsgc29mdHdhcmUgbXVz
dCBpbmNsdWRlIHRoaXMgY29weXJpZ2h0IGFuZCBwZXJtaXNzaW9uIG5vdGljZSBpbiBmdWxsLgor
Ozs7Cis7OzsgSSBhbHNvIHJlcXVlc3QgdGhhdCB5b3Ugc2VuZCBtZSBhIGNvcHkgb2YgYW55IGlt
cHJvdmVtZW50cyB0aGF0IHlvdQorOzs7IG1ha2UgdG8gdGhpcyBzb2Z0d2FyZSBzbyB0aGF0IHRo
ZXkgbWF5IGJlIGluY29ycG9yYXRlZCB3aXRoaW4gaXQgdG8KKzs7OyB0aGUgYmVuZWZpdCBvZiB0
aGUgU2NoZW1lIGNvbW11bml0eS4KKwwKKworKGRlZmluZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjUp
CisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZp
LTEyOCkKKyAgIzp1c2UtbW9kdWxlICgocm5ycyBiYXNlKSAjOnNlbGVjdCAoc3ltYm9sPT8pKQor
ICAjOnVzZS1tb2R1bGUgKChpY2UtOSBnZW5lcmljLWhhc2gtdGFibGVzKSAjOnByZWZpeCBnZW46
KQorICAjOmV4cG9ydCAoOzsgVHlwZSBjb25zdHJ1Y3RvcnMgYW5kIHByZWRpY2F0ZQorICAgICAg
ICAgICAgbWFrZS1oYXNoLXRhYmxlCisgICAgICAgICAgICBoYXNoLXRhYmxlIGhhc2gtdGFibGUt
dW5mb2xkIGFsaXN0LT5oYXNoLXRhYmxlCisgICAgICAgICAgICA7OyBQcmVkaWNhdGVzCisgICAg
ICAgICAgICBoYXNoLXRhYmxlPyBoYXNoLXRhYmxlLWNvbnRhaW5zPyBoYXNoLXRhYmxlLWVtcHR5
PyBoYXNoLXRhYmxlPT8KKyAgICAgICAgICAgIGhhc2gtdGFibGUtbXV0YWJsZT8KKyAgICAgICAg
ICAgIDs7IEFjY2Vzc29ycworICAgICAgICAgICAgaGFzaC10YWJsZS1yZWYgaGFzaC10YWJsZS1y
ZWYvZGVmYXVsdAorICAgICAgICAgICAgOzsgTXV0YXRvcnMKKyAgICAgICAgICAgIGhhc2gtdGFi
bGUtc2V0ISBoYXNoLXRhYmxlLWRlbGV0ZSEgaGFzaC10YWJsZS1pbnRlcm4hIGhhc2gtdGFibGUt
dXBkYXRlIQorICAgICAgICAgICAgaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQgaGFzaC10YWJs
ZS1wb3AhIGhhc2gtdGFibGUtY2xlYXIhCisgICAgICAgICAgICA7OyBUaGUgd2hvbGUgaGFzaCB0
YWJsZQorICAgICAgICAgICAgaGFzaC10YWJsZS1zaXplIGhhc2gtdGFibGUta2V5cyBoYXNoLXRh
YmxlLXZhbHVlcyBoYXNoLXRhYmxlLWVudHJpZXMKKyAgICAgICAgICAgIGhhc2gtdGFibGUtZmlu
ZCBoYXNoLXRhYmxlLWNvdW50CisgICAgICAgICAgICA7OyBNYXBwaW5nIGFuZCBmb2xkaW5nCisg
ICAgICAgICAgICBoYXNoLXRhYmxlLW1hcCBoYXNoLXRhYmxlLWZvci1lYWNoIGhhc2gtdGFibGUt
bWFwISBoYXNoLXRhYmxlLW1hcC0+bGlzdAorICAgICAgICAgICAgaGFzaC10YWJsZS1mb2xkIGhh
c2gtdGFibGUtcHJ1bmUhCisgICAgICAgICAgICA7OyBDb3B5aW5nCisgICAgICAgICAgICBoYXNo
LXRhYmxlLWNvcHkgaGFzaC10YWJsZS1lbXB0eS1jb3B5CisgICAgICAgICAgICA7OyBDb252ZXJz
aW9uCisgICAgICAgICAgICBoYXNoLXRhYmxlLT5hbGlzdAorICAgICAgICAgICAgOzsgSGFzaCB0
YWJsZXMgYXMgc2V0cworICAgICAgICAgICAgaGFzaC10YWJsZS11bmlvbiEgaGFzaC10YWJsZS1p
bnRlcnNlY3Rpb24hIGhhc2gtdGFibGUtZGlmZmVyZW5jZSEKKyAgICAgICAgICAgIGhhc2gtdGFi
bGUteG9yIQorICAgICAgICAgICAgOzsgVGhlIGZvbGxvd2luZyBwcm9jZWR1cmVzIGFyZSBkZXBy
ZWNhdGVkIGJ5IFNSRkkgMTI1OgorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1l
eGlzdHM/IC4gaGFzaC10YWJsZS1leGlzdHM/KQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6aGFz
aC10YWJsZS13YWxrIC4gaGFzaC10YWJsZS13YWxrKQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6
aGFzaC10YWJsZS1tZXJnZSEgLiBoYXNoLXRhYmxlLW1lcmdlISkKKyAgICAgICAgICAgIDs7IEZp
eG1lOiBzaG91bGQgd2UgcmVhbGx5IGRlcHJlY2F0ZSB0aGVzZSBpbiBHdWlsZT8KKyAgICAgICAg
ICAgIChkZXByZWNhdGVkOmhhc2ggLiBoYXNoKQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6c3Ry
aW5nLWhhc2ggLiBzdHJpbmctaGFzaCkKKyAgICAgICAgICAgIChkZXByZWNhdGVkOnN0cmluZy1j
aS1oYXNoIC4gc3RyaW5nLWNpLWhhc2gpCisgICAgICAgICAgICAoZGVwcmVjYXRlZDpoYXNoLWJ5
LWlkZW50aXR5IC4gaGFzaC1ieS1pZGVudGl0eSkKKyAgICAgICAgICAgIChkZXByZWNhdGVkOmhh
c2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gLiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1
bmN0aW9uKQorICAgICAgICAgICAgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9u
IC4gaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uKSkKKyAgIzpyZXBsYWNlIChtYWtlLWhhc2gtdGFi
bGUgaGFzaC10YWJsZT8pKQorCisoY29uZC1leHBhbmQtcHJvdmlkZSAoY3VycmVudC1tb2R1bGUp
ICcoc3JmaS0xMjUpKQorCisMCis7OzsgUHJpdmF0ZSBzdHVmZiwgbm90IGV4cG9ydGVkLgorCis7
OyBUZW4gb2YgdGhlIFNSRkkgMTI1IHByb2NlZHVyZXMgYXJlIGRlcHJlY2F0ZWQsIGFuZCBhbm90
aGVyCis7OyB0d28gYWxsb3cgYWx0ZXJuYXRpdmUgYXJndW1lbnRzIHRoYXQgYXJlIGRlcHJlY2F0
ZWQuCisKKyhkZWZpbmUgKGlzc3VlLWRlcHJlY2F0ZWQtd2FybmluZ3M/KSAjdCkKKworKGRlZmlu
ZSAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkIG5hbWUtb2YtZGVwcmVjYXRlZC1taXNmZWF0dXJl
KQorICAoaWYgKG5vdCAobWVtcSBuYW1lLW9mLWRlcHJlY2F0ZWQtbWlzZmVhdHVyZSBhbHJlYWR5
LXdhcm5lZCkpCisgICAgICAoYmVnaW4KKyAgICAgICAgKHNldCEgYWxyZWFkeS13YXJuZWQKKyAg
ICAgICAgICAoY29ucyBuYW1lLW9mLWRlcHJlY2F0ZWQtbWlzZmVhdHVyZSBhbHJlYWR5LXdhcm5l
ZCkpCisgICAgICAgIChpZiAoaXNzdWUtZGVwcmVjYXRlZC13YXJuaW5ncz8pCisgICAgICAgICAg
ICAobGV0ICgob3V0IChjdXJyZW50LWVycm9yLXBvcnQpKSkKKyAgICAgICAgICAgICAgKGRpc3Bs
YXkgIldBUk5JTkc6ICIgb3V0KQorICAgICAgICAgICAgICAoZGlzcGxheSBuYW1lLW9mLWRlcHJl
Y2F0ZWQtbWlzZmVhdHVyZSBvdXQpCisgICAgICAgICAgICAgIChuZXdsaW5lIG91dCkKKyAgICAg
ICAgICAgICAgKGRpc3BsYXkgIiAgICBpcyBkZXByZWNhdGVkIGJ5IFNSRkkgMTI1LiAgU2VlIiBv
dXQpCisgICAgICAgICAgICAgIChuZXdsaW5lIG91dCkKKyAgICAgICAgICAgICAgKGRpc3BsYXkg
IiAgICAiIG91dCkKKyAgICAgICAgICAgICAgKGRpc3BsYXkgdXJsOmRlcHJlY2F0ZWQgb3V0KQor
ICAgICAgICAgICAgICAobmV3bGluZSBvdXQpKSkpKSkKKworKGRlZmluZSB1cmw6ZGVwcmVjYXRl
ZAorICAiaHR0cDovL3NyZmkuc2NoZW1lcnMub3JnL3NyZmktMTI1L3NyZmktMTI1Lmh0bWwiKQor
Cis7OyBMaXN0IG9mIGRlcHJlY2F0ZWQgZmVhdHVyZXMgZm9yIHdoaWNoIGEgd2FybmluZyBoYXMg
YWxyZWFkeQorOzsgYmVlbiBpc3N1ZWQuCisKKyhkZWZpbmUgYWxyZWFkeS13YXJuZWQgJygpKQor
Cis7OzsgQ29tZW50YXJ5IGZyb20gU1JGSSAxMjUgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24KKzs7
OworOzs7IENvbXBhcmF0b3JzIGNvbnRhaW4gYSB0eXBlIHRlc3QgcHJlZGljYXRlLCB3aGljaCBp
bXBsZW1lbnRhdGlvbnMKKzs7OyBvZiB0aGUgaGFzaC10YWJsZS1zZXQhIHByb2NlZHVyZSBjYW4g
dXNlIHRvIHJlamVjdCBpbnZhbGlkIGtleXMuCis7OzsgVGhhdCdzIGhhcmQgdG8gZG8gd2l0aG91
dCBzYWNyaWZpY2luZyBpbnRlcm9wZXJhYmlsaXR5IHdpdGggUjZSUworOzs7IGFuZC9vciBTUkZJ
IDY5IGFuZC9vciBTUkZJIDEyNiBoYXNoIHRhYmxlcy4KKzs7OworOzs7IEZ1bGwgaW50ZXJvcGVy
YWJpbGl0eSBtZWFucyB0aGUgaGFzaCB0YWJsZXMgaW1wbGVtZW50ZWQgaGVyZSBhcmUKKzs7OyBp
bnRlcmNoYW5nZWFibGUgd2l0aCB0aGUgU1JGSSAxMjYgaGFzaHRhYmxlcyB1c2VkIHRvIGltcGxl
bWVudCB0aGVtLgorOzs7IFNSRkkgNjkgYW5kIFI2UlMgYW5kIFNSRkkgMTI2IGhhc2h0YWJsZXMg
ZG9uJ3QgY29udGFpbiBjb21wYXJhdG9ycywKKzs7OyBzbyBhbnkgYXNzb2NpYXRpb24gYmV0d2Vl
biBhIGhhc2ggdGFibGUgYW5kIGl0cyBjb21wYXJhdG9yIHdvdWxkIGhhdmUKKzs7OyB0byBiZSBt
YWludGFpbmVkIG91dHNpZGUgdGhlIHJlcHJlc2VudGF0aW9uIG9mIGhhc2ggdGFibGVzIHRoZW1z
ZWx2ZXMsCis7Ozsgd2hpY2ggaXMgcHJvYmxlbWF0aWMgdW5sZXNzIHdlYWsgcG9pbnRlcnMgYXJl
IGF2YWlsYWJsZS4KKzs7OworOzs7IE5vdCBhbGwgb2YgdGhlIGhhc2ggdGFibGVzIGltcGxlbWVu
dGVkIGhlcmUgd2lsbCBoYXZlIGNvbXBhcmF0b3JzCis7OzsgYXNzb2NpYXRlZCB3aXRoIHRoZW0g
YW55d2F5LCBiZWNhdXNlIGFuIGVxdWl2YWxlbmNlIHByb2NlZHVyZQorOzs7IGFuZCBoYXNoIGZ1
bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIGhhc2ggdGFibGUgaW5zdGVhZCBvZgorOzs7
IGEgY29tcGFyYXRvciAoYWx0aG91Z2ggdGhhdCB1c2FnZSBpcyBkZXByZWNhdGVkIGJ5IFNSRkkg
MTI1KS4KKzs7OworOzs7IE9uZSB3YXkgdG8gcHJlc2VydmUgaW50ZXJvcGVyYWJpbGl0eSB3aGls
ZSBlbmZvcmNpbmcgYSBjb21wYXJhdG9yJ3MKKzs7OyB0eXBlIHRlc3QgaXMgdG8gaW5jb3Jwb3Jh
dGUgdGhhdCB0ZXN0IGludG8gYSBoYXNoIHRhYmxlJ3MgaGFzaAorOzs7IGZ1bmN0aW9uLiAgVGhl
IGFkdmFudGFnZSBvZiBkb2luZyB0aGF0IHNob3VsZCBiZSB3ZWlnaGVkIGFnYWluc3QKKzs7OyB0
aGVzZSBkaXNhZHZhbnRhZ2VzOgorOzs7Cis7OzsgICAgIElmIHRoZSB0eXBlIHRlc3QgaXMgc2xv
dywgdGhlbiBoYXNoaW5nIHdvdWxkIGFsc28gYmUgc2xvd2VyLgorOzs7Cis7OzsgICAgIFRoZSBS
NlJTLCBTUkZJIDY5LCBhbmQgU1JGSSAxMjYgQVBJcyBhbGxvdyBleHRyYWN0aW9uIG9mCis7Ozsg
ICAgIGEgaGFzaCBmdW5jdGlvbiBmcm9tIHNvbWUgaGFzaCB0YWJsZXMuCis7OzsgICAgIFNvbWUg
cHJvZ3JhbW1lcnMgbWlnaHQgZXhwZWN0IHRoYXQgaGFzaCBmdW5jdGlvbiB0byBiZSB0aGUKKzs7
OyAgICAgaGFzaCBmdW5jdGlvbiBlbmNhcHN1bGF0ZWQgYnkgdGhlIGNvbXBhcmF0b3IgKGluIHRo
ZSBzZW5zZQorOzs7ICAgICBvZiBlcT8sIHBlcmhhcHMpIGV2ZW4gdGhvdWdoIHRoaXMgQVBJIG1h
a2VzIG5vIHN1Y2ggZ3VhcmFudGVlCis7OzsgICAgIChhbmQgZXh0cmFjdGlvbiBvZiB0aGF0IGhh
c2ggZnVuY3Rpb24gZnJvbSBhbiBleGlzdGluZyBoYXNoCis7OzsgICAgIHRhYmxlIGNhbiBvbmx5
IGJlIGRvbmUgYnkgY2FsbGluZyBhIGRlcHJlY2F0ZWQgcHJvY2VkdXJlKS4KKworOzsgSWYgJWVu
Zm9yY2UtY29tcGFyYXRvci10eXBlLXRlc3RzIGlzIHRydWUsIHRoZW4gbWFrZS1oYXNoLXRhYmxl
LAorOzsgd2hlbiBwYXNzZWQgYSBjb21wYXJhdG9yLCB3aWxsIHVzZSBhIGhhc2ggZnVuY3Rpb24g
dGhhdCBlbmZvcmNlcworOzsgdGhlIGNvbXBhcmF0b3IncyB0eXBlIHRlc3QuCisKKyhkZWZpbmUg
JWVuZm9yY2UtY29tcGFyYXRvci10eXBlLXRlc3RzICN0KQorCis7OzsgRG9uJ3QgdXNlIEhBU0gt
RlVOQ1RJT04gaWYgRVFVSVYgaXMgYSAoa25vd24pIHJlZmluZW1lbnQgb2YgRVFVQUw/CisoZGVm
aW5lICglZ2V0LWhhc2gtdGFibGUtaGFzaC1mdW5jdGlvbiBlcXVpdiBoYXNoLWZ1bmN0aW9uKQor
ICAoaWYgKG9yIChlcT8gZXE/IGVxdWl2KQorICAgICAgICAgIChlcT8gZXF2PyBlcXVpdikKKyAg
ICAgICAgICAoZXE/IGVxdWFsPyBlcXVpdikKKyAgICAgICAgICAoZXE/IHN0cmluZz0/IGVxdWl2
KSkKKyAgICAgIDs7IExldCBHRU5FUklDLUhBU0gtVEFCTEVTIGRlY2lkZSBhIGJldHRlciBIQVNI
LUZVTkNUSU9OCisgICAgICAjZgorICAgICAgOzsgTm90IHJlcXVpcmVkIGJ5IHNwZWNpZmljYXRp
b24sIGJ1dCBpbXBsZW1lbnRlZCBieSBzdGFuZGFyZAorICAgICAgOzsgaW1wbGVtZW50YXRpb24K
KyAgICAgIChpZiAoZXE/IHN5bWJvbD0/IGVxdWl2KQorICAgICAgICAgIHN5bWJvbC1oYXNoCisg
ICAgICAgICAgaGFzaC1mdW5jdGlvbikpKQorCis7OzsgR2l2ZW4gYSBjb21wYXJhdG9yLCByZXR1
cm4gaXRzIGhhc2ggZnVuY3Rpb24sIHBvc3NpYmx5IGF1Z21lbnRlZAorOzs7IGJ5IHRoZSBjb21w
YXJhdG9yJ3MgdHlwZSB0ZXN0LgorKGRlZmluZSAoJWNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBj
b21wYXJhdG9yKQorICAobGV0ICgob2theT8gKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0
ZSBjb21wYXJhdG9yKSkKKyAgICAgICAgKGhhc2gtZnVuY3Rpb24gKCVnZXQtaGFzaC10YWJsZS1o
YXNoLWZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAoY29tcGFyYXRvci1lcXVhbGl0
eS1wcmVkaWNhdGUgY29tcGFyYXRvcikKKyAgICAgICAgICAgICAgICAgICAgICAgIChjb21wYXJh
dG9yLWhhc2gtZnVuY3Rpb24gY29tcGFyYXRvcikpKSkKKyAgICAoYW5kIGhhc2gtZnVuY3Rpb24K
KyAgICAgICAgIChpZiAoYW5kICVlbmZvcmNlLWNvbXBhcmF0b3ItdHlwZS10ZXN0cworICAgICAg
ICAgICAgICAgICAgOzsgVGhlc2UgcHJvY2VkdXJlcyBhbHJlYWR5IHRlc3QgdHlwZQorICAgICAg
ICAgICAgICAgICAgKG5vdCAob3IgKGVxPyBoYXNoLWZ1bmN0aW9uIHN5bWJvbC1oYXNoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGVxPyBoYXNoLWZ1bmN0aW9uIHN0cmluZy1jaS1oYXNo
KSkpKQorICAgICAgICAgICAgIChsYW1iZGEgKHgpCisgICAgICAgICAgICAgICAoY29uZCAoKG5v
dCAob2theT8geCkpCisgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJLZXkgcmVqZWN0ZWQg
YnkgaGFzaC10YWJsZSBjb21wYXJhdG9yIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IpKQorICAgICAgICAgICAg
ICAgICAgICAgKGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAoaGFzaC1mdW5jdGlvbiB4KSkp
KQorICAgICAgICAgICAgIGhhc2gtZnVuY3Rpb24pKSkpCisKKzs7OyBXZSBsZXQgR0VORVJJQy1I
QVNILVRBQkxFUyBkZWNpZGUgd2hpY2ggd2Vha25lc3NlcyBhcmUgc3VwcG9ydGVkCisoZGVmaW5l
ICglY2hlY2stb3B0aW9uYWwtYXJndW1lbnRzIHByb2NuYW1lIGFyZ3MpCisgIChpZiAobWVtcSAn
dGhyZWFkLXNhZmUgYXJncykKKyAgICAgIChlcnJvciAoc3RyaW5nLWFwcGVuZCAoc3ltYm9sLT5z
dHJpbmcgcHJvY25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogdW5zdXBwb3J0
ZWQgb3B0aW9uYWwgYXJndW1lbnQocykiKQorICAgICAgICAgICAgIGFyZ3MpKSkKKworKGRlZmlu
ZSAoJWdldC1oYXNoLXRhYmxlLXdlYWtuZXNzIGFyZ3MpCisgIChjb25kCisgICAoKG1lbXEgJ2Vw
aGVtZXJhbC12YWx1ZXMgYXJncykKKyAgICAoaWYgKG9yIChtZW1xICdlcGhlbWVyYWwta2V5cyBh
cmdzKQorICAgICAgICAgICAgKG1lbXEgJ3dlYWsta2V5cyBhcmdzKSkKKyAgICAgICAgJ2VwaGVt
ZXJhbC1rZXktYW5kLXZhbHVlCisgICAgICAgICdlcGhlbWVyYWwtdmFsdWUpKQorICAgKChtZW1x
ICdlcGhlbWVyYWwta2V5cyBhcmdzKQorICAgIChpZiAobWVtcSAnd2Vhay12YWx1ZXMgYXJncykK
KyAgICAgICAgJ2VwaGVtZXJhbC1rZXktYW5kLXZhbHVlCisgICAgICAgICdlcGhlbWVyYWwta2V5
KSkKKyAgICgobWVtcSAnd2Vhay1rZXlzIGFyZ3MpCisgICAgKGlmIChtZW1xICd3ZWFrLXZhbHVl
cyBhcmdzKQorICAgICAgICAnd2Vhay1rZXktYW5kLXZhbHVlCisgICAgICAgICd3ZWFrLWtleSkp
CisgICAoKG1lbXEgJ3dlYWstdmFsdWVzIGFyZ3MpCisgICAgJ3dlYWstdmFsdWUpCisgICAoZWxz
ZSAjZikpKQorCisoZGVmaW5lICglZ2V0LWhhc2gtdGFibGUtY2FwYWNpdHkgYXJncykKKyAgKG9y
IChmaW5kIGludGVnZXI/IGFyZ3MpIDEpKQorCisMCis7OzsgQ29uc3RydWN0b3JzLgorCis7Ozsg
Q29tZW50YXJ5IGZyb20gU1JGSSAxMjUgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24KKzs7OworOzs7
IFRoZSBmaXJzdCBhcmd1bWVudCBjYW4gYmUgYSBjb21wYXJhdG9yIG9yIGFuIGVxdWFsaXR5IHBy
ZWRpY2F0ZS4KKzs7OworOzs7IElmIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIGNvbXBhcmF0b3Is
IGFueSByZW1haW5pbmcgYXJndW1lbnRzCis7OzsgYXJlIGltcGxlbWVudGF0aW9uLWRlcGVuZGVu
dCwgYnV0IGEgbm9uLW5lZ2F0aXZlIGV4YWN0IGludGVnZXIKKzs7OyBzaG91bGQgYmUgaW50ZXJw
cmV0ZWQgYXMgYW4gaW5pdGlhbCBjYXBhY2l0eSBhbmQgdGhlIHN5bWJvbHMKKzs7OyB0aHJlYWQt
c2FmZSwgd2Vhay1rZXlzLCBlcGhlbWVyYWwta2V5cywgd2Vhay12YWx1ZXMsIGFuZAorOzs7IGVt
cGhlbWVyYWwtdmFsdWVzIHNob3VsZCBiZSBpbnRlcnByZXRlZCBzcGVjaWFsbHkuICAoVGhlc2UK
Kzs7OyBzcGVjaWFsIHN5bWJvbHMgYXJlIGRpc3RpbmN0IGZyb20gdGhlIGFuYWxvZ291cyBzcGVj
aWFsIHN5bWJvbHMKKzs7OyBpbiBTUkZJIDEyNi4pCis7OzsKKzs7OyBJZiB0aGUgZmlyc3QgYXJn
dW1lbnQgaXMgbm90IGEgY29tcGFyYXRvciwgdGhlbiBpdCBoYWQgYmV0dGVyCis7OzsgYmUgYW4g
ZXF1YWxpdHkgcHJlZGljYXRlICh3aGljaCBpcyBkZXByZWNhdGVkIGJ5IFNSRkkgMTI1KS4KKzs7
OyBJZiBhIHNlY29uZCBhcmd1bWVudCBpcyBwcmVzZW50IGFuZCBpcyBhIHByb2NlZHVyZSwgdGhl
biBpdCdzCis7OzsgYSBoYXNoIGZ1bmN0aW9uICh3aGljaCBpcyBhbGxvd2VkIG9ubHkgZm9yIHRo
ZSBkZXByZWNhdGVkIGNhc2UKKzs7OyBpbiB3aGljaCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYW4g
ZXF1YWxpdHkgcHJlZGljYXRlKS4gIElmIGEKKzs7OyBzZWNvbmQgYXJndW1lbnQgaXMgbm90IGEg
cHJvY2VkdXJlLCB0aGVuIGl0J3Mgc29tZSBraW5kIG9mCis7OzsgaW1wbGVtZW50YXRpb24tZGVw
ZW5kZW50IG9wdGlvbmFsIGFyZ3VtZW50LCBhcyBhcmUgYWxsIGFyZ3VtZW50cworOzs7IGJleW9u
ZCB0aGUgc2Vjb25kLgorOzs7Cis7OzsgU1JGSSAxMjggZGVmaW5lcyBtYWtlLWVxLWNvbXBhcmF0
b3IsIG1ha2UtZXF2LWNvbXBhcmF0b3IsIGFuZAorOzs7IG1ha2UtZXF1YWwtY29tcGFyYXRvciBw
cm9jZWR1cmVzIHdob3NlIGhhc2ggZnVuY3Rpb24gaXMgdGhlCis7OzsgZGVmYXVsdC1oYXNoIHBy
b2NlZHVyZSBvZiBTUkZJIDEyOCwgd2hpY2ggaXMgaW5hcHByb3ByaWF0ZQorOzs7IGZvciB1c2Ug
d2l0aCBlcT8gYW5kIGVxdj8gdW5sZXNzIHRoZSBvYmplY3QgYmVpbmcgaGFzaGVkIGlzCis7Ozsg
bmV2ZXIgbXV0YXRlZC4gIE5laXRoZXIgU1JGSSAxMjUgbm9yIDEyOCBwcm92aWRlIGFueSB3YXkg
dG8KKzs7OyBkZWZpbmUgYSBjb21wYXJhdG9yIHdob3NlIGhhc2ggZnVuY3Rpb24gaXMgdHJ1bHkg
Y29tcGF0aWJsZQorOzs7IHdpdGggdGhlIHVzZSBvZiBlcT8gb3IgZXF2PyBhcyBhbiBlcXVhbGl0
eSBwcmVkaWNhdGUuCis7OzsKKzs7OyBUaGF0IHdvdWxkIG1ha2UgU1JGSSAxMjUgYWxtb3N0IGFz
IGJhZCBhcyBTUkZJIDY5IGlmIG5vdCBmb3IKKzs7OyB0aGUgZm9sbG93aW5nIHBhcmFncmFwaCBv
ZiBTUkZJIDEyNToKKzs7OworOzs7ICAgICBJbXBsZW1lbnRhdGlvbnMgYXJlIHBlcm1pdHRlZCB0
byBpZ25vcmUgdXNlci1zcGVjaWZpZWQKKzs7OyAgICAgaGFzaCBmdW5jdGlvbnMgaW4gY2VydGFp
biBjaXJjdW1zdGFuY2VzLiBTcGVjaWZpY2FsbHksCis7OzsgICAgIGlmIHRoZSBlcXVhbGl0eSBw
cmVkaWNhdGUsIHdoZXRoZXIgcGFzc2VkIGFzIHBhcnQgb2YgYQorOzs7ICAgICBjb21wYXJhdG9y
IG9yIGV4cGxpY2l0bHksIGlzIG1vcmUgZmluZS1ncmFpbmVkIChpbiB0aGUKKzs7OyAgICAgc2Vu
c2Ugb2YgUjdSUy1zbWFsbCBzZWN0aW9uIDYuMSkgdGhhbiBlcXVhbD8sIHRoZQorOzs7ICAgICBp
bXBsZW1lbnRhdGlvbiBpcyBmcmVlIOKAlCBpbmRlZWQsIGlzIGVuY291cmFnZWQg4oCUIHRvCis7
OzsgICAgIGlnbm9yZSB0aGUgdXNlci1zcGVjaWZpZWQgaGFzaCBmdW5jdGlvbiBhbmQgdXNlIHNv
bWV0aGluZworOzs7ICAgICBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQuIFRoaXMgYWxsb3dzIHRo
ZSB1c2Ugb2YgYWRkcmVzc2VzCis7OzsgICAgIGFzIGhhc2hlcywgaW4gd2hpY2ggY2FzZSB0aGUg
a2V5cyBtdXN0IGJlIHJlaGFzaGVkIGlmCis7OzsgICAgIHRoZXkgYXJlIG1vdmVkIGJ5IHRoZSBn
YXJiYWdlIGNvbGxlY3Rvci4gU3VjaCBhIGhhc2gKKzs7OyAgICAgZnVuY3Rpb24gaXMgdW5zYWZl
IHRvIHVzZSBvdXRzaWRlIHRoZSBjb250ZXh0IG9mCis7OzsgICAgIGltcGxlbWVudGF0aW9uLXBy
b3ZpZGVkIGhhc2ggdGFibGVzLiBJdCBjYW4gb2YgY291cnNlIGJlCis7OzsgICAgIGV4cG9zZWQg
YnkgYW4gaW1wbGVtZW50YXRpb24gYXMgYW4gZXh0ZW5zaW9uLCB3aXRoCis7OzsgICAgIHN1aXRh
YmxlIHdhcm5pbmdzIGFnYWluc3QgaW5hcHByb3ByaWF0ZSB1c2VzLgorOzs7Cis7OzsgVGhhdCBn
aXZlcyBpbXBsZW1lbnRhdGlvbnMgcGVybWlzc2lvbiB0byBkbyBzb21ldGhpbmcgbW9yZQorOzs7
IHVzZWZ1bCwgYnV0IHdoZW4gc2hvdWxkIGltcGxlbWVudGF0aW9ucyB0YWtlIGFkdmFudGFnZSBv
ZgorOzs7IHRoYXQgcGVybWlzc2lvbj8gIFRoaXMgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgc3Vw
ZXJpb3IKKzs7OyBzb2x1dGlvbiBwcm92aWRlZCBieSBTUkZJIDEyNiB3aGVuZXZlcjoKKzs7Owor
Ozs7ICAgICBBIGNvbXBhcmF0b3IgaXMgcGFzc2VkIGFzIGZpcnN0IGFyZ3VtZW50IGFuZCBpdHMg
ZXF1YWxpdHkKKzs7OyAgICAgcHJlZGljYXRlIGlzIGVxPyBvciBlcXY/LgorOzs7Cis7OzsgICAg
IFRoZSBlcT8gb3IgZXF2PyBwcm9jZWR1cmUgaXMgcGFzc2VkIGFzIGZpcnN0IGFyZ3VtZW50Cis7
OzsgICAgICh3aGljaCBpcyBhIGRlcHJlY2F0ZWQgdXNhZ2UpLgorCisoZGVmaW5lIChtYWtlLWhh
c2gtdGFibGUgY29tcGFyYXRvci9lcXVpdiAuIHJlc3QpCisgIChpZiAoY29tcGFyYXRvcj8gY29t
cGFyYXRvci9lcXVpdikKKyAgICAgIChsZXQgKChlcXVpdiAoY29tcGFyYXRvci1lcXVhbGl0eS1w
cmVkaWNhdGUgY29tcGFyYXRvci9lcXVpdikpCisgICAgICAgICAgICAoaGFzaC1mdW5jdGlvbiAo
JWNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBjb21wYXJhdG9yL2VxdWl2KSkpCisgICAgICAgICgl
bWFrZS1oYXNoLXRhYmxlIGVxdWl2IGhhc2gtZnVuY3Rpb24gcmVzdCkpCisgICAgICAobGV0KiAo
KGVxdWl2IGNvbXBhcmF0b3IvZXF1aXYpCisgICAgICAgICAgICAgKGhhc2gtZnVuY3Rpb24gKGlm
IChhbmQgKG5vdCAobnVsbD8gcmVzdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHByb2NlZHVyZT8gKGNhciByZXN0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChjYXIgcmVzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2YpKQor
ICAgICAgICAgICAgIChyZXN0IChpZiBoYXNoLWZ1bmN0aW9uIChjZHIgcmVzdCkgcmVzdCkpKQor
ICAgICAgICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkICdzcmZpLTY5LXN0eWxlOm1ha2UtaGFz
aC10YWJsZSkKKyAgICAgICAgKCVtYWtlLWhhc2gtdGFibGUgZXF1aXYgKCVnZXQtaGFzaC10YWJs
ZS1oYXNoLWZ1bmN0aW9uIGVxdWl2IGhhc2gtZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3QpKSkpCisKKyhkZWZpbmUgKCVtYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1m
dW5jdGlvbiBvcHRzKQorICAoJWNoZWNrLW9wdGlvbmFsLWFyZ3VtZW50cyAnbWFrZS1oYXNoLXRh
YmxlIG9wdHMpCisgIChsZXQgKCh3ZWFrbmVzcyAoJWdldC1oYXNoLXRhYmxlLXdlYWtuZXNzIG9w
dHMpKQorICAgICAgICAoY2FwYWNpdHkgKCVnZXQtaGFzaC10YWJsZS1jYXBhY2l0eSBvcHRzKSkp
CisgICAgKGdlbjptYWtlLWhhc2gtdGFibGUgZXF1aXYgaGFzaC1mdW5jdGlvbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICM6Y2FwYWNpdHkgY2FwYWNpdHkgIzp3ZWFrbmVzcyB3ZWFrbmVzcykp
KQorCisoZGVmaW5lIChoYXNoLXRhYmxlIGNvbXBhcmF0b3IgLiBhcmdzKQorICAobGV0ICgoZXF1
aXYgKGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlIGNvbXBhcmF0b3IpKQorICAgICAgICAo
aGFzaC1mdW5jdGlvbiAoJWNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBjb21wYXJhdG9yKSkpCisg
ICAgKGFwcGx5IGdlbjpoYXNoLXRhYmxlIChpZiBoYXNoLWZ1bmN0aW9uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobGlzdCBlcXVpdiBoYXNoLWZ1bmN0aW9uKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXF1aXYpCisgICAgICAgICAgIGFyZ3MpKSkKKworKGRlZmluZSAo
aGFzaC10YWJsZS11bmZvbGQgc3RvcD8gbWFwcGVyIHN1Y2Nlc3NvciBzZWVkIGNvbXBhcmF0b3Ig
LiByZXN0KQorICAobGV0ICgoZXF1aXYgKGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlIGNv
bXBhcmF0b3IpKQorICAgICAgICAoaGFzaC1mdW5jdGlvbiAoJWNvbXBhcmF0b3ItaGFzaC1mdW5j
dGlvbiBjb21wYXJhdG9yKSkKKyAgICAgICAgKHdlYWtuZXNzICglZ2V0LWhhc2gtdGFibGUtd2Vh
a25lc3MgcmVzdCkpCisgICAgICAgIChjYXBhY2l0eSAoJWdldC1oYXNoLXRhYmxlLWNhcGFjaXR5
IHJlc3QpKSkKKyAgICAoZ2VuOmhhc2gtdGFibGUtdW5mb2xkIHN0b3A/IG1hcHBlciBzdWNjZXNz
b3Igc2VlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1aXYgaGFzaC1mdW5jdGlvbiAj
OndlYWtuZXNzIHdlYWtuZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5
IGNhcGFjaXR5KSkpCisKKyhkZWZpbmUgKGFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IGNvbXBhcmF0
b3IvZXF1aXYgLiByZXN0KQorICAoaWYgKHByb2NlZHVyZT8gY29tcGFyYXRvci9lcXVpdikKKyAg
ICAgIChsZXQqICgoZXF1aXYgY29tcGFyYXRvci9lcXVpdikKKyAgICAgICAgICAgICAoaGFzaC1m
dW5jdGlvbiAoYW5kIChwYWlyPyByZXN0KSAocHJvY2VkdXJlPyAoY2FyIHJlc3QpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciByZXN0KSkpCisgICAgICAgICAgICAgKHJl
c3QgKGlmIGhhc2gtZnVuY3Rpb24gKGNkciByZXN0KSByZXN0KSkKKyAgICAgICAgICAgICAoaGFz
aC1mdW5jdGlvbiAoJWdldC1oYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24gZXF1aXYgaGFzaC1mdW5j
dGlvbikpCisgICAgICAgICAgICAgKHdlYWtuZXNzICglZ2V0LWhhc2gtdGFibGUtd2Vha25lc3Mg
cmVzdCkpCisgICAgICAgICAgICAgKGNhcGFjaXR5ICglZ2V0LWhhc2gtdGFibGUtY2FwYWNpdHkg
cmVzdCkpKQorICAgICAgICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkICdzcmZpLTY5LXN0eWxl
OmFsaXN0LT5oYXNoLXRhYmxlKQorICAgICAgICAoZ2VuOmFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0
IGVxdWl2IGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNh
cGFjaXR5IGNhcGFjaXR5ICM6d2Vha25lc3Mgd2Vha25lc3MpKQorICAgICAgKGxldCogKChlcXVp
diAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgY29tcGFyYXRvci9lcXVpdikpCisgICAg
ICAgICAgICAgKGhhc2gtZnVuY3Rpb24gKCVjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY29tcGFy
YXRvci9lcXVpdikpCisgICAgICAgICAgICAgKHdlYWtuZXNzICglZ2V0LWhhc2gtdGFibGUtd2Vh
a25lc3MgcmVzdCkpCisgICAgICAgICAgICAgKGNhcGFjaXR5ICglZ2V0LWhhc2gtdGFibGUtY2Fw
YWNpdHkgcmVzdCkpKQorICAgICAgICAoZ2VuOmFsaXN0LT5oYXNoLXRhYmxlIGFsaXN0IGVxdWl2
IGhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOmNhcGFjaXR5
IGNhcGFjaXR5ICM6d2Vha25lc3Mgd2Vha25lc3MpKSkpCisKKwwKKzs7OzsgQWNjZXNzaW5nIHRh
YmxlIGl0ZW1zCisKKyhkZWZpbmUgaGFzaC10YWJsZS1yZWYgZ2VuOmhhc2gtdGFibGUtcmVmKQor
KGRlZmluZSBoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGdlbjpoYXNoLXRhYmxlLXJlZi9kZWZhdWx0
KQorCisMCis7OzsgUHJlZGljYXRlcy4KKworKGRlZmluZSBoYXNoLXRhYmxlPyBnZW46aGFzaC10
YWJsZT8pCisoZGVmaW5lIGhhc2gtdGFibGUtZW1wdHk/IGdlbjpoYXNoLXRhYmxlLWVtcHR5PykK
KyhkZWZpbmUgaGFzaC10YWJsZS1jb250YWlucz8gZ2VuOmhhc2gtdGFibGUtY29udGFpbnM/KQor
KGRlZmluZSBoYXNoLXRhYmxlLW11dGFibGU/IGdlbjpoYXNoLXRhYmxlLW11dGFibGU/KQorCiso
ZGVmaW5lIChoYXNoLXRhYmxlPT8gdmFsdWUtY29tcGFyYXRvciBodDEgaHQyKQorICAoZ2VuOmhh
c2gtdGFibGU9PyAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgdmFsdWUtY29tcGFyYXRv
cikKKyAgICAgICAgICAgICAgICAgICAgaHQxIGh0MikpCisKKwwKKzs7OyBNdXRhdG9ycy4KKwor
KGRlZmluZSBoYXNoLXRhYmxlLXNldCEgZ2VuOmhhc2gtdGFibGUtc2V0ISkKKyhkZWZpbmUgaGFz
aC10YWJsZS1kZWxldGUhIGdlbjpoYXNoLXRhYmxlLWRlbGV0ZSEpCisoZGVmaW5lIGhhc2gtdGFi
bGUtaW50ZXJuISBnZW46aGFzaC10YWJsZS1pbnRlcm4hKQorKGRlZmluZSBoYXNoLXRhYmxlLXVw
ZGF0ZSEgZ2VuOmhhc2gtdGFibGUtdXBkYXRlISkKKyhkZWZpbmUgaGFzaC10YWJsZS11cGRhdGUh
L2RlZmF1bHQgZ2VuOmhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0KQorKGRlZmluZSBoYXNoLXRh
YmxlLXBvcCEgZ2VuOmhhc2gtdGFibGUtcG9wISkKKyhkZWZpbmUgKGhhc2gtdGFibGUtY2xlYXIh
IGh0KSAoZ2VuOmhhc2gtdGFibGUtY2xlYXIhIGh0KSkKKworDAorOzsgVGhlIHdob2xlIGhhc2gg
dGFibGUuCisKKyhkZWZpbmUgaGFzaC10YWJsZS1zaXplIGdlbjpoYXNoLXRhYmxlLXNpemUpCiso
ZGVmaW5lIGhhc2gtdGFibGUta2V5cyBnZW46aGFzaC10YWJsZS1rZXlzKQorKGRlZmluZSBoYXNo
LXRhYmxlLXZhbHVlcyBnZW46aGFzaC10YWJsZS12YWx1ZXMpCisoZGVmaW5lIGhhc2gtdGFibGUt
ZW50cmllcyBnZW46aGFzaC10YWJsZS1lbnRyaWVzKQorKGRlZmluZSBoYXNoLXRhYmxlLWZpbmQg
Z2VuOmhhc2gtdGFibGUtZmluZCkKKyhkZWZpbmUgaGFzaC10YWJsZS1jb3VudCBnZW46aGFzaC10
YWJsZS1jb3VudCkKKworDAorOzs7IE1hcHBpbmcgYW5kIGZvbGRpbmcuCisKKyhkZWZpbmUgaGFz
aC10YWJsZS1tYXAtPmxpc3QgZ2VuOmhhc2gtdGFibGUtbWFwLT5saXN0KQorKGRlZmluZSBoYXNo
LXRhYmxlLWZvci1lYWNoIGdlbjpoYXNoLXRhYmxlLWZvci1lYWNoKQorKGRlZmluZSBoYXNoLXRh
YmxlLXBydW5lISBnZW46aGFzaC10YWJsZS1wcnVuZSEpCisoZGVmaW5lIGhhc2gtdGFibGUtbWFw
ISBnZW46aGFzaC10YWJsZS1tYXAhKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLW1hcCBwcm9jIGNv
bXBhcmF0b3IgaHQpCisgIChsZXQgKChlcXVpdiAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNh
dGUgY29tcGFyYXRvcikpCisgICAgICAgIChoYXNoLWZ1bmN0aW9uICglY29tcGFyYXRvci1oYXNo
LWZ1bmN0aW9uIGNvbXBhcmF0b3IpKSkKKyAgICAoZ2VuOmhhc2gtdGFibGUtbWFwIHByb2MgaHQg
ZXF1aXYgaGFzaC1mdW5jdGlvbikpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWZvbGQgcHJvYyBp
bml0IGh0KQorICAoaWYgKGhhc2gtdGFibGU/IHByb2MpCisgICAgICAoYmVnaW4gKGlzc3VlLXdh
cm5pbmctZGVwcmVjYXRlZCAnc3JmaS02OS1zdHlsZTpoYXNoLXRhYmxlLWZvbGQpCisgICAgICAg
ICAgICAgKGhhc2gtdGFibGUtZm9sZCBpbml0IGh0IHByb2MpKQorICAgICAgKGdlbjpoYXNoLXRh
YmxlLWZvbGQgcHJvYyBpbml0IGh0KSkpCisKKworDAorOzs7IENvcHlpbmcgYW5kIGNvbnZlcnNp
b24uCisKKyhkZWZpbmUgaGFzaC10YWJsZS0+YWxpc3QgZ2VuOmhhc2gtdGFibGUtPmFsaXN0KQor
CisoZGVmaW5lKiAoaGFzaC10YWJsZS1jb3B5IGh0ICM6b3B0aW9uYWwgbXV0YWJsZSkKKyAgKGdl
bjpoYXNoLXRhYmxlLWNvcHkgaHQgIzptdXRhYmxlIG11dGFibGUpKQorCisoZGVmaW5lIChoYXNo
LXRhYmxlLWVtcHR5LWNvcHkgaHQpCisgIChnZW46aGFzaC10YWJsZS1lbXB0eS1jb3B5IGh0KSkK
KworDAorOzs7IEhhc2ggdGFibGVzIGFzIHNldHMuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdW5p
b24hIGh0MSBodDIpCisgICh1bmxlc3MgKGVxPyAoZ2VuOmhhc2gtdGFibGUtZXF1aXZhbGVuY2Ut
ZnVuY3Rpb24gaHQxKQorICAgICAgICAgICAgICAgKGdlbjpoYXNoLXRhYmxlLWVxdWl2YWxlbmNl
LWZ1bmN0aW9uIGh0MikpCisgICAgKGVycm9yICJIYXNoIHRhYmxlcyBoYXZlIGRpZmZlcmVudCBl
cXVpdmFsZW5jZSBmdW5jdGlvbnMiIGh0MSBodDIpKQorICAoZ2VuOmhhc2gtdGFibGUtdW5pb24h
IGh0MSBodDIpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWludGVyc2VjdGlvbiEgaHQxIGh0MikK
KyAgKHVubGVzcyAoZXE/IChnZW46aGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodDEp
CisgICAgICAgICAgICAgICAoZ2VuOmhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQy
KSkKKyAgICAoZXJyb3IgIkhhc2ggdGFibGVzIGhhdmUgZGlmZmVyZW50IGVxdWl2YWxlbmNlIGZ1
bmN0aW9ucyIgaHQxIGh0MikpCisgIChnZW46aGFzaC10YWJsZS1pbnRlcnNlY3Rpb24hIGh0MSBo
dDIpKQorCisoZGVmaW5lIChoYXNoLXRhYmxlLWRpZmZlcmVuY2UhIGh0MSBodDIpCisgICh1bmxl
c3MgKGVxPyAoZ2VuOmhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVuY3Rpb24gaHQxKQorICAgICAg
ICAgICAgICAgKGdlbjpoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0MikpCisgICAg
KGVycm9yICJIYXNoIHRhYmxlcyBoYXZlIGRpZmZlcmVudCBlcXVpdmFsZW5jZSBmdW5jdGlvbnMi
IGh0MSBodDIpKQorICAoZ2VuOmhhc2gtdGFibGUtZGlmZmVyZW5jZSEgaHQxIGh0MikpCisKKyhk
ZWZpbmUgKGhhc2gtdGFibGUteG9yISBodDEgaHQyKQorICAodW5sZXNzIChlcT8gKGdlbjpoYXNo
LXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0MSkKKyAgICAgICAgICAgICAgIChnZW46aGFz
aC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodDIpKQorICAgIChlcnJvciAiSGFzaCB0YWJs
ZXMgaGF2ZSBkaWZmZXJlbnQgZXF1aXZhbGVuY2UgZnVuY3Rpb25zIiBodDEgaHQyKSkKKyAgKGdl
bjpoYXNoLXRhYmxlLXhvciEgaHQxIGh0MikpCisKKworOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworOzs7Cis7OzsgVGhlIGZv
bGxvd2luZyBwcm9jZWR1cmVzIGFyZSBkZXByZWNhdGVkIGJ5IFNSRkkgMTI1LCBidXQgbXVzdAor
Ozs7IGJlIGV4cG9ydGVkIG5vbmV0aGVsZXNzLgorOzs7Cis7OzsgUHJvZ3JhbXMgdGhhdCBpbXBv
cnQgdGhlIChzcmZpIDEyNSkgbGlicmFyeSBtdXN0IHJlbmFtZSB0aGUKKzs7OyBkZXByZWNhdGVk
IHN0cmluZy1oYXNoIGFuZCBzdHJpbmctY2ktaGFzaCBwcm9jZWR1cmVzIHRvIGF2b2lkCis7Ozsg
Y29uZmxpY3Qgd2l0aCB0aGUgc3RyaW5nLWhhc2ggYW5kIHN0cmluZy1jaS1oYXNoIHByb2NlZHVy
ZXMKKzs7OyBleHBvcnRlZCBieSBTUkZJIDEyNiBhbmQgU1JGSSAxMjguCis7OzsKKzs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsK
KworKGRlZmluZSAoZGVwcmVjYXRlZDpoYXNoIG9iaiAuIHJlc3QpCisgIChpc3N1ZS13YXJuaW5n
LWRlcHJlY2F0ZWQgJ2hhc2gpCisgIChhcHBseSBnZW46aGFzaCBvYmogcmVzdCkpCisKKyhkZWZp
bmUgKGRlcHJlY2F0ZWQ6c3RyaW5nLWhhc2ggb2JqIC4gcmVzdCkKKyAgKGlzc3VlLXdhcm5pbmct
ZGVwcmVjYXRlZCAnc3JmaS0xMjU6c3RyaW5nLWhhc2gpCisgIChhcHBseSBzdHJpbmctaGFzaCBv
YmogcmVzdCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0ZWQ6c3RyaW5nLWNpLWhhc2ggb2JqIC4gcmVz
dCkKKyAgKGlzc3VlLXdhcm5pbmctZGVwcmVjYXRlZCAnc3JmaS0xMjU6c3RyaW5nLWNpLWhhc2gp
CisgIChhcHBseSBzdHJpbmctY2ktaGFzaCBvYmogcmVzdCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0
ZWQ6aGFzaC1ieS1pZGVudGl0eSBvYmogLiByZXN0KQorICAoaXNzdWUtd2FybmluZy1kZXByZWNh
dGVkICdoYXNoLWJ5LWlkZW50aXR5KQorICAoYXBwbHkgZ2VuOmhhc2gtYnktaWRlbnRpdHkgb2Jq
IHJlc3QpKQorCisoZGVmaW5lIChkZXByZWNhdGVkOmhhc2gtdGFibGUtZXF1aXZhbGVuY2UtZnVu
Y3Rpb24gaHQpCisgIChpc3N1ZS13YXJuaW5nLWRlcHJlY2F0ZWQgJ2hhc2gtdGFibGUtZXF1aXZh
bGVuY2UtZnVuY3Rpb24pCisgIChnZW46aGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBo
dCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0KQor
ICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVkICdoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24pCisg
IChnZW46aGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0KSkKKworKGRlZmluZSAoZGVwcmVjYXRl
ZDpoYXNoLXRhYmxlLWV4aXN0cz8gaHQga2V5KQorICAoaXNzdWUtd2FybmluZy1kZXByZWNhdGVk
ICdoYXNoLXRhYmxlLWV4aXN0cz8pCisgIChnZW46aGFzaC10YWJsZS1jb250YWlucz8gaHQga2V5
KSkKKworKGRlZmluZSAoZGVwcmVjYXRlZDpoYXNoLXRhYmxlLXdhbGsgaHQgcHJvYykKKyAgKGlz
c3VlLXdhcm5pbmctZGVwcmVjYXRlZCAnaGFzaC10YWJsZS13YWxrKQorICAoZ2VuOmhhc2gtdGFi
bGUtZm9yLWVhY2ggcHJvYyBodCkpCisKKyhkZWZpbmUgKGRlcHJlY2F0ZWQ6aGFzaC10YWJsZS1t
ZXJnZSEgaHQxIGh0MikKKyAgKGlzc3VlLXdhcm5pbmctZGVwcmVjYXRlZCAnaGFzaC10YWJsZS1t
ZXJnZSEpCisgIChnZW46aGFzaC10YWJsZS11bmlvbiEgaHQxIGh0MikpCisKKzs7IGVvZgpkaWZm
IC0tZ2l0IGEvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbSBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0K
aW5kZXggYTJmNzNiMzI5Li4zODUzN2FhYWMgMTAwNjQ0Ci0tLSBhL3Rlc3Qtc3VpdGUvTWFrZWZp
bGUuYW0KKysrIGIvdGVzdC1zdWl0ZS9NYWtlZmlsZS5hbQpAQCAtMTYyLDYgKzE2Miw3IEBAIFND
TV9URVNUUyA9IHRlc3RzLzAwLWluaXRpYWwtZW52LnRlc3QJCVwKIAkgICAgdGVzdHMvc3JmaS05
OC50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZpLTEwNS50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZp
LTExMS50ZXN0CQkJXAorCSAgICB0ZXN0cy9zcmZpLTEyNS50ZXN0CQkJXAogCSAgICB0ZXN0cy9z
cmZpLTEyNi50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZpLTEyOC50ZXN0CQkJXAogCSAgICB0ZXN0
cy9zcmZpLTQudGVzdAkJCVwKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjUu
dGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjUudGVzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAuLmU1YmE5NWVkMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qtc3Vp
dGUvdGVzdHMvc3JmaS0xMjUudGVzdApAQCAtMCwwICsxLDg2MCBAQAorOzs7OyBzcmZpLTEyNS50
ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDEyNSAtKi0gc2NoZW1lIC0qLQorOzs7OworOzs7
OyAJQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorOzs7
OworOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCis7Ozs7IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7Ozs7IHZlcnNpb24gMyBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OzsKKzs7Ozsg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7Ozs7IExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7Ozs7Cis7Ozs7IFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7Ozsg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisKKzs7OyBUaGUgZm9sbG93aW5n
IHRlc3RzIGFyZSB0aGUgdGVzdHMgZnJvbSBTUkZJLTEyNSByZWZlcmVuY2UKKzs7OyBpbXBsZW1l
bnRhdGlvbiBwb3J0ZWQgdG8gR3VpbGUgdGVzdCBzdWl0ZS4KKworOzs7IENvcHlyaWdodCAoQykg
V2lsbGlhbSBEIENsaW5nZXIgMjAxNS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzs7OworOzs7IFBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
Cis7Ozsgb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv
Y3VtZW50YXRpb24KKzs7OyBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBT
b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLAorOzs7IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0
YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsCis7OzsgcHVibGlz
aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0
d2FyZSwKKzs7OyBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMg
ZnVybmlzaGVkIHRvIGRvIHNvLAorOzs7IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zOgorOzs7Cis7OzsgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUKKzs7OyBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0
YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKzs7OworOzs7IFRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorOzs7IEVY
UFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO
VElFUyBPRgorOzs7IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKzs7OyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVU
SE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorOzs7IENMQUlNLCBE
QU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB
Q1QsCis7OzsgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUKKzs7OyBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ
TkdTIElOIFRIRSBTT0ZUV0FSRS4KKworOzs7IENvbWVudGFyeSBmcm9tIHN0YW5kYXJkIFNSRkkg
MTI1IHRlc3RzOgorOzs7Cis7OzsgVGhpcyBpcyBhIHZlcnkgc2hhbGxvdyBzYW5pdHkgdGVzdCBm
b3IgaGFzaCB0YWJsZXMuCis7OzsKKzs7OyBUZXN0cyBtYXJrZWQgYnkgYSAiRklYTUU6IGdsYXNz
LWJveCIgY29tbWVudCB0ZXN0IGJlaGF2aW9yIG9mIHRoZQorOzs7IHJlZmVyZW5jZSBpbXBsZW1l
bnRhdGlvbiB0aGF0IGlzIG5vdCByZXF1aXJlZCBieSB0aGUgc3BlY2lmaWNhdGlvbi4KKworKGRl
ZmluZS1tb2R1bGUgKHRlc3Qtc3JmaS0xMjUpCisgICM6ZHVwbGljYXRlcyAobGFzdCkKKyAgIzp1
c2UtbW9kdWxlICh0ZXN0LXN1aXRlIGxpYikKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMTI4
KQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjUpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBz
cmZpLTEpCisgICM6dXNlLW1vZHVsZSAocm5ycyBieXRldmVjdG9ycykKKyAgIzp1c2UtbW9kdWxl
ICgocm5ycyBiYXNlKSAjOnNlbGVjdCAoc3ltYm9sPT8pKQorICAjOnVzZS1tb2R1bGUgKChybnJz
KSAjOnNlbGVjdCAobGlzdC1zb3J0IGd1YXJkKSkpCisKKyhkZWZpbmUgKGJ5dGV2ZWN0b3IgLiBh
cmdzKQorICAodTgtbGlzdC0+Ynl0ZXZlY3RvciBhcmdzKSkKKworKGRlZmluZSBkZWZhdWx0LWNv
bXBhcmF0b3IgKG1ha2UtZGVmYXVsdC1jb21wYXJhdG9yKSkKKworKGRlZmluZSBudW1iZXItY29t
cGFyYXRvcgorICAobWFrZS1jb21wYXJhdG9yIHJlYWw/ID0gPCAobGFtYmRhICh4KSAoaW5leGFj
dC0+ZXhhY3QgKGFicyAocm91bmQgeCkpKSkpKQorCisoZGVmaW5lIHN0cmluZy1jb21wYXJhdG9y
CisgIChtYWtlLWNvbXBhcmF0b3Igc3RyaW5nPyBzdHJpbmc9PyBzdHJpbmc8PyBzdHJpbmctaGFz
aCkpCisKKyhkZWZpbmUgc3RyaW5nLWNpLWNvbXBhcmF0b3IKKyAgKG1ha2UtY29tcGFyYXRvciBz
dHJpbmc/IHN0cmluZy1jaT0/IHN0cmluZy1jaTw/IHN0cmluZy1jaS1oYXNoKSkKKworKGRlZmlu
ZSBlcS1jb21wYXJhdG9yIChtYWtlLWVxLWNvbXBhcmF0b3IpKQorCisoZGVmaW5lIGVxdi1jb21w
YXJhdG9yIChtYWtlLWVxdi1jb21wYXJhdG9yKSkKKworOzs7IFJldHVybnMgYW4gaW1tdXRhYmxl
IGhhc2ggdGFibGUuCisKKyhkZWZpbmUgKGhhc2gtdGFibGUtdGFidWxhdGUgY29tcGFyYXRvciBu
IHByb2MpCisgIChsZXQgKChodCAobWFrZS1oYXNoLXRhYmxlIGNvbXBhcmF0b3IpKSkKKyAgICAo
ZG8gKChpIDAgKCsgaSAxKSkpCisgICAgICAgICgoPSBpIG4pCisgICAgICAgICAoaGFzaC10YWJs
ZS1jb3B5IGh0KSkKKyAgICAgIChjYWxsLXdpdGgtdmFsdWVzCisgICAgICAgICAgKGxhbWJkYSAo
KQorICAgICAgICAgICAgKHByb2MgaSkpCisgICAgICAgIChsYW1iZGEgKGtleSB2YWwpCisgICAg
ICAgICAgKGhhc2gtdGFibGUtc2V0ISBodCBrZXkgdmFsKSkpKSkpCisKKzs7OyBDb25zdHJ1Y3Rv
cnMuCisKKyhkZWZpbmUgaHQtZGVmYXVsdCAobWFrZS1oYXNoLXRhYmxlIGRlZmF1bHQtY29tcGFy
YXRvcikpCisKKyhkZWZpbmUgaHQtZXEgKG1ha2UtaGFzaC10YWJsZSBlcS1jb21wYXJhdG9yICdy
YW5kb20tYXJndW1lbnQgImFub3RoZXIiKSkKKworKGRlZmluZSBodC1lcXYgKG1ha2UtaGFzaC10
YWJsZSBlcXYtY29tcGFyYXRvcikpCisKKyhkZWZpbmUgaHQtZXEyIChtYWtlLWhhc2gtdGFibGUg
ZXE/KSkKKworKGRlZmluZSBodC1lcXYyIChtYWtlLWhhc2gtdGFibGUgZXF2PykpCisKKyhkZWZp
bmUgaHQtZXF1YWwgKG1ha2UtaGFzaC10YWJsZSBlcXVhbD8pKQorCisoZGVmaW5lIGh0LXN0cmlu
ZyAobWFrZS1oYXNoLXRhYmxlIHN0cmluZz0/KSkKKworKGRlZmluZSBodC1zdHJpbmctY2kgKG1h
a2UtaGFzaC10YWJsZSBzdHJpbmctY2k9PykpCisKKyhkZWZpbmUgaHQtc3ltYm9sIChtYWtlLWhh
c2gtdGFibGUgc3ltYm9sPT8pKSAgICA7IEZJWE1FOiBnbGFzcy1ib3gKKworKGRlZmluZSBodC1m
aXhudW0gKG1ha2UtaGFzaC10YWJsZSA9IGFicykpCisKKzs7IFNwZWMgc2F5cyBIQVNILVRBQkxF
IHJldHVybnMgYW4gaW1tdXRhYmxlIGhhc2ggdGFibGUsIHNvIHdlIHB1dCBhCis7OyBIQVNILVRB
QkxFLUNPUFkgaGVyZQorKGRlZmluZSBodC1kZWZhdWx0MgorICAoaGFzaC10YWJsZS1jb3B5Cisg
ICAoaGFzaC10YWJsZSBkZWZhdWx0LWNvbXBhcmF0b3IgJ2ZvbyAnYmFyIDEwMS4zICJmZXZlciIg
Jyh4IHkgeikgJyMoKSkKKyAgICN0KSkKKworKGRlZmluZSBodC1maXhudW0yCisgIChoYXNoLXRh
YmxlLXRhYnVsYXRlIG51bWJlci1jb21wYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAgIDEw
CisgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGkpICh2YWx1ZXMgKCogaSBpKSBpKSkp
KQorCisoZGVmaW5lIGh0LXN0cmluZzIKKyAgKGhhc2gtdGFibGUtdW5mb2xkIChsYW1iZGEgKHMp
ICg9IDAgKHN0cmluZy1sZW5ndGggcykpKQorICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAo
cykgKHZhbHVlcyBzIChzdHJpbmctbGVuZ3RoIHMpKSkKKyAgICAgICAgICAgICAgICAgICAgIChs
YW1iZGEgKHMpIChzdWJzdHJpbmcgcyAwICgtIChzdHJpbmctbGVuZ3RoIHMpIDEpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICJwcmVmaXhlcyIKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy1j
b21wYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAnaWdub3JlZDEgJ2lnbm9yZWQyICJpZ25v
cmVkMyIgJyMoaWdub3JlZCA0IDUpKSkKKworKGRlZmluZSBodC1zdHJpbmctY2kyCisgIChhbGlz
dC0+aGFzaC10YWJsZSAnKCgiIiAuIDApICgiTWFyeSIgLiA0KSAoIlBhdWwiIC4gNCkgKCJQZXRl
ciIgLiA1KSkKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy1jaS1jb21wYXJhdG9yCisgICAg
ICAgICAgICAgICAgICAgICAiaWdub3JlZDEiICdpZ25vcmVkMikpCisKKyhkZWZpbmUgaHQtc3lt
Ym9sMgorICAoYWxpc3QtPmhhc2gtdGFibGUgJygobWFyeSAuIHRyYXZlcnMpIChub2VsIC4gc3Rv
b2tleSkgKHBldGVyIC4geWFycm93KSkKKyAgICAgICAgICAgICAgICAgICAgIGVxPykpCisKKyhk
ZWZpbmUgaHQtZXF1YWwyCisgIChhbGlzdC0+aGFzaC10YWJsZSAnKCgoZWR3YXJkKSAuIGFiYmV5
KQorICAgICAgICAgICAgICAgICAgICAgICAoKGRhc2hpZWxsKSAuIGhhbW1ldHQpCisgICAgICAg
ICAgICAgICAgICAgICAgICgoZWR3YXJkKSAuIHRlYWNoKQorICAgICAgICAgICAgICAgICAgICAg
ICAoKG1hcmspIC4gdHdhaW4pKQorICAgICAgICAgICAgICAgICAgICAgZXF1YWw/CisgICAgICAg
ICAgICAgICAgICAgICAoY29tcGFyYXRvci1oYXNoLWZ1bmN0aW9uIGRlZmF1bHQtY29tcGFyYXRv
cikpKQorCisoZGVmaW5lIHRlc3QtdGFibGVzCisgIChsaXN0IGh0LWRlZmF1bHQgICBodC1kZWZh
dWx0MiAgIDsgaW5pdGlhbCBrZXlzOiBmb28sIDEwMS4zLCAoeCB5IHopCisgICAgICAgIGh0LWVx
ICAgICAgICBodC1lcTIgICAgICAgIDsgaW5pdGlhbGx5IGVtcHR5CisgICAgICAgIGh0LWVxdiAg
ICAgICBodC1lcXYyICAgICAgIDsgaW5pdGlhbGx5IGVtcHR5CisgICAgICAgIGh0LWVxdWFsICAg
ICBodC1lcXVhbDIgICAgIDsgaW5pdGlhbCBrZXlzOiAoZWR3YXJkKSwgKGRhc2hpZWxsKSwgKG1h
cmspCisgICAgICAgIGh0LXN0cmluZyAgICBodC1zdHJpbmcyICAgIDsgaW5pdGlhbCBrZXlzOiAi
cCwgInByIiwgLi4uLCAicHJlZml4ZXMiCisgICAgICAgIGh0LXN0cmluZy1jaSBodC1zdHJpbmct
Y2kyIDsgaW5pdGlhbCBrZXlzOiAiIiwgIk1hcnkiLCAiUGF1bCIsICJQZXRlciIKKyAgICAgICAg
aHQtc3ltYm9sICAgIGh0LXN5bWJvbDIgICAgOyBpbml0aWFsIGtleXM6IG1hcnksIG5vZWwsIHBl
dGVyCisgICAgICAgIGh0LWZpeG51bSAgICBodC1maXhudW0yKSkgIDsgaW5pdGlhbCBrZXlzOiAw
LCAxLCA0LCA5LCAuLi4sIDgxCisKKworKHdpdGgtdGVzdC1wcmVmaXggIlNSRkktMTI1IgorCisg
ICh3aXRoLXRlc3QtcHJlZml4ICJwcmVkaWNhdGVzIgorCisgICAgKHBhc3MtaWYtZXF1YWwgImhh
c2gtdGFibGU/IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgKGFwcGVuZCAnKCNmICNmKSAo
bWFwIChsYW1iZGEgKHgpICN0KSB0ZXN0LXRhYmxlcykpCisgICAgICAobWFwIGhhc2gtdGFibGU/
CisgICAgICAgICAgIChjb25zICcjKCkKKyAgICAgICAgICAgICAgICAgKGNvbnMgZGVmYXVsdC1j
b21wYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAgIHRlc3QtdGFibGVzKSkpKQorCisgICAg
KHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtY29udGFpbnM/IGZ1bmN0aW9ucyBwcm9wZXJseSIK
KyAgICAgICAgJygjZiAjdCAjZiAjZiAjZiAjZiAjZiAjdCAjZiAjdCAjZiAjdCAjZiAjdCAjZiAj
dCkKKyAgICAgIChtYXAgaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgdGVzdC10YWJs
ZXMKKyAgICAgICAgICAgJyhmb28gMTAxLjMKKyAgICAgICAgICAgICAgICAgeCAieSIKKyAgICAg
ICAgICAgICAgICAgKDE0IDE1KSAjXG5ld2xpbmUKKyAgICAgICAgICAgICAgICAgKGVkd2FyZCkg
KG1hcmspCisgICAgICAgICAgICAgICAgICJwIiAicHJlZiIKKyAgICAgICAgICAgICAgICAgIm1p
a2UiICJQQVVMIgorICAgICAgICAgICAgICAgICBqYW5lIG5vZWwKKyAgICAgICAgICAgICAgICAg
MCA0KSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1jb250YWlucz8gZnVuY3Rp
b25zIHByb3Blcmx5IgorICAgICAgICAobWFwIChsYW1iZGEgKHgpICNmKSB0ZXN0LXRhYmxlcykK
KyAgICAgIChtYXAgaGFzaC10YWJsZS1jb250YWlucz8KKyAgICAgICAgICAgdGVzdC10YWJsZXMK
KyAgICAgICAgICAgYCgsKGJ5dGV2ZWN0b3IpIDQ3LjkKKyAgICAgICAgICAgICAnIygpICcoKQor
ICAgICAgICAgICAgIGZvbyBiYXIKKyAgICAgICAgICAgICAxOSAoaGVucnkpCisgICAgICAgICAg
ICAgInAiICJwZXJwIgorICAgICAgICAgICAgICJtaWtlIiAiTm9lbCIKKyAgICAgICAgICAgICBq
YW5lIHBhdWwKKyAgICAgICAgICAgICAwIDUpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNo
LXRhYmxlLWVtcHR5PyBmdW5jdGlvbnMgcHJvcGVybHkiCisgICAgICAgICcoI3QgI2YgI3QgI3Qg
I3QgI3QgI3QgI2YgI3QgI2YgI3QgI2YgI3QgI2YgI3QgI2YpCisgICAgICAobWFwIGhhc2gtdGFi
bGUtZW1wdHk/IHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxl
PT8gaXMgcmVmbGVjdGl2ZSIKKyAgICAgICAgKG1hcCAobGFtYmRhICh4KSAjdCkgdGVzdC10YWJs
ZXMpCisgICAgICAobWFwIChsYW1iZGEgKGh0MSBodDIpIChoYXNoLXRhYmxlPT8gZGVmYXVsdC1j
b21wYXJhdG9yIGh0MSBodDIpKQorICAgICAgICAgICB0ZXN0LXRhYmxlcworICAgICAgICAgICB0
ZXN0LXRhYmxlcykpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZT0/IGZ1bmN0aW9u
cyBwcm9wZXJseSIKKyAgICAgICAgJygjZiAjZiAjdCAjdCAjdCAjdCAjZiAjZiAjZiAjZiAjZiAj
ZiAjZiAjZiAjZiAjZikKKyAgICAgIChtYXAgKGxhbWJkYSAoaHQxIGh0MikgKGhhc2gtdGFibGU9
PyBkZWZhdWx0LWNvbXBhcmF0b3IgaHQxIGh0MikpCisgICAgICAgICAgIHRlc3QtdGFibGVzCisg
ICAgICAgICAgIChkbyAoKHRhYmxlcyAocmV2ZXJzZSB0ZXN0LXRhYmxlcykgKGNkZHIgdGFibGVz
KSkKKyAgICAgICAgICAgICAgICAocmV2ICcoKSAoY29ucyAoY2FyIHRhYmxlcykgKGNvbnMgKGNh
ZHIgdGFibGVzKSByZXYpKSkpCisgICAgICAgICAgICAgICAoKG51bGw/IHRhYmxlcykKKyAgICAg
ICAgICAgICAgICByZXYpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1tdXRh
YmxlPyBmdW5jdGlvbnMgcHJvcGVybHkgb24gbXV0YWJsZSBoYXNoIHRhYmxlcyAxIgorICAgICAg
ICAnKCN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICN0ICNmKQorICAg
ICAgKG1hcCBoYXNoLXRhYmxlLW11dGFibGU/IHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlm
LWVxdWFsICJoYXNoLXRhYmxlLW11dGFibGU/IGZ1bmN0aW9ucyBwcm9wZXJseSBvbiBpbW11dGFi
bGUgaGFzaCB0YWJsZXMiCisgICAgICAgIChtYXAgKGxhbWJkYSAoeCkgI2YpIHRlc3QtdGFibGVz
KQorICAgICAgKG1hcCBoYXNoLXRhYmxlLW11dGFibGU/IChtYXAgaGFzaC10YWJsZS1jb3B5IHRl
c3QtdGFibGVzKSkpCisKKyAgICAocGFzcy1pZiAiaGFzaC10YWJsZS1tdXRhYmxlPyBmdW5jdGlv
bnMgcHJvcGVybHkgb24gbXV0YWJsZSBoYXNoIHRhYmxlcyAyIgorICAgICAgKGhhc2gtdGFibGUt
bXV0YWJsZT8gKGhhc2gtdGFibGUtY29weSBodC1maXhudW0yICN0KSkpKQorCisgICh3aXRoLXRl
c3QtcHJlZml4ICJhY2Nlc3NvcnMiCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1y
ZWYgd2hlbiBrZXkgaXMgbm90IGluIHRhYmxlIDEiCisgICAgICAgIChtYXAgKGxhbWJkYSAoaHQp
ICdlcnIpIHRlc3QtdGFibGVzKQorICAgICAgKG1hcCAobGFtYmRhIChodCkKKyAgICAgICAgICAg
ICAoZ3VhcmQgKGV4bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VycikpCisgICAgICAg
ICAgICAgICAoaGFzaC10YWJsZS1yZWYgaHQgJ25vdC1hLWtleSkpKQorICAgICAgICAgICB0ZXN0
LXRhYmxlcykpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1yZWYgd2hlbiBrZXkg
aXMgbm90IGluIHRhYmxlIDIiCisgICAgICAgIChtYXAgKGxhbWJkYSAoaHQpICdlcnIpIHRlc3Qt
dGFibGVzKQorICAgICAgKG1hcCAobGFtYmRhIChodCkKKyAgICAgICAgICAgICAoZ3VhcmQgKGV4
bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VycikpCisgICAgICAgICAgICAgICAoaGFz
aC10YWJsZS1yZWYgaHQgJ25vdC1hLWtleSAobGFtYmRhICgpICdlcnIpKSkpCisgICAgICAgICAg
IHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXJlZiB3aGVu
IGtleSBpcyBub3QgaW4gdGFibGUgMyIKKyAgICAgICAgKG1hcCAobGFtYmRhIChodCkgJ2Vycikg
dGVzdC10YWJsZXMpCisgICAgICAobWFwIChsYW1iZGEgKGh0KQorICAgICAgICAgICAgIChndWFy
ZCAoZXhuCisgICAgICAgICAgICAgICAgICAgICAoZWxzZSAnZXJyKSkKKyAgICAgICAgICAgICAg
IChoYXNoLXRhYmxlLXJlZiBodCAnbm90LWEta2V5IChsYW1iZGEgKCkgJ2VycikgdmFsdWVzKSkp
CisgICAgICAgICAgIHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRh
YmxlLXJlZiBmdW5jdGlvbnMgcHJvcGVybHkiCisgICAgICAgICcoZXJyICJmZXZlciIgZXJyIGVy
ciBlcnIgZXJyIGVyciB0d2FpbiBlcnIgNCBlcnIgNCBlcnIgc3Rvb2tleSBlcnIgMikKKyAgICAg
IChtYXAgKGxhbWJkYSAoaHQga2V5KQorICAgICAgICAgICAgIChndWFyZCAoZXhuCisgICAgICAg
ICAgICAgICAgICAgICAoZWxzZSAnZXJyKSkKKyAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLXJl
ZiBodCBrZXkpKSkKKyAgICAgICAgICAgdGVzdC10YWJsZXMKKyAgICAgICAgICAgJyhmb28gMTAx
LjMKKyAgICAgICAgICAgICAgICAgeCAieSIKKyAgICAgICAgICAgICAgICAgKDE0IDE1KSAjXG5l
d2xpbmUKKyAgICAgICAgICAgICAgICAgKGVkd2FyZCkgKG1hcmspCisgICAgICAgICAgICAgICAg
ICJwIiAicHJlZiIKKyAgICAgICAgICAgICAgICAgIm1pa2UiICJQQVVMIgorICAgICAgICAgICAg
ICAgICBqYW5lIG5vZWwKKyAgICAgICAgICAgICAgICAgMCA0KSkpCisKKyAgICAocGFzcy1pZi1l
cXVhbCAiaGFzaC10YWJsZS1yZWYgYWNjZXB0cyBGQUlMVVJFIGFuZCBmdW5jdGlvbnMgcHJvcGVy
bHkiCisgICAgICAgICcoZWggImZldmVyIiBlaCBlaCBlaCBlaCBlaCB0d2FpbiBlaCA0IGVoIDQg
ZWggc3Rvb2tleSBlaCAyKQorICAgICAgKG1hcCAobGFtYmRhIChodCBrZXkpCisgICAgICAgICAg
ICAgKGhhc2gtdGFibGUtcmVmIGh0IGtleSAobGFtYmRhICgpICdlaCkpKQorICAgICAgICAgICB0
ZXN0LXRhYmxlcworICAgICAgICAgICAnKGZvbyAxMDEuMworICAgICAgICAgICAgICAgICB4ICJ5
IgorICAgICAgICAgICAgICAgICAoMTQgMTUpICNcbmV3bGluZQorICAgICAgICAgICAgICAgICAo
ZWR3YXJkKSAobWFyaykKKyAgICAgICAgICAgICAgICAgInAiICJwcmVmIgorICAgICAgICAgICAg
ICAgICAibWlrZSIgIlBBVUwiCisgICAgICAgICAgICAgICAgIGphbmUgbm9lbAorICAgICAgICAg
ICAgICAgICAwIDQpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXJlZiBhY2Nl
cHRzIEZBSUxVUkUgYW5kIFNVQ0NFU1MgYW5kIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAg
JyhlaCAoImZldmVyIikgZWggZWggZWggZWggZWggKHR3YWluKSBlaCAoNCkgZWggKDQpIGVoIChz
dG9va2V5KSBlaCAoMikpCisgICAgICAobWFwIChsYW1iZGEgKGh0IGtleSkKKyAgICAgICAgICAg
ICAoZ3VhcmQgKGV4bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VycikpCisgICAgICAg
ICAgICAgICAoaGFzaC10YWJsZS1yZWYgaHQga2V5IChsYW1iZGEgKCkgJ2VoKSBsaXN0KSkpCisg
ICAgICAgICAgIHRlc3QtdGFibGVzCisgICAgICAgICAgICcoZm9vIDEwMS4zCisgICAgICAgICAg
ICAgICAgIHggInkiCisgICAgICAgICAgICAgICAgICgxNCAxNSkgI1xuZXdsaW5lCisgICAgICAg
ICAgICAgICAgIChlZHdhcmQpIChtYXJrKQorICAgICAgICAgICAgICAgICAicCIgInByZWYiCisg
ICAgICAgICAgICAgICAgICJtaWtlIiAiUEFVTCIKKyAgICAgICAgICAgICAgICAgamFuZSBub2Vs
CisgICAgICAgICAgICAgICAgIDAgNCkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFi
bGUtcmVmL2RlZmF1bHQgdXNlcyBERUZBVUxUIgorICAgICAgICAobWFwIChsYW1iZGEgKGh0KSAn
ZWgpIHRlc3QtdGFibGVzKQorICAgICAgKG1hcCAobGFtYmRhIChodCkKKyAgICAgICAgICAgICAo
Z3VhcmQgKGV4bgorICAgICAgICAgICAgICAgICAgICAgKGVsc2UgJ2VoKSkKKyAgICAgICAgICAg
ICAgIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0ICdub3QtYS1rZXkgJ2VoKSkpCisgICAgICAg
ICAgIHRlc3QtdGFibGVzKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXJlZi9k
ZWZhdWx0IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgJyhlaCAiZmV2ZXIiIGVoIGVoIGVo
IGVoIGVoIHR3YWluIGVoIDQgZWggNCBlaCBzdG9va2V5IGVoIDIpCisgICAgICAobWFwIChsYW1i
ZGEgKGh0IGtleSkKKyAgICAgICAgICAgICAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBodCBrZXkg
J2VoKSkKKyAgICAgICAgICAgdGVzdC10YWJsZXMKKyAgICAgICAgICAgJyhmb28gMTAxLjMKKyAg
ICAgICAgICAgICAgICAgeCAieSIKKyAgICAgICAgICAgICAgICAgKDE0IDE1KSAjXG5ld2xpbmUK
KyAgICAgICAgICAgICAgICAgKGVkd2FyZCkgKG1hcmspCisgICAgICAgICAgICAgICAgICJwIiAi
cHJlZiIKKyAgICAgICAgICAgICAgICAgIm1pa2UiICJQQVVMIgorICAgICAgICAgICAgICAgICBq
YW5lIG5vZWwKKyAgICAgICAgICAgICAgICAgMCA0KSkpKQorCisgICh3aXRoLXRlc3QtcHJlZml4
ICJtdXRhdG9ycyIKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgd2l0aCBu
byBrZXktdmFsdWUgcGFpcnMgZG9lcyBub3RoaW5nIgorICAgICAgICAnKCkKKyAgICAgIChiZWdp
biAoaGFzaC10YWJsZS1zZXQhIGh0LWZpeG51bSkKKyAgICAgICAgICAgICAobGlzdC1zb3J0IDwg
KGhhc2gtdGFibGUta2V5cyBodC1maXhudW0pKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFz
aC10YWJsZS1zZXQhIGZ1bmN0aW9ucyBwcm9wZXJseSAxIgorICAgICAgICAnKDEyMSAxNDQgMTY5
KQorICAgICAgKGJlZ2luIChoYXNoLXRhYmxlLXNldCEgaHQtZml4bnVtIDEyMSAxMSAxNDQgMTIg
MTY5IDEzKQorICAgICAgICAgICAgIChsaXN0LXNvcnQgPCAoaGFzaC10YWJsZS1rZXlzIGh0LWZp
eG51bSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgZnVuY3Rpb25z
IHByb3Blcmx5IDIiCisgICAgICAgICcoMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSAxMjEgMTQ0
IDE2OSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1zZXQhIGh0LWZpeG51bQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMCAwIDEgMSA0IDIgOSAzIDE2IDQgMjUgNSAzNiA2IDQ5IDcg
NjQgOCA4MSA5KQorICAgICAgICAgICAgIChsaXN0LXNvcnQgPCAoaGFzaC10YWJsZS1rZXlzIGh0
LWZpeG51bSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgZnVuY3Rp
b25zIHByb3Blcmx5IDMiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgNiA3IDggOSkK
KyAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVt
IGkgJ2Vycm9yKSkKKyAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5
IDY0IDgxKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIHdpdGgg
bm8ga2V5cyBkb2VzIG5vdGhpbmciCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgNiA3
IDggOSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1kZWxldGUhIGh0LWZpeG51bSkKKyAgICAg
ICAgICAgICAobWFwIChsYW1iZGEgKGkpIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0LWZpeG51
bSBpICdlcnJvcikpCisgICAgICAgICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkgMTYg
MjUgMzYgNDkgNjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kZWxl
dGUhIGZ1bmN0aW9ucyBwcm9wZXJseSAxIgorICAgICAgICAnKC0xIDEyIC0xIDAgLTEgMiAtMSA0
IC0xIDYgLTEgOCAtMSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1kZWxldGUhIGh0LWZpeG51
bSAxIDkgMjUgNDkgODEgMjAwIDEyMSAxNjkgODEgMSkKKyAgICAgICAgICAgICAobWFwIChsYW1i
ZGEgKGkpIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0LWZpeG51bSBpIC0xKSkKKyAgICAgICAg
ICAgICAgICAgICcoMTY5IDE0NCAxMjEgMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSkpKSkKKwor
ICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLWRlbGV0ZSEgZnVuY3Rpb25zIHByb3Blcmx5
IDIiCisgICAgICAgICcoLTEgMTIgLTEgLTEgLTEgMiAtMSA0IC0xIC0xIC0xIDggLTEpCisgICAg
ICAoYmVnaW4gKGhhc2gtdGFibGUtZGVsZXRlISBodC1maXhudW0gMjAwIDEwMCAwIDgxIDM2KQor
ICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQt
Zml4bnVtIGkgLTEpKQorICAgICAgICAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2
IDI1IDM2IDQ5IDY0IDgxKSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtaW50
ZXJuISBmdW5jdGlvbnMgcHJvcGVybHkgMSIKKyAgICAgICAgJygxMyAxMiAxMSAwIDEgMiAtMSA0
IC0xIC0xIC0xIDggLTEpCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtaW50ZXJuISBodC1maXhu
dW0gMTY5IChsYW1iZGEgKCkgMTMpKQorICAgICAgICAgICAgIChoYXNoLXRhYmxlLWludGVybiEg
aHQtZml4bnVtIDEyMSAobGFtYmRhICgpIDExKSkKKyAgICAgICAgICAgICAoaGFzaC10YWJsZS1p
bnRlcm4hIGh0LWZpeG51bSAgIDAgKGxhbWJkYSAoKSAgMCkpCisgICAgICAgICAgICAgKGhhc2gt
dGFibGUtaW50ZXJuISBodC1maXhudW0gICAxIChsYW1iZGEgKCkgIDEpKQorICAgICAgICAgICAg
IChoYXNoLXRhYmxlLWludGVybiEgaHQtZml4bnVtICAgMSAobGFtYmRhICgpIDk5KSkKKyAgICAg
ICAgICAgICAoaGFzaC10YWJsZS1pbnRlcm4hIGh0LWZpeG51bSAxMjEgKGxhbWJkYSAoKSA2Nikp
CisgICAgICAgICAgICAgKG1hcCAobGFtYmRhIChpKSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBo
dC1maXhudW0gaSAtMSkpCisgICAgICAgICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkg
MTYgMjUgMzYgNDkgNjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1t
YXAtPmxpc3QgZnVuY3Rpb25zIHByb3Blcmx5IDEiCisgICAgICAgICcoIygwIDApICMoMSAxKSAj
KDQgMikgIygxNiA0KSAjKDY0IDgpICMoMTIxIDExKSAjKDE0NCAxMikgIygxNjkgMTMpKQorICAg
ICAgKGxpc3Qtc29ydCAobGFtYmRhICh2MSB2MikgKDwgKHZlY3Rvci1yZWYgdjEgMCkgKHZlY3Rv
ci1yZWYgdjIgMCkpKQorICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1tYXAtPmxpc3QgdmVj
dG9yIGh0LWZpeG51bSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtcHJ1bmUh
IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgJygoMCAwKSAoMSAxKSAoNCAyKSAoMTYgNCkg
KDY0IDgpICM7KDEyMSAxMSkgKDE0NCAxMikgIzsoMTY5IDEzKSkKKyAgICAgIChiZWdpbiAoaGFz
aC10YWJsZS1wcnVuZSEgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5kIChvZGQ/IGtleSkgKD4gdmFsIDEwKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGh0LWZpeG51bSkKKyAgICAgICAgICAgICAobGlzdC1zb3J0IChsYW1i
ZGEgKGwxIGwyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoPCAoY2FyIGwxKSAoY2FyIGwy
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1tYXAtPmxpc3QgbGlzdCBo
dC1maXhudW0pKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1pbnRlcm4hIGZ1
bmN0aW9ucyBwcm9wZXJseSAyIgorICAgICAgICAnKCgwIDApICgxIDEpICg0IDIpICgxNiA0KSAo
NjQgOCkgKDEyMSAxMSkgKDE0NCAxMikgKDE2OSAxMykpCisgICAgICAoYmVnaW4gKGhhc2gtdGFi
bGUtaW50ZXJuISBodC1maXhudW0gMTY5IChsYW1iZGEgKCkgMTMpKQorICAgICAgICAgICAgICho
YXNoLXRhYmxlLWludGVybiEgaHQtZml4bnVtIDE0NCAobGFtYmRhICgpIDk5OTkpKQorICAgICAg
ICAgICAgIChoYXNoLXRhYmxlLWludGVybiEgaHQtZml4bnVtIDEyMSAobGFtYmRhICgpIDExKSkK
KyAgICAgICAgICAgICAobGlzdC1zb3J0IChsYW1iZGEgKGwxIGwyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAoPCAoY2FyIGwxKSAoY2FyIGwyKSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAoaGFzaC10YWJsZS1tYXAtPmxpc3QgbGlzdCBodC1maXhudW0pKSkpCisKKyAgICAocGFzcy1p
Zi1lcXVhbCAiaGFzaC10YWJsZS11cGRhdGUhIHdpdGggRkFJTFVSRSBmdW5jdGlvbnMgcHJvcGVy
bHkgMSIKKyAgICAgICAgJygxMyAxMiAxMSAwIDEgMiAzIDQgLTEgLTEgLTEgOCAtMSkKKyAgICAg
IChiZWdpbiAoaGFzaC10YWJsZS11cGRhdGUhIGh0LWZpeG51bSA5IGxlbmd0aCAobGFtYmRhICgp
ICcoYSBiIGMpKSkKKyAgICAgICAgICAgICAobWFwIChsYW1iZGEgKGkpIChoYXNoLXRhYmxlLXJl
Zi9kZWZhdWx0IGh0LWZpeG51bSBpIC0xKSkKKyAgICAgICAgICAgICAgICAgICcoMTY5IDE0NCAx
MjEgMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJo
YXNoLXRhYmxlLXVwZGF0ZSEgZnVuY3Rpb25zIHByb3Blcmx5IgorICAgICAgICAnKDEzIDEyIDEx
IDAgMSAyIDMgLTQgLTEgLTEgLTEgOCAtMSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS11cGRh
dGUhIGh0LWZpeG51bSAxNiAtKQorICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gt
dGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEpKQorICAgICAgICAgICAgICAgICAgJygx
NjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxKSkpKQorCisgICAgKHBhc3MtaWYt
ZXF1YWwgImhhc2gtdGFibGUtdXBkYXRlISB3aXRoIEZBSUxVUkUgZnVuY3Rpb25zIHByb3Blcmx5
IDIiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IC0xIC0xIC0xIDggLTEpCisgICAgICAo
YmVnaW4gKGhhc2gtdGFibGUtdXBkYXRlISBodC1maXhudW0gMTYgLSBhYnMpCisgICAgICAgICAg
ICAgKG1hcCAobGFtYmRhIChpKSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBodC1maXhudW0gaSAt
MSkpCisgICAgICAgICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkgMTYgMjUgMzYgNDkg
NjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1
bHQgZnVuY3Rpb25zIHByb3Blcmx5IDEiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IC01
IC0xIC0xIDggLTEpCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtdXBkYXRlIS9kZWZhdWx0IGh0
LWZpeG51bSAyNSAtIDUpCisgICAgICAgICAgICAgKG1hcCAobGFtYmRhIChpKSAoaGFzaC10YWJs
ZS1yZWYvZGVmYXVsdCBodC1maXhudW0gaSAtMSkpCisgICAgICAgICAgICAgICAgICAnKDE2OSAx
NDQgMTIxIDAgMSA0IDkgMTYgMjUgMzYgNDkgNjQgODEpKSkpCisKKyAgICAocGFzcy1pZi1lcXVh
bCAiaGFzaC10YWJsZS11cGRhdGUhL2RlZmF1bHQgZnVuY3Rpb25zIHByb3Blcmx5IDIiCisgICAg
ICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgLTEgLTEgOCAtMSkKKyAgICAgIChiZWdpbiAoaGFz
aC10YWJsZS11cGRhdGUhL2RlZmF1bHQgaHQtZml4bnVtIDI1IC0gOTk5KQorICAgICAgICAgICAg
IChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEp
KQorICAgICAgICAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0
IDgxKSkpKQorCisgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtcG9wISBmdW5jdGlvbnMgcHJvcGVy
bHkiCisgICAgICAobGV0KiAoKG4wIChoYXNoLXRhYmxlLXNpemUgaHQtZml4bnVtKSkKKyAgICAg
ICAgICAgICAoaHQgKGhhc2gtdGFibGUtY29weSBodC1maXhudW0gI3QpKSkKKyAgICAgICAgKGNh
bGwtd2l0aC12YWx1ZXMKKyAgICAgICAgICAgIChsYW1iZGEgKCkgKGhhc2gtdGFibGUtcG9wISBo
dCkpCisgICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAgICAgIChhbmQgKD0ga2V5
ICgqIHZhbCB2YWwpKQorICAgICAgICAgICAgICAgICAoPSAoLSBuMCAxKSAoaGFzaC10YWJsZS1z
aXplIGh0KSkpKSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtZGVsZXRlISBm
dW5jdGlvbnMgcHJvcGVybHkgMiIKKyAgICAgICAgJygxMyAxMiAxMSAwIDEgMiAzIDQgNSAtMSAt
MSA4IC0xIC0xKQorICAgICAgKGJlZ2luIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQtZml4bnVtIDc1
KQorICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQg
aHQtZml4bnVtIGkgLTEpKQorICAgICAgICAgICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5
IDE2IDI1IDM2IDQ5IDY0IDc1IDgxKSkpKQorCisgICAgOzsgU3BlYyBzYXlzIEhBU0gtVEFCTEUg
cmV0dXJucyBhbiBpbW11dGFibGUgaGFzaCB0YWJsZSwgc28gd2UgcHV0IGEKKyAgICA7OyBIQVNI
LVRBQkxFLUNPUFkgaGVyZQorICAgIChsZXQgKChodC1lZyAoaGFzaC10YWJsZS1jb3B5CisgICAg
ICAgICAgICAgICAgICAoaGFzaC10YWJsZSBudW1iZXItY29tcGFyYXRvciAxIDEgNCAyIDkgMyAx
NiA0IDI1IDUgNjQgOCkKKyAgICAgICAgICAgICAgICAgICN0KSkpCisgICAgICAocGFzcy1pZi1l
cXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIGZ1bmN0aW9ucyBwcm9wZXJseSAzIgorICAgICAgICAg
IDAKKyAgICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodC1lZykpCisgICAgICAocGFzcy1pZi1l
cXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIGZ1bmN0aW9ucyBwcm9wZXJseSA0IgorICAgICAgICAg
IDAKKyAgICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodC1lZyAyIDcgMjAwMCkpCisgICAgICAo
cGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kZWxldGUhIGZ1bmN0aW9ucyBwcm9wZXJseSA1Igor
ICAgICAgICAgIDMKKyAgICAgICAgKGhhc2gtdGFibGUtZGVsZXRlISBodC1lZyAxIDIgNCA3IDY0
IDIwMDApKQorICAgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtZGVsZXRlISBmdW5jdGlvbnMgcHJv
cGVybHkgNiIKKyAgICAgICAgKD0gMyAobGVuZ3RoIChoYXNoLXRhYmxlLWtleXMgaHQtZWcpKSkp
KQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtcmVmL2RlZmF1bHQgZnVuY3Rpb25z
IHByb3Blcmx5IDIiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgLTEgLTEgOCAtMSkK
KyAgICAgIChtYXAgKGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVt
IGkgLTEpKQorICAgICAgICAgICAnKDE2OSAxNDQgMTIxIDAgMSA0IDkgMTYgMjUgMzYgNDkgNjQg
ODEpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXNldCEgZnVuY3Rpb25zIHBy
b3Blcmx5IDQiCisgICAgICAgICcoMTMgMTIgMTEgMCAxIDIgMyA0IDUgNiAtMSA4IDkpCisgICAg
ICAoYmVnaW4gKGhhc2gtdGFibGUtc2V0ISBodC1maXhudW0gMzYgNikKKyAgICAgICAgICAgICAo
aGFzaC10YWJsZS1zZXQhIGh0LWZpeG51bSA4MSA5KQorICAgICAgICAgICAgIChtYXAgKGxhbWJk
YSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEpKQorICAgICAgICAg
ICAgICAgICAgJygxNjkgMTQ0IDEyMSAwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxKSkpKQorCisg
ICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtY2xlYXIhIGNsZWFycyBoYXNoIHRhYmxlIgor
ICAgICAgICAwCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtY2xlYXIhIGh0LWVxKQorICAgICAg
ICAgICAgIChoYXNoLXRhYmxlLXNpemUgaHQtZXEpKSkpCisKKyAgKHdpdGgtdGVzdC1wcmVmaXgg
InRoZSB3aG9sZSBoYXNoIHRhYmxlIgorCisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUt
c2l6ZSByZXR1cm5zIGNvcnJlY3QgdGFibGUgc2l6ZSIKKyAgICAgICAgMworICAgICAgKGJlZ2lu
IChoYXNoLXRhYmxlLXNldCEgaHQtZXEgJ2ZvbyAxMyAnYmFyIDE0ICdiYXogMTgpCisgICAgICAg
ICAgICAgKGhhc2gtdGFibGUtc2l6ZSBodC1lcSkpKQorCisgICAgKHBhc3MtaWYtZXF1YWwgImhh
c2gtdGFibGUtc2l6ZSByZXR1cm5zIGNvcnJlY3QgdGFibGUgc2l6ZSAyIgorICAgICAgICAnKDAg
MyAjdCkKKyAgICAgIChsZXQqICgoaHQgKGhhc2gtdGFibGUtZW1wdHktY29weSBodC1lcSkpCisg
ICAgICAgICAgICAgKG4wIChoYXNoLXRhYmxlLXNpemUgaHQpKQorICAgICAgICAgICAgIChpZ25v
cmVkIChoYXNoLXRhYmxlLXNldCEgaHQgJ2ZvbyAxMyAnYmFyIDE0ICdiYXogMTgpKQorICAgICAg
ICAgICAgIChuMSAoaGFzaC10YWJsZS1zaXplIGh0KSkpCisgICAgICAgIChsaXN0IG4wIG4xICho
YXNoLXRhYmxlPT8gZGVmYXVsdC1jb21wYXJhdG9yIGh0IGh0LWVxKSkpKQorCisgICAgKHBhc3Mt
aWYtZXF1YWwgImhhc2gtdGFibGUtc2l6ZSByZXR1cm5zIDAgd2l0aCBlbXB0eSBoYXNoIHRhYmxl
IgorICAgICAgICAwCisgICAgICAoYmVnaW4gKGhhc2gtdGFibGUtY2xlYXIhIGh0LWVxKQorICAg
ICAgICAgICAgIChoYXNoLXRhYmxlLXNpemUgaHQtZXEpKSkKKworICAgIChwYXNzLWlmLWVxdWFs
ICJoYXNoLXRhYmxlLWZpbmQgZnVuY3Rpb25zIHByb3Blcmx5IDEiCisgICAgICAgICcoMTQ0IDEy
KQorICAgICAgKGhhc2gtdGFibGUtZmluZCAobGFtYmRhIChrZXkgdmFsKQorICAgICAgICAgICAg
ICAgICAgICAgICAgIChpZiAoPSAxNDQga2V5ICgqIHZhbCB2YWwpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGlzdCBrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjZikpCisgICAgICAgICAgICAgICAgICAgICAgIGh0LWZpeG51bQorICAgICAgICAgICAgICAg
ICAgICAgICAobGFtYmRhICgpIDk5KSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJs
ZS1maW5kIGZ1bmN0aW9ucyBwcm9wZXJseSAyIgorICAgICAgICA5OQorICAgICAgKGhhc2gtdGFi
bGUtZmluZCAobGFtYmRhIChrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo
PSAxNDQga2V5IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3Qga2V5IHZh
bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2YpKQorICAgICAgICAgICAgICAgICAg
ICAgICBodC1maXhudW0KKyAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoKSA5OSkpKQor
CisgICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtY291bnQgZnVuY3Rpb25zIHByb3Blcmx5
IgorICAgICAgICAyCisgICAgICAoaGFzaC10YWJsZS1jb3VudCA8PSBodC1maXhudW0pKSkKKwor
ICAod2l0aC10ZXN0LXByZWZpeCAibWFwcGluZyBhbmQgZm9sZGluZyIKKworICAgIChwYXNzLWlm
LWVxdWFsICJoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGZ1bmN0aW9ucyBwcm9wZXJseSAzIgorICAg
ICAgICAnKDAgMSAyIDMgNCA1IDYgLTEgOCA5IC0xIDExIDEyIDEzIC0xKQorICAgICAgKG1hcCAo
bGFtYmRhIChpKSAoaGFzaC10YWJsZS1yZWYvZGVmYXVsdCBodC1maXhudW0gaSAtMSkpCisgICAg
ICAgICAgICcoMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSAxMDAgMTIxIDE0NCAxNjkgMTk2KSkp
CisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1tYXAgZnVuY3Rpb25zIHByb3Blcmx5
IgorICAgICAgICAnKDAgMSA0IDkgMTYgMjUgMzYgLTEgNjQgODEgLTEgMTIxIDE0NCAxNjkgLTEp
CisgICAgICAobGV0ICgoaHQgKGhhc2gtdGFibGUtbWFwIChsYW1iZGEgKHZhbCkgKCogdmFsIHZh
bCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxdi1jb21wYXJhdG9yCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LWZpeG51bSkpKQorICAgICAgICAobWFwIChs
YW1iZGEgKGkpIChoYXNoLXRhYmxlLXJlZi9kZWZhdWx0IGh0IGkgLTEpKQorICAgICAgICAgICAg
ICcoMCAxIDQgOSAxNiAyNSAzNiA0OSA2NCA4MSAxMDAgMTIxIDE0NCAxNjkgMTk2KSkpKQorCisg
ICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtZm9yLWVhY2ggZnVuY3Rpb25zIHByb3Blcmx5
IgorICAgICAgICAnKCMoMCAxIDQgOSAxNiAyNSAzNiAtMSA2NCA4MSAtMSAxMjEgMTQ0IDE2OSAt
MSkKKyAgICAgICAgICAjKDAgMSAyIDMgIDQgIDUgIDYgLTEgIDggIDkgLTEgIDExICAxMiAgMTMg
LTEpKQorICAgICAgKGxldCAoKGtleXMgKG1ha2UtdmVjdG9yIDE1IC0xKSkKKyAgICAgICAgICAg
ICh2YWxzIChtYWtlLXZlY3RvciAxNSAtMSkpKQorICAgICAgICAoaGFzaC10YWJsZS1mb3ItZWFj
aCAobGFtYmRhIChrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0
b3Itc2V0ISBrZXlzIHZhbCBrZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZl
Y3Rvci1zZXQhIHZhbHMgdmFsIHZhbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0
LWZpeG51bSkKKyAgICAgICAgKGxpc3Qga2V5cyB2YWxzKSkpCisKKyAgICAocGFzcy1pZi1lcXVh
bCAiaGFzaC10YWJsZS1tYXAhIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgJygwIDEgMiAz
IC00IC01IC02IC0xIC04IC05IC0xIC0xMSAtMTIgLTEzIC0xKQorICAgICAgKGJlZ2luIChoYXNo
LXRhYmxlLW1hcCEgKGxhbWJkYSAoa2V5IHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGlmICg8PSAxMCBrZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoLSB2YWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtZml4bnVtKQorICAgICAgICAgICAgIChtYXAg
KGxhbWJkYSAoaSkgKGhhc2gtdGFibGUtcmVmL2RlZmF1bHQgaHQtZml4bnVtIGkgLTEpKQorICAg
ICAgICAgICAgICAgICAgJygwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxIDEwMCAxMjEgMTQ0IDE2
OSAxOTYpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1mb2xkIGZ1bmN0aW9u
cyBwcm9wZXJseSAxIgorICAgICAgICAxMworICAgICAgKGhhc2gtdGFibGUtZm9sZCAobGFtYmRh
IChrZXkgdmFsIGFjYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKyB2YWwgYWNjKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICAgICAgICAgICAgICAgICBodC1zdHJpbmct
Y2kyKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLWZvbGQgZnVuY3Rpb25zIHBy
b3Blcmx5IDIiCisgICAgICAgICcoMCAxIDQgOSAxNiAyNSAzNiA2NCA4MSAxMjEgMTQ0IDE2OSkK
KyAgICAgIChsaXN0LXNvcnQgPCAoaGFzaC10YWJsZS1mb2xkIChsYW1iZGEgKGtleSB2YWwgYWNj
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyBrZXkgYWNjKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaHQtZml4bnVtKSkpKQorCisgICh3aXRoLXRlc3QtcHJlZml4
ICJjb3B5aW5nIGFuZCBjb252ZXJzaW9uIgorCisgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtY29w
eSBmdW5jdGlvbnMgcHJvcGVybHkgMSIKKyAgICAgIChoYXNoLXRhYmxlPT8gbnVtYmVyLWNvbXBh
cmF0b3IgaHQtZml4bnVtIChoYXNoLXRhYmxlLWNvcHkgaHQtZml4bnVtKSkpCisKKyAgICAocGFz
cy1pZiAiaGFzaC10YWJsZS1jb3B5IGZ1bmN0aW9ucyBwcm9wZXJseSAyIgorICAgICAgKGhhc2gt
dGFibGU9PyBudW1iZXItY29tcGFyYXRvciBodC1maXhudW0gKGhhc2gtdGFibGUtY29weSBodC1m
aXhudW0gI2YpKSkKKworICAgIChwYXNzLWlmICJoYXNoLXRhYmxlLWNvcHkgZnVuY3Rpb25zIHBy
b3Blcmx5IDMiCisgICAgICAoaGFzaC10YWJsZT0/IG51bWJlci1jb21wYXJhdG9yIGh0LWZpeG51
bSAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bSAjdCkpKQorCisgICAgKHBhc3MtaWYgImhhc2gt
dGFibGUtY29weSBmdW5jdGlvbnMgcHJvcGVybHkgNCIKKyAgICAgIChub3QgKGhhc2gtdGFibGUt
bXV0YWJsZT8gKGhhc2gtdGFibGUtY29weSBodC1maXhudW0pKSkpCisKKyAgICAocGFzcy1pZiAi
aGFzaC10YWJsZS1jb3B5IGZ1bmN0aW9ucyBwcm9wZXJseSA1IgorICAgICAgKG5vdCAoaGFzaC10
YWJsZS1tdXRhYmxlPyAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bSAjZikpKSkKKworICAgIChw
YXNzLWlmICJoYXNoLXRhYmxlLWNvcHkgZnVuY3Rpb25zIHByb3Blcmx5IDYiCisgICAgICAoaGFz
aC10YWJsZS1tdXRhYmxlPyAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bSAjdCkpKQorCisgICAg
KHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtPmFsaXN0IGZ1bmN0aW9ucyBwcm9wZXJseSAxIgor
ICAgICAgICAnKCkKKyAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodC1lcSkpCisKKyAgICAocGFz
cy1pZi1lcXVhbCAiaGFzaC10YWJsZS0+YWxpc3QgZnVuY3Rpb25zIHByb3Blcmx5IDIiCisgICAg
ICAgICcoKDAgLiAwKQorICAgICAgICAgICgxIC4gMSkKKyAgICAgICAgICAoNCAuIDIpCisgICAg
ICAgICAgKDkgLiAzKQorICAgICAgICAgICgxNiAuIC00KQorICAgICAgICAgICgyNSAuIC01KQor
ICAgICAgICAgICgzNiAuIC02KQorICAgICAgICAgICg2NCAuIC04KQorICAgICAgICAgICg4MSAu
IC05KQorICAgICAgICAgICgxMjEgLiAtMTEpCisgICAgICAgICAgKDE0NCAuIC0xMikKKyAgICAg
ICAgICAoMTY5IC4gLTEzKSkKKyAgICAgIChsaXN0LXNvcnQgKGxhbWJkYSAoeCB5KSAoPCAoY2Fy
IHgpIChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS0+YWxpc3QgaHQtZml4
bnVtKSkpKQorCisgICh3aXRoLXRlc3QtcHJlZml4ICJoYXNoIHRhYmxlcyBhcyBzZXRzIgorCisg
ICAgKHBhc3MtaWYtZXF1YWwgImhhc2gtdGFibGUtdW5pb24hIGZ1bmN0aW9ucyBwcm9wZXJseSAx
IgorICAgICAgICAnKCgwIC4gMCkKKyAgICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDQgLiAy
KQorICAgICAgICAgICg5IC4gMykKKyAgICAgICAgICAoMTYgLiAtNCkKKyAgICAgICAgICAoMjUg
LiAtNSkKKyAgICAgICAgICAoMzYgLiAtNikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAg
ICg2NCAuIC04KQorICAgICAgICAgICg4MSAuIC05KQorICAgICAgICAgICgxMjEgLiAtMTEpCisg
ICAgICAgICAgKDE0NCAuIC0xMikKKyAgICAgICAgICAoMTY5IC4gLTEzKSkKKyAgICAgIChiZWdp
biAoaGFzaC10YWJsZS11bmlvbiEgaHQtZml4bnVtIGh0LWZpeG51bTIpCisgICAgICAgICAgICAg
KGxpc3Qtc29ydCAobGFtYmRhICh4IHkpICg8IChjYXIgeCkgKGNhciB5KSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAoaGFzaC10YWJsZS0+YWxpc3QgaHQtZml4bnVtKSkpKQorCisgICAgKHBh
c3MtaWYtZXF1YWwgImhhc2gtdGFibGUtdW5pb24hIGZ1bmN0aW9ucyBwcm9wZXJseSAyIgorICAg
ICAgICAnKCgwIC4gMCkKKyAgICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDQgLiAyKQorICAg
ICAgICAgICg5IC4gMykKKyAgICAgICAgICAoMTYgLiA0KQorICAgICAgICAgICgyNSAuIDUpCisg
ICAgICAgICAgKDM2IC4gNikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAgICg2NCAuIDgp
CisgICAgICAgICAgKDgxIC4gOSkKKyAgICAgICAgICAoMTIxIC4gLTExKQorICAgICAgICAgICgx
NDQgLiAtMTIpCisgICAgICAgICAgKDE2OSAuIC0xMykpCisgICAgICAobGV0ICgoaHQgKGhhc2gt
dGFibGUtY29weSBodC1maXhudW0yICN0KSkpCisgICAgICAgIChoYXNoLXRhYmxlLXVuaW9uISBo
dCBodC1maXhudW0pCisgICAgICAgIChsaXN0LXNvcnQgKGxhbWJkYSAoeCB5KSAoPCAoY2FyIHgp
IChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodCkpKSkK
KworICAgIDs7IFNwZWMgaW4gU3BlY2lmaWNhdGlvbiBzZWN0aW9uIHNheXMgIkl0IGlzIGFuIGVy
cm9yIHRvIHBhc3MgdHdvCisgICAgOzsgaGFzaCB0YWJsZXMgdGhhdCBoYXZlIGRpZmZlcmVudCBj
b21wYXJhdG9ycyBvciBlcXVhbGl0eQorICAgIDs7IHByZWRpY2F0ZXMgdG8gYW55IG9mIHRoZSBw
cm9jZWR1cmVzIG9mIHRoaXMgU1JGSS4iCisgICAgOzsKKyAgICA7OyBTbyB3ZSBjcmVhdGUgYSBu
ZXcgaGFzaCB0YWJsZSB3aXRoIG51bWJlci1jb21wYXJhdG9yIHdpdGggdGhlCisgICAgOzsgY29u
dGVudHMgb2YgaHQtZXF2MgorCisgICAgKGxldCAoKGh0LWZpeG51bTMgKGhhc2gtdGFibGUtbWFw
IGlkZW50aXR5IG51bWJlci1jb21wYXJhdG9yIGh0LWVxdjIpKSkKKyAgICAgIChwYXNzLWlmICJo
YXNoLXRhYmxlLXVuaW9uISBmdW5jdGlvbnMgcHJvcGVybHkgMyIKKyAgICAgICAgKGJlZ2luICho
YXNoLXRhYmxlLXVuaW9uISBodC1maXhudW0zIGh0LWZpeG51bSkKKyAgICAgICAgICAgICAgICho
YXNoLXRhYmxlPT8gbnVtYmVyLWNvbXBhcmF0b3IgaHQtZml4bnVtIGh0LWZpeG51bTMpKSkKKwor
ICAgICAgKHBhc3MtaWYgImhhc2gtdGFibGUtaW50ZXJzZWN0aW9uISBmdW5jdGlvbnMgcHJvcGVy
bHkgMSIKKyAgICAgICAgKGJlZ2luIChoYXNoLXRhYmxlLWludGVyc2VjdGlvbiEgaHQtZml4bnVt
MyBodC1maXhudW0pCisgICAgICAgICAgICAgICAoaGFzaC10YWJsZT0/IG51bWJlci1jb21wYXJh
dG9yIGh0LWZpeG51bSBodC1maXhudW0zKSkpKQorCisgICAgKHBhc3MtaWYgImhhc2gtdGFibGUt
aW50ZXJzZWN0aW9uISBmdW5jdGlvbnMgcHJvcGVybHkgMiIKKyAgICAgIChiZWdpbiAoaGFzaC10
YWJsZS1pbnRlcnNlY3Rpb24hIGh0LWVxdjIgaHQtZXF2KQorICAgICAgICAgICAgIChoYXNoLXRh
YmxlLWVtcHR5PyBodC1lcXYyKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10YWJsZS1p
bnRlcnNlY3Rpb24hIGZ1bmN0aW9ucyBwcm9wZXJseSAzIgorICAgICAgICAnKCgwIC4gMCkKKyAg
ICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDQgLiAyKQorICAgICAgICAgICg5IC4gMykKKyAg
ICAgICAgICAoMTYgLiAtNCkKKyAgICAgICAgICAoMjUgLiAtNSkKKyAgICAgICAgICAoMzYgLiAt
NikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAgICg2NCAuIC04KQorICAgICAgICAgICg4
MSAuIC05KSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1pbnRlcnNlY3Rpb24hIGh0LWZpeG51
bSBodC1maXhudW0yKQorICAgICAgICAgICAgIChsaXN0LXNvcnQgKGxhbWJkYSAoeCB5KSAoPCAo
Y2FyIHgpIChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2gtdGFibGUtPmFs
aXN0IGh0LWZpeG51bSkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLWludGVy
c2VjdGlvbiEgZnVuY3Rpb25zIHByb3Blcmx5IDQiCisgICAgICAgICcoKDQgLiAyKQorICAgICAg
ICAgICgyNSAuIC01KSkKKyAgICAgIChiZWdpbiAoaGFzaC10YWJsZS1pbnRlcnNlY3Rpb24hCisg
ICAgICAgICAgICAgIGh0LWZpeG51bQorICAgICAgICAgICAgICAoYWxpc3QtPmhhc2gtdGFibGUg
JygoLTEgLiAtMSkgKDQgLiAyMDIpICgyNSAuIDIwNSkgKDEwMCAuIDEwKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bWJlci1jb21wYXJhdG9yKSkKKyAgICAgICAgICAgICAo
bGlzdC1zb3J0IChsYW1iZGEgKHggeSkgKDwgKGNhciB4KSAoY2FyIHkpKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIChoYXNoLXRhYmxlLT5hbGlzdCBodC1maXhudW0pKSkpCisKKyAgICAocGFz
cy1pZi1lcXVhbCAiaGFzaC10YWJsZS1kaWZmZXJlbmNlISBmdW5jdGlvbnMgcHJvcGVybHkiCisg
ICAgICAgICcoKDAgLiAwKQorICAgICAgICAgICgxIC4gMSkKKyAgICAgICAgICAoOSAuIDMpCisg
ICAgICAgICAgKDE2IC4gNCkKKyAgICAgICAgICAoMzYgLiA2KQorICAgICAgICAgICg0OSAuIDcp
CisgICAgICAgICAgKDY0IC4gOCkKKyAgICAgICAgICAoODEgLiA5KSkKKyAgICAgIChsZXQgKCho
dCAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bTIgI3QpKSkKKyAgICAgICAgKGhhc2gtdGFibGUt
ZGlmZmVyZW5jZSEKKyAgICAgICAgIGh0CisgICAgICAgICAoYWxpc3QtPmhhc2gtdGFibGUgJygo
LTEgLiAtMSkgKDQgLiAyMDIpICgyNSAuIDIwNSkgKDEwMCAuIDEwKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXItY29tcGFyYXRvcikpCisgICAgICAgIChsaXN0LXNvcnQgKGxh
bWJkYSAoeCB5KSAoPCAoY2FyIHgpIChjYXIgeSkpKQorICAgICAgICAgICAgICAgICAgIChoYXNo
LXRhYmxlLT5hbGlzdCBodCkpKSkKKworICAgIChwYXNzLWlmLWVxdWFsICJoYXNoLXRhYmxlLXhv
ciEgZnVuY3Rpb25zIHByb3Blcmx5IgorICAgICAgICAnKCgtMSAuIC0xKQorICAgICAgICAgICgw
IC4gMCkKKyAgICAgICAgICAoMSAuIDEpCisgICAgICAgICAgKDkgLiAzKQorICAgICAgICAgICgx
NiAuIDQpCisgICAgICAgICAgKDM2IC4gNikKKyAgICAgICAgICAoNDkgLiA3KQorICAgICAgICAg
ICg2NCAuIDgpCisgICAgICAgICAgKDgxIC4gOSkKKyAgICAgICAgICAoMTAwIC4gMTApKQorICAg
ICAgKGxldCAoKGh0IChoYXNoLXRhYmxlLWNvcHkgaHQtZml4bnVtMiAjdCkpKQorICAgICAgICAo
aGFzaC10YWJsZS14b3IhCisgICAgICAgICBodAorICAgICAgICAgKGFsaXN0LT5oYXNoLXRhYmxl
ICcoKC0xIC4gLTEpICg0IC4gMjAyKSAoMjUgLiAyMDUpICgxMDAgLiAxMCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtYmVyLWNvbXBhcmF0b3IpKQorICAgICAgICAobGlzdC1zb3J0
IChsYW1iZGEgKHggeSkgKDwgKGNhciB4KSAoY2FyIHkpKSkKKyAgICAgICAgICAgICAgICAgICAo
aGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpCisKKyAgICAocGFzcy1pZi1leGNlcHRpb24gImhhc2gt
dGFibGUtcmVmIHNpZ25hbHMgJ2tleSBub3QgZm91bmQnIGVycm9yIChhZ2FpbikiCisgICAgICAg
ICcobWlzYy1lcnJvciAuICJeS2V5IG5vdCBpbiB0YWJsZSIpCisgICAgICAoaGFzaC10YWJsZS1y
ZWYgaHQtZGVmYXVsdCAidGhpcyBrZXkgd29uJ3QgYmUgcHJlc2VudCIpKSkKKworICAod2l0aC10
ZXN0LXByZWZpeCAiZGVwcmVjYXRlZCIKKworICAgIChwYXNzLWlmICJoYXNoIHJldHVybnMgZXhh
Y3QgaW50ZWdlcnMiCisgICAgICAobGV0KiAoKHggKGxpc3QgMSAyIDMpKQorICAgICAgICAgICAg
ICh5IChjb25zIDEgKGNkciB4KSkpCisgICAgICAgICAgICAgKGgxIChoYXNoIHgpKQorICAgICAg
ICAgICAgIChoMiAoaGFzaCB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0LWludGVnZXI/IGgxKQor
ICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAgICAgICAoPSBoMSBoMikp
KSkKKworICAgIChwYXNzLWlmICJzdHJpbmctaGFzaCByZXR1cm5zIGV4YWN0IGludGVnZXJzIgor
ICAgICAgKGxldCogKCh4ICJhYmNkIikKKyAgICAgICAgICAgICAoeSAoc3RyaW5nLWFwcGVuZCAi
YWIiICJjZCIpKQorICAgICAgICAgICAgIChoMSAoc3RyaW5nLWhhc2ggeCkpCisgICAgICAgICAg
ICAgKGgyIChzdHJpbmctaGFzaCB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0LWludGVnZXI/IGgx
KQorICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAgICAgICAoPSBoMSBo
MikpKSkKKworICAgIChwYXNzLWlmICJzdHJpbmctY2ktaGFzaCByZXR1cm5zIGV4YWN0IGludGVn
ZXJzIgorICAgICAgKGxldCogKCh4ICJIZWxsbyBUaGVyZSEiKQorICAgICAgICAgICAgICh5ICJo
ZWxsbyBUSEVSRSEiKQorICAgICAgICAgICAgIChoMSAoc3RyaW5nLWNpLWhhc2ggeCkpCisgICAg
ICAgICAgICAgKGgyIChzdHJpbmctY2ktaGFzaCB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0LWlu
dGVnZXI/IGgxKQorICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAgICAg
ICAoPSBoMSBoMikpKSkKKworICAgIChwYXNzLWlmICJoYXNoLWJ5LWlkZW50aXR5IHJldHVybnMg
ZXhhY3QgaW50ZWdlcnMiCisgICAgICAobGV0KiAoKHggKHZlY3RvciAnYSAiYmNEIiAjXGMgJyhk
IDIuNzE4KSAtNDIgKGJ5dGV2ZWN0b3IpICcjKCkgKGJ5dGV2ZWN0b3IgOSAyMCkpKQorICAgICAg
ICAgICAgICh5IHgpCisgICAgICAgICAgICAgKGgxIChoYXNoLWJ5LWlkZW50aXR5IHgpKQorICAg
ICAgICAgICAgIChoMiAoaGFzaC1ieS1pZGVudGl0eSB5KSkpCisgICAgICAgIChhbmQgKGV4YWN0
LWludGVnZXI/IGgxKQorICAgICAgICAgICAgIChleGFjdC1pbnRlZ2VyPyBoMikKKyAgICAgICAg
ICAgICAoPSBoMSBoMikpKSkKKworICAgIChwYXNzLWlmICJoYXNoIHJldHVybnMgZXhhY3QgaW50
ZWdlcnMgMiIKKyAgICAgIChsZXQqICgoeCAobGlzdCAxIDIgMykpCisgICAgICAgICAgICAgKHkg
KGNvbnMgMSAoY2RyIHgpKSkKKyAgICAgICAgICAgICAoaDEgKGhhc2ggeCA2MCkpCisgICAgICAg
ICAgICAgKGgyIChoYXNoIHkgNjApKSkKKyAgICAgICAgKGFuZCAoZXhhY3QtaW50ZWdlcj8gaDEp
CisgICAgICAgICAgICAgKGV4YWN0LWludGVnZXI/IGgyKQorICAgICAgICAgICAgICg9IGgxIGgy
KSkpKQorCisgICAgKHBhc3MtaWYgInN0cmluZy1oYXNoIHJldHVybnMgZXhhY3QgaW50ZWdlcnMg
MiIKKyAgICAgIChsZXQqICgoeCAiYWJjZCIpCisgICAgICAgICAgICAgKHkgKHN0cmluZy1hcHBl
bmQgImFiIiAiY2QiKSkKKyAgICAgICAgICAgICAoaDEgKHN0cmluZy1oYXNoIHggOTcpKQorICAg
ICAgICAgICAgIChoMiAoc3RyaW5nLWhhc2ggeSA5NykpKQorICAgICAgICAoYW5kIChleGFjdC1p
bnRlZ2VyPyBoMSkKKyAgICAgICAgICAgICAoZXhhY3QtaW50ZWdlcj8gaDIpCisgICAgICAgICAg
ICAgKD0gaDEgaDIpKSkpCisKKyAgICAocGFzcy1pZiAic3RyaW5nLWNpLWhhc2ggcmV0dXJucyBl
eGFjdCBpbnRlZ2VycyAyIgorICAgICAgKGxldCogKCh4ICJIZWxsbyBUaGVyZSEiKQorICAgICAg
ICAgICAgICh5ICJoZWxsbyBUSEVSRSEiKQorICAgICAgICAgICAgIChoMSAoc3RyaW5nLWNpLWhh
c2ggeCAxMDEpKQorICAgICAgICAgICAgIChoMiAoc3RyaW5nLWNpLWhhc2ggeSAxMDEpKSkKKyAg
ICAgICAgKGFuZCAoZXhhY3QtaW50ZWdlcj8gaDEpCisgICAgICAgICAgICAgKGV4YWN0LWludGVn
ZXI/IGgyKQorICAgICAgICAgICAgICg9IGgxIGgyKSkpKQorCisgICAgKHBhc3MtaWYgImhhc2gt
YnktaWRlbnRpdHkgcmV0dXJucyBleGFjdCBpbnRlZ2VycyAyIgorICAgICAgKGxldCogKCh4ICh2
ZWN0b3IgJ2EgImJjRCIgI1xjICcoZCAyLjcxOCkgLTQyIChieXRldmVjdG9yKSAnIygpIChieXRl
dmVjdG9yIDE5IDIwKSkpCisgICAgICAgICAgICAgKHkgeCkKKyAgICAgICAgICAgICAoaDEgKGhh
c2gtYnktaWRlbnRpdHkgeCAxMDIpKQorICAgICAgICAgICAgIChoMiAoaGFzaC1ieS1pZGVudGl0
eSB5IDEwMikpKQorICAgICAgICAoYW5kIChleGFjdC1pbnRlZ2VyPyBoMSkKKyAgICAgICAgICAg
ICAoZXhhY3QtaW50ZWdlcj8gaDIpCisgICAgICAgICAgICAgKD0gaDEgaDIpKSkpCisKKyAgICAo
cGFzcy1pZiAiaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBmdW5jdGlvbnMgcHJvcGVy
bHkiCisgICAgICAobGV0ICgoZiAoaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodC1m
aXhudW0pKSkKKyAgICAgICAgKGlmIChwcm9jZWR1cmU/IGYpCisgICAgICAgICAgICAoZiAzNCAz
NCkKKyAgICAgICAgICAgICN0KSkpCisKKyAgICAocGFzcy1pZiAiaGFzaC10YWJsZS1oYXNoLWZ1
bmN0aW9uIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgIChsZXQgKChmIChoYXNoLXRhYmxlLWhh
c2gtZnVuY3Rpb24gaHQtZml4bnVtKSkpCisgICAgICAgIChpZiAocHJvY2VkdXJlPyBmKQorICAg
ICAgICAgICAgKD0gKGYgMzQpIChmIDM0KSkKKyAgICAgICAgICAgICN0KSkpCisKKyAgICAocGFz
cy1pZi1lcXVhbCAiaGFzaC10YWJsZS1leGlzdHM/IGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAg
ICAgJygjdCAjdCAjZiAjZiAjdCAjZiAjZiAjZiAjZiAjdCAjZikKKyAgICAgIChtYXAgKGxhbWJk
YSAoa2V5KSAoaGFzaC10YWJsZS1leGlzdHM/IGh0LWZpeG51bTIga2V5KSkKKyAgICAgICAgICAg
JygwIDEgMiAzIDQgNSA2IDcgOCA5IDEwKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10
YWJsZS13YWxrIGZ1bmN0aW9ucyBwcm9wZXJseSIKKyAgICAgICAgKGFwcGx5ICsKKyAgICAgICAg
ICAgICAgIChtYXAgKGxhbWJkYSAoeCkgKCogeCB4KSkKKyAgICAgICAgICAgICAgICAgICAgJygw
IDEgMiAzIDQgNSA2IDcgOCA5KSkpCisgICAgICAobGV0ICgobiAwKSkKKyAgICAgICAgKGhhc2gt
dGFibGUtd2FsayBodC1maXhudW0yCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAo
a2V5IHZhbCkgKHNldCEgbiAoKyBuIGtleSkpKSkKKyAgICAgICAgbikpCisKKyAgICAocGFzcy1p
Zi1lcXVhbCAiaGFzaC10YWJsZS1mb2xkIHdpdGggcmV2ZXJzZWQgYXJndW1lbnRzIGZ1bmN0aW9u
cyBwcm9wZXJseSIKKyAgICAgICAgJygwIDEgNCA5IDE2IDI1IDM2IDQ5IDY0IDgxKQorICAgICAg
KGxpc3Qtc29ydCA8IChoYXNoLXRhYmxlLWZvbGQgaHQtZml4bnVtMgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCBhY2MpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIGtleSBhY2MpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJygpKSkpCisKKyAgICAocGFzcy1pZi1lcXVhbCAiaGFzaC10
YWJsZS1tZXJnZSEgZnVuY3Rpb25zIHByb3Blcmx5IgorICAgICAgICAnKCgwIC4gMCkKKyAgICAg
ICAgICAoLjI1IC4gLjUpCisgICAgICAgICAgKDEgLiAxKQorICAgICAgICAgICg0IC4gMikKKyAg
ICAgICAgICAoOSAuIDMpCisgICAgICAgICAgKDE2IC4gNCkKKyAgICAgICAgICAoMjUgLiA1KQor
ICAgICAgICAgICgzNiAuIDYpCisgICAgICAgICAgKDQ5IC4gNykKKyAgICAgICAgICAoNjQgLiA4
KQorICAgICAgICAgICg4MSAuIDkpCisgICAgICAgICAgKDEyMSAuIC0xMSkKKyAgICAgICAgICAo
MTQ0IC4gLTEyKSkKKyAgICAgIChsZXQgKChodCAoaGFzaC10YWJsZS1jb3B5IGh0LWZpeG51bTIg
I3QpKQorICAgICAgICAgICAgKGh0MiAoaGFzaC10YWJsZSBudW1iZXItY29tcGFyYXRvcgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuMjUgLjUgNjQgOTk5OSA4MSA5OTk4IDEyMSAtMTEg
MTQ0IC0xMikpKQorICAgICAgICAoaGFzaC10YWJsZS1tZXJnZSEgaHQgaHQyKQorICAgICAgICAo
bGlzdC1zb3J0IChsYW1iZGEgKHggeSkgKDwgKGNhciB4KSAoY2FyIHkpKSkKKyAgICAgICAgICAg
ICAgICAgICAoaGFzaC10YWJsZS0+YWxpc3QgaHQpKSkpKSkKKworOzsgZW9mCi0tIAoyLjE5LjEK
Cg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0008-Fix-bugs-in-GENERIC-HASH-TABLES.patch"
Content-Disposition: attachment; 
	filename="0008-Fix-bugs-in-GENERIC-HASH-TABLES.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnow2>
X-Attachment-Id: f_jqvhvnow2

RnJvbSA1NTRiNDQwYzQ4OGE5MGM4ZjZiZDJkOWJmMGFlZTI0MjVkYWI2N2ZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTYXQsIDEyIEphbiAyMDE5IDE4OjE1OjQ0
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwOC8xMF0gRml4IGJ1Z3MgaW4gR0VORVJJQy1IQVNILVRB
QkxFUwoKSEFTSC1UQUJMRS1QUlVORSEgZGlkbid0IHVwZGF0ZSBzaXplIGFmdGVyIHJlbW92aW5n
IGtleXMuCkhBU0gtVEFCTEUtREVMRVRFISBhY2Nlc3NlZCBoYXNoIGZ1bmN0aW9uIGFuZCBhc3Nv
Y2lhdG9yCiAgb25jZSBwZXIga2V5LCBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBvbmx5IG9uY2UgcGVy
CiAgcHJvY2VkdXJlIGNhbGwuCgoqIG1vZHVsZS9pY2UtOS9nZW5lcmljLWhhc2gtdGFibGVzLnNj
bSAoaGFzaC10YWJsZS1wcnVuZSEpOgogIE5vdyB1cGRhdGVzIHNpemUgYWZ0ZXIgcmVtb3Zpbmcg
a2V5cyAoYnVnKS4KKiAoaGFzaC10YWJsZS1kZWxldGUhKTogdXNlIFdJVEgtSEFTSFgtVkFMVUVT
IG91dHNpZGUgb2YgbG9vcCwKICBzbyB0aGF0IGhhc2ggZnVuY3Rpb24gYW5kIGFzc29jaWF0b3Ig
YXJlIGFjY2Vzc2VkIG9ubHkgb25jZS4KLS0tCiBtb2R1bGUvaWNlLTkvZ2VuZXJpYy1oYXNoLXRh
Ymxlcy5zY20gfCAyNSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg
MTQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbW9kdWxlL2lj
ZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtIGIvbW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10
YWJsZXMuc2NtCmluZGV4IDMxZGVhZDk3YS4uNjJmZDViYjEzIDEwMDY0NAotLS0gYS9tb2R1bGUv
aWNlLTkvZ2VuZXJpYy1oYXNoLXRhYmxlcy5zY20KKysrIGIvbW9kdWxlL2ljZS05L2dlbmVyaWMt
aGFzaC10YWJsZXMuc2NtCkBAIC01MTcsMTkgKzUxNywyMCBAQCBudW1iZXIgb2Yga2V5cyB0aGF0
IGhhZCBhc3NvY2lhdGlvbnMuIgogICAgICAgICAgIChpZiAoaGFzaC10YWJsZS1kZWxldGUtc2lu
Z2xlISBodCBrZXkxKSAxIDApKQogICAgICAgKGJlZ2luCiAgICAgICAgIChhc3NlcnQtbXV0YWJs
ZSBodCkKLSAgICAgICAgKGxldCogKChjb3VudCAwKQotICAgICAgICAgICAgICAgKGRlbGV0ZS1v
bmUhIChsYW1iZGEgKGtleSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aXRoLWhh
c2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIGh0CisgICAgICAgICh3aXRoLWhhc2h4LXZhbHVl
cyAoaCBhIHJlYWwtdGFibGUpIGh0CisgICAgICAgICAgKGxldCogKChjb3VudCAwKQorICAgICAg
ICAgICAgICAgICAoc2l6ZSAoaHQtc2l6ZSBodCkpCisgICAgICAgICAgICAgICAgIChkZWxldGUt
b25lISAobGFtYmRhIChrZXkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVu
IChub3QgKGVxPyBodC11bnNwZWNpZmllZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlZiBoIGEgcmVhbC10YWJsZSBrZXkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQtdW5z
cGVjaWZpZWQpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBjb3Vu
dCAoKyAxIGNvdW50KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgt
cmVtb3ZlISBoIGEgcmVhbC10YWJsZSBrZXkpKSkpKSkKLSAgICAgICAgICAoZGVsZXRlLW9uZSEg
a2V5MSkKLSAgICAgICAgICAoZm9yLWVhY2ggZGVsZXRlLW9uZSEga2V5cykKLSAgICAgICAgICAo
dW5sZXNzIChvciAoaHQtd2Vha25lc3MgaHQpICh6ZXJvPyBjb3VudCkpCi0gICAgICAgICAgICAo
aHQtc2l6ZSEgaHQgKC0gKGh0LXNpemUgaHQpIGNvdW50KSkpCi0gICAgICAgICAgY291bnQpKSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJl
YWwtdGFibGUga2V5KSkpKSkKKyAgICAgICAgICAgIChkZWxldGUtb25lISBrZXkxKQorICAgICAg
ICAgICAgKGZvci1lYWNoIGRlbGV0ZS1vbmUhIGtleXMpCisgICAgICAgICAgICAodW5sZXNzIChv
ciAoaHQtd2Vha25lc3MgaHQpICh6ZXJvPyBjb3VudCkpCisgICAgICAgICAgICAgIChodC1zaXpl
ISBodCAoLSBzaXplIGNvdW50KSkpCisgICAgICAgICAgICBjb3VudCkpKSkpCiAKIChkZWZpbmUg
KGhhc2gtdGFibGUtaW50ZXJuISBodCBrZXkgZmFpbHVyZSkKICAgIkVmZmVjdGl2ZWx5IGludm9r
ZXMgSEFTSC1UQUJMRS1SRUYgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzIGFuZApAQCAtODIwLDgg
KzgyMSwxMCBAQCBQUk9DIHJldHVybnMgdHJ1ZS4gUmV0dXJucyBhbiB1bnNwZWNpZmllZCB2YWx1
ZS4iCiAgIChhc3NlcnQtbXV0YWJsZSBodCkKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVh
bC10YWJsZSkgaHQKICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKQotICAgICAg
ICAgICAgICAgICAgICAgKGlmIChwcm9jIGtleSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtdGFibGUga2V5KSkpCisgICAgICAgICAgICAgICAg
ICAgICAod2hlbiAocHJvYyBrZXkgdmFsKQorICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNz
IChodC13ZWFrbmVzcyBodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoaHQtc2l6ZSEgaHQg
KC0gKGh0LXNpemUgaHQpIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlbW92
ZSEgaCBhIHJlYWwtdGFibGUga2V5KSkpCiAgICAgICAgICAgICAgICAgICAgcmVhbC10YWJsZSkp
KQogCiAMCi0tIAoyLjE5LjEKCg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0010-Created-a-procedure-that-returns-the-size-of-a-hash-.patch"
Content-Disposition: attachment; 
	filename="0010-Created-a-procedure-that-returns-the-size-of-a-hash-.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnp14>
X-Attachment-Id: f_jqvhvnp14

RnJvbSBlMjc0NTI3NWU4ZWVlYWI1ZDdiOTE3NDZlOTJjMWMwZTc4ZmZjOTNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEzIEphbiAyMDE5IDIwOjQ0OjE4
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAxMC8xMF0gQ3JlYXRlZCBhIHByb2NlZHVyZSB0aGF0IHJl
dHVybnMgdGhlIHNpemUgb2YgYSBoYXNoCiB0YWJsZQoKVGhlIG1vZHVsZSAoSUNFLTkgR0VORVJJ
Qy1IQVNILVRBQkxFUykgdXNlZCB0byBrZWVwIHRyYWNrIG9mIGhhc2ggdGFibGUKc2l6ZSBieSBp
dHNlbGYuIE5vdywgYSBwcm9jZWR1cmUgSEFTSC1OLUlURU1TIHdhcyBpbXBsZW1lbnRlZCBpbgon
bGliZ3VpbGUvaGFzaHRhYi5jJyB0byBhY2Nlc3MgdGhlIG5faXRlbXMgZmllbGQgb2YgR3VpbGUg
aGFzaCB0YWJsZQpzdHJ1Y3R1cmUuCgoqIGxpYmd1aWxlL2hhc2h0YWIuYyAoc2NtX2hhc2hfbl9p
dGVtcyk6IGNyZWF0ZWQsIGl0IHJldHVybnMgdGhlIG51bWJlcgogIG9mIGl0ZW1zIHRoYXQgdGhl
IGdpdmVuIGhhc2ggdGFibGUgaGFzLiBJdCB3b3JrcyBmb3Igbm9ybWFsIGFuZCB3ZWFrCiAgaGFz
aCB0YWJsZXMuCiogbW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtOiByZW1vdmVk
ICdzaXplJyBmaWVsZCBvZgogIDxnZW5lcmljLWhhc2gtdGFibGU+IHJlY29yZCB0eXBlLiBObyBw
cm9jZWR1cmVzIG5lZWQgdG8gdXBkYXRlIGl0CiAgYW55bW9yZS4KKGhhc2gtdGFibGUtc2l6ZSk6
IG5vdyBhY2Nlc3NlcyB0aGUgc2l6ZSB1c2luZyBIQVNILU4tSVRFTVMuIFRoYXQKICBndWFyYW50
ZWVzIE8oMSkgcHJvY2VkdXJlIHRpbWUuCi0tLQogbGliZ3VpbGUvaGFzaHRhYi5jICAgICAgICAg
ICAgICAgICAgIHwgIDE5ICsrLQogbGliZ3VpbGUvaGFzaHRhYi5oICAgICAgICAgICAgICAgICAg
IHwgICAxICsKIGxpYmd1aWxlL3dlYWstdGFibGUuYyAgICAgICAgICAgICAgICB8ICAxNCArKwog
bGliZ3VpbGUvd2Vhay10YWJsZS5oICAgICAgICAgICAgICAgIHwgICAzICstCiBtb2R1bGUvaWNl
LTkvZ2VuZXJpYy1oYXNoLXRhYmxlcy5zY20gfCAyMzAgKysrKysrKysrKy0tLS0tLS0tLS0tLS0t
LS0tCiA1IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCAxNTAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvaGFzaHRhYi5jIGIvbGliZ3VpbGUvaGFzaHRhYi5jCmlu
ZGV4IGI0ZjAwNGMxZC4uZGQwNjU5ZjdjIDEwMDY0NAotLS0gYS9saWJndWlsZS9oYXNodGFiLmMK
KysrIGIvbGliZ3VpbGUvaGFzaHRhYi5jCkBAIC0yMTAsNiArMjEwLDIyIEBAIFNDTV9ERUZJTkUg
KHNjbV9oYXNoX3RhYmxlX3AsICJoYXNoLXRhYmxlPyIsIDEsIDAsIDAsCiB9CiAjdW5kZWYgRlVO
Q19OQU1FCiAKK1NDTV9ERUZJTkUgKHNjbV9oYXNoX25faXRlbXMsICJoYXNoLW4taXRlbXMiLCAx
LCAwLCAwLAorICAgICAgICAgICAgKFNDTSB0YWJsZSksCisgICAgICAgICAgICAiUmV0dXJuIHRo
ZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGdpdmVuIGhhc2ggVEFCTEUuIikKKyNkZWZpbmUg
RlVOQ19OQU1FIHNfc2NtX2hhc2hfbl9pdGVtcworeworICBpZiAoU0NNX1dFQUtfVEFCTEVfUCAo
dGFibGUpKQorICAgIHsKKyAgICAgIHJldHVybiBzY21fd2Vha190YWJsZV9uX2l0ZW1zICh0YWJs
ZSk7CisgICAgfQorCisgIFNDTV9WQUxJREFURV9IQVNIVEFCTEUgKDEsIHRhYmxlKTsKKworICBy
ZXR1cm4gc2NtX2Zyb21fdWxvbmcgKFNDTV9IQVNIVEFCTEVfTl9JVEVNUyAodGFibGUpKTsKK30K
KyN1bmRlZiBGVU5DX05BTUUKKwogCiAMCiAvKiBBY2Nlc3NpbmcgaGFzaCB0YWJsZSBlbnRyaWVz
LiAgKi8KQEAgLTk4Niw4ICsxMDAyLDcgQEAgY291bnRfcHJvYyAodm9pZCAqcHJlZCwgU0NNIGtl
eSwgU0NNIGRhdGEsIFNDTSB2YWx1ZSkKIFNDTV9ERUZJTkUgKHNjbV9oYXNoX2NvdW50LCAiaGFz
aC1jb3VudCIsIDIsIDAsIDAsCiAgICAgICAgICAgICAoU0NNIHByZWQsIFNDTSB0YWJsZSksCiAg
ICAgICAgICAgICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGdpdmVuIGhh
c2ggVEFCTEUgdGhhdFxuIgotICAgICAgICAgICAgImNhdXNlIGAoUFJFRCBLRVkgVkFMVUUpJyB0
byByZXR1cm4gdHJ1ZS4gIFRvIHF1aWNrbHkgZGV0ZXJtaW5lXG4iCi0gICAgICAgICAgICAidGhl
IHRvdGFsIG51bWJlciBvZiBlbGVtZW50cywgdXNlIGAoY29uc3QgI3QpJyBmb3IgUFJFRC4iKQor
ICAgICAgICAgICAgImNhdXNlIGAoUFJFRCBLRVkgVkFMVUUpJyB0byByZXR1cm4gdHJ1ZS4iKQog
I2RlZmluZSBGVU5DX05BTUUgc19zY21faGFzaF9jb3VudAogewogICBTQ00gaW5pdDsKZGlmZiAt
LWdpdCBhL2xpYmd1aWxlL2hhc2h0YWIuaCBiL2xpYmd1aWxlL2hhc2h0YWIuaAppbmRleCA2MWU4
MWIzNDEuLjcwZTlkYWFiYiAxMDA2NDQKLS0tIGEvbGliZ3VpbGUvaGFzaHRhYi5oCisrKyBiL2xp
Ymd1aWxlL2hhc2h0YWIuaApAQCAtNzgsNiArNzgsNyBAQCBTQ01fQVBJIFNDTSBzY21fY19tYWtl
X2hhc2hfdGFibGUgKHVuc2lnbmVkIGxvbmcgayk7CiBTQ01fQVBJIFNDTSBzY21fbWFrZV9oYXNo
X3RhYmxlIChTQ00gbik7CiAKIFNDTV9BUEkgU0NNIHNjbV9oYXNoX3RhYmxlX3AgKFNDTSBoKTsK
K1NDTV9BUEkgU0NNIHNjbV9oYXNoX25faXRlbXMgKFNDTSBoYXNoKTsKIAogU0NNX0lOVEVSTkFM
IHZvaWQgc2NtX2lfcmVoYXNoIChTQ00gdGFibGUsIHNjbV90X2hhc2hfZm4gaGFzaF9mbiwKIAkJ
CQl2b2lkICpjbG9zdXJlLCBjb25zdCBjaGFyICpmdW5jX25hbWUpOwpkaWZmIC0tZ2l0IGEvbGli
Z3VpbGUvd2Vhay10YWJsZS5jIGIvbGliZ3VpbGUvd2Vhay10YWJsZS5jCmluZGV4IDFlNGQ4ZDMw
Mi4uM2Y5NGI0ZmQ5IDEwMDY0NAotLS0gYS9saWJndWlsZS93ZWFrLXRhYmxlLmMKKysrIGIvbGli
Z3VpbGUvd2Vhay10YWJsZS5jCkBAIC01MTUsNiArNTE1LDIwIEBAIHNjbV93ZWFrX3RhYmxlX3Ag
KFNDTSBvYmopCiAgIHJldHVybiBzY21fZnJvbV9ib29sIChTQ01fV0VBS19UQUJMRV9QIChvYmop
KTsKIH0KIAorU0NNCitzY21fd2Vha190YWJsZV9uX2l0ZW1zIChTQ00gdGFibGUpCisjZGVmaW5l
IEZVTkNfTkFNRSAid2Vhay10YWJsZS1uLWl0ZW1zIgoreworICBzY21fdF93ZWFrX3RhYmxlICp0
OworCisgIFNDTV9WQUxJREFURV9XRUFLX1RBQkxFICgxLCB0YWJsZSk7CisKKyAgdCA9IFNDTV9X
RUFLX1RBQkxFICh0YWJsZSk7CisKKyAgcmV0dXJuIHNjbV9mcm9tX3Vsb25nICh0LT5uX2l0ZW1z
KTsKK30KKyN1bmRlZiBGVU5DX05BTUUKKwogU0NNCiBzY21fY193ZWFrX3RhYmxlX3JlZiAoU0NN
IHRhYmxlLCB1bnNpZ25lZCBsb25nIHJhd19oYXNoLAogICAgICAgICAgICAgICAgICAgICAgIHNj
bV90X3RhYmxlX3ByZWRpY2F0ZV9mbiBwcmVkLApkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvd2Vhay10
YWJsZS5oIGIvbGliZ3VpbGUvd2Vhay10YWJsZS5oCmluZGV4IGJjYmM5NGUzZi4uYjMwOWIxMWY5
IDEwMDY0NAotLS0gYS9saWJndWlsZS93ZWFrLXRhYmxlLmgKKysrIGIvbGliZ3VpbGUvd2Vhay10
YWJsZS5oCkBAIC00NSw2ICs0NSw3IEBAIHR5cGVkZWYgU0NNICgqc2NtX3RfdGFibGVfZm9sZF9m
bikgKHZvaWQgKmNsb3N1cmUsIFNDTSBrLCBTQ00gdiwgU0NNIHJlc3VsdCk7CiBTQ01fSU5URVJO
QUwgU0NNIHNjbV9jX21ha2Vfd2Vha190YWJsZSAodW5zaWduZWQgbG9uZyBrLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjbV90X3dlYWtfdGFibGVfa2luZCBraW5k
KTsKIFNDTV9JTlRFUk5BTCBTQ00gc2NtX3dlYWtfdGFibGVfcCAoU0NNIGgpOworU0NNX0lOVEVS
TkFMIFNDTSBzY21fd2Vha190YWJsZV9uX2l0ZW1zIChTQ00gdGFibGUpOwogCiBTQ01fSU5URVJO
QUwgU0NNIHNjbV9jX3dlYWtfdGFibGVfcmVmIChTQ00gdGFibGUsIHVuc2lnbmVkIGxvbmcgcmF3
X2hhc2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY21fdF90YWJs
ZV9wcmVkaWNhdGVfZm4gcHJlZCwKQEAgLTYzLDcgKzY0LDcgQEAgU0NNX0lOVEVSTkFMIHZvaWQg
c2NtX3dlYWtfdGFibGVfcmVtcV94IChTQ00gdGFibGUsIFNDTSBrZXkpOwogU0NNX0lOVEVSTkFM
IHZvaWQgc2NtX3dlYWtfdGFibGVfY2xlYXJfeCAoU0NNIHRhYmxlKTsKIAogU0NNX0lOVEVSTkFM
IFNDTSBzY21fY193ZWFrX3RhYmxlX2ZvbGQgKHNjbV90X3RhYmxlX2ZvbGRfZm4gcHJvYywgdm9p
ZCAqY2xvc3VyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NNIGlu
aXQsIFNDTSB0YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U0NNIGluaXQsIFNDTSB0YWJsZSk7CiBTQ01fSU5URVJOQUwgU0NNIHNjbV93ZWFrX3RhYmxlX2Zv
bGQgKFNDTSBwcm9jLCBTQ00gaW5pdCwgU0NNIHRhYmxlKTsKIFNDTV9JTlRFUk5BTCB2b2lkIHNj
bV93ZWFrX3RhYmxlX2Zvcl9lYWNoIChTQ00gcHJvYywgU0NNIHRhYmxlKTsKIFNDTV9JTlRFUk5B
TCBTQ00gc2NtX3dlYWtfdGFibGVfbWFwX3RvX2xpc3QgKFNDTSBwcm9jLCBTQ00gdGFibGUpOwpk
aWZmIC0tZ2l0IGEvbW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtIGIvbW9kdWxl
L2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCmluZGV4IDYyZmQ1YmIxMy4uNDVjZDEzNjRh
IDEwMDY0NAotLS0gYS9tb2R1bGUvaWNlLTkvZ2VuZXJpYy1oYXNoLXRhYmxlcy5zY20KKysrIGIv
bW9kdWxlL2ljZS05L2dlbmVyaWMtaGFzaC10YWJsZXMuc2NtCkBAIC0xODcsMTkgKzE4NywxNiBA
QCBhbGlzdCBrZXlzIHdpdGggRVFVSVYtRlVOQ1RJT04uIgogCiAoZGVmaW5lLXJlY29yZC10eXBl
IGdlbmVyaWMtaGFzaC10YWJsZQogICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUgcmVhbC10YWJs
ZSBoYXNoLWZ1bmN0aW9uIGFzc29jaWF0b3Igd2Vha25lc3MKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11dGFibGU/IHNpemUgZXF1aXZhbGVuY2UtZnVuY3Rpb24gb3JpZ2luYWwtaGFzaC1m
dW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGFibGU/IGVxdWl2YWxlbmNl
LWZ1bmN0aW9uIG9yaWdpbmFsLWhhc2gtZnVuY3Rpb24pCiAgIGhhc2gtdGFibGU/CiAgIDs7IFRo
ZXNlIHRocmVlIGFyZSB0aGUgbW9zdCBhY2Nlc3NlZCBmaWVsZHMuCiAgIChyZWFsLXRhYmxlIGh0
LXJlYWwtdGFibGUgaHQtcmVhbC10YWJsZSEpCiAgIChoYXNoLWZ1bmN0aW9uIGh0LWhhc2gtZnVu
Y3Rpb24pCiAgIChhc3NvY2lhdG9yIGh0LWFzc29jaWF0b3IpCi0gIDs7IFdlYWsgaGFzaCB0YWJs
ZXMgZG9uJ3QgdXNlIGhhbmRsZXMgYW5kIGRvbid0IHVwZGF0ZSBodC1zaXplLgorICA7OyBXZWFr
IGhhc2ggdGFibGVzIGRvbid0IHVzZSBoYW5kbGVzLgogICAod2Vha25lc3MgaHQtd2Vha25lc3Mp
CiAgIDs7IFN1cHBvcnRzIGltbXV0YWJpbGl0eS4KICAgKG11dGFibGU/IGhhc2gtdGFibGUtbXV0
YWJsZT8pCi0gIDs7IFNpemUgb2YgaGFzaC10YWJsZSwgYWxsb3dpbmcgTygxKSBoYXNoLXRhYmxl
LXNpemUgZm9yCi0gIDs7IG5vbi13ZWFrIGhhc2ggdGFibGVzLgotICAoc2l6ZSBodC1zaXplIGh0
LXNpemUhKQogICA7OyBUaGVzZSBhcmUgbW9zdGx5IG5lZWRlZCBmb3IgcmVmbGVjdGl2ZSBxdWVy
aWVzCiAgIChlcXVpdmFsZW5jZS1mdW5jdGlvbiBoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0
aW9uKQogICAob3JpZ2luYWwtaGFzaC1mdW5jdGlvbiBoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24p
KQpAQCAtMjM5LDEwICsyMzYsMTAgQEAgYWxpc3Qga2V5cyB3aXRoIEVRVUlWLUZVTkNUSU9OLiIK
ICAgICAgIChnZXQtaGFzaC1mdW5jdGlvbnMgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbikK
ICAgICAobGV0ICgocmVhbC10YWJsZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNhcGFjaXR5
KSkpCiAgICAgICA7OyBBcmd1bWVudHM6IHJlYWwtdGFibGUgaGFzaC1mdW5jdGlvbiBhc3NvY2lh
dG9yCi0gICAgICA7OyAgICAgICAgICAgIHdlYWtuZXNzIG11dGFibGU/IHNpemUgZXF1aXZhbGVu
Y2UtZnVuY3Rpb24gb3JpZy1oYXNoLWZ1bmN0aW9uCisgICAgICA7OyAgICAgICAgICAgIHdlYWtu
ZXNzIG11dGFibGU/IGVxdWl2YWxlbmNlLWZ1bmN0aW9uIG9yaWctaGFzaC1mdW5jdGlvbgogICAg
ICAgKG1ha2UtZ2VuZXJpYy1oYXNoLXRhYmxlIHJlYWwtdGFibGUgaW50ZXJuYWwtaGFzaC1mdW5j
dGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVpdmFsZW5jZS1wcm9jLT5h
c3NvY2lhdG9yIGVxdWl2LWZ1bmN0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkgMAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlcXVpdi1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uKSkpKQogCiA7OyBJZiB0aGUgbGlzdCBv
ZiBhcmd1bWVudHMgaXMgdXBkYXRlZCwgSEFTSC1UQUJMRSwgQUxJU1QtPkhBU0gtVEFCTEUsCkBA
IC0zMjUsOCArMzIyLDcgQEAgaXMgc2lnbmFsZWQuIgogICAgICAgICAgICAgICAgICAgICAgICAg
IChlcnJvciAiVHdvIGVxdWl2YWxlbnQga2V5cyB3ZXJlIHByb3ZpZGVkIgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoY2FyIGhhbmRsZSkgKGNhciBrdnMpKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAoY2FkciBrdnMpKSkKLSAgICAgICAgICAgICAg
ICAgICAgIChsb29wIChjZGRyIGt2cykpKSkKLSAgICAgICAgICAgICAgKGh0LXNpemUhIGh0IGNh
cGFjaXR5KSkpKQorICAgICAgICAgICAgICAgICAgICAgKGxvb3AgKGNkZHIga3ZzKSkpKSkpKQog
ICAgICAgaHQpKSkKIAogKGRlZmluZSogKGhhc2gtdGFibGUtdW5mb2xkIHN0b3A/IG1hcHBlciBz
dWNjZXNzb3Igc2VlZApAQCAtMzQxLDI1ICszMzcsMTIgQEAgdGhlIHByb2NlZHVyZSBTVUNDRVNT
T1IgdG8gU0VFRCwgYW5kIHJlcGVhdCB0aGlzIGFsZ29yaXRobS4iCiAgIChsZXQgKChyZXN1bHQg
KCVtYWtlLWhhc2gtdGFibGUgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlvbgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11dGFibGUgY2FwYWNpdHkgd2Vha25lc3MpKSkKICAg
ICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSByZXN1bHQKLSAgICAgIChpZiAo
aHQtd2Vha25lc3MgcmVzdWx0KQotICAgICAgICAgIChsZXQgbG9vcCAoKHNlZWQgc2VlZCkpCi0g
ICAgICAgICAgICAoaWYgKHN0b3A/IHNlZWQpCi0gICAgICAgICAgICAgICAgcmVzdWx0Ci0gICAg
ICAgICAgICAgICAgKHJlY2VpdmUgKGtleSB2YWwpIChtYXBwZXIgc2VlZCkKLSAgICAgICAgICAg
ICAgICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpCi0gICAgICAgICAgICAg
ICAgICAobG9vcCAoc3VjY2Vzc29yIHNlZWQpKSkpKQotICAgICAgICAgIChsZXQgKChzaXplICho
dC1zaXplIHJlc3VsdCkpKQotICAgICAgICAgICAgKGxldCBsb29wICgoc2VlZCBzZWVkKSkKLSAg
ICAgICAgICAgICAgKGlmIChzdG9wPyBzZWVkKQotICAgICAgICAgICAgICAgICAgcmVzdWx0Ci0g
ICAgICAgICAgICAgICAgICAocmVjZWl2ZSAoa2V5IHZhbCkgKG1hcHBlciBzZWVkKQotICAgICAg
ICAgICAgICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFuZGxlISBoIGEgcmVh
bC10YWJsZSBrZXkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaHQtdW5zcGVjaWZpZWQpKSkKLSAgICAgICAgICAgICAgICAgICAgICAoaWYg
KGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZXQhIHNpemUgKCsgMSBzaXplKSkpCi0gICAgICAgICAgICAgICAgICAgICAgKHNldC1j
ZHIhIGhhbmRsZSB2YWwpKQotICAgICAgICAgICAgICAgICAgICAobG9vcCAoc3VjY2Vzc29yIHNl
ZWQpKSkpKQotICAgICAgICAgICAgKGh0LXNpemUhIHJlc3VsdCBzaXplKSkpKQorICAgICAgKGxl
dCBsb29wICgoc2VlZCBzZWVkKSkKKyAgICAgICAgKGlmIChzdG9wPyBzZWVkKQorICAgICAgICAg
ICAgcmVzdWx0CisgICAgICAgICAgICAocmVjZWl2ZSAoa2V5IHZhbCkgKG1hcHBlciBzZWVkKQor
ICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgdmFsKQorICAgICAg
ICAgICAgICAobG9vcCAoc3VjY2Vzc29yIHNlZWQpKSkpKSkKICAgICByZXN1bHQpKQogCiAoZGVm
aW5lKiAoYWxpc3QtPmhhc2gtdGFibGUgYWxpc3QgZXF1aXYtZnVuY3Rpb24gaGFzaC1mdW5jdGlv
bgpAQCAtMzcyLDE5ICszNTUsOSBAQCBjb21lIGxhdGVyLiIKICAgKGxldCAoKHJlc3VsdCAoJW1h
a2UtaGFzaC10YWJsZSBlcXVpdi1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV0YWJsZSBjYXBhY2l0eSB3ZWFrbmVzcykpKQogICAgICh3
aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFibGUpIHJlc3VsdAotICAgICAgKGlmIChodC13
ZWFrbmVzcyByZXN1bHQpCi0gICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCi0gICAg
ICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUgKGNhciBwYWlyKSAo
Y2RyIHBhaXIpKSkKLSAgICAgICAgICAgICAgICAgICAgKHJldmVyc2UgYWxpc3QpKQotICAgICAg
ICAgIChsZXQgKChzaXplIChodC1zaXplIHJlc3VsdCkpKQotICAgICAgICAgICAgKGZvci1lYWNo
IChsYW1iZGEgKHBhaXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoaGFuZGxlICho
YXNoeC1jcmVhdGUtaGFuZGxlIQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaCBhIHJlYWwtdGFibGUgKGNhciBwYWlyKSBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAod2hlbiAoZXE/IGh0LXVuc3BlY2lmaWVkIChjZHIgaGFuZGxlKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBzaXplICgrIDEgc2l6ZSkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAoY2RyIHBhaXIpKSkpKQot
ICAgICAgICAgICAgICAgICAgICAgIGFsaXN0KQotICAgICAgICAgICAgKGh0LXNpemUhIHJlc3Vs
dCBzaXplKSkpKQorICAgICAgKGZvci1lYWNoIChsYW1iZGEgKHBhaXIpCisgICAgICAgICAgICAg
ICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSAoY2FyIHBhaXIpIChjZHIgcGFpcikpKQor
ICAgICAgICAgICAgICAgIChyZXZlcnNlIGFsaXN0KSkpCiAgICAgcmVzdWx0KSkKIAogDApAQCAt
NDE1LDEyICszODgsNyBAQCBLRVkgaXNuJ3QgcHJlc2VudC4iCiAKIChkZWZpbmUgKGhhc2gtdGFi
bGUtZW1wdHk/IGh0KQogICAiUmV0dXJucyB3aGV0aGVyIEtFWSBpcyBlbXB0eS4iCi0gIChpZiAo
aHQtd2Vha25lc3MgaHQpCi0gICAgICAoY2FsbC9jYyAobGFtYmRhIChleGl0KQotICAgICAgICAg
ICAgICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKSAoZXhpdCAjZikpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChodC1yZWFsLXRhYmxlIGh0KSkKLSAgICAgICAg
ICAgICAgICAgI3QpKQotICAgICAgKHplcm8/IChodC1zaXplIGh0KSkpKQorICAoemVybz8gKGhh
c2gtbi1pdGVtcyAoaHQtcmVhbC10YWJsZSBodCkpKSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1j
b250YWlucz8gaHQga2V5KQogICAiUmV0dXJuIHdoZXRoZXIgS0VZIGlzIGEga2V5IGluIEhULiIK
QEAgLTQ1MCwxNCArNDE4LDggQEAgYXNzb2NpYXRpb24gaXMgY3JlYXRlZCBiZXR3ZWVuIEtFWSBh
bmQgVkFMLiBJZiB0aGVyZSBpcyBhIHByZXZpb3VzCiBhc3NvY2lhdGlvbiBmb3IgS0VZLCBpdCBp
cyBkZWxldGVkLiIKICAgKGFzc2VydC1tdXRhYmxlIGh0KQogICAod2l0aC1oYXNoeC12YWx1ZXMg
KGggYSByZWFsLXRhYmxlKSBodAotICAgIChpZiAoaHQtd2Vha25lc3MgaHQpCi0gICAgICAgICho
YXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpCi0gICAgICAgIChsZXQgKChoYW5kbGUg
KGhhc2h4LWNyZWF0ZS1oYW5kbGUhCi0gICAgICAgICAgICAgICAgICAgICAgIGggYSByZWFsLXRh
YmxlIGtleQotICAgICAgICAgICAgICAgICAgICAgICBodC11bnNwZWNpZmllZCkpKQotICAgICAg
ICAgIChpZiAoZXE/IGh0LXVuc3BlY2lmaWVkIChjZHIgaGFuZGxlKSkKLSAgICAgICAgICAgICAg
KGh0LXNpemUhIGh0ICgrIDEgKGh0LXNpemUgaHQpKSkpCi0gICAgICAgICAgKHNldC1jZHIhIGhh
bmRsZSB2YWwpKSkpKQorICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpKQor
ICAqdW5zcGVjaWZpZWQqKQogCiAoZGVmaW5lKiAoaGFzaC10YWJsZS1zZXQhIGh0ICM6b3B0aW9u
YWwgKGtleTEgaHQtdW5zcGVjaWZpZWQpICh2YWwxIGh0LXVuc3BlY2lmaWVkKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAjOnJlc3QgYXJncykKQEAgLTQ3NywyNSArNDM5LDE1IEBAIGRlbGV0
ZWQuIgogICAgICAgKGJlZ2luCiAgICAgICAgIChhc3NlcnQtbXV0YWJsZSBodCkKICAgICAgICAg
KHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkgaHQKLSAgICAgICAgICAobGV0ICgo
c2V0LW9uZSEgKGlmIChodC13ZWFrbmVzcyBodCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsYW1iZGEgKGtleSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICho
YXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWwpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhhbmRsZSEKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaCBhIHJlYWwtdGFibGUga2V5Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0LXVuc3BlY2lmaWVkKSkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcT8gaHQtdW5zcGVjaWZp
ZWQgKGNkciBoYW5kbGUpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
aHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlIHZhbCkpKSkpKQotICAgICAgICAgICAgKHNldC1v
bmUhIGtleTEgdmFsMSkKLSAgICAgICAgICAgIChsZXQgbG9vcCAoKGt2cyBhcmdzKSkKLSAgICAg
ICAgICAgICAgKGNvbmQKLSAgICAgICAgICAgICAgICgobnVsbD8ga3ZzKSAqdW5zcGVjaWZpZWQq
KQotICAgICAgICAgICAgICAgKChudWxsPyAoY2RyIGt2cykpCi0gICAgICAgICAgICAgICAgKGVy
cm9yICJPZGQgbnVtYmVyIG9mIGtleS12YWx1ZSBwYWlycyIKLSAgICAgICAgICAgICAgICAgICAg
ICAgKGNvbnMqIGtleTEgdmFsMSBhcmdzKSkpCi0gICAgICAgICAgICAgICAoZWxzZSAoc2V0LW9u
ZSEgKGNhciBrdnMpIChjYWRyIGt2cykpCi0gICAgICAgICAgICAgICAgICAgICAobG9vcCAoY2Rk
ciBrdnMpKSkpKSkpKSkpCisgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUga2V5
MSB2YWwxKQorICAgICAgICAgIChsZXQgbG9vcCAoKGt2cyBhcmdzKSkKKyAgICAgICAgICAgIChj
b25kCisgICAgICAgICAgICAgKChudWxsPyBrdnMpICp1bnNwZWNpZmllZCopCisgICAgICAgICAg
ICAgKChudWxsPyAoY2RyIGt2cykpCisgICAgICAgICAgICAgIChlcnJvciAiT2RkIG51bWJlciBv
ZiBrZXktdmFsdWUgcGFpcnMiCisgICAgICAgICAgICAgICAgICAgICAoY29ucyoga2V5MSB2YWwx
IGFyZ3MpKSkKKyAgICAgICAgICAgICAoZWxzZSAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSAo
Y2FyIGt2cykgKGNhZHIga3ZzKSkKKyAgICAgICAgICAgICAgICAgICAobG9vcCAoY2RkciBrdnMp
KSkpKSkpKSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1kZWxldGUtc2luZ2xlISBodCBrZXkpCiAg
ICJEZWxldGVzIEtFWSBhbmQgYXNzb2NpYXRlZCB2YWx1ZSBpbiBoYXNoIHRhYmxlIEhULiBSZXR1
cm5zICN0IGlmIEtFWQpAQCAtNTA1LDcgKzQ1Nyw2IEBAIGhhZCBhbiBhc3NvY2lhdGlvbiBhbmQg
I2Ygb3RoZXJ3aXNlLiIKICAgICAoaWYgKGVxPyBodC11bnNwZWNpZmllZCAoaGFzaHgtcmVmIGgg
YSByZWFsLXRhYmxlIGtleSBodC11bnNwZWNpZmllZCkpCiAgICAgICAgICNmCiAgICAgICAgIChi
ZWdpbiAoaGFzaHgtcmVtb3ZlISBoIGEgcmVhbC10YWJsZSBrZXkpCi0gICAgICAgICAgICAgICAo
aHQtc2l6ZSEgaHQgKC0gKGh0LXNpemUgaHQpIDEpKQogICAgICAgICAgICAgICAgI3QpKSkpCiAK
IChkZWZpbmUqIChoYXNoLXRhYmxlLWRlbGV0ZSEgaHQgIzpvcHRpb25hbCAoa2V5MSBodC11bnNw
ZWNpZmllZCkgIzpyZXN0IGtleXMpCkBAIC01MTksNyArNDcwLDYgQEAgbnVtYmVyIG9mIGtleXMg
dGhhdCBoYWQgYXNzb2NpYXRpb25zLiIKICAgICAgICAgKGFzc2VydC1tdXRhYmxlIGh0KQogICAg
ICAgICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAogICAgICAgICAgIChs
ZXQqICgoY291bnQgMCkKLSAgICAgICAgICAgICAgICAgKHNpemUgKGh0LXNpemUgaHQpKQogICAg
ICAgICAgICAgICAgICAoZGVsZXRlLW9uZSEgKGxhbWJkYSAoa2V5KQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAod2hlbiAobm90IChlcT8gaHQtdW5zcGVjaWZpZWQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1yZWYgaCBhIHJl
YWwtdGFibGUga2V5CkBAIC01MjgsOCArNDc4LDYgQEAgbnVtYmVyIG9mIGtleXMgdGhhdCBoYWQg
YXNzb2NpYXRpb25zLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgt
cmVtb3ZlISBoIGEgcmVhbC10YWJsZSBrZXkpKSkpKQogICAgICAgICAgICAgKGRlbGV0ZS1vbmUh
IGtleTEpCiAgICAgICAgICAgICAoZm9yLWVhY2ggZGVsZXRlLW9uZSEga2V5cykKLSAgICAgICAg
ICAgICh1bmxlc3MgKG9yIChodC13ZWFrbmVzcyBodCkgKHplcm8/IGNvdW50KSkKLSAgICAgICAg
ICAgICAgKGh0LXNpemUhIGh0ICgtIHNpemUgY291bnQpKSkKICAgICAgICAgICAgIGNvdW50KSkp
KSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1pbnRlcm4hIGh0IGtleSBmYWlsdXJlKQpAQCAtNTQ2
LDExICs0OTQsOSBAQCBpcyBzZXQgdG8gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIEZBSUxVUkUgYW5k
IHRoZSBuZXcgdmFsdWUgaXMgcmV0dXJuZWQuIgogICAgICAgICAgICAgICAgICAgIChoYXNoeC1z
ZXQhIGggYSByZWFsLXRhYmxlIGtleSB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICB2YWx1ZSkp
CiAgICAgICAgICAgICAgICAgKGVsc2UgdmFsdWUpKSkKLSAgICAgICAgKGxldCAoKGhhbmRsZQot
ICAgICAgICAgICAgICAgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGggYSByZWFsLXRhYmxlIGtleSBo
dC11bnNwZWNpZmllZCkpKQorICAgICAgICAobGV0ICgoaGFuZGxlIChoYXNoeC1jcmVhdGUtaGFu
ZGxlISBoIGEgcmVhbC10YWJsZSBrZXkgaHQtdW5zcGVjaWZpZWQpKSkKICAgICAgICAgICAoaWYg
KGVxPyBodC11bnNwZWNpZmllZCAoY2RyIGhhbmRsZSkpCi0gICAgICAgICAgICAgIChiZWdpbiAo
aHQtc2l6ZSEgaHQgKCsgMSAoaHQtc2l6ZSBodCkpKQotICAgICAgICAgICAgICAgICAgICAgKHNl
dC1jZHIhIGhhbmRsZSAoZmFpbHVyZSkpKSkKKyAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRs
ZSAoZmFpbHVyZSkpKQogICAgICAgICAgIChjZHIgaGFuZGxlKSkpKSkKIAogKGRlZmluZSAoaGFz
aC10YWJsZS1pbnRlcm4hL2RlZmF1bHQgaHQga2V5IGRlZmF1bHQpCkBAIC01NjYsMTEgKzUxMiw3
IEBAIGlzIHNldCB0byBERUZBVUxUIGFuZCBERUZBVUxUIGlzIHJldHVybmVkLiIKICAgICAgICAg
ICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFibGUga2V5IGRlZmF1bHQpCiAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQpCiAgICAgICAgICAgICAgICAgKGVsc2UgdmFsdWUpKSkKLSAgICAg
ICAgKGxldCAoKGhhbmRsZQotICAgICAgICAgICAgICAgKGhhc2h4LWNyZWF0ZS1oYW5kbGUhIGgg
YSByZWFsLXRhYmxlIGtleSBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAgIChpZiAoZXE/IGh0
LXVuc3BlY2lmaWVkIChjZHIgaGFuZGxlKSkKLSAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXpl
ISBodCAoKyAxIChodC1zaXplIGh0KSkpCi0gICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEg
aGFuZGxlIGRlZmF1bHQpKSkKKyAgICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRlLWhh
bmRsZSEgaCBhIHJlYWwtdGFibGUga2V5IGRlZmF1bHQpKSkKICAgICAgICAgICAoY2RyIGhhbmRs
ZSkpKSkpCiAKIChkZWZpbmUqIChoYXNoLXRhYmxlLXVwZGF0ZSEgaHQga2V5IHVwZGF0ZXIgIzpv
cHRpb25hbApAQCAtNjAxLDcgKzU0Myw2IEBAIHByb3ZpZGVkLCBvciBzaWduYWxzIGFuIGVycm9y
IG90aGVyd2lzZS4iCiAgICAgICAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSBuZXcpKSkK
ICAgICAgICAgICAgICAgICAoZWxzZQogICAgICAgICAgICAgICAgICAobGV0ICgobmV3ICh1cGRh
dGVyIChmYWlsdXJlKSkpKQotICAgICAgICAgICAgICAgICAgIChodC1zaXplISBodCAoKyAxICho
dC1zaXplIGh0KSkpCiAgICAgICAgICAgICAgICAgICAgKGhhc2h4LXNldCEgaCBhIHJlYWwtdGFi
bGUga2V5IG5ldykpKSkpKSkKICAgKnVuc3BlY2lmaWVkKikKIApAQCAtNjE5LDEyICs1NjAsOCBA
QCBVUERBVEVSLCBhbmQgc2V0dGluZyBpdCB0byB0aGUgcmVzdWx0IHRoZXJlb2YuIgogICAgICAg
ICA7OyBKLk0uIHNlcGFyYXRlIHRoZSBjYXNlIHdoZXJlIGh0IGlzIHdlYWsgLSBkb24ndCB1c2Ug
aGFuZGxlCiAgICAgICAgIChsZXQqICgob2xkIChoYXNoeC1yZWYgaCBhIHJlYWwtdGFibGUga2V5
IGRlZmF1bHQpKSkKICAgICAgICAgICAoaGFzaHgtc2V0ISBoIGEgcmVhbC10YWJsZSBrZXkgKHVw
ZGF0ZXIgb2xkKSkpCi0gICAgICAgIChsZXQgKChoYW5kbGUgKGhhc2h4LWNyZWF0ZS1oYW5kbGUh
IGggYSByZWFsLXRhYmxlIGtleQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBodC11bnNwZWNpZmllZCkpKQotICAgICAgICAgIChpZiAoZXE/IGh0LXVuc3BlY2lm
aWVkIChjZHIgaGFuZGxlKSkKLSAgICAgICAgICAgICAgKGJlZ2luIChodC1zaXplISBodCAoKyAx
IChodC1zaXplIGh0KSkpCi0gICAgICAgICAgICAgICAgICAgICAoc2V0LWNkciEgaGFuZGxlICh1
cGRhdGVyIGRlZmF1bHQpKSkKLSAgICAgICAgICAgICAgKHNldC1jZHIhIGhhbmRsZSAodXBkYXRl
ciAoY2RyIGhhbmRsZSkpKSkpKSkKKyAgICAgICAgKGxldCAoKGhhbmRsZSAoaGFzaHgtY3JlYXRl
LWhhbmRsZSEgaCBhIHJlYWwtdGFibGUga2V5IGRlZmF1bHQpKSkKKyAgICAgICAgICAoc2V0LWNk
ciEgaGFuZGxlICh1cGRhdGVyIChjZHIgaGFuZGxlKSkpKSkpCiAgICp1bnNwZWNpZmllZCopCiAK
IChkZWZpbmUgKGhhc2gtdGFibGUtcG9wISBodCkKQEAgLTYzNyw4ICs1NzQsNiBAQCBhbmQgdmFs
dWUgYXMgdHdvIHZhbHVlcy4iCiAgICAgICh3aXRoLWhhc2h4LXZhbHVlcyAoaCBhIHJlYWwtdGFi
bGUpIGh0CiAgICAgICAgKGhhc2gtZm9yLWVhY2ggKGxhbWJkYSAoa2V5IHZhbHVlKQogICAgICAg
ICAgICAgICAgICAgICAgICAgKGhhc2h4LXJlbW92ZSEgaCBhIHJlYWwtdGFibGUga2V5KQotICAg
ICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoaHQtd2Vha25lc3MgaHQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIChodC1zaXplISBodCAoLSAoaHQtc2l6ZSBodCkgMSkpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgKHJldHVybiBrZXkgdmFsdWUpKQogICAgICAgICAgICAgICAgICAg
ICAgIHJlYWwtdGFibGUpKQogICAgICAoZXJyb3IgIkhhc2ggdGFibGUgaXMgZW1wdHkiIGh0KSkp
KQpAQCAtNjQ5LDcgKzU4NCw2IEBAIGFuZCB2YWx1ZSBhcyB0d28gdmFsdWVzLiIKICAgKGlmIGNh
cGFjaXR5CiAgICAgICAoaHQtcmVhbC10YWJsZSEgaHQgKChndWlsZS1odC1jdG9yIChodC13ZWFr
bmVzcyBodCkpIGNhcGFjaXR5KSkKICAgICAgIChoYXNoLWNsZWFyISAoaHQtcmVhbC10YWJsZSBo
dCkpKQotICAoaHQtc2l6ZSEgaHQgMCkKICAgKnVuc3BlY2lmaWVkKikKIAogDApAQCAtNjU4LDEw
ICs1OTIsNyBAQCBhbmQgdmFsdWUgYXMgdHdvIHZhbHVlcy4iCiAoZGVmaW5lIChoYXNoLXRhYmxl
LXNpemUgaHQpCiAgICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgYXNzb2NpYXRpb25zIGluIEhULiBU
aGlzIGlzIGd1YXJhbnRlZWQgTygxKSBmb3IKIHRhYmxlcyB3aGVyZSAjOldFQUtORVNTIGlzICNm
LiIKLSAgKGlmIChodC13ZWFrbmVzcyBodCkKLSAgICAgIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5
IHZhbCBhbnMpICgrIDEgYW5zKSkKLSAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJsZSBo
dCkpCi0gICAgICAoaHQtc2l6ZSBodCkpKQorICAoaGFzaC1uLWl0ZW1zIChodC1yZWFsLXRhYmxl
IGh0KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUta2V5cyBodCkKICAgIlJldHVybnMgYSBsaXN0
IG9mIHRoZSBrZXlzIGluIEhULiIKQEAgLTY4Myw0OCArNjE0LDYwIEBAIHZhbHVlcyBpbiB0aGUg
Y29ycmVzcG9uZGluZyBvcmRlci4iCiAgICAgICAgICAgICAgICAgICAgKGh0LXJlYWwtdGFibGUg
aHQpKQogICAgICh2YWx1ZXMga2V5cyB2YWxzKSkpCiAKLTs7OyBJbiBhIG5vbi13ZWFrIGhhc2gg
dGFibGUsIHdlIGtub3cgdGhlIHNpemUgdGhhdCB0aGUga2V5L3ZhbHVlIHZlY3RvcgotOzs7IHdp
bGwgaGF2ZS4gSW4gYSB3ZWFrIGhhc2ggdGFibGUsIHdlIGhhdmUgdG8gaXRlcmF0ZSB0aHJvdwot
Ozs7IGFzc29jaWF0aW9ucyBvZiB0aGUgaGFzaCB0YWJsZSB0byBjb21wdXRlIGl0cyBzaXplLCBz
byBpdCBpcyBlYXNpZXIKLTs7OyB0byBzaW1wbHkgY2FsbCBIQVNILVRBQkxFLUtFWVMvSEFTSC1U
QUJMRS1WQUxVRVMuCiAoZGVmaW5lIChoYXNoLXRhYmxlLWtleS12ZWN0b3IgaHQpCiAgICJSZXR1
cm5zIGEgdmVjdG9yIG9mIHRoZSBrZXlzIGluIEhULiIKLSAgKGlmIChodC13ZWFrbmVzcyBodCkK
LSAgICAgIChsaXN0LT52ZWN0b3IgKGhhc2gtdGFibGUta2V5cyBodCkpCi0gICAgICAobGV0KiAo
KGxlbiAoaHQtc2l6ZSBodCkpCi0gICAgICAgICAgICAgKGtleXMgKG1ha2UtdmVjdG9yIGxlbikp
KQotICAgICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGtleSB2YWwgaSkKLSAgICAgICAgICAgICAg
ICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQotICAgICAgICAgICAgICAgICAgICAgKCsg
aSAxKSkKLSAgICAgICAgICAgICAgICAgICAwIChodC1yZWFsLXRhYmxlIGh0KSkKKyAgKGxldCog
KChsZW4gKGhhc2gtdGFibGUtc2l6ZSBodCkpCisgICAgICAgICAoa2V5cyAobWFrZS12ZWN0b3Ig
bGVuKSkKKyAgICAgICAgIDs7IEluIGEgd2VhayBoYXNoIHRhYmxlLCBzb21lIHZhbHVlcyBtaWdo
dCBnZXQgZ2FyZ2FiZQorICAgICAgICAgOzsgY29sbGVjdGVkIHdoaWxlIHRoZSBwcm9jZWR1cmUg
aXMgcnVubmluZywgc28gd2UgZG91YmxlLWNoZWNrCisgICAgICAgICA7OyBpZiB3ZSBjb2xsZWN0
ZWQgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBrZXlzLgorICAgICAgICAgKG5ldy1sZW4gKGhhc2gt
Zm9sZCAobGFtYmRhIChrZXkgdmFsIGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHZlY3Rvci1zZXQhIGtleXMgaSBrZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCsgaSAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAoaHQtcmVhbC10YWJsZSBo
dCkpKSkKKyAgICAoaWYgKDwgbmV3LWxlbiBsZW4pCisgICAgICAgIChsZXQgKChuZXcta2V5cyAo
bWFrZS12ZWN0b3IgbmV3LWxlbikpKQorICAgICAgICAgICh2ZWN0b3ItbW92ZS1sZWZ0ISBrZXlz
IDAgbmV3LWxlbiBuZXcta2V5cyAwKQorICAgICAgICAgIG5ldy1rZXlzKQogICAgICAgICBrZXlz
KSkpCiAKIChkZWZpbmUgKGhhc2gtdGFibGUtdmFsdWUtdmVjdG9yIGh0KQogICAiUmV0dXJucyBh
IHZlY3RvciBvZiB0aGUgdmFsdWVzIGluIEhULiIKLSAgKGlmIChodC13ZWFrbmVzcyBodCkKLSAg
ICAgIChsaXN0LT52ZWN0b3IgKGhhc2gtdGFibGUtdmFsdWVzIGh0KSkKLSAgICAgIChsZXQqICgo
bGVuIChodC1zaXplIGh0KSkKLSAgICAgICAgICAgICAodmFscyAobWFrZS12ZWN0b3IgbGVuKSkp
Ci0gICAgICAgIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5IHZhbCBpKQotICAgICAgICAgICAgICAg
ICAgICAgKHZlY3Rvci1zZXQhIHZhbHMgaSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAoKyBp
IDEpKQotICAgICAgICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUgaHQpKQorICAobGV0KiAo
KGxlbiAoaGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgICh2YWxzIChtYWtlLXZlY3RvciBs
ZW4pKQorICAgICAgICAgOzsgSW4gYSB3ZWFrIGhhc2ggdGFibGUsIHNvbWUgdmFsdWVzIG1pZ2h0
IGdldCBnYXJnYWJlCisgICAgICAgICA7OyBjb2xsZWN0ZWQgd2hpbGUgdGhlIHByb2NlZHVyZSBp
cyBydW5uaW5nLCBzbyB3ZSBkb3VibGUtY2hlY2sKKyAgICAgICAgIDs7IGlmIHdlIGNvbGxlY3Rl
ZCB0aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGtleXMuCisgICAgICAgICAobmV3LWxlbiAoaGFzaC1m
b2xkIChsYW1iZGEgKGtleSB2YWwgaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dmVjdG9yLXNldCEgdmFscyBpIHZhbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
KyBpIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIChodC1yZWFsLXRhYmxlIGh0
KSkpKQorICAgIChpZiAoPCBuZXctbGVuIGxlbikKKyAgICAgICAgKGxldCAoKG5ldy12YWxzICht
YWtlLXZlY3RvciBuZXctbGVuKSkpCisgICAgICAgICAgKHZlY3Rvci1tb3ZlLWxlZnQhIHZhbHMg
MCBuZXctbGVuIG5ldy12YWxzIDApCisgICAgICAgICAgbmV3LXZhbHMpCiAgICAgICAgIHZhbHMp
KSkKIAogKGRlZmluZSAoaGFzaC10YWJsZS1lbnRyeS12ZWN0b3JzIGh0KQogICAiUmV0dXJucyB0
d28gdmFsdWVzOiBhIHZlY3RvciBvZiB0aGUga2V5cyBhbmQgYSB2ZWN0b3Igb2YgdGhlCiBhc3Nv
Y2lhdGVkIHZhbHVlcyBpbiB0aGUgY29ycmVzcG9uZGluZyBvcmRlci4iCi0gIChpZiAoaHQtd2Vh
a25lc3MgaHQpCi0gICAgICAocmVjZWl2ZSAoa2V5cyB2YWxzKSAoaGFzaC10YWJsZS1lbnRyaWVz
IGh0KQotICAgICAgICAodmFsdWVzIChsaXN0LT52ZWN0b3Iga2V5cykgKGxpc3QtPnZlY3RvciB2
YWxzKSkpCi0gICAgICAobGV0KiAoKGxlbiAoaHQtc2l6ZSBodCkpCi0gICAgICAgICAgICAgKGtl
eXMgKG1ha2UtdmVjdG9yIGxlbikpCi0gICAgICAgICAgICAgKHZhbHMgKG1ha2UtdmVjdG9yIGxl
bikpKQotICAgICAgICAoaGFzaC1mb2xkIChsYW1iZGEgKGtleSB2YWwgaSkKLSAgICAgICAgICAg
ICAgICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQotICAgICAgICAgICAgICAgICAgICAg
KHZlY3Rvci1zZXQhIHZhbHMgaSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAoKyBpIDEpKQot
ICAgICAgICAgICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUgaHQpKQorICAobGV0KiAoKGxlbiAo
aGFzaC10YWJsZS1zaXplIGh0KSkKKyAgICAgICAgIChrZXlzIChtYWtlLXZlY3RvciBsZW4pKQor
ICAgICAgICAgKHZhbHMgKG1ha2UtdmVjdG9yIGxlbikpCisgICAgICAgICA7OyBJbiBhIHdlYWsg
aGFzaCB0YWJsZSwgc29tZSB2YWx1ZXMgbWlnaHQgZ2V0IGdhcmdhYmUKKyAgICAgICAgIDs7IGNv
bGxlY3RlZCB3aGlsZSB0aGUgcHJvY2VkdXJlIGlzIHJ1bm5pbmcsIHNvIHdlIGRvdWJsZS1jaGVj
aworICAgICAgICAgOzsgaWYgd2UgY29sbGVjdGVkIHRoZSBleHBlY3RlZCBudW1iZXIgb2Yga2V5
cy4KKyAgICAgICAgIChuZXctbGVuIChoYXNoLWZvbGQgKGxhbWJkYSAoa2V5IHZhbCBpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Itc2V0ISBrZXlzIGkga2V5KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Itc2V0ISB2YWxzIGkgdmFsKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgrIGkgMSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAgKGh0LXJlYWwtdGFibGUgaHQpKSkpCisgICAgKGlmICg8IG5ldy1sZW4gbGVu
KQorICAgICAgICAobGV0ICgobmV3LWtleXMgKG1ha2UtdmVjdG9yIG5ldy1sZW4pKQorICAgICAg
ICAgICAgICAobmV3LXZhbHMgKG1ha2UtdmVjdG9yIG5ldy1sZW4pKSkKKyAgICAgICAgICAodmVj
dG9yLW1vdmUtbGVmdCEga2V5cyAwIG5ldy1sZW4gbmV3LWtleXMgMCkKKyAgICAgICAgICAodmVj
dG9yLW1vdmUtbGVmdCEgdmFscyAwIG5ldy1sZW4gbmV3LXZhbHMgMCkKKyAgICAgICAgICAodmFs
dWVzIG5ldy1rZXlzIG5ldy12YWxzKSkKICAgICAgICAgKHZhbHVlcyBrZXlzIHZhbHMpKSkpCiAK
IChkZWZpbmUgKGhhc2gtdGFibGUtZmluZCBwcm9jIGh0IGZhaWx1cmUpCkBAIC03NTksMTUgKzcw
MiwxMiBAQCBhc3NvY2lhdGlvbiBpbiBoYXNoLXRhYmxlIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBh
c3NvY2lhdGlvbi4gVGhlIGtleSBvZgogdGhlIGFzc29jaWF0aW9uIGFuZCB0aGUgcmVzdWx0IG9m
IGludm9raW5nIFBST0MgYXJlIGVudGVyZWQgaW50byB0aGUgbmV3CiBoYXNoIHRhYmxlLCB3aGlj
aCBpcyB0aGVuIHJldHVybmVkLiIKICAgKGxldCAoKHJlc3VsdCAoJW1ha2UtaGFzaC10YWJsZSBl
cXVpdi1mdW5jdGlvbiBoYXNoLWZ1bmN0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbXV0YWJsZSBjYXBhY2l0eSB3ZWFrbmVzcykpCi0gICAgICAgIChzaXplIDApKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGFibGUgY2FwYWNpdHkgd2Vha25lc3Mp
KSkKICAgICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSByZXN1bHQKICAgICAg
IChoYXNoLWZvci1lYWNoCiAgICAgICAgKGxhbWJkYSAoa2V5IHZhbCkKLSAgICAgICAgIChoYXNo
eC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSAocHJvYyB2YWwpKQotICAgICAgICAgKHNldCEgc2l6
ZSAoKyAxIHNpemUpKSkKKyAgICAgICAgIChoYXNoeC1zZXQhIGggYSByZWFsLXRhYmxlIGtleSAo
cHJvYyB2YWwpKSkKICAgICAgICAoaHQtcmVhbC10YWJsZSBodCkpKQotICAgIChodC1zaXplISBy
ZXN1bHQgc2l6ZSkKICAgICByZXN1bHQpKQogCiAoZGVmaW5lIChoYXNoLXRhYmxlLW1hcC0+bGlz
dCBwcm9jIGh0KQpAQCAtODIyLDggKzc2Miw2IEBAIFBST0MgcmV0dXJucyB0cnVlLiBSZXR1cm5z
IGFuIHVuc3BlY2lmaWVkIHZhbHVlLiIKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10
YWJsZSkgaHQKICAgICAoaGFzaC1mb3ItZWFjaCAobGFtYmRhIChrZXkgdmFsKQogICAgICAgICAg
ICAgICAgICAgICAgKHdoZW4gKHByb2Mga2V5IHZhbCkKLSAgICAgICAgICAgICAgICAgICAgICAg
KHVubGVzcyAoaHQtd2Vha25lc3MgaHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGh0LXNp
emUhIGh0ICgtIChodC1zaXplIGh0KSAxKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIChoYXNo
eC1yZW1vdmUhIGggYSByZWFsLXRhYmxlIGtleSkpKQogICAgICAgICAgICAgICAgICAgIHJlYWwt
dGFibGUpKSkKIApAQCAtODM4LDE1ICs3NzYsMTMgQEAgcHJvcGVydGllcyBhcyBnaXZlbiBieSBr
ZXl3b3JkIGFyZ3VtZW50cywgd2hpY2ggZGVmYXVsdCB0byBIVAogcHJvcGVydGllcy4gSWYgTVVU
QUJMRSBpcyB0cnVlLCB0aGUgbmV3IGhhc2ggdGFibGUgaXMgbXV0YWJsZSwKIG90aGVyd2lzZSwg
aXQgaXMgaW1tdXRhYmxlLiIKICAgKHdpdGgtaGFzaHgtdmFsdWVzIChoIGEgcmVhbC10YWJsZSkg
aHQKLSAgICAobGV0ICgobmV3LXJlYWwtdGFibGUgKChndWlsZS1odC1jdG9yIHdlYWtuZXNzKSBj
YXBhY2l0eSkpCi0gICAgICAgICAgKHNpemUgMCkpCisgICAgKGxldCAoKG5ldy1yZWFsLXRhYmxl
ICgoZ3VpbGUtaHQtY3RvciB3ZWFrbmVzcykgY2FwYWNpdHkpKSkKICAgICAgIChoYXNoLWZvci1l
YWNoIChsYW1iZGEgKGtleSB2YWwpCi0gICAgICAgICAgICAgICAgICAgICAgIChoYXNoeC1zZXQh
IGggYSBuZXctcmVhbC10YWJsZSBrZXkgdmFsKQotICAgICAgICAgICAgICAgICAgICAgICAoc2V0
ISBzaXplICgrIDEgc2l6ZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAoaGFzaHgtc2V0ISBo
IGEgbmV3LXJlYWwtdGFibGUga2V5IHZhbCkpCiAgICAgICAgICAgICAgICAgICAgICByZWFsLXRh
YmxlKQogICAgICAgOzsgQXJndW1lbnRzOiByZWFsLXRhYmxlIGhhc2gtZnVuY3Rpb24gYXNzb2Np
YXRvcgotICAgICAgOzsgICAgICAgICAgICB3ZWFrbmVzcyBtdXRhYmxlPyBzaXplIGVxdWl2YWxl
bmNlLWZ1bmN0aW9uIG9yaWctaGFzaC1mdW5jdGlvbgotICAgICAgKG1ha2UtZ2VuZXJpYy1oYXNo
LXRhYmxlIG5ldy1yZWFsLXRhYmxlIGggYSB3ZWFrbmVzcyAoYW5kIG11dGFibGUgI3QpIHNpemUK
KyAgICAgIDs7ICAgICAgICAgICAgd2Vha25lc3MgbXV0YWJsZT8gZXF1aXZhbGVuY2UtZnVuY3Rp
b24gb3JpZy1oYXNoLWZ1bmN0aW9uCisgICAgICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUgbmV3
LXJlYWwtdGFibGUgaCBhIHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1lcXVpdmFsZW5jZS1mdW5jdGlvbiBodCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS1oYXNoLWZ1bmN0aW9uIGh0
KSkpKSkKIApAQCAtODU4LDggKzc5NCw4IEBAIGFzIEhULCBidXQgd2l0aCBubyBhc3NvY2lhdGlv
bnMuIgogICAod2l0aC1oYXNoeC12YWx1ZXMgKGggYSByZWFsLXRhYmxlKSBodAogICAgIChsZXQg
KChuZXctcmVhbC10YWJsZSAoKGd1aWxlLWh0LWN0b3Igd2Vha25lc3MpIGNhcGFjaXR5KSkpCiAg
ICAgICA7OyBBcmd1bWVudHM6IHJlYWwtdGFibGUgaGFzaC1mdW5jdGlvbiBhc3NvY2lhdG9yCi0g
ICAgICA7OyAgICAgICAgICAgIHdlYWtuZXNzIG11dGFibGU/IHNpemUgZXF1aXZhbGVuY2UtZnVu
Y3Rpb24gb3JpZy1oYXNoLWZ1bmN0aW9uCi0gICAgICAobWFrZS1nZW5lcmljLWhhc2gtdGFibGUg
bmV3LXJlYWwtdGFibGUgaCBhIHdlYWtuZXNzIChhbmQgbXV0YWJsZSAjdCkgMAorICAgICAgOzsg
ICAgICAgICAgICB3ZWFrbmVzcyBtdXRhYmxlPyBlcXVpdmFsZW5jZS1mdW5jdGlvbiBvcmlnLWhh
c2gtZnVuY3Rpb24KKyAgICAgIChtYWtlLWdlbmVyaWMtaGFzaC10YWJsZSBuZXctcmVhbC10YWJs
ZSBoIGEgd2Vha25lc3MgKGFuZCBtdXRhYmxlICN0KQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChoYXNoLXRhYmxlLWVxdWl2YWxlbmNlLWZ1bmN0aW9uIGh0KQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChoYXNoLXRhYmxlLWhhc2gtZnVuY3Rpb24gaHQpKSkpKQogCi0t
IAoyLjE5LjEKCg==
--00000000000027132d057f5ecbea
Content-Type: text/x-patch; charset="US-ASCII"; name="0007-Implemented-SRFI-128.patch"
Content-Disposition: attachment; filename="0007-Implemented-SRFI-128.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_jqvhvnos1>
X-Attachment-Id: f_jqvhvnos1

RnJvbSAwNTBiNzA1MGUzOGRlYzNiODMwMTM1NjA1MzU4MjUwNWY2Njc3YWZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1BOXNzaWNhPTIwTWlsYXI9QzM9QTk/
PSA8amVzc3ltaWxhcmVAZ21haWwuY29tPgpEYXRlOiBGcmksIDExIEphbiAyMDE5IDE5OjQxOjIw
IC0wMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8xMF0gSW1wbGVtZW50ZWQgU1JGSS0xMjgKCi0tLQog
bW9kdWxlL01ha2VmaWxlLmFtICAgICAgICAgICAgIHwgICAyICsKIG1vZHVsZS9zcmZpL3NyZmkt
MTI4LnNjbSAgICAgICB8IDU3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIG1v
ZHVsZS9zcmZpL3NyZmktMTI4L2dudS5zY20gICB8ICAzOCArKysKIHRlc3Qtc3VpdGUvTWFrZWZp
bGUuYW0gICAgICAgICB8ICAgMSArCiB0ZXN0LXN1aXRlL3Rlc3RzL3NyZmktMTI4LnRlc3QgfCAz
NDggKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgOTY2IGluc2VydGlvbnMo
KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBtb2R1bGUvc3JmaS9zcmZpLTEyOC5zY20KIGNyZWF0ZSBt
b2RlIDEwMDY0NCBtb2R1bGUvc3JmaS9zcmZpLTEyOC9nbnUuc2NtCiBjcmVhdGUgbW9kZSAxMDA2
NDQgdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTEyOC50ZXN0CgpkaWZmIC0tZ2l0IGEvbW9kdWxlL01h
a2VmaWxlLmFtIGIvbW9kdWxlL01ha2VmaWxlLmFtCmluZGV4IDZlNzM5ZmVkMC4uNWZjMzAxMGMx
IDEwMDY0NAotLS0gYS9tb2R1bGUvTWFrZWZpbGUuYW0KKysrIGIvbW9kdWxlL01ha2VmaWxlLmFt
CkBAIC0yOTUsNiArMjk1LDggQEAgU09VUkNFUyA9CQkJCQlcCiAgIHNyZmkvc3JmaS05OC5zY20J
CQkJXAogICBzcmZpL3NyZmktMTExLnNjbQkJCQlcCiAgIHNyZmkvc3JmaS0xMjYuc2NtCQkJCVwK
KyAgc3JmaS9zcmZpLTEyOC9nbnUuc2NtCQkJCVwKKyAgc3JmaS9zcmZpLTEyOC5zY20JCQkJXAog
CQkJCQkJXAogICBzdGF0cHJvZi5zY20JCQkJCVwKIAkJCQkJCVwKZGlmZiAtLWdpdCBhL21vZHVs
ZS9zcmZpL3NyZmktMTI4LnNjbSBiL21vZHVsZS9zcmZpL3NyZmktMTI4LnNjbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJkYWNmYjNjMAotLS0gL2Rldi9udWxsCisrKyBi
L21vZHVsZS9zcmZpL3NyZmktMTI4LnNjbQpAQCAtMCwwICsxLDU3NyBAQAorOzs7IHNyZmktMTI4
LnNjbSAtLS0gQ29tcGFyYXRvcnMKKworOzsgICAgQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorOzsKKzs7IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKzs7IG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7IExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorOzsgdmVy
c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorOzsKKzs7IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7OyBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzsKKzs7IFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKzs7IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKworOzsgVGhpcyBmaWxlIGNvbnRh
aW5zIGNvZGUgZnJvbSBTUkZJIDEyOCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24sIGJ5Cis7OyBK
b2huIENvd2FuCisKKzs7OyBDb3B5cmlnaHQgKEMpIEpvaG4gQ293YW4gKDIwMTUpLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorOzs7Cis7OzsgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl
ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKzs7OyBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMg
c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorOzs7IGZpbGVzICh0aGUgIlNv
ZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKzs7OyByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwKKzs7OyBj
b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3IKKzs7OyBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZQorOzs7IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0byB0aGUgZm9sbG93aW5nCis7OzsgY29uZGl0aW9uczoKKzs7OworOzs7IFRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCis7Ozsg
aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m
dHdhcmUuCis7OzsKKzs7OyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V
VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKzs7OyBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKKzs7OyBPRiBNRVJDSEFOVEFCSUxJ
VFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorOzs7IE5PTklORlJJTkdF
TUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUCis7OzsgSE9M
REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
Cis7OzsgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF
LCBBUklTSU5HCis7OzsgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G
VFdBUkUgT1IgVEhFIFVTRSBPUgorOzs7IE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K
KwwKKworKGRlZmluZS1tb2R1bGUgKHNyZmkgc3JmaS0xMjgpCisgICM6dXNlLW1vZHVsZSAoc3Jm
aSBzcmZpLTkpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTQzKQorICA7OyBIQVNILUJPVU5E
LCBIQVNILVNBTFQgYW5kIFdJVEgtSEFTSC1TQUxUIGFyZSBkZWZpbmVkIGhlcmUgYmVjYXVzZQor
ICA7OyB0aGUgbGF0dGVyIGlzIG5vdCBzdGFuZGFyZAorICAjOnVzZS1tb2R1bGUgKChzcmZpIHNy
ZmktMTI4IGdudSkgIzpzZWxlY3QgKGhhc2gtYm91bmQgaGFzaC1zYWx0KSkKKyAgIzp1c2UtbW9k
dWxlICgocm5ycyB1bmljb2RlKSAjOnNlbGVjdCAoY2hhci1mb2xkY2FzZSkpCisgICM6dXNlLW1v
ZHVsZSAocm5ycyBieXRldmVjdG9ycykKKyAgIzp1c2UtbW9kdWxlICgoaWNlLTkgZ2VuZXJpYy1o
YXNoLXRhYmxlcykKKyAgICAgICAgICAgICAgICAjOnNlbGVjdCAoKGhhc2ggLiBlcXVhbC1oYXNo
KQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmctY2ktaGFzaCBoYXNoLWJ5LWlkZW50
aXR5IGhhc2gtYnktdmFsdWUpKQorICAjOmV4cG9ydCAoY29tcGFyYXRvcj8KKyAgICAgICAgICAg
IG1ha2UtY29tcGFyYXRvcgorICAgICAgICAgICAgY29tcGFyYXRvci10eXBlLXRlc3QtcHJlZGlj
YXRlIGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlCisgICAgICAgICAgICBjb21wYXJhdG9y
LW9yZGVyaW5nLXByZWRpY2F0ZSBjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24KKyAgICAgICAgICAg
IGNvbXBhcmF0b3Itb3JkZXJlZD8gY29tcGFyYXRvci1oYXNoYWJsZT8KKyAgICAgICAgICAgIGNv
bXBhcmF0b3ItdGVzdC10eXBlIGNvbXBhcmF0b3ItY2hlY2stdHlwZQorICAgICAgICAgICAgY29t
cGFyYXRvci1oYXNoCisgICAgICAgICAgICBtYWtlLXBhaXItY29tcGFyYXRvciBtYWtlLWxpc3Qt
Y29tcGFyYXRvciBtYWtlLXZlY3Rvci1jb21wYXJhdG9yCisgICAgICAgICAgICBtYWtlLWVxLWNv
bXBhcmF0b3IgbWFrZS1lcXYtY29tcGFyYXRvciBtYWtlLWVxdWFsLWNvbXBhcmF0b3IKKyAgICAg
ICAgICAgIGJvb2xlYW4taGFzaCBjaGFyLWhhc2ggY2hhci1jaS1oYXNoIG51bWJlci1oYXNoCisg
ICAgICAgICAgICBtYWtlLWRlZmF1bHQtY29tcGFyYXRvciBkZWZhdWx0LWhhc2gKKyAgICAgICAg
ICAgIGNvbXBhcmF0b3ItcmVnaXN0ZXItZGVmYXVsdCEKKyAgICAgICAgICAgID0/IDw/ID4/IDw9
PyA+PT8KKyAgICAgICAgICAgIGNvbXBhcmF0b3ItaWY8PT4pCisgICM6cmUtZXhwb3J0IChzdHJp
bmctaGFzaCBzdHJpbmctY2ktaGFzaCBzeW1ib2wtaGFzaCBoYXNoLWJvdW5kIGhhc2gtc2FsdCkp
CisKKyhjb25kLWV4cGFuZC1wcm92aWRlIChjdXJyZW50LW1vZHVsZSkgJyhzcmZpLTEyOCkpCisK
KwwKKzs7IEFyaXRobWV0aWMgaWYKKyhkZWZpbmUtc3ludGF4IGNvbXBhcmF0b3ItaWY8PT4KKyAg
KHN5bnRheC1ydWxlcyAoKQorICAgICgoaWY8PT4gYSBiIGxlc3MgZXF1YWwgZ3JlYXRlcikKKyAg
ICAgKGNvbXBhcmF0b3ItaWY8PT4gZGVmYXVsdC1jb21wYXJhdG9yIGEgYiBsZXNzIGVxdWFsIGdy
ZWF0ZXIpKQorICAgICgoY29tcGFyYXRvci1pZjw9PiBjb21wYXJhdG9yIGEgYiBsZXNzIGVxdWFs
IGdyZWF0ZXIpCisgICAgIChjb25kCisgICAgICAoKDw/IGNvbXBhcmF0b3IgYSBiKSBsZXNzKQor
ICAgICAgKCg9PyBjb21wYXJhdG9yIGEgYikgZXF1YWwpCisgICAgICAoZWxzZSBncmVhdGVyKSkp
KSkKKworDAorOzs7IERlZmluaXRpb24gb2YgY29tcGFyYXRvciByZWNvcmRzIHdpdGggYWNjZXNz
b3JzIGFuZCBiYXNpYyBjb21wYXJhdG9yCisKKyhkZWZpbmUtcmVjb3JkLXR5cGUgY29tcGFyYXRv
cgorICAobWFrZS1yYXctY29tcGFyYXRvciB0eXBlLXRlc3QgZXF1YWxpdHkgb3JkZXJpbmcgaGFz
aCBvcmRlcmluZz8gaGFzaD8pCisgIGNvbXBhcmF0b3I/CisgICh0eXBlLXRlc3QgY29tcGFyYXRv
ci10eXBlLXRlc3QtcHJlZGljYXRlKQorICAoZXF1YWxpdHkgY29tcGFyYXRvci1lcXVhbGl0eS1w
cmVkaWNhdGUpCisgIChvcmRlcmluZyBjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSkKKyAg
KGhhc2ggY29tcGFyYXRvci1oYXNoLWZ1bmN0aW9uKQorICAob3JkZXJpbmc/IGNvbXBhcmF0b3It
b3JkZXJlZD8pCisgIChoYXNoPyBjb21wYXJhdG9yLWhhc2hhYmxlPykpCisKKyhkZWZpbmUgKGFs
d2F5cy10cnVlIG9iaikgI3QpCisKKzs7IFB1YmxpYyBjb25zdHJ1Y3RvcgorKGRlZmluZSAobWFr
ZS1jb21wYXJhdG9yIHR5cGUtdGVzdCBlcXVhbGl0eSBvcmRlcmluZyBoYXNoKQorICAobWFrZS1y
YXctY29tcGFyYXRvcgorICAgKGlmIChlcT8gdHlwZS10ZXN0ICN0KSBhbHdheXMtdHJ1ZSB0eXBl
LXRlc3QpCisgICAoaWYgKGVxPyBlcXVhbGl0eSAjdCkgKGxhbWJkYSAoeCB5KSAoZXF2PyAob3Jk
ZXJpbmcgeCB5KSAwKSkgZXF1YWxpdHkpCisgICAoaWYgb3JkZXJpbmcgb3JkZXJpbmcgKGxhbWJk
YSAoeCB5KSAoZXJyb3IgIm9yZGVyaW5nIG5vdCBzdXBwb3J0ZWQiKSkpCisgICAoaWYgaGFzaCBo
YXNoIChsYW1iZGEgKHggeSkgKGVycm9yICJoYXNoaW5nIG5vdCBzdXBwb3J0ZWQiKSkpCisgICAo
aWYgb3JkZXJpbmcgI3QgI2YpCisgICAoaWYgaGFzaCAjdCAjZikpKQorCisMCis7OzsgSW52b2tl
cnMKKworOzsgSW52b2tlIHRoZSB0ZXN0IHR5cGUKKyhkZWZpbmUgKGNvbXBhcmF0b3ItdGVzdC10
eXBlIGNvbXBhcmF0b3Igb2JqKQorICAoKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0ZSBj
b21wYXJhdG9yKSBvYmopKQorCis7OyBJbnZva2UgdGhlIHRlc3QgdHlwZSBhbmQgdGhyb3cgYW4g
ZXJyb3IgaWYgaXQgZmFpbHMKKyhkZWZpbmUgKGNvbXBhcmF0b3ItY2hlY2stdHlwZSBjb21wYXJh
dG9yIG9iaikKKyAgKGlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBjb21wYXJhdG9yIG9iaikKKyAg
ICAgICN0CisgICAgICAoZXJyb3IgIkNvbXBhcmF0b3IgdHlwZSBjaGVjayBmYWlsZWQiIGNvbXBh
cmF0b3Igb2JqKSkpCisKKzs7IEludm9rZSB0aGUgaGFzaCBmdW5jdGlvbgorKGRlZmluZSAoY29t
cGFyYXRvci1oYXNoIGNvbXBhcmF0b3Igb2JqKQorICAoKGNvbXBhcmF0b3ItaGFzaC1mdW5jdGlv
biBjb21wYXJhdG9yKSBvYmopKQorCisMCis7OzsgQ29tcGFyaXNvbiBwcmVkaWNhdGVzCisKKzs7
IEJpbmFyeSB2ZXJzaW9ucyBmb3IgaW50ZXJuYWwgdXNlCisKKyhkZWZpbmUgKGJpbmFyeT0/IGNv
bXBhcmF0b3IgYSBiKQorICAoKGNvbXBhcmF0b3ItZXF1YWxpdHktcHJlZGljYXRlIGNvbXBhcmF0
b3IpIGEgYikpCisKKyhkZWZpbmUgKGJpbmFyeTw/IGNvbXBhcmF0b3IgYSBiKQorICAoKGNvbXBh
cmF0b3Itb3JkZXJpbmctcHJlZGljYXRlIGNvbXBhcmF0b3IpIGEgYikpCisKKyhkZWZpbmUgKGJp
bmFyeT4/IGNvbXBhcmF0b3IgYSBiKQorICAoYmluYXJ5PD8gY29tcGFyYXRvciBiIGEpKQorCiso
ZGVmaW5lIChiaW5hcnk8PT8gY29tcGFyYXRvciBhIGIpCisgIChub3QgKGJpbmFyeT4/IGNvbXBh
cmF0b3IgYSBiKSkpCisKKyhkZWZpbmUgKGJpbmFyeT49PyBjb21wYXJhdG9yIGEgYikKKyAgKG5v
dCAoYmluYXJ5PD8gY29tcGFyYXRvciBhIGIpKSkKKworOzsgR2VuZXJhbCB2ZXJzaW9ucyBmb3Ig
ZXhwb3J0CisKKyhkZWZpbmUgKD0/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBsb29w
ICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk9PyBjb21wYXJhdG9y
IGEgYikKKwkgKGlmIChudWxsPyBvYmpzKSAjdCAobG9vcCBiIChjYXIgb2JqcykgKGNkciBvYmpz
KSkpKSkpCisKKyhkZWZpbmUgKDw/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBsb29w
ICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk8PyBjb21wYXJhdG9y
IGEgYikKKwkgKGlmIChudWxsPyBvYmpzKSAjdCAobG9vcCBiIChjYXIgb2JqcykgKGNkciBvYmpz
KSkpKSkpCisKKyhkZWZpbmUgKD4/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBsb29w
ICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk+PyBjb21wYXJhdG9y
IGEgYikKKwkgKGlmIChudWxsPyBvYmpzKSAjdCAobG9vcCBiIChjYXIgb2JqcykgKGNkciBvYmpz
KSkpKSkpCisKKyhkZWZpbmUgKDw9PyBjb21wYXJhdG9yIGEgYiAuIG9ianMpCisgIChsZXQgbG9v
cCAoKGEgYSkgKGIgYikgKG9ianMgb2JqcykpCisgICAgKGFuZCAoYmluYXJ5PD0/IGNvbXBhcmF0
b3IgYSBiKQorCSAoaWYgKG51bGw/IG9ianMpICN0IChsb29wIGIgKGNhciBvYmpzKSAoY2RyIG9i
anMpKSkpKSkKKworKGRlZmluZSAoPj0/IGNvbXBhcmF0b3IgYSBiIC4gb2JqcykKKyAgKGxldCBs
b29wICgoYSBhKSAoYiBiKSAob2JqcyBvYmpzKSkKKyAgICAoYW5kIChiaW5hcnk+PT8gY29tcGFy
YXRvciBhIGIpCisJIChpZiAobnVsbD8gb2JqcykgI3QgKGxvb3AgYiAoY2FyIG9ianMpIChjZHIg
b2JqcykpKSkpKQorCisMCis7OzsgU2ltcGxlIG9yZGVyaW5nIGFuZCBoYXNoIGZ1bmN0aW9ucwor
CisoZGVmaW5lIGJvb2xlYW4taGFzaCBoYXNoLWJ5LWlkZW50aXR5KQorKGRlZmluZSBjaGFyLWhh
c2ggICAgaGFzaC1ieS1pZGVudGl0eSkKKyhkZWZpbmUgbnVtYmVyLWhhc2ggIGhhc2gtYnktdmFs
dWUpCisKKyhkZWZpbmUqIChjaGFyLWNpLWhhc2ggYyAjOm9wdGlvbmFsIChzaXplIG1vc3QtcG9z
aXRpdmUtZml4bnVtKSkKKyAgKGhhc2hxIChjaGFyLWZvbGRjYXNlIGMpIHNpemUpKQorCis7OyBM
ZXhpY29ncmFwaGljIG9yZGVyaW5nIG9mIGNvbXBsZXggbnVtYmVycworKGRlZmluZSAoY29tcGxl
eDw/IGEgYikKKyAgKG9yICg8IChyZWFsLXBhcnQgYSkgKHJlYWwtcGFydCBiKSkKKyAgICAgIChh
bmQgKD0gKHJlYWwtcGFydCBhKSAocmVhbC1wYXJ0IGIpKQorICAgICAgICAgICAoPCAoaW1hZy1w
YXJ0IGEpIChpbWFnLXBhcnQgYikpKSkpCisKKyhkZWZpbmUgKHN5bWJvbDw/IGEgYikKKyAgOzsg
VmFsaWQgYWNjb3JkaW5nIHRvIHNwZWMuCisgIDs7IEl0J3MgZmFzdGVyIHRvIGhhc2ggdGhhbiB0
byBjb21wYXJlIHN0cmluZ3MuCisgIChsZXQgKChoYSAoaGFzaHEgYSAoaGFzaC1ib3VuZCkpKQor
ICAgICAgICAoaGIgKGhhc2hxIGIgKGhhc2gtYm91bmQpKSkpCisgICAgKG9yICg8IGhhIGhiKQor
ICAgICAgICAoYW5kICg9IGhhIGhiKQorICAgICAgICAgICAgIChub3QgKGVxPyBhIGIpKQorICAg
ICAgICAgICAgIChzdHJpbmc8PyAoc3ltYm9sLT5zdHJpbmcgYSkgKHN5bWJvbC0+c3RyaW5nIGIp
KSkpKSkKKworOzsgU3RpY2sgdG8gZml4bnVtcworKGRlZmluZSBsb3dlci1tYXNrIChhc2ggKGhh
c2gtYm91bmQpIC01KSkgOyAoLyAoaGFzaC1ib3VuZCkgMzIpCisKKzs7IEhhc2ggaGVscGVyCiso
ZGVmaW5lIChtaXggaDEgaDIpCisgIChsb2d4b3IgKCogKGxvZ2FuZCBoMSBsb3dlci1tYXNrKSAz
MSkgaDIpKQorCisKKwwKKzs7OyBQYWlyIGNvbXBhcmF0b3IKKyhkZWZpbmUgKG1ha2UtcGFpci1j
b21wYXJhdG9yIGNhci1jb21wYXJhdG9yIGNkci1jb21wYXJhdG9yKQorICAobWFrZS1jb21wYXJh
dG9yCisgICAobWFrZS1wYWlyLXR5cGUtdGVzdCBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRv
cikKKyAgIChtYWtlLXBhaXI9PyBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgICht
YWtlLXBhaXI8PyBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgIChtYWtlLXBhaXIt
aGFzaCBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikpKQorCisoZGVmaW5lIChtYWtlLXBh
aXItdHlwZS10ZXN0IGNhci1jb21wYXJhdG9yIGNkci1jb21wYXJhdG9yKQorICAobGV0ICgoY2Fy
LXRlc3QgKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0ZSBjYXItY29tcGFyYXRvcikpCisg
ICAgICAgIChjZHItdGVzdCAoY29tcGFyYXRvci10eXBlLXRlc3QtcHJlZGljYXRlIGNkci1jb21w
YXJhdG9yKSkpCisgICAgKGlmIChlcT8gYWx3YXlzLXRydWUgY2FyLXRlc3QgY2RyLXRlc3QpCisg
ICAgICAgIHBhaXI/CisgICAgICAgIChsYW1iZGEgKG9iaikKKyAgICAgICAgICAoYW5kIChwYWly
PyBvYmopCisgICAgICAgICAgICAgICAoY2FyLXRlc3QgKGNhciBvYmopKQorICAgICAgICAgICAg
ICAgKGNkci10ZXN0IChjZHIgb2JqKSkpKSkpKQorCisoZGVmaW5lIChtYWtlLXBhaXI9PyBjYXIt
Y29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgKGxldCAoKGNhci1lcXVpdiAoY29tcGFyYXRv
ci1lcXVhbGl0eS1wcmVkaWNhdGUgY2FyLWNvbXBhcmF0b3IpKQorICAgICAgICAoY2RyLWVxdWl2
IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBjZHItY29tcGFyYXRvcikpKQorICAgIChp
ZiAoZXE/IGVxdWFsPyBjYXItZXF1aXYgY2RyLWVxdWl2KQorICAgICAgICBlcXVhbD8KKyAgICAg
ICAgKGxhbWJkYSAoYSBiKQorICAgICAgICAgIChhbmQgKGNhci1lcXVpdiAoY2FyIGEpIChjYXIg
YikpCisgICAgICAgICAgICAgICAoY2RyLWVxdWl2IChjZHIgYSkgKGNkciBiKSkpKSkpKQorCiso
ZGVmaW5lIChtYWtlLXBhaXI8PyBjYXItY29tcGFyYXRvciBjZHItY29tcGFyYXRvcikKKyAgKGxl
dCAoKGNhci1lcXVpdiAoY29tcGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgY2FyLWNvbXBhcmF0
b3IpKQorICAgICAgICAoY2FyPD8gKGNvbXBhcmF0b3Itb3JkZXJpbmctcHJlZGljYXRlIGNhci1j
b21wYXJhdG9yKSkKKyAgICAgICAgKGNkcjw/IChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0
ZSBjZHItY29tcGFyYXRvcikpKQorICAgIChsYW1iZGEgKGEgYikKKyAgICAgIChvciAoY2FyPD8g
KGNhciBhKSAoY2FyIGIpKQorICAgICAgICAgIChhbmQgKGNhci1lcXVpdiAoY2FyIGEpIChjYXIg
YikpCisgICAgICAgICAgICAgICAoY2RyPD8gKGNkciBhKSAoY2RyIGIpKSkpKSkpCisKKyhkZWZp
bmUgcGFpci1oYXNoLXNhbHQgKG1peCAoc3ltYm9sLWhhc2ggJ3BhaXIpIChoYXNoLXNhbHQpKSkK
KworKGRlZmluZSAobWFrZS1wYWlyLWhhc2ggY2FyLWNvbXBhcmF0b3IgY2RyLWNvbXBhcmF0b3Ip
CisgIChsZXQgKChjYXItaGFzaCAoY29tcGFyYXRvci1oYXNoLWZ1bmN0aW9uIGNhci1jb21wYXJh
dG9yKSkKKyAgICAgICAgKGNkci1oYXNoIChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY2RyLWNv
bXBhcmF0b3IpKSkKKyAgICAoaWYgKGVxPyBlcXVhbC1oYXNoIGNhci1oYXNoIGNkci1oYXNoKQor
ICAgICAgICBlcXVhbC1oYXNoCisgICAgICAgIChsYW1iZGEgKG9iaikKKyAgICAgICAgICAobWl4
IChtaXggcGFpci1oYXNoLXNhbHQgKGNhci1oYXNoIChjYXIgb2JqKSkpCisgICAgICAgICAgICAg
ICAoY2RyLWhhc2ggKGNkciBvYmopKSkpKSkpCisKKwwKKzs7OyBMaXN0IGNvbXBhcmF0b3IKKwor
KGRlZmluZSAobWFrZS1saXN0LWNvbXBhcmF0b3IgZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVz
dCBlbXB0eT8gaGVhZCB0YWlsKQorICAobWFrZS1jb21wYXJhdG9yCisgICAobWFrZS1saXN0LXR5
cGUtdGVzdCBlbGVtZW50LWNvbXBhcmF0b3IgdHlwZS10ZXN0IGVtcHR5PyBoZWFkIHRhaWwpCisg
ICAobWFrZS1saXN0PT8gZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBlbXB0eT8gaGVhZCB0
YWlsKQorICAgKG1ha2UtbGlzdDw/IGVsZW1lbnQtY29tcGFyYXRvciB0eXBlLXRlc3QgZW1wdHk/
IGhlYWQgdGFpbCkKKyAgIChtYWtlLWxpc3QtaGFzaCBlbGVtZW50LWNvbXBhcmF0b3IgdHlwZS10
ZXN0IGVtcHR5PyBoZWFkIHRhaWwpKSkKKworKGRlZmluZSAobWFrZS1saXN0LXR5cGUtdGVzdCBl
bGVtZW50LWNvbXBhcmF0b3IgdHlwZS10ZXN0IGVtcHR5PyBoZWFkIHRhaWwpCisgIChsZXQgKChl
bGVtLXR5cGUtdGVzdCAoY29tcGFyYXRvci10eXBlLXRlc3QtcHJlZGljYXRlIGVsZW1lbnQtY29t
cGFyYXRvcikpKQorICAgIChsYW1iZGEgKG9iaikKKyAgICAgIChhbmQKKyAgICAgICAodHlwZS10
ZXN0IG9iaikKKyAgICAgICAobGV0IGxvb3AgKChvYmogb2JqKSkKKyAgICAgICAgIChjb25kCisg
ICAgICAgICAgKChlbXB0eT8gb2JqKSAjdCkKKyAgICAgICAgICAoKG5vdCAoZWxlbS10eXBlLXRl
c3QgKGhlYWQgb2JqKSkpICNmKQorICAgICAgICAgIChlbHNlIChsb29wICh0YWlsIG9iaikpKSkp
KSkpKQorCisoZGVmaW5lIChtYWtlLWxpc3Q9PyBlbGVtZW50LWNvbXBhcmF0b3IgdHlwZS10ZXN0
IGVtcHR5PyBoZWFkIHRhaWwpCisgIChsZXQgKChlbGVtPT8gKGNvbXBhcmF0b3ItZXF1YWxpdHkt
cHJlZGljYXRlIGVsZW1lbnQtY29tcGFyYXRvcikpKQorICAgIChsYW1iZGEgKGEgYikKKyAgICAg
IChsZXQgbG9vcCAoKGEgYSkgKGIgYikpCisgICAgICAgIChjb25kCisgICAgICAgICAoKGVtcHR5
PyBhKSAoZW1wdHk/IGIpKQorICAgICAgICAgKChlbXB0eT8gYikgI2YpCisgICAgICAgICAoKGVs
ZW09PyAoaGVhZCBhKSAoaGVhZCBiKSkgKGxvb3AgKHRhaWwgYSkgKHRhaWwgYikpKQorICAgICAg
ICAgKGVsc2UgI2YpKSkpKSkKKworKGRlZmluZSAobWFrZS1saXN0PD8gZWxlbWVudC1jb21wYXJh
dG9yIHR5cGUtdGVzdCBlbXB0eT8gaGVhZCB0YWlsKQorICAobGV0ICgoZWxlbT0/IChjb21wYXJh
dG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBlbGVtZW50LWNvbXBhcmF0b3IpKQorICAgICAgICAoZWxl
bTw/IChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSBlbGVtZW50LWNvbXBhcmF0b3IpKSkK
KyAgICAobGFtYmRhIChhIGIpCisgICAgICAobGV0IGxvb3AgKChhIGEpIChiIGIpKQorICAgICAg
ICAoY29uZAorICAgICAgICAgKChlbXB0eT8gYSkgKG5vdCAoZW1wdHk/IGIpKSkKKyAgICAgICAg
ICgoZW1wdHk/IGIpICNmKQorICAgICAgICAgKChlbGVtPD8gKGhlYWQgYSkgKGhlYWQgYikpICN0
KQorICAgICAgICAgKChlbGVtPT8gKGhlYWQgYSkgKGhlYWQgYikpIChsb29wICh0YWlsIGEpICh0
YWlsIGIpKSkKKyAgICAgICAgIChlbHNlICNmKSkpKSkpCisKKyhkZWZpbmUgbGlzdC1oYXNoLXNh
bHQgKG1peCAoc3ltYm9sLWhhc2ggJ2xpc3QpIChoYXNoLXNhbHQpKSkKKworKGRlZmluZSAobWFr
ZS1saXN0LWhhc2ggZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBlbXB0eT8gaGVhZCB0YWls
KQorICAobGV0ICgoZWxlbS1oYXNoIChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gZWxlbWVudC1j
b21wYXJhdG9yKSkpCisgICAgKGxhbWJkYSAob2JqKQorICAgICAgKGxldCBsb29wICgob2JqIG9i
aikKKyAgICAgICAgICAgICAgICAgKHJlc3VsdCBsaXN0LWhhc2gtc2FsdCkpCisgICAgICAgIChj
b25kCisgICAgICAgICAoKGVtcHR5PyBvYmopIHJlc3VsdCkKKyAgICAgICAgIChlbHNlIChsb29w
ICh0YWlsIG9iaikgKG1peCByZXN1bHQgKGVsZW0taGFzaCAoaGVhZCBvYmopKSkpKSkpKSkpCisK
KwwKKzs7OyBWZWN0b3IgY29tcGFyYXRvcgorCisoZGVmaW5lIChtYWtlLXZlY3Rvci1jb21wYXJh
dG9yIGVsZW1lbnQtY29tcGFyYXRvciB0eXBlLXRlc3QgbGVuZ3RoIHJlZikKKyAgKG1ha2UtY29t
cGFyYXRvcgorICAgKG1ha2UtdmVjdG9yLXR5cGUtdGVzdCBlbGVtZW50LWNvbXBhcmF0b3IgdHlw
ZS10ZXN0IGxlbmd0aCByZWYpCisgICAobWFrZS12ZWN0b3I9PyBlbGVtZW50LWNvbXBhcmF0b3Ig
dHlwZS10ZXN0IGxlbmd0aCByZWYpCisgICAobWFrZS12ZWN0b3I8PyBlbGVtZW50LWNvbXBhcmF0
b3IgdHlwZS10ZXN0IGxlbmd0aCByZWYpCisgICAobWFrZS12ZWN0b3ItaGFzaCBlbGVtZW50LWNv
bXBhcmF0b3IgdHlwZS10ZXN0IGxlbmd0aCByZWYpKSkKKworKGRlZmluZSAobWFrZS12ZWN0b3It
dHlwZS10ZXN0IGVsZW1lbnQtY29tcGFyYXRvciB0eXBlLXRlc3QgbGVuZ3RoIHJlZikKKyAgKGxl
dCAoKGVsZW0tdHlwZS10ZXN0IChjb21wYXJhdG9yLXR5cGUtdGVzdC1wcmVkaWNhdGUgZWxlbWVu
dC1jb21wYXJhdG9yKSkpCisgICAgKGxhbWJkYSAob2JqKQorICAgICAgKGFuZAorICAgICAgICh0
eXBlLXRlc3Qgb2JqKQorICAgICAgIChsZXQgKChsZW4gKGxlbmd0aCBvYmopKSkKKyAgICAgICAg
IChsZXQgbG9vcCAoKG4gMCkpCisgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAoKD0gbiBs
ZW4pICN0KQorICAgICAgICAgICAgKChub3QgKGVsZW0tdHlwZS10ZXN0IChyZWYgb2JqIG4pKSkg
I2YpCisgICAgICAgICAgICAoZWxzZSAobG9vcCAoKyBuIDEpKSkpKSkpKSkpCisKKyhkZWZpbmUg
KG1ha2UtdmVjdG9yPT8gZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBsZW5ndGggcmVmKQor
ICAobGV0ICgoZWxlbT0/IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBlbGVtZW50LWNv
bXBhcmF0b3IpKSkKKyAgICAobGFtYmRhIChhIGIpCisgICAgICAobGV0ICgobGVuIChsZW5ndGgg
YikpKQorICAgICAgICAoYW5kCisgICAgICAgICAoPSAobGVuZ3RoIGEpIGxlbikKKyAgICAgICAg
IChsZXQgbG9vcCAoKG4gMCkpCisgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAoKD0gbiBs
ZW4pICN0KQorICAgICAgICAgICAgKChlbGVtPT8gKHJlZiBhIG4pIChyZWYgYiBuKSkgKGxvb3Ag
KCsgbiAxKSkpCisgICAgICAgICAgICAoZWxzZSAjZikpKSkpKSkpCisKKyhkZWZpbmUgKG1ha2Ut
dmVjdG9yPD8gZWxlbWVudC1jb21wYXJhdG9yIHR5cGUtdGVzdCBsZW5ndGggcmVmKQorICAobGV0
ICgoZWxlbT0/IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBlbGVtZW50LWNvbXBhcmF0
b3IpKQorICAgICAgICAoZWxlbTw/IChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSBlbGVt
ZW50LWNvbXBhcmF0b3IpKSkKKyAgICAobGFtYmRhIChhIGIpCisgICAgICAobGV0ICgobGVuYSAo
bGVuZ3RoIGEpKQorICAgICAgICAgICAgKGxlbmIgKGxlbmd0aCBiKSkpCisgICAgICAgIChjb25k
CisgICAgICAgICAoKDwgbGVuYSBsZW5iKSAjdCkKKyAgICAgICAgICgoPiBsZW5hIGxlbmIpICNm
KQorICAgICAgICAgKGVsc2UKKyAgICAgICAgICAobGV0IGxvb3AgKChuIDApKQorICAgICAgICAg
ICAgKGNvbmQKKyAgICAgICAgICAgICAoKD0gbiBsZW5hKSAjZikKKyAgICAgICAgICAgICAoKGVs
ZW08PyAocmVmIGEgbikgKHJlZiBiIG4pKSAjdCkKKyAgICAgICAgICAgICAoKGVsZW09PyAocmVm
IGEgbikgKHJlZiBiIG4pKSAobG9vcCAoKyBuIDEpKSkKKyAgICAgICAgICAgICAoZWxzZSAjZikp
KSkpKSkpKQorCisoZGVmaW5lIHZlY3Rvci1oYXNoLXNhbHQgKG1peCAoc3ltYm9sLWhhc2ggJ3Zl
Y3RvcikgKGhhc2gtc2FsdCkpKQorCisoZGVmaW5lIChtYWtlLXZlY3Rvci1oYXNoIGVsZW1lbnQt
Y29tcGFyYXRvciB0eXBlLXRlc3QgbGVuZ3RoIHJlZikKKyAgKGxldCAoKGVsZW0taGFzaCAoY29t
cGFyYXRvci1oYXNoLWZ1bmN0aW9uIGVsZW1lbnQtY29tcGFyYXRvcikpKQorICAgIChsYW1iZGEg
KG9iaikKKyAgICAgIChsZXQgKChsZW4gKGxlbmd0aCBvYmopKSkKKyAgICAgICAgKGxldCBsb29w
ICgobiAwKSAocmVzdWx0IHZlY3Rvci1oYXNoLXNhbHQpKQorICAgICAgICAgIChjb25kCisgICAg
ICAgICAgICgoPSBuIGxlbikgcmVzdWx0KQorICAgICAgICAgICAoZWxzZSAobG9vcCAoKyBuIDEp
IChtaXggcmVzdWx0IChlbGVtLWhhc2ggKHJlZiBvYmogbikpKSkpKSkpKSkpCisKKwwKKzs7OyBU
aGUgZGVmYXVsdCBjb21wYXJhdG9yCisKKzs7OyBTdGFuZGFyZCBjb21wYXJhdG9ycyBhbmQgdGhl
aXIgZnVuY3Rpb25zCisKKzs7IFRoZSB1bmtub3duLW9iamVjdCBjb21wYXJhdG9yLCB1c2VkIGFz
IGEgZmFsbGJhY2sgdG8gZXZlcnl0aGluZyBlbHNlCis7OyBFdmVyeXRoaW5nIGNvbXBhcmVzIGV4
YWN0bHkgdGhlIHNhbWUgYW5kIGhhc2hlcyB0byAwCisoZGVmaW5lIHVua25vd24tb2JqZWN0LWNv
bXBhcmF0b3IKKyAgKG1ha2UtY29tcGFyYXRvcgorICAgYWx3YXlzLXRydWUKKyAgIChsYW1iZGEg
KGEgYikgI3QpCisgICAobGFtYmRhIChhIGIpICNmKQorICAgKGxhbWJkYSAob2JqKSAwKSkpCisK
Kzs7IE5leHQgaW5kZXggZm9yIGFkZGVkIGNvbXBhcmF0b3IKKworKGRlZmluZSAqbmV4dC1jb21w
YXJhdG9yLWluZGV4KiAwKQorKGRlZmluZSAqcmVnaXN0ZXJlZC1jb21wYXJhdG9ycyogKG1ha2Ut
dmVjdG9yIDggdW5rbm93bi1vYmplY3QtY29tcGFyYXRvcikpCisKKzs7IFJlZ2lzdGVyIGEgbmV3
IGNvbXBhcmF0b3IgZm9yIHVzZSBieSB0aGUgZGVmYXVsdCBjb21wYXJhdG9yLgorKGRlZmluZSAo
Y29tcGFyYXRvci1yZWdpc3Rlci1kZWZhdWx0ISBjb21wYXJhdG9yKQorICAobGV0ICgobGVuICh2
ZWN0b3ItbGVuZ3RoICpyZWdpc3RlcmVkLWNvbXBhcmF0b3JzKikpKQorICAgIChpZiAoPSAqbmV4
dC1jb21wYXJhdG9yLWluZGV4KiAoLSBsZW4gMSkpCisgICAgICAgIChzZXQhICpyZWdpc3RlcmVk
LWNvbXBhcmF0b3JzKgorICAgICAgICAgICh2ZWN0b3ItY29weSAqcmVnaXN0ZXJlZC1jb21wYXJh
dG9ycyogMCAoKiAyIGxlbikgdW5rbm93bi1vYmplY3QtY29tcGFyYXRvcikpKSkKKyAgKHZlY3Rv
ci1zZXQhICpyZWdpc3RlcmVkLWNvbXBhcmF0b3JzKiAqbmV4dC1jb21wYXJhdG9yLWluZGV4KiBj
b21wYXJhdG9yKQorICAoc2V0ISAqbmV4dC1jb21wYXJhdG9yLWluZGV4KiAoKyAxICpuZXh0LWNv
bXBhcmF0b3ItaW5kZXgqKSkpCisKKzs7IFJldHVybiBvcmRpbmFsIGZvciBvYmplY3QgdHlwZXM6
IG51bGwgc29ydHMgYmVmb3JlIGJvb2xlYW5zLCB3aGljaCBzb3J0Cis7OyBiZWZvcmUgbnVtYmVy
cywgZXRjLiAgSW1wbGVtZW50YXRpb25zIGNhbiBleHRlbmQgdGhpcy4KKzs7IFBlb3BsZSB3aG8g
Y2FsbCBjb21wYXJhdG9yLXJlZ2lzdGVyLWRlZmF1bHQhIGVmZmVjdGl2ZWx5IGRvIGV4dGVuZCBp
dC4KKyhkZWZpbmUgKGludGVybmFsLW9iamVjdC10eXBlIG9iaikKKyAgKGNvbmQKKyAgICgobnVs
bD8gb2JqKSAwKQorICAgKChib29sZWFuPyBvYmopIDEpCisgICAoKG51bWJlcj8gb2JqKSAyKQor
ICAgKChjaGFyPyBvYmopIDMpCisgICAoKHN0cmluZz8gb2JqKSA0KQorICAgKChzeW1ib2w/IG9i
aikgNSkKKyAgICgoYnl0ZXZlY3Rvcj8gb2JqKSA2KQorICAgKCh2ZWN0b3I/IG9iaikgNykKKyAg
ICgocGFpcj8gb2JqKSA4KQorICAgKCh1bnNwZWNpZmllZD8gb2JqKSA5KQorICAgKChlb2Ytb2Jq
ZWN0PyBvYmopIDEwKQorICAgOzsgQWRkIG1vcmUgaGVyZSBpZiB5b3Ugd2FudAorICAgKGVsc2Ug
I2YpKSkKKworKGRlZmluZSAoZXh0ZXJuYWwtb2JqZWN0LXR5cGUgb2JqKQorICAocmVnaXN0ZXJl
ZC1pbmRleCBvYmopKQorCis7OyBSZXR1cm4gdGhlIGluZGV4IGZvciB0aGUgcmVnaXN0ZXJlZCB0
eXBlIG9mIG9iai4KKyhkZWZpbmUgKHJlZ2lzdGVyZWQtaW5kZXggb2JqKQorICAodmVjdG9yLWlu
ZGV4IChsYW1iZGEgKGNvbXBhcmF0b3IpCisgICAgICAgICAgICAgICAgICAoY29tcGFyYXRvci10
ZXN0LXR5cGUgY29tcGFyYXRvciBvYmopKQorICAgICAgICAgICAgICAgICpyZWdpc3RlcmVkLWNv
bXBhcmF0b3JzKikpCisKKyhkZWZpbmUgKGV4dGVybmFsLW9iamVjdC1jb21wYXJhdG9yIG9iaikK
KyAgKHZlY3Rvci1hbnkgKGxhbWJkYSAoY29tcGFyYXRvcikKKyAgICAgICAgICAgICAgICAoYW5k
IChjb21wYXJhdG9yLXRlc3QtdHlwZSBjb21wYXJhdG9yIG9iaikKKyAgICAgICAgICAgICAgICAg
ICAgIGNvbXBhcmF0b3IpKQorICAgICAgICAgICAgICAqcmVnaXN0ZXJlZC1jb21wYXJhdG9ycyop
KQorCis7OyBHaXZlbiBhbiBpbmRleCwgcmV0cmlldmUgYSByZWdpc3RlcmVkIGNvbmR1Y3Rvci4K
KyhkZWZpbmUgKHJlZ2lzdGVyZWQtY29tcGFyYXRvciBpKQorICAodmVjdG9yLXJlZiAqcmVnaXN0
ZXJlZC1jb21wYXJhdG9ycyogaSkpCisKKyhkZWZpbmUgKGludGVybmFsLWRpc3BhdGNoLWVxdWFs
aXR5IHR5cGUgYSBiKQorICA7OyBFUVVBTD8gYWxyZWFkeSByZXR1cm5zICN0IGZvciBtYW55IGlu
dGVybmFsIHR5cGVzCisgIChjYXNlIHR5cGUKKyAgICA7OyAoKDApICN0KSA7IEFsbCBlbXB0eSBs
aXN0cyBhcmUgZXF1YWwKKyAgICA7OyAoKDEpIChpZiBhIChhbmQgYiAjdCkgKG5vdCBiKSkpCisg
ICAgOzsgKCgyKSAoPSBhIGIpKQorICAgIDs7ICgoMykgKGNoYXI9PyBhIGIpKQorICAgIDs7ICgo
NCkgKHN0cmluZz0/IGEgYikpCisgICAgOzsgKCg1KSAoZXE/IGEgYikpCisgICAgOzsgKCg2KSAo
ZGVmYXVsdC1ieXRldmVjdG9yPT8gYSBiKSkKKyAgICAoKDcpIChkZWZhdWx0LXZlY3Rvcj0/IGEg
YikpCisgICAgKCg4KSAoZGVmYXVsdC1wYWlyPT8gYSBiKSkKKyAgICA7OyAoKDkgMTApICN0KQor
ICAgIDs7IEFkZCBtb3JlIGhlcmUKKyAgICAoZWxzZSAjZikpKQorCisoZGVmaW5lIChleHRlcm5h
bC1kaXNwYXRjaC1lcXVhbGl0eSB0eXBlIGEgYikKKyAgKGJpbmFyeT0/IChyZWdpc3RlcmVkLWNv
bXBhcmF0b3IgdHlwZSkgYSBiKSkKKworKGRlZmluZSAoaW50ZXJuYWwtZGlzcGF0Y2gtb3JkZXJp
bmcgdHlwZSBhIGIpCisgIDs7IEVRVUFMPyBhbHJlYWR5IGVsaW1pbmF0ZXMgc29tZSBpbnRlcm5h
bCB0eXBlcworICAoY2FzZSB0eXBlCisgICAgOzsgKCgwKSAjZikgOyBBbGwgZW1wdHkgbGlzdHMg
YXJlIGVxdWFsCisgICAgKCgxKSAoYW5kIChub3QgYSkgYikpIDsgI2YgPCAjdCBidXQgbm90IG90
aGVyd2lzZQorICAgICgoMikgKGNvbXBsZXg8PyBhIGIpKQorICAgICgoMykgKGNoYXI8PyBhIGIp
KQorICAgICgoNCkgKHN0cmluZzw/IGEgYikpCisgICAgKCg1KSAoc3ltYm9sPD8gYSBiKSkKKyAg
ICAoKDYpIChkZWZhdWx0LWJ5dGV2ZWN0b3I8PyBhIGIpKQorICAgICgoNykgKGRlZmF1bHQtdmVj
dG9yPD8gYSBiKSkKKyAgICAoKDgpIChkZWZhdWx0LXBhaXI8PyBhIGIpKQorICAgIDs7ICgoOSAx
MCkgI2YpCisgICAgOzsgQWRkIG1vcmUgaGVyZQorICAgICkpCisKKyhkZWZpbmUgKGV4dGVybmFs
LWRpc3BhdGNoLW9yZGVyaW5nIHR5cGUgYSBiKQorICAoYmluYXJ5PD8gKHJlZ2lzdGVyZWQtY29t
cGFyYXRvciB0eXBlKSBhIGIpKQorCis7OyBFUVVBTC1IQVNIIHJldHVybnMgdGhlIHNhbWUgYXMg
SEFTSC1CWS1WQUxVRSBvbiBudW1iZXJzIGFuZAorOzsgSEFTSC1CWS1JREVOVElUWSBvbiBib29s
ZWFucywgY2hhcnMgYW5kIHN5bWJvbHMuCisKKyhkZWZpbmUgKGRlZmF1bHQtaGFzaCBvYmopCisg
IChsZXQgKCh0eXBlIChpbnRlcm5hbC1vYmplY3QtdHlwZSBvYmopKSkKKyAgICAoaWYgdHlwZQor
ICAgICAgICAoaWYgKG9yICg8PSB0eXBlIDYpICg+PSB0eXBlIDkpKQorICAgICAgICAgICAgKGVx
dWFsLWhhc2ggb2JqKQorICAgICAgICAgICAgKGNhc2UgdHlwZQorICAgICAgICAgICAgICAoKDcp
IChkZWZhdWx0LXZlY3Rvci1oYXNoIG9iaikpCisgICAgICAgICAgICAgICgoOCkgKGRlZmF1bHQt
cGFpci1oYXNoIG9iaikpCisgICAgICAgICAgICAgIDs7IEFkZCBtb3JlIGhlcmUKKyAgICAgICAg
ICAgICAgKSkKKyAgICAgICAgKGxldCAoKGNvbXBhcmF0b3IgKGV4dGVybmFsLW9iamVjdC1jb21w
YXJhdG9yIG9iaikpKQorICAgICAgICAgIChjb21wYXJhdG9yLWhhc2ggY29tcGFyYXRvciBvYmop
KSkpKQorCisoZGVmaW5lIChkZWZhdWx0LW9yZGVyaW5nIGEgYikKKyAgKGFuZCAobm90IChlcXVh
bD8gYSBiKSkgOyBzaG91bGQgYmUgbXVjaCBmYXN0ZXIgdGhhbiB0aGlzIHByb2NlZHVyZQorICAg
ICAgIChsZXQgKChhLWl0eXBlIChpbnRlcm5hbC1vYmplY3QtdHlwZSBhKSkKKyAgICAgICAgICAg
ICAoYi1pdHlwZSAoaW50ZXJuYWwtb2JqZWN0LXR5cGUgYikpKQorICAgICAgICAgKGNvbmQKKyAg
ICAgICAgICAoKG5vdCBiLWl0eXBlKQorICAgICAgICAgICAob3IgYS1pdHlwZQorICAgICAgICAg
ICAgICAgOzsgTmVpdGhlciBhIG5vciBiIGFyZSBvZiBpbnRlcm5hbCB0eXBlOgorICAgICAgICAg
ICAgICAgOzsgZGlzcGF0Y2ggb3JkZXJpbmcgb24gZXh0ZXJuYWwgdHlwZQorICAgICAgICAgICAg
ICAgKGxldCAoKGEtZXR5cGUgKGV4dGVybmFsLW9iamVjdC10eXBlIGEpKQorICAgICAgICAgICAg
ICAgICAgICAgKGItZXR5cGUgKGV4dGVybmFsLW9iamVjdC10eXBlIGIpKSkKKyAgICAgICAgICAg
ICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICgoPCBhLWV0eXBlIGItZXR5cGUpICN0KQor
ICAgICAgICAgICAgICAgICAgKCg+IGEtZXR5cGUgYi1ldHlwZSkgI2YpCisgICAgICAgICAgICAg
ICAgICAoZWxzZSAoZXh0ZXJuYWwtZGlzcGF0Y2gtb3JkZXJpbmcgYS1ldHlwZSBhIGIpKSkpKSkK
KyAgICAgICAgICAoKG5vdCBhLWl0eXBlKSAjZikKKyAgICAgICAgICA7OyBCb3RoIGEgYW5kIGIg
YXJlIG9mIGludGVybmFsIHR5cGUKKyAgICAgICAgICAoKDwgYS1pdHlwZSBiLWl0eXBlKSAjdCkK
KyAgICAgICAgICAoKD4gYS1pdHlwZSBiLWl0eXBlKSAjZikKKyAgICAgICAgICAoZWxzZSAoaW50
ZXJuYWwtZGlzcGF0Y2gtb3JkZXJpbmcgYS1pdHlwZSBhIGIpKSkpKSkKKworKGRlZmluZSAoZGVm
YXVsdC1lcXVhbGl0eSBhIGIpCisgIChvciAoZXF1YWw/IGEgYikgOyBzaG91bGQgYmUgbXVjaCBm
YXN0ZXIgdGhhbiB0aGlzIHByb2NlZHVyZQorICAgICAgKGxldCAoKGEtaXR5cGUgKGludGVybmFs
LW9iamVjdC10eXBlIGEpKQorICAgICAgICAgICAgKGItaXR5cGUgKGludGVybmFsLW9iamVjdC10
eXBlIGIpKSkKKyAgICAgICAgKGFuZCAoZXF2PyBhLWl0eXBlIGItaXR5cGUpCisgICAgICAgICAg
ICAgKGlmIGEtaXR5cGUKKyAgICAgICAgICAgICAgICAgKGludGVybmFsLWRpc3BhdGNoLWVxdWFs
aXR5IGEtaXR5cGUgYSBiKQorICAgICAgICAgICAgICAgICAobGV0ICgoYS1jb21wIChleHRlcm5h
bC1vYmplY3QtY29tcGFyYXRvciBhKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGItY29tcCAo
ZXh0ZXJuYWwtb2JqZWN0LWNvbXBhcmF0b3IgYikpKQorICAgICAgICAgICAgICAgICAgIChhbmQg
KGVxPyBhLWNvbXAgYi1jb21wKSAoYmluYXJ5PT8gYS1jb21wIGEgYikpKSkpKSkpCisKKzs7IE5v
dGU6IGNvbXBhcmF0b3JzIGFyZSBpbW11dGFibGUsIG5vIHJlYXNvbiB0byBhbGxvY2F0ZSBhIG5l
dyBvbmUKKyhkZWZpbmUgZGVmYXVsdC1jb21wYXJhdG9yIChtYWtlLWNvbXBhcmF0b3IgYWx3YXlz
LXRydWUgZGVmYXVsdC1lcXVhbGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0LW9yZGVyaW5nIGRlZmF1bHQtaGFzaCkpCisKKyhkZWZpbmUgKG1h
a2UtZGVmYXVsdC1jb21wYXJhdG9yKSBkZWZhdWx0LWNvbXBhcmF0b3IpCisKKyhkZWZpbmUgZGVm
YXVsdC1wYWlyLWNvbXBhcmF0b3IKKyAgKG1ha2UtcGFpci1jb21wYXJhdG9yIGRlZmF1bHQtY29t
cGFyYXRvciBkZWZhdWx0LWNvbXBhcmF0b3IpKQorCisoZGVmaW5lIGRlZmF1bHQtcGFpcj0/Cisg
IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBkZWZhdWx0LXBhaXItY29tcGFyYXRvcikp
CisoZGVmaW5lIGRlZmF1bHQtcGFpcjw/CisgIChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0
ZSBkZWZhdWx0LXBhaXItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQtcGFpci1oYXNoCisg
IChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gZGVmYXVsdC1wYWlyLWNvbXBhcmF0b3IpKQorCiso
ZGVmaW5lIGRlZmF1bHQtdmVjdG9yLWNvbXBhcmF0b3IKKyAgKG1ha2UtdmVjdG9yLWNvbXBhcmF0
b3IgZGVmYXVsdC1jb21wYXJhdG9yIHZlY3Rvcj8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVjdG9yLWxlbmd0aCB2ZWN0b3ItcmVmKSkKKworKGRlZmluZSBkZWZhdWx0LXZlY3Rvcj0/Cisg
IChjb21wYXJhdG9yLWVxdWFsaXR5LXByZWRpY2F0ZSBkZWZhdWx0LXZlY3Rvci1jb21wYXJhdG9y
KSkKKyhkZWZpbmUgZGVmYXVsdC12ZWN0b3I8PworICAoY29tcGFyYXRvci1vcmRlcmluZy1wcmVk
aWNhdGUgZGVmYXVsdC12ZWN0b3ItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQtdmVjdG9y
LWhhc2gKKyAgKGNvbXBhcmF0b3ItaGFzaC1mdW5jdGlvbiBkZWZhdWx0LXZlY3Rvci1jb21wYXJh
dG9yKSkKKworKGRlZmluZSBkZWZhdWx0LWJ5dGV2ZWN0b3ItY29tcGFyYXRvcgorICAobWFrZS12
ZWN0b3ItY29tcGFyYXRvciBkZWZhdWx0LWNvbXBhcmF0b3IgYnl0ZXZlY3Rvcj8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnl0ZXZlY3Rvci1sZW5ndGggYnl0ZXZlY3Rvci11OC1yZWYpKQor
CisoZGVmaW5lIGRlZmF1bHQtYnl0ZXZlY3Rvcj0/CisgIChjb21wYXJhdG9yLWVxdWFsaXR5LXBy
ZWRpY2F0ZSBkZWZhdWx0LWJ5dGV2ZWN0b3ItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQt
Ynl0ZXZlY3Rvcjw/CisgIChjb21wYXJhdG9yLW9yZGVyaW5nLXByZWRpY2F0ZSBkZWZhdWx0LWJ5
dGV2ZWN0b3ItY29tcGFyYXRvcikpCisoZGVmaW5lIGRlZmF1bHQtYnl0ZXZlY3Rvci1oYXNoCisg
IChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gZGVmYXVsdC1ieXRldmVjdG9yLWNvbXBhcmF0b3Ip
KQorCis7OzsgV3JhcHBlZCBlcXVhbGl0eSBwcmVkaWNhdGVzCis7OzsgVGhlc2UgY29tcGFyYXRv
cnMgZG9uJ3QgaGF2ZSBvcmRlcmluZyBmdW5jdGlvbnMuCisKKzs7IE5vdGU6IGNvbXBhcmF0b3Jz
IGFyZSBpbW11dGFibGUsIG5vIHJlYXNvbiB0byBhbGxvY2F0ZSBhIG5ldyBvbmUKKyhkZWZpbmUg
ZXEtY29tcGFyYXRvciAobWFrZS1jb21wYXJhdG9yICN0IGVxPyAjZiBkZWZhdWx0LWhhc2gpKQor
KGRlZmluZSAobWFrZS1lcS1jb21wYXJhdG9yKSBlcS1jb21wYXJhdG9yKQorCisoZGVmaW5lIGVx
di1jb21wYXJhdG9yIChtYWtlLWNvbXBhcmF0b3IgI3QgZXF2PyAjZiBkZWZhdWx0LWhhc2gpKQor
KGRlZmluZSAobWFrZS1lcXYtY29tcGFyYXRvcikgZXF2LWNvbXBhcmF0b3IpCisKKyhkZWZpbmUg
ZXF1YWwtY29tcGFyYXRvciAobWFrZS1jb21wYXJhdG9yICN0IGVxdWFsPyAjZiBkZWZhdWx0LWhh
c2gpKQorKGRlZmluZSAobWFrZS1lcXVhbC1jb21wYXJhdG9yKSBlcXVhbC1jb21wYXJhdG9yKQor
Cis7OyBlb2YKZGlmZiAtLWdpdCBhL21vZHVsZS9zcmZpL3NyZmktMTI4L2dudS5zY20gYi9tb2R1
bGUvc3JmaS9zcmZpLTEyOC9nbnUuc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMC4uODlmZDQzNGFhCi0tLSAvZGV2L251bGwKKysrIGIvbW9kdWxlL3NyZmkvc3JmaS0xMjgv
Z251LnNjbQpAQCAtMCwwICsxLDM4IEBACis7OzsgRXh0ZW5zaW9ucyB0byBTUkZJLTEyOAorCis7
OyAgICBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7
OworOzsgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorOzsgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworOzsgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7OyB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7OworOzsgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKzs7IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCis7OworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworOzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorOzsgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxIFVTQQorCisoZGVmaW5lLW1vZHVsZSAoc3JmaSBzcmZpLTEyOCBnbnUpCisgICM6ZXhw
b3J0IChoYXNoLWJvdW5kIGhhc2gtc2FsdCB3aXRoLWhhc2gtc2FsdCkpCisKKyhkZWZpbmUtc3lu
dGF4IGhhc2gtYm91bmQKKyAgKHN5bnRheC1ydWxlcyAoKQorICAgICgoaGFzaC1ib3VuZCkgbW9z
dC1wb3NpdGl2ZS1maXhudW0pKSkKKworKGRlZmluZSAlc2FsdCUgKG1ha2UtcGFyYW1ldGVyIChy
YW5kb20gKGhhc2gtYm91bmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc2VlZC0+cmFuZG9tLXN0YXRlIChjdXJyZW50LXRpbWUpKSkpKQorCisoZGVmaW5lLXN5bnRh
eCBoYXNoLXNhbHQKKyAgKHN5bnRheC1ydWxlcyAoKQorICAgICgoaGFzaC1zYWx0KSAoJXNhbHQl
KSkpKQorCisoZGVmaW5lLXN5bnRheCB3aXRoLWhhc2gtc2FsdAorICAoc3ludGF4LXJ1bGVzICgp
CisgICAgKCh3aXRoLWhhc2gtc2FsdCBuZXctc2FsdCBoYXNoLWZ1bmMgb2JqKQorICAgICAocGFy
YW1ldGVyaXplICgoJXNhbHQlIG5ldy1zYWx0KSkgKGhhc2gtZnVuYyBvYmopKSkpKQorCis7OyBl
b2YKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0gYi90ZXN0LXN1aXRlL01ha2Vm
aWxlLmFtCmluZGV4IGYwYWQ4YmI5MS4uYTJmNzNiMzI5IDEwMDY0NAotLS0gYS90ZXN0LXN1aXRl
L01ha2VmaWxlLmFtCisrKyBiL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuYW0KQEAgLTE2Myw2ICsxNjMs
NyBAQCBTQ01fVEVTVFMgPSB0ZXN0cy8wMC1pbml0aWFsLWVudi50ZXN0CQlcCiAJICAgIHRlc3Rz
L3NyZmktMTA1LnRlc3QJCQlcCiAJICAgIHRlc3RzL3NyZmktMTExLnRlc3QJCQlcCiAJICAgIHRl
c3RzL3NyZmktMTI2LnRlc3QJCQlcCisJICAgIHRlc3RzL3NyZmktMTI4LnRlc3QJCQlcCiAJICAg
IHRlc3RzL3NyZmktNC50ZXN0CQkJXAogCSAgICB0ZXN0cy9zcmZpLTkudGVzdAkJCVwKIAkgICAg
dGVzdHMvc3RhdHByb2YudGVzdAkJCVwKZGlmZiAtLWdpdCBhL3Rlc3Qtc3VpdGUvdGVzdHMvc3Jm
aS0xMjgudGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjgudGVzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjAyYTUzOGUyMgotLS0gL2Rldi9udWxsCisrKyBiL3Rl
c3Qtc3VpdGUvdGVzdHMvc3JmaS0xMjgudGVzdApAQCAtMCwwICsxLDM0OCBAQAorOzs7OyBzcmZp
LTEyOC50ZXN0IC0tLSBUZXN0IHN1aXRlIGZvciBTUkZJIDEyOCAtKi0gc2NoZW1lIC0qLQorOzs7
OworOzs7OyAJQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgorOzs7OworOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCis7Ozs7IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7Ozs7IHZlcnNpb24gMyBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OzsK
Kzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCis7Ozs7IExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7Ozs7Cis7Ozs7IFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
Kzs7OzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisKKzs7OyBUaGUgZm9s
bG93aW5nIHRlc3RzIGFyZSB0aGUgdGVzdHMgZnJvbSBTUkZJLTEyNiByZWZlcmVuY2UKKzs7OyBp
bXBsZW1lbnRhdGlvbiBwb3J0ZWQgdG8gR3VpbGUgdGVzdCBzdWl0ZS4KKworOzsgVGhpcyBmaWxl
IGNvbnRhaW5zIGNvZGUgZnJvbSBTUkZJIDEyOCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24sIGJ5
Cis7OyBKb2huIENvd2FuCisKKzs7OyBDb3B5cmlnaHQgKEMpIEpvaG4gQ293YW4gKDIwMTUpLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorOzs7Cis7OzsgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKzs7OyBvYnRhaW5pbmcgYSBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorOzs7IGZpbGVzICh0
aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKKzs7OyByZXN0
cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwK
Kzs7OyBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl
LCBhbmQvb3IKKzs7OyBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZQorOzs7IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg
c3ViamVjdCB0byB0aGUgZm9sbG93aW5nCis7OzsgY29uZGl0aW9uczoKKzs7OworOzs7IFRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl
Cis7OzsgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgU29mdHdhcmUuCis7OzsKKzs7OyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg
V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKzs7OyBFWFBSRVNTIE9SIElNUExJRUQsIElO
Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMKKzs7OyBPRiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorOzs7IE5PTklO
RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUCis7
OzsgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC
SUxJVFksCis7OzsgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HCis7OzsgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU
SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorOzs7IE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZU
V0FSRS4KKworKGRlZmluZS1tb2R1bGUgKHRlc3Qtc3JmaS0xMjgpCisgICM6dXNlLW1vZHVsZSAo
dGVzdC1zdWl0ZSBsaWIpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTEyOCkKKyAgIzp1c2Ut
bW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMikKKyAgIzp1
c2UtbW9kdWxlIChzcmZpIHNyZmktOCkKKyAgIzp1c2UtbW9kdWxlIChybnJzIGJ5dGV2ZWN0b3Jz
KSkKKworKGRlZmluZSAodmVjdG9yLWNkciB2ZWMpCisgIChsZXQqICgobGVuICh2ZWN0b3ItbGVu
Z3RoIHZlYykpCisgICAgICAgICAocmVzdWx0IChtYWtlLXZlY3RvciAoLSBsZW4gMSkpKSkKKyAg
ICAobGV0IGxvb3AgKChuIDEpKQorICAgICAgKGNvbmQKKyAgICAgICAoKD0gbiBsZW4pIHJlc3Vs
dCkKKyAgICAgICAoZWxzZSAodmVjdG9yLXNldCEgcmVzdWx0ICgtIG4gMSkgKHZlY3Rvci1yZWYg
dmVjIG4pKQorICAgICAgICAgICAgIChsb29wICgrIG4gMSkpKSkpKSkKKworKGRlZmluZSBkZWZh
dWx0LWNvbXBhcmF0b3IgKG1ha2UtZGVmYXVsdC1jb21wYXJhdG9yKSkKKworKGRlZmluZSByZWFs
LWNvbXBhcmF0b3IgKG1ha2UtY29tcGFyYXRvciByZWFsPyA9IDwgbnVtYmVyLWhhc2gpKQorCiso
ZGVmaW5lIGRlZ2VuZXJhdGUtY29tcGFyYXRvciAobWFrZS1jb21wYXJhdG9yIChsYW1iZGEgKHgp
ICN0KSBlcXVhbD8gI2YgI2YpKQorCisoZGVmaW5lIGJvb2xlYW4tY29tcGFyYXRvcgorICAobWFr
ZS1jb21wYXJhdG9yIGJvb2xlYW4/IGVxPyAobGFtYmRhICh4IHkpIChhbmQgKG5vdCB4KSB5KSkg
Ym9vbGVhbi1oYXNoKSkKKworKGRlZmluZSBib29sLXBhaXItY29tcGFyYXRvcgorICAobWFrZS1w
YWlyLWNvbXBhcmF0b3IgYm9vbGVhbi1jb21wYXJhdG9yIGJvb2xlYW4tY29tcGFyYXRvcikpCisK
KyhkZWZpbmUgbnVtLWxpc3QtY29tcGFyYXRvcgorICAobWFrZS1saXN0LWNvbXBhcmF0b3IgcmVh
bC1jb21wYXJhdG9yIGxpc3Q/IG51bGw/IGNhciBjZHIpKQorCisoZGVmaW5lIG51bS12ZWN0b3It
Y29tcGFyYXRvcgorICAobWFrZS12ZWN0b3ItY29tcGFyYXRvciByZWFsLWNvbXBhcmF0b3IgdmVj
dG9yPyB2ZWN0b3ItbGVuZ3RoIHZlY3Rvci1yZWYpKQorCisoZGVmaW5lIHZlY3Rvci1xdWEtbGlz
dC1jb21wYXJhdG9yCisgIChtYWtlLWxpc3QtY29tcGFyYXRvcgorICAgcmVhbC1jb21wYXJhdG9y
CisgICB2ZWN0b3I/CisgICAobGFtYmRhICh2ZWMpICg9IDAgKHZlY3Rvci1sZW5ndGggdmVjKSkp
CisgICAobGFtYmRhICh2ZWMpICh2ZWN0b3ItcmVmIHZlYyAwKSkKKyAgIHZlY3Rvci1jZHIpKQor
CisoZGVmaW5lIGxpc3QtcXVhLXZlY3Rvci1jb21wYXJhdG9yCisgIChtYWtlLXZlY3Rvci1jb21w
YXJhdG9yIGRlZmF1bHQtY29tcGFyYXRvciBsaXN0PyBsZW5ndGggbGlzdC1yZWYpKQorCisoZGVm
aW5lIGVxLWNvbXBhcmF0b3IgKG1ha2UtZXEtY29tcGFyYXRvcikpCisKKyhkZWZpbmUgZXF2LWNv
bXBhcmF0b3IgKG1ha2UtZXF2LWNvbXBhcmF0b3IpKQorCisoZGVmaW5lIGVxdWFsLWNvbXBhcmF0
b3IgKG1ha2UtZXF1YWwtY29tcGFyYXRvcikpCisKKyhkZWZpbmUgc3ltYm9sLWNvbXBhcmF0b3IK
KyAgKG1ha2UtY29tcGFyYXRvcgorICAgc3ltYm9sPworICAgZXE/CisgICAobGFtYmRhIChhIGIp
IChzdHJpbmc8PyAoc3ltYm9sLT5zdHJpbmcgYSkgKHN5bWJvbC0+c3RyaW5nIGIpKSkKKyAgIHN5
bWJvbC1oYXNoKSkKKworCisod2l0aC10ZXN0LXByZWZpeCAiU1JGSS0xMjgiCisKKyAgKHBhc3Mt
aWYtZXF1YWwgJyMoMiAzIDQpICh2ZWN0b3ItY2RyICcjKDEgMiAzIDQpKSkKKyAgKHBhc3MtaWYt
ZXF1YWwgJyMoKSAodmVjdG9yLWNkciAnIygxKSkpCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNv
bXBhcmF0b3JzL3ByZWRpY2F0ZXMiCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0b3I/IHJlYWwtY29t
cGFyYXRvcikpCisgICAgKHBhc3MtaWYgKG5vdCAoY29tcGFyYXRvcj8gPSkpKQorICAgIChwYXNz
LWlmIChjb21wYXJhdG9yLW9yZGVyZWQ/IHJlYWwtY29tcGFyYXRvcikpCisgICAgKHBhc3MtaWYg
KGNvbXBhcmF0b3ItaGFzaGFibGU/IHJlYWwtY29tcGFyYXRvcikpCisgICAgKHBhc3MtaWYgKG5v
dCAoY29tcGFyYXRvci1vcmRlcmVkPyBkZWdlbmVyYXRlLWNvbXBhcmF0b3IpKSkKKyAgICAocGFz
cy1pZiAobm90IChjb21wYXJhdG9yLWhhc2hhYmxlPyBkZWdlbmVyYXRlLWNvbXBhcmF0b3IpKSkK
KyAgICApIDsgZW5kIGNvbXBhcmF0b3JzL3ByZWRpY2F0ZXMKKworICAod2l0aC10ZXN0LXByZWZp
eCAiY29tcGFyYXRvcnMvY29uc3RydWN0b3JzIgorICAgIChwYXNzLWlmICg9PyBib29sZWFuLWNv
bXBhcmF0b3IgI3QgI3QpKQorICAgIChwYXNzLWlmIChub3QgKD0/IGJvb2xlYW4tY29tcGFyYXRv
ciAjdCAjZikpKQorICAgIChwYXNzLWlmICg8PyBib29sZWFuLWNvbXBhcmF0b3IgI2YgI3QpKQor
ICAgIChwYXNzLWlmIChub3QgKDw/IGJvb2xlYW4tY29tcGFyYXRvciAjdCAjdCkpKQorICAgIChw
YXNzLWlmIChub3QgKDw/IGJvb2xlYW4tY29tcGFyYXRvciAjdCAjZikpKQorCisgICAgKHBhc3Mt
aWYgKGNvbXBhcmF0b3ItdGVzdC10eXBlIGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3QgLiAjZikp
KQorICAgIChwYXNzLWlmIChub3QgKGNvbXBhcmF0b3ItdGVzdC10eXBlIGJvb2wtcGFpci1jb21w
YXJhdG9yIDMyKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoY29tcGFyYXRvci10ZXN0LXR5cGUgYm9v
bC1wYWlyLWNvbXBhcmF0b3IgJygzMiAuICNmKSkpKQorICAgIChwYXNzLWlmIChub3QgKGNvbXBh
cmF0b3ItdGVzdC10eXBlIGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3QgLiAzMikpKSkKKyAgICAo
cGFzcy1pZiAobm90IChjb21wYXJhdG9yLXRlc3QtdHlwZSBib29sLXBhaXItY29tcGFyYXRvciAn
KDMyIC4gMzQpKSkpCisgICAgKHBhc3MtaWYgKD0/IGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3Qg
LiAjdCkgJygjdCAuICN0KSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gYm9vbC1wYWlyLWNvbXBh
cmF0b3IgJygjdCAuICN0KSAnKCNmIC4gI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gYm9v
bC1wYWlyLWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCN0IC4gI2YpKSkpCisgICAgKHBhc3MtaWYg
KDw/IGJvb2wtcGFpci1jb21wYXJhdG9yICcoI2YgLiAjdCkgJygjdCAuICN0KSkpCisgICAgKHBh
c3MtaWYgKDw/IGJvb2wtcGFpci1jb21wYXJhdG9yICcoI3QgLiAjZikgJygjdCAuICN0KSkpCisg
ICAgKHBhc3MtaWYgKG5vdCAoPD8gYm9vbC1wYWlyLWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCN0
IC4gI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gYm9vbC1wYWlyLWNvbXBhcmF0b3IgJygj
dCAuICN0KSAnKCNmIC4gI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gYm9vbC1wYWlyLWNv
bXBhcmF0b3IgJygjZiAuICN0KSAnKCNmIC4gI2YpKSkpCisKKyAgICAocGFzcy1pZiAoY29tcGFy
YXRvci10ZXN0LXR5cGUgbnVtLXZlY3Rvci1jb21wYXJhdG9yICcjKDEgMiAzKSkpCisgICAgKHBh
c3MtaWYgKGNvbXBhcmF0b3ItdGVzdC10eXBlIG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygpKSkK
KyAgICAocGFzcy1pZiAobm90IChjb21wYXJhdG9yLXRlc3QtdHlwZSBudW0tdmVjdG9yLWNvbXBh
cmF0b3IgMSkpKQorICAgIChwYXNzLWlmIChub3QgKGNvbXBhcmF0b3ItdGVzdC10eXBlIG51bS12
ZWN0b3ItY29tcGFyYXRvciAnIyhhIDIgMykpKSkKKyAgICAocGFzcy1pZiAobm90IChjb21wYXJh
dG9yLXRlc3QtdHlwZSBudW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSBiIDMpKSkpCisgICAgKHBh
c3MtaWYgKG5vdCAoY29tcGFyYXRvci10ZXN0LXR5cGUgbnVtLXZlY3Rvci1jb21wYXJhdG9yICcj
KDEgMiBjKSkpKQorICAgIChwYXNzLWlmICg9PyBudW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSAy
IDMpICcjKDEgMiAzKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gbnVtLXZlY3Rvci1jb21wYXJh
dG9yICcjKDEgMiAzKSAnIyg0IDUgNikpKSkKKyAgICAocGFzcy1pZiAobm90ICg9PyBudW0tdmVj
dG9yLWNvbXBhcmF0b3IgJyMoMSAyIDMpICcjKDEgNSA2KSkpKQorICAgIChwYXNzLWlmIChub3Qg
KD0/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIgMykgJyMoMSAyIDYpKSkpCisgICAgKHBh
c3MtaWYgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIpICcjKDEgMiAzKSkpCisgICAg
KHBhc3MtaWYgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIgMykgJyMoMiAzIDQpKSkK
KyAgICAocGFzcy1pZiAoPD8gbnVtLXZlY3Rvci1jb21wYXJhdG9yICcjKDEgMiAzKSAnIygxIDMg
NCkpKQorICAgIChwYXNzLWlmICg8PyBudW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSAyIDMpICcj
KDEgMiA0KSkpCisgICAgKHBhc3MtaWYgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygzIDQp
ICcjKDEgMiAzKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gbnVtLXZlY3Rvci1jb21wYXJhdG9y
ICcjKDEgMiAzKSAnIygxIDIgMykpKSkKKyAgICAocGFzcy1pZiAobm90ICg8PyBudW0tdmVjdG9y
LWNvbXBhcmF0b3IgJyMoMSAyIDMpICcjKDEgMikpKSkKKyAgICAocGFzcy1pZiAobm90ICg8PyBu
dW0tdmVjdG9yLWNvbXBhcmF0b3IgJyMoMSAyIDMpICcjKDAgMiAzKSkpKQorICAgIChwYXNzLWlm
IChub3QgKDw/IG51bS12ZWN0b3ItY29tcGFyYXRvciAnIygxIDIgMykgJyMoMSAxIDMpKSkpCisK
KyAgICAocGFzcy1pZiAobm90ICg8PyB2ZWN0b3ItcXVhLWxpc3QtY29tcGFyYXRvciAnIygzIDQp
ICcjKDEgMiAzKSkpKQorICAgIChwYXNzLWlmICg8PyBsaXN0LXF1YS12ZWN0b3ItY29tcGFyYXRv
ciAnKDMgNCkgJygxIDIgMykpKQorCisgICAgKGxldCAoKGJvb2wtcGFpciAoY29ucyAjdCAjZikp
CisgICAgICAgICAgKGJvb2wtcGFpci0yIChjb25zICN0ICNmKSkKKyAgICAgICAgICAocmV2ZXJz
ZS1ib29sLXBhaXIgKGNvbnMgI2YgI3QpKSkKKyAgICAgIChwYXNzLWlmICg9PyBlcS1jb21wYXJh
dG9yICN0ICN0KSkKKyAgICAgIChwYXNzLWlmIChub3QgKD0/IGVxLWNvbXBhcmF0b3IgI2YgI3Qp
KSkKKyAgICAgIChwYXNzLWlmICg9PyBlcXYtY29tcGFyYXRvciBib29sLXBhaXIgYm9vbC1wYWly
KSkKKyAgICAgIChwYXNzLWlmIChub3QgKD0/IGVxdi1jb21wYXJhdG9yIGJvb2wtcGFpciBib29s
LXBhaXItMikpKQorICAgICAgKHBhc3MtaWYgKD0/IGVxdWFsLWNvbXBhcmF0b3IgYm9vbC1wYWly
IGJvb2wtcGFpci0yKSkKKyAgICAgIChwYXNzLWlmIChub3QgKD0/IGVxdWFsLWNvbXBhcmF0b3Ig
Ym9vbC1wYWlyIHJldmVyc2UtYm9vbC1wYWlyKSkpKQorICAgICkgOyBlbmQgY29tcGFyYXRvcnMv
Y29uc3RydWN0b3JzCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBhcmF0b3JzL2hhc2giCisg
ICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChib29sZWFuLWhhc2ggI2YpKSkKKyAgICAocGFz
cy1pZiAobm90IChuZWdhdGl2ZT8gKGJvb2xlYW4taGFzaCAjdCkpKSkKKyAgICAocGFzcy1pZiAo
ZXhhY3QtaW50ZWdlcj8gKGNoYXItaGFzaCAjXGEpKSkKKyAgICAocGFzcy1pZiAobm90IChuZWdh
dGl2ZT8gKGNoYXItaGFzaCAjXGIpKSkpCisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChj
aGFyLWNpLWhhc2ggI1xhKSkpCisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChjaGFyLWNp
LWhhc2ggI1xiKSkpKQorICAgIChwYXNzLWlmICg9IChjaGFyLWNpLWhhc2ggI1xhKSAoY2hhci1j
aS1oYXNoICNcQSkpKQorICAgIChwYXNzLWlmIChleGFjdC1pbnRlZ2VyPyAoc3RyaW5nLWhhc2gg
ImYiKSkpCisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChzdHJpbmctaGFzaCAiZyIpKSkp
CisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChzdHJpbmctY2ktaGFzaCAiZiIpKSkKKyAg
ICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKHN0cmluZy1jaS1oYXNoICJnIikpKSkKKyAgICAo
cGFzcy1pZiAoPSAoc3RyaW5nLWNpLWhhc2ggImYiKSAoc3RyaW5nLWNpLWhhc2ggIkYiKSkpCisg
ICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChzeW1ib2wtaGFzaCAnZikpKQorICAgIChwYXNz
LWlmIChub3QgKG5lZ2F0aXZlPyAoc3ltYm9sLWhhc2ggJ3QpKSkpCisgICAgKHBhc3MtaWYgKGV4
YWN0LWludGVnZXI/IChudW1iZXItaGFzaCAzKSkpCisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRp
dmU/IChudW1iZXItaGFzaCAzKSkpKQorICAgIChwYXNzLWlmIChleGFjdC1pbnRlZ2VyPyAobnVt
YmVyLWhhc2ggLTMpKSkKKyAgICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKG51bWJlci1oYXNo
IC0zKSkpKQorICAgIChwYXNzLWlmIChleGFjdC1pbnRlZ2VyPyAobnVtYmVyLWhhc2ggMy4wKSkp
CisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChudW1iZXItaGFzaCAzLjApKSkpCisgICAg
KHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChudW1iZXItaGFzaCAzLjQ3KSkpCisgICAgKHBhc3Mt
aWYgKG5vdCAobmVnYXRpdmU/IChudW1iZXItaGFzaCAzLjQ3KSkpKQorICAgIChwYXNzLWlmIChl
eGFjdC1pbnRlZ2VyPyAoZGVmYXVsdC1oYXNoICcoKSkpKQorICAgIChwYXNzLWlmIChub3QgKG5l
Z2F0aXZlPyAoZGVmYXVsdC1oYXNoICcoKSkpKSkKKyAgICAocGFzcy1pZiAoZXhhY3QtaW50ZWdl
cj8gKGRlZmF1bHQtaGFzaCAnKGEgImIiICNcYyAjKGRlZSkgMi43MTgpKSkpCisgICAgKHBhc3Mt
aWYgKG5vdCAobmVnYXRpdmU/IChkZWZhdWx0LWhhc2ggJyhhICJiIiAjXGMgIyhkZWUpIDIuNzE4
KSkpKSkKKyAgICAocGFzcy1pZiAoZXhhY3QtaW50ZWdlcj8gKGRlZmF1bHQtaGFzaCAnI3U4KCkp
KSkKKyAgICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKGRlZmF1bHQtaGFzaCAnI3U4KCkpKSkp
CisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChkZWZhdWx0LWhhc2ggJyN1OCg4IDYgMykp
KSkKKyAgICAocGFzcy1pZiAobm90IChuZWdhdGl2ZT8gKGRlZmF1bHQtaGFzaCAnI3U4KDggNiAz
KSkpKSkKKyAgICAocGFzcy1pZiAoZXhhY3QtaW50ZWdlcj8gKGRlZmF1bHQtaGFzaCAnIygpKSkp
CisgICAgKHBhc3MtaWYgKG5vdCAobmVnYXRpdmU/IChkZWZhdWx0LWhhc2ggJyMoKSkpKSkKKyAg
ICAocGFzcy1pZiAoZXhhY3QtaW50ZWdlcj8gKGRlZmF1bHQtaGFzaCAnIyhhICJiIiAjXGMgIyhk
ZWUpIDIuNzE4KSkpKQorICAgIChwYXNzLWlmIChub3QgKG5lZ2F0aXZlPyAoZGVmYXVsdC1oYXNo
ICcjKGEgImIiICNcYyAjKGRlZSkgMi43MTgpKSkpKQorCisgICAgKSA7IGVuZCBjb21wYXJhdG9y
cy9oYXNoCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBhcmF0b3JzL2RlZmF1bHQiCisgICAg
KHBhc3MtaWYgKDw/IGRlZmF1bHQtY29tcGFyYXRvciAnKCkgJyhhKSkpCisgICAgKHBhc3MtaWYg
KG5vdCAoPT8gZGVmYXVsdC1jb21wYXJhdG9yICcoKSAnKGEpKSkpCisgICAgKHBhc3MtaWYgKD0/
IGRlZmF1bHQtY29tcGFyYXRvciAjdCAjdCkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gZGVmYXVs
dC1jb21wYXJhdG9yICN0ICNmKSkpCisgICAgKHBhc3MtaWYgKDw/IGRlZmF1bHQtY29tcGFyYXRv
ciAjZiAjdCkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVsdC1jb21wYXJhdG9yICN0ICN0
KSkpCisgICAgKHBhc3MtaWYgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAjXGEgI1xhKSkKKyAgICAo
cGFzcy1pZiAoPD8gZGVmYXVsdC1jb21wYXJhdG9yICNcYSAjXGIpKQorCisgICAgKHBhc3MtaWYg
KGNvbXBhcmF0b3ItdGVzdC10eXBlIGRlZmF1bHQtY29tcGFyYXRvciAnKCkpKQorICAgIChwYXNz
LWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgI3QpKQorICAgIChw
YXNzLWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgI1x0KSkKKyAg
ICAocGFzcy1pZiAoY29tcGFyYXRvci10ZXN0LXR5cGUgZGVmYXVsdC1jb21wYXJhdG9yICcoYSkp
KQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3Ig
J2EpKQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0
b3IgKG1ha2UtYnl0ZXZlY3RvciAxMCkpKQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRlc3Qt
dHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgMTApKQorICAgIChwYXNzLWlmIChjb21wYXJhdG9yLXRl
c3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgMTAuMCkpCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0
b3ItdGVzdC10eXBlIGRlZmF1bHQtY29tcGFyYXRvciAiMTAuMCIpKQorICAgIChwYXNzLWlmIChj
b21wYXJhdG9yLXRlc3QtdHlwZSBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoMTApKSkKKworICAgIChw
YXNzLWlmICg9PyBkZWZhdWx0LWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCN0IC4gI3QpKSkKKyAg
ICAocGFzcy1pZiAobm90ICg9PyBkZWZhdWx0LWNvbXBhcmF0b3IgJygjdCAuICN0KSAnKCNmIC4g
I3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPT8gZGVmYXVsdC1jb21wYXJhdG9yICcoI3QgLiAj
dCkgJygjdCAuICNmKSkpKQorICAgIChwYXNzLWlmICg8PyBkZWZhdWx0LWNvbXBhcmF0b3IgJygj
ZiAuICN0KSAnKCN0IC4gI3QpKSkKKyAgICAocGFzcy1pZiAoPD8gZGVmYXVsdC1jb21wYXJhdG9y
ICcoI3QgLiAjZikgJygjdCAuICN0KSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVsdC1j
b21wYXJhdG9yICcoI3QgLiAjdCkgJygjdCAuICN0KSkpKQorICAgIChwYXNzLWlmIChub3QgKDw/
IGRlZmF1bHQtY29tcGFyYXRvciAnKCN0IC4gI3QpICcoI2YgLiAjdCkpKSkKKyAgICAocGFzcy1p
ZiAobm90ICg8PyBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoI2YgI3QpICcjKCNmICNmKSkpKQorCisg
ICAgKHBhc3MtaWYgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAnIygjdCAjdCkgJyMoI3QgI3QpKSkK
KyAgICAocGFzcy1pZiAobm90ICg9PyBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoI3QgI3QpICcjKCNm
ICN0KSkpKQorICAgIChwYXNzLWlmIChub3QgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAnIygjdCAj
dCkgJyMoI3QgI2YpKSkpCisgICAgKHBhc3MtaWYgKDw/IGRlZmF1bHQtY29tcGFyYXRvciAnIygj
ZiAjdCkgJyMoI3QgI3QpKSkKKyAgICAocGFzcy1pZiAoPD8gZGVmYXVsdC1jb21wYXJhdG9yICcj
KCN0ICNmKSAnIygjdCAjdCkpKQorICAgIChwYXNzLWlmIChub3QgKDw/IGRlZmF1bHQtY29tcGFy
YXRvciAnIygjdCAjdCkgJyMoI3QgI3QpKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVs
dC1jb21wYXJhdG9yICcjKCN0ICN0KSAnIygjZiAjdCkpKSkKKyAgICAocGFzcy1pZiAobm90ICg8
PyBkZWZhdWx0LWNvbXBhcmF0b3IgJyMoI2YgI3QpICcjKCNmICNmKSkpKQorCisgICAgKHBhc3Mt
aWYgKD0gKGNvbXBhcmF0b3ItaGFzaCBkZWZhdWx0LWNvbXBhcmF0b3IgI3QpIChib29sZWFuLWhh
c2ggI3QpKSkKKyAgICAocGFzcy1pZiAoPSAoY29tcGFyYXRvci1oYXNoIGRlZmF1bHQtY29tcGFy
YXRvciAjXHQpIChjaGFyLWhhc2ggI1x0KSkpCisgICAgKHBhc3MtaWYgKD0gKGNvbXBhcmF0b3It
aGFzaCBkZWZhdWx0LWNvbXBhcmF0b3IgInQiKSAoc3RyaW5nLWhhc2ggInQiKSkpCisgICAgKHBh
c3MtaWYgKD0gKGNvbXBhcmF0b3ItaGFzaCBkZWZhdWx0LWNvbXBhcmF0b3IgJ3QpIChzeW1ib2wt
aGFzaCAndCkpKQorICAgIChwYXNzLWlmICg9IChjb21wYXJhdG9yLWhhc2ggZGVmYXVsdC1jb21w
YXJhdG9yIDEwKSAobnVtYmVyLWhhc2ggMTApKSkKKyAgICAocGFzcy1pZiAoPSAoY29tcGFyYXRv
ci1oYXNoIGRlZmF1bHQtY29tcGFyYXRvciAxMC4wKSAobnVtYmVyLWhhc2ggMTAuMCkpKQorCisg
ICAgKGNvbXBhcmF0b3ItcmVnaXN0ZXItZGVmYXVsdCEKKyAgICAgKG1ha2UtY29tcGFyYXRvciBw
cm9jZWR1cmU/IChsYW1iZGEgKGEgYikgI3QpIChsYW1iZGEgKGEgYikgI2YpIChsYW1iZGEgKG9i
aikgMjAwKSkpCisgICAgKHBhc3MtaWYgKD0/IGRlZmF1bHQtY29tcGFyYXRvciAobGFtYmRhICgp
ICN0KSAobGFtYmRhICgpICNmKSkpCisgICAgKHBhc3MtaWYgKG5vdCAoPD8gZGVmYXVsdC1jb21w
YXJhdG9yIChsYW1iZGEgKCkgI3QpIChsYW1iZGEgKCkgI2YpKSkpCisgICAgKHBhc3MtaWYtZXF1
YWwgMjAwIChjb21wYXJhdG9yLWhhc2ggZGVmYXVsdC1jb21wYXJhdG9yIChsYW1iZGEgKCkgI3Qp
KSkKKworICAgICkgOyBlbmQgY29tcGFyYXRvcnMvZGVmYXVsdAorCisgIDs7IFNSRkkgMTI4IGRv
ZXMgbm90IGFjdHVhbGx5IHJlcXVpcmUgYSBjb21wYXJhdG9yJ3MgZm91ciBwcm9jZWR1cmVzCisg
IDs7IHRvIGJlIGVxPyB0byB0aGUgcHJvY2VkdXJlcyBvcmlnaW5hbGx5IHBhc3NlZCB0byBtYWtl
LWNvbXBhcmF0b3IuCisgIDs7IEZvciBpbnRlcm9wZXJhYmlsaXR5L2ludGVyY2hhbmdlYWJpbGl0
eSBiZXR3ZWVuIHRoZSBjb21wYXJhdG9ycworICA7OyBvZiBTUkZJIDExNCBhbmQgU1JGSSAxMjgs
IHNvbWUgb2YgdGhlIHByb2NlZHVyZXMgcGFzc2VkIHRvCisgIDs7IG1ha2UtY29tcGFyYXRvciBt
YXkgbmVlZCB0byBiZSB3cmFwcGVkIGluc2lkZSBhbm90aGVyIGxhbWJkYQorICA7OyBleHByZXNz
aW9uIGJlZm9yZSB0aGV5J3JlIHJldHVybmVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGFjY2Vzc29y
LgorICA7OworICA7OyBTbyB0aGlzIG5leHQgZ3JvdXAgb2YgdGVzdHMgaXMgaW5jb3JyZWN0LCBo
ZW5jZSBjb21tZW50ZWQgb3V0CisgIDs7IGFuZCByZXBsYWNlZCBieSBhIHNsaWdodGx5IGxlc3Mg
bmFpdmUgZ3JvdXAgb2YgdGVzdHMuCisKKyAgIzsKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBh
cmF0b3JzL2FjY2Vzc29ycyIKKyAgKGRlZmluZSB0dHAgKGxhbWJkYSAoeCkgI3QpKQorICAoZGVm
aW5lIGVxcCAobGFtYmRhICh4IHkpICN0KSkKKyAgKGRlZmluZSBvcnAgKGxhbWJkYSAoeCB5KSAj
dCkpCisgIChkZWZpbmUgaGYgKGxhbWJkYSAoeCkgMCkpCisgIChkZWZpbmUgY29tcCAobWFrZS1j
b21wYXJhdG9yIHR0cCBlcXAgb3JwIGhmKSkKKyAgKHBhc3MtaWYtZXF1YWwgdHRwIChjb21wYXJh
dG9yLXR5cGUtdGVzdC1wcmVkaWNhdGUgY29tcCkpCisgIChwYXNzLWlmLWVxdWFsIGVxcCAoY29t
cGFyYXRvci1lcXVhbGl0eS1wcmVkaWNhdGUgY29tcCkpCisgIChwYXNzLWlmLWVxdWFsIG9ycCAo
Y29tcGFyYXRvci1vcmRlcmluZy1wcmVkaWNhdGUgY29tcCkpCisgIChwYXNzLWlmLWVxdWFsIGhm
IChjb21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY29tcCkpCisgICkgOyBlbmQgY29tcGFyYXRvcnMv
YWNjZXNzb3JzCisKKyAgKHdpdGgtdGVzdC1wcmVmaXggImNvbXBhcmF0b3JzL2FjY2Vzc29ycyIK
KyAgICAobGV0KiAoKHgxIDApCisgICAgICAgICAgICh4MiAwKQorICAgICAgICAgICAoeDMgMCkK
KyAgICAgICAgICAgKHg0IDApCisgICAgICAgICAgICh0dHAgKGxhbWJkYSAoeCkgKHNldCEgeDEg
MTExKSAjdCkpCisgICAgICAgICAgIChlcXAgKGxhbWJkYSAoeCB5KSAoc2V0ISB4MiAyMjIpICN0
KSkKKyAgICAgICAgICAgKG9ycCAobGFtYmRhICh4IHkpIChzZXQhIHgzIDMzMykgI3QpKQorICAg
ICAgICAgICAoaGYgKGxhbWJkYSAoeCkgKHNldCEgeDQgNDQ0KSAwKSkKKyAgICAgICAgICAgKGNv
bXAgKG1ha2UtY29tcGFyYXRvciB0dHAgZXFwIG9ycCBoZikpKQorICAgICAgKHBhc3MtaWYtZXF1
YWwgI3QgKGFuZCAoKGNvbXBhcmF0b3ItdHlwZS10ZXN0LXByZWRpY2F0ZSBjb21wKSB4MSkgICAo
PSB4MSAxMTEpKSkKKyAgICAgIChwYXNzLWlmLWVxdWFsICN0IChhbmQgKChjb21wYXJhdG9yLWVx
dWFsaXR5LXByZWRpY2F0ZSBjb21wKSB4MSB4MikgKD0geDIgMjIyKSkpCisgICAgICAocGFzcy1p
Zi1lcXVhbCAjdCAoYW5kICgoY29tcGFyYXRvci1vcmRlcmluZy1wcmVkaWNhdGUgY29tcCkgeDEg
eDMpICg9IHgzIDMzMykpKQorICAgICAgKHBhc3MtaWYtZXF1YWwgI3QgKGFuZCAoemVybz8gKChj
b21wYXJhdG9yLWhhc2gtZnVuY3Rpb24gY29tcCkgeDEpKSAoPSB4NCA0NDQpKSkpCisgICAgKSA7
IGVuZCBjb21wYXJhdG9ycy9hY2Nlc3NvcnMKKworICAod2l0aC10ZXN0LXByZWZpeCAiY29tcGFy
YXRvcnMvaW52b2tlcnMiCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0b3ItdGVzdC10eXBlIHJlYWwt
Y29tcGFyYXRvciAzKSkKKyAgICAocGFzcy1pZiAoY29tcGFyYXRvci10ZXN0LXR5cGUgcmVhbC1j
b21wYXJhdG9yIDMuMCkpCisgICAgKHBhc3MtaWYgKG5vdCAoY29tcGFyYXRvci10ZXN0LXR5cGUg
cmVhbC1jb21wYXJhdG9yICIzLjAiKSkpCisgICAgKHBhc3MtaWYgKGNvbXBhcmF0b3ItY2hlY2st
dHlwZSBib29sZWFuLWNvbXBhcmF0b3IgI3QpKQorICAgIChwYXNzLWlmLWV4Y2VwdGlvbiAiY2hl
Y2stdHlwZSIKKyAgICAgICAgJyhtaXNjLWVycm9yIC4gIl5Db21wYXJhdG9yIHR5cGUgY2hlY2sg
ZmFpbGVkIikKKyAgICAgIChjb21wYXJhdG9yLWNoZWNrLXR5cGUgYm9vbGVhbi1jb21wYXJhdG9y
ICd0KSkKKyAgICApIDsgZW5kIGNvbXBhcmF0b3JzL2ludm9rZXJzCisKKyAgKHdpdGgtdGVzdC1w
cmVmaXggImNvbXBhcmF0b3JzL2NvbXBhcmlzb24iCisgICAgKHBhc3MtaWYgKD0/IHJlYWwtY29t
cGFyYXRvciAyIDIuMCAyKSkKKyAgICAocGFzcy1pZiAoPD8gcmVhbC1jb21wYXJhdG9yIDIgMy4w
IDQpKQorICAgIChwYXNzLWlmICg+PyByZWFsLWNvbXBhcmF0b3IgNC4wIDMuMCAyKSkKKyAgICAo
cGFzcy1pZiAoPD0/IHJlYWwtY29tcGFyYXRvciAyLjAgMiAzLjApKQorICAgIChwYXNzLWlmICg+
PT8gcmVhbC1jb21wYXJhdG9yIDMgMy4wIDIpKQorICAgIChwYXNzLWlmIChub3QgKD0/IHJlYWwt
Y29tcGFyYXRvciAxIDIgMykpKQorICAgIChwYXNzLWlmIChub3QgKDw/IHJlYWwtY29tcGFyYXRv
ciAzIDEgMikpKQorICAgIChwYXNzLWlmIChub3QgKD4/IHJlYWwtY29tcGFyYXRvciAxIDIgMykp
KQorICAgIChwYXNzLWlmIChub3QgKDw9PyByZWFsLWNvbXBhcmF0b3IgNCAzIDMpKSkKKyAgICAo
cGFzcy1pZiAobm90ICg+PT8gcmVhbC1jb21wYXJhdG9yIDMgNCA0LjApKSkKKworICAgICkgOyBl
bmQgY29tcGFyYXRvcnMvY29tcGFyaXNvbgorCisgICh3aXRoLXRlc3QtcHJlZml4ICJjb21wYXJh
dG9ycy9zeW50YXgiCisgICAgKHBhc3MtaWYtZXF1YWwgJ2xlc3MgKGNvbXBhcmF0b3ItaWY8PT4g
cmVhbC1jb21wYXJhdG9yIDEgMiAnbGVzcyAnZXF1YWwgJ2dyZWF0ZXIpKQorICAgIChwYXNzLWlm
LWVxdWFsICdlcXVhbCAoY29tcGFyYXRvci1pZjw9PiByZWFsLWNvbXBhcmF0b3IgMSAxICdsZXNz
ICdlcXVhbCAnZ3JlYXRlcikpCisgICAgKHBhc3MtaWYtZXF1YWwgJ2dyZWF0ZXIgKGNvbXBhcmF0
b3ItaWY8PT4gcmVhbC1jb21wYXJhdG9yIDIgMSAnbGVzcyAnZXF1YWwgJ2dyZWF0ZXIpKQorICAg
IChwYXNzLWlmLWVxdWFsICdsZXNzIChjb21wYXJhdG9yLWlmPD0+ICIxIiAiMiIgJ2xlc3MgJ2Vx
dWFsICdncmVhdGVyKSkKKyAgICAocGFzcy1pZi1lcXVhbCAnZXF1YWwgKGNvbXBhcmF0b3ItaWY8
PT4gIjEiICIxIiAnbGVzcyAnZXF1YWwgJ2dyZWF0ZXIpKQorICAgIChwYXNzLWlmLWVxdWFsICdn
cmVhdGVyIChjb21wYXJhdG9yLWlmPD0+ICIyIiAiMSIgJ2xlc3MgJ2VxdWFsICdncmVhdGVyKSkK
KworICAgICkgOyBlbmQgY29tcGFyYXRvcnMvc3ludGF4CisKKyAgKHdpdGgtdGVzdC1wcmVmaXgg
ImNvbXBhcmF0b3JzL2JvdW5kLXNhbHQiCisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/ICho
YXNoLWJvdW5kKSkpCisgICAgKHBhc3MtaWYgKGV4YWN0LWludGVnZXI/IChoYXNoLXNhbHQpKSkK
KyAgICAocGFzcy1pZiAoPCAoaGFzaC1zYWx0KSAoaGFzaC1ib3VuZCkpKQorICAgICM7ICAocGFz
cy1pZi1lcXVhbCAoaGFzaC1zYWx0KSAoZmFrZS1zYWx0LWhhc2ggI3QpKSAgOyBubyBzdWNoIHRo
aW5nIGFzIGZha2Utc2FsdC1oYXNoCisgICAgKSA7IGVuZCBjb21wYXJhdG9ycy9ib3VuZC1zYWx0
CisgICkKLS0gCjIuMTkuMQoK
--00000000000027132d057f5ecbea--





Last modified: Mon, 25 Nov 2019 12:00:02 UTC

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