www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2025/06/17/08:47:40

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 55HCldDa405914
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 55HCldDa405914
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=MOlvPHQx
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5D16B39340E5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1750164458;
bh=DT9W7fCt4ML/NkBv/CIVTcG4z5+GKK1zwNtIjCKxLjo=;
h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:From;
b=MOlvPHQx8MzpXZ/R7hASftp5LGRfmYp+9fDXP0hoMGZCK/qMqoSN5td79+CgKwQ06
ZcOLHIPuix+avwqW1l9KqWJ26xROyJLwQGKVqXeOrTp5gl6/O1CDeOLdRQtq3ffFQH
5ln6kwdUBxn8FNl1v/ZNzDuZi3EvVa6bw0etVRFY=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B83F2385AC32
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B83F2385AC32
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750164411; cv=none;
b=LtVFcXns9sLajJMtoYpMwhd8G3XjC29tP8cj8QNmY8rfL1bJHjC1euEXb9GTyI7y9H1pPg7KkoZgtCQ42TSy1Xhlo6WoGicWEdEa/XdTsdOUMmtQmzd81TnjAtz3yKMjc1SBQIsCpncEmyWxnQwrtxo34O3oF05pbbc9aRlqX6E=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1750164411; c=relaxed/simple;
bh=ij7i9PHUQLmy8LFaeFQonBeC8nSi29rpwhfRFw60Ow4=;
h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature;
b=AdaW98nOX3zAUzD7JsyBrvbgdZrqBzA8/fNnhqfCOJZdVgOi5+guvlZQAt1CRRw8MIelNHQyAqDid5c9vpjniXsOiaQ/DUrMjkuWokqiz4NP4T8XHrnQro9ctJittHL2DHUo9dGHMfQWW4rYy+Tb5LTx+JH/clJlK9AfLm5sN7g=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B83F2385AC32
Date: Tue, 17 Jun 2025 21:46:47 +0900
To: cygwin AT cygwin DOT com
Subject: doxygen hangs when many call graphs are generated.
Message-Id: <20250617214647.ed6f64d44a665820a3fbd1b9@nifty.ne.jp>
X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32)
Mime-Version: 1.0
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Takashi Yano via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

This is a multi-part message in MIME format.

--Multipart=_Tue__17_Jun_2025_21_46_47_+0900_h=Nz7CH.Mgk+DlPb
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi,

I encountered a problem of doxygen when many call graphs are generated.

How to reproduce:
1) Make a empty directory.
2) Place two files (Doxyfile, x.c) attached in the directory.
3) Run doxygen in the directory.

It seems that this is a bug of cygwin1.dll and the cause is
a deadlock in newlib/libc/stdio/findfp.c:__fp_lock_all().

The following patch solves the issue, however, I am not sure
this is the right thing at all.

diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c
index 2cc549537..3de6b33fd 100644
--- a/newlib/libc/stdio/findfp.c
+++ b/newlib/libc/stdio/findfp.c
@@ -298,7 +298,9 @@ __fp_unlock (struct _reent * ptr __unused, FILE * fp)
 void
 __fp_lock_all (void)
 {
+#ifndef __CYGWIN__
   __sfp_lock_acquire ();
+#endif
   (void) _fwalk_sglue (NULL, __fp_lock, &__sglue);
 }
 
@@ -306,6 +308,8 @@ void
 __fp_unlock_all (void)
 {
   (void) _fwalk_sglue (NULL, __fp_unlock, &__sglue);
+#ifndef __CYGWIN__
   __sfp_lock_release ();
+#endif
 }
 #endif

Any suggenstions?

-- 
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>

--Multipart=_Tue__17_Jun_2025_21_46_47_+0900_h=Nz7CH.Mgk+DlPb
Content-Type: text/plain;
 name="Doxyfile"
Content-Disposition: attachment;
 filename="Doxyfile"
Content-Transfer-Encoding: base64

IyBEb3h5ZmlsZSAxLjEyLjANCg0KIyBUaGlzIGZpbGUgZGVzY3JpYmVzIHRoZSBzZXR0aW5ncyB0
byBiZSB1c2VkIGJ5IHRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbQ0KIyBEb3h5Z2VuICh3d3cuZG94
eWdlbi5vcmcpIGZvciBhIHByb2plY3QuDQojDQojIEFsbCB0ZXh0IGFmdGVyIGEgZG91YmxlIGhh
c2ggKCMjKSBpcyBjb25zaWRlcmVkIGEgY29tbWVudCBhbmQgaXMgcGxhY2VkIGluDQojIGZyb250
IG9mIHRoZSBUQUcgaXQgaXMgcHJlY2VkaW5nLg0KIw0KIyBBbGwgdGV4dCBhZnRlciBhIHNpbmds
ZSBoYXNoICgjKSBpcyBjb25zaWRlcmVkIGEgY29tbWVudCBhbmQgd2lsbCBiZSBpZ25vcmVkLg0K
IyBUaGUgZm9ybWF0IGlzOg0KIyBUQUcgPSB2YWx1ZSBbdmFsdWUsIC4uLl0NCiMgRm9yIGxpc3Rz
LCBpdGVtcyBjYW4gYWxzbyBiZSBhcHBlbmRlZCB1c2luZzoNCiMgVEFHICs9IHZhbHVlIFt2YWx1
ZSwgLi4uXQ0KIyBWYWx1ZXMgdGhhdCBjb250YWluIHNwYWNlcyBzaG91bGQgYmUgcGxhY2VkIGJl
dHdlZW4gcXVvdGVzIChcIiBcIikuDQojDQojIE5vdGU6DQojDQojIFVzZSBEb3h5Z2VuIHRvIGNv
bXBhcmUgdGhlIHVzZWQgY29uZmlndXJhdGlvbiBmaWxlIHdpdGggdGhlIHRlbXBsYXRlDQojIGNv
bmZpZ3VyYXRpb24gZmlsZToNCiMgZG94eWdlbiAteCBbY29uZmlnRmlsZV0NCiMgVXNlIERveHln
ZW4gdG8gY29tcGFyZSB0aGUgdXNlZCBjb25maWd1cmF0aW9uIGZpbGUgd2l0aCB0aGUgdGVtcGxh
dGUNCiMgY29uZmlndXJhdGlvbiBmaWxlIHdpdGhvdXQgcmVwbGFjaW5nIHRoZSBlbnZpcm9ubWVu
dCB2YXJpYWJsZXMgb3IgQ01ha2UgdHlwZQ0KIyByZXBsYWNlbWVudCB2YXJpYWJsZXM6DQojIGRv
eHlnZW4gLXhfbm9lbnYgW2NvbmZpZ0ZpbGVdDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUHJv
amVjdCByZWxhdGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
DQojIFRoaXMgdGFnIHNwZWNpZmllcyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsIGNoYXJhY3Rl
cnMgaW4gdGhlIGNvbmZpZ3VyYXRpb24NCiMgZmlsZSB0aGF0IGZvbGxvdy4gVGhlIGRlZmF1bHQg
aXMgVVRGLTggd2hpY2ggaXMgYWxzbyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsDQojIHRleHQg
YmVmb3JlIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoaXMgdGFnLiBEb3h5Z2VuIHVzZXMgbGli
aWNvbnYgKG9yIHRoZQ0KIyBpY29udiBidWlsdCBpbnRvIGxpYmMpIGZvciB0aGUgdHJhbnNjb2Rp
bmcuIFNlZQ0KIyBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252LyBmb3IgdGhl
IGxpc3Qgb2YgcG9zc2libGUgZW5jb2RpbmdzLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogVVRG
LTguDQoNCkRPWFlGSUxFX0VOQ09ESU5HICAgICAgPSBVVEYtOA0KDQojIFRoZSBQUk9KRUNUX05B
TUUgdGFnIGlzIGEgc2luZ2xlIHdvcmQgKG9yIGEgc2VxdWVuY2Ugb2Ygd29yZHMgc3Vycm91bmRl
ZCBieQ0KIyBkb3VibGUtcXVvdGVzLCB1bmxlc3MgeW91IGFyZSB1c2luZyBEb3h5d2l6YXJkKSB0
aGF0IHNob3VsZCBpZGVudGlmeSB0aGUNCiMgcHJvamVjdCBmb3Igd2hpY2ggdGhlIGRvY3VtZW50
YXRpb24gaXMgZ2VuZXJhdGVkLiBUaGlzIG5hbWUgaXMgdXNlZCBpbiB0aGUNCiMgdGl0bGUgb2Yg
bW9zdCBnZW5lcmF0ZWQgcGFnZXMgYW5kIGluIGEgZmV3IG90aGVyIHBsYWNlcy4NCiMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE15IFByb2plY3QuDQoNClBST0pFQ1RfTkFNRSAgICAgICAgICAgPSAi
TXkgUHJvamVjdCINCg0KIyBUaGUgUFJPSkVDVF9OVU1CRVIgdGFnIGNhbiBiZSB1c2VkIHRvIGVu
dGVyIGEgcHJvamVjdCBvciByZXZpc2lvbiBudW1iZXIuIFRoaXMNCiMgY291bGQgYmUgaGFuZHkg
Zm9yIGFyY2hpdmluZyB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gb3IgaWYgc29tZSB2ZXJz
aW9uDQojIGNvbnRyb2wgc3lzdGVtIGlzIHVzZWQuDQoNClBST0pFQ1RfTlVNQkVSICAgICAgICAg
PQ0KDQojIFVzaW5nIHRoZSBQUk9KRUNUX0JSSUVGIHRhZyBvbmUgY2FuIHByb3ZpZGUgYW4gb3B0
aW9uYWwgb25lIGxpbmUgZGVzY3JpcHRpb24NCiMgZm9yIGEgcHJvamVjdCB0aGF0IGFwcGVhcnMg
YXQgdGhlIHRvcCBvZiBlYWNoIHBhZ2UgYW5kIHNob3VsZCBnaXZlIHZpZXdlciBhDQojIHF1aWNr
IGlkZWEgYWJvdXQgdGhlIHB1cnBvc2Ugb2YgdGhlIHByb2plY3QuIEtlZXAgdGhlIGRlc2NyaXB0
aW9uIHNob3J0Lg0KDQpQUk9KRUNUX0JSSUVGICAgICAgICAgID0NCg0KIyBXaXRoIHRoZSBQUk9K
RUNUX0xPR08gdGFnIG9uZSBjYW4gc3BlY2lmeSBhIGxvZ28gb3IgYW4gaWNvbiB0aGF0IGlzIGlu
Y2x1ZGVkDQojIGluIHRoZSBkb2N1bWVudGF0aW9uLiBUaGUgbWF4aW11bSBoZWlnaHQgb2YgdGhl
IGxvZ28gc2hvdWxkIG5vdCBleGNlZWQgNTUNCiMgcGl4ZWxzIGFuZCB0aGUgbWF4aW11bSB3aWR0
aCBzaG91bGQgbm90IGV4Y2VlZCAyMDAgcGl4ZWxzLiBEb3h5Z2VuIHdpbGwgY29weQ0KIyB0aGUg
bG9nbyB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4NCg0KUFJPSkVDVF9MT0dPICAgICAgICAgICA9
DQoNCiMgV2l0aCB0aGUgUFJPSkVDVF9JQ09OIHRhZyBvbmUgY2FuIHNwZWNpZnkgYW4gaWNvbiB0
aGF0IGlzIGluY2x1ZGVkIGluIHRoZSB0YWJzDQojIHdoZW4gdGhlIEhUTUwgZG9jdW1lbnQgaXMg
c2hvd24uIERveHlnZW4gd2lsbCBjb3B5IHRoZSBsb2dvIHRvIHRoZSBvdXRwdXQNCiMgZGlyZWN0
b3J5Lg0KDQpQUk9KRUNUX0lDT04gICAgICAgICAgID0NCg0KIyBUaGUgT1VUUFVUX0RJUkVDVE9S
WSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAocmVsYXRpdmUgb3IgYWJzb2x1dGUpIHBhdGgN
CiMgaW50byB3aGljaCB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gd2lsbCBiZSB3cml0dGVu
LiBJZiBhIHJlbGF0aXZlIHBhdGggaXMNCiMgZW50ZXJlZCwgaXQgd2lsbCBiZSByZWxhdGl2ZSB0
byB0aGUgbG9jYXRpb24gd2hlcmUgRG94eWdlbiB3YXMgc3RhcnRlZC4gSWYNCiMgbGVmdCBibGFu
ayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSB1c2VkLg0KDQpPVVRQVVRfRElSRUNUT1JZ
ICAgICAgID0NCg0KIyBJZiB0aGUgQ1JFQVRFX1NVQkRJUlMgdGFnIGlzIHNldCB0byBZRVMgdGhl
biBEb3h5Z2VuIHdpbGwgY3JlYXRlIHVwIHRvIDQwOTYNCiMgc3ViLWRpcmVjdG9yaWVzIChpbiAy
IGxldmVscykgdW5kZXIgdGhlIG91dHB1dCBkaXJlY3Rvcnkgb2YgZWFjaCBvdXRwdXQgZm9ybWF0
DQojIGFuZCB3aWxsIGRpc3RyaWJ1dGUgdGhlIGdlbmVyYXRlZCBmaWxlcyBvdmVyIHRoZXNlIGRp
cmVjdG9yaWVzLiBFbmFibGluZyB0aGlzDQojIG9wdGlvbiBjYW4gYmUgdXNlZnVsIHdoZW4gZmVl
ZGluZyBEb3h5Z2VuIGEgaHVnZSBhbW91bnQgb2Ygc291cmNlIGZpbGVzLCB3aGVyZQ0KIyBwdXR0
aW5nIGFsbCBnZW5lcmF0ZWQgZmlsZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHdvdWxkIG90aGVy
d2lzZSBjYXVzZXMNCiMgcGVyZm9ybWFuY2UgcHJvYmxlbXMgZm9yIHRoZSBmaWxlIHN5c3RlbS4g
QWRhcHQgQ1JFQVRFX1NVQkRJUlNfTEVWRUwgdG8NCiMgY29udHJvbCB0aGUgbnVtYmVyIG9mIHN1
Yi1kaXJlY3Rvcmllcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpDUkVBVEVfU1VC
RElSUyAgICAgICAgID0gTk8NCg0KIyBDb250cm9scyB0aGUgbnVtYmVyIG9mIHN1Yi1kaXJlY3Rv
cmllcyB0aGF0IHdpbGwgYmUgY3JlYXRlZCB3aGVuDQojIENSRUFURV9TVUJESVJTIHRhZyBpcyBz
ZXQgdG8gWUVTLiBMZXZlbCAwIHJlcHJlc2VudHMgMTYgZGlyZWN0b3JpZXMsIGFuZCBldmVyeQ0K
IyBsZXZlbCBpbmNyZW1lbnQgZG91YmxlcyB0aGUgbnVtYmVyIG9mIGRpcmVjdG9yaWVzLCByZXN1
bHRpbmcgaW4gNDA5Ng0KIyBkaXJlY3RvcmllcyBhdCBsZXZlbCA4IHdoaWNoIGlzIHRoZSBkZWZh
dWx0IGFuZCBhbHNvIHRoZSBtYXhpbXVtIHZhbHVlLiBUaGUNCiMgc3ViLWRpcmVjdG9yaWVzIGFy
ZSBvcmdhbml6ZWQgaW4gMiBsZXZlbHMsIHRoZSBmaXJzdCBsZXZlbCBhbHdheXMgaGFzIGEgZml4
ZWQNCiMgbnVtYmVyIG9mIDE2IGRpcmVjdG9yaWVzLg0KIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhp
bXVtIHZhbHVlOiA4LCBkZWZhdWx0IHZhbHVlOiA4Lg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgQ1JFQVRFX1NVQkRJUlMgaXMgc2V0IHRvIFlFUy4NCg0KQ1JFQVRFX1NVQkRJUlNf
TEVWRUwgICA9IDgNCg0KIyBJZiB0aGUgQUxMT1dfVU5JQ09ERV9OQU1FUyB0YWcgaXMgc2V0IHRv
IFlFUywgRG94eWdlbiB3aWxsIGFsbG93IG5vbi1BU0NJSQ0KIyBjaGFyYWN0ZXJzIHRvIGFwcGVh
ciBpbiB0aGUgbmFtZXMgb2YgZ2VuZXJhdGVkIGZpbGVzLiBJZiBzZXQgdG8gTk8sIG5vbi1BU0NJ
SQ0KIyBjaGFyYWN0ZXJzIHdpbGwgYmUgZXNjYXBlZCwgZm9yIGV4YW1wbGUgX3hFM194ODFfeDg0
IHdpbGwgYmUgdXNlZCBmb3IgVW5pY29kZQ0KIyBVKzMwNDQuDQojIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4NCg0KQUxMT1dfVU5JQ09ERV9OQU1FUyAgICA9IE5PDQoNCiMgVGhlIE9VVFBVVF9M
QU5HVUFHRSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBsYW5ndWFnZSBpbiB3aGljaCBhbGwN
CiMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgRG94eWdlbiBpcyB3cml0dGVuLiBEb3h5Z2Vu
IHdpbGwgdXNlIHRoaXMNCiMgaW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgYWxsIGNvbnN0YW50IG91
dHB1dCBpbiB0aGUgcHJvcGVyIGxhbmd1YWdlLg0KIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBBZnJp
a2FhbnMsIEFyYWJpYywgQXJtZW5pYW4sIEJyYXppbGlhbiwgQnVsZ2FyaWFuLA0KIyBDYXRhbGFu
LCBDaGluZXNlLCBDaGluZXNlLVRyYWRpdGlvbmFsLCBDcm9hdGlhbiwgQ3plY2gsIERhbmlzaCwg
RHV0Y2gsIEVuZ2xpc2gNCiMgKFVuaXRlZCBTdGF0ZXMpLCBFc3BlcmFudG8sIEZhcnNpIChQZXJz
aWFuKSwgRmlubmlzaCwgRnJlbmNoLCBHZXJtYW4sIEdyZWVrLA0KIyBIaW5kaSwgSHVuZ2FyaWFu
LCBJbmRvbmVzaWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2UtZW4gKEphcGFuZXNlIHdp
dGgNCiMgRW5nbGlzaCBtZXNzYWdlcyksIEtvcmVhbiwgS29yZWFuLWVuIChLb3JlYW4gd2l0aCBF
bmdsaXNoIG1lc3NhZ2VzKSwgTGF0dmlhbiwNCiMgTGl0aHVhbmlhbiwgTWFjZWRvbmlhbiwgTm9y
d2VnaWFuLCBQZXJzaWFuIChGYXJzaSksIFBvbGlzaCwgUG9ydHVndWVzZSwNCiMgUm9tYW5pYW4s
IFJ1c3NpYW4sIFNlcmJpYW4sIFNlcmJpYW4tQ3lyaWxsaWMsIFNsb3ZhaywgU2xvdmVuZSwgU3Bh
bmlzaCwNCiMgU3dlZGlzaCwgVHVya2lzaCwgVWtyYWluaWFuIGFuZCBWaWV0bmFtZXNlLg0KIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogRW5nbGlzaC4NCg0KT1VUUFVUX0xBTkdVQUdFICAgICAgICA9
IEVuZ2xpc2gNCg0KIyBJZiB0aGUgQlJJRUZfTUVNQkVSX0RFU0MgdGFnIGlzIHNldCB0byBZRVMs
IERveHlnZW4gd2lsbCBpbmNsdWRlIGJyaWVmIG1lbWJlcg0KIyBkZXNjcmlwdGlvbnMgYWZ0ZXIg
dGhlIG1lbWJlcnMgdGhhdCBhcmUgbGlzdGVkIGluIHRoZSBmaWxlIGFuZCBjbGFzcw0KIyBkb2N1
bWVudGF0aW9uIChzaW1pbGFyIHRvIEphdmFkb2MpLiBTZXQgdG8gTk8gdG8gZGlzYWJsZSB0aGlz
Lg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0KDQpCUklFRl9NRU1CRVJfREVTQyAgICAg
ID0gWUVTDQoNCiMgSWYgdGhlIFJFUEVBVF9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdl
biB3aWxsIHByZXBlbmQgdGhlIGJyaWVmDQojIGRlc2NyaXB0aW9uIG9mIGEgbWVtYmVyIG9yIGZ1
bmN0aW9uIGJlZm9yZSB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24NCiMNCiMgTm90ZTogSWYgYm90
aCBISURFX1VORE9DX01FTUJFUlMgYW5kIEJSSUVGX01FTUJFUl9ERVNDIGFyZSBzZXQgdG8gTk8s
IHRoZQ0KIyBicmllZiBkZXNjcmlwdGlvbnMgd2lsbCBiZSBjb21wbGV0ZWx5IHN1cHByZXNzZWQu
DQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNClJFUEVBVF9CUklFRiAgICAgICAgICAg
PSBZRVMNCg0KIyBUaGlzIHRhZyBpbXBsZW1lbnRzIGEgcXVhc2ktaW50ZWxsaWdlbnQgYnJpZWYg
ZGVzY3JpcHRpb24gYWJicmV2aWF0b3IgdGhhdCBpcw0KIyB1c2VkIHRvIGZvcm0gdGhlIHRleHQg
aW4gdmFyaW91cyBsaXN0aW5ncy4gRWFjaCBzdHJpbmcgaW4gdGhpcyBsaXN0LCBpZiBmb3VuZA0K
IyBhcyB0aGUgbGVhZGluZyB0ZXh0IG9mIHRoZSBicmllZiBkZXNjcmlwdGlvbiwgd2lsbCBiZSBz
dHJpcHBlZCBmcm9tIHRoZSB0ZXh0DQojIGFuZCB0aGUgcmVzdWx0LCBhZnRlciBwcm9jZXNzaW5n
IHRoZSB3aG9sZSBsaXN0LCBpcyB1c2VkIGFzIHRoZSBhbm5vdGF0ZWQNCiMgdGV4dC4gT3RoZXJ3
aXNlLCB0aGUgYnJpZWYgZGVzY3JpcHRpb24gaXMgdXNlZCBhcy1pcy4gSWYgbGVmdCBibGFuaywg
dGhlDQojIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHVzZWQgKCRuYW1lIGlzIGF1dG9tYXRpY2FsbHkg
cmVwbGFjZWQgd2l0aCB0aGUgbmFtZSBvZg0KIyB0aGUgZW50aXR5KTpUaGUgJG5hbWUgY2xhc3Ms
IFRoZSAkbmFtZSB3aWRnZXQsIFRoZSAkbmFtZSBmaWxlLCBpcywgcHJvdmlkZXMsDQojIHNwZWNp
ZmllcywgY29udGFpbnMsIHJlcHJlc2VudHMsIGEsIGFuIGFuZCB0aGUuDQoNCkFCQlJFVklBVEVf
QlJJRUYgICAgICAgPSAiVGhlICRuYW1lIGNsYXNzIiBcDQogICAgICAgICAgICAgICAgICAgICAg
ICAgIlRoZSAkbmFtZSB3aWRnZXQiIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlICRu
YW1lIGZpbGUiIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICBpcyBcDQogICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvdmlkZXMgXA0KICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmll
cyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnMgXA0KICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcHJlc2VudHMgXA0KICAgICAgICAgICAgICAgICAgICAgICAgIGEgXA0KICAg
ICAgICAgICAgICAgICAgICAgICAgIGFuIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGUN
Cg0KIyBJZiB0aGUgQUxXQVlTX0RFVEFJTEVEX1NFQyBhbmQgUkVQRUFUX0JSSUVGIHRhZ3MgYXJl
IGJvdGggc2V0IHRvIFlFUyB0aGVuDQojIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGRldGFpbGVk
IHNlY3Rpb24gZXZlbiBpZiB0aGVyZSBpcyBvbmx5IGEgYnJpZWYNCiMgZGVzY3JpcHRpb24uDQoj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KQUxXQVlTX0RFVEFJTEVEX1NFQyAgICA9IE5P
DQoNCiMgSWYgdGhlIElOTElORV9JTkhFUklURURfTUVNQiB0YWcgaXMgc2V0IHRvIFlFUywgRG94
eWdlbiB3aWxsIHNob3cgYWxsDQojIGluaGVyaXRlZCBtZW1iZXJzIG9mIGEgY2xhc3MgaW4gdGhl
IGRvY3VtZW50YXRpb24gb2YgdGhhdCBjbGFzcyBhcyBpZiB0aG9zZQ0KIyBtZW1iZXJzIHdlcmUg
b3JkaW5hcnkgY2xhc3MgbWVtYmVycy4gQ29uc3RydWN0b3JzLCBkZXN0cnVjdG9ycyBhbmQgYXNz
aWdubWVudA0KIyBvcGVyYXRvcnMgb2YgdGhlIGJhc2UgY2xhc3NlcyB3aWxsIG5vdCBiZSBzaG93
bi4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpJTkxJTkVfSU5IRVJJVEVEX01FTUIg
ID0gTk8NCg0KIyBJZiB0aGUgRlVMTF9QQVRIX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5
Z2VuIHdpbGwgcHJlcGVuZCB0aGUgZnVsbCBwYXRoDQojIGJlZm9yZSBmaWxlcyBuYW1lIGluIHRo
ZSBmaWxlIGxpc3QgYW5kIGluIHRoZSBoZWFkZXIgZmlsZXMuIElmIHNldCB0byBOTyB0aGUNCiMg
c2hvcnRlc3QgcGF0aCB0aGF0IG1ha2VzIHRoZSBmaWxlIG5hbWUgdW5pcXVlIHdpbGwgYmUgdXNl
ZA0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0KDQpGVUxMX1BBVEhfTkFNRVMgICAgICAg
ID0gWUVTDQoNCiMgVGhlIFNUUklQX0ZST01fUEFUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc3RyaXAg
YSB1c2VyLWRlZmluZWQgcGFydCBvZiB0aGUgcGF0aC4NCiMgU3RyaXBwaW5nIGlzIG9ubHkgZG9u
ZSBpZiBvbmUgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmdzIG1hdGNoZXMgdGhlIGxlZnQtaGFuZA0K
IyBwYXJ0IG9mIHRoZSBwYXRoLiBUaGUgdGFnIGNhbiBiZSB1c2VkIHRvIHNob3cgcmVsYXRpdmUg
cGF0aHMgaW4gdGhlIGZpbGUgbGlzdC4NCiMgSWYgbGVmdCBibGFuayB0aGUgZGlyZWN0b3J5IGZy
b20gd2hpY2ggRG94eWdlbiBpcyBydW4gaXMgdXNlZCBhcyB0aGUgcGF0aCB0bw0KIyBzdHJpcC4N
CiMNCiMgTm90ZSB0aGF0IHlvdSBjYW4gc3BlY2lmeSBhYnNvbHV0ZSBwYXRocyBoZXJlLCBidXQg
YWxzbyByZWxhdGl2ZSBwYXRocywgd2hpY2gNCiMgd2lsbCBiZSByZWxhdGl2ZSBmcm9tIHRoZSBk
aXJlY3Rvcnkgd2hlcmUgRG94eWdlbiBpcyBzdGFydGVkLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgRlVMTF9QQVRIX05BTUVTIGlzIHNldCB0byBZRVMuDQoNClNUUklQX0ZST01f
UEFUSCAgICAgICAgPQ0KDQojIFRoZSBTVFJJUF9GUk9NX0lOQ19QQVRIIHRhZyBjYW4gYmUgdXNl
ZCB0byBzdHJpcCBhIHVzZXItZGVmaW5lZCBwYXJ0IG9mIHRoZQ0KIyBwYXRoIG1lbnRpb25lZCBp
biB0aGUgZG9jdW1lbnRhdGlvbiBvZiBhIGNsYXNzLCB3aGljaCB0ZWxscyB0aGUgcmVhZGVyIHdo
aWNoDQojIGhlYWRlciBmaWxlIHRvIGluY2x1ZGUgaW4gb3JkZXIgdG8gdXNlIGEgY2xhc3MuIElm
IGxlZnQgYmxhbmsgb25seSB0aGUgbmFtZSBvZg0KIyB0aGUgaGVhZGVyIGZpbGUgY29udGFpbmlu
ZyB0aGUgY2xhc3MgZGVmaW5pdGlvbiBpcyB1c2VkLiBPdGhlcndpc2Ugb25lIHNob3VsZA0KIyBz
cGVjaWZ5IHRoZSBsaXN0IG9mIGluY2x1ZGUgcGF0aHMgdGhhdCBhcmUgbm9ybWFsbHkgcGFzc2Vk
IHRvIHRoZSBjb21waWxlcg0KIyB1c2luZyB0aGUgLUkgZmxhZy4NCg0KU1RSSVBfRlJPTV9JTkNf
UEFUSCAgICA9DQoNCiMgSWYgdGhlIFNIT1JUX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5
Z2VuIHdpbGwgZ2VuZXJhdGUgbXVjaCBzaG9ydGVyIChidXQNCiMgbGVzcyByZWFkYWJsZSkgZmls
ZSBuYW1lcy4gVGhpcyBjYW4gYmUgdXNlZnVsIGlzIHlvdXIgZmlsZSBzeXN0ZW1zIGRvZXNuJ3QN
CiMgc3VwcG9ydCBsb25nIG5hbWVzIGxpa2Ugb24gRE9TLCBNYWMsIG9yIENELVJPTS4NCiMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpTSE9SVF9OQU1FUyAgICAgICAgICAgID0gTk8NCg0K
IyBJZiB0aGUgSkFWQURPQ19BVVRPQlJJRUYgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2Vu
IHdpbGwgaW50ZXJwcmV0IHRoZQ0KIyBmaXJzdCBsaW5lICh1bnRpbCB0aGUgZmlyc3QgZG90KSBv
ZiBhIEphdmFkb2Mtc3R5bGUgY29tbWVudCBhcyB0aGUgYnJpZWYNCiMgZGVzY3JpcHRpb24uIElm
IHNldCB0byBOTywgdGhlIEphdmFkb2Mtc3R5bGUgd2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3Vs
YXIgUXQtDQojIHN0eWxlIGNvbW1lbnRzICh0aHVzIHJlcXVpcmluZyBhbiBleHBsaWNpdCBAYnJp
ZWYgY29tbWFuZCBmb3IgYSBicmllZg0KIyBkZXNjcmlwdGlvbi4pDQojIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4NCg0KSkFWQURPQ19BVVRPQlJJRUYgICAgICA9IE5PDQoNCiMgSWYgdGhlIEpB
VkFET0NfQkFOTkVSIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIGludGVycHJl
dCBhIGxpbmUNCiMgc3VjaCBhcw0KIyAvKioqKioqKioqKioqKioqDQojIGFzIGJlaW5nIHRoZSBi
ZWdpbm5pbmcgb2YgYSBKYXZhZG9jLXN0eWxlIGNvbW1lbnQgImJhbm5lciIuIElmIHNldCB0byBO
TywgdGhlDQojIEphdmFkb2Mtc3R5bGUgd2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgY29t
bWVudHMgYW5kIGl0IHdpbGwgbm90IGJlDQojIGludGVycHJldGVkIGJ5IERveHlnZW4uDQojIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KSkFWQURPQ19CQU5ORVIgICAgICAgICA9IE5PDQoN
CiMgSWYgdGhlIFFUX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2ls
bCBpbnRlcnByZXQgdGhlIGZpcnN0DQojIGxpbmUgKHVudGlsIHRoZSBmaXJzdCBkb3QpIG9mIGEg
UXQtc3R5bGUgY29tbWVudCBhcyB0aGUgYnJpZWYgZGVzY3JpcHRpb24uIElmDQojIHNldCB0byBO
TywgdGhlIFF0LXN0eWxlIHdpbGwgYmVoYXZlIGp1c3QgbGlrZSByZWd1bGFyIFF0LXN0eWxlIGNv
bW1lbnRzICh0aHVzDQojIHJlcXVpcmluZyBhbiBleHBsaWNpdCBcYnJpZWYgY29tbWFuZCBmb3Ig
YSBicmllZiBkZXNjcmlwdGlvbi4pDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KUVRf
QVVUT0JSSUVGICAgICAgICAgICA9IE5PDQoNCiMgVGhlIE1VTFRJTElORV9DUFBfSVNfQlJJRUYg
dGFnIGNhbiBiZSBzZXQgdG8gWUVTIHRvIG1ha2UgRG94eWdlbiB0cmVhdCBhDQojIG11bHRpLWxp
bmUgQysrIHNwZWNpYWwgY29tbWVudCBibG9jayAoaS5lLiBhIGJsb2NrIG9mIC8vISBvciAvLy8g
Y29tbWVudHMpIGFzDQojIGEgYnJpZWYgZGVzY3JpcHRpb24uIFRoaXMgdXNlZCB0byBiZSB0aGUg
ZGVmYXVsdCBiZWhhdmlvci4gVGhlIG5ldyBkZWZhdWx0IGlzDQojIHRvIHRyZWF0IGEgbXVsdGkt
bGluZSBDKysgY29tbWVudCBibG9jayBhcyBhIGRldGFpbGVkIGRlc2NyaXB0aW9uLiBTZXQgdGhp
cw0KIyB0YWcgdG8gWUVTIGlmIHlvdSBwcmVmZXIgdGhlIG9sZCBiZWhhdmlvciBpbnN0ZWFkLg0K
Iw0KIyBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIHRhZyB0byBZRVMgYWxzbyBtZWFucyB0aGF0IHJh
dGlvbmFsIHJvc2UgY29tbWVudHMgYXJlDQojIG5vdCByZWNvZ25pemVkIGFueSBtb3JlLg0KIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCk1VTFRJTElORV9DUFBfSVNfQlJJRUYgPSBOTw0K
DQojIEJ5IGRlZmF1bHQgUHl0aG9uIGRvY3N0cmluZ3MgYXJlIGRpc3BsYXllZCBhcyBwcmVmb3Jt
YXR0ZWQgdGV4dCBhbmQgRG94eWdlbidzDQojIHNwZWNpYWwgY29tbWFuZHMgY2Fubm90IGJlIHVz
ZWQuIEJ5IHNldHRpbmcgUFlUSE9OX0RPQ1NUUklORyB0byBOTyB0aGUNCiMgRG94eWdlbidzIHNw
ZWNpYWwgY29tbWFuZHMgY2FuIGJlIHVzZWQgYW5kIHRoZSBjb250ZW50cyBvZiB0aGUgZG9jc3Ry
aW5nDQojIGRvY3VtZW50YXRpb24gYmxvY2tzIGlzIHNob3duIGFzIERveHlnZW4gZG9jdW1lbnRh
dGlvbi4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KUFlUSE9OX0RPQ1NUUklORyAg
ICAgICA9IFlFUw0KDQojIElmIHRoZSBJTkhFUklUX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhl
biBhbiB1bmRvY3VtZW50ZWQgbWVtYmVyIGluaGVyaXRzIHRoZQ0KIyBkb2N1bWVudGF0aW9uIGZy
b20gYW55IGRvY3VtZW50ZWQgbWVtYmVyIHRoYXQgaXQgcmUtaW1wbGVtZW50cy4NCiMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KSU5IRVJJVF9ET0NTICAgICAgICAgICA9IFlFUw0KDQoj
IElmIHRoZSBTRVBBUkFURV9NRU1CRVJfUEFHRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5
Z2VuIHdpbGwgcHJvZHVjZSBhIG5ldw0KIyBwYWdlIGZvciBlYWNoIG1lbWJlci4gSWYgc2V0IHRv
IE5PLCB0aGUgZG9jdW1lbnRhdGlvbiBvZiBhIG1lbWJlciB3aWxsIGJlIHBhcnQNCiMgb2YgdGhl
IGZpbGUvY2xhc3MvbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgaXQuDQojIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBOTy4NCg0KU0VQQVJBVEVfTUVNQkVSX1BBR0VTICA9IE5PDQoNCiMgVGhlIFRBQl9T
SVpFIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG51bWJlciBvZiBzcGFjZXMgaW4gYSB0YWIu
IERveHlnZW4NCiMgdXNlcyB0aGlzIHZhbHVlIHRvIHJlcGxhY2UgdGFicyBieSBzcGFjZXMgaW4g
Y29kZSBmcmFnbWVudHMuDQojIE1pbmltdW0gdmFsdWU6IDEsIG1heGltdW0gdmFsdWU6IDE2LCBk
ZWZhdWx0IHZhbHVlOiA0Lg0KDQpUQUJfU0laRSAgICAgICAgICAgICAgID0gNA0KDQojIFRoaXMg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBudW1iZXIgb2YgYWxpYXNlcyB0aGF0IGFjdCBh
cyBjb21tYW5kcyBpbg0KIyB0aGUgZG9jdW1lbnRhdGlvbi4gQW4gYWxpYXMgaGFzIHRoZSBmb3Jt
Og0KIyBuYW1lPXZhbHVlDQojIEZvciBleGFtcGxlIGFkZGluZw0KIyAic2lkZWVmZmVjdD1AcGFy
IFNpZGUgRWZmZWN0czpeXiINCiMgd2lsbCBhbGxvdyB5b3UgdG8gcHV0IHRoZSBjb21tYW5kIFxz
aWRlZWZmZWN0IChvciBAc2lkZWVmZmVjdCkgaW4gdGhlDQojIGRvY3VtZW50YXRpb24sIHdoaWNo
IHdpbGwgcmVzdWx0IGluIGEgdXNlci1kZWZpbmVkIHBhcmFncmFwaCB3aXRoIGhlYWRpbmcNCiMg
IlNpZGUgRWZmZWN0czoiLiBOb3RlIHRoYXQgeW91IGNhbm5vdCBwdXQgXG4ncyBpbiB0aGUgdmFs
dWUgcGFydCBvZiBhbiBhbGlhcw0KIyB0byBpbnNlcnQgbmV3bGluZXMgKGluIHRoZSByZXN1bHRp
bmcgb3V0cHV0KS4gWW91IGNhbiBwdXQgXl4gaW4gdGhlIHZhbHVlIHBhcnQNCiMgb2YgYW4gYWxp
YXMgdG8gaW5zZXJ0IGEgbmV3bGluZSBhcyBpZiBhIHBoeXNpY2FsIG5ld2xpbmUgd2FzIGluIHRo
ZSBvcmlnaW5hbA0KIyBmaWxlLiBXaGVuIHlvdSBuZWVkIGEgbGl0ZXJhbCB7IG9yIH0gb3IgLCBp
biB0aGUgdmFsdWUgcGFydCBvZiBhbiBhbGlhcyB5b3UNCiMgaGF2ZSB0byBlc2NhcGUgdGhlbSBi
eSBtZWFucyBvZiBhIGJhY2tzbGFzaCAoXCksIHRoaXMgY2FuIGxlYWQgdG8gY29uZmxpY3RzDQoj
IHdpdGggdGhlIGNvbW1hbmRzIFx7IGFuZCBcfSBmb3IgdGhlc2UgaXQgaXMgYWR2aXNlZCB0byB1
c2UgdGhlIHZlcnNpb24gQHsgYW5kDQojIEB9IG9yIHVzZSBhIGRvdWJsZSBlc2NhcGUgKFxceyBh
bmQgXFx9KQ0KDQpBTElBU0VTICAgICAgICAgICAgICAgID0NCg0KIyBTZXQgdGhlIE9QVElNSVpF
X09VVFBVVF9GT1JfQyB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBDIHNv
dXJjZXMNCiMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMg
bW9yZSB0YWlsb3JlZCBmb3IgQy4gRm9yDQojIGluc3RhbmNlLCBzb21lIG9mIHRoZSBuYW1lcyB0
aGF0IGFyZSB1c2VkIHdpbGwgYmUgZGlmZmVyZW50LiBUaGUgbGlzdCBvZiBhbGwNCiMgbWVtYmVy
cyB3aWxsIGJlIG9taXR0ZWQsIGV0Yy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpP
UFRJTUlaRV9PVVRQVVRfRk9SX0MgID0gTk8NCg0KIyBTZXQgdGhlIE9QVElNSVpFX09VVFBVVF9K
QVZBIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEphdmEgb3INCiMgUHl0
aG9uIHNvdXJjZXMgb25seS4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQg
aXMgbW9yZSB0YWlsb3JlZA0KIyBmb3IgdGhhdCBsYW5ndWFnZS4gRm9yIGluc3RhbmNlLCBuYW1l
c3BhY2VzIHdpbGwgYmUgcHJlc2VudGVkIGFzIHBhY2thZ2VzLA0KIyBxdWFsaWZpZWQgc2NvcGVz
IHdpbGwgbG9vayBkaWZmZXJlbnQsIGV0Yy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0K
DQpPUFRJTUlaRV9PVVRQVVRfSkFWQSAgID0gTk8NCg0KIyBTZXQgdGhlIE9QVElNSVpFX0ZPUl9G
T1JUUkFOIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIEZvcnRyYW4NCiMg
c291cmNlcy4gRG94eWdlbiB3aWxsIHRoZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgdGFpbG9y
ZWQgZm9yIEZvcnRyYW4uDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KT1BUSU1JWkVf
Rk9SX0ZPUlRSQU4gICA9IE5PDQoNCiMgU2V0IHRoZSBPUFRJTUlaRV9PVVRQVVRfVkhETCB0YWcg
dG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBWSERMDQojIHNvdXJjZXMuIERveHln
ZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIHRhaWxvcmVkIGZvciBWSERMLg0K
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCk9QVElNSVpFX09VVFBVVF9WSERMICAgPSBO
Tw0KDQojIFNldCB0aGUgT1BUSU1JWkVfT1VUUFVUX1NMSUNFIHRhZyB0byBZRVMgaWYgeW91ciBw
cm9qZWN0IGNvbnNpc3RzIG9mIFNsaWNlDQojIHNvdXJjZXMgb25seS4gRG94eWdlbiB3aWxsIHRo
ZW4gZ2VuZXJhdGUgb3V0cHV0IHRoYXQgaXMgbW9yZSB0YWlsb3JlZCBmb3IgdGhhdA0KIyBsYW5n
dWFnZS4gRm9yIGluc3RhbmNlLCBuYW1lc3BhY2VzIHdpbGwgYmUgcHJlc2VudGVkIGFzIG1vZHVs
ZXMsIHR5cGVzIHdpbGwgYmUNCiMgc2VwYXJhdGVkIGludG8gbW9yZSBncm91cHMsIGV0Yy4NCiMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpPUFRJTUlaRV9PVVRQVVRfU0xJQ0UgID0gTk8N
Cg0KIyBEb3h5Z2VuIHNlbGVjdHMgdGhlIHBhcnNlciB0byB1c2UgZGVwZW5kaW5nIG9uIHRoZSBl
eHRlbnNpb24gb2YgdGhlIGZpbGVzIGl0DQojIHBhcnNlcy4gV2l0aCB0aGlzIHRhZyB5b3UgY2Fu
IGFzc2lnbiB3aGljaCBwYXJzZXIgdG8gdXNlIGZvciBhIGdpdmVuDQojIGV4dGVuc2lvbi4gRG94
eWdlbiBoYXMgYSBidWlsdC1pbiBtYXBwaW5nLCBidXQgeW91IGNhbiBvdmVycmlkZSBvciBleHRl
bmQgaXQNCiMgdXNpbmcgdGhpcyB0YWcuIFRoZSBmb3JtYXQgaXMgZXh0PWxhbmd1YWdlLCB3aGVy
ZSBleHQgaXMgYSBmaWxlIGV4dGVuc2lvbiwgYW5kDQojIGxhbmd1YWdlIGlzIG9uZSBvZiB0aGUg
cGFyc2VycyBzdXBwb3J0ZWQgYnkgRG94eWdlbjogSURMLCBKYXZhLCBKYXZhU2NyaXB0LA0KIyBD
c2hhcnAgKEMjKSwgQywgQysrLCBMZXgsIEQsIFBIUCwgbWQgKE1hcmtkb3duKSwgT2JqZWN0aXZl
LUMsIFB5dGhvbiwgU2xpY2UsDQojIFZIREwsIEZvcnRyYW4gKGZpeGVkIGZvcm1hdCBGb3J0cmFu
OiBGb3J0cmFuRml4ZWQsIGZyZWUgZm9ybWF0dGVkIEZvcnRyYW46DQojIEZvcnRyYW5GcmVlLCB1
bmtub3duIGZvcm1hdHRlZCBGb3J0cmFuOiBGb3J0cmFuLiBJbiB0aGUgbGF0ZXIgY2FzZSB0aGUg
cGFyc2VyDQojIHRyaWVzIHRvIGd1ZXNzIHdoZXRoZXIgdGhlIGNvZGUgaXMgZml4ZWQgb3IgZnJl
ZSBmb3JtYXR0ZWQgY29kZSwgdGhpcyBpcyB0aGUNCiMgZGVmYXVsdCBmb3IgRm9ydHJhbiB0eXBl
IGZpbGVzKS4gRm9yIGluc3RhbmNlIHRvIG1ha2UgRG94eWdlbiB0cmVhdCAuaW5jIGZpbGVzDQoj
IGFzIEZvcnRyYW4gZmlsZXMgKGRlZmF1bHQgaXMgUEhQKSwgYW5kIC5mIGZpbGVzIGFzIEMgKGRl
ZmF1bHQgaXMgRm9ydHJhbiksDQojIHVzZTogaW5jPUZvcnRyYW4gZj1DLg0KIw0KIyBOb3RlOiBG
b3IgZmlsZXMgd2l0aG91dCBleHRlbnNpb24geW91IGNhbiB1c2Ugbm9fZXh0ZW5zaW9uIGFzIGEg
cGxhY2Vob2xkZXIuDQojDQojIE5vdGUgdGhhdCBmb3IgY3VzdG9tIGV4dGVuc2lvbnMgeW91IGFs
c28gbmVlZCB0byBzZXQgRklMRV9QQVRURVJOUyBvdGhlcndpc2UNCiMgdGhlIGZpbGVzIGFyZSBu
b3QgcmVhZCBieSBEb3h5Z2VuLiBXaGVuIHNwZWNpZnlpbmcgbm9fZXh0ZW5zaW9uIHlvdSBzaG91
bGQgYWRkDQojICogdG8gdGhlIEZJTEVfUEFUVEVSTlMuDQojDQojIE5vdGUgc2VlIGFsc28gdGhl
IGxpc3Qgb2YgZGVmYXVsdCBmaWxlIGV4dGVuc2lvbiBtYXBwaW5ncy4NCg0KRVhURU5TSU9OX01B
UFBJTkcgICAgICA9DQoNCiMgSWYgdGhlIE1BUktET1dOX1NVUFBPUlQgdGFnIGlzIGVuYWJsZWQg
dGhlbiBEb3h5Z2VuIHByZS1wcm9jZXNzZXMgYWxsIGNvbW1lbnRzDQojIGFjY29yZGluZyB0byB0
aGUgTWFya2Rvd24gZm9ybWF0LCB3aGljaCBhbGxvd3MgZm9yIG1vcmUgcmVhZGFibGUNCiMgZG9j
dW1lbnRhdGlvbi4gU2VlIGh0dHBzOi8vZGFyaW5nZmlyZWJhbGwubmV0L3Byb2plY3RzL21hcmtk
b3duLyBmb3IgZGV0YWlscy4NCiMgVGhlIG91dHB1dCBvZiBtYXJrZG93biBwcm9jZXNzaW5nIGlz
IGZ1cnRoZXIgcHJvY2Vzc2VkIGJ5IERveHlnZW4sIHNvIHlvdSBjYW4NCiMgbWl4IERveHlnZW4s
IEhUTUwsIGFuZCBYTUwgY29tbWFuZHMgd2l0aCBNYXJrZG93biBmb3JtYXR0aW5nLiBEaXNhYmxl
IG9ubHkgaW4NCiMgY2FzZSBvZiBiYWNrd2FyZCBjb21wYXRpYmlsaXRpZXMgaXNzdWVzLg0KIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0KDQpNQVJLRE9XTl9TVVBQT1JUICAgICAgID0gWUVT
DQoNCiMgV2hlbiB0aGUgVE9DX0lOQ0xVREVfSEVBRElOR1MgdGFnIGlzIHNldCB0byBhIG5vbi16
ZXJvIHZhbHVlLCBhbGwgaGVhZGluZ3MgdXANCiMgdG8gdGhhdCBsZXZlbCBhcmUgYXV0b21hdGlj
YWxseSBpbmNsdWRlZCBpbiB0aGUgdGFibGUgb2YgY29udGVudHMsIGV2ZW4gaWYNCiMgdGhleSBk
byBub3QgaGF2ZSBhbiBpZCBhdHRyaWJ1dGUuDQojIE5vdGU6IFRoaXMgZmVhdHVyZSBjdXJyZW50
bHkgYXBwbGllcyBvbmx5IHRvIE1hcmtkb3duIGhlYWRpbmdzLg0KIyBNaW5pbXVtIHZhbHVlOiAw
LCBtYXhpbXVtIHZhbHVlOiA5OSwgZGVmYXVsdCB2YWx1ZTogNi4NCiMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIE1BUktET1dOX1NVUFBPUlQgaXMgc2V0IHRvIFlFUy4NCg0KVE9DX0lO
Q0xVREVfSEVBRElOR1MgICA9IDYNCg0KIyBUaGUgTUFSS0RPV05fSURfU1RZTEUgdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGFsZ29yaXRobSB1c2VkIHRvDQojIGdlbmVyYXRlIGlkZW50
aWZpZXJzIGZvciB0aGUgTWFya2Rvd24gaGVhZGluZ3MuIE5vdGU6IEV2ZXJ5IGlkZW50aWZpZXIg
aXMNCiMgdW5pcXVlLg0KIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBET1hZR0VOIHVzZSBhIGZpeGVk
ICdhdXRvdG9jX21kJyBzdHJpbmcgZm9sbG93ZWQgYnkgYQ0KIyBzZXF1ZW5jZSBudW1iZXIgc3Rh
cnRpbmcgYXQgMCBhbmQgR0lUSFVCIHVzZSB0aGUgbG93ZXIgY2FzZSB2ZXJzaW9uIG9mIHRpdGxl
DQojIHdpdGggYW55IHdoaXRlc3BhY2UgcmVwbGFjZWQgYnkgJy0nIGFuZCBwdW5jdHVhdGlvbiBj
aGFyYWN0ZXJzIHJlbW92ZWQuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBET1hZR0VOLg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgTUFSS0RPV05fU1VQUE9SVCBpcyBzZXQgdG8g
WUVTLg0KDQpNQVJLRE9XTl9JRF9TVFlMRSAgICAgID0gRE9YWUdFTg0KDQojIFdoZW4gZW5hYmxl
ZCBEb3h5Z2VuIHRyaWVzIHRvIGxpbmsgd29yZHMgdGhhdCBjb3JyZXNwb25kIHRvIGRvY3VtZW50
ZWQNCiMgY2xhc3Nlcywgb3IgbmFtZXNwYWNlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIGRvY3Vt
ZW50YXRpb24uIFN1Y2ggYSBsaW5rIGNhbg0KIyBiZSBwcmV2ZW50ZWQgaW4gaW5kaXZpZHVhbCBj
YXNlcyBieSBwdXR0aW5nIGEgJSBzaWduIGluIGZyb250IG9mIHRoZSB3b3JkIG9yDQojIGdsb2Jh
bGx5IGJ5IHNldHRpbmcgQVVUT0xJTktfU1VQUE9SVCB0byBOTy4NCiMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4NCg0KQVVUT0xJTktfU1VQUE9SVCAgICAgICA9IFlFUw0KDQojIElmIHlvdSB1
c2UgU1RMIGNsYXNzZXMgKGkuZS4gc3RkOjpzdHJpbmcsIHN0ZDo6dmVjdG9yLCBldGMuKSBidXQg
ZG8gbm90IHdhbnQNCiMgdG8gaW5jbHVkZSAoYSB0YWcgZmlsZSBmb3IpIHRoZSBTVEwgc291cmNl
cyBhcyBpbnB1dCwgdGhlbiB5b3Ugc2hvdWxkIHNldCB0aGlzDQojIHRhZyB0byBZRVMgaW4gb3Jk
ZXIgdG8gbGV0IERveHlnZW4gbWF0Y2ggZnVuY3Rpb25zIGRlY2xhcmF0aW9ucyBhbmQNCiMgZGVm
aW5pdGlvbnMgd2hvc2UgYXJndW1lbnRzIGNvbnRhaW4gU1RMIGNsYXNzZXMgKGUuZy4gZnVuYyhz
dGQ6OnN0cmluZyk7DQojIHZlcnN1cyBmdW5jKHN0ZDo6c3RyaW5nKSB7fSkuIFRoaXMgYWxzbyBt
YWtlcyB0aGUgaW5oZXJpdGFuY2UgYW5kDQojIGNvbGxhYm9yYXRpb24gZGlhZ3JhbXMgdGhhdCBp
bnZvbHZlIFNUTCBjbGFzc2VzIG1vcmUgY29tcGxldGUgYW5kIGFjY3VyYXRlLg0KIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogTk8uDQoNCkJVSUxUSU5fU1RMX1NVUFBPUlQgICAgPSBOTw0KDQojIElm
IHlvdSB1c2UgTWljcm9zb2Z0J3MgQysrL0NMSSBsYW5ndWFnZSwgeW91IHNob3VsZCBzZXQgdGhp
cyBvcHRpb24gdG8gWUVTIHRvDQojIGVuYWJsZSBwYXJzaW5nIHN1cHBvcnQuDQojIFRoZSBkZWZh
dWx0IHZhbHVlIGlzOiBOTy4NCg0KQ1BQX0NMSV9TVVBQT1JUICAgICAgICA9IE5PDQoNCiMgU2V0
IHRoZSBTSVBfU1VQUE9SVCB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBz
aXAgKHNlZToNCiMgaHR0cHM6Ly93d3cucml2ZXJiYW5rY29tcHV0aW5nLmNvbS9zb2Z0d2FyZSkg
c291cmNlcyBvbmx5LiBEb3h5Z2VuIHdpbGwgcGFyc2UNCiMgdGhlbSBsaWtlIG5vcm1hbCBDKysg
YnV0IHdpbGwgYXNzdW1lIGFsbCBjbGFzc2VzIHVzZSBwdWJsaWMgaW5zdGVhZCBvZiBwcml2YXRl
DQojIGluaGVyaXRhbmNlIHdoZW4gbm8gZXhwbGljaXQgcHJvdGVjdGlvbiBrZXl3b3JkIGlzIHBy
ZXNlbnQuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KU0lQX1NVUFBPUlQgICAgICAg
ICAgICA9IE5PDQoNCiMgRm9yIE1pY3Jvc29mdCdzIElETCB0aGVyZSBhcmUgcHJvcGdldCBhbmQg
cHJvcHB1dCBhdHRyaWJ1dGVzIHRvIGluZGljYXRlDQojIGdldHRlciBhbmQgc2V0dGVyIG1ldGhv
ZHMgZm9yIGEgcHJvcGVydHkuIFNldHRpbmcgdGhpcyBvcHRpb24gdG8gWUVTIHdpbGwgbWFrZQ0K
IyBEb3h5Z2VuIHRvIHJlcGxhY2UgdGhlIGdldCBhbmQgc2V0IG1ldGhvZHMgYnkgYSBwcm9wZXJ0
eSBpbiB0aGUgZG9jdW1lbnRhdGlvbi4NCiMgVGhpcyB3aWxsIG9ubHkgd29yayBpZiB0aGUgbWV0
aG9kcyBhcmUgaW5kZWVkIGdldHRpbmcgb3Igc2V0dGluZyBhIHNpbXBsZQ0KIyB0eXBlLiBJZiB0
aGlzIGlzIG5vdCB0aGUgY2FzZSwgb3IgeW91IHdhbnQgdG8gc2hvdyB0aGUgbWV0aG9kcyBhbnl3
YXksIHlvdQ0KIyBzaG91bGQgc2V0IHRoaXMgb3B0aW9uIHRvIE5PLg0KIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogWUVTLg0KDQpJRExfUFJPUEVSVFlfU1VQUE9SVCAgID0gWUVTDQoNCiMgSWYgbWVt
YmVyIGdyb3VwaW5nIGlzIHVzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kIHRoZSBESVNUUklC
VVRFX0dST1VQX0RPQw0KIyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCByZXVz
ZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmlyc3QNCiMgbWVtYmVyIGluIHRoZSBncm91cCAo
aWYgYW55KSBmb3IgdGhlIG90aGVyIG1lbWJlcnMgb2YgdGhlIGdyb3VwLiBCeSBkZWZhdWx0DQoj
IGFsbCBtZW1iZXJzIG9mIGEgZ3JvdXAgbXVzdCBiZSBkb2N1bWVudGVkIGV4cGxpY2l0bHkuDQoj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KRElTVFJJQlVURV9HUk9VUF9ET0MgICA9IE5P
DQoNCiMgSWYgb25lIGFkZHMgYSBzdHJ1Y3Qgb3IgY2xhc3MgdG8gYSBncm91cCBhbmQgdGhpcyBv
cHRpb24gaXMgZW5hYmxlZCwgdGhlbiBhbHNvDQojIGFueSBuZXN0ZWQgY2xhc3Mgb3Igc3RydWN0
IGlzIGFkZGVkIHRvIHRoZSBzYW1lIGdyb3VwLiBCeSBkZWZhdWx0IHRoaXMgb3B0aW9uDQojIGlz
IGRpc2FibGVkIGFuZCBvbmUgaGFzIHRvIGFkZCBuZXN0ZWQgY29tcG91bmRzIGV4cGxpY2l0bHkg
dmlhIFxpbmdyb3VwLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCkdST1VQX05FU1RF
RF9DT01QT1VORFMgPSBOTw0KDQojIFNldCB0aGUgU1VCR1JPVVBJTkcgdGFnIHRvIFlFUyB0byBh
bGxvdyBjbGFzcyBtZW1iZXIgZ3JvdXBzIG9mIHRoZSBzYW1lIHR5cGUNCiMgKGZvciBpbnN0YW5j
ZSBhIGdyb3VwIG9mIHB1YmxpYyBmdW5jdGlvbnMpIHRvIGJlIHB1dCBhcyBhIHN1Ymdyb3VwIG9m
IHRoYXQNCiMgdHlwZSAoZS5nLiB1bmRlciB0aGUgUHVibGljIEZ1bmN0aW9ucyBzZWN0aW9uKS4g
U2V0IGl0IHRvIE5PIHRvIHByZXZlbnQNCiMgc3ViZ3JvdXBpbmcuIEFsdGVybmF0aXZlbHksIHRo
aXMgY2FuIGJlIGRvbmUgcGVyIGNsYXNzIHVzaW5nIHRoZQ0KIyBcbm9zdWJncm91cGluZyBjb21t
YW5kLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0KDQpTVUJHUk9VUElORyAgICAgICAg
ICAgID0gWUVTDQoNCiMgV2hlbiB0aGUgSU5MSU5FX0dST1VQRURfQ0xBU1NFUyB0YWcgaXMgc2V0
IHRvIFlFUywgY2xhc3Nlcywgc3RydWN0cyBhbmQgdW5pb25zDQojIGFyZSBzaG93biBpbnNpZGUg
dGhlIGdyb3VwIGluIHdoaWNoIHRoZXkgYXJlIGluY2x1ZGVkIChlLmcuIHVzaW5nIFxpbmdyb3Vw
KQ0KIyBpbnN0ZWFkIG9mIG9uIGEgc2VwYXJhdGUgcGFnZSAoZm9yIEhUTUwgYW5kIE1hbiBwYWdl
cykgb3Igc2VjdGlvbiAoZm9yIExhVGVYDQojIGFuZCBSVEYpLg0KIw0KIyBOb3RlIHRoYXQgdGhp
cyBmZWF0dXJlIGRvZXMgbm90IHdvcmsgaW4gY29tYmluYXRpb24gd2l0aA0KIyBTRVBBUkFURV9N
RU1CRVJfUEFHRVMuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KSU5MSU5FX0dST1VQ
RURfQ0xBU1NFUyA9IE5PDQoNCiMgV2hlbiB0aGUgSU5MSU5FX1NJTVBMRV9TVFJVQ1RTIHRhZyBp
cyBzZXQgdG8gWUVTLCBzdHJ1Y3RzLCBjbGFzc2VzLCBhbmQgdW5pb25zDQojIHdpdGggb25seSBw
dWJsaWMgZGF0YSBmaWVsZHMgb3Igc2ltcGxlIHR5cGVkZWYgZmllbGRzIHdpbGwgYmUgc2hvd24g
aW5saW5lIGluDQojIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBzY29wZSBpbiB3aGljaCB0aGV5
IGFyZSBkZWZpbmVkIChpLmUuIGZpbGUsDQojIG5hbWVzcGFjZSwgb3IgZ3JvdXAgZG9jdW1lbnRh
dGlvbiksIHByb3ZpZGVkIHRoaXMgc2NvcGUgaXMgZG9jdW1lbnRlZC4gSWYgc2V0DQojIHRvIE5P
LCBzdHJ1Y3RzLCBjbGFzc2VzLCBhbmQgdW5pb25zIGFyZSBzaG93biBvbiBhIHNlcGFyYXRlIHBh
Z2UgKGZvciBIVE1MIGFuZA0KIyBNYW4gcGFnZXMpIG9yIHNlY3Rpb24gKGZvciBMYVRlWCBhbmQg
UlRGKS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpJTkxJTkVfU0lNUExFX1NUUlVD
VFMgID0gTk8NCg0KIyBXaGVuIFRZUEVERUZfSElERVNfU1RSVUNUIHRhZyBpcyBlbmFibGVkLCBh
IHR5cGVkZWYgb2YgYSBzdHJ1Y3QsIHVuaW9uLCBvcg0KIyBlbnVtIGlzIGRvY3VtZW50ZWQgYXMg
c3RydWN0LCB1bmlvbiwgb3IgZW51bSB3aXRoIHRoZSBuYW1lIG9mIHRoZSB0eXBlZGVmLiBTbw0K
IyB0eXBlZGVmIHN0cnVjdCBUeXBlUyB7fSBUeXBlVCwgd2lsbCBhcHBlYXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYXMgYSBzdHJ1Y3QNCiMgd2l0aCBuYW1lIFR5cGVULiBXaGVuIGRpc2FibGVkIHRo
ZSB0eXBlZGVmIHdpbGwgYXBwZWFyIGFzIGEgbWVtYmVyIG9mIGEgZmlsZSwNCiMgbmFtZXNwYWNl
LCBvciBjbGFzcy4gQW5kIHRoZSBzdHJ1Y3Qgd2lsbCBiZSBuYW1lZCBUeXBlUy4gVGhpcyBjYW4g
dHlwaWNhbGx5IGJlDQojIHVzZWZ1bCBmb3IgQyBjb2RlIGluIGNhc2UgdGhlIGNvZGluZyBjb252
ZW50aW9uIGRpY3RhdGVzIHRoYXQgYWxsIGNvbXBvdW5kDQojIHR5cGVzIGFyZSB0eXBlZGVmJ2Vk
IGFuZCBvbmx5IHRoZSB0eXBlZGVmIGlzIHJlZmVyZW5jZWQsIG5ldmVyIHRoZSB0YWcgbmFtZS4N
CiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpUWVBFREVGX0hJREVTX1NUUlVDVCAgID0g
Tk8NCg0KIyBUaGUgc2l6ZSBvZiB0aGUgc3ltYm9sIGxvb2t1cCBjYWNoZSBjYW4gYmUgc2V0IHVz
aW5nIExPT0tVUF9DQUNIRV9TSVpFLiBUaGlzDQojIGNhY2hlIGlzIHVzZWQgdG8gcmVzb2x2ZSBz
eW1ib2xzIGdpdmVuIHRoZWlyIG5hbWUgYW5kIHNjb3BlLiBTaW5jZSB0aGlzIGNhbiBiZQ0KIyBh
biBleHBlbnNpdmUgcHJvY2VzcyBhbmQgb2Z0ZW4gdGhlIHNhbWUgc3ltYm9sIGFwcGVhcnMgbXVs
dGlwbGUgdGltZXMgaW4gdGhlDQojIGNvZGUsIERveHlnZW4ga2VlcHMgYSBjYWNoZSBvZiBwcmUt
cmVzb2x2ZWQgc3ltYm9scy4gSWYgdGhlIGNhY2hlIGlzIHRvbyBzbWFsbA0KIyBEb3h5Z2VuIHdp
bGwgYmVjb21lIHNsb3dlci4gSWYgdGhlIGNhY2hlIGlzIHRvbyBsYXJnZSwgbWVtb3J5IGlzIHdh
c3RlZC4gVGhlDQojIGNhY2hlIHNpemUgaXMgZ2l2ZW4gYnkgdGhpcyBmb3JtdWxhOiAyXigxNitM
T09LVVBfQ0FDSEVfU0laRSkuIFRoZSB2YWxpZCByYW5nZQ0KIyBpcyAwLi45LCB0aGUgZGVmYXVs
dCBpcyAwLCBjb3JyZXNwb25kaW5nIHRvIGEgY2FjaGUgc2l6ZSBvZiAyXjE2PTY1NTM2DQojIHN5
bWJvbHMuIEF0IHRoZSBlbmQgb2YgYSBydW4gRG94eWdlbiB3aWxsIHJlcG9ydCB0aGUgY2FjaGUg
dXNhZ2UgYW5kIHN1Z2dlc3QNCiMgdGhlIG9wdGltYWwgY2FjaGUgc2l6ZSBmcm9tIGEgc3BlZWQg
cG9pbnQgb2Ygdmlldy4NCiMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogOSwgZGVm
YXVsdCB2YWx1ZTogMC4NCg0KTE9PS1VQX0NBQ0hFX1NJWkUgICAgICA9IDANCg0KIyBUaGUgTlVN
X1BST0NfVEhSRUFEUyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiB0aHJlYWRzIERveHlnZW4gaXMg
YWxsb3dlZCB0byB1c2UNCiMgZHVyaW5nIHByb2Nlc3NpbmcuIFdoZW4gc2V0IHRvIDAgRG94eWdl
biB3aWxsIGJhc2VkIHRoaXMgb24gdGhlIG51bWJlciBvZg0KIyBjb3JlcyBhdmFpbGFibGUgaW4g
dGhlIHN5c3RlbS4gWW91IGNhbiBzZXQgaXQgZXhwbGljaXRseSB0byBhIHZhbHVlIGxhcmdlcg0K
IyB0aGFuIDAgdG8gZ2V0IG1vcmUgY29udHJvbCBvdmVyIHRoZSBiYWxhbmNlIGJldHdlZW4gQ1BV
IGxvYWQgYW5kIHByb2Nlc3NpbmcNCiMgc3BlZWQuIEF0IHRoaXMgbW9tZW50IG9ubHkgdGhlIGlu
cHV0IHByb2Nlc3NpbmcgY2FuIGJlIGRvbmUgdXNpbmcgbXVsdGlwbGUNCiMgdGhyZWFkcy4gU2lu
Y2UgdGhpcyBpcyBzdGlsbCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB0aGUgZGVmYXVsdCBpcyBz
ZXQgdG8gMSwNCiMgd2hpY2ggZWZmZWN0aXZlbHkgZGlzYWJsZXMgcGFyYWxsZWwgcHJvY2Vzc2lu
Zy4gUGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHlvdQ0KIyBlbmNvdW50ZXIuIEdlbmVyYXRpbmcg
ZG90IGdyYXBocyBpbiBwYXJhbGxlbCBpcyBjb250cm9sbGVkIGJ5IHRoZQ0KIyBET1RfTlVNX1RI
UkVBRFMgc2V0dGluZy4NCiMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMzIsIGRl
ZmF1bHQgdmFsdWU6IDEuDQoNCk5VTV9QUk9DX1RIUkVBRFMgICAgICAgPSAxDQoNCiMgSWYgdGhl
IFRJTUVTVEFNUCB0YWcgaXMgc2V0IGRpZmZlcmVudCBmcm9tIE5PIHRoZW4gZWFjaCBnZW5lcmF0
ZWQgcGFnZSB3aWxsDQojIGNvbnRhaW4gdGhlIGRhdGUgb3IgZGF0ZSBhbmQgdGltZSB3aGVuIHRo
ZSBwYWdlIHdhcyBnZW5lcmF0ZWQuIFNldHRpbmcgdGhpcyB0bw0KIyBOTyBjYW4gaGVscCB3aGVu
IGNvbXBhcmluZyB0aGUgb3V0cHV0IG9mIG11bHRpcGxlIHJ1bnMuDQojIFBvc3NpYmxlIHZhbHVl
cyBhcmU6IFlFUywgTk8sIERBVEVUSU1FIGFuZCBEQVRFLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTk8uDQoNClRJTUVTVEFNUCAgICAgICAgICAgICAgPSBOTw0KDQojLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQojIEJ1aWxkIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zDQojLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQoNCiMgSWYgdGhlIEVYVFJBQ1RfQUxMIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2Vu
IHdpbGwgYXNzdW1lIGFsbCBlbnRpdGllcyBpbg0KIyBkb2N1bWVudGF0aW9uIGFyZSBkb2N1bWVu
dGVkLCBldmVuIGlmIG5vIGRvY3VtZW50YXRpb24gd2FzIGF2YWlsYWJsZS4gUHJpdmF0ZQ0KIyBj
bGFzcyBtZW1iZXJzIGFuZCBzdGF0aWMgZmlsZSBtZW1iZXJzIHdpbGwgYmUgaGlkZGVuIHVubGVz
cyB0aGUNCiMgRVhUUkFDVF9QUklWQVRFIHJlc3BlY3RpdmVseSBFWFRSQUNUX1NUQVRJQyB0YWdz
IGFyZSBzZXQgdG8gWUVTLg0KIyBOb3RlOiBUaGlzIHdpbGwgYWxzbyBkaXNhYmxlIHRoZSB3YXJu
aW5ncyBhYm91dCB1bmRvY3VtZW50ZWQgbWVtYmVycyB0aGF0IGFyZQ0KIyBub3JtYWxseSBwcm9k
dWNlZCB3aGVuIFdBUk5JTkdTIGlzIHNldCB0byBZRVMuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4NCg0KRVhUUkFDVF9BTEwgICAgICAgICAgICA9IFlFUw0KDQojIElmIHRoZSBFWFRSQUNU
X1BSSVZBVEUgdGFnIGlzIHNldCB0byBZRVMsIGFsbCBwcml2YXRlIG1lbWJlcnMgb2YgYSBjbGFz
cyB3aWxsDQojIGJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLg0KIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uDQoNCkVYVFJBQ1RfUFJJVkFURSAgICAgICAgPSBOTw0KDQojIElmIHRo
ZSBFWFRSQUNUX1BSSVZfVklSVFVBTCB0YWcgaXMgc2V0IHRvIFlFUywgZG9jdW1lbnRlZCBwcml2
YXRlIHZpcnR1YWwNCiMgbWV0aG9kcyBvZiBhIGNsYXNzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhl
IGRvY3VtZW50YXRpb24uDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KRVhUUkFDVF9Q
UklWX1ZJUlRVQUwgICA9IE5PDQoNCiMgSWYgdGhlIEVYVFJBQ1RfUEFDS0FHRSB0YWcgaXMgc2V0
IHRvIFlFUywgYWxsIG1lbWJlcnMgd2l0aCBwYWNrYWdlIG9yIGludGVybmFsDQojIHNjb3BlIHdp
bGwgYmUgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uDQojIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBOTy4NCg0KRVhUUkFDVF9QQUNLQUdFICAgICAgICA9IE5PDQoNCiMgSWYgdGhlIEVYVFJB
Q1RfU1RBVElDIHRhZyBpcyBzZXQgdG8gWUVTLCBhbGwgc3RhdGljIG1lbWJlcnMgb2YgYSBmaWxl
IHdpbGwgYmUNCiMgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uDQojIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBOTy4NCg0KRVhUUkFDVF9TVEFUSUMgICAgICAgICA9IE5PDQoNCiMgSWYgdGhl
IEVYVFJBQ1RfTE9DQUxfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlFUywgY2xhc3NlcyAoYW5kIHN0
cnVjdHMpIGRlZmluZWQNCiMgbG9jYWxseSBpbiBzb3VyY2UgZmlsZXMgd2lsbCBiZSBpbmNsdWRl
ZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIE5PLA0KIyBvbmx5IGNsYXNzZXMgZGVm
aW5lZCBpbiBoZWFkZXIgZmlsZXMgYXJlIGluY2x1ZGVkLiBEb2VzIG5vdCBoYXZlIGFueSBlZmZl
Y3QNCiMgZm9yIEphdmEgc291cmNlcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0K
RVhUUkFDVF9MT0NBTF9DTEFTU0VTICA9IFlFUw0KDQojIFRoaXMgZmxhZyBpcyBvbmx5IHVzZWZ1
bCBmb3IgT2JqZWN0aXZlLUMgY29kZS4gSWYgc2V0IHRvIFlFUywgbG9jYWwgbWV0aG9kcywNCiMg
d2hpY2ggYXJlIGRlZmluZWQgaW4gdGhlIGltcGxlbWVudGF0aW9uIHNlY3Rpb24gYnV0IG5vdCBp
biB0aGUgaW50ZXJmYWNlIGFyZQ0KIyBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSWYg
c2V0IHRvIE5PLCBvbmx5IG1ldGhvZHMgaW4gdGhlIGludGVyZmFjZSBhcmUNCiMgaW5jbHVkZWQu
DQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KRVhUUkFDVF9MT0NBTF9NRVRIT0RTICA9
IE5PDQoNCiMgSWYgdGhpcyBmbGFnIGlzIHNldCB0byBZRVMsIHRoZSBtZW1iZXJzIG9mIGFub255
bW91cyBuYW1lc3BhY2VzIHdpbGwgYmUNCiMgZXh0cmFjdGVkIGFuZCBhcHBlYXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYXMgYSBuYW1lc3BhY2UgY2FsbGVkDQojICdhbm9ueW1vdXNfbmFtZXNwYWNl
e2ZpbGV9Jywgd2hlcmUgZmlsZSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGJhc2UgbmFtZSBv
Zg0KIyB0aGUgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBhbm9ueW1vdXMgbmFtZXNwYWNlLiBCeSBk
ZWZhdWx0IGFub255bW91cyBuYW1lc3BhY2UNCiMgYXJlIGhpZGRlbi4NCiMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLg0KDQpFWFRSQUNUX0FOT05fTlNQQUNFUyAgID0gTk8NCg0KIyBJZiB0aGlz
IGZsYWcgaXMgc2V0IHRvIFlFUywgdGhlIG5hbWUgb2YgYW4gdW5uYW1lZCBwYXJhbWV0ZXIgaW4g
YSBkZWNsYXJhdGlvbg0KIyB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcg
ZGVmaW5pdGlvbi4gQnkgZGVmYXVsdCB1bm5hbWVkDQojIHBhcmFtZXRlcnMgcmVtYWluIHVubmFt
ZWQgaW4gdGhlIG91dHB1dC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KUkVTT0xW
RV9VTk5BTUVEX1BBUkFNUyA9IFlFUw0KDQojIElmIHRoZSBISURFX1VORE9DX01FTUJFUlMgdGFn
IGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBoaWRlIGFsbA0KIyB1bmRvY3VtZW50ZWQgbWVt
YmVycyBpbnNpZGUgZG9jdW1lbnRlZCBjbGFzc2VzIG9yIGZpbGVzLiBJZiBzZXQgdG8gTk8gdGhl
c2UNCiMgbWVtYmVycyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSB2YXJpb3VzIG92ZXJ2aWV3cywg
YnV0IG5vIGRvY3VtZW50YXRpb24NCiMgc2VjdGlvbiBpcyBnZW5lcmF0ZWQuIFRoaXMgb3B0aW9u
IGhhcyBubyBlZmZlY3QgaWYgRVhUUkFDVF9BTEwgaXMgZW5hYmxlZC4NCiMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLg0KDQpISURFX1VORE9DX01FTUJFUlMgICAgID0gTk8NCg0KIyBJZiB0aGUg
SElERV9VTkRPQ19DTEFTU0VTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgaGlkZSBh
bGwNCiMgdW5kb2N1bWVudGVkIGNsYXNzZXMgdGhhdCBhcmUgbm9ybWFsbHkgdmlzaWJsZSBpbiB0
aGUgY2xhc3MgaGllcmFyY2h5LiBJZiBzZXQNCiMgdG8gTk8sIHRoZXNlIGNsYXNzZXMgd2lsbCBi
ZSBpbmNsdWRlZCBpbiB0aGUgdmFyaW91cyBvdmVydmlld3MuIFRoaXMgb3B0aW9uDQojIHdpbGwg
YWxzbyBoaWRlIHVuZG9jdW1lbnRlZCBDKysgY29uY2VwdHMgaWYgZW5hYmxlZC4gVGhpcyBvcHRp
b24gaGFzIG5vIGVmZmVjdA0KIyBpZiBFWFRSQUNUX0FMTCBpcyBlbmFibGVkLg0KIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogTk8uDQoNCkhJREVfVU5ET0NfQ0xBU1NFUyAgICAgPSBOTw0KDQojIElm
IHRoZSBISURFX0ZSSUVORF9DT01QT1VORFMgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2ls
bCBoaWRlIGFsbCBmcmllbmQNCiMgZGVjbGFyYXRpb25zLiBJZiBzZXQgdG8gTk8sIHRoZXNlIGRl
Y2xhcmF0aW9ucyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZQ0KIyBkb2N1bWVudGF0aW9uLg0KIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCkhJREVfRlJJRU5EX0NPTVBPVU5EUyAgPSBOTw0K
DQojIElmIHRoZSBISURFX0lOX0JPRFlfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3
aWxsIGhpZGUgYW55DQojIGRvY3VtZW50YXRpb24gYmxvY2tzIGZvdW5kIGluc2lkZSB0aGUgYm9k
eSBvZiBhIGZ1bmN0aW9uLiBJZiBzZXQgdG8gTk8sIHRoZXNlDQojIGJsb2NrcyB3aWxsIGJlIGFw
cGVuZGVkIHRvIHRoZSBmdW5jdGlvbidzIGRldGFpbGVkIGRvY3VtZW50YXRpb24gYmxvY2suDQoj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KSElERV9JTl9CT0RZX0RPQ1MgICAgICA9IE5P
DQoNCiMgVGhlIElOVEVSTkFMX0RPQ1MgdGFnIGRldGVybWluZXMgaWYgZG9jdW1lbnRhdGlvbiB0
aGF0IGlzIHR5cGVkIGFmdGVyIGENCiMgXGludGVybmFsIGNvbW1hbmQgaXMgaW5jbHVkZWQuIElm
IHRoZSB0YWcgaXMgc2V0IHRvIE5PIHRoZW4gdGhlIGRvY3VtZW50YXRpb24NCiMgd2lsbCBiZSBl
eGNsdWRlZC4gU2V0IGl0IHRvIFlFUyB0byBpbmNsdWRlIHRoZSBpbnRlcm5hbCBkb2N1bWVudGF0
aW9uLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCklOVEVSTkFMX0RPQ1MgICAgICAg
ICAgPSBOTw0KDQojIFdpdGggdGhlIGNvcnJlY3Qgc2V0dGluZyBvZiBvcHRpb24gQ0FTRV9TRU5T
RV9OQU1FUyBEb3h5Z2VuIHdpbGwgYmV0dGVyIGJlDQojIGFibGUgdG8gbWF0Y2ggdGhlIGNhcGFi
aWxpdGllcyBvZiB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtLiBJbiBjYXNlIHRoZQ0KIyBmaWxl
c3lzdGVtIGlzIGNhc2Ugc2Vuc2l0aXZlIChpLmUuIGl0IHN1cHBvcnRzIGZpbGVzIGluIHRoZSBz
YW1lIGRpcmVjdG9yeQ0KIyB3aG9zZSBuYW1lcyBvbmx5IGRpZmZlciBpbiBjYXNpbmcpLCB0aGUg
b3B0aW9uIG11c3QgYmUgc2V0IHRvIFlFUyB0byBwcm9wZXJseQ0KIyBkZWFsIHdpdGggc3VjaCBm
aWxlcyBpbiBjYXNlIHRoZXkgYXBwZWFyIGluIHRoZSBpbnB1dC4gRm9yIGZpbGVzeXN0ZW1zIHRo
YXQNCiMgYXJlIG5vdCBjYXNlIHNlbnNpdGl2ZSB0aGUgb3B0aW9uIHNob3VsZCBiZSBzZXQgdG8g
Tk8gdG8gcHJvcGVybHkgZGVhbCB3aXRoDQojIG91dHB1dCBmaWxlcyB3cml0dGVuIGZvciBzeW1i
b2xzIHRoYXQgb25seSBkaWZmZXIgaW4gY2FzaW5nLCBzdWNoIGFzIGZvciB0d28NCiMgY2xhc3Nl
cywgb25lIG5hbWVkIENMQVNTIGFuZCB0aGUgb3RoZXIgbmFtZWQgQ2xhc3MsIGFuZCB0byBhbHNv
IHN1cHBvcnQNCiMgcmVmZXJlbmNlcyB0byBmaWxlcyB3aXRob3V0IGhhdmluZyB0byBzcGVjaWZ5
IHRoZSBleGFjdCBtYXRjaGluZyBjYXNpbmcuIE9uDQojIFdpbmRvd3MgKGluY2x1ZGluZyBDeWd3
aW4pIGFuZCBtYWNPUywgdXNlcnMgc2hvdWxkIHR5cGljYWxseSBzZXQgdGhpcyBvcHRpb24NCiMg
dG8gTk8sIHdoZXJlYXMgb24gTGludXggb3Igb3RoZXIgVW5peCBmbGF2b3JzIGl0IHNob3VsZCB0
eXBpY2FsbHkgYmUgc2V0IHRvDQojIFlFUy4NCiMgUG9zc2libGUgdmFsdWVzIGFyZTogU1lTVEVN
LCBOTyBhbmQgWUVTLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogU1lTVEVNLg0KDQpDQVNFX1NF
TlNFX05BTUVTICAgICAgID0gU1lTVEVNDQoNCiMgSWYgdGhlIEhJREVfU0NPUEVfTkFNRVMgdGFn
IGlzIHNldCB0byBOTyB0aGVuIERveHlnZW4gd2lsbCBzaG93IG1lbWJlcnMgd2l0aA0KIyB0aGVp
ciBmdWxsIGNsYXNzIGFuZCBuYW1lc3BhY2Ugc2NvcGVzIGluIHRoZSBkb2N1bWVudGF0aW9uLiBJ
ZiBzZXQgdG8gWUVTLCB0aGUNCiMgc2NvcGUgd2lsbCBiZSBoaWRkZW4uDQojIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBOTy4NCg0KSElERV9TQ09QRV9OQU1FUyAgICAgICA9IE5PDQoNCiMgSWYgdGhl
IEhJREVfQ09NUE9VTkRfUkVGRVJFTkNFIHRhZyBpcyBzZXQgdG8gTk8gKGRlZmF1bHQpIHRoZW4g
RG94eWdlbiB3aWxsDQojIGFwcGVuZCBhZGRpdGlvbmFsIHRleHQgdG8gYSBwYWdlJ3MgdGl0bGUs
IHN1Y2ggYXMgQ2xhc3MgUmVmZXJlbmNlLiBJZiBzZXQgdG8NCiMgWUVTIHRoZSBjb21wb3VuZCBy
ZWZlcmVuY2Ugd2lsbCBiZSBoaWRkZW4uDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0K
SElERV9DT01QT1VORF9SRUZFUkVOQ0U9IE5PDQoNCiMgSWYgdGhlIFNIT1dfSEVBREVSRklMRSB0
YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhIGNsYXNzDQojIHdp
bGwgc2hvdyB3aGljaCBmaWxlIG5lZWRzIHRvIGJlIGluY2x1ZGVkIHRvIHVzZSB0aGUgY2xhc3Mu
DQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNClNIT1dfSEVBREVSRklMRSAgICAgICAg
PSBZRVMNCg0KIyBJZiB0aGUgU0hPV19JTkNMVURFX0ZJTEVTIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gRG94eWdlbiB3aWxsIHB1dCBhIGxpc3Qgb2YNCiMgdGhlIGZpbGVzIHRoYXQgYXJlIGluY2x1
ZGVkIGJ5IGEgZmlsZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGF0IGZpbGUuDQojIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNClNIT1dfSU5DTFVERV9GSUxFUyAgICAgPSBZRVMNCg0K
IyBJZiB0aGUgU0hPV19HUk9VUEVEX01FTUJfSU5DIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94
eWdlbiB3aWxsIGFkZCBmb3IgZWFjaA0KIyBncm91cGVkIG1lbWJlciBhbiBpbmNsdWRlIHN0YXRl
bWVudCB0byB0aGUgZG9jdW1lbnRhdGlvbiwgdGVsbGluZyB0aGUgcmVhZGVyDQojIHdoaWNoIGZp
bGUgdG8gaW5jbHVkZSBpbiBvcmRlciB0byB1c2UgdGhlIG1lbWJlci4NCiMgVGhlIGRlZmF1bHQg
dmFsdWUgaXM6IE5PLg0KDQpTSE9XX0dST1VQRURfTUVNQl9JTkMgID0gTk8NCg0KIyBJZiB0aGUg
Rk9SQ0VfTE9DQUxfSU5DTFVERVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwg
bGlzdCBpbmNsdWRlDQojIGZpbGVzIHdpdGggZG91YmxlIHF1b3RlcyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiByYXRoZXIgdGhhbiB3aXRoIHNoYXJwIGJyYWNrZXRzLg0KIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogTk8uDQoNCkZPUkNFX0xPQ0FMX0lOQ0xVREVTICAgPSBOTw0KDQojIElmIHRoZSBJTkxJ
TkVfSU5GTyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGEgdGFnIFtpbmxpbmVdIGlzIGluc2VydGVk
IGluIHRoZQ0KIyBkb2N1bWVudGF0aW9uIGZvciBpbmxpbmUgbWVtYmVycy4NCiMgVGhlIGRlZmF1
bHQgdmFsdWUgaXM6IFlFUy4NCg0KSU5MSU5FX0lORk8gICAgICAgICAgICA9IFlFUw0KDQojIElm
IHRoZSBTT1JUX01FTUJFUl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxs
IHNvcnQgdGhlDQojIChkZXRhaWxlZCkgZG9jdW1lbnRhdGlvbiBvZiBmaWxlIGFuZCBjbGFzcyBt
ZW1iZXJzIGFscGhhYmV0aWNhbGx5IGJ5IG1lbWJlcg0KIyBuYW1lLiBJZiBzZXQgdG8gTk8sIHRo
ZSBtZW1iZXJzIHdpbGwgYXBwZWFyIGluIGRlY2xhcmF0aW9uIG9yZGVyLg0KIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogWUVTLg0KDQpTT1JUX01FTUJFUl9ET0NTICAgICAgID0gWUVTDQoNCiMgSWYg
dGhlIFNPUlRfQlJJRUZfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBz
b3J0IHRoZSBicmllZg0KIyBkZXNjcmlwdGlvbnMgb2YgZmlsZSwgbmFtZXNwYWNlIGFuZCBjbGFz
cyBtZW1iZXJzIGFscGhhYmV0aWNhbGx5IGJ5IG1lbWJlcg0KIyBuYW1lLiBJZiBzZXQgdG8gTk8s
IHRoZSBtZW1iZXJzIHdpbGwgYXBwZWFyIGluIGRlY2xhcmF0aW9uIG9yZGVyLiBOb3RlIHRoYXQN
CiMgdGhpcyB3aWxsIGFsc28gaW5mbHVlbmNlIHRoZSBvcmRlciBvZiB0aGUgY2xhc3NlcyBpbiB0
aGUgY2xhc3MgbGlzdC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpTT1JUX0JSSUVG
X0RPQ1MgICAgICAgID0gTk8NCg0KIyBJZiB0aGUgU09SVF9NRU1CRVJTX0NUT1JTXzFTVCB0YWcg
aXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBzb3J0IHRoZQ0KIyAoYnJpZWYgYW5kIGRl
dGFpbGVkKSBkb2N1bWVudGF0aW9uIG9mIGNsYXNzIG1lbWJlcnMgc28gdGhhdCBjb25zdHJ1Y3Rv
cnMgYW5kDQojIGRlc3RydWN0b3JzIGFyZSBsaXN0ZWQgZmlyc3QuIElmIHNldCB0byBOTyB0aGUg
Y29uc3RydWN0b3JzIHdpbGwgYXBwZWFyIGluIHRoZQ0KIyByZXNwZWN0aXZlIG9yZGVycyBkZWZp
bmVkIGJ5IFNPUlRfQlJJRUZfRE9DUyBhbmQgU09SVF9NRU1CRVJfRE9DUy4NCiMgTm90ZTogSWYg
U09SVF9CUklFRl9ET0NTIGlzIHNldCB0byBOTyB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkIGZvciBz
b3J0aW5nIGJyaWVmDQojIG1lbWJlciBkb2N1bWVudGF0aW9uLg0KIyBOb3RlOiBJZiBTT1JUX01F
TUJFUl9ET0NTIGlzIHNldCB0byBOTyB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkIGZvciBzb3J0aW5n
DQojIGRldGFpbGVkIG1lbWJlciBkb2N1bWVudGF0aW9uLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTk8uDQoNClNPUlRfTUVNQkVSU19DVE9SU18xU1QgPSBOTw0KDQojIElmIHRoZSBTT1JUX0dS
T1VQX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIHNvcnQgdGhlIGhp
ZXJhcmNoeQ0KIyBvZiBncm91cCBuYW1lcyBpbnRvIGFscGhhYmV0aWNhbCBvcmRlci4gSWYgc2V0
IHRvIE5PIHRoZSBncm91cCBuYW1lcyB3aWxsDQojIGFwcGVhciBpbiB0aGVpciBkZWZpbmVkIG9y
ZGVyLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNClNPUlRfR1JPVVBfTkFNRVMgICAg
ICAgPSBOTw0KDQojIElmIHRoZSBTT1JUX0JZX1NDT1BFX05BTUUgdGFnIGlzIHNldCB0byBZRVMs
IHRoZSBjbGFzcyBsaXN0IHdpbGwgYmUgc29ydGVkIGJ5DQojIGZ1bGx5LXF1YWxpZmllZCBuYW1l
cywgaW5jbHVkaW5nIG5hbWVzcGFjZXMuIElmIHNldCB0byBOTywgdGhlIGNsYXNzIGxpc3Qgd2ls
bA0KIyBiZSBzb3J0ZWQgb25seSBieSBjbGFzcyBuYW1lLCBub3QgaW5jbHVkaW5nIHRoZSBuYW1l
c3BhY2UgcGFydC4NCiMgTm90ZTogVGhpcyBvcHRpb24gaXMgbm90IHZlcnkgdXNlZnVsIGlmIEhJ
REVfU0NPUEVfTkFNRVMgaXMgc2V0IHRvIFlFUy4NCiMgTm90ZTogVGhpcyBvcHRpb24gYXBwbGll
cyBvbmx5IHRvIHRoZSBjbGFzcyBsaXN0LCBub3QgdG8gdGhlIGFscGhhYmV0aWNhbA0KIyBsaXN0
Lg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNClNPUlRfQllfU0NPUEVfTkFNRSAgICAg
PSBOTw0KDQojIElmIHRoZSBTVFJJQ1RfUFJPVE9fTUFUQ0hJTkcgb3B0aW9uIGlzIGVuYWJsZWQg
YW5kIERveHlnZW4gZmFpbHMgdG8gZG8gcHJvcGVyDQojIHR5cGUgcmVzb2x1dGlvbiBvZiBhbGwg
cGFyYW1ldGVycyBvZiBhIGZ1bmN0aW9uIGl0IHdpbGwgcmVqZWN0IGEgbWF0Y2ggYmV0d2Vlbg0K
IyB0aGUgcHJvdG90eXBlIGFuZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgYSBtZW1iZXIgZnVuY3Rp
b24gZXZlbiBpZiB0aGVyZSBpcw0KIyBvbmx5IG9uZSBjYW5kaWRhdGUgb3IgaXQgaXMgb2J2aW91
cyB3aGljaCBjYW5kaWRhdGUgdG8gY2hvb3NlIGJ5IGRvaW5nIGENCiMgc2ltcGxlIHN0cmluZyBt
YXRjaC4gQnkgZGlzYWJsaW5nIFNUUklDVF9QUk9UT19NQVRDSElORyBEb3h5Z2VuIHdpbGwgc3Rp
bGwNCiMgYWNjZXB0IGEgbWF0Y2ggYmV0d2VlbiBwcm90b3R5cGUgYW5kIGltcGxlbWVudGF0aW9u
IGluIHN1Y2ggY2FzZXMuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KU1RSSUNUX1BS
T1RPX01BVENISU5HICA9IE5PDQoNCiMgVGhlIEdFTkVSQVRFX1RPRE9MSVNUIHRhZyBjYW4gYmUg
dXNlZCB0byBlbmFibGUgKFlFUykgb3IgZGlzYWJsZSAoTk8pIHRoZSB0b2RvDQojIGxpc3QuIFRo
aXMgbGlzdCBpcyBjcmVhdGVkIGJ5IHB1dHRpbmcgXHRvZG8gY29tbWFuZHMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24uDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNCkdFTkVSQVRFX1RPRE9M
SVNUICAgICAgPSBZRVMNCg0KIyBUaGUgR0VORVJBVEVfVEVTVExJU1QgdGFnIGNhbiBiZSB1c2Vk
IHRvIGVuYWJsZSAoWUVTKSBvciBkaXNhYmxlIChOTykgdGhlIHRlc3QNCiMgbGlzdC4gVGhpcyBs
aXN0IGlzIGNyZWF0ZWQgYnkgcHV0dGluZyBcdGVzdCBjb21tYW5kcyBpbiB0aGUgZG9jdW1lbnRh
dGlvbi4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KR0VORVJBVEVfVEVTVExJU1Qg
ICAgICA9IFlFUw0KDQojIFRoZSBHRU5FUkFURV9CVUdMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBl
bmFibGUgKFlFUykgb3IgZGlzYWJsZSAoTk8pIHRoZSBidWcNCiMgbGlzdC4gVGhpcyBsaXN0IGlz
IGNyZWF0ZWQgYnkgcHV0dGluZyBcYnVnIGNvbW1hbmRzIGluIHRoZSBkb2N1bWVudGF0aW9uLg0K
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0KDQpHRU5FUkFURV9CVUdMSVNUICAgICAgID0g
WUVTDQoNCiMgVGhlIEdFTkVSQVRFX0RFUFJFQ0FURURMSVNUIHRhZyBjYW4gYmUgdXNlZCB0byBl
bmFibGUgKFlFUykgb3IgZGlzYWJsZSAoTk8pDQojIHRoZSBkZXByZWNhdGVkIGxpc3QuIFRoaXMg
bGlzdCBpcyBjcmVhdGVkIGJ5IHB1dHRpbmcgXGRlcHJlY2F0ZWQgY29tbWFuZHMgaW4NCiMgdGhl
IGRvY3VtZW50YXRpb24uDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNCkdFTkVSQVRF
X0RFUFJFQ0FURURMSVNUPSBZRVMNCg0KIyBUaGUgRU5BQkxFRF9TRUNUSU9OUyB0YWcgY2FuIGJl
IHVzZWQgdG8gZW5hYmxlIGNvbmRpdGlvbmFsIGRvY3VtZW50YXRpb24NCiMgc2VjdGlvbnMsIG1h
cmtlZCBieSBcaWYgPHNlY3Rpb25fbGFiZWw+IC4uLiBcZW5kaWYgYW5kIFxjb25kIDxzZWN0aW9u
X2xhYmVsPg0KIyAuLi4gXGVuZGNvbmQgYmxvY2tzLg0KDQpFTkFCTEVEX1NFQ1RJT05TICAgICAg
ID0NCg0KIyBUaGUgTUFYX0lOSVRJQUxJWkVSX0xJTkVTIHRhZyBkZXRlcm1pbmVzIHRoZSBtYXhp
bXVtIG51bWJlciBvZiBsaW5lcyB0aGF0IHRoZQ0KIyBpbml0aWFsIHZhbHVlIG9mIGEgdmFyaWFi
bGUgb3IgbWFjcm8gLyBkZWZpbmUgY2FuIGhhdmUgZm9yIGl0IHRvIGFwcGVhciBpbiB0aGUNCiMg
ZG9jdW1lbnRhdGlvbi4gSWYgdGhlIGluaXRpYWxpemVyIGNvbnNpc3RzIG9mIG1vcmUgbGluZXMg
dGhhbiBzcGVjaWZpZWQgaGVyZQ0KIyBpdCB3aWxsIGJlIGhpZGRlbi4gVXNlIGEgdmFsdWUgb2Yg
MCB0byBoaWRlIGluaXRpYWxpemVycyBjb21wbGV0ZWx5LiBUaGUNCiMgYXBwZWFyYW5jZSBvZiB0
aGUgdmFsdWUgb2YgaW5kaXZpZHVhbCB2YXJpYWJsZXMgYW5kIG1hY3JvcyAvIGRlZmluZXMgY2Fu
IGJlDQojIGNvbnRyb2xsZWQgdXNpbmcgXHNob3dpbml0aWFsaXplciBvciBcaGlkZWluaXRpYWxp
emVyIGNvbW1hbmQgaW4gdGhlDQojIGRvY3VtZW50YXRpb24gcmVnYXJkbGVzcyBvZiB0aGlzIHNl
dHRpbmcuDQojIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMDAwLCBkZWZhdWx0
IHZhbHVlOiAzMC4NCg0KTUFYX0lOSVRJQUxJWkVSX0xJTkVTICA9IDMwDQoNCiMgU2V0IHRoZSBT
SE9XX1VTRURfRklMRVMgdGFnIHRvIE5PIHRvIGRpc2FibGUgdGhlIGxpc3Qgb2YgZmlsZXMgZ2Vu
ZXJhdGVkIGF0DQojIHRoZSBib3R0b20gb2YgdGhlIGRvY3VtZW50YXRpb24gb2YgY2xhc3NlcyBh
bmQgc3RydWN0cy4gSWYgc2V0IHRvIFlFUywgdGhlDQojIGxpc3Qgd2lsbCBtZW50aW9uIHRoZSBm
aWxlcyB0aGF0IHdlcmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4NCiMgVGhl
IGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KU0hPV19VU0VEX0ZJTEVTICAgICAgICA9IFlFUw0K
DQojIFNldCB0aGUgU0hPV19GSUxFUyB0YWcgdG8gTk8gdG8gZGlzYWJsZSB0aGUgZ2VuZXJhdGlv
biBvZiB0aGUgRmlsZXMgcGFnZS4gVGhpcw0KIyB3aWxsIHJlbW92ZSB0aGUgRmlsZXMgZW50cnkg
ZnJvbSB0aGUgUXVpY2sgSW5kZXggYW5kIGZyb20gdGhlIEZvbGRlciBUcmVlIFZpZXcNCiMgKGlm
IHNwZWNpZmllZCkuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNClNIT1dfRklMRVMg
ICAgICAgICAgICAgPSBZRVMNCg0KIyBTZXQgdGhlIFNIT1dfTkFNRVNQQUNFUyB0YWcgdG8gTk8g
dG8gZGlzYWJsZSB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgTmFtZXNwYWNlcw0KIyBwYWdlLiBUaGlz
IHdpbGwgcmVtb3ZlIHRoZSBOYW1lc3BhY2VzIGVudHJ5IGZyb20gdGhlIFF1aWNrIEluZGV4IGFu
ZCBmcm9tIHRoZQ0KIyBGb2xkZXIgVHJlZSBWaWV3IChpZiBzcGVjaWZpZWQpLg0KIyBUaGUgZGVm
YXVsdCB2YWx1ZSBpczogWUVTLg0KDQpTSE9XX05BTUVTUEFDRVMgICAgICAgID0gWUVTDQoNCiMg
VGhlIEZJTEVfVkVSU0lPTl9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm9n
cmFtIG9yIHNjcmlwdCB0aGF0DQojIERveHlnZW4gc2hvdWxkIGludm9rZSB0byBnZXQgdGhlIGN1
cnJlbnQgdmVyc2lvbiBmb3IgZWFjaCBmaWxlICh0eXBpY2FsbHkgZnJvbQ0KIyB0aGUgdmVyc2lv
biBjb250cm9sIHN5c3RlbSkuIERveHlnZW4gd2lsbCBpbnZva2UgdGhlIHByb2dyYW0gYnkgZXhl
Y3V0aW5nICh2aWENCiMgcG9wZW4oKSkgdGhlIGNvbW1hbmQgY29tbWFuZCBpbnB1dC1maWxlLCB3
aGVyZSBjb21tYW5kIGlzIHRoZSB2YWx1ZSBvZiB0aGUNCiMgRklMRV9WRVJTSU9OX0ZJTFRFUiB0
YWcsIGFuZCBpbnB1dC1maWxlIGlzIHRoZSBuYW1lIG9mIGFuIGlucHV0IGZpbGUgcHJvdmlkZWQN
CiMgYnkgRG94eWdlbi4gV2hhdGV2ZXIgdGhlIHByb2dyYW0gd3JpdGVzIHRvIHN0YW5kYXJkIG91
dHB1dCBpcyB1c2VkIGFzIHRoZSBmaWxlDQojIHZlcnNpb24uIEZvciBhbiBleGFtcGxlIHNlZSB0
aGUgZG9jdW1lbnRhdGlvbi4NCg0KRklMRV9WRVJTSU9OX0ZJTFRFUiAgICA9DQoNCiMgVGhlIExB
WU9VVF9GSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgbGF5b3V0IGZpbGUgd2hpY2gg
d2lsbCBiZSBwYXJzZWQNCiMgYnkgRG94eWdlbi4gVGhlIGxheW91dCBmaWxlIGNvbnRyb2xzIHRo
ZSBnbG9iYWwgc3RydWN0dXJlIG9mIHRoZSBnZW5lcmF0ZWQNCiMgb3V0cHV0IGZpbGVzIGluIGFu
IG91dHB1dCBmb3JtYXQgaW5kZXBlbmRlbnQgd2F5LiBUbyBjcmVhdGUgdGhlIGxheW91dCBmaWxl
DQojIHRoYXQgcmVwcmVzZW50cyBEb3h5Z2VuJ3MgZGVmYXVsdHMsIHJ1biBEb3h5Z2VuIHdpdGgg
dGhlIC1sIG9wdGlvbi4gWW91IGNhbg0KIyBvcHRpb25hbGx5IHNwZWNpZnkgYSBmaWxlIG5hbWUg
YWZ0ZXIgdGhlIG9wdGlvbiwgaWYgb21pdHRlZCBEb3h5Z2VuTGF5b3V0LnhtbA0KIyB3aWxsIGJl
IHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlIGxheW91dCBmaWxlLiBTZWUgYWxzbyBzZWN0aW9uICJD
aGFuZ2luZyB0aGUNCiMgbGF5b3V0IG9mIHBhZ2VzIiBmb3IgaW5mb3JtYXRpb24uDQojDQojIE5v
dGUgdGhhdCBpZiB5b3UgcnVuIERveHlnZW4gZnJvbSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEg
ZmlsZSBjYWxsZWQNCiMgRG94eWdlbkxheW91dC54bWwsIERveHlnZW4gd2lsbCBwYXJzZSBpdCBh
dXRvbWF0aWNhbGx5IGV2ZW4gaWYgdGhlIExBWU9VVF9GSUxFDQojIHRhZyBpcyBsZWZ0IGVtcHR5
Lg0KDQpMQVlPVVRfRklMRSAgICAgICAgICAgID0NCg0KIyBUaGUgQ0lURV9CSUJfRklMRVMgdGFn
IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgYmliIGZpbGVzIGNvbnRhaW5pbmcN
CiMgdGhlIHJlZmVyZW5jZSBkZWZpbml0aW9ucy4gVGhpcyBtdXN0IGJlIGEgbGlzdCBvZiAuYmli
IGZpbGVzLiBUaGUgLmJpYg0KIyBleHRlbnNpb24gaXMgYXV0b21hdGljYWxseSBhcHBlbmRlZCBp
ZiBvbWl0dGVkLiBUaGlzIHJlcXVpcmVzIHRoZSBiaWJ0ZXggdG9vbA0KIyB0byBiZSBpbnN0YWxs
ZWQuIFNlZSBhbHNvIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JpYlRlWCBmb3IgbW9y
ZSBpbmZvLg0KIyBGb3IgTGFUZVggdGhlIHN0eWxlIG9mIHRoZSBiaWJsaW9ncmFwaHkgY2FuIGJl
IGNvbnRyb2xsZWQgdXNpbmcNCiMgTEFURVhfQklCX1NUWUxFLiBUbyB1c2UgdGhpcyBmZWF0dXJl
IHlvdSBuZWVkIGJpYnRleCBhbmQgcGVybCBhdmFpbGFibGUgaW4gdGhlDQojIHNlYXJjaCBwYXRo
LiBTZWUgYWxzbyBcY2l0ZSBmb3IgaW5mbyBob3cgdG8gY3JlYXRlIHJlZmVyZW5jZXMuDQoNCkNJ
VEVfQklCX0ZJTEVTICAgICAgICAgPQ0KDQojIFRoZSBFWFRFUk5BTF9UT09MX1BBVEggdGFnIGNh
biBiZSB1c2VkIHRvIGV4dGVuZCB0aGUgc2VhcmNoIHBhdGggKFBBVEgNCiMgZW52aXJvbm1lbnQg
dmFyaWFibGUpIHNvIHRoYXQgZXh0ZXJuYWwgdG9vbHMgc3VjaCBhcyBsYXRleCBhbmQgZ3MgY2Fu
IGJlDQojIGZvdW5kLg0KIyBOb3RlOiBEaXJlY3RvcmllcyBzcGVjaWZpZWQgd2l0aCBFWFRFUk5B
TF9UT09MX1BBVEggYXJlIGFkZGVkIGluIGZyb250IG9mIHRoZQ0KIyBwYXRoIGFscmVhZHkgc3Bl
Y2lmaWVkIGJ5IHRoZSBQQVRIIHZhcmlhYmxlLCBhbmQgYXJlIGFkZGVkIGluIHRoZSBvcmRlcg0K
IyBzcGVjaWZpZWQuDQojIE5vdGU6IFRoaXMgb3B0aW9uIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwg
Zm9yIG1hY09TIHZlcnNpb24gMTQgKFNvbm9tYSkgYW5kDQojIGhpZ2hlciwgd2hlbiBydW5uaW5n
IERveHlnZW4gZnJvbSBEb3h5d2l6YXJkLCBiZWNhdXNlIGluIHRoaXMgY2FzZSBhbnkgdXNlci0N
CiMgZGVmaW5lZCBjaGFuZ2VzIHRvIHRoZSBQQVRIIGFyZSBpZ25vcmVkLiBBIHR5cGljYWwgZXhh
bXBsZSBvbiBtYWNPUyBpcyB0byBzZXQNCiMgRVhURVJOQUxfVE9PTF9QQVRIID0gL0xpYnJhcnkv
VGVYL3RleGJpbiAvdXNyL2xvY2FsL2Jpbg0KIyB0b2dldGhlciB3aXRoIHRoZSBzdGFuZGFyZCBw
YXRoLCB0aGUgZnVsbCBzZWFyY2ggcGF0aCB1c2VkIGJ5IGRveHlnZW4gd2hlbg0KIyBsYXVuY2hp
bmcgZXh0ZXJuYWwgdG9vbHMgd2lsbCB0aGVuIGJlY29tZQ0KIyBQQVRIPS9MaWJyYXJ5L1RlWC90
ZXhiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9iaW46L2JpbjovdXNyL3NiaW46L3NiaW4NCg0KRVhU
RVJOQUxfVE9PTF9QQVRIICAgICA9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ29uZmlndXJh
dGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gd2FybmluZyBhbmQgcHJvZ3Jlc3MgbWVzc2FnZXMNCiMt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCg0KIyBUaGUgUVVJRVQgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4g
b24vb2ZmIHRoZSBtZXNzYWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgdG8NCiMgc3RhbmRhcmQgb3V0
cHV0IGJ5IERveHlnZW4uIElmIFFVSUVUIGlzIHNldCB0byBZRVMgdGhpcyBpbXBsaWVzIHRoYXQg
dGhlDQojIG1lc3NhZ2VzIGFyZSBvZmYuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0K
UVVJRVQgICAgICAgICAgICAgICAgICA9IE5PDQoNCiMgVGhlIFdBUk5JTkdTIHRhZyBjYW4gYmUg
dXNlZCB0byB0dXJuIG9uL29mZiB0aGUgd2FybmluZyBtZXNzYWdlcyB0aGF0IGFyZQ0KIyBnZW5l
cmF0ZWQgdG8gc3RhbmRhcmQgZXJyb3IgKHN0ZGVycikgYnkgRG94eWdlbi4gSWYgV0FSTklOR1Mg
aXMgc2V0IHRvIFlFUw0KIyB0aGlzIGltcGxpZXMgdGhhdCB0aGUgd2FybmluZ3MgYXJlIG9uLg0K
Iw0KIyBUaXA6IFR1cm4gd2FybmluZ3Mgb24gd2hpbGUgd3JpdGluZyB0aGUgZG9jdW1lbnRhdGlv
bi4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KV0FSTklOR1MgICAgICAgICAgICAg
ICA9IFlFUw0KDQojIElmIHRoZSBXQVJOX0lGX1VORE9DVU1FTlRFRCB0YWcgaXMgc2V0IHRvIFlF
UyB0aGVuIERveHlnZW4gd2lsbCBnZW5lcmF0ZQ0KIyB3YXJuaW5ncyBmb3IgdW5kb2N1bWVudGVk
IG1lbWJlcnMuIElmIEVYVFJBQ1RfQUxMIGlzIHNldCB0byBZRVMgdGhlbiB0aGlzIGZsYWcNCiMg
d2lsbCBhdXRvbWF0aWNhbGx5IGJlIGRpc2FibGVkLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
WUVTLg0KDQpXQVJOX0lGX1VORE9DVU1FTlRFRCAgID0gWUVTDQoNCiMgSWYgdGhlIFdBUk5fSUZf
RE9DX0VSUk9SIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgd2Fybmlu
Z3MgZm9yDQojIHBvdGVudGlhbCBlcnJvcnMgaW4gdGhlIGRvY3VtZW50YXRpb24sIHN1Y2ggYXMg
ZG9jdW1lbnRpbmcgc29tZSBwYXJhbWV0ZXJzIGluDQojIGEgZG9jdW1lbnRlZCBmdW5jdGlvbiB0
d2ljZSwgb3IgZG9jdW1lbnRpbmcgcGFyYW1ldGVycyB0aGF0IGRvbid0IGV4aXN0IG9yDQojIHVz
aW5nIG1hcmt1cCBjb21tYW5kcyB3cm9uZ2x5Lg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVT
Lg0KDQpXQVJOX0lGX0RPQ19FUlJPUiAgICAgID0gWUVTDQoNCiMgSWYgV0FSTl9JRl9JTkNPTVBM
RVRFX0RPQyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgd2FybiBhYm91dCBpbmNvbXBsZXRl
DQojIGZ1bmN0aW9uIHBhcmFtZXRlciBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gTk8sIERveHln
ZW4gd2lsbCBhY2NlcHQgdGhhdCBzb21lDQojIHBhcmFtZXRlcnMgaGF2ZSBubyBkb2N1bWVudGF0
aW9uIHdpdGhvdXQgd2FybmluZy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KV0FS
Tl9JRl9JTkNPTVBMRVRFX0RPQyA9IFlFUw0KDQojIFRoaXMgV0FSTl9OT19QQVJBTURPQyBvcHRp
b24gY2FuIGJlIGVuYWJsZWQgdG8gZ2V0IHdhcm5pbmdzIGZvciBmdW5jdGlvbnMgdGhhdA0KIyBh
cmUgZG9jdW1lbnRlZCwgYnV0IGhhdmUgbm8gZG9jdW1lbnRhdGlvbiBmb3IgdGhlaXIgcGFyYW1l
dGVycyBvciByZXR1cm4NCiMgdmFsdWUuIElmIHNldCB0byBOTywgRG94eWdlbiB3aWxsIG9ubHkg
d2FybiBhYm91dCB3cm9uZyBwYXJhbWV0ZXINCiMgZG9jdW1lbnRhdGlvbiwgYnV0IG5vdCBhYm91
dCB0aGUgYWJzZW5jZSBvZiBkb2N1bWVudGF0aW9uLiBJZiBFWFRSQUNUX0FMTCBpcw0KIyBzZXQg
dG8gWUVTIHRoZW4gdGhpcyBmbGFnIHdpbGwgYXV0b21hdGljYWxseSBiZSBkaXNhYmxlZC4gU2Vl
IGFsc28NCiMgV0FSTl9JRl9JTkNPTVBMRVRFX0RPQw0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
Tk8uDQoNCldBUk5fTk9fUEFSQU1ET0MgICAgICAgPSBOTw0KDQojIElmIFdBUk5fSUZfVU5ET0Nf
RU5VTV9WQUwgb3B0aW9uIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCB3YXJuIGFib3V0DQoj
IHVuZG9jdW1lbnRlZCBlbnVtZXJhdGlvbiB2YWx1ZXMuIElmIHNldCB0byBOTywgRG94eWdlbiB3
aWxsIGFjY2VwdA0KIyB1bmRvY3VtZW50ZWQgZW51bWVyYXRpb24gdmFsdWVzLiBJZiBFWFRSQUNU
X0FMTCBpcyBzZXQgdG8gWUVTIHRoZW4gdGhpcyBmbGFnDQojIHdpbGwgYXV0b21hdGljYWxseSBi
ZSBkaXNhYmxlZC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpXQVJOX0lGX1VORE9D
X0VOVU1fVkFMID0gTk8NCg0KIyBJZiB0aGUgV0FSTl9BU19FUlJPUiB0YWcgaXMgc2V0IHRvIFlF
UyB0aGVuIERveHlnZW4gd2lsbCBpbW1lZGlhdGVseSBzdG9wIHdoZW4NCiMgYSB3YXJuaW5nIGlz
IGVuY291bnRlcmVkLiBJZiB0aGUgV0FSTl9BU19FUlJPUiB0YWcgaXMgc2V0IHRvIEZBSUxfT05f
V0FSTklOR1MNCiMgdGhlbiBEb3h5Z2VuIHdpbGwgY29udGludWUgcnVubmluZyBhcyBpZiBXQVJO
X0FTX0VSUk9SIHRhZyBpcyBzZXQgdG8gTk8sIGJ1dA0KIyBhdCB0aGUgZW5kIG9mIHRoZSBEb3h5
Z2VuIHByb2Nlc3MgRG94eWdlbiB3aWxsIHJldHVybiB3aXRoIGEgbm9uLXplcm8gc3RhdHVzLg0K
IyBJZiB0aGUgV0FSTl9BU19FUlJPUiB0YWcgaXMgc2V0IHRvIEZBSUxfT05fV0FSTklOR1NfUFJJ
TlQgdGhlbiBEb3h5Z2VuIGJlaGF2ZXMNCiMgbGlrZSBGQUlMX09OX1dBUk5JTkdTIGJ1dCBpbiBj
YXNlIG5vIFdBUk5fTE9HRklMRSBpcyBkZWZpbmVkIERveHlnZW4gd2lsbCBub3QNCiMgd3JpdGUg
dGhlIHdhcm5pbmcgbWVzc2FnZXMgaW4gYmV0d2VlbiBvdGhlciBtZXNzYWdlcyBidXQgd3JpdGUg
dGhlbSBhdCB0aGUgZW5kDQojIG9mIGEgcnVuLCBpbiBjYXNlIGEgV0FSTl9MT0dGSUxFIGlzIGRl
ZmluZWQgdGhlIHdhcm5pbmcgbWVzc2FnZXMgd2lsbCBiZQ0KIyBiZXNpZGVzIGJlaW5nIGluIHRo
ZSBkZWZpbmVkIGZpbGUgYWxzbyBiZSBzaG93biBhdCB0aGUgZW5kIG9mIGEgcnVuLCB1bmxlc3MN
CiMgdGhlIFdBUk5fTE9HRklMRSBpcyBkZWZpbmVkIGFzIC0gaS5lLiBzdGFuZGFyZCBvdXRwdXQg
KHN0ZG91dCkgaW4gdGhhdCBjYXNlDQojIHRoZSBiZWhhdmlvciB3aWxsIHJlbWFpbiBhcyB3aXRo
IHRoZSBzZXR0aW5nIEZBSUxfT05fV0FSTklOR1MuDQojIFBvc3NpYmxlIHZhbHVlcyBhcmU6IE5P
LCBZRVMsIEZBSUxfT05fV0FSTklOR1MgYW5kIEZBSUxfT05fV0FSTklOR1NfUFJJTlQuDQojIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KV0FSTl9BU19FUlJPUiAgICAgICAgICA9IE5PDQoN
CiMgVGhlIFdBUk5fRk9STUFUIHRhZyBkZXRlcm1pbmVzIHRoZSBmb3JtYXQgb2YgdGhlIHdhcm5p
bmcgbWVzc2FnZXMgdGhhdCBEb3h5Z2VuDQojIGNhbiBwcm9kdWNlLiBUaGUgc3RyaW5nIHNob3Vs
ZCBjb250YWluIHRoZSAkZmlsZSwgJGxpbmUsIGFuZCAkdGV4dCB0YWdzLCB3aGljaA0KIyB3aWxs
IGJlIHJlcGxhY2VkIGJ5IHRoZSBmaWxlIGFuZCBsaW5lIG51bWJlciBmcm9tIHdoaWNoIHRoZSB3
YXJuaW5nIG9yaWdpbmF0ZWQNCiMgYW5kIHRoZSB3YXJuaW5nIHRleHQuIE9wdGlvbmFsbHkgdGhl
IGZvcm1hdCBtYXkgY29udGFpbiAkdmVyc2lvbiwgd2hpY2ggd2lsbA0KIyBiZSByZXBsYWNlZCBi
eSB0aGUgdmVyc2lvbiBvZiB0aGUgZmlsZSAoaWYgaXQgY291bGQgYmUgb2J0YWluZWQgdmlhDQoj
IEZJTEVfVkVSU0lPTl9GSUxURVIpDQojIFNlZSBhbHNvOiBXQVJOX0xJTkVfRk9STUFUDQojIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiAkZmlsZTokbGluZTogJHRleHQuDQoNCldBUk5fRk9STUFUICAg
ICAgICAgICAgPSAiJGZpbGU6JGxpbmU6ICR0ZXh0Ig0KDQojIEluIHRoZSAkdGV4dCBwYXJ0IG9m
IHRoZSBXQVJOX0ZPUk1BVCBjb21tYW5kIGl0IGlzIHBvc3NpYmxlIHRoYXQgYSByZWZlcmVuY2UN
CiMgdG8gYSBtb3JlIHNwZWNpZmljIHBsYWNlIGlzIGdpdmVuLiBUbyBtYWtlIGl0IGVhc2llciB0
byBqdW1wIHRvIHRoaXMgcGxhY2UNCiMgKG91dHNpZGUgb2YgRG94eWdlbikgdGhlIHVzZXIgY2Fu
IGRlZmluZSBhIGN1c3RvbSAiY3V0IiAvICJwYXN0ZSIgc3RyaW5nLg0KIyBFeGFtcGxlOg0KIyBX
QVJOX0xJTkVfRk9STUFUID0gIid2aSAkZmlsZSArJGxpbmUnIg0KIyBTZWUgYWxzbzogV0FSTl9G
T1JNQVQNCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IGF0IGxpbmUgJGxpbmUgb2YgZmlsZSAkZmls
ZS4NCg0KV0FSTl9MSU5FX0ZPUk1BVCAgICAgICA9ICJhdCBsaW5lICRsaW5lIG9mIGZpbGUgJGZp
bGUiDQoNCiMgVGhlIFdBUk5fTE9HRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIGZp
bGUgdG8gd2hpY2ggd2FybmluZyBhbmQgZXJyb3INCiMgbWVzc2FnZXMgc2hvdWxkIGJlIHdyaXR0
ZW4uIElmIGxlZnQgYmxhbmsgdGhlIG91dHB1dCBpcyB3cml0dGVuIHRvIHN0YW5kYXJkDQojIGVy
cm9yIChzdGRlcnIpLiBJbiBjYXNlIHRoZSBmaWxlIHNwZWNpZmllZCBjYW5ub3QgYmUgb3BlbmVk
IGZvciB3cml0aW5nIHRoZQ0KIyB3YXJuaW5nIGFuZCBlcnJvciBtZXNzYWdlcyBhcmUgd3JpdHRl
biB0byBzdGFuZGFyZCBlcnJvci4gV2hlbiBhcyBmaWxlIC0gaXMNCiMgc3BlY2lmaWVkIHRoZSB3
YXJuaW5nIGFuZCBlcnJvciBtZXNzYWdlcyBhcmUgd3JpdHRlbiB0byBzdGFuZGFyZCBvdXRwdXQN
CiMgKHN0ZG91dCkuDQoNCldBUk5fTE9HRklMRSAgICAgICAgICAgPQ0KDQojLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQojIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBpbnB1dCBmaWxl
cw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIFRoZSBJTlBVVCB0YWcgaXMgdXNlZCB0byBzcGVj
aWZ5IHRoZSBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdGhhdCBjb250YWluDQojIGRvY3VtZW50
ZWQgc291cmNlIGZpbGVzLiBZb3UgbWF5IGVudGVyIGZpbGUgbmFtZXMgbGlrZSBteWZpbGUuY3Bw
IG9yDQojIGRpcmVjdG9yaWVzIGxpa2UgL3Vzci9zcmMvbXlwcm9qZWN0LiBTZXBhcmF0ZSB0aGUg
ZmlsZXMgb3IgZGlyZWN0b3JpZXMgd2l0aA0KIyBzcGFjZXMuIFNlZSBhbHNvIEZJTEVfUEFUVEVS
TlMgYW5kIEVYVEVOU0lPTl9NQVBQSU5HDQojIE5vdGU6IElmIHRoaXMgdGFnIGlzIGVtcHR5IHRo
ZSBjdXJyZW50IGRpcmVjdG9yeSBpcyBzZWFyY2hlZC4NCg0KSU5QVVQgICAgICAgICAgICAgICAg
ICA9DQoNCiMgVGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgY2hhcmFjdGVyIGVu
Y29kaW5nIG9mIHRoZSBzb3VyY2UgZmlsZXMNCiMgdGhhdCBEb3h5Z2VuIHBhcnNlcy4gSW50ZXJu
YWxseSBEb3h5Z2VuIHVzZXMgdGhlIFVURi04IGVuY29kaW5nLiBEb3h5Z2VuIHVzZXMNCiMgbGli
aWNvbnYgKG9yIHRoZSBpY29udiBidWlsdCBpbnRvIGxpYmMpIGZvciB0aGUgdHJhbnNjb2Rpbmcu
IFNlZSB0aGUgbGliaWNvbnYNCiMgZG9jdW1lbnRhdGlvbiAoc2VlOg0KIyBodHRwczovL3d3dy5n
bnUub3JnL3NvZnR3YXJlL2xpYmljb252LykgZm9yIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGVuY29k
aW5ncy4NCiMgU2VlIGFsc286IElOUFVUX0ZJTEVfRU5DT0RJTkcNCiMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFVURi04Lg0KDQpJTlBVVF9FTkNPRElORyAgICAgICAgID0gVVRGLTgNCg0KIyBUaGlz
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhl
IHNvdXJjZSBmaWxlcw0KIyB0aGF0IERveHlnZW4gcGFyc2VzIFRoZSBJTlBVVF9GSUxFX0VOQ09E
SU5HIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5DQojIGNoYXJhY3RlciBlbmNvZGluZyBvbiBh
IHBlciBmaWxlIHBhdHRlcm4gYmFzaXMuIERveHlnZW4gd2lsbCBjb21wYXJlIHRoZSBmaWxlDQoj
IG5hbWUgd2l0aCBlYWNoIHBhdHRlcm4gYW5kIGFwcGx5IHRoZSBlbmNvZGluZyBpbnN0ZWFkIG9m
IHRoZSBkZWZhdWx0DQojIElOUFVUX0VOQ09ESU5HKSBpZiB0aGVyZSBpcyBhIG1hdGNoLiBUaGUg
Y2hhcmFjdGVyIGVuY29kaW5ncyBhcmUgYSBsaXN0IG9mIHRoZQ0KIyBmb3JtOiBwYXR0ZXJuPWVu
Y29kaW5nIChsaWtlICoucGhwPUlTTy04ODU5LTEpLg0KIyBTZWUgYWxzbzogSU5QVVRfRU5DT0RJ
TkcgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gc3VwcG9ydGVkIGVuY29kaW5ncy4NCg0KSU5Q
VVRfRklMRV9FTkNPRElORyAgICA9DQoNCiMgSWYgdGhlIHZhbHVlIG9mIHRoZSBJTlBVVCB0YWcg
Y29udGFpbnMgZGlyZWN0b3JpZXMsIHlvdSBjYW4gdXNlIHRoZQ0KIyBGSUxFX1BBVFRFUk5TIHRh
ZyB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIHBhdHRlcm5zIChsaWtlICouY3BwIGFu
ZA0KIyAqLmgpIHRvIGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBpbiB0aGUgZGlyZWN0b3Jp
ZXMuDQojDQojIE5vdGUgdGhhdCBmb3IgY3VzdG9tIGV4dGVuc2lvbnMgb3Igbm90IGRpcmVjdGx5
IHN1cHBvcnRlZCBleHRlbnNpb25zIHlvdSBhbHNvDQojIG5lZWQgdG8gc2V0IEVYVEVOU0lPTl9N
QVBQSU5HIGZvciB0aGUgZXh0ZW5zaW9uIG90aGVyd2lzZSB0aGUgZmlsZXMgYXJlIG5vdA0KIyBy
ZWFkIGJ5IERveHlnZW4uDQojDQojIE5vdGUgdGhlIGxpc3Qgb2YgZGVmYXVsdCBjaGVja2VkIGZp
bGUgcGF0dGVybnMgbWlnaHQgZGlmZmVyIGZyb20gdGhlIGxpc3Qgb2YNCiMgZGVmYXVsdCBmaWxl
IGV4dGVuc2lvbiBtYXBwaW5ncy4NCiMNCiMgSWYgbGVmdCBibGFuayB0aGUgZm9sbG93aW5nIHBh
dHRlcm5zIGFyZSB0ZXN0ZWQ6Ki5jLCAqLmNjLCAqLmN4eCwgKi5jeHhtLA0KIyAqLmNwcCwgKi5j
cHBtLCAqLmNjbSwgKi5jKyssICouYysrbSwgKi5qYXZhLCAqLmlpLCAqLml4eCwgKi5pcHAsICou
aSsrLCAqLmlubCwNCiMgKi5pZGwsICouZGRsLCAqLm9kbCwgKi5oLCAqLmhoLCAqLmh4eCwgKi5o
cHAsICouaCsrLCAqLml4eCwgKi5sLCAqLmNzLCAqLmQsDQojICoucGhwLCAqLnBocDQsICoucGhw
NSwgKi5waHRtbCwgKi5pbmMsICoubSwgKi5tYXJrZG93biwgKi5tZCwgKi5tbSwgKi5kb3ggKHRv
DQojIGJlIHByb3ZpZGVkIGFzIERveHlnZW4gQyBjb21tZW50KSwgKi5weSwgKi5weXcsICouZjkw
LCAqLmY5NSwgKi5mMDMsICouZjA4LA0KIyAqLmYxOCwgKi5mLCAqLmZvciwgKi52aGQsICoudmhk
bCwgKi51Y2YsICoucXNmIGFuZCAqLmljZS4NCg0KRklMRV9QQVRURVJOUyAgICAgICAgICA9ICou
YyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5jYyBcDQogICAgICAgICAgICAgICAgICAg
ICAgICAgKi5jeHggXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouY3h4bSBcDQogICAgICAg
ICAgICAgICAgICAgICAgICAgKi5jcHAgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouY3Bw
bSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5jY20gXA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICouYysrIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAqLmMrK20gXA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICouamF2YSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5p
aSBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5peHggXA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICouaXBwIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAqLmkrKyBcDQogICAgICAg
ICAgICAgICAgICAgICAgICAgKi5pbmwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouaWRs
IFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAqLmRkbCBcDQogICAgICAgICAgICAgICAgICAg
ICAgICAgKi5vZGwgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouaCBcDQogICAgICAgICAg
ICAgICAgICAgICAgICAgKi5oaCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5oeHggXA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICouaHBwIFwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAqLmgrKyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5peHggXA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICoubCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5jcyBcDQogICAg
ICAgICAgICAgICAgICAgICAgICAgKi5kIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAqLnBo
cCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5waHA0IFwNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAqLnBocDUgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICoucGh0bWwgXA0KICAg
ICAgICAgICAgICAgICAgICAgICAgICouaW5jIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAq
Lm0gXA0KICAgICAgICAgICAgICAgICAgICAgICAgICoubWFya2Rvd24gXA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICoubWQgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICoubW0gXA0KICAg
ICAgICAgICAgICAgICAgICAgICAgICouZG94IFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAq
LnB5IFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAqLnB5dyBcDQogICAgICAgICAgICAgICAg
ICAgICAgICAgKi5mOTAgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouZjk1IFwNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAqLmYwMyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi5m
MDggXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouZjE4IFwNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAqLmYgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouZm9yIFwNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAqLnZoZCBcDQogICAgICAgICAgICAgICAgICAgICAgICAgKi52aGRs
IFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAqLnVjZiBcDQogICAgICAgICAgICAgICAgICAg
ICAgICAgKi5xc2YgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICouaWNlDQoNCiMgVGhlIFJF
Q1VSU0lWRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB3aGV0aGVyIG9yIG5vdCBzdWJkaXJl
Y3RvcmllcyBzaG91bGQNCiMgYmUgc2VhcmNoZWQgZm9yIGlucHV0IGZpbGVzIGFzIHdlbGwuDQoj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KUkVDVVJTSVZFICAgICAgICAgICAgICA9IE5P
DQoNCiMgVGhlIEVYQ0xVREUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZmlsZXMgYW5kL29y
IGRpcmVjdG9yaWVzIHRoYXQgc2hvdWxkIGJlDQojIGV4Y2x1ZGVkIGZyb20gdGhlIElOUFVUIHNv
dXJjZSBmaWxlcy4gVGhpcyB3YXkgeW91IGNhbiBlYXNpbHkgZXhjbHVkZSBhDQojIHN1YmRpcmVj
dG9yeSBmcm9tIGEgZGlyZWN0b3J5IHRyZWUgd2hvc2Ugcm9vdCBpcyBzcGVjaWZpZWQgd2l0aCB0
aGUgSU5QVVQgdGFnLg0KIw0KIyBOb3RlIHRoYXQgcmVsYXRpdmUgcGF0aHMgYXJlIHJlbGF0aXZl
IHRvIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGljaCBEb3h5Z2VuIGlzDQojIHJ1bi4NCg0KRVhDTFVE
RSAgICAgICAgICAgICAgICA9DQoNCiMgVGhlIEVYQ0xVREVfU1lNTElOS1MgdGFnIGNhbiBiZSB1
c2VkIHRvIHNlbGVjdCB3aGV0aGVyIG9yIG5vdCBmaWxlcyBvcg0KIyBkaXJlY3RvcmllcyB0aGF0
IGFyZSBzeW1ib2xpYyBsaW5rcyAoYSBVbml4IGZpbGUgc3lzdGVtIGZlYXR1cmUpIGFyZSBleGNs
dWRlZA0KIyBmcm9tIHRoZSBpbnB1dC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpF
WENMVURFX1NZTUxJTktTICAgICAgID0gTk8NCg0KIyBJZiB0aGUgdmFsdWUgb2YgdGhlIElOUFVU
IHRhZyBjb250YWlucyBkaXJlY3RvcmllcywgeW91IGNhbiB1c2UgdGhlDQojIEVYQ0xVREVfUEFU
VEVSTlMgdGFnIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgd2lsZGNhcmQgcGF0dGVybnMgdG8gZXhj
bHVkZQ0KIyBjZXJ0YWluIGZpbGVzIGZyb20gdGhvc2UgZGlyZWN0b3JpZXMuDQojDQojIE5vdGUg
dGhhdCB0aGUgd2lsZGNhcmRzIGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIGZpbGUgd2l0aCBhYnNv
bHV0ZSBwYXRoLCBzbyB0bw0KIyBleGNsdWRlIGFsbCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBleGFt
cGxlIHVzZSB0aGUgcGF0dGVybiAqL3Rlc3QvKg0KDQpFWENMVURFX1BBVFRFUk5TICAgICAgID0N
Cg0KIyBUaGUgRVhDTFVERV9TWU1CT0xTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBv
ciBtb3JlIHN5bWJvbCBuYW1lcw0KIyAobmFtZXNwYWNlcywgY2xhc3NlcywgZnVuY3Rpb25zLCBl
dGMuKSB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIHRoZQ0KIyBvdXRwdXQuIFRoZSBzeW1i
b2wgbmFtZSBjYW4gYmUgYSBmdWxseSBxdWFsaWZpZWQgbmFtZSwgYSB3b3JkLCBvciBpZiB0aGUN
CiMgd2lsZGNhcmQgKiBpcyB1c2VkLCBhIHN1YnN0cmluZy4gRXhhbXBsZXM6IEFOYW1lc3BhY2Us
IEFDbGFzcywNCiMgQU5hbWVzcGFjZTo6QUNsYXNzLCBBTmFtZXNwYWNlOjoqVGVzdA0KDQpFWENM
VURFX1NZTUJPTFMgICAgICAgID0NCg0KIyBUaGUgRVhBTVBMRV9QQVRIIHRhZyBjYW4gYmUgdXNl
ZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGZpbGVzIG9yIGRpcmVjdG9yaWVzDQojIHRoYXQgY29u
dGFpbiBleGFtcGxlIGNvZGUgZnJhZ21lbnRzIHRoYXQgYXJlIGluY2x1ZGVkIChzZWUgdGhlIFxp
bmNsdWRlDQojIGNvbW1hbmQpLg0KDQpFWEFNUExFX1BBVEggICAgICAgICAgID0NCg0KIyBJZiB0
aGUgdmFsdWUgb2YgdGhlIEVYQU1QTEVfUEFUSCB0YWcgY29udGFpbnMgZGlyZWN0b3JpZXMsIHlv
dSBjYW4gdXNlIHRoZQ0KIyBFWEFNUExFX1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBt
b3JlIHdpbGRjYXJkIHBhdHRlcm4gKGxpa2UgKi5jcHAgYW5kDQojICouaCkgdG8gZmlsdGVyIG91
dCB0aGUgc291cmNlLWZpbGVzIGluIHRoZSBkaXJlY3Rvcmllcy4gSWYgbGVmdCBibGFuayBhbGwN
CiMgZmlsZXMgYXJlIGluY2x1ZGVkLg0KDQpFWEFNUExFX1BBVFRFUk5TICAgICAgID0gKg0KDQoj
IElmIHRoZSBFWEFNUExFX1JFQ1VSU0lWRSB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHN1YmRpcmVj
dG9yaWVzIHdpbGwgYmUNCiMgc2VhcmNoZWQgZm9yIGlucHV0IGZpbGVzIHRvIGJlIHVzZWQgd2l0
aCB0aGUgXGluY2x1ZGUgb3IgXGRvbnRpbmNsdWRlIGNvbW1hbmRzDQojIGlycmVzcGVjdGl2ZSBv
ZiB0aGUgdmFsdWUgb2YgdGhlIFJFQ1VSU0lWRSB0YWcuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4NCg0KRVhBTVBMRV9SRUNVUlNJVkUgICAgICA9IE5PDQoNCiMgVGhlIElNQUdFX1BBVEgg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZmlsZXMgb3IgZGlyZWN0b3Jp
ZXMNCiMgdGhhdCBjb250YWluIGltYWdlcyB0aGF0IGFyZSB0byBiZSBpbmNsdWRlZCBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiAoc2VlIHRoZQ0KIyBcaW1hZ2UgY29tbWFuZCkuDQoNCklNQUdFX1BBVEgg
ICAgICAgICAgICAgPQ0KDQojIFRoZSBJTlBVVF9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNw
ZWNpZnkgYSBwcm9ncmFtIHRoYXQgRG94eWdlbiBzaG91bGQNCiMgaW52b2tlIHRvIGZpbHRlciBm
b3IgZWFjaCBpbnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwgaW52b2tlIHRoZSBmaWx0ZXIgcHJvZ3Jh
bQ0KIyBieSBleGVjdXRpbmcgKHZpYSBwb3BlbigpKSB0aGUgY29tbWFuZDoNCiMNCiMgPGZpbHRl
cj4gPGlucHV0LWZpbGU+DQojDQojIHdoZXJlIDxmaWx0ZXI+IGlzIHRoZSB2YWx1ZSBvZiB0aGUg
SU5QVVRfRklMVEVSIHRhZywgYW5kIDxpbnB1dC1maWxlPiBpcyB0aGUNCiMgbmFtZSBvZiBhbiBp
bnB1dCBmaWxlLiBEb3h5Z2VuIHdpbGwgdGhlbiB1c2UgdGhlIG91dHB1dCB0aGF0IHRoZSBmaWx0
ZXINCiMgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRhcmQgb3V0cHV0LiBJZiBGSUxURVJfUEFUVEVS
TlMgaXMgc3BlY2lmaWVkLCB0aGlzIHRhZw0KIyB3aWxsIGJlIGlnbm9yZWQuDQojDQojIE5vdGUg
dGhhdCB0aGUgZmlsdGVyIG11c3Qgbm90IGFkZCBvciByZW1vdmUgbGluZXM7IGl0IGlzIGFwcGxp
ZWQgYmVmb3JlIHRoZQ0KIyBjb2RlIGlzIHNjYW5uZWQsIGJ1dCBub3Qgd2hlbiB0aGUgb3V0cHV0
IGNvZGUgaXMgZ2VuZXJhdGVkLiBJZiBsaW5lcyBhcmUgYWRkZWQNCiMgb3IgcmVtb3ZlZCwgdGhl
IGFuY2hvcnMgd2lsbCBub3QgYmUgcGxhY2VkIGNvcnJlY3RseS4NCiMNCiMgTm90ZSB0aGF0IERv
eHlnZW4gd2lsbCB1c2UgdGhlIGRhdGEgcHJvY2Vzc2VkIGFuZCB3cml0dGVuIHRvIHN0YW5kYXJk
IG91dHB1dA0KIyBmb3IgZnVydGhlciBwcm9jZXNzaW5nLCB0aGVyZWZvcmUgbm90aGluZyBlbHNl
LCBsaWtlIGRlYnVnIHN0YXRlbWVudHMgb3IgdXNlZA0KIyBjb21tYW5kcyAoc28gaW4gY2FzZSBv
ZiBhIFdpbmRvd3MgYmF0Y2ggZmlsZSBhbHdheXMgdXNlIEBlY2hvIE9GRiksIHNob3VsZCBiZQ0K
IyB3cml0dGVuIHRvIHN0YW5kYXJkIG91dHB1dC4NCiMNCiMgTm90ZSB0aGF0IGZvciBjdXN0b20g
ZXh0ZW5zaW9ucyBvciBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGV4dGVuc2lvbnMgeW91IGFsc28N
CiMgbmVlZCB0byBzZXQgRVhURU5TSU9OX01BUFBJTkcgZm9yIHRoZSBleHRlbnNpb24gb3RoZXJ3
aXNlIHRoZSBmaWxlcyBhcmUgbm90DQojIHByb3Blcmx5IHByb2Nlc3NlZCBieSBEb3h5Z2VuLg0K
DQpJTlBVVF9GSUxURVIgICAgICAgICAgID0NCg0KIyBUaGUgRklMVEVSX1BBVFRFUk5TIHRhZyBj
YW4gYmUgdXNlZCB0byBzcGVjaWZ5IGZpbHRlcnMgb24gYSBwZXIgZmlsZSBwYXR0ZXJuDQojIGJh
c2lzLiBEb3h5Z2VuIHdpbGwgY29tcGFyZSB0aGUgZmlsZSBuYW1lIHdpdGggZWFjaCBwYXR0ZXJu
IGFuZCBhcHBseSB0aGUNCiMgZmlsdGVyIGlmIHRoZXJlIGlzIGEgbWF0Y2guIFRoZSBmaWx0ZXJz
IGFyZSBhIGxpc3Qgb2YgdGhlIGZvcm06IHBhdHRlcm49ZmlsdGVyDQojIChsaWtlICouY3BwPW15
X2NwcF9maWx0ZXIpLiBTZWUgSU5QVVRfRklMVEVSIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIG9u
IGhvdw0KIyBmaWx0ZXJzIGFyZSB1c2VkLiBJZiB0aGUgRklMVEVSX1BBVFRFUk5TIHRhZyBpcyBl
bXB0eSBvciBpZiBub25lIG9mIHRoZQ0KIyBwYXR0ZXJucyBtYXRjaCB0aGUgZmlsZSBuYW1lLCBJ
TlBVVF9GSUxURVIgaXMgYXBwbGllZC4NCiMNCiMgTm90ZSB0aGF0IGZvciBjdXN0b20gZXh0ZW5z
aW9ucyBvciBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGV4dGVuc2lvbnMgeW91IGFsc28NCiMgbmVl
ZCB0byBzZXQgRVhURU5TSU9OX01BUFBJTkcgZm9yIHRoZSBleHRlbnNpb24gb3RoZXJ3aXNlIHRo
ZSBmaWxlcyBhcmUgbm90DQojIHByb3Blcmx5IHByb2Nlc3NlZCBieSBEb3h5Z2VuLg0KDQpGSUxU
RVJfUEFUVEVSTlMgICAgICAgID0NCg0KIyBJZiB0aGUgRklMVEVSX1NPVVJDRV9GSUxFUyB0YWcg
aXMgc2V0IHRvIFlFUywgdGhlIGlucHV0IGZpbHRlciAoaWYgc2V0IHVzaW5nDQojIElOUFVUX0ZJ
TFRFUikgd2lsbCBhbHNvIGJlIHVzZWQgdG8gZmlsdGVyIHRoZSBpbnB1dCBmaWxlcyB0aGF0IGFy
ZSB1c2VkIGZvcg0KIyBwcm9kdWNpbmcgdGhlIHNvdXJjZSBmaWxlcyB0byBicm93c2UgKGkuZS4g
d2hlbiBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTKS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLg0KDQpGSUxURVJfU09VUkNFX0ZJTEVTICAgID0gTk8NCg0KIyBUaGUgRklMVEVSX1NP
VVJDRV9QQVRURVJOUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBzb3VyY2UgZmlsdGVycyBw
ZXIgZmlsZQ0KIyBwYXR0ZXJuLiBBIHBhdHRlcm4gd2lsbCBvdmVycmlkZSB0aGUgc2V0dGluZyBm
b3IgRklMVEVSX1BBVFRFUk4gKGlmIGFueSkgYW5kDQojIGl0IGlzIGFsc28gcG9zc2libGUgdG8g
ZGlzYWJsZSBzb3VyY2UgZmlsdGVyaW5nIGZvciBhIHNwZWNpZmljIHBhdHRlcm4gdXNpbmcNCiMg
Ki5leHQ9IChzbyB3aXRob3V0IG5hbWluZyBhIGZpbHRlcikuDQojIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBGSUxURVJfU09VUkNFX0ZJTEVTIGlzIHNldCB0byBZRVMuDQoNCkZJTFRF
Ul9TT1VSQ0VfUEFUVEVSTlMgPQ0KDQojIElmIHRoZSBVU0VfTURGSUxFX0FTX01BSU5QQUdFIHRh
ZyByZWZlcnMgdG8gdGhlIG5hbWUgb2YgYSBtYXJrZG93biBmaWxlIHRoYXQNCiMgaXMgcGFydCBv
ZiB0aGUgaW5wdXQsIGl0cyBjb250ZW50cyB3aWxsIGJlIHBsYWNlZCBvbiB0aGUgbWFpbiBwYWdl
DQojIChpbmRleC5odG1sKS4gVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHlvdSBoYXZlIGEgcHJvamVj
dCBvbiBmb3IgaW5zdGFuY2UgR2l0SHViDQojIGFuZCB3YW50IHRvIHJldXNlIHRoZSBpbnRyb2R1
Y3Rpb24gcGFnZSBhbHNvIGZvciB0aGUgRG94eWdlbiBvdXRwdXQuDQoNClVTRV9NREZJTEVfQVNf
TUFJTlBBR0UgPQ0KDQojIFRoZSBGb3J0cmFuIHN0YW5kYXJkIHNwZWNpZmllcyB0aGF0IGZvciBm
aXhlZCBmb3JtYXR0ZWQgRm9ydHJhbiBjb2RlIGFsbA0KIyBjaGFyYWN0ZXJzIGZyb20gcG9zaXRp
b24gNzIgYXJlIHRvIGJlIGNvbnNpZGVyZWQgYXMgY29tbWVudC4gQSBjb21tb24NCiMgZXh0ZW5z
aW9uIGlzIHRvIGFsbG93IGxvbmdlciBsaW5lcyBiZWZvcmUgdGhlIGF1dG9tYXRpYyBjb21tZW50
IHN0YXJ0cy4gVGhlDQojIHNldHRpbmcgRk9SVFJBTl9DT01NRU5UX0FGVEVSIHdpbGwgYWxzbyBt
YWtlIGl0IHBvc3NpYmxlIHRoYXQgbG9uZ2VyIGxpbmVzIGNhbg0KIyBiZSBwcm9jZXNzZWQgYmVm
b3JlIHRoZSBhdXRvbWF0aWMgY29tbWVudCBzdGFydHMuDQojIE1pbmltdW0gdmFsdWU6IDcsIG1h
eGltdW0gdmFsdWU6IDEwMDAwLCBkZWZhdWx0IHZhbHVlOiA3Mi4NCg0KRk9SVFJBTl9DT01NRU5U
X0FGVEVSICA9IDcyDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ29uZmlndXJhdGlvbiBvcHRp
b25zIHJlbGF0ZWQgdG8gc291cmNlIGJyb3dzaW5nDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMg
SWYgdGhlIFNPVVJDRV9CUk9XU0VSIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gYSBsaXN0IG9mIHNv
dXJjZSBmaWxlcyB3aWxsIGJlDQojIGdlbmVyYXRlZC4gRG9jdW1lbnRlZCBlbnRpdGllcyB3aWxs
IGJlIGNyb3NzLXJlZmVyZW5jZWQgd2l0aCB0aGVzZSBzb3VyY2VzLg0KIw0KIyBOb3RlOiBUbyBn
ZXQgcmlkIG9mIGFsbCBzb3VyY2UgY29kZSBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dCwgbWFrZSBz
dXJlIHRoYXQNCiMgYWxzbyBWRVJCQVRJTV9IRUFERVJTIGlzIHNldCB0byBOTy4NCiMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpTT1VSQ0VfQlJPV1NFUiAgICAgICAgID0gTk8NCg0KIyBT
ZXR0aW5nIHRoZSBJTkxJTkVfU09VUkNFUyB0YWcgdG8gWUVTIHdpbGwgaW5jbHVkZSB0aGUgYm9k
eSBvZiBmdW5jdGlvbnMsDQojIG11bHRpLWxpbmUgbWFjcm9zLCBlbnVtcyBvciBsaXN0IGluaXRp
YWxpemVkIHZhcmlhYmxlcyBkaXJlY3RseSBpbnRvIHRoZQ0KIyBkb2N1bWVudGF0aW9uLg0KIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCklOTElORV9TT1VSQ0VTICAgICAgICAgPSBOTw0K
DQojIFNldHRpbmcgdGhlIFNUUklQX0NPREVfQ09NTUVOVFMgdGFnIHRvIFlFUyB3aWxsIGluc3Ry
dWN0IERveHlnZW4gdG8gaGlkZSBhbnkNCiMgc3BlY2lhbCBjb21tZW50IGJsb2NrcyBmcm9tIGdl
bmVyYXRlZCBzb3VyY2UgY29kZSBmcmFnbWVudHMuIE5vcm1hbCBDLCBDKysgYW5kDQojIEZvcnRy
YW4gY29tbWVudHMgd2lsbCBhbHdheXMgcmVtYWluIHZpc2libGUuDQojIFRoZSBkZWZhdWx0IHZh
bHVlIGlzOiBZRVMuDQoNClNUUklQX0NPREVfQ09NTUVOVFMgICAgPSBZRVMNCg0KIyBJZiB0aGUg
UkVGRVJFTkNFRF9CWV9SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRv
Y3VtZW50ZWQNCiMgZW50aXR5IGFsbCBkb2N1bWVudGVkIGZ1bmN0aW9ucyByZWZlcmVuY2luZyBp
dCB3aWxsIGJlIGxpc3RlZC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpSRUZFUkVO
Q0VEX0JZX1JFTEFUSU9OID0gTk8NCg0KIyBJZiB0aGUgUkVGRVJFTkNFU19SRUxBVElPTiB0YWcg
aXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRvY3VtZW50ZWQgZnVuY3Rpb24NCiMgYWxsIGRv
Y3VtZW50ZWQgZW50aXRpZXMgY2FsbGVkL3VzZWQgYnkgdGhhdCBmdW5jdGlvbiB3aWxsIGJlIGxp
c3RlZC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpSRUZFUkVOQ0VTX1JFTEFUSU9O
ICAgID0gTk8NCg0KIyBJZiB0aGUgUkVGRVJFTkNFU19MSU5LX1NPVVJDRSB0YWcgaXMgc2V0IHRv
IFlFUyBhbmQgU09VUkNFX0JST1dTRVIgdGFnIGlzIHNldA0KIyB0byBZRVMgdGhlbiB0aGUgaHlw
ZXJsaW5rcyBmcm9tIGZ1bmN0aW9ucyBpbiBSRUZFUkVOQ0VTX1JFTEFUSU9OIGFuZA0KIyBSRUZF
UkVOQ0VEX0JZX1JFTEFUSU9OIGxpc3RzIHdpbGwgbGluayB0byB0aGUgc291cmNlIGNvZGUuIE90
aGVyd2lzZSB0aGV5IHdpbGwNCiMgbGluayB0byB0aGUgZG9jdW1lbnRhdGlvbi4NCiMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KUkVGRVJFTkNFU19MSU5LX1NPVVJDRSA9IFlFUw0KDQoj
IElmIFNPVVJDRV9UT09MVElQUyBpcyBlbmFibGVkICh0aGUgZGVmYXVsdCkgdGhlbiBob3Zlcmlu
ZyBhIGh5cGVybGluayBpbiB0aGUNCiMgc291cmNlIGNvZGUgd2lsbCBzaG93IGEgdG9vbHRpcCB3
aXRoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gc3VjaCBhcyBwcm90b3R5cGUsDQojIGJyaWVmIGRl
c2NyaXB0aW9uIGFuZCBsaW5rcyB0byB0aGUgZGVmaW5pdGlvbiBhbmQgZG9jdW1lbnRhdGlvbi4g
U2luY2UgdGhpcw0KIyB3aWxsIG1ha2UgdGhlIEhUTUwgZmlsZSBsYXJnZXIgYW5kIGxvYWRpbmcg
b2YgbGFyZ2UgZmlsZXMgYSBiaXQgc2xvd2VyLCB5b3UNCiMgY2FuIG9wdCB0byBkaXNhYmxlIHRo
aXMgZmVhdHVyZS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCiMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIFNPVVJDRV9CUk9XU0VSIGlzIHNldCB0byBZRVMuDQoNClNPVVJD
RV9UT09MVElQUyAgICAgICAgPSBZRVMNCg0KIyBJZiB0aGUgVVNFX0hUQUdTIHRhZyBpcyBzZXQg
dG8gWUVTIHRoZW4gdGhlIHJlZmVyZW5jZXMgdG8gc291cmNlIGNvZGUgd2lsbA0KIyBwb2ludCB0
byB0aGUgSFRNTCBnZW5lcmF0ZWQgYnkgdGhlIGh0YWdzKDEpIHRvb2wgaW5zdGVhZCBvZiBEb3h5
Z2VuIGJ1aWx0LWluDQojIHNvdXJjZSBicm93c2VyLiBUaGUgaHRhZ3MgdG9vbCBpcyBwYXJ0IG9m
IEdOVSdzIGdsb2JhbCBzb3VyY2UgdGFnZ2luZyBzeXN0ZW0NCiMgKHNlZSBodHRwczovL3d3dy5n
bnUub3JnL3NvZnR3YXJlL2dsb2JhbC9nbG9iYWwuaHRtbCkuIFlvdSB3aWxsIG5lZWQgdmVyc2lv
bg0KIyA0LjguNiBvciBoaWdoZXIuDQojDQojIFRvIHVzZSBpdCBkbyB0aGUgZm9sbG93aW5nOg0K
IyAtIEluc3RhbGwgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGdsb2JhbA0KIyAtIEVuYWJsZSBTT1VS
Q0VfQlJPV1NFUiBhbmQgVVNFX0hUQUdTIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUNCiMgLSBN
YWtlIHN1cmUgdGhlIElOUFVUIHBvaW50cyB0byB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUN
CiMgLSBSdW4gZG94eWdlbiBhcyBub3JtYWwNCiMNCiMgRG94eWdlbiB3aWxsIGludm9rZSBodGFn
cyAoYW5kIHRoYXQgd2lsbCBpbiB0dXJuIGludm9rZSBndGFncyksIHNvIHRoZXNlDQojIHRvb2xz
IG11c3QgYmUgYXZhaWxhYmxlIGZyb20gdGhlIGNvbW1hbmQgbGluZSAoaS5lLiBpbiB0aGUgc2Vh
cmNoIHBhdGgpLg0KIw0KIyBUaGUgcmVzdWx0OiBpbnN0ZWFkIG9mIHRoZSBzb3VyY2UgYnJvd3Nl
ciBnZW5lcmF0ZWQgYnkgRG94eWdlbiwgdGhlIGxpbmtzIHRvDQojIHNvdXJjZSBjb2RlIHdpbGwg
bm93IHBvaW50IHRvIHRoZSBvdXRwdXQgb2YgaHRhZ3MuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBOTy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNPVVJDRV9CUk9XU0VSIGlz
IHNldCB0byBZRVMuDQoNClVTRV9IVEFHUyAgICAgICAgICAgICAgPSBOTw0KDQojIElmIHRoZSBW
RVJCQVRJTV9IRUFERVJTIHRhZyBpcyBzZXQgdGhlIFlFUyB0aGVuIERveHlnZW4gd2lsbCBnZW5l
cmF0ZSBhDQojIHZlcmJhdGltIGNvcHkgb2YgdGhlIGhlYWRlciBmaWxlIGZvciBlYWNoIGNsYXNz
IGZvciB3aGljaCBhbiBpbmNsdWRlIGlzDQojIHNwZWNpZmllZC4gU2V0IHRvIE5PIHRvIGRpc2Fi
bGUgdGhpcy4NCiMgU2VlIGFsc286IFNlY3Rpb24gXGNsYXNzLg0KIyBUaGUgZGVmYXVsdCB2YWx1
ZSBpczogWUVTLg0KDQpWRVJCQVRJTV9IRUFERVJTICAgICAgID0gWUVTDQoNCiMtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCiMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGFscGhhYmV0
aWNhbCBjbGFzcyBpbmRleA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIElmIHRoZSBBTFBIQUJF
VElDQUxfSU5ERVggdGFnIGlzIHNldCB0byBZRVMsIGFuIGFscGhhYmV0aWNhbCBpbmRleCBvZiBh
bGwNCiMgY29tcG91bmRzIHdpbGwgYmUgZ2VuZXJhdGVkLiBFbmFibGUgdGhpcyBpZiB0aGUgcHJv
amVjdCBjb250YWlucyBhIGxvdCBvZg0KIyBjbGFzc2VzLCBzdHJ1Y3RzLCB1bmlvbnMgb3IgaW50
ZXJmYWNlcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KQUxQSEFCRVRJQ0FMX0lO
REVYICAgICA9IFlFUw0KDQojIFRoZSBJR05PUkVfUFJFRklYIHRhZyBjYW4gYmUgdXNlZCB0byBz
cGVjaWZ5IGEgcHJlZml4IChvciBhIGxpc3Qgb2YgcHJlZml4ZXMpDQojIHRoYXQgc2hvdWxkIGJl
IGlnbm9yZWQgd2hpbGUgZ2VuZXJhdGluZyB0aGUgaW5kZXggaGVhZGVycy4gVGhlIElHTk9SRV9Q
UkVGSVgNCiMgdGFnIHdvcmtzIGZvciBjbGFzc2VzLCBmdW5jdGlvbiBhbmQgbWVtYmVyIG5hbWVz
LiBUaGUgZW50aXR5IHdpbGwgYmUgcGxhY2VkIGluDQojIHRoZSBhbHBoYWJldGljYWwgbGlzdCB1
bmRlciB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBlbnRpdHkgbmFtZSB0aGF0IHJlbWFpbnMNCiMg
YWZ0ZXIgcmVtb3ZpbmcgdGhlIHByZWZpeC4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEFMUEhBQkVUSUNBTF9JTkRFWCBpcyBzZXQgdG8gWUVTLg0KDQpJR05PUkVfUFJFRklYICAg
ICAgICAgID0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDb25maWd1cmF0aW9uIG9wdGlvbnMg
cmVsYXRlZCB0byB0aGUgSFRNTCBvdXRwdXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIyBJZiB0
aGUgR0VORVJBVEVfSFRNTCB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGdlbmVyYXRl
IEhUTUwgb3V0cHV0DQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNCkdFTkVSQVRFX0hU
TUwgICAgICAgICAgPSBZRVMNCg0KIyBUaGUgSFRNTF9PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3Bl
Y2lmeSB3aGVyZSB0aGUgSFRNTCBkb2NzIHdpbGwgYmUgcHV0LiBJZiBhDQojIHJlbGF0aXZlIHBh
dGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1dCBp
biBmcm9udCBvZg0KIyBpdC4NCiMgVGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiBodG1sLg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVT
Lg0KDQpIVE1MX09VVFBVVCAgICAgICAgICAgID0gaHRtbA0KDQojIFRoZSBIVE1MX0ZJTEVfRVhU
RU5TSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBmaWxlIGV4dGVuc2lvbiBmb3Ig
ZWFjaA0KIyBnZW5lcmF0ZWQgSFRNTCBwYWdlIChmb3IgZXhhbXBsZTogLmh0bSwgLnBocCwgLmFz
cCkuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiAuaHRtbC4NCiMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0KSFRNTF9GSUxFX0VY
VEVOU0lPTiAgICA9IC5odG1sDQoNCiMgVGhlIEhUTUxfSEVBREVSIHRhZyBjYW4gYmUgdXNlZCB0
byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIEhUTUwgaGVhZGVyIGZpbGUgZm9yDQojIGVhY2ggZ2Vu
ZXJhdGVkIEhUTUwgcGFnZS4gSWYgdGhlIHRhZyBpcyBsZWZ0IGJsYW5rIERveHlnZW4gd2lsbCBn
ZW5lcmF0ZSBhDQojIHN0YW5kYXJkIGhlYWRlci4NCiMNCiMgVG8gZ2V0IHZhbGlkIEhUTUwgdGhl
IGhlYWRlciBmaWxlIHRoYXQgaW5jbHVkZXMgYW55IHNjcmlwdHMgYW5kIHN0eWxlIHNoZWV0cw0K
IyB0aGF0IERveHlnZW4gbmVlZHMsIHdoaWNoIGlzIGRlcGVuZGVudCBvbiB0aGUgY29uZmlndXJh
dGlvbiBvcHRpb25zIHVzZWQgKGUuZy4NCiMgdGhlIHNldHRpbmcgR0VORVJBVEVfVFJFRVZJRVcp
LiBJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdG8gc3RhcnQgd2l0aCBhDQojIGRlZmF1bHQgaGVh
ZGVyIHVzaW5nDQojIGRveHlnZW4gLXcgaHRtbCBuZXdfaGVhZGVyLmh0bWwgbmV3X2Zvb3Rlci5o
dG1sIG5ld19zdHlsZXNoZWV0LmNzcw0KIyBZb3VyQ29uZmlnRmlsZQ0KIyBhbmQgdGhlbiBtb2Rp
ZnkgdGhlIGZpbGUgbmV3X2hlYWRlci5odG1sLiBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2VuIHVz
YWdlIg0KIyBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGhl
YWRlciB0aGF0IERveHlnZW4gbm9ybWFsbHkNCiMgdXNlcy4NCiMgTm90ZTogVGhlIGhlYWRlciBp
cyBzdWJqZWN0IHRvIGNoYW5nZSBzbyB5b3UgdHlwaWNhbGx5IGhhdmUgdG8gcmVnZW5lcmF0ZSB0
aGUNCiMgZGVmYXVsdCBoZWFkZXIgd2hlbiB1cGdyYWRpbmcgdG8gYSBuZXdlciB2ZXJzaW9uIG9m
IERveHlnZW4uIEZvciBhIGRlc2NyaXB0aW9uDQojIG9mIHRoZSBwb3NzaWJsZSBtYXJrZXJzIGFu
ZCBibG9jayBuYW1lcyBzZWUgdGhlIGRvY3VtZW50YXRpb24uDQojIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkhUTUxfSEVBREVS
ICAgICAgICAgICAgPQ0KDQojIFRoZSBIVE1MX0ZPT1RFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBhIHVzZXItZGVmaW5lZCBIVE1MIGZvb3RlciBmb3IgZWFjaA0KIyBnZW5lcmF0ZWQgSFRN
TCBwYWdlLiBJZiB0aGUgdGFnIGlzIGxlZnQgYmxhbmsgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEg
c3RhbmRhcmQNCiMgZm9vdGVyLiBTZWUgSFRNTF9IRUFERVIgZm9yIG1vcmUgaW5mb3JtYXRpb24g
b24gaG93IHRvIGdlbmVyYXRlIGEgZGVmYXVsdA0KIyBmb290ZXIgYW5kIHdoYXQgc3BlY2lhbCBj
b21tYW5kcyBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlIGZvb3Rlci4gU2VlIGFsc28NCiMgc2VjdGlv
biAiRG94eWdlbiB1c2FnZSIgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSB0aGUg
ZGVmYXVsdCBmb290ZXINCiMgdGhhdCBEb3h5Z2VuIG5vcm1hbGx5IHVzZXMuDQojIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkhU
TUxfRk9PVEVSICAgICAgICAgICAgPQ0KDQojIFRoZSBIVE1MX1NUWUxFU0hFRVQgdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgYSB1c2VyLWRlZmluZWQgY2FzY2FkaW5nIHN0eWxlDQojIHNoZWV0
IHRoYXQgaXMgdXNlZCBieSBlYWNoIEhUTUwgcGFnZS4gSXQgY2FuIGJlIHVzZWQgdG8gZmluZS10
dW5lIHRoZSBsb29rIG9mDQojIHRoZSBIVE1MIG91dHB1dC4gSWYgbGVmdCBibGFuayBEb3h5Z2Vu
IHdpbGwgZ2VuZXJhdGUgYSBkZWZhdWx0IHN0eWxlIHNoZWV0Lg0KIyBTZWUgYWxzbyBzZWN0aW9u
ICJEb3h5Z2VuIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZSBz
dHlsZQ0KIyBzaGVldCB0aGF0IERveHlnZW4gbm9ybWFsbHkgdXNlcy4NCiMgTm90ZTogSXQgaXMg
cmVjb21tZW5kZWQgdG8gdXNlIEhUTUxfRVhUUkFfU1RZTEVTSEVFVCBpbnN0ZWFkIG9mIHRoaXMg
dGFnLCBhcw0KIyBpdCBpcyBtb3JlIHJvYnVzdCBhbmQgdGhpcyB0YWcgKEhUTUxfU1RZTEVTSEVF
VCkgd2lsbCBpbiB0aGUgZnV0dXJlIGJlY29tZQ0KIyBvYnNvbGV0ZS4NCiMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0KSFRNTF9T
VFlMRVNIRUVUICAgICAgICA9DQoNCiMgVGhlIEhUTUxfRVhUUkFfU1RZTEVTSEVFVCB0YWcgY2Fu
IGJlIHVzZWQgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIHVzZXItZGVmaW5lZA0KIyBjYXNjYWRpbmcg
c3R5bGUgc2hlZXRzIHRoYXQgYXJlIGluY2x1ZGVkIGFmdGVyIHRoZSBzdGFuZGFyZCBzdHlsZSBz
aGVldHMNCiMgY3JlYXRlZCBieSBEb3h5Z2VuLiBVc2luZyB0aGlzIG9wdGlvbiBvbmUgY2FuIG92
ZXJydWxlIGNlcnRhaW4gc3R5bGUgYXNwZWN0cy4NCiMgVGhpcyBpcyBwcmVmZXJyZWQgb3ZlciB1
c2luZyBIVE1MX1NUWUxFU0hFRVQgc2luY2UgaXQgZG9lcyBub3QgcmVwbGFjZSB0aGUNCiMgc3Rh
bmRhcmQgc3R5bGUgc2hlZXQgYW5kIGlzIHRoZXJlZm9yZSBtb3JlIHJvYnVzdCBhZ2FpbnN0IGZ1
dHVyZSB1cGRhdGVzLg0KIyBEb3h5Z2VuIHdpbGwgY29weSB0aGUgc3R5bGUgc2hlZXQgZmlsZXMg
dG8gdGhlIG91dHB1dCBkaXJlY3RvcnkuDQojIE5vdGU6IFRoZSBvcmRlciBvZiB0aGUgZXh0cmEg
c3R5bGUgc2hlZXQgZmlsZXMgaXMgb2YgaW1wb3J0YW5jZSAoZS5nLiB0aGUgbGFzdA0KIyBzdHls
ZSBzaGVldCBpbiB0aGUgbGlzdCBvdmVycnVsZXMgdGhlIHNldHRpbmcgb2YgdGhlIHByZXZpb3Vz
IG9uZXMgaW4gdGhlDQojIGxpc3QpLg0KIyBOb3RlOiBTaW5jZSB0aGUgc3R5bGluZyBvZiBzY3Jv
bGxiYXJzIGNhbiBjdXJyZW50bHkgbm90IGJlIG92ZXJydWxlZCBpbg0KIyBXZWJraXQvQ2hyb21p
dW0sIHRoZSBzdHlsaW5nIHdpbGwgYmUgbGVmdCBvdXQgb2YgdGhlIGRlZmF1bHQgZG94eWdlbi5j
c3MgaWYNCiMgb25lIG9yIG1vcmUgZXh0cmEgc3R5bGVzaGVldHMgaGF2ZSBiZWVuIHNwZWNpZmll
ZC4gU28gaWYgc2Nyb2xsYmFyDQojIGN1c3RvbWl6YXRpb24gaXMgZGVzaXJlZCBpdCBoYXMgdG8g
YmUgYWRkZWQgZXhwbGljaXRseS4gRm9yIGFuIGV4YW1wbGUgc2VlIHRoZQ0KIyBkb2N1bWVudGF0
aW9uLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBz
ZXQgdG8gWUVTLg0KDQpIVE1MX0VYVFJBX1NUWUxFU0hFRVQgID0NCg0KIyBUaGUgSFRNTF9FWFRS
QV9GSUxFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBleHRyYSBpbWFn
ZXMgb3INCiMgb3RoZXIgc291cmNlIGZpbGVzIHdoaWNoIHNob3VsZCBiZSBjb3BpZWQgdG8gdGhl
IEhUTUwgb3V0cHV0IGRpcmVjdG9yeS4gTm90ZQ0KIyB0aGF0IHRoZXNlIGZpbGVzIHdpbGwgYmUg
Y29waWVkIHRvIHRoZSBiYXNlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeS4gVXNlIHRoZQ0KIyAkcmVs
cGF0aF4gbWFya2VyIGluIHRoZSBIVE1MX0hFQURFUiBhbmQvb3IgSFRNTF9GT09URVIgZmlsZXMg
dG8gbG9hZCB0aGVzZQ0KIyBmaWxlcy4gSW4gdGhlIEhUTUxfU1RZTEVTSEVFVCBmaWxlLCB1c2Ug
dGhlIGZpbGUgbmFtZSBvbmx5LiBBbHNvIG5vdGUgdGhhdCB0aGUNCiMgZmlsZXMgd2lsbCBiZSBj
b3BpZWQgYXMtaXM7IHRoZXJlIGFyZSBubyBjb21tYW5kcyBvciBtYXJrZXJzIGF2YWlsYWJsZS4N
CiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRv
IFlFUy4NCg0KSFRNTF9FWFRSQV9GSUxFUyAgICAgICA9DQoNCiMgVGhlIEhUTUxfQ09MT1JTVFlM
RSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBpZiB0aGUgZ2VuZXJhdGVkIEhUTUwgb3V0cHV0
DQojIHNob3VsZCBiZSByZW5kZXJlZCB3aXRoIGEgZGFyayBvciBsaWdodCB0aGVtZS4NCiMgUG9z
c2libGUgdmFsdWVzIGFyZTogTElHSFQgYWx3YXlzIGdlbmVyYXRlcyBsaWdodCBtb2RlIG91dHB1
dCwgREFSSyBhbHdheXMNCiMgZ2VuZXJhdGVzIGRhcmsgbW9kZSBvdXRwdXQsIEFVVE9fTElHSFQg
YXV0b21hdGljYWxseSBzZXRzIHRoZSBtb2RlIGFjY29yZGluZw0KIyB0byB0aGUgdXNlciBwcmVm
ZXJlbmNlLCB1c2VzIGxpZ2h0IG1vZGUgaWYgbm8gcHJlZmVyZW5jZSBpcyBzZXQgKHRoZSBkZWZh
dWx0KSwNCiMgQVVUT19EQVJLIGF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgbW9kZSBhY2NvcmRpbmcg
dG8gdGhlIHVzZXIgcHJlZmVyZW5jZSwgdXNlcw0KIyBkYXJrIG1vZGUgaWYgbm8gcHJlZmVyZW5j
ZSBpcyBzZXQgYW5kIFRPR0dMRSBhbGxvd3MgYSB1c2VyIHRvIHN3aXRjaCBiZXR3ZWVuDQojIGxp
Z2h0IGFuZCBkYXJrIG1vZGUgdmlhIGEgYnV0dG9uLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczog
QVVUT19MSUdIVC4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hU
TUwgaXMgc2V0IHRvIFlFUy4NCg0KSFRNTF9DT0xPUlNUWUxFICAgICAgICA9IEFVVE9fTElHSFQN
Cg0KIyBUaGUgSFRNTF9DT0xPUlNUWUxFX0hVRSB0YWcgY29udHJvbHMgdGhlIGNvbG9yIG9mIHRo
ZSBIVE1MIG91dHB1dC4gRG94eWdlbg0KIyB3aWxsIGFkanVzdCB0aGUgY29sb3JzIGluIHRoZSBz
dHlsZSBzaGVldCBhbmQgYmFja2dyb3VuZCBpbWFnZXMgYWNjb3JkaW5nIHRvDQojIHRoaXMgY29s
b3IuIEh1ZSBpcyBzcGVjaWZpZWQgYXMgYW4gYW5nbGUgb24gYSBjb2xvci13aGVlbCwgc2VlDQoj
IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0h1ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4g
Rm9yIGluc3RhbmNlIHRoZSB2YWx1ZQ0KIyAwIHJlcHJlc2VudHMgcmVkLCA2MCBpcyB5ZWxsb3cs
IDEyMCBpcyBncmVlbiwgMTgwIGlzIGN5YW4sIDI0MCBpcyBibHVlLCAzMDANCiMgcHVycGxlLCBh
bmQgMzYwIGlzIHJlZCBhZ2Fpbi4NCiMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTog
MzU5LCBkZWZhdWx0IHZhbHVlOiAyMjAuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkhUTUxfQ09MT1JTVFlMRV9IVUUgICAg
PSAyMjANCg0KIyBUaGUgSFRNTF9DT0xPUlNUWUxFX1NBVCB0YWcgY29udHJvbHMgdGhlIHB1cml0
eSAob3Igc2F0dXJhdGlvbikgb2YgdGhlIGNvbG9ycw0KIyBpbiB0aGUgSFRNTCBvdXRwdXQuIEZv
ciBhIHZhbHVlIG9mIDAgdGhlIG91dHB1dCB3aWxsIHVzZSBncmF5LXNjYWxlcyBvbmx5LiBBDQoj
IHZhbHVlIG9mIDI1NSB3aWxsIHByb2R1Y2UgdGhlIG1vc3Qgdml2aWQgY29sb3JzLg0KIyBNaW5p
bXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAyNTUsIGRlZmF1bHQgdmFsdWU6IDEwMC4NCiMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlF
Uy4NCg0KSFRNTF9DT0xPUlNUWUxFX1NBVCAgICA9IDEwMA0KDQojIFRoZSBIVE1MX0NPTE9SU1RZ
TEVfR0FNTUEgdGFnIGNvbnRyb2xzIHRoZSBnYW1tYSBjb3JyZWN0aW9uIGFwcGxpZWQgdG8gdGhl
DQojIGx1bWluYW5jZSBjb21wb25lbnQgb2YgdGhlIGNvbG9ycyBpbiB0aGUgSFRNTCBvdXRwdXQu
IFZhbHVlcyBiZWxvdyAxMDANCiMgZ3JhZHVhbGx5IG1ha2UgdGhlIG91dHB1dCBsaWdodGVyLCB3
aGVyZWFzIHZhbHVlcyBhYm92ZSAxMDAgbWFrZSB0aGUgb3V0cHV0DQojIGRhcmtlci4gVGhlIHZh
bHVlIGRpdmlkZWQgYnkgMTAwIGlzIHRoZSBhY3R1YWwgZ2FtbWEgYXBwbGllZCwgc28gODAgcmVw
cmVzZW50cw0KIyBhIGdhbW1hIG9mIDAuOCwgVGhlIHZhbHVlIDIyMCByZXByZXNlbnRzIGEgZ2Ft
bWEgb2YgMi4yLCBhbmQgMTAwIGRvZXMgbm90DQojIGNoYW5nZSB0aGUgZ2FtbWEuDQojIE1pbmlt
dW0gdmFsdWU6IDQwLCBtYXhpbXVtIHZhbHVlOiAyNDAsIGRlZmF1bHQgdmFsdWU6IDgwLg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVT
Lg0KDQpIVE1MX0NPTE9SU1RZTEVfR0FNTUEgID0gODANCg0KIyBJZiB0aGUgSFRNTF9EWU5BTUlD
X01FTlVTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGdlbmVyYXRlZCBIVE1MDQojIGRvY3Vt
ZW50YXRpb24gd2lsbCBjb250YWluIGEgbWFpbiBpbmRleCB3aXRoIHZlcnRpY2FsIG5hdmlnYXRp
b24gbWVudXMgdGhhdA0KIyBhcmUgZHluYW1pY2FsbHkgY3JlYXRlZCB2aWEgSmF2YVNjcmlwdC4g
SWYgZGlzYWJsZWQsIHRoZSBuYXZpZ2F0aW9uIGluZGV4IHdpbGwNCiMgY29uc2lzdHMgb2YgbXVs
dGlwbGUgbGV2ZWxzIG9mIHRhYnMgdGhhdCBhcmUgc3RhdGljYWxseSBlbWJlZGRlZCBpbiBldmVy
eSBIVE1MDQojIHBhZ2UuIERpc2FibGUgdGhpcyBvcHRpb24gdG8gc3VwcG9ydCBicm93c2VycyB0
aGF0IGRvIG5vdCBoYXZlIEphdmFTY3JpcHQsDQojIGxpa2UgdGhlIFF0IGhlbHAgYnJvd3Nlci4N
CiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0KSFRNTF9EWU5BTUlDX01FTlVT
ICAgICA9IFlFUw0KDQojIElmIHRoZSBIVE1MX0RZTkFNSUNfU0VDVElPTlMgdGFnIGlzIHNldCB0
byBZRVMgdGhlbiB0aGUgZ2VuZXJhdGVkIEhUTUwNCiMgZG9jdW1lbnRhdGlvbiB3aWxsIGNvbnRh
aW4gc2VjdGlvbnMgdGhhdCBjYW4gYmUgaGlkZGVuIGFuZCBzaG93biBhZnRlciB0aGUNCiMgcGFn
ZSBoYXMgbG9hZGVkLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkhUTUxf
RFlOQU1JQ19TRUNUSU9OUyAgPSBOTw0KDQojIElmIHRoZSBIVE1MX0NPREVfRk9MRElORyB0YWcg
aXMgc2V0IHRvIFlFUyB0aGVuIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyBjYW4gYmUNCiMgZHluYW1p
Y2FsbHkgZm9sZGVkIGFuZCBleHBhbmRlZCBpbiB0aGUgZ2VuZXJhdGVkIEhUTUwgc291cmNlIGNv
ZGUuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkhUTUxfQ09ERV9GT0xE
SU5HICAgICAgPSBZRVMNCg0KIyBJZiB0aGUgSFRNTF9DT1BZX0NMSVBCT0FSRCB0YWcgaXMgc2V0
IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBzaG93IGFuIGljb24gaW4NCiMgdGhlIHRvcCByaWdo
dCBjb3JuZXIgb2YgY29kZSBhbmQgdGV4dCBmcmFnbWVudHMgdGhhdCBhbGxvd3MgdGhlIHVzZXIg
dG8gY29weQ0KIyBpdHMgY29udGVudCB0byB0aGUgY2xpcGJvYXJkLiBOb3RlIHRoaXMgb25seSB3
b3JrcyBpZiBzdXBwb3J0ZWQgYnkgdGhlIGJyb3dzZXINCiMgYW5kIHRoZSB3ZWIgcGFnZSBpcyBz
ZXJ2ZWQgdmlhIGEgc2VjdXJlIGNvbnRleHQgKHNlZToNCiMgaHR0cHM6Ly93d3cudzMub3JnL1RS
L3NlY3VyZS1jb250ZXh0cy8pLCBpLmUuIHVzaW5nIHRoZSBodHRwczogb3IgZmlsZToNCiMgcHJv
dG9jb2wuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQojIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkhUTUxfQ09QWV9D
TElQQk9BUkQgICAgPSBZRVMNCg0KIyBEb3h5Z2VuIHN0b3JlcyBhIGNvdXBsZSBvZiBzZXR0aW5n
cyBwZXJzaXN0ZW50bHkgaW4gdGhlIGJyb3dzZXIgKHZpYSBlLmcuDQojIGNvb2tpZXMpLiBCeSBk
ZWZhdWx0IHRoZXNlIHNldHRpbmdzIGFwcGx5IHRvIGFsbCBIVE1MIHBhZ2VzIGdlbmVyYXRlZCBi
eQ0KIyBEb3h5Z2VuIGFjcm9zcyBhbGwgcHJvamVjdHMuIFRoZSBIVE1MX1BST0pFQ1RfQ09PS0lF
IHRhZyBjYW4gYmUgdXNlZCB0byBzdG9yZQ0KIyB0aGUgc2V0dGluZ3MgdW5kZXIgYSBwcm9qZWN0
IHNwZWNpZmljIGtleSwgc3VjaCB0aGF0IHRoZSB1c2VyIHByZWZlcmVuY2VzIHdpbGwNCiMgYmUg
c3RvcmVkIHNlcGFyYXRlbHkuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5F
UkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkhUTUxfUFJPSkVDVF9DT09LSUUgICAgPQ0KDQoj
IFdpdGggSFRNTF9JTkRFWF9OVU1fRU5UUklFUyBvbmUgY2FuIGNvbnRyb2wgdGhlIHByZWZlcnJl
ZCBudW1iZXIgb2YgZW50cmllcw0KIyBzaG93biBpbiB0aGUgdmFyaW91cyB0cmVlIHN0cnVjdHVy
ZWQgaW5kaWNlcyBpbml0aWFsbHk7IHRoZSB1c2VyIGNhbiBleHBhbmQNCiMgYW5kIGNvbGxhcHNl
IGVudHJpZXMgZHluYW1pY2FsbHkgbGF0ZXIgb24uIERveHlnZW4gd2lsbCBleHBhbmQgdGhlIHRy
ZWUgdG8NCiMgc3VjaCBhIGxldmVsIHRoYXQgYXQgbW9zdCB0aGUgc3BlY2lmaWVkIG51bWJlciBv
ZiBlbnRyaWVzIGFyZSB2aXNpYmxlICh1bmxlc3MNCiMgYSBmdWxseSBjb2xsYXBzZWQgdHJlZSBh
bHJlYWR5IGV4Y2VlZHMgdGhpcyBhbW91bnQpLiBTbyBzZXR0aW5nIHRoZSBudW1iZXIgb2YNCiMg
ZW50cmllcyAxIHdpbGwgcHJvZHVjZSBhIGZ1bGwgY29sbGFwc2VkIHRyZWUgYnkgZGVmYXVsdC4g
MCBpcyBhIHNwZWNpYWwgdmFsdWUNCiMgcmVwcmVzZW50aW5nIGFuIGluZmluaXRlIG51bWJlciBv
ZiBlbnRyaWVzIGFuZCB3aWxsIHJlc3VsdCBpbiBhIGZ1bGwgZXhwYW5kZWQNCiMgdHJlZSBieSBk
ZWZhdWx0Lg0KIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5OTk5LCBkZWZhdWx0
IHZhbHVlOiAxMDAuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9I
VE1MIGlzIHNldCB0byBZRVMuDQoNCkhUTUxfSU5ERVhfTlVNX0VOVFJJRVMgPSAxMDANCg0KIyBJ
ZiB0aGUgR0VORVJBVEVfRE9DU0VUIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRpdGlvbmFsIGluZGV4
IGZpbGVzIHdpbGwgYmUNCiMgZ2VuZXJhdGVkIHRoYXQgY2FuIGJlIHVzZWQgYXMgaW5wdXQgZm9y
IEFwcGxlJ3MgWGNvZGUgMyBpbnRlZ3JhdGVkIGRldmVsb3BtZW50DQojIGVudmlyb25tZW50IChz
ZWU6DQojIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS94Y29kZS8pLCBpbnRyb2R1Y2VkIHdp
dGggT1NYIDEwLjUgKExlb3BhcmQpLiBUbw0KIyBjcmVhdGUgYSBkb2N1bWVudGF0aW9uIHNldCwg
RG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgTWFrZWZpbGUgaW4gdGhlIEhUTUwNCiMgb3V0cHV0IGRp
cmVjdG9yeS4gUnVubmluZyBtYWtlIHdpbGwgcHJvZHVjZSB0aGUgZG9jc2V0IGluIHRoYXQgZGly
ZWN0b3J5IGFuZA0KIyBydW5uaW5nIG1ha2UgaW5zdGFsbCB3aWxsIGluc3RhbGwgdGhlIGRvY3Nl
dCBpbg0KIyB+L0xpYnJhcnkvRGV2ZWxvcGVyL1NoYXJlZC9Eb2N1bWVudGF0aW9uL0RvY1NldHMg
c28gdGhhdCBYY29kZSB3aWxsIGZpbmQgaXQgYXQNCiMgc3RhcnR1cC4gU2VlIGh0dHBzOi8vZGV2
ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2FyY2hpdmUvZmVhdHVyZWRhcnRpY2xlcy9Eb3h5DQoj
IGdlblhjb2RlL19pbmRleC5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLg0KIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkdFTkVSQVRFX0RPQ1NFVCAgICAgICAgPSBOTw0KDQoj
IFRoaXMgdGFnIGRldGVybWluZXMgdGhlIG5hbWUgb2YgdGhlIGRvY3NldCBmZWVkLiBBIGRvY3Vt
ZW50YXRpb24gZmVlZCBwcm92aWRlcw0KIyBhbiB1bWJyZWxsYSB1bmRlciB3aGljaCBtdWx0aXBs
ZSBkb2N1bWVudGF0aW9uIHNldHMgZnJvbSBhIHNpbmdsZSBwcm92aWRlcg0KIyAoc3VjaCBhcyBh
IGNvbXBhbnkgb3IgcHJvZHVjdCBzdWl0ZSkgY2FuIGJlIGdyb3VwZWQuDQojIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBEb3h5Z2VuIGdlbmVyYXRlZCBkb2NzLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DU0VUIGlzIHNldCB0byBZRVMuDQoNCkRPQ1NFVF9GRUVE
TkFNRSAgICAgICAgPSAiRG94eWdlbiBnZW5lcmF0ZWQgZG9jcyINCg0KIyBUaGlzIHRhZyBkZXRl
cm1pbmVzIHRoZSBVUkwgb2YgdGhlIGRvY3NldCBmZWVkLiBBIGRvY3VtZW50YXRpb24gZmVlZCBw
cm92aWRlcw0KIyBhbiB1bWJyZWxsYSB1bmRlciB3aGljaCBtdWx0aXBsZSBkb2N1bWVudGF0aW9u
IHNldHMgZnJvbSBhIHNpbmdsZSBwcm92aWRlcg0KIyAoc3VjaCBhcyBhIGNvbXBhbnkgb3IgcHJv
ZHVjdCBzdWl0ZSkgY2FuIGJlIGdyb3VwZWQuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhl
IHRhZyBHRU5FUkFURV9ET0NTRVQgaXMgc2V0IHRvIFlFUy4NCg0KRE9DU0VUX0ZFRURVUkwgICAg
ICAgICA9DQoNCiMgVGhpcyB0YWcgc3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQgc2hvdWxkIHVuaXF1
ZWx5IGlkZW50aWZ5IHRoZSBkb2N1bWVudGF0aW9uDQojIHNldCBidW5kbGUuIFRoaXMgc2hvdWxk
IGJlIGEgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZSBzdHJpbmcsIGUuZy4NCiMgY29tLm15Y29t
cGFueS5NeURvY1NldC4gRG94eWdlbiB3aWxsIGFwcGVuZCAuZG9jc2V0IHRvIHRoZSBuYW1lLg0K
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4uUHJvamVjdC4NCiMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLg0KDQpE
T0NTRVRfQlVORExFX0lEICAgICAgID0gb3JnLmRveHlnZW4uUHJvamVjdA0KDQojIFRoZSBET0NT
RVRfUFVCTElTSEVSX0lEIHRhZyBzcGVjaWZpZXMgYSBzdHJpbmcgdGhhdCBzaG91bGQgdW5pcXVl
bHkgaWRlbnRpZnkNCiMgdGhlIGRvY3VtZW50YXRpb24gcHVibGlzaGVyLiBUaGlzIHNob3VsZCBi
ZSBhIHJldmVyc2UgZG9tYWluLW5hbWUgc3R5bGUNCiMgc3RyaW5nLCBlLmcuIGNvbS5teWNvbXBh
bnkuTXlEb2NTZXQuZG9jdW1lbnRhdGlvbi4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG9yZy5k
b3h5Z2VuLlB1Ymxpc2hlci4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVS
QVRFX0RPQ1NFVCBpcyBzZXQgdG8gWUVTLg0KDQpET0NTRVRfUFVCTElTSEVSX0lEICAgID0gb3Jn
LmRveHlnZW4uUHVibGlzaGVyDQoNCiMgVGhlIERPQ1NFVF9QVUJMSVNIRVJfTkFNRSB0YWcgaWRl
bnRpZmllcyB0aGUgZG9jdW1lbnRhdGlvbiBwdWJsaXNoZXIuDQojIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBQdWJsaXNoZXIuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9ET0NTRVQgaXMgc2V0IHRvIFlFUy4NCg0KRE9DU0VUX1BVQkxJU0hFUl9OQU1FICA9IFB1Ymxp
c2hlcg0KDQojIElmIHRoZSBHRU5FUkFURV9IVE1MSEVMUCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVu
IERveHlnZW4gZ2VuZXJhdGVzIHRocmVlDQojIGFkZGl0aW9uYWwgSFRNTCBpbmRleCBmaWxlczog
aW5kZXguaGhwLCBpbmRleC5oaGMsIGFuZCBpbmRleC5oaGsuIFRoZQ0KIyBpbmRleC5oaHAgaXMg
YSBwcm9qZWN0IGZpbGUgdGhhdCBjYW4gYmUgcmVhZCBieSBNaWNyb3NvZnQncyBIVE1MIEhlbHAg
V29ya3Nob3ANCiMgb24gV2luZG93cy4gSW4gdGhlIGJlZ2lubmluZyBvZiAyMDIxIE1pY3Jvc29m
dCB0b29rIHRoZSBvcmlnaW5hbCBwYWdlLCB3aXRoDQojIGEuby4gdGhlIGRvd25sb2FkIGxpbmtz
LCBvZmZsaW5lIHRoZSBIVE1MIGhlbHAgd29ya3Nob3Agd2FzIGFscmVhZHkgbWFueSB5ZWFycw0K
IyBpbiBtYWludGVuYW5jZSBtb2RlKS4gWW91IGNhbiBkb3dubG9hZCB0aGUgSFRNTCBoZWxwIHdv
cmtzaG9wIGZyb20gdGhlIHdlYg0KIyBhcmNoaXZlcyBhdCBJbnN0YWxsYXRpb24gZXhlY3V0YWJs
ZSAoc2VlOg0KIyBodHRwOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE2MDIwMTA2MzI1NS9odHRw
Oi8vZG93bmxvYWQubWljcm9zb2Z0LmNvbS9kb3dubG8NCiMgYWQvMC9BLzkvMEE5MzlFRjYtRTMx
Qy00MzBGLUEzREYtREZBRTc5NjBENTY0L2h0bWxoZWxwLmV4ZSkuDQojDQojIFRoZSBIVE1MIEhl
bHAgV29ya3Nob3AgY29udGFpbnMgYSBjb21waWxlciB0aGF0IGNhbiBjb252ZXJ0IGFsbCBIVE1M
IG91dHB1dA0KIyBnZW5lcmF0ZWQgYnkgRG94eWdlbiBpbnRvIGEgc2luZ2xlIGNvbXBpbGVkIEhU
TUwgZmlsZSAoLmNobSkuIENvbXBpbGVkIEhUTUwNCiMgZmlsZXMgYXJlIG5vdyB1c2VkIGFzIHRo
ZSBXaW5kb3dzIDk4IGhlbHAgZm9ybWF0LCBhbmQgd2lsbCByZXBsYWNlIHRoZSBvbGQNCiMgV2lu
ZG93cyBoZWxwIGZvcm1hdCAoLmhscCkgb24gYWxsIFdpbmRvd3MgcGxhdGZvcm1zIGluIHRoZSBm
dXR1cmUuIENvbXByZXNzZWQNCiMgSFRNTCBmaWxlcyBhbHNvIGNvbnRhaW4gYW4gaW5kZXgsIGEg
dGFibGUgb2YgY29udGVudHMsIGFuZCB5b3UgY2FuIHNlYXJjaCBmb3INCiMgd29yZHMgaW4gdGhl
IGRvY3VtZW50YXRpb24uIFRoZSBIVE1MIHdvcmtzaG9wIGFsc28gY29udGFpbnMgYSB2aWV3ZXIg
Zm9yDQojIGNvbXByZXNzZWQgSFRNTCBmaWxlcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5P
Lg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQg
dG8gWUVTLg0KDQpHRU5FUkFURV9IVE1MSEVMUCAgICAgID0gTk8NCg0KIyBUaGUgQ0hNX0ZJTEUg
dGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGZpbGUgbmFtZSBvZiB0aGUgcmVzdWx0aW5n
IC5jaG0NCiMgZmlsZS4gWW91IGNhbiBhZGQgYSBwYXRoIGluIGZyb250IG9mIHRoZSBmaWxlIGlm
IHRoZSByZXN1bHQgc2hvdWxkIG5vdCBiZQ0KIyB3cml0dGVuIHRvIHRoZSBodG1sIG91dHB1dCBk
aXJlY3RvcnkuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1M
SEVMUCBpcyBzZXQgdG8gWUVTLg0KDQpDSE1fRklMRSAgICAgICAgICAgICAgID0NCg0KIyBUaGUg
SEhDX0xPQ0FUSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiAoYWJz
b2x1dGUgcGF0aA0KIyBpbmNsdWRpbmcgZmlsZSBuYW1lKSBvZiB0aGUgSFRNTCBoZWxwIGNvbXBp
bGVyIChoaGMuZXhlKS4gSWYgbm9uLWVtcHR5LA0KIyBEb3h5Z2VuIHdpbGwgdHJ5IHRvIHJ1biB0
aGUgSFRNTCBoZWxwIGNvbXBpbGVyIG9uIHRoZSBnZW5lcmF0ZWQgaW5kZXguaGhwLg0KIyBUaGUg
ZmlsZSBoYXMgdG8gYmUgc3BlY2lmaWVkIHdpdGggZnVsbCBwYXRoLg0KIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4NCg0KSEhD
X0xPQ0FUSU9OICAgICAgICAgICA9DQoNCiMgVGhlIEdFTkVSQVRFX0NISSBmbGFnIGNvbnRyb2xz
IGlmIGEgc2VwYXJhdGUgLmNoaSBpbmRleCBmaWxlIGlzIGdlbmVyYXRlZA0KIyAoWUVTKSBvciB0
aGF0IGl0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgbWFpbiAuY2htIGZpbGUgKE5PKS4NCiMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4NCg0KR0VORVJBVEVfQ0hJICAgICAg
ICAgICA9IE5PDQoNCiMgVGhlIENITV9JTkRFWF9FTkNPRElORyBpcyB1c2VkIHRvIGVuY29kZSBI
dG1sSGVscCBpbmRleCAoaGhrKSwgY29udGVudCAoaGhjKQ0KIyBhbmQgcHJvamVjdCBmaWxlIGNv
bnRlbnQuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MSEVM
UCBpcyBzZXQgdG8gWUVTLg0KDQpDSE1fSU5ERVhfRU5DT0RJTkcgICAgID0NCg0KIyBUaGUgQklO
QVJZX1RPQyBmbGFnIGNvbnRyb2xzIHdoZXRoZXIgYSBiaW5hcnkgdGFibGUgb2YgY29udGVudHMg
aXMgZ2VuZXJhdGVkDQojIChZRVMpIG9yIGEgbm9ybWFsIHRhYmxlIG9mIGNvbnRlbnRzIChOTykg
aW4gdGhlIC5jaG0gZmlsZS4gRnVydGhlcm1vcmUgaXQNCiMgZW5hYmxlcyB0aGUgUHJldmlvdXMg
YW5kIE5leHQgYnV0dG9ucy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4N
Cg0KQklOQVJZX1RPQyAgICAgICAgICAgICA9IE5PDQoNCiMgVGhlIFRPQ19FWFBBTkQgZmxhZyBj
YW4gYmUgc2V0IHRvIFlFUyB0byBhZGQgZXh0cmEgaXRlbXMgZm9yIGdyb3VwIG1lbWJlcnMgdG8N
CiMgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG9mIHRoZSBIVE1MIGhlbHAgZG9jdW1lbnRhdGlvbiBh
bmQgdG8gdGhlIHRyZWUgdmlldy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlF
Uy4NCg0KVE9DX0VYUEFORCAgICAgICAgICAgICA9IE5PDQoNCiMgVGhlIFNJVEVNQVBfVVJMIHRh
ZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIGZ1bGwgVVJMIG9mIHRoZSBwbGFjZSB3aGVyZSB0aGUN
CiMgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gd2lsbCBiZSBwbGFjZWQgb24gdGhlIHNlcnZlciBi
eSB0aGUgdXNlciBkdXJpbmcgdGhlDQojIGRlcGxveW1lbnQgb2YgdGhlIGRvY3VtZW50YXRpb24u
IFRoZSBnZW5lcmF0ZWQgc2l0ZW1hcCBpcyBjYWxsZWQgc2l0ZW1hcC54bWwNCiMgYW5kIHBsYWNl
ZCBvbiB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBieSBIVE1MX09VVFBVVC4gSW4gY2FzZSBubyBT
SVRFTUFQX1VSTA0KIyBpcyBzcGVjaWZpZWQgbm8gc2l0ZW1hcCBpcyBnZW5lcmF0ZWQuIEZvciBp
bmZvcm1hdGlvbiBhYm91dCB0aGUgc2l0ZW1hcA0KIyBwcm90b2NvbCBzZWUgaHR0cHM6Ly93d3cu
c2l0ZW1hcHMub3JnDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9I
VE1MIGlzIHNldCB0byBZRVMuDQoNClNJVEVNQVBfVVJMICAgICAgICAgICAgPQ0KDQojIElmIHRo
ZSBHRU5FUkFURV9RSFAgdGFnIGlzIHNldCB0byBZRVMgYW5kIGJvdGggUUhQX05BTUVTUEFDRSBh
bmQNCiMgUUhQX1ZJUlRVQUxfRk9MREVSIGFyZSBzZXQsIGFuIGFkZGl0aW9uYWwgaW5kZXggZmls
ZSB3aWxsIGJlIGdlbmVyYXRlZCB0aGF0DQojIGNhbiBiZSB1c2VkIGFzIGlucHV0IGZvciBRdCdz
IHFoZWxwZ2VuZXJhdG9yIHRvIGdlbmVyYXRlIGEgUXQgQ29tcHJlc3NlZCBIZWxwDQojICgucWNo
KSBvZiB0aGUgZ2VuZXJhdGVkIEhUTUwgZG9jdW1lbnRhdGlvbi4NCiMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRN
TCBpcyBzZXQgdG8gWUVTLg0KDQpHRU5FUkFURV9RSFAgICAgICAgICAgID0gTk8NCg0KIyBJZiB0
aGUgUUhHX0xPQ0FUSU9OIHRhZyBpcyBzcGVjaWZpZWQsIHRoZSBRQ0hfRklMRSB0YWcgY2FuIGJl
IHVzZWQgdG8gc3BlY2lmeQ0KIyB0aGUgZmlsZSBuYW1lIG9mIHRoZSByZXN1bHRpbmcgLnFjaCBm
aWxlLiBUaGUgcGF0aCBzcGVjaWZpZWQgaXMgcmVsYXRpdmUgdG8NCiMgdGhlIEhUTUwgb3V0cHV0
IGZvbGRlci4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBp
cyBzZXQgdG8gWUVTLg0KDQpRQ0hfRklMRSAgICAgICAgICAgICAgID0NCg0KIyBUaGUgUUhQX05B
TUVTUEFDRSB0YWcgc3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4gZ2VuZXJhdGlu
ZyBRdCBIZWxwDQojIFByb2plY3Qgb3V0cHV0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ug
c2VlIFF0IEhlbHAgUHJvamVjdCAvIE5hbWVzcGFjZQ0KIyAoc2VlOg0KIyBodHRwczovL2RvYy5x
dC5pby9hcmNoaXZlcy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI25hbWVzcGFjZSkuDQojIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBvcmcuZG94eWdlbi5Qcm9qZWN0Lg0KIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuDQoNClFIUF9OQU1F
U1BBQ0UgICAgICAgICAgPSBvcmcuZG94eWdlbi5Qcm9qZWN0DQoNCiMgVGhlIFFIUF9WSVJUVUFM
X0ZPTERFUiB0YWcgc3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4gZ2VuZXJhdGlu
ZyBRdA0KIyBIZWxwIFByb2plY3Qgb3V0cHV0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ug
c2VlIFF0IEhlbHAgUHJvamVjdCAvIFZpcnR1YWwNCiMgRm9sZGVycyAoc2VlOg0KIyBodHRwczov
L2RvYy5xdC5pby9hcmNoaXZlcy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI3ZpcnR1YWwtZm9s
ZGVycykuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBkb2MuDQojIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4NCg0KUUhQX1ZJUlRVQUxf
Rk9MREVSICAgICA9IGRvYw0KDQojIElmIHRoZSBRSFBfQ1VTVF9GSUxURVJfTkFNRSB0YWcgaXMg
c2V0LCBpdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgYSBjdXN0b20NCiMgZmlsdGVyIHRvIGFkZC4g
Rm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBDdXN0b20N
CiMgRmlsdGVycyAoc2VlOg0KIyBodHRwczovL2RvYy5xdC5pby9hcmNoaXZlcy9xdC00LjgvcXRo
ZWxwcHJvamVjdC5odG1sI2N1c3RvbS1maWx0ZXJzKS4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLg0KDQpRSFBfQ1VTVF9GSUxURVJf
TkFNRSAgID0NCg0KIyBUaGUgUUhQX0NVU1RfRklMVEVSX0FUVFJTIHRhZyBzcGVjaWZpZXMgdGhl
IGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlDQojIGN1c3RvbSBmaWx0ZXIgdG8gYWRkLiBG
b3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAvIEN1c3RvbQ0K
IyBGaWx0ZXJzIChzZWU6DQojIGh0dHBzOi8vZG9jLnF0LmlvL2FyY2hpdmVzL3F0LTQuOC9xdGhl
bHBwcm9qZWN0Lmh0bWwjY3VzdG9tLWZpbHRlcnMpLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuDQoNClFIUF9DVVNUX0ZJTFRFUl9B
VFRSUyAgPQ0KDQojIFRoZSBRSFBfU0VDVF9GSUxURVJfQVRUUlMgdGFnIHNwZWNpZmllcyB0aGUg
bGlzdCBvZiB0aGUgYXR0cmlidXRlcyB0aGlzDQojIHByb2plY3QncyBmaWx0ZXIgc2VjdGlvbiBt
YXRjaGVzLiBRdCBIZWxwIFByb2plY3QgLyBGaWx0ZXIgQXR0cmlidXRlcyAoc2VlOg0KIyBodHRw
czovL2RvYy5xdC5pby9hcmNoaXZlcy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI2ZpbHRlci1h
dHRyaWJ1dGVzKS4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FI
UCBpcyBzZXQgdG8gWUVTLg0KDQpRSFBfU0VDVF9GSUxURVJfQVRUUlMgID0NCg0KIyBUaGUgUUhH
X0xPQ0FUSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiAoYWJzb2x1
dGUgcGF0aA0KIyBpbmNsdWRpbmcgZmlsZSBuYW1lKSBvZiBRdCdzIHFoZWxwZ2VuZXJhdG9yLiBJ
ZiBub24tZW1wdHkgRG94eWdlbiB3aWxsIHRyeSB0bw0KIyBydW4gcWhlbHBnZW5lcmF0b3Igb24g
dGhlIGdlbmVyYXRlZCAucWhwIGZpbGUuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRh
ZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4NCg0KUUhHX0xPQ0FUSU9OICAgICAgICAgICA9
DQoNCiMgSWYgdGhlIEdFTkVSQVRFX0VDTElQU0VIRUxQIHRhZyBpcyBzZXQgdG8gWUVTLCBhZGRp
dGlvbmFsIGluZGV4IGZpbGVzIHdpbGwgYmUNCiMgZ2VuZXJhdGVkLCB0b2dldGhlciB3aXRoIHRo
ZSBIVE1MIGZpbGVzLCB0aGV5IGZvcm0gYW4gRWNsaXBzZSBoZWxwIHBsdWdpbi4gVG8NCiMgaW5z
dGFsbCB0aGlzIHBsdWdpbiBhbmQgbWFrZSBpdCBhdmFpbGFibGUgdW5kZXIgdGhlIGhlbHAgY29u
dGVudHMgbWVudSBpbg0KIyBFY2xpcHNlLCB0aGUgY29udGVudHMgb2YgdGhlIGRpcmVjdG9yeSBj
b250YWluaW5nIHRoZSBIVE1MIGFuZCBYTUwgZmlsZXMgbmVlZHMNCiMgdG8gYmUgY29waWVkIGlu
dG8gdGhlIHBsdWdpbnMgZGlyZWN0b3J5IG9mIGVjbGlwc2UuIFRoZSBuYW1lIG9mIHRoZSBkaXJl
Y3RvcnkNCiMgd2l0aGluIHRoZSBwbHVnaW5zIGRpcmVjdG9yeSBzaG91bGQgYmUgdGhlIHNhbWUg
YXMgdGhlIEVDTElQU0VfRE9DX0lEIHZhbHVlLg0KIyBBZnRlciBjb3B5aW5nIEVjbGlwc2UgbmVl
ZHMgdG8gYmUgcmVzdGFydGVkIGJlZm9yZSB0aGUgaGVscCBhcHBlYXJzLg0KIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCkdFTkVSQVRFX0VDTElQU0VIRUxQICAgPSBOTw0KDQoj
IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBFY2xpcHNlIGhlbHAgcGx1Z2luLiBXaGVuIGlu
c3RhbGxpbmcgdGhlIHBsdWdpbg0KIyB0aGUgZGlyZWN0b3J5IG5hbWUgY29udGFpbmluZyB0aGUg
SFRNTCBhbmQgWE1MIGZpbGVzIHNob3VsZCBhbHNvIGhhdmUgdGhpcw0KIyBuYW1lLiBFYWNoIGRv
Y3VtZW50YXRpb24gc2V0IHNob3VsZCBoYXZlIGl0cyBvd24gaWRlbnRpZmllci4NCiMgVGhlIGRl
ZmF1bHQgdmFsdWUgaXM6IG9yZy5kb3h5Z2VuLlByb2plY3QuDQojIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBHRU5FUkFURV9FQ0xJUFNFSEVMUCBpcyBzZXQgdG8gWUVTLg0KDQpFQ0xJ
UFNFX0RPQ19JRCAgICAgICAgID0gb3JnLmRveHlnZW4uUHJvamVjdA0KDQojIElmIHlvdSB3YW50
IGZ1bGwgY29udHJvbCBvdmVyIHRoZSBsYXlvdXQgb2YgdGhlIGdlbmVyYXRlZCBIVE1MIHBhZ2Vz
IGl0IG1pZ2h0DQojIGJlIG5lY2Vzc2FyeSB0byBkaXNhYmxlIHRoZSBpbmRleCBhbmQgcmVwbGFj
ZSBpdCB3aXRoIHlvdXIgb3duLiBUaGUNCiMgRElTQUJMRV9JTkRFWCB0YWcgY2FuIGJlIHVzZWQg
dG8gdHVybiBvbi9vZmYgdGhlIGNvbmRlbnNlZCBpbmRleCAodGFicykgYXQgdG9wDQojIG9mIGVh
Y2ggSFRNTCBwYWdlLiBBIHZhbHVlIG9mIE5PIGVuYWJsZXMgdGhlIGluZGV4IGFuZCB0aGUgdmFs
dWUgWUVTIGRpc2FibGVzDQojIGl0LiBTaW5jZSB0aGUgdGFicyBpbiB0aGUgaW5kZXggY29udGFp
biB0aGUgc2FtZSBpbmZvcm1hdGlvbiBhcyB0aGUgbmF2aWdhdGlvbg0KIyB0cmVlLCB5b3UgY2Fu
IHNldCB0aGlzIG9wdGlvbiB0byBZRVMgaWYgeW91IGFsc28gc2V0IEdFTkVSQVRFX1RSRUVWSUVX
IHRvIFlFUy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLg0KDQpESVNBQkxFX0lO
REVYICAgICAgICAgID0gTk8NCg0KIyBUaGUgR0VORVJBVEVfVFJFRVZJRVcgdGFnIGlzIHVzZWQg
dG8gc3BlY2lmeSB3aGV0aGVyIGEgdHJlZS1saWtlIGluZGV4DQojIHN0cnVjdHVyZSBzaG91bGQg
YmUgZ2VuZXJhdGVkIHRvIGRpc3BsYXkgaGllcmFyY2hpY2FsIGluZm9ybWF0aW9uLiBJZiB0aGUg
dGFnDQojIHZhbHVlIGlzIHNldCB0byBZRVMsIGEgc2lkZSBwYW5lbCB3aWxsIGJlIGdlbmVyYXRl
ZCBjb250YWluaW5nIGEgdHJlZS1saWtlDQojIGluZGV4IHN0cnVjdHVyZSAoanVzdCBsaWtlIHRo
ZSBvbmUgdGhhdCBpcyBnZW5lcmF0ZWQgZm9yIEhUTUwgSGVscCkuIEZvciB0aGlzDQojIHRvIHdv
cmsgYSBicm93c2VyIHRoYXQgc3VwcG9ydHMgSmF2YVNjcmlwdCwgREhUTUwsIENTUyBhbmQgZnJh
bWVzIGlzIHJlcXVpcmVkDQojIChpLmUuIGFueSBtb2Rlcm4gYnJvd3NlcikuIFdpbmRvd3MgdXNl
cnMgYXJlIHByb2JhYmx5IGJldHRlciBvZmYgdXNpbmcgdGhlDQojIEhUTUwgaGVscCBmZWF0dXJl
LiBWaWEgY3VzdG9tIHN0eWxlIHNoZWV0cyAoc2VlIEhUTUxfRVhUUkFfU1RZTEVTSEVFVCkgb25l
IGNhbg0KIyBmdXJ0aGVyIGZpbmUgdHVuZSB0aGUgbG9vayBvZiB0aGUgaW5kZXggKHNlZSAiRmlu
ZS10dW5pbmcgdGhlIG91dHB1dCIpLiBBcyBhbg0KIyBleGFtcGxlLCB0aGUgZGVmYXVsdCBzdHls
ZSBzaGVldCBnZW5lcmF0ZWQgYnkgRG94eWdlbiBoYXMgYW4gZXhhbXBsZSB0aGF0DQojIHNob3dz
IGhvdyB0byBwdXQgYW4gaW1hZ2UgYXQgdGhlIHJvb3Qgb2YgdGhlIHRyZWUgaW5zdGVhZCBvZiB0
aGUgUFJPSkVDVF9OQU1FLg0KIyBTaW5jZSB0aGUgdHJlZSBiYXNpY2FsbHkgaGFzIHRoZSBzYW1l
IGluZm9ybWF0aW9uIGFzIHRoZSB0YWIgaW5kZXgsIHlvdSBjb3VsZA0KIyBjb25zaWRlciBzZXR0
aW5nIERJU0FCTEVfSU5ERVggdG8gWUVTIHdoZW4gZW5hYmxpbmcgdGhpcyBvcHRpb24uDQojIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0KR0VORVJBVEVfVFJFRVZJRVcgICAgICA9
IE5PDQoNCiMgV2hlbiBib3RoIEdFTkVSQVRFX1RSRUVWSUVXIGFuZCBESVNBQkxFX0lOREVYIGFy
ZSBzZXQgdG8gWUVTLCB0aGVuIHRoZQ0KIyBGVUxMX1NJREVCQVIgb3B0aW9uIGRldGVybWluZXMg
aWYgdGhlIHNpZGUgYmFyIGlzIGxpbWl0ZWQgdG8gb25seSB0aGUgdHJlZXZpZXcNCiMgYXJlYSAo
dmFsdWUgTk8pIG9yIGlmIGl0IHNob3VsZCBleHRlbmQgdG8gdGhlIGZ1bGwgaGVpZ2h0IG9mIHRo
ZSB3aW5kb3cgKHZhbHVlDQojIFlFUykuIFNldHRpbmcgdGhpcyB0byBZRVMgZ2l2ZXMgYSBsYXlv
dXQgc2ltaWxhciB0bw0KIyBodHRwczovL2RvY3MucmVhZHRoZWRvY3MuaW8gd2l0aCBtb3JlIHJv
b20gZm9yIGNvbnRlbnRzLCBidXQgbGVzcyByb29tIGZvciB0aGUNCiMgcHJvamVjdCBsb2dvLCB0
aXRsZSwgYW5kIGRlc2NyaXB0aW9uLiBJZiBlaXRoZXIgR0VORVJBVEVfVFJFRVZJRVcgb3INCiMg
RElTQUJMRV9JTkRFWCBpcyBzZXQgdG8gTk8sIHRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QuDQoj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0KRlVMTF9TSURFQkFSICAgICAgICAg
ICA9IE5PDQoNCiMgVGhlIEVOVU1fVkFMVUVTX1BFUl9MSU5FIHRhZyBjYW4gYmUgdXNlZCB0byBz
ZXQgdGhlIG51bWJlciBvZiBlbnVtIHZhbHVlcyB0aGF0DQojIERveHlnZW4gd2lsbCBncm91cCBv
biBvbmUgbGluZSBpbiB0aGUgZ2VuZXJhdGVkIEhUTUwgZG9jdW1lbnRhdGlvbi4NCiMNCiMgTm90
ZSB0aGF0IGEgdmFsdWUgb2YgMCB3aWxsIGNvbXBsZXRlbHkgc3VwcHJlc3MgdGhlIGVudW0gdmFs
dWVzIGZyb20gYXBwZWFyaW5nDQojIGluIHRoZSBvdmVydmlldyBzZWN0aW9uLg0KIyBNaW5pbXVt
IHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAyMCwgZGVmYXVsdCB2YWx1ZTogNC4NCiMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0K
RU5VTV9WQUxVRVNfUEVSX0xJTkUgICA9IDQNCg0KIyBXaGVuIHRoZSBTSE9XX0VOVU1fVkFMVUVT
IHRhZyBpcyBzZXQgZG94eWdlbiB3aWxsIHNob3cgdGhlIHNwZWNpZmllZA0KIyBlbnVtZXJhdGlv
biB2YWx1ZXMgYmVzaWRlcyB0aGUgZW51bWVyYXRpb24gbW5lbW9uaWNzLg0KIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uDQoNClNIT1dfRU5VTV9WQUxVRVMgICAgICAgPSBOTw0KDQojIElmIHRo
ZSB0cmVldmlldyBpcyBlbmFibGVkIChzZWUgR0VORVJBVEVfVFJFRVZJRVcpIHRoZW4gdGhpcyB0
YWcgY2FuIGJlIHVzZWQNCiMgdG8gc2V0IHRoZSBpbml0aWFsIHdpZHRoIChpbiBwaXhlbHMpIG9m
IHRoZSBmcmFtZSBpbiB3aGljaCB0aGUgdHJlZSBpcyBzaG93bi4NCiMgTWluaW11bSB2YWx1ZTog
MCwgbWF4aW11bSB2YWx1ZTogMTUwMCwgZGVmYXVsdCB2YWx1ZTogMjUwLg0KIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLg0KDQpUUkVF
VklFV19XSURUSCAgICAgICAgID0gMjUwDQoNCiMgSWYgdGhlIEVYVF9MSU5LU19JTl9XSU5ET1cg
b3B0aW9uIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBvcGVuIGxpbmtzIHRvDQojIGV4dGVy
bmFsIHN5bWJvbHMgaW1wb3J0ZWQgdmlhIHRhZyBmaWxlcyBpbiBhIHNlcGFyYXRlIHdpbmRvdy4N
CiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLg0KDQpFWFRfTElOS1NfSU5fV0lORE9X
ICAgID0gTk8NCg0KIyBJZiB0aGUgT0JGVVNDQVRFX0VNQUlMUyB0YWcgaXMgc2V0IHRvIFlFUywg
RG94eWdlbiB3aWxsIG9iZnVzY2F0ZSBlbWFpbA0KIyBhZGRyZXNzZXMuDQojIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBZRVMuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFU
RV9IVE1MIGlzIHNldCB0byBZRVMuDQoNCk9CRlVTQ0FURV9FTUFJTFMgICAgICAgPSBZRVMNCg0K
IyBJZiB0aGUgSFRNTF9GT1JNVUxBX0ZPUk1BVCBvcHRpb24gaXMgc2V0IHRvIHN2ZywgRG94eWdl
biB3aWxsIHVzZSB0aGUgcGRmMnN2Zw0KIyB0b29sIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Rh
d2JhcnRvbi9wZGYyc3ZnKSBvciBpbmtzY2FwZSAoc2VlDQojIGh0dHBzOi8vaW5rc2NhcGUub3Jn
KSB0byBnZW5lcmF0ZSBmb3JtdWxhcyBhcyBTVkcgaW1hZ2VzIGluc3RlYWQgb2YgUE5HcyBmb3IN
CiMgdGhlIEhUTUwgb3V0cHV0LiBUaGVzZSBpbWFnZXMgd2lsbCBnZW5lcmFsbHkgbG9vayBuaWNl
ciBhdCBzY2FsZWQgcmVzb2x1dGlvbnMuDQojIFBvc3NpYmxlIHZhbHVlcyBhcmU6IHBuZyAodGhl
IGRlZmF1bHQpIGFuZCBzdmcgKGxvb2tzIG5pY2VyIGJ1dCByZXF1aXJlcyB0aGUNCiMgcGRmMnN2
ZyBvciBpbmtzY2FwZSB0b29sKS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IHBuZy4NCiMgVGhp
cyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4N
Cg0KSFRNTF9GT1JNVUxBX0ZPUk1BVCAgICA9IHBuZw0KDQojIFVzZSB0aGlzIHRhZyB0byBjaGFu
Z2UgdGhlIGZvbnQgc2l6ZSBvZiBMYVRlWCBmb3JtdWxhcyBpbmNsdWRlZCBhcyBpbWFnZXMgaW4N
CiMgdGhlIEhUTUwgZG9jdW1lbnRhdGlvbi4gV2hlbiB5b3UgY2hhbmdlIHRoZSBmb250IHNpemUg
YWZ0ZXIgYSBzdWNjZXNzZnVsDQojIERveHlnZW4gcnVuIHlvdSBuZWVkIHRvIG1hbnVhbGx5IHJl
bW92ZSBhbnkgZm9ybV8qLnBuZyBpbWFnZXMgZnJvbSB0aGUgSFRNTA0KIyBvdXRwdXQgZGlyZWN0
b3J5IHRvIGZvcmNlIHRoZW0gdG8gYmUgcmVnZW5lcmF0ZWQuDQojIE1pbmltdW0gdmFsdWU6IDgs
IG1heGltdW0gdmFsdWU6IDUwLCBkZWZhdWx0IHZhbHVlOiAxMC4NCiMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0KRk9STVVMQV9G
T05UU0laRSAgICAgICA9IDEwDQoNCiMgVGhlIEZPUk1VTEFfTUFDUk9GSUxFIGNhbiBjb250YWlu
IExhVGVYIFxuZXdjb21tYW5kIGFuZCBccmVuZXdjb21tYW5kIGNvbW1hbmRzDQojIHRvIGNyZWF0
ZSBuZXcgTGFUZVggY29tbWFuZHMgdG8gYmUgdXNlZCBpbiBmb3JtdWxhcyBhcyBidWlsZGluZyBi
bG9ja3MuIFNlZQ0KIyB0aGUgc2VjdGlvbiAiSW5jbHVkaW5nIGZvcm11bGFzIiBmb3IgZGV0YWls
cy4NCg0KRk9STVVMQV9NQUNST0ZJTEUgICAgICA9DQoNCiMgRW5hYmxlIHRoZSBVU0VfTUFUSEpB
WCBvcHRpb24gdG8gcmVuZGVyIExhVGVYIGZvcm11bGFzIHVzaW5nIE1hdGhKYXggKHNlZQ0KIyBo
dHRwczovL3d3dy5tYXRoamF4Lm9yZykgd2hpY2ggdXNlcyBjbGllbnQgc2lkZSBKYXZhU2NyaXB0
IGZvciB0aGUgcmVuZGVyaW5nDQojIGluc3RlYWQgb2YgdXNpbmcgcHJlLXJlbmRlcmVkIGJpdG1h
cHMuIFVzZSB0aGlzIGlmIHlvdSBkbyBub3QgaGF2ZSBMYVRlWA0KIyBpbnN0YWxsZWQgb3IgaWYg
eW91IHdhbnQgdG8gZm9ybXVsYXMgbG9vayBwcmV0dGllciBpbiB0aGUgSFRNTCBvdXRwdXQuIFdo
ZW4NCiMgZW5hYmxlZCB5b3UgbWF5IGFsc28gbmVlZCB0byBpbnN0YWxsIE1hdGhKYXggc2VwYXJh
dGVseSBhbmQgY29uZmlndXJlIHRoZSBwYXRoDQojIHRvIGl0IHVzaW5nIHRoZSBNQVRISkFYX1JF
TFBBVEggb3B0aW9uLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuDQoNClVTRV9N
QVRISkFYICAgICAgICAgICAgPSBOTw0KDQojIFdpdGggTUFUSEpBWF9WRVJTSU9OIGl0IGlzIHBv
c3NpYmxlIHRvIHNwZWNpZnkgdGhlIE1hdGhKYXggdmVyc2lvbiB0byBiZSB1c2VkLg0KIyBOb3Rl
IHRoYXQgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiBNYXRoSmF4IGhhdmUgZGlmZmVyZW50IHJl
cXVpcmVtZW50cyB3aXRoDQojIHJlZ2FyZHMgdG8gdGhlIGRpZmZlcmVudCBzZXR0aW5ncywgc28g
aXQgaXMgcG9zc2libGUgdGhhdCBhbHNvIG90aGVyIE1hdGhKYXgNCiMgc2V0dGluZ3MgaGF2ZSB0
byBiZSBjaGFuZ2VkIHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gdGhlIGRpZmZlcmVudCBNYXRoSmF4
DQojIHZlcnNpb25zLg0KIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBNYXRoSmF4XzIgYW5kIE1hdGhK
YXhfMy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE1hdGhKYXhfMi4NCiMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIFVTRV9NQVRISkFYIGlzIHNldCB0byBZRVMuDQoNCk1BVEhKQVhf
VkVSU0lPTiAgICAgICAgPSBNYXRoSmF4XzINCg0KIyBXaGVuIE1hdGhKYXggaXMgZW5hYmxlZCB5
b3UgY2FuIHNldCB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IHRvIGJlIHVzZWQgZm9yDQojIHRo
ZSBNYXRoSmF4IG91dHB1dC4gRm9yIG1vcmUgZGV0YWlscyBhYm91dCB0aGUgb3V0cHV0IGZvcm1h
dCBzZWUgTWF0aEpheA0KIyB2ZXJzaW9uIDIgKHNlZToNCiMgaHR0cDovL2RvY3MubWF0aGpheC5v
cmcvZW4vdjIuNy1sYXRlc3Qvb3V0cHV0Lmh0bWwpIGFuZCBNYXRoSmF4IHZlcnNpb24gMw0KIyAo
c2VlOg0KIyBodHRwOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi9sYXRlc3Qvd2ViL2NvbXBvbmVudHMv
b3V0cHV0Lmh0bWwpLg0KIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBIVE1MLUNTUyAod2hpY2ggaXMg
c2xvd2VyLCBidXQgaGFzIHRoZSBiZXN0DQojIGNvbXBhdGliaWxpdHkuIFRoaXMgaXMgdGhlIG5h
bWUgZm9yIE1hdGhqYXggdmVyc2lvbiAyLCBmb3IgTWF0aEpheCB2ZXJzaW9uIDMNCiMgdGhpcyB3
aWxsIGJlIHRyYW5zbGF0ZWQgaW50byBjaHRtbCksIE5hdGl2ZU1NTCAoaS5lLiBNYXRoTUwuIE9u
bHkgc3VwcG9ydGVkDQojIGZvciBNYXRoSmF4IDIuIEZvciBNYXRoSmF4IHZlcnNpb24gMyBjaHRt
bCB3aWxsIGJlIHVzZWQgaW5zdGVhZC4pLCBjaHRtbCAoVGhpcw0KIyBpcyB0aGUgbmFtZSBmb3Ig
TWF0aGpheCB2ZXJzaW9uIDMsIGZvciBNYXRoSmF4IHZlcnNpb24gMiB0aGlzIHdpbGwgYmUNCiMg
dHJhbnNsYXRlZCBpbnRvIEhUTUwtQ1NTKSBhbmQgU1ZHLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogSFRNTC1DU1MuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBVU0VfTUFUSEpB
WCBpcyBzZXQgdG8gWUVTLg0KDQpNQVRISkFYX0ZPUk1BVCAgICAgICAgID0gSFRNTC1DU1MNCg0K
IyBXaGVuIE1hdGhKYXggaXMgZW5hYmxlZCB5b3UgbmVlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlv
biByZWxhdGl2ZSB0byB0aGUgSFRNTA0KIyBvdXRwdXQgZGlyZWN0b3J5IHVzaW5nIHRoZSBNQVRI
SkFYX1JFTFBBVEggb3B0aW9uLiBUaGUgZGVzdGluYXRpb24gZGlyZWN0b3J5DQojIHNob3VsZCBj
b250YWluIHRoZSBNYXRoSmF4LmpzIHNjcmlwdC4gRm9yIGluc3RhbmNlLCBpZiB0aGUgbWF0aGph
eCBkaXJlY3RvcnkNCiMgaXMgbG9jYXRlZCBhdCB0aGUgc2FtZSBsZXZlbCBhcyB0aGUgSFRNTCBv
dXRwdXQgZGlyZWN0b3J5LCB0aGVuDQojIE1BVEhKQVhfUkVMUEFUSCBzaG91bGQgYmUgLi4vbWF0
aGpheC4gVGhlIGRlZmF1bHQgdmFsdWUgcG9pbnRzIHRvIHRoZSBNYXRoSmF4DQojIENvbnRlbnQg
RGVsaXZlcnkgTmV0d29yayBzbyB5b3UgY2FuIHF1aWNrbHkgc2VlIHRoZSByZXN1bHQgd2l0aG91
dCBpbnN0YWxsaW5nDQojIE1hdGhKYXguIEhvd2V2ZXIsIGl0IGlzIHN0cm9uZ2x5IHJlY29tbWVu
ZGVkIHRvIGluc3RhbGwgYSBsb2NhbCBjb3B5IG9mDQojIE1hdGhKYXggZnJvbSBodHRwczovL3d3
dy5tYXRoamF4Lm9yZyBiZWZvcmUgZGVwbG95bWVudC4gVGhlIGRlZmF1bHQgdmFsdWUgaXM6DQoj
IC0gaW4gY2FzZSBvZiBNYXRoSmF4IHZlcnNpb24gMjogaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0
L25wbS9tYXRoamF4QDINCiMgLSBpbiBjYXNlIG9mIE1hdGhKYXggdmVyc2lvbiAzOiBodHRwczov
L2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21hdGhqYXhAMw0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0
IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4NCg0KTUFUSEpBWF9SRUxQQVRIICAg
ICAgICA9DQoNCiMgVGhlIE1BVEhKQVhfRVhURU5TSU9OUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3Bl
Y2lmeSBvbmUgb3IgbW9yZSBNYXRoSmF4DQojIGV4dGVuc2lvbiBuYW1lcyB0aGF0IHNob3VsZCBi
ZSBlbmFibGVkIGR1cmluZyBNYXRoSmF4IHJlbmRlcmluZy4gRm9yIGV4YW1wbGUNCiMgZm9yIE1h
dGhKYXggdmVyc2lvbiAyIChzZWUNCiMgaHR0cHM6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL3YyLjct
bGF0ZXN0L3RleC5odG1sI3RleC1hbmQtbGF0ZXgtZXh0ZW5zaW9ucyk6DQojIE1BVEhKQVhfRVhU
RU5TSU9OUyA9IFRlWC9BTVNtYXRoIFRlWC9BTVNzeW1ib2xzDQojIEZvciBleGFtcGxlIGZvciBN
YXRoSmF4IHZlcnNpb24gMyAoc2VlDQojIGh0dHA6Ly9kb2NzLm1hdGhqYXgub3JnL2VuL2xhdGVz
dC9pbnB1dC90ZXgvZXh0ZW5zaW9ucy9pbmRleC5odG1sKToNCiMgTUFUSEpBWF9FWFRFTlNJT05T
ID0gYW1zDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBVU0VfTUFUSEpBWCBpcyBz
ZXQgdG8gWUVTLg0KDQpNQVRISkFYX0VYVEVOU0lPTlMgICAgID0NCg0KIyBUaGUgTUFUSEpBWF9D
T0RFRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIGZpbGUgd2l0aCBKYXZhU2NyaXB0
IHBpZWNlcw0KIyBvZiBjb2RlIHRoYXQgd2lsbCBiZSB1c2VkIG9uIHN0YXJ0dXAgb2YgdGhlIE1h
dGhKYXggY29kZS4gU2VlIHRoZSBNYXRoSmF4IHNpdGUNCiMgKHNlZToNCiMgaHR0cDovL2RvY3Mu
bWF0aGpheC5vcmcvZW4vdjIuNy1sYXRlc3Qvb3V0cHV0Lmh0bWwpIGZvciBtb3JlIGRldGFpbHMu
IEZvciBhbg0KIyBleGFtcGxlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4NCiMgVGhpcyB0YWcgcmVx
dWlyZXMgdGhhdCB0aGUgdGFnIFVTRV9NQVRISkFYIGlzIHNldCB0byBZRVMuDQoNCk1BVEhKQVhf
Q09ERUZJTEUgICAgICAgPQ0KDQojIFdoZW4gdGhlIFNFQVJDSEVOR0lORSB0YWcgaXMgZW5hYmxl
ZCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBzZWFyY2ggYm94IGZvcg0KIyB0aGUgSFRNTCBvdXRw
dXQuIFRoZSB1bmRlcmx5aW5nIHNlYXJjaCBlbmdpbmUgdXNlcyBKYXZhU2NyaXB0IGFuZCBESFRN
TCBhbmQNCiMgc2hvdWxkIHdvcmsgb24gYW55IG1vZGVybiBicm93c2VyLiBOb3RlIHRoYXQgd2hl
biB1c2luZyBIVE1MIGhlbHANCiMgKEdFTkVSQVRFX0hUTUxIRUxQKSwgUXQgaGVscCAoR0VORVJB
VEVfUUhQKSwgb3IgZG9jc2V0cyAoR0VORVJBVEVfRE9DU0VUKQ0KIyB0aGVyZSBpcyBhbHJlYWR5
IGEgc2VhcmNoIGZ1bmN0aW9uIHNvIHRoaXMgb25lIHNob3VsZCB0eXBpY2FsbHkgYmUgZGlzYWJs
ZWQuDQojIEZvciBsYXJnZSBwcm9qZWN0cyB0aGUgSmF2YVNjcmlwdCBiYXNlZCBzZWFyY2ggZW5n
aW5lIGNhbiBiZSBzbG93LCB0aGVuDQojIGVuYWJsaW5nIFNFUlZFUl9CQVNFRF9TRUFSQ0ggbWF5
IHByb3ZpZGUgYSBiZXR0ZXIgc29sdXRpb24uIEl0IGlzIHBvc3NpYmxlIHRvDQojIHNlYXJjaCB1
c2luZyB0aGUga2V5Ym9hcmQ7IHRvIGp1bXAgdG8gdGhlIHNlYXJjaCBib3ggdXNlIDxhY2Nlc3Mg
a2V5PiArIFMNCiMgKHdoYXQgdGhlIDxhY2Nlc3Mga2V5PiBpcyBkZXBlbmRzIG9uIHRoZSBPUyBh
bmQgYnJvd3NlciwgYnV0IGl0IGlzIHR5cGljYWxseQ0KIyA8Q1RSTD4sIDxBTFQ+LzxvcHRpb24+
LCBvciBib3RoKS4gSW5zaWRlIHRoZSBzZWFyY2ggYm94IHVzZSB0aGUgPGN1cnNvciBkb3duDQoj
IGtleT4gdG8ganVtcCBpbnRvIHRoZSBzZWFyY2ggcmVzdWx0cyB3aW5kb3csIHRoZSByZXN1bHRz
IGNhbiBiZSBuYXZpZ2F0ZWQNCiMgdXNpbmcgdGhlIDxjdXJzb3Iga2V5cz4uIFByZXNzIDxFbnRl
cj4gdG8gc2VsZWN0IGFuIGl0ZW0gb3IgPGVzY2FwZT4gdG8gY2FuY2VsDQojIHRoZSBzZWFyY2gu
IFRoZSBmaWx0ZXIgb3B0aW9ucyBjYW4gYmUgc2VsZWN0ZWQgd2hlbiB0aGUgY3Vyc29yIGlzIGlu
c2lkZSB0aGUNCiMgc2VhcmNoIGJveCBieSBwcmVzc2luZyA8U2hpZnQ+KzxjdXJzb3IgZG93bj4u
IEFsc28gaGVyZSB1c2UgdGhlIDxjdXJzb3Iga2V5cz4NCiMgdG8gc2VsZWN0IGEgZmlsdGVyIGFu
ZCA8RW50ZXI+IG9yIDxlc2NhcGU+IHRvIGFjdGl2YXRlIG9yIGNhbmNlbCB0aGUgZmlsdGVyDQoj
IG9wdGlvbi4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCiMgVGhpcyB0YWcgcmVxdWly
ZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4NCg0KU0VBUkNIRU5H
SU5FICAgICAgICAgICA9IFlFUw0KDQojIFdoZW4gdGhlIFNFUlZFUl9CQVNFRF9TRUFSQ0ggdGFn
IGlzIGVuYWJsZWQgdGhlIHNlYXJjaCBlbmdpbmUgd2lsbCBiZQ0KIyBpbXBsZW1lbnRlZCB1c2lu
ZyBhIHdlYiBzZXJ2ZXIgaW5zdGVhZCBvZiBhIHdlYiBjbGllbnQgdXNpbmcgSmF2YVNjcmlwdC4g
VGhlcmUNCiMgYXJlIHR3byBmbGF2b3JzIG9mIHdlYiBzZXJ2ZXIgYmFzZWQgc2VhcmNoaW5nIGRl
cGVuZGluZyBvbiB0aGUgRVhURVJOQUxfU0VBUkNIDQojIHNldHRpbmcuIFdoZW4gZGlzYWJsZWQs
IERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIFBIUCBzY3JpcHQgZm9yIHNlYXJjaGluZyBhbmQNCiMg
YW4gaW5kZXggZmlsZSB1c2VkIGJ5IHRoZSBzY3JpcHQuIFdoZW4gRVhURVJOQUxfU0VBUkNIIGlz
IGVuYWJsZWQgdGhlIGluZGV4aW5nDQojIGFuZCBzZWFyY2hpbmcgbmVlZHMgdG8gYmUgcHJvdmlk
ZWQgYnkgZXh0ZXJuYWwgdG9vbHMuIFNlZSB0aGUgc2VjdGlvbg0KIyAiRXh0ZXJuYWwgSW5kZXhp
bmcgYW5kIFNlYXJjaGluZyIgZm9yIGRldGFpbHMuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBO
Ty4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQg
dG8gWUVTLg0KDQpTRVJWRVJfQkFTRURfU0VBUkNIICAgID0gTk8NCg0KIyBXaGVuIEVYVEVSTkFM
X1NFQVJDSCB0YWcgaXMgZW5hYmxlZCBEb3h5Z2VuIHdpbGwgbm8gbG9uZ2VyIGdlbmVyYXRlIHRo
ZSBQSFANCiMgc2NyaXB0IGZvciBzZWFyY2hpbmcuIEluc3RlYWQgdGhlIHNlYXJjaCByZXN1bHRz
IGFyZSB3cml0dGVuIHRvIGFuIFhNTCBmaWxlDQojIHdoaWNoIG5lZWRzIHRvIGJlIHByb2Nlc3Nl
ZCBieSBhbiBleHRlcm5hbCBpbmRleGVyLiBEb3h5Z2VuIHdpbGwgaW52b2tlIGFuDQojIGV4dGVy
bmFsIHNlYXJjaCBlbmdpbmUgcG9pbnRlZCB0byBieSB0aGUgU0VBUkNIRU5HSU5FX1VSTCBvcHRp
b24gdG8gb2J0YWluIHRoZQ0KIyBzZWFyY2ggcmVzdWx0cy4NCiMNCiMgRG94eWdlbiBzaGlwcyB3
aXRoIGFuIGV4YW1wbGUgaW5kZXhlciAoZG94eWluZGV4ZXIpIGFuZCBzZWFyY2ggZW5naW5lDQoj
IChkb3h5c2VhcmNoLmNnaSkgd2hpY2ggYXJlIGJhc2VkIG9uIHRoZSBvcGVuIHNvdXJjZSBzZWFy
Y2ggZW5naW5lIGxpYnJhcnkNCiMgWGFwaWFuIChzZWU6DQojIGh0dHBzOi8veGFwaWFuLm9yZy8p
Lg0KIw0KIyBTZWUgdGhlIHNlY3Rpb24gIkV4dGVybmFsIEluZGV4aW5nIGFuZCBTZWFyY2hpbmci
IGZvciBkZXRhaWxzLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4NCg0KRVhURVJO
QUxfU0VBUkNIICAgICAgICA9IE5PDQoNCiMgVGhlIFNFQVJDSEVOR0lORV9VUkwgc2hvdWxkIHBv
aW50IHRvIGEgc2VhcmNoIGVuZ2luZSBob3N0ZWQgYnkgYSB3ZWIgc2VydmVyDQojIHdoaWNoIHdp
bGwgcmV0dXJuIHRoZSBzZWFyY2ggcmVzdWx0cyB3aGVuIEVYVEVSTkFMX1NFQVJDSCBpcyBlbmFi
bGVkLg0KIw0KIyBEb3h5Z2VuIHNoaXBzIHdpdGggYW4gZXhhbXBsZSBpbmRleGVyIChkb3h5aW5k
ZXhlcikgYW5kIHNlYXJjaCBlbmdpbmUNCiMgKGRveHlzZWFyY2guY2dpKSB3aGljaCBhcmUgYmFz
ZWQgb24gdGhlIG9wZW4gc291cmNlIHNlYXJjaCBlbmdpbmUgbGlicmFyeQ0KIyBYYXBpYW4gKHNl
ZToNCiMgaHR0cHM6Ly94YXBpYW4ub3JnLykuIFNlZSB0aGUgc2VjdGlvbiAiRXh0ZXJuYWwgSW5k
ZXhpbmcgYW5kIFNlYXJjaGluZyIgZm9yDQojIGRldGFpbHMuDQojIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBTRUFSQ0hFTkdJTkUgaXMgc2V0IHRvIFlFUy4NCg0KU0VBUkNIRU5HSU5F
X1VSTCAgICAgICA9DQoNCiMgV2hlbiBTRVJWRVJfQkFTRURfU0VBUkNIIGFuZCBFWFRFUk5BTF9T
RUFSQ0ggYXJlIGJvdGggZW5hYmxlZCB0aGUgdW5pbmRleGVkDQojIHNlYXJjaCBkYXRhIGlzIHdy
aXR0ZW4gdG8gYSBmaWxlIGZvciBpbmRleGluZyBieSBhbiBleHRlcm5hbCB0b29sLiBXaXRoIHRo
ZQ0KIyBTRUFSQ0hEQVRBX0ZJTEUgdGFnIHRoZSBuYW1lIG9mIHRoaXMgZmlsZSBjYW4gYmUgc3Bl
Y2lmaWVkLg0KIyBUaGUgZGVmYXVsdCBmaWxlIGlzOiBzZWFyY2hkYXRhLnhtbC4NCiMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLg0KDQpT
RUFSQ0hEQVRBX0ZJTEUgICAgICAgID0gc2VhcmNoZGF0YS54bWwNCg0KIyBXaGVuIFNFUlZFUl9C
QVNFRF9TRUFSQ0ggYW5kIEVYVEVSTkFMX1NFQVJDSCBhcmUgYm90aCBlbmFibGVkIHRoZQ0KIyBF
WFRFUk5BTF9TRUFSQ0hfSUQgdGFnIGNhbiBiZSB1c2VkIGFzIGFuIGlkZW50aWZpZXIgZm9yIHRo
ZSBwcm9qZWN0LiBUaGlzIGlzDQojIHVzZWZ1bCBpbiBjb21iaW5hdGlvbiB3aXRoIEVYVFJBX1NF
QVJDSF9NQVBQSU5HUyB0byBzZWFyY2ggdGhyb3VnaCBtdWx0aXBsZQ0KIyBwcm9qZWN0cyBhbmQg
cmVkaXJlY3QgdGhlIHJlc3VsdHMgYmFjayB0byB0aGUgcmlnaHQgcHJvamVjdC4NCiMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLg0KDQpF
WFRFUk5BTF9TRUFSQ0hfSUQgICAgID0NCg0KIyBUaGUgRVhUUkFfU0VBUkNIX01BUFBJTkdTIHRh
ZyBjYW4gYmUgdXNlZCB0byBlbmFibGUgc2VhcmNoaW5nIHRocm91Z2ggRG94eWdlbg0KIyBwcm9q
ZWN0cyBvdGhlciB0aGFuIHRoZSBvbmUgZGVmaW5lZCBieSB0aGlzIGNvbmZpZ3VyYXRpb24gZmls
ZSwgYnV0IHRoYXQgYXJlDQojIGFsbCBhZGRlZCB0byB0aGUgc2FtZSBleHRlcm5hbCBzZWFyY2gg
aW5kZXguIEVhY2ggcHJvamVjdCBuZWVkcyB0byBoYXZlIGENCiMgdW5pcXVlIGlkIHNldCB2aWEg
RVhURVJOQUxfU0VBUkNIX0lELiBUaGUgc2VhcmNoIG1hcHBpbmcgdGhlbiBtYXBzIHRoZSBpZCBv
Zg0KIyB0byBhIHJlbGF0aXZlIGxvY2F0aW9uIHdoZXJlIHRoZSBkb2N1bWVudGF0aW9uIGNhbiBi
ZSBmb3VuZC4gVGhlIGZvcm1hdCBpczoNCiMgRVhUUkFfU0VBUkNIX01BUFBJTkdTID0gdGFnbmFt
ZTE9bG9jMSB0YWduYW1lMj1sb2MyIC4uLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgU0VBUkNIRU5HSU5FIGlzIHNldCB0byBZRVMuDQoNCkVYVFJBX1NFQVJDSF9NQVBQSU5HUyAg
PQ0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVk
IHRvIHRoZSBMYVRlWCBvdXRwdXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KIyBJZiB0aGUgR0VO
RVJBVEVfTEFURVggdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBMYVRl
WCBvdXRwdXQuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNCkdFTkVSQVRFX0xBVEVY
ICAgICAgICAgPSBZRVMNCg0KIyBUaGUgTEFURVhfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNp
Znkgd2hlcmUgdGhlIExhVGVYIGRvY3Mgd2lsbCBiZSBwdXQuIElmIGENCiMgcmVsYXRpdmUgcGF0
aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0IGlu
IGZyb250IG9mDQojIGl0Lg0KIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IGxhdGV4Lg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlF
Uy4NCg0KTEFURVhfT1VUUFVUICAgICAgICAgICA9IGxhdGV4DQoNCiMgVGhlIExBVEVYX0NNRF9O
QU1FIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBMYVRlWCBjb21tYW5kIG5hbWUgdG8g
YmUNCiMgaW52b2tlZC4NCiMNCiMgTm90ZSB0aGF0IHdoZW4gbm90IGVuYWJsaW5nIFVTRV9QREZM
QVRFWCB0aGUgZGVmYXVsdCBpcyBsYXRleCB3aGVuIGVuYWJsaW5nDQojIFVTRV9QREZMQVRFWCB0
aGUgZGVmYXVsdCBpcyBwZGZsYXRleCBhbmQgd2hlbiBpbiB0aGUgbGF0ZXIgY2FzZSBsYXRleCBp
cw0KIyBjaG9zZW4gdGhpcyBpcyBvdmVyd3JpdHRlbiBieSBwZGZsYXRleC4gRm9yIHNwZWNpZmlj
IG91dHB1dCBsYW5ndWFnZXMgdGhlDQojIGRlZmF1bHQgY2FuIGhhdmUgYmVlbiBzZXQgZGlmZmVy
ZW50bHksIHRoaXMgZGVwZW5kcyBvbiB0aGUgaW1wbGVtZW50YXRpb24gb2YNCiMgdGhlIG91dHB1
dCBsYW5ndWFnZS4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xB
VEVYIGlzIHNldCB0byBZRVMuDQoNCkxBVEVYX0NNRF9OQU1FICAgICAgICAgPQ0KDQojIFRoZSBN
QUtFSU5ERVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNvbW1hbmQg
bmFtZSB0byBnZW5lcmF0ZQ0KIyBpbmRleCBmb3IgTGFUZVguDQojIE5vdGU6IFRoaXMgdGFnIGlz
IHVzZWQgaW4gdGhlIE1ha2VmaWxlIC8gbWFrZS5iYXQuDQojIFNlZSBhbHNvOiBMQVRFWF9NQUtF
SU5ERVhfQ01EIGZvciB0aGUgcGFydCBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dCBmaWxlDQojICgu
dGV4KS4NCiMgVGhlIGRlZmF1bHQgZmlsZSBpczogbWFrZWluZGV4Lg0KIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4NCg0KTUFLRUlO
REVYX0NNRF9OQU1FICAgICA9IG1ha2VpbmRleA0KDQojIFRoZSBMQVRFWF9NQUtFSU5ERVhfQ01E
IHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjb21tYW5kIG5hbWUgdG8NCiMgZ2VuZXJh
dGUgaW5kZXggZm9yIExhVGVYLiBJbiBjYXNlIHRoZXJlIGlzIG5vIGJhY2tzbGFzaCAoXCkgYXMg
Zmlyc3QgY2hhcmFjdGVyDQojIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBhZGRlZCBpbiB0aGUg
TGFUZVggY29kZS4NCiMgTm90ZTogVGhpcyB0YWcgaXMgdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIG91
dHB1dCBmaWxlICgudGV4KS4NCiMgU2VlIGFsc286IE1BS0VJTkRFWF9DTURfTkFNRSBmb3IgdGhl
IHBhcnQgaW4gdGhlIE1ha2VmaWxlIC8gbWFrZS5iYXQuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlz
OiBtYWtlaW5kZXguDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9M
QVRFWCBpcyBzZXQgdG8gWUVTLg0KDQpMQVRFWF9NQUtFSU5ERVhfQ01EICAgID0gbWFrZWluZGV4
DQoNCiMgSWYgdGhlIENPTVBBQ1RfTEFURVggdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gZ2Vu
ZXJhdGVzIG1vcmUgY29tcGFjdCBMYVRlWA0KIyBkb2N1bWVudHMuIFRoaXMgbWF5IGJlIHVzZWZ1
bCBmb3Igc21hbGwgcHJvamVjdHMgYW5kIG1heSBoZWxwIHRvIHNhdmUgc29tZQ0KIyB0cmVlcyBp
biBnZW5lcmFsLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLg0KDQpDT01QQUNU
X0xBVEVYICAgICAgICAgID0gTk8NCg0KIyBUaGUgUEFQRVJfVFlQRSB0YWcgY2FuIGJlIHVzZWQg
dG8gc2V0IHRoZSBwYXBlciB0eXBlIHRoYXQgaXMgdXNlZCBieSB0aGUNCiMgcHJpbnRlci4NCiMg
UG9zc2libGUgdmFsdWVzIGFyZTogYTQgKDIxMCB4IDI5NyBtbSksIGxldHRlciAoOC41IHggMTEg
aW5jaGVzKSwgbGVnYWwgKDguNSB4DQojIDE0IGluY2hlcykgYW5kIGV4ZWN1dGl2ZSAoNy4yNSB4
IDEwLjUgaW5jaGVzKS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IGE0Lg0KIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4NCg0KUEFQ
RVJfVFlQRSAgICAgICAgICAgICA9IGE0DQoNCiMgVGhlIEVYVFJBX1BBQ0tBR0VTIHRhZyBjYW4g
YmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIExhVGVYIHBhY2thZ2UgbmFtZXMNCiMgdGhh
dCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIExhVGVYIG91dHB1dC4gVGhlIHBhY2thZ2UgY2Fu
IGJlIHNwZWNpZmllZCBqdXN0DQojIGJ5IGl0cyBuYW1lIG9yIHdpdGggdGhlIGNvcnJlY3Qgc3lu
dGF4IGFzIHRvIGJlIHVzZWQgd2l0aCB0aGUgTGFUZVgNCiMgXHVzZXBhY2thZ2UgY29tbWFuZC4g
VG8gZ2V0IHRoZSB0aW1lcyBmb250IGZvciBpbnN0YW5jZSB5b3UgY2FuIHNwZWNpZnkgOg0KIyBF
WFRSQV9QQUNLQUdFUz10aW1lcyBvciBFWFRSQV9QQUNLQUdFUz17dGltZXN9DQojIFRvIHVzZSB0
aGUgb3B0aW9uIGludGxpbWl0cyB3aXRoIHRoZSBhbXNtYXRoIHBhY2thZ2UgeW91IGNhbiBzcGVj
aWZ5Og0KIyBFWFRSQV9QQUNLQUdFUz1baW50bGltaXRzXXthbXNtYXRofQ0KIyBJZiBsZWZ0IGJs
YW5rIG5vIGV4dHJhIHBhY2thZ2VzIHdpbGwgYmUgaW5jbHVkZWQuDQojIFRoaXMgdGFnIHJlcXVp
cmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLg0KDQpFWFRSQV9Q
QUNLQUdFUyAgICAgICAgID0NCg0KIyBUaGUgTEFURVhfSEVBREVSIHRhZyBjYW4gYmUgdXNlZCB0
byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIExhVGVYIGhlYWRlciBmb3INCiMgdGhlIGdlbmVyYXRl
ZCBMYVRlWCBkb2N1bWVudC4gVGhlIGhlYWRlciBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIHVu
dGlsIHRoZQ0KIyBmaXJzdCBjaGFwdGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIERveHlnZW4gd2ls
bCBnZW5lcmF0ZSBhIHN0YW5kYXJkIGhlYWRlci4gSXQNCiMgaXMgaGlnaGx5IHJlY29tbWVuZGVk
IHRvIHN0YXJ0IHdpdGggYSBkZWZhdWx0IGhlYWRlciB1c2luZw0KIyBkb3h5Z2VuIC13IGxhdGV4
IG5ld19oZWFkZXIudGV4IG5ld19mb290ZXIudGV4IG5ld19zdHlsZXNoZWV0LnN0eQ0KIyBhbmQg
dGhlbiBtb2RpZnkgdGhlIGZpbGUgbmV3X2hlYWRlci50ZXguIFNlZSBhbHNvIHNlY3Rpb24gIkRv
eHlnZW4gdXNhZ2UiIGZvcg0KIyBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlIGRl
ZmF1bHQgaGVhZGVyIHRoYXQgRG94eWdlbiBub3JtYWxseSB1c2VzLg0KIw0KIyBOb3RlOiBPbmx5
IHVzZSBhIHVzZXItZGVmaW5lZCBoZWFkZXIgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5n
IQ0KIyBOb3RlOiBUaGUgaGVhZGVyIGlzIHN1YmplY3QgdG8gY2hhbmdlIHNvIHlvdSB0eXBpY2Fs
bHkgaGF2ZSB0byByZWdlbmVyYXRlIHRoZQ0KIyBkZWZhdWx0IGhlYWRlciB3aGVuIHVwZ3JhZGlu
ZyB0byBhIG5ld2VyIHZlcnNpb24gb2YgRG94eWdlbi4gVGhlIGZvbGxvd2luZw0KIyBjb21tYW5k
cyBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nIGluc2lkZSB0aGUgaGVhZGVyIChhbmQgZm9vdGVyKTog
Rm9yIGENCiMgZGVzY3JpcHRpb24gb2YgdGhlIHBvc3NpYmxlIG1hcmtlcnMgYW5kIGJsb2NrIG5h
bWVzIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuDQoNCkxBVEVYX0hFQURFUiAgICAgICAg
ICAgPQ0KDQojIFRoZSBMQVRFWF9GT09URVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSB1
c2VyLWRlZmluZWQgTGFUZVggZm9vdGVyIGZvcg0KIyB0aGUgZ2VuZXJhdGVkIExhVGVYIGRvY3Vt
ZW50LiBUaGUgZm9vdGVyIHNob3VsZCBjb250YWluIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlDQojIGxh
c3QgY2hhcHRlci4gSWYgaXQgaXMgbGVmdCBibGFuayBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBz
dGFuZGFyZCBmb290ZXIuIFNlZQ0KIyBMQVRFWF9IRUFERVIgZm9yIG1vcmUgaW5mb3JtYXRpb24g
b24gaG93IHRvIGdlbmVyYXRlIGEgZGVmYXVsdCBmb290ZXIgYW5kIHdoYXQNCiMgc3BlY2lhbCBj
b21tYW5kcyBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlIGZvb3Rlci4gU2VlIGFsc28gc2VjdGlvbiAi
RG94eWdlbg0KIyB1c2FnZSIgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSB0aGUg
ZGVmYXVsdCBmb290ZXIgdGhhdCBEb3h5Z2VuDQojIG5vcm1hbGx5IHVzZXMuIE5vdGU6IE9ubHkg
dXNlIGEgdXNlci1kZWZpbmVkIGZvb3RlciBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUNCiMgZG9p
bmchDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBz
ZXQgdG8gWUVTLg0KDQpMQVRFWF9GT09URVIgICAgICAgICAgID0NCg0KIyBUaGUgTEFURVhfRVhU
UkFfU1RZTEVTSEVFVCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIHVzZXIt
ZGVmaW5lZA0KIyBMYVRlWCBzdHlsZSBzaGVldHMgdGhhdCBhcmUgaW5jbHVkZWQgYWZ0ZXIgdGhl
IHN0YW5kYXJkIHN0eWxlIHNoZWV0cyBjcmVhdGVkDQojIGJ5IERveHlnZW4uIFVzaW5nIHRoaXMg
b3B0aW9uIG9uZSBjYW4gb3ZlcnJ1bGUgY2VydGFpbiBzdHlsZSBhc3BlY3RzLiBEb3h5Z2VuDQoj
IHdpbGwgY29weSB0aGUgc3R5bGUgc2hlZXQgZmlsZXMgdG8gdGhlIG91dHB1dCBkaXJlY3Rvcnku
DQojIE5vdGU6IFRoZSBvcmRlciBvZiB0aGUgZXh0cmEgc3R5bGUgc2hlZXQgZmlsZXMgaXMgb2Yg
aW1wb3J0YW5jZSAoZS5nLiB0aGUgbGFzdA0KIyBzdHlsZSBzaGVldCBpbiB0aGUgbGlzdCBvdmVy
cnVsZXMgdGhlIHNldHRpbmcgb2YgdGhlIHByZXZpb3VzIG9uZXMgaW4gdGhlDQojIGxpc3QpLg0K
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRv
IFlFUy4NCg0KTEFURVhfRVhUUkFfU1RZTEVTSEVFVCA9DQoNCiMgVGhlIExBVEVYX0VYVFJBX0ZJ
TEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGV4dHJhIGltYWdlcyBv
cg0KIyBvdGhlciBzb3VyY2UgZmlsZXMgd2hpY2ggc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgTEFU
RVhfT1VUUFVUIG91dHB1dA0KIyBkaXJlY3RvcnkuIE5vdGUgdGhhdCB0aGUgZmlsZXMgd2lsbCBi
ZSBjb3BpZWQgYXMtaXM7IHRoZXJlIGFyZSBubyBjb21tYW5kcyBvcg0KIyBtYXJrZXJzIGF2YWls
YWJsZS4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlz
IHNldCB0byBZRVMuDQoNCkxBVEVYX0VYVFJBX0ZJTEVTICAgICAgPQ0KDQojIElmIHRoZSBQREZf
SFlQRVJMSU5LUyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIExhVGVYIHRoYXQgaXMgZ2VuZXJhdGVk
IGlzDQojIHByZXBhcmVkIGZvciBjb252ZXJzaW9uIHRvIFBERiAodXNpbmcgcHMycGRmIG9yIHBk
ZmxhdGV4KS4gVGhlIFBERiBmaWxlIHdpbGwNCiMgY29udGFpbiBsaW5rcyAoanVzdCBsaWtlIHRo
ZSBIVE1MIG91dHB1dCkgaW5zdGVhZCBvZiBwYWdlIHJlZmVyZW5jZXMuIFRoaXMNCiMgbWFrZXMg
dGhlIG91dHB1dCBzdWl0YWJsZSBmb3Igb25saW5lIGJyb3dzaW5nIHVzaW5nIGEgUERGIHZpZXdl
ci4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhh
dCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuDQoNClBERl9IWVBFUkxJTktT
ICAgICAgICAgPSBZRVMNCg0KIyBJZiB0aGUgVVNFX1BERkxBVEVYIHRhZyBpcyBzZXQgdG8gWUVT
LCBEb3h5Z2VuIHdpbGwgdXNlIHRoZSBlbmdpbmUgYXMNCiMgc3BlY2lmaWVkIHdpdGggTEFURVhf
Q01EX05BTUUgdG8gZ2VuZXJhdGUgdGhlIFBERiBmaWxlIGRpcmVjdGx5IGZyb20gdGhlIExhVGVY
DQojIGZpbGVzLiBTZXQgdGhpcyBvcHRpb24gdG8gWUVTLCB0byBnZXQgYSBoaWdoZXIgcXVhbGl0
eSBQREYgZG9jdW1lbnRhdGlvbi4NCiMNCiMgU2VlIGFsc28gc2VjdGlvbiBMQVRFWF9DTURfTkFN
RSBmb3Igc2VsZWN0aW5nIHRoZSBlbmdpbmUuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMu
DQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQg
dG8gWUVTLg0KDQpVU0VfUERGTEFURVggICAgICAgICAgID0gWUVTDQoNCiMgVGhlIExBVEVYX0JB
VENITU9ERSB0YWcgc2lnbmFscyB0aGUgYmVoYXZpb3Igb2YgTGFUZVggaW4gY2FzZSBvZiBhbiBl
cnJvci4NCiMgUG9zc2libGUgdmFsdWVzIGFyZTogTk8gc2FtZSBhcyBFUlJPUl9TVE9QLCBZRVMg
c2FtZSBhcyBCQVRDSCwgQkFUQ0ggSW4gYmF0Y2gNCiMgbW9kZSBub3RoaW5nIGlzIHByaW50ZWQg
b24gdGhlIHRlcm1pbmFsLCBlcnJvcnMgYXJlIHNjcm9sbGVkIGFzIGlmIDxyZXR1cm4+IGlzDQoj
IGhpdCBhdCBldmVyeSBlcnJvcjsgbWlzc2luZyBmaWxlcyB0aGF0IFRlWCB0cmllcyB0byBpbnB1
dCBvciByZXF1ZXN0IGZyb20NCiMga2V5Ym9hcmQgaW5wdXQgKFxyZWFkIG9uIGEgbm90IG9wZW4g
aW5wdXQgc3RyZWFtKSBjYXVzZSB0aGUgam9iIHRvIGFib3J0LA0KIyBOT05fU1RPUCBJbiBub25z
dG9wIG1vZGUgdGhlIGRpYWdub3N0aWMgbWVzc2FnZSB3aWxsIGFwcGVhciBvbiB0aGUgdGVybWlu
YWwsDQojIGJ1dCB0aGVyZSBpcyBubyBwb3NzaWJpbGl0eSBvZiB1c2VyIGludGVyYWN0aW9uIGp1
c3QgbGlrZSBpbiBiYXRjaCBtb2RlLA0KIyBTQ1JPTEwgSW4gc2Nyb2xsIG1vZGUsIFRlWCB3aWxs
IHN0b3Agb25seSBmb3IgbWlzc2luZyBmaWxlcyB0byBpbnB1dCBvciBpZg0KIyBrZXlib2FyZCBp
bnB1dCBpcyBuZWNlc3NhcnkgYW5kIEVSUk9SX1NUT1AgSW4gZXJyb3JzdG9wIG1vZGUsIFRlWCB3
aWxsIHN0b3AgYXQNCiMgZWFjaCBlcnJvciwgYXNraW5nIGZvciB1c2VyIGludGVydmVudGlvbi4N
CiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4NCg0KTEFURVhfQkFUQ0hNT0RFICAg
ICAgICA9IE5PDQoNCiMgSWYgdGhlIExBVEVYX0hJREVfSU5ESUNFUyB0YWcgaXMgc2V0IHRvIFlF
UyB0aGVuIERveHlnZW4gd2lsbCBub3QgaW5jbHVkZSB0aGUNCiMgaW5kZXggY2hhcHRlcnMgKHN1
Y2ggYXMgRmlsZSBJbmRleCwgQ29tcG91bmQgSW5kZXgsIGV0Yy4pIGluIHRoZSBvdXRwdXQuDQoj
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUg
dGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuDQoNCkxBVEVYX0hJREVfSU5ESUNFUyAg
ICAgPSBOTw0KDQojIFRoZSBMQVRFWF9CSUJfU1RZTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNp
ZnkgdGhlIHN0eWxlIHRvIHVzZSBmb3IgdGhlDQojIGJpYmxpb2dyYXBoeSwgZS5nLiBwbGFpbm5h
dCwgb3IgaWVlZXRyLiBTZWUNCiMgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmliVGVY
IGFuZCBcY2l0ZSBmb3IgbW9yZSBpbmZvLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogcGxhaW4u
DQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQg
dG8gWUVTLg0KDQpMQVRFWF9CSUJfU1RZTEUgICAgICAgID0gcGxhaW4NCg0KIyBUaGUgTEFURVhf
RU1PSklfRElSRUNUT1JZIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIChyZWxhdGl2ZSBvciBh
YnNvbHV0ZSkNCiMgcGF0aCBmcm9tIHdoaWNoIHRoZSBlbW9qaSBpbWFnZXMgd2lsbCBiZSByZWFk
LiBJZiBhIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCwNCiMgaXQgd2lsbCBiZSByZWxhdGl2ZSB0
byB0aGUgTEFURVhfT1VUUFVUIGRpcmVjdG9yeS4gSWYgbGVmdCBibGFuayB0aGUNCiMgTEFURVhf
T1VUUFVUIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLg0KDQpMQVRFWF9FTU9KSV9ESVJF
Q1RPUlkgID0NCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDb25maWd1cmF0aW9uIG9wdGlvbnMg
cmVsYXRlZCB0byB0aGUgUlRGIG91dHB1dA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIElmIHRo
ZSBHRU5FUkFURV9SVEYgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBS
VEYgb3V0cHV0LiBUaGUNCiMgUlRGIG91dHB1dCBpcyBvcHRpbWl6ZWQgZm9yIFdvcmQgOTcgYW5k
IG1heSBub3QgbG9vayB0b28gcHJldHR5IHdpdGggb3RoZXIgUlRGDQojIHJlYWRlcnMvZWRpdG9y
cy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpHRU5FUkFURV9SVEYgICAgICAgICAg
ID0gTk8NCg0KIyBUaGUgUlRGX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRo
ZSBSVEYgZG9jcyB3aWxsIGJlIHB1dC4gSWYgYQ0KIyByZWxhdGl2ZSBwYXRoIGlzIGVudGVyZWQg
dGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YNCiMg
aXQuDQojIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogcnRmLg0KIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuDQoNClJURl9PVVRQVVQg
ICAgICAgICAgICAgPSBydGYNCg0KIyBJZiB0aGUgQ09NUEFDVF9SVEYgdGFnIGlzIHNldCB0byBZ
RVMsIERveHlnZW4gZ2VuZXJhdGVzIG1vcmUgY29tcGFjdCBSVEYNCiMgZG9jdW1lbnRzLiBUaGlz
IG1heSBiZSB1c2VmdWwgZm9yIHNtYWxsIHByb2plY3RzIGFuZCBtYXkgaGVscCB0byBzYXZlIHNv
bWUNCiMgdHJlZXMgaW4gZ2VuZXJhbC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMu
DQoNCkNPTVBBQ1RfUlRGICAgICAgICAgICAgPSBOTw0KDQojIElmIHRoZSBSVEZfSFlQRVJMSU5L
UyB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIFJURiB0aGF0IGlzIGdlbmVyYXRlZCB3aWxsDQojIGNv
bnRhaW4gaHlwZXJsaW5rIGZpZWxkcy4gVGhlIFJURiBmaWxlIHdpbGwgY29udGFpbiBsaW5rcyAo
anVzdCBsaWtlIHRoZSBIVE1MDQojIG91dHB1dCkgaW5zdGVhZCBvZiBwYWdlIHJlZmVyZW5jZXMu
IFRoaXMgbWFrZXMgdGhlIG91dHB1dCBzdWl0YWJsZSBmb3Igb25saW5lDQojIGJyb3dzaW5nIHVz
aW5nIFdvcmQgb3Igc29tZSBvdGhlciBXb3JkIGNvbXBhdGlibGUgcmVhZGVycyB0aGF0IHN1cHBv
cnQgdGhvc2UNCiMgZmllbGRzLg0KIw0KIyBOb3RlOiBXb3JkUGFkICh3cml0ZSkgYW5kIG90aGVy
cyBkbyBub3Qgc3VwcG9ydCBsaW5rcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMu
DQoNClJURl9IWVBFUkxJTktTICAgICAgICAgPSBOTw0KDQojIExvYWQgc3R5bGVzaGVldCBkZWZp
bml0aW9ucyBmcm9tIGZpbGUuIFN5bnRheCBpcyBzaW1pbGFyIHRvIERveHlnZW4ncw0KIyBjb25m
aWd1cmF0aW9uIGZpbGUsIGkuZS4gYSBzZXJpZXMgb2YgYXNzaWdubWVudHMuIFlvdSBvbmx5IGhh
dmUgdG8gcHJvdmlkZQ0KIyByZXBsYWNlbWVudHMsIG1pc3NpbmcgZGVmaW5pdGlvbnMgYXJlIHNl
dCB0byB0aGVpciBkZWZhdWx0IHZhbHVlLg0KIw0KIyBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2Vu
IHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZQ0KIyBkZWZhdWx0
IHN0eWxlIHNoZWV0IHRoYXQgRG94eWdlbiBub3JtYWxseSB1c2VzLg0KIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuDQoNClJURl9TVFlM
RVNIRUVUX0ZJTEUgICAgPQ0KDQojIFNldCBvcHRpb25hbCB2YXJpYWJsZXMgdXNlZCBpbiB0aGUg
Z2VuZXJhdGlvbiBvZiBhbiBSVEYgZG9jdW1lbnQuIFN5bnRheCBpcw0KIyBzaW1pbGFyIHRvIERv
eHlnZW4ncyBjb25maWd1cmF0aW9uIGZpbGUuIEEgdGVtcGxhdGUgZXh0ZW5zaW9ucyBmaWxlIGNh
biBiZQ0KIyBnZW5lcmF0ZWQgdXNpbmcgZG94eWdlbiAtZSBydGYgZXh0ZW5zaW9uRmlsZS4NCiMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1JURiBpcyBzZXQgdG8gWUVT
Lg0KDQpSVEZfRVhURU5TSU9OU19GSUxFICAgID0NCg0KIyBUaGUgUlRGX0VYVFJBX0ZJTEVTIHRh
ZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGV4dHJhIGltYWdlcyBvcg0KIyBv
dGhlciBzb3VyY2UgZmlsZXMgd2hpY2ggc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgUlRGX09VVFBV
VCBvdXRwdXQgZGlyZWN0b3J5Lg0KIyBOb3RlIHRoYXQgdGhlIGZpbGVzIHdpbGwgYmUgY29waWVk
IGFzLWlzOyB0aGVyZSBhcmUgbm8gY29tbWFuZHMgb3IgbWFya2Vycw0KIyBhdmFpbGFibGUuDQoj
IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlF
Uy4NCg0KUlRGX0VYVFJBX0ZJTEVTICAgICAgICA9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMg
Q29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIG1hbiBwYWdlIG91dHB1dA0KIy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KDQojIElmIHRoZSBHRU5FUkFURV9NQU4gdGFnIGlzIHNldCB0byBZ
RVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBtYW4gcGFnZXMgZm9yDQojIGNsYXNzZXMgYW5kIGZp
bGVzLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCkdFTkVSQVRFX01BTiAgICAgICAg
ICAgPSBOTw0KDQojIFRoZSBNQU5fT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUg
dGhlIG1hbiBwYWdlcyB3aWxsIGJlIHB1dC4gSWYgYQ0KIyByZWxhdGl2ZSBwYXRoIGlzIGVudGVy
ZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4gZnJvbnQgb2YN
CiMgaXQuIEEgZGlyZWN0b3J5IG1hbjMgd2lsbCBiZSBjcmVhdGVkIGluc2lkZSB0aGUgZGlyZWN0
b3J5IHNwZWNpZmllZCBieQ0KIyBNQU5fT1VUUFVULg0KIyBUaGUgZGVmYXVsdCBkaXJlY3Rvcnkg
aXM6IG1hbi4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX01BTiBp
cyBzZXQgdG8gWUVTLg0KDQpNQU5fT1VUUFVUICAgICAgICAgICAgID0gbWFuDQoNCiMgVGhlIE1B
Tl9FWFRFTlNJT04gdGFnIGRldGVybWluZXMgdGhlIGV4dGVuc2lvbiB0aGF0IGlzIGFkZGVkIHRv
IHRoZSBnZW5lcmF0ZWQNCiMgbWFuIHBhZ2VzLiBJbiBjYXNlIHRoZSBtYW51YWwgc2VjdGlvbiBk
b2VzIG5vdCBzdGFydCB3aXRoIGEgbnVtYmVyLCB0aGUgbnVtYmVyDQojIDMgaXMgcHJlcGVuZGVk
LiBUaGUgZG90ICguKSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBNQU5fRVhURU5TSU9OIHRhZyBp
cw0KIyBvcHRpb25hbC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IC4zLg0KIyBUaGlzIHRhZyBy
ZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuDQoNCk1BTl9F
WFRFTlNJT04gICAgICAgICAgPSAuMw0KDQojIFRoZSBNQU5fU1VCRElSIHRhZyBkZXRlcm1pbmVz
IHRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgY3JlYXRlZCB3aXRoaW4NCiMgTUFOX09VVFBVVCBp
biB3aGljaCB0aGUgbWFuIHBhZ2VzIGFyZSBwbGFjZWQuIElmIGRlZmF1bHRzIHRvIG1hbiBmb2xs
b3dlZCBieQ0KIyBNQU5fRVhURU5TSU9OIHdpdGggdGhlIGluaXRpYWwgLiByZW1vdmVkLg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMu
DQoNCk1BTl9TVUJESVIgICAgICAgICAgICAgPQ0KDQojIElmIHRoZSBNQU5fTElOS1MgdGFnIGlz
IHNldCB0byBZRVMgYW5kIERveHlnZW4gZ2VuZXJhdGVzIG1hbiBvdXRwdXQsIHRoZW4gaXQNCiMg
d2lsbCBnZW5lcmF0ZSBvbmUgYWRkaXRpb25hbCBtYW4gZmlsZSBmb3IgZWFjaCBlbnRpdHkgZG9j
dW1lbnRlZCBpbiB0aGUgcmVhbA0KIyBtYW4gcGFnZShzKS4gVGhlc2UgYWRkaXRpb25hbCBmaWxl
cyBvbmx5IHNvdXJjZSB0aGUgcmVhbCBtYW4gcGFnZSwgYnV0IHdpdGhvdXQNCiMgdGhlbSB0aGUg
bWFuIGNvbW1hbmQgd291bGQgYmUgdW5hYmxlIHRvIGZpbmQgdGhlIGNvcnJlY3QgcGFnZS4NCiMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgR0VORVJBVEVfTUFOIGlzIHNldCB0byBZRVMuDQoNCk1BTl9MSU5LUyAgICAgICAgICAgICAg
PSBOTw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxh
dGVkIHRvIHRoZSBYTUwgb3V0cHV0DQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMgSWYgdGhlIEdF
TkVSQVRFX1hNTCB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGFuIFhN
TCBmaWxlIHRoYXQNCiMgY2FwdHVyZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29kZSBpbmNsdWRp
bmcgYWxsIGRvY3VtZW50YXRpb24uDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KR0VO
RVJBVEVfWE1MICAgICAgICAgICA9IE5PDQoNCiMgVGhlIFhNTF9PVVRQVVQgdGFnIGlzIHVzZWQg
dG8gc3BlY2lmeSB3aGVyZSB0aGUgWE1MIHBhZ2VzIHdpbGwgYmUgcHV0LiBJZiBhDQojIHJlbGF0
aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUgdmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJl
IHB1dCBpbiBmcm9udCBvZg0KIyBpdC4NCiMgVGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiB4bWwu
DQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRv
IFlFUy4NCg0KWE1MX09VVFBVVCAgICAgICAgICAgICA9IHhtbA0KDQojIElmIHRoZSBYTUxfUFJP
R1JBTUxJU1RJTkcgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBkdW1wIHRoZSBwcm9n
cmFtDQojIGxpc3RpbmdzIChpbmNsdWRpbmcgc3ludGF4IGhpZ2hsaWdodGluZyBhbmQgY3Jvc3Mt
cmVmZXJlbmNpbmcgaW5mb3JtYXRpb24pIHRvDQojIHRoZSBYTUwgb3V0cHV0LiBOb3RlIHRoYXQg
ZW5hYmxpbmcgdGhpcyB3aWxsIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgdGhlIHNpemUNCiMgb2Yg
dGhlIFhNTCBvdXRwdXQuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQojIFRoaXMgdGFn
IHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4NCg0KWE1M
X1BST0dSQU1MSVNUSU5HICAgICA9IFlFUw0KDQojIElmIHRoZSBYTUxfTlNfTUVNQl9GSUxFX1ND
T1BFIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgaW5jbHVkZQ0KIyBuYW1lc3BhY2Ug
bWVtYmVycyBpbiBmaWxlIHNjb3BlIGFzIHdlbGwsIG1hdGNoaW5nIHRoZSBIVE1MIG91dHB1dC4N
CiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRo
ZSB0YWcgR0VORVJBVEVfWE1MIGlzIHNldCB0byBZRVMuDQoNClhNTF9OU19NRU1CX0ZJTEVfU0NP
UEUgPSBOTw0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBy
ZWxhdGVkIHRvIHRoZSBET0NCT09LIG91dHB1dA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIElm
IHRoZSBHRU5FUkFURV9ET0NCT09LIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2Vu
ZXJhdGUgRG9jYm9vayBmaWxlcw0KIyB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIFBERi4N
CiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KDQpHRU5FUkFURV9ET0NCT09LICAgICAgID0g
Tk8NCg0KIyBUaGUgRE9DQk9PS19PVVRQVVQgdGFnIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGVyZSB0
aGUgRG9jYm9vayBwYWdlcyB3aWxsIGJlIHB1dC4NCiMgSWYgYSByZWxhdGl2ZSBwYXRoIGlzIGVu
dGVyZWQgdGhlIHZhbHVlIG9mIE9VVFBVVF9ESVJFQ1RPUlkgd2lsbCBiZSBwdXQgaW4NCiMgZnJv
bnQgb2YgaXQuDQojIFRoZSBkZWZhdWx0IGRpcmVjdG9yeSBpczogZG9jYm9vay4NCiMgVGhpcyB0
YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0RPQ0JPT0sgaXMgc2V0IHRvIFlFUy4N
Cg0KRE9DQk9PS19PVVRQVVQgICAgICAgICA9IGRvY2Jvb2sNCg0KIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBBdXRvR2VuIERlZmluaXRpb25zIG91
dHB1dA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIElmIHRoZSBHRU5FUkFURV9BVVRPR0VOX0RF
RiB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGFuDQojIEF1dG9HZW4g
RGVmaW5pdGlvbnMgKHNlZSBodHRwczovL2F1dG9nZW4uc291cmNlZm9yZ2UubmV0LykgZmlsZSB0
aGF0IGNhcHR1cmVzDQojIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvZGUgaW5jbHVkaW5nIGFsbCBk
b2N1bWVudGF0aW9uLiBOb3RlIHRoYXQgdGhpcyBmZWF0dXJlDQojIGlzIHN0aWxsIGV4cGVyaW1l
bnRhbCBhbmQgaW5jb21wbGV0ZSBhdCB0aGUgbW9tZW50Lg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogTk8uDQoNCkdFTkVSQVRFX0FVVE9HRU5fREVGICAgPSBOTw0KDQojLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQojIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIFNxbGl0ZTMgb3V0cHV0DQoj
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMgSWYgdGhlIEdFTkVSQVRFX1NRTElURTMgdGFnIGlzIHNl
dCB0byBZRVMgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgU3FsaXRlMw0KIyBkYXRhYmFzZSB3aXRo
IHN5bWJvbHMgZm91bmQgYnkgRG94eWdlbiBzdG9yZWQgaW4gdGFibGVzLg0KIyBUaGUgZGVmYXVs
dCB2YWx1ZSBpczogTk8uDQoNCkdFTkVSQVRFX1NRTElURTMgICAgICAgPSBOTw0KDQojIFRoZSBT
UUxJVEUzX09VVFBVVCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXJlIHRoZSBTcWxpdGUzIGRh
dGFiYXNlIHdpbGwgYmUNCiMgcHV0LiBJZiBhIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCB0aGUg
dmFsdWUgb2YgT1VUUFVUX0RJUkVDVE9SWSB3aWxsIGJlIHB1dA0KIyBpbiBmcm9udCBvZiBpdC4N
CiMgVGhlIGRlZmF1bHQgZGlyZWN0b3J5IGlzOiBzcWxpdGUzLg0KIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfU1FMSVRFMyBpcyBzZXQgdG8gWUVTLg0KDQpTUUxJVEUz
X09VVFBVVCAgICAgICAgID0gc3FsaXRlMw0KDQojIFRoZSBTUUxJVEUzX1JFQ1JFQVRFX0RCIHRh
ZyBpcyBzZXQgdG8gWUVTLCB0aGUgZXhpc3RpbmcgZG94eWdlbl9zcWxpdGUzLmRiDQojIGRhdGFi
YXNlIGZpbGUgd2lsbCBiZSByZWNyZWF0ZWQgd2l0aCBlYWNoIERveHlnZW4gcnVuLiBJZiBzZXQg
dG8gTk8sIERveHlnZW4NCiMgd2lsbCB3YXJuIGlmIGEgZGF0YWJhc2UgZmlsZSBpcyBhbHJlYWR5
IGZvdW5kIGFuZCBub3QgbW9kaWZ5IGl0Lg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0K
IyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfU1FMSVRFMyBpcyBzZXQg
dG8gWUVTLg0KDQpTUUxJVEUzX1JFQ1JFQVRFX0RCICAgID0gWUVTDQoNCiMtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCiMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIFBlcmwgbW9kdWxl
IG91dHB1dA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIElmIHRoZSBHRU5FUkFURV9QRVJMTU9E
IHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBQZXJsIG1vZHVsZQ0K
IyBmaWxlIHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29kZSBpbmNsdWRpbmcg
YWxsIGRvY3VtZW50YXRpb24uDQojDQojIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMgc3RpbGwg
ZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRoZSBtb21lbnQuDQojIFRoZSBkZWZhdWx0
IHZhbHVlIGlzOiBOTy4NCg0KR0VORVJBVEVfUEVSTE1PRCAgICAgICA9IE5PDQoNCiMgSWYgdGhl
IFBFUkxNT0RfTEFURVggdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSB0
aGUgbmVjZXNzYXJ5DQojIE1ha2VmaWxlIHJ1bGVzLCBQZXJsIHNjcmlwdHMgYW5kIExhVGVYIGNv
ZGUgdG8gYmUgYWJsZSB0byBnZW5lcmF0ZSBQREYgYW5kIERWSQ0KIyBvdXRwdXQgZnJvbSB0aGUg
UGVybCBtb2R1bGUgb3V0cHV0Lg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQojIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9QRVJMTU9EIGlzIHNldCB0byBZRVMu
DQoNClBFUkxNT0RfTEFURVggICAgICAgICAgPSBOTw0KDQojIElmIHRoZSBQRVJMTU9EX1BSRVRU
WSB0YWcgaXMgc2V0IHRvIFlFUywgdGhlIFBlcmwgbW9kdWxlIG91dHB1dCB3aWxsIGJlIG5pY2Vs
eQ0KIyBmb3JtYXR0ZWQgc28gaXQgY2FuIGJlIHBhcnNlZCBieSBhIGh1bWFuIHJlYWRlci4gVGhp
cyBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8NCiMgdW5kZXJzdGFuZCB3aGF0IGlzIGdvaW5nIG9u
LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhpcyB0YWcgaXMgc2V0IHRvIE5PLCB0aGUNCiMgc2l6
ZSBvZiB0aGUgUGVybCBtb2R1bGUgb3V0cHV0IHdpbGwgYmUgbXVjaCBzbWFsbGVyIGFuZCBQZXJs
IHdpbGwgcGFyc2UgaXQNCiMganVzdCB0aGUgc2FtZS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6
IFlFUy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1BFUkxNT0Qg
aXMgc2V0IHRvIFlFUy4NCg0KUEVSTE1PRF9QUkVUVFkgICAgICAgICA9IFlFUw0KDQojIFRoZSBu
YW1lcyBvZiB0aGUgbWFrZSB2YXJpYWJsZXMgaW4gdGhlIGdlbmVyYXRlZCBkb3h5cnVsZXMubWFr
ZSBmaWxlIGFyZQ0KIyBwcmVmaXhlZCB3aXRoIHRoZSBzdHJpbmcgY29udGFpbmVkIGluIFBFUkxN
T0RfTUFLRVZBUl9QUkVGSVguIFRoaXMgaXMgdXNlZnVsDQojIHNvIGRpZmZlcmVudCBkb3h5cnVs
ZXMubWFrZSBmaWxlcyBpbmNsdWRlZCBieSB0aGUgc2FtZSBNYWtlZmlsZSBkb24ndA0KIyBvdmVy
d3JpdGUgZWFjaCBvdGhlcidzIHZhcmlhYmxlcy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0
aGUgdGFnIEdFTkVSQVRFX1BFUkxNT0QgaXMgc2V0IHRvIFlFUy4NCg0KUEVSTE1PRF9NQUtFVkFS
X1BSRUZJWCA9DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgQ29uZmlndXJhdGlvbiBvcHRpb25z
IHJlbGF0ZWQgdG8gdGhlIHByZXByb2Nlc3Nvcg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIElm
IHRoZSBFTkFCTEVfUFJFUFJPQ0VTU0lORyB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxs
IGV2YWx1YXRlIGFsbA0KIyBDLXByZXByb2Nlc3NvciBkaXJlY3RpdmVzIGZvdW5kIGluIHRoZSBz
b3VyY2VzIGFuZCBpbmNsdWRlIGZpbGVzLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0K
DQpFTkFCTEVfUFJFUFJPQ0VTU0lORyAgID0gWUVTDQoNCiMgSWYgdGhlIE1BQ1JPX0VYUEFOU0lP
TiB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGV4cGFuZCBhbGwgbWFjcm8gbmFtZXMN
CiMgaW4gdGhlIHNvdXJjZSBjb2RlLiBJZiBzZXQgdG8gTk8sIG9ubHkgY29uZGl0aW9uYWwgY29t
cGlsYXRpb24gd2lsbCBiZQ0KIyBwZXJmb3JtZWQuIE1hY3JvIGV4cGFuc2lvbiBjYW4gYmUgZG9u
ZSBpbiBhIGNvbnRyb2xsZWQgd2F5IGJ5IHNldHRpbmcNCiMgRVhQQU5EX09OTFlfUFJFREVGIHRv
IFlFUy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBST0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4NCg0KTUFDUk9f
RVhQQU5TSU9OICAgICAgICA9IE5PDQoNCiMgSWYgdGhlIEVYUEFORF9PTkxZX1BSRURFRiBhbmQg
TUFDUk9fRVhQQU5TSU9OIHRhZ3MgYXJlIGJvdGggc2V0IHRvIFlFUyB0aGVuDQojIHRoZSBtYWNy
byBleHBhbnNpb24gaXMgbGltaXRlZCB0byB0aGUgbWFjcm9zIHNwZWNpZmllZCB3aXRoIHRoZSBQ
UkVERUZJTkVEIGFuZA0KIyBFWFBBTkRfQVNfREVGSU5FRCB0YWdzLg0KIyBUaGUgZGVmYXVsdCB2
YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJF
UFJPQ0VTU0lORyBpcyBzZXQgdG8gWUVTLg0KDQpFWFBBTkRfT05MWV9QUkVERUYgICAgID0gTk8N
Cg0KIyBJZiB0aGUgU0VBUkNIX0lOQ0xVREVTIHRhZyBpcyBzZXQgdG8gWUVTLCB0aGUgaW5jbHVk
ZSBmaWxlcyBpbiB0aGUNCiMgSU5DTFVERV9QQVRIIHdpbGwgYmUgc2VhcmNoZWQgaWYgYSAjaW5j
bHVkZSBpcyBmb3VuZC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCiMgVGhpcyB0YWcg
cmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGlzIHNldCB0byBZRVMu
DQoNClNFQVJDSF9JTkNMVURFUyAgICAgICAgPSBZRVMNCg0KIyBUaGUgSU5DTFVERV9QQVRIIHRh
ZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGRpcmVjdG9yaWVzIHRoYXQNCiMg
Y29udGFpbiBpbmNsdWRlIGZpbGVzIHRoYXQgYXJlIG5vdCBpbnB1dCBmaWxlcyBidXQgc2hvdWxk
IGJlIHByb2Nlc3NlZCBieSB0aGUNCiMgcHJlcHJvY2Vzc29yLiBOb3RlIHRoYXQgdGhlIElOQ0xV
REVfUEFUSCBpcyBub3QgcmVjdXJzaXZlLCBzbyB0aGUgc2V0dGluZyBvZg0KIyBSRUNVUlNJVkUg
aGFzIG5vIGVmZmVjdCBoZXJlLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgU0VB
UkNIX0lOQ0xVREVTIGlzIHNldCB0byBZRVMuDQoNCklOQ0xVREVfUEFUSCAgICAgICAgICAgPQ0K
DQojIFlvdSBjYW4gdXNlIHRoZSBJTkNMVURFX0ZJTEVfUEFUVEVSTlMgdGFnIHRvIHNwZWNpZnkg
b25lIG9yIG1vcmUgd2lsZGNhcmQNCiMgcGF0dGVybnMgKGxpa2UgKi5oIGFuZCAqLmhwcCkgdG8g
ZmlsdGVyIG91dCB0aGUgaGVhZGVyLWZpbGVzIGluIHRoZQ0KIyBkaXJlY3Rvcmllcy4gSWYgbGVm
dCBibGFuaywgdGhlIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIEZJTEVfUEFUVEVSTlMgd2lsbCBi
ZQ0KIyB1c2VkLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRU5BQkxFX1BSRVBS
T0NFU1NJTkcgaXMgc2V0IHRvIFlFUy4NCg0KSU5DTFVERV9GSUxFX1BBVFRFUk5TICA9DQoNCiMg
VGhlIFBSRURFRklORUQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgbWFj
cm8gbmFtZXMgdGhhdCBhcmUNCiMgZGVmaW5lZCBiZWZvcmUgdGhlIHByZXByb2Nlc3NvciBpcyBz
dGFydGVkIChzaW1pbGFyIHRvIHRoZSAtRCBvcHRpb24gb2YgZS5nLg0KIyBnY2MpLiBUaGUgYXJn
dW1lbnQgb2YgdGhlIHRhZyBpcyBhIGxpc3Qgb2YgbWFjcm9zIG9mIHRoZSBmb3JtOiBuYW1lIG9y
DQojIG5hbWU9ZGVmaW5pdGlvbiAobm8gc3BhY2VzKS4gSWYgdGhlIGRlZmluaXRpb24gYW5kIHRo
ZSAiPSIgYXJlIG9taXR0ZWQsICI9MSINCiMgaXMgYXNzdW1lZC4gVG8gcHJldmVudCBhIG1hY3Jv
IGRlZmluaXRpb24gZnJvbSBiZWluZyB1bmRlZmluZWQgdmlhICN1bmRlZiBvcg0KIyByZWN1cnNp
dmVseSBleHBhbmRlZCB1c2UgdGhlIDo9IG9wZXJhdG9yIGluc3RlYWQgb2YgdGhlID0gb3BlcmF0
b3IuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lO
RyBpcyBzZXQgdG8gWUVTLg0KDQpQUkVERUZJTkVEICAgICAgICAgICAgID0NCg0KIyBJZiB0aGUg
TUFDUk9fRVhQQU5TSU9OIGFuZCBFWFBBTkRfT05MWV9QUkVERUYgdGFncyBhcmUgc2V0IHRvIFlF
UyB0aGVuIHRoaXMNCiMgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBsaXN0IG9mIG1hY3Jv
IG5hbWVzIHRoYXQgc2hvdWxkIGJlIGV4cGFuZGVkLiBUaGUNCiMgbWFjcm8gZGVmaW5pdGlvbiB0
aGF0IGlzIGZvdW5kIGluIHRoZSBzb3VyY2VzIHdpbGwgYmUgdXNlZC4gVXNlIHRoZSBQUkVERUZJ
TkVEDQojIHRhZyBpZiB5b3Ugd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgbWFjcm8gZGVmaW5pdGlv
biB0aGF0IG92ZXJydWxlcyB0aGUNCiMgZGVmaW5pdGlvbiBmb3VuZCBpbiB0aGUgc291cmNlIGNv
ZGUuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBFTkFCTEVfUFJFUFJPQ0VTU0lO
RyBpcyBzZXQgdG8gWUVTLg0KDQpFWFBBTkRfQVNfREVGSU5FRCAgICAgID0NCg0KIyBJZiB0aGUg
U0tJUF9GVU5DVElPTl9NQUNST1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuJ3MgcHJl
cHJvY2Vzc29yIHdpbGwNCiMgcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIGZ1bmN0aW9uLWxpa2Ug
bWFjcm9zIHRoYXQgYXJlIGFsb25lIG9uIGEgbGluZSwgaGF2ZQ0KIyBhbiBhbGwgdXBwZXJjYXNl
IG5hbWUsIGFuZCBkbyBub3QgZW5kIHdpdGggYSBzZW1pY29sb24uIFN1Y2ggZnVuY3Rpb24gbWFj
cm9zDQojIGFyZSB0eXBpY2FsbHkgdXNlZCBmb3IgYm9pbGVyLXBsYXRlIGNvZGUsIGFuZCB3aWxs
IGNvbmZ1c2UgdGhlIHBhcnNlciBpZiBub3QNCiMgcmVtb3ZlZC4NCiMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IFlFUy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEVOQUJMRV9QUkVQ
Uk9DRVNTSU5HIGlzIHNldCB0byBZRVMuDQoNClNLSVBfRlVOQ1RJT05fTUFDUk9TICAgPSBZRVMN
Cg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0
byBleHRlcm5hbCByZWZlcmVuY2VzDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMgVGhlIFRBR0ZJ
TEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHRhZyBmaWxlcy4gRm9y
IGVhY2ggdGFnDQojIGZpbGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBleHRlcm5hbCBkb2N1bWVudGF0
aW9uIHNob3VsZCBiZSBhZGRlZC4gVGhlIGZvcm1hdCBvZg0KIyBhIHRhZyBmaWxlIHdpdGhvdXQg
dGhpcyBsb2NhdGlvbiBpcyBhcyBmb2xsb3dzOg0KIyBUQUdGSUxFUyA9IGZpbGUxIGZpbGUyIC4u
Lg0KIyBBZGRpbmcgbG9jYXRpb24gZm9yIHRoZSB0YWcgZmlsZXMgaXMgZG9uZSBhcyBmb2xsb3dz
Og0KIyBUQUdGSUxFUyA9IGZpbGUxPWxvYzEgImZpbGUyID0gbG9jMiIgLi4uDQojIHdoZXJlIGxv
YzEgYW5kIGxvYzIgY2FuIGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhzIG9yIFVSTHMuIFNl
ZSB0aGUNCiMgc2VjdGlvbiAiTGlua2luZyB0byBleHRlcm5hbCBkb2N1bWVudGF0aW9uIiBmb3Ig
bW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlDQojIG9mIHRhZyBmaWxlcy4NCiMgTm90ZTog
RWFjaCB0YWcgZmlsZSBtdXN0IGhhdmUgYSB1bmlxdWUgbmFtZSAod2hlcmUgdGhlIG5hbWUgZG9l
cyBOT1QgaW5jbHVkZQ0KIyB0aGUgcGF0aCkuIElmIGEgdGFnIGZpbGUgaXMgbm90IGxvY2F0ZWQg
aW4gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBEb3h5Z2VuIGlzDQojIHJ1biwgeW91IG11c3QgYWxz
byBzcGVjaWZ5IHRoZSBwYXRoIHRvIHRoZSB0YWdmaWxlIGhlcmUuDQoNClRBR0ZJTEVTICAgICAg
ICAgICAgICAgPQ0KDQojIFdoZW4gYSBmaWxlIG5hbWUgaXMgc3BlY2lmaWVkIGFmdGVyIEdFTkVS
QVRFX1RBR0ZJTEUsIERveHlnZW4gd2lsbCBjcmVhdGUgYQ0KIyB0YWcgZmlsZSB0aGF0IGlzIGJh
c2VkIG9uIHRoZSBpbnB1dCBmaWxlcyBpdCByZWFkcy4gU2VlIHNlY3Rpb24gIkxpbmtpbmcgdG8N
CiMgZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhl
IHVzYWdlIG9mIHRhZyBmaWxlcy4NCg0KR0VORVJBVEVfVEFHRklMRSAgICAgICA9DQoNCiMgSWYg
dGhlIEFMTEVYVEVSTkFMUyB0YWcgaXMgc2V0IHRvIFlFUywgYWxsIGV4dGVybmFsIGNsYXNzZXMg
YW5kIG5hbWVzcGFjZXMNCiMgd2lsbCBiZSBsaXN0ZWQgaW4gdGhlIGNsYXNzIGFuZCBuYW1lc3Bh
Y2UgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUNCiMgaW5oZXJpdGVkIGV4dGVybmFsIGNs
YXNzZXMgd2lsbCBiZSBsaXN0ZWQuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCg0KQUxM
RVhURVJOQUxTICAgICAgICAgICA9IE5PDQoNCiMgSWYgdGhlIEVYVEVSTkFMX0dST1VQUyB0YWcg
aXMgc2V0IHRvIFlFUywgYWxsIGV4dGVybmFsIGdyb3VwcyB3aWxsIGJlIGxpc3RlZA0KIyBpbiB0
aGUgdG9waWMgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgY3VycmVudCBwcm9qZWN0J3Mg
Z3JvdXBzIHdpbGwgYmUNCiMgbGlzdGVkLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0K
DQpFWFRFUk5BTF9HUk9VUFMgICAgICAgID0gWUVTDQoNCiMgSWYgdGhlIEVYVEVSTkFMX1BBR0VT
IHRhZyBpcyBzZXQgdG8gWUVTLCBhbGwgZXh0ZXJuYWwgcGFnZXMgd2lsbCBiZSBsaXN0ZWQgaW4N
CiMgdGhlIHJlbGF0ZWQgcGFnZXMgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgY3VycmVu
dCBwcm9qZWN0J3MgcGFnZXMgd2lsbA0KIyBiZSBsaXN0ZWQuDQojIFRoZSBkZWZhdWx0IHZhbHVl
IGlzOiBZRVMuDQoNCkVYVEVSTkFMX1BBR0VTICAgICAgICAgPSBZRVMNCg0KIy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBkaWFncmFtIGdlbmVy
YXRvciB0b29scw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIElmIHNldCB0byBZRVMgdGhlIGlu
aGVyaXRhbmNlIGFuZCBjb2xsYWJvcmF0aW9uIGdyYXBocyB3aWxsIGhpZGUgaW5oZXJpdGFuY2UN
CiMgYW5kIHVzYWdlIHJlbGF0aW9ucyBpZiB0aGUgdGFyZ2V0IGlzIHVuZG9jdW1lbnRlZCBvciBp
cyBub3QgYSBjbGFzcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KSElERV9VTkRP
Q19SRUxBVElPTlMgICA9IFlFUw0KDQojIElmIHlvdSBzZXQgdGhlIEhBVkVfRE9UIHRhZyB0byBZ
RVMgdGhlbiBEb3h5Z2VuIHdpbGwgYXNzdW1lIHRoZSBkb3QgdG9vbCBpcw0KIyBhdmFpbGFibGUg
ZnJvbSB0aGUgcGF0aC4gVGhpcyB0b29sIGlzIHBhcnQgb2YgR3JhcGh2aXogKHNlZToNCiMgaHR0
cHM6Ly93d3cuZ3JhcGh2aXoub3JnLyksIGEgZ3JhcGggdmlzdWFsaXphdGlvbiB0b29sa2l0IGZy
b20gQVQmVCBhbmQgTHVjZW50DQojIEJlbGwgTGFicy4gVGhlIG90aGVyIG9wdGlvbnMgaW4gdGhp
cyBzZWN0aW9uIGhhdmUgbm8gZWZmZWN0IGlmIHRoaXMgb3B0aW9uIGlzDQojIHNldCB0byBOTw0K
IyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQoNCkhBVkVfRE9UICAgICAgICAgICAgICAgPSBZ
RVMNCg0KIyBUaGUgRE9UX05VTV9USFJFQURTIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRvdCBp
bnZvY2F0aW9ucyBEb3h5Z2VuIGlzIGFsbG93ZWQNCiMgdG8gcnVuIGluIHBhcmFsbGVsLiBXaGVu
IHNldCB0byAwIERveHlnZW4gd2lsbCBiYXNlIHRoaXMgb24gdGhlIG51bWJlciBvZg0KIyBwcm9j
ZXNzb3JzIGF2YWlsYWJsZSBpbiB0aGUgc3lzdGVtLiBZb3UgY2FuIHNldCBpdCBleHBsaWNpdGx5
IHRvIGEgdmFsdWUNCiMgbGFyZ2VyIHRoYW4gMCB0byBnZXQgY29udHJvbCBvdmVyIHRoZSBiYWxh
bmNlIGJldHdlZW4gQ1BVIGxvYWQgYW5kIHByb2Nlc3NpbmcNCiMgc3BlZWQuDQojIE1pbmltdW0g
dmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDMyLCBkZWZhdWx0IHZhbHVlOiAwLg0KIyBUaGlzIHRh
ZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KRE9UX05V
TV9USFJFQURTICAgICAgICA9IDANCg0KIyBET1RfQ09NTU9OX0FUVFIgaXMgY29tbW9uIGF0dHJp
YnV0ZXMgZm9yIG5vZGVzLCBlZGdlcyBhbmQgbGFiZWxzIG9mDQojIHN1YmdyYXBocy4gV2hlbiB5
b3Ugd2FudCBhIGRpZmZlcmVudGx5IGxvb2tpbmcgZm9udCBpbiB0aGUgZG90IGZpbGVzIHRoYXQN
CiMgRG94eWdlbiBnZW5lcmF0ZXMgeW91IGNhbiBzcGVjaWZ5IGZvbnRuYW1lLCBmb250Y29sb3Ig
YW5kIGZvbnRzaXplIGF0dHJpYnV0ZXMuDQojIEZvciBkZXRhaWxzIHBsZWFzZSBzZWUgPGEgaHJl
Zj1odHRwczovL2dyYXBodml6Lm9yZy9kb2MvaW5mby9hdHRycy5odG1sPk5vZGUsDQojIEVkZ2Ug
YW5kIEdyYXBoIEF0dHJpYnV0ZXMgc3BlY2lmaWNhdGlvbjwvYT4gWW91IG5lZWQgdG8gbWFrZSBz
dXJlIGRvdCBpcyBhYmxlDQojIHRvIGZpbmQgdGhlIGZvbnQsIHdoaWNoIGNhbiBiZSBkb25lIGJ5
IHB1dHRpbmcgaXQgaW4gYSBzdGFuZGFyZCBsb2NhdGlvbiBvciBieQ0KIyBzZXR0aW5nIHRoZSBE
T1RGT05UUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciBieSBzZXR0aW5nIERPVF9GT05UUEFU
SCB0byB0aGUNCiMgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGZvbnQuIERlZmF1bHQgZ3JhcGh2
aXogZm9udHNpemUgaXMgMTQuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBmb250bmFtZT1IZWx2
ZXRpY2EsZm9udHNpemU9MTAuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZF
X0RPVCBpcyBzZXQgdG8gWUVTLg0KDQpET1RfQ09NTU9OX0FUVFIgICAgICAgID0gImZvbnRuYW1l
PUhlbHZldGljYSxmb250c2l6ZT0xMCINCg0KIyBET1RfRURHRV9BVFRSIGlzIGNvbmNhdGVuYXRl
ZCB3aXRoIERPVF9DT01NT05fQVRUUi4gRm9yIGVsZWdhbnQgc3R5bGUgeW91IGNhbg0KIyBhZGQg
J2Fycm93aGVhZD1vcGVuLCBhcnJvd3RhaWw9b3BlbiwgYXJyb3dzaXplPTAuNScuIDxhDQojIGhy
ZWY9aHR0cHM6Ly9ncmFwaHZpei5vcmcvZG9jL2luZm8vYXJyb3dzLmh0bWw+Q29tcGxldGUgZG9j
dW1lbnRhdGlvbiBhYm91dA0KIyBhcnJvd3Mgc2hhcGVzLjwvYT4NCiMgVGhlIGRlZmF1bHQgdmFs
dWUgaXM6IGxhYmVsZm9udG5hbWU9SGVsdmV0aWNhLGxhYmVsZm9udHNpemU9MTAuDQojIFRoaXMg
dGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLg0KDQpET1Rf
RURHRV9BVFRSICAgICAgICAgID0gImxhYmVsZm9udG5hbWU9SGVsdmV0aWNhLGxhYmVsZm9udHNp
emU9MTAiDQoNCiMgRE9UX05PREVfQVRUUiBpcyBjb25jYXRlbmF0ZWQgd2l0aCBET1RfQ09NTU9O
X0FUVFIuIEZvciB2aWV3IHdpdGhvdXQgYm94ZXMNCiMgYXJvdW5kIG5vZGVzIHNldCAnc2hhcGU9
cGxhaW4nIG9yICdzaGFwZT1wbGFpbnRleHQnIDxhDQojIGhyZWY9aHR0cHM6Ly93d3cuZ3JhcGh2
aXoub3JnL2RvYy9pbmZvL3NoYXBlcy5odG1sPlNoYXBlcyBzcGVjaWZpY2F0aW9uPC9hPg0KIyBU
aGUgZGVmYXVsdCB2YWx1ZSBpczogc2hhcGU9Ym94LGhlaWdodD0wLjIsd2lkdGg9MC40Lg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0K
RE9UX05PREVfQVRUUiAgICAgICAgICA9ICJzaGFwZT1ib3gsaGVpZ2h0PTAuMix3aWR0aD0wLjQi
DQoNCiMgWW91IGNhbiBzZXQgdGhlIHBhdGggd2hlcmUgZG90IGNhbiBmaW5kIGZvbnQgc3BlY2lm
aWVkIHdpdGggZm9udG5hbWUgaW4NCiMgRE9UX0NPTU1PTl9BVFRSIGFuZCBvdGhlcnMgZG90IGF0
dHJpYnV0ZXMuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBz
ZXQgdG8gWUVTLg0KDQpET1RfRk9OVFBBVEggICAgICAgICAgID0NCg0KIyBJZiB0aGUgQ0xBU1Nf
R1JBUEggdGFnIGlzIHNldCB0byBZRVMgb3IgR1JBUEggb3IgQlVJTFRJTiB0aGVuIERveHlnZW4g
d2lsbA0KIyBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2lu
ZyB0aGUgZGlyZWN0IGFuZCBpbmRpcmVjdA0KIyBpbmhlcml0YW5jZSByZWxhdGlvbnMuIEluIGNh
c2UgdGhlIENMQVNTX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIG9yIEdSQVBIIGFuZA0KIyBIQVZF
X0RPVCBpcyBlbmFibGVkIGFzIHdlbGwsIHRoZW4gZG90IHdpbGwgYmUgdXNlZCB0byBkcmF3IHRo
ZSBncmFwaC4gSW4gY2FzZQ0KIyB0aGUgQ0xBU1NfR1JBUEggdGFnIGlzIHNldCB0byBZRVMgYW5k
IEhBVkVfRE9UIGlzIGRpc2FibGVkIG9yIGlmIHRoZQ0KIyBDTEFTU19HUkFQSCB0YWcgaXMgc2V0
IHRvIEJVSUxUSU4sIHRoZW4gdGhlIGJ1aWx0LWluIGdlbmVyYXRvciB3aWxsIGJlIHVzZWQuDQoj
IElmIHRoZSBDTEFTU19HUkFQSCB0YWcgaXMgc2V0IHRvIFRFWFQgdGhlIGRpcmVjdCBhbmQgaW5k
aXJlY3QgaW5oZXJpdGFuY2UNCiMgcmVsYXRpb25zIHdpbGwgYmUgc2hvd24gYXMgdGV4dHMgLyBs
aW5rcy4gRXhwbGljaXQgZW5hYmxpbmcgYW4gaW5oZXJpdGFuY2UNCiMgZ3JhcGggb3IgY2hvb3Np
bmcgYSBkaWZmZXJlbnQgcmVwcmVzZW50YXRpb24gZm9yIGFuIGluaGVyaXRhbmNlIGdyYXBoIG9m
IGENCiMgc3BlY2lmaWMgY2xhc3MsIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkgbWVhbnMgb2YgdGhl
IGNvbW1hbmQgXGluaGVyaXRhbmNlZ3JhcGguDQojIERpc2FibGluZyBhbiBpbmhlcml0YW5jZSBn
cmFwaCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mIHRoZSBjb21tYW5kDQojIFxoaWRl
aW5oZXJpdGFuY2VncmFwaC4NCiMgUG9zc2libGUgdmFsdWVzIGFyZTogTk8sIFlFUywgVEVYVCwg
R1JBUEggYW5kIEJVSUxUSU4uDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQoNCkNMQVNT
X0dSQVBIICAgICAgICAgICAgPSBZRVMNCg0KIyBJZiB0aGUgQ09MTEFCT1JBVElPTl9HUkFQSCB0
YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhDQojIGdyYXBoIGZv
ciBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGlyZWN0IGFuZCBpbmRpcmVjdCBp
bXBsZW1lbnRhdGlvbg0KIyBkZXBlbmRlbmNpZXMgKGluaGVyaXRhbmNlLCBjb250YWlubWVudCwg
YW5kIGNsYXNzIHJlZmVyZW5jZXMgdmFyaWFibGVzKSBvZiB0aGUNCiMgY2xhc3Mgd2l0aCBvdGhl
ciBkb2N1bWVudGVkIGNsYXNzZXMuIEV4cGxpY2l0IGVuYWJsaW5nIGEgY29sbGFib3JhdGlvbiBn
cmFwaCwNCiMgd2hlbiBDT0xMQUJPUkFUSU9OX0dSQVBIIGlzIHNldCB0byBOTywgY2FuIGJlIGFj
Y29tcGxpc2hlZCBieSBtZWFucyBvZiB0aGUNCiMgY29tbWFuZCBcY29sbGFib3JhdGlvbmdyYXBo
LiBEaXNhYmxpbmcgYSBjb2xsYWJvcmF0aW9uIGdyYXBoIGNhbiBiZQ0KIyBhY2NvbXBsaXNoZWQg
YnkgbWVhbnMgb2YgdGhlIGNvbW1hbmQgXGhpZGVjb2xsYWJvcmF0aW9uZ3JhcGguDQojIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBI
QVZFX0RPVCBpcyBzZXQgdG8gWUVTLg0KDQpDT0xMQUJPUkFUSU9OX0dSQVBIICAgID0gWUVTDQoN
CiMgSWYgdGhlIEdST1VQX0dSQVBIUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2ls
bCBnZW5lcmF0ZSBhIGdyYXBoIGZvcg0KIyBncm91cHMsIHNob3dpbmcgdGhlIGRpcmVjdCBncm91
cHMgZGVwZW5kZW5jaWVzLiBFeHBsaWNpdCBlbmFibGluZyBhIGdyb3VwDQojIGRlcGVuZGVuY3kg
Z3JhcGgsIHdoZW4gR1JPVVBfR1JBUEhTIGlzIHNldCB0byBOTywgY2FuIGJlIGFjY29tcGxpc2hl
ZCBieSBtZWFucw0KIyBvZiB0aGUgY29tbWFuZCBcZ3JvdXBncmFwaC4gRGlzYWJsaW5nIGEgZGly
ZWN0b3J5IGdyYXBoIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkNCiMgbWVhbnMgb2YgdGhlIGNvbW1h
bmQgXGhpZGVncm91cGdyYXBoLiBTZWUgYWxzbyB0aGUgY2hhcHRlciBHcm91cGluZyBpbiB0aGUN
CiMgbWFudWFsLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0KIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KR1JPVVBfR1JBUEhT
ICAgICAgICAgICA9IFlFUw0KDQojIElmIHRoZSBVTUxfTE9PSyB0YWcgaXMgc2V0IHRvIFlFUywg
RG94eWdlbiB3aWxsIGdlbmVyYXRlIGluaGVyaXRhbmNlIGFuZA0KIyBjb2xsYWJvcmF0aW9uIGRp
YWdyYW1zIGluIGEgc3R5bGUgc2ltaWxhciB0byB0aGUgT01HJ3MgVW5pZmllZCBNb2RlbGluZw0K
IyBMYW5ndWFnZS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KVU1MX0xPT0sgICAg
ICAgICAgICAgICA9IE5PDQoNCiMgSWYgdGhlIFVNTF9MT09LIHRhZyBpcyBlbmFibGVkLCB0aGUg
ZmllbGRzIGFuZCBtZXRob2RzIGFyZSBzaG93biBpbnNpZGUgdGhlDQojIGNsYXNzIG5vZGUuIElm
IHRoZXJlIGFyZSBtYW55IGZpZWxkcyBvciBtZXRob2RzIGFuZCBtYW55IG5vZGVzIHRoZSBncmFw
aCBtYXkNCiMgYmVjb21lIHRvbyBiaWcgdG8gYmUgdXNlZnVsLiBUaGUgVU1MX0xJTUlUX05VTV9G
SUVMRFMgdGhyZXNob2xkIGxpbWl0cyB0aGUNCiMgbnVtYmVyIG9mIGl0ZW1zIGZvciBlYWNoIHR5
cGUgdG8gbWFrZSB0aGUgc2l6ZSBtb3JlIG1hbmFnZWFibGUuIFNldCB0aGlzIHRvIDANCiMgZm9y
IG5vIGxpbWl0LiBOb3RlIHRoYXQgdGhlIHRocmVzaG9sZCBtYXkgYmUgZXhjZWVkZWQgYnkgNTAl
IGJlZm9yZSB0aGUgbGltaXQNCiMgaXMgZW5mb3JjZWQuIFNvIHdoZW4geW91IHNldCB0aGUgdGhy
ZXNob2xkIHRvIDEwLCB1cCB0byAxNSBmaWVsZHMgbWF5IGFwcGVhciwNCiMgYnV0IGlmIHRoZSBu
dW1iZXIgZXhjZWVkcyAxNSwgdGhlIHRvdGFsIGFtb3VudCBvZiBmaWVsZHMgc2hvd24gaXMgbGlt
aXRlZCB0bw0KIyAxMC4NCiMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTAwLCBk
ZWZhdWx0IHZhbHVlOiAxMC4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFVNTF9M
T09LIGlzIHNldCB0byBZRVMuDQoNClVNTF9MSU1JVF9OVU1fRklFTERTICAgPSAxMA0KDQojIElm
IHRoZSBET1RfVU1MX0RFVEFJTFMgdGFnIGlzIHNldCB0byBOTywgRG94eWdlbiB3aWxsIHNob3cg
YXR0cmlidXRlcyBhbmQNCiMgbWV0aG9kcyB3aXRob3V0IHR5cGVzIGFuZCBhcmd1bWVudHMgaW4g
dGhlIFVNTCBncmFwaHMuIElmIHRoZSBET1RfVU1MX0RFVEFJTFMNCiMgdGFnIGlzIHNldCB0byBZ
RVMsIERveHlnZW4gd2lsbCBhZGQgdHlwZSBhbmQgYXJndW1lbnRzIGZvciBhdHRyaWJ1dGVzIGFu
ZA0KIyBtZXRob2RzIGluIHRoZSBVTUwgZ3JhcGhzLiBJZiB0aGUgRE9UX1VNTF9ERVRBSUxTIHRh
ZyBpcyBzZXQgdG8gTk9ORSwgRG94eWdlbg0KIyB3aWxsIG5vdCBnZW5lcmF0ZSBmaWVsZHMgd2l0
aCBjbGFzcyBtZW1iZXIgaW5mb3JtYXRpb24gaW4gdGhlIFVNTCBncmFwaHMuIFRoZQ0KIyBjbGFz
cyBkaWFncmFtcyB3aWxsIGxvb2sgc2ltaWxhciB0byB0aGUgZGVmYXVsdCBjbGFzcyBkaWFncmFt
cyBidXQgdXNpbmcgVU1MDQojIG5vdGF0aW9uIGZvciB0aGUgcmVsYXRpb25zaGlwcy4NCiMgUG9z
c2libGUgdmFsdWVzIGFyZTogTk8sIFlFUyBhbmQgTk9ORS4NCiMgVGhlIGRlZmF1bHQgdmFsdWUg
aXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVU1MX0xPT0sgaXMgc2V0
IHRvIFlFUy4NCg0KRE9UX1VNTF9ERVRBSUxTICAgICAgICA9IE5PDQoNCiMgVGhlIERPVF9XUkFQ
X1RIUkVTSE9MRCB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBj
aGFyYWN0ZXJzDQojIHRvIGRpc3BsYXkgb24gYSBzaW5nbGUgbGluZS4gSWYgdGhlIGFjdHVhbCBs
aW5lIGxlbmd0aCBleGNlZWRzIHRoaXMgdGhyZXNob2xkDQojIHNpZ25pZmljYW50bHkgaXQgd2ls
bCBiZSB3cmFwcGVkIGFjcm9zcyBtdWx0aXBsZSBsaW5lcy4gU29tZSBoZXVyaXN0aWNzIGFyZQ0K
IyBhcHBsaWVkIHRvIGF2b2lkIHVnbHkgbGluZSBicmVha3MuDQojIE1pbmltdW0gdmFsdWU6IDAs
IG1heGltdW0gdmFsdWU6IDEwMDAsIGRlZmF1bHQgdmFsdWU6IDE3Lg0KIyBUaGlzIHRhZyByZXF1
aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KRE9UX1dSQVBfVEhS
RVNIT0xEICAgICA9IDE3DQoNCiMgSWYgdGhlIFRFTVBMQVRFX1JFTEFUSU9OUyB0YWcgaXMgc2V0
IHRvIFlFUyB0aGVuIHRoZSBpbmhlcml0YW5jZSBhbmQNCiMgY29sbGFib3JhdGlvbiBncmFwaHMg
d2lsbCBzaG93IHRoZSByZWxhdGlvbnMgYmV0d2VlbiB0ZW1wbGF0ZXMgYW5kIHRoZWlyDQojIGlu
c3RhbmNlcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJl
cyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KVEVNUExBVEVfUkVMQVRJ
T05TICAgICA9IE5PDQoNCiMgSWYgdGhlIElOQ0xVREVfR1JBUEgsIEVOQUJMRV9QUkVQUk9DRVNT
SU5HIGFuZCBTRUFSQ0hfSU5DTFVERVMgdGFncyBhcmUgc2V0IHRvDQojIFlFUyB0aGVuIERveHln
ZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgZmlsZSBzaG93aW5n
IHRoZQ0KIyBkaXJlY3QgYW5kIGluZGlyZWN0IGluY2x1ZGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBm
aWxlIHdpdGggb3RoZXIgZG9jdW1lbnRlZA0KIyBmaWxlcy4gRXhwbGljaXQgZW5hYmxpbmcgYW4g
aW5jbHVkZSBncmFwaCwgd2hlbiBJTkNMVURFX0dSQVBIIGlzIGlzIHNldCB0byBOTywNCiMgY2Fu
IGJlIGFjY29tcGxpc2hlZCBieSBtZWFucyBvZiB0aGUgY29tbWFuZCBcaW5jbHVkZWdyYXBoLiBE
aXNhYmxpbmcgYW4NCiMgaW5jbHVkZSBncmFwaCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5z
IG9mIHRoZSBjb21tYW5kIFxoaWRlaW5jbHVkZWdyYXBoLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogWUVTLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0
IHRvIFlFUy4NCg0KSU5DTFVERV9HUkFQSCAgICAgICAgICA9IFlFUw0KDQojIElmIHRoZSBJTkNM
VURFRF9CWV9HUkFQSCwgRU5BQkxFX1BSRVBST0NFU1NJTkcgYW5kIFNFQVJDSF9JTkNMVURFUyB0
YWdzIGFyZQ0KIyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGgg
Zm9yIGVhY2ggZG9jdW1lbnRlZCBmaWxlIHNob3dpbmcNCiMgdGhlIGRpcmVjdCBhbmQgaW5kaXJl
Y3QgaW5jbHVkZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGZpbGUgd2l0aCBvdGhlciBkb2N1bWVudGVk
DQojIGZpbGVzLiBFeHBsaWNpdCBlbmFibGluZyBhbiBpbmNsdWRlZCBieSBncmFwaCwgd2hlbiBJ
TkNMVURFRF9CWV9HUkFQSCBpcyBzZXQNCiMgdG8gTk8sIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkg
bWVhbnMgb2YgdGhlIGNvbW1hbmQgXGluY2x1ZGVkYnlncmFwaC4gRGlzYWJsaW5nDQojIGFuIGlu
Y2x1ZGVkIGJ5IGdyYXBoIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkgbWVhbnMgb2YgdGhlIGNvbW1h
bmQNCiMgXGhpZGVpbmNsdWRlZGJ5Z3JhcGguDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMu
DQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVT
Lg0KDQpJTkNMVURFRF9CWV9HUkFQSCAgICAgID0gWUVTDQoNCiMgSWYgdGhlIENBTExfR1JBUEgg
dGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjYWxsDQojIGRl
cGVuZGVuY3kgZ3JhcGggZm9yIGV2ZXJ5IGdsb2JhbCBmdW5jdGlvbiBvciBjbGFzcyBtZXRob2Qu
DQojDQojIE5vdGUgdGhhdCBlbmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIHNpZ25pZmljYW50bHkg
aW5jcmVhc2UgdGhlIHRpbWUgb2YgYSBydW4uDQojIFNvIGluIG1vc3QgY2FzZXMgaXQgd2lsbCBi
ZSBiZXR0ZXIgdG8gZW5hYmxlIGNhbGwgZ3JhcGhzIGZvciBzZWxlY3RlZA0KIyBmdW5jdGlvbnMg
b25seSB1c2luZyB0aGUgXGNhbGxncmFwaCBjb21tYW5kLiBEaXNhYmxpbmcgYSBjYWxsIGdyYXBo
IGNhbiBiZQ0KIyBhY2NvbXBsaXNoZWQgYnkgbWVhbnMgb2YgdGhlIGNvbW1hbmQgXGhpZGVjYWxs
Z3JhcGguDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuDQoNCkNBTExfR1JBUEggICAgICAg
ICAgICAgPSBZRVMNCg0KIyBJZiB0aGUgQ0FMTEVSX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRo
ZW4gRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgY2FsbGVyDQojIGRlcGVuZGVuY3kgZ3JhcGggZm9y
IGV2ZXJ5IGdsb2JhbCBmdW5jdGlvbiBvciBjbGFzcyBtZXRob2QuDQojDQojIE5vdGUgdGhhdCBl
bmFibGluZyB0aGlzIG9wdGlvbiB3aWxsIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgdGhlIHRpbWUg
b2YgYSBydW4uDQojIFNvIGluIG1vc3QgY2FzZXMgaXQgd2lsbCBiZSBiZXR0ZXIgdG8gZW5hYmxl
IGNhbGxlciBncmFwaHMgZm9yIHNlbGVjdGVkDQojIGZ1bmN0aW9ucyBvbmx5IHVzaW5nIHRoZSBc
Y2FsbGVyZ3JhcGggY29tbWFuZC4gRGlzYWJsaW5nIGEgY2FsbGVyIGdyYXBoIGNhbiBiZQ0KIyBh
Y2NvbXBsaXNoZWQgYnkgbWVhbnMgb2YgdGhlIGNvbW1hbmQgXGhpZGVjYWxsZXJncmFwaC4NCiMg
VGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0
YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KQ0FMTEVSX0dSQVBIICAgICAgICAgICA9IFlF
Uw0KDQojIElmIHRoZSBHUkFQSElDQUxfSElFUkFSQ0hZIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4g
RG94eWdlbiB3aWxsIGdyYXBoaWNhbA0KIyBoaWVyYXJjaHkgb2YgYWxsIGNsYXNzZXMgaW5zdGVh
ZCBvZiBhIHRleHR1YWwgb25lLg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLg0KIyBUaGlz
IHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KR1JB
UEhJQ0FMX0hJRVJBUkNIWSAgICA9IFlFUw0KDQojIElmIHRoZSBESVJFQ1RPUllfR1JBUEggdGFn
IGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgc2hvdyB0aGUNCiMgZGVwZW5kZW5jaWVz
IGEgZGlyZWN0b3J5IGhhcyBvbiBvdGhlciBkaXJlY3RvcmllcyBpbiBhIGdyYXBoaWNhbCB3YXku
IFRoZQ0KIyBkZXBlbmRlbmN5IHJlbGF0aW9ucyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgI2luY2x1
ZGUgcmVsYXRpb25zIGJldHdlZW4gdGhlDQojIGZpbGVzIGluIHRoZSBkaXJlY3Rvcmllcy4gRXhw
bGljaXQgZW5hYmxpbmcgYSBkaXJlY3RvcnkgZ3JhcGgsIHdoZW4NCiMgRElSRUNUT1JZX0dSQVBI
IGlzIHNldCB0byBOTywgY2FuIGJlIGFjY29tcGxpc2hlZCBieSBtZWFucyBvZiB0aGUgY29tbWFu
ZA0KIyBcZGlyZWN0b3J5Z3JhcGguIERpc2FibGluZyBhIGRpcmVjdG9yeSBncmFwaCBjYW4gYmUg
YWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mDQojIHRoZSBjb21tYW5kIFxoaWRlZGlyZWN0b3J5Z3Jh
cGguDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRo
YXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLg0KDQpESVJFQ1RPUllfR1JBUEggICAg
ICAgID0gWUVTDQoNCiMgVGhlIERJUl9HUkFQSF9NQVhfREVQVEggdGFnIGNhbiBiZSB1c2VkIHRv
IGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBsZXZlbHMNCiMgb2YgY2hpbGQgZGlyZWN0b3Jp
ZXMgZ2VuZXJhdGVkIGluIGRpcmVjdG9yeSBkZXBlbmRlbmN5IGdyYXBocyBieSBkb3QuDQojIE1p
bmltdW0gdmFsdWU6IDEsIG1heGltdW0gdmFsdWU6IDI1LCBkZWZhdWx0IHZhbHVlOiAxLg0KIyBU
aGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRElSRUNUT1JZX0dSQVBIIGlzIHNldCB0byBZ
RVMuDQoNCkRJUl9HUkFQSF9NQVhfREVQVEggICAgPSAxDQoNCiMgVGhlIERPVF9JTUFHRV9GT1JN
QVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgaW1hZ2UgZm9ybWF0IG9mIHRoZSBpbWFnZXMN
CiMgZ2VuZXJhdGVkIGJ5IGRvdC4gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBpbWFnZSBmb3Jt
YXRzIHNlZSB0aGUgc2VjdGlvbg0KIyBvdXRwdXQgZm9ybWF0cyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBvZiB0aGUgZG90IHRvb2wgKEdyYXBodml6IChzZWU6DQojIGh0dHBzOi8vd3d3LmdyYXBodml6
Lm9yZy8pKS4NCiMgTm90ZTogSWYgeW91IGNob29zZSBzdmcgeW91IG5lZWQgdG8gc2V0IEhUTUxf
RklMRV9FWFRFTlNJT04gdG8geGh0bWwgaW4gb3JkZXINCiMgdG8gbWFrZSB0aGUgU1ZHIGZpbGVz
IHZpc2libGUgaW4gSUUgOSsgKG90aGVyIGJyb3dzZXJzIGRvIG5vdCBoYXZlIHRoaXMNCiMgcmVx
dWlyZW1lbnQpLg0KIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBwbmcsIGpwZywgZ2lmLCBzdmcsIHBu
ZzpnZCwgcG5nOmdkOmdkLCBwbmc6Y2Fpcm8sDQojIHBuZzpjYWlybzpnZCwgcG5nOmNhaXJvOmNh
aXJvLCBwbmc6Y2Fpcm86Z2RpcGx1cywgcG5nOmdkaXBsdXMgYW5kDQojIHBuZzpnZGlwbHVzOmdk
aXBsdXMuDQojIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBwbmcuDQojIFRoaXMgdGFnIHJlcXVpcmVz
IHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLg0KDQpET1RfSU1BR0VfRk9STUFU
ICAgICAgID0gcG5nDQoNCiMgSWYgRE9UX0lNQUdFX0ZPUk1BVCBpcyBzZXQgdG8gc3ZnLCB0aGVu
IHRoaXMgb3B0aW9uIGNhbiBiZSBzZXQgdG8gWUVTIHRvDQojIGVuYWJsZSBnZW5lcmF0aW9uIG9m
IGludGVyYWN0aXZlIFNWRyBpbWFnZXMgdGhhdCBhbGxvdyB6b29taW5nIGFuZCBwYW5uaW5nLg0K
Iw0KIyBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyBhIG1vZGVybiBicm93c2VyIG90aGVyIHRoYW4g
SW50ZXJuZXQgRXhwbG9yZXIuIFRlc3RlZA0KIyBhbmQgd29ya2luZyBhcmUgRmlyZWZveCwgQ2hy
b21lLCBTYWZhcmksIGFuZCBPcGVyYS4NCiMgTm90ZTogRm9yIElFIDkrIHlvdSBuZWVkIHRvIHNl
dCBIVE1MX0ZJTEVfRVhURU5TSU9OIHRvIHhodG1sIGluIG9yZGVyIHRvIG1ha2UNCiMgdGhlIFNW
RyBmaWxlcyB2aXNpYmxlLiBPbGRlciB2ZXJzaW9ucyBvZiBJRSBkbyBub3QgaGF2ZSBTVkcgc3Vw
cG9ydC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLg0KIyBUaGlzIHRhZyByZXF1aXJlcyB0
aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4NCg0KSU5URVJBQ1RJVkVfU1ZHICAg
ICAgICA9IE5PDQoNCiMgVGhlIERPVF9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRo
ZSBwYXRoIHdoZXJlIHRoZSBkb3QgdG9vbCBjYW4gYmUNCiMgZm91bmQuIElmIGxlZnQgYmxhbmss
IGl0IGlzIGFzc3VtZWQgdGhlIGRvdCB0b29sIGNhbiBiZSBmb3VuZCBpbiB0aGUgcGF0aC4NCiMg
VGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuDQoN
CkRPVF9QQVRIICAgICAgICAgICAgICAgPQ0KDQojIFRoZSBET1RGSUxFX0RJUlMgdGFnIGNhbiBi
ZSB1c2VkIHRvIHNwZWNpZnkgb25lIG9yIG1vcmUgZGlyZWN0b3JpZXMgdGhhdA0KIyBjb250YWlu
IGRvdCBmaWxlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoc2VlIHRo
ZSBcZG90ZmlsZQ0KIyBjb21tYW5kKS4NCiMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFn
IEhBVkVfRE9UIGlzIHNldCB0byBZRVMuDQoNCkRPVEZJTEVfRElSUyAgICAgICAgICAgPQ0KDQoj
IFlvdSBjYW4gaW5jbHVkZSBkaWFncmFtcyBtYWRlIHdpdGggZGlhIGluIERveHlnZW4gZG9jdW1l
bnRhdGlvbi4gRG94eWdlbiB3aWxsDQojIHRoZW4gcnVuIGRpYSB0byBwcm9kdWNlIHRoZSBkaWFn
cmFtIGFuZCBpbnNlcnQgaXQgaW4gdGhlIGRvY3VtZW50YXRpb24uIFRoZQ0KIyBESUFfUEFUSCB0
YWcgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGRpYSBiaW5h
cnkgcmVzaWRlcy4NCiMgSWYgbGVmdCBlbXB0eSBkaWEgaXMgYXNzdW1lZCB0byBiZSBmb3VuZCBp
biB0aGUgZGVmYXVsdCBzZWFyY2ggcGF0aC4NCg0KRElBX1BBVEggICAgICAgICAgICAgICA9DQoN
CiMgVGhlIERJQUZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9y
ZSBkaXJlY3RvcmllcyB0aGF0DQojIGNvbnRhaW4gZGlhIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVk
IGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIFxkaWFmaWxlDQojIGNvbW1hbmQpLg0KDQpE
SUFGSUxFX0RJUlMgICAgICAgICAgID0NCg0KIyBXaGVuIHVzaW5nIFBsYW50VU1MLCB0aGUgUExB
TlRVTUxfSkFSX1BBVEggdGFnIHNob3VsZCBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlDQojIHBhdGgg
d2hlcmUgamF2YSBjYW4gZmluZCB0aGUgcGxhbnR1bWwuamFyIGZpbGUgb3IgdG8gdGhlIGZpbGVu
YW1lIG9mIGphciBmaWxlDQojIHRvIGJlIHVzZWQuIElmIGxlZnQgYmxhbmssIGl0IGlzIGFzc3Vt
ZWQgUGxhbnRVTUwgaXMgbm90IHVzZWQgb3IgY2FsbGVkIGR1cmluZw0KIyBhIHByZXByb2Nlc3Np
bmcgc3RlcC4gRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgd2FybmluZyB3aGVuIGl0IGVuY291bnRl
cnMgYQ0KIyBcc3RhcnR1bWwgY29tbWFuZCBpbiB0aGlzIGNhc2UgYW5kIHdpbGwgbm90IGdlbmVy
YXRlIG91dHB1dCBmb3IgdGhlIGRpYWdyYW0uDQoNClBMQU5UVU1MX0pBUl9QQVRIICAgICAgPQ0K
DQojIFdoZW4gdXNpbmcgUGxhbnRVTUwsIHRoZSBQTEFOVFVNTF9DRkdfRklMRSB0YWcgY2FuIGJl
IHVzZWQgdG8gc3BlY2lmeSBhDQojIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgUGxhbnRVTUwuDQoN
ClBMQU5UVU1MX0NGR19GSUxFICAgICAgPQ0KDQojIFdoZW4gdXNpbmcgUGxhbnRVTUwsIHRoZSBz
cGVjaWZpZWQgcGF0aHMgYXJlIHNlYXJjaGVkIGZvciBmaWxlcyBzcGVjaWZpZWQgYnkNCiMgdGhl
ICFpbmNsdWRlIHN0YXRlbWVudCBpbiBhIFBsYW50VU1MIGJsb2NrLg0KDQpQTEFOVFVNTF9JTkNM
VURFX1BBVEggID0NCg0KIyBUaGUgRE9UX0dSQVBIX01BWF9OT0RFUyB0YWcgY2FuIGJlIHVzZWQg
dG8gc2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBub2Rlcw0KIyB0aGF0IHdpbGwgYmUgc2hvd24g
aW4gdGhlIGdyYXBoLiBJZiB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIGEgZ3JhcGggYmVjb21lcw0K
IyBsYXJnZXIgdGhhbiB0aGlzIHZhbHVlLCBEb3h5Z2VuIHdpbGwgdHJ1bmNhdGUgdGhlIGdyYXBo
LCB3aGljaCBpcyB2aXN1YWxpemVkDQojIGJ5IHJlcHJlc2VudGluZyBhIG5vZGUgYXMgYSByZWQg
Ym94LiBOb3RlIHRoYXQgaWYgdGhlIG51bWJlciBvZiBkaXJlY3QNCiMgY2hpbGRyZW4gb2YgdGhl
IHJvb3Qgbm9kZSBpbiBhIGdyYXBoIGlzIGFscmVhZHkgbGFyZ2VyIHRoYW4NCiMgRE9UX0dSQVBI
X01BWF9OT0RFUyB0aGVuIHRoZSBncmFwaCB3aWxsIG5vdCBiZSBzaG93biBhdCBhbGwuIEFsc28g
bm90ZSB0aGF0DQojIHRoZSBzaXplIG9mIGEgZ3JhcGggY2FuIGJlIGZ1cnRoZXIgcmVzdHJpY3Rl
ZCBieSBNQVhfRE9UX0dSQVBIX0RFUFRILg0KIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZh
bHVlOiAxMDAwMCwgZGVmYXVsdCB2YWx1ZTogNTAuDQojIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQg
dGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLg0KDQpET1RfR1JBUEhfTUFYX05PREVTICAg
ID0gNTANCg0KIyBUaGUgTUFYX0RPVF9HUkFQSF9ERVBUSCB0YWcgY2FuIGJlIHVzZWQgdG8gc2V0
IHRoZSBtYXhpbXVtIGRlcHRoIG9mIHRoZSBncmFwaHMNCiMgZ2VuZXJhdGVkIGJ5IGRvdC4gQSBk
ZXB0aCB2YWx1ZSBvZiAzIG1lYW5zIHRoYXQgb25seSBub2RlcyByZWFjaGFibGUgZnJvbSB0aGUN
CiMgcm9vdCBieSBmb2xsb3dpbmcgYSBwYXRoIHZpYSBhdCBtb3N0IDMgZWRnZXMgd2lsbCBiZSBz
aG93bi4gTm9kZXMgdGhhdCBsYXkNCiMgZnVydGhlciBmcm9tIHRoZSByb290IG5vZGUgd2lsbCBi
ZSBvbWl0dGVkLiBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIG9wdGlvbiB0byAxDQojIG9yIDIgbWF5
IGdyZWF0bHkgcmVkdWNlIHRoZSBjb21wdXRhdGlvbiB0aW1lIG5lZWRlZCBmb3IgbGFyZ2UgY29k
ZSBiYXNlcy4gQWxzbw0KIyBub3RlIHRoYXQgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVy
dGhlciByZXN0cmljdGVkIGJ5DQojIERPVF9HUkFQSF9NQVhfTk9ERVMuIFVzaW5nIGEgZGVwdGgg
b2YgMCBtZWFucyBubyBkZXB0aCByZXN0cmljdGlvbi4NCiMgTWluaW11bSB2YWx1ZTogMCwgbWF4
aW11bSB2YWx1ZTogMTAwMCwgZGVmYXVsdCB2YWx1ZTogMC4NCiMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuDQoNCk1BWF9ET1RfR1JBUEhfREVQ
VEggICAgPSAwDQoNCiMgU2V0IHRoZSBET1RfTVVMVElfVEFSR0VUUyB0YWcgdG8gWUVTIHRvIGFs
bG93IGRvdCB0byBnZW5lcmF0ZSBtdWx0aXBsZSBvdXRwdXQNCiMgZmlsZXMgaW4gb25lIHJ1biAo
aS5lLiBtdWx0aXBsZSAtbyBhbmQgLVQgb3B0aW9ucyBvbiB0aGUgY29tbWFuZCBsaW5lKS4gVGhp
cw0KIyBtYWtlcyBkb3QgcnVuIGZhc3RlciwgYnV0IHNpbmNlIG9ubHkgbmV3ZXIgdmVyc2lvbnMg
b2YgZG90ICg+MS44LjEwKSBzdXBwb3J0DQojIHRoaXMsIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxl
ZCBieSBkZWZhdWx0Lg0KIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uDQojIFRoaXMgdGFnIHJl
cXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLg0KDQpET1RfTVVMVElf
VEFSR0VUUyAgICAgID0gTk8NCg0KIyBJZiB0aGUgR0VORVJBVEVfTEVHRU5EIHRhZyBpcyBzZXQg
dG8gWUVTIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGxlZ2VuZCBwYWdlDQojIGV4cGxhaW5pbmcg
dGhlIG1lYW5pbmcgb2YgdGhlIHZhcmlvdXMgYm94ZXMgYW5kIGFycm93cyBpbiB0aGUgZG90IGdl
bmVyYXRlZA0KIyBncmFwaHMuDQojIE5vdGU6IFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgVU1MX0xP
T0sgaXNuJ3Qgc2V0LCBpLmUuIHRoZSBEb3h5Z2VuIGludGVybmFsDQojIGdyYXBoaWNhbCByZXBy
ZXNlbnRhdGlvbiBmb3IgaW5oZXJpdGFuY2UgYW5kIGNvbGxhYm9yYXRpb24gZGlhZ3JhbXMgaXMg
dXNlZC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCiMgVGhpcyB0YWcgcmVxdWlyZXMg
dGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuDQoNCkdFTkVSQVRFX0xFR0VORCAg
ICAgICAgPSBZRVMNCg0KIyBJZiB0aGUgRE9UX0NMRUFOVVAgdGFnIGlzIHNldCB0byBZRVMsIERv
eHlnZW4gd2lsbCByZW1vdmUgdGhlIGludGVybWVkaWF0ZQ0KIyBmaWxlcyB0aGF0IGFyZSB1c2Vk
IHRvIGdlbmVyYXRlIHRoZSB2YXJpb3VzIGdyYXBocy4NCiMNCiMgTm90ZTogVGhpcyBzZXR0aW5n
IGlzIG5vdCBvbmx5IHVzZWQgZm9yIGRvdCBmaWxlcyBidXQgYWxzbyBmb3IgbXNjIHRlbXBvcmFy
eQ0KIyBmaWxlcy4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4NCg0KRE9UX0NMRUFOVVAg
ICAgICAgICAgICA9IFlFUw0KDQojIFlvdSBjYW4gZGVmaW5lIG1lc3NhZ2Ugc2VxdWVuY2UgY2hh
cnRzIHdpdGhpbiBEb3h5Z2VuIGNvbW1lbnRzIHVzaW5nIHRoZSBcbXNjDQojIGNvbW1hbmQuIElm
IHRoZSBNU0NHRU5fVE9PTCB0YWcgaXMgbGVmdCBlbXB0eSAodGhlIGRlZmF1bHQpLCB0aGVuIERv
eHlnZW4gd2lsbA0KIyB1c2UgYSBidWlsdC1pbiB2ZXJzaW9uIG9mIG1zY2dlbiB0b29sIHRvIHBy
b2R1Y2UgdGhlIGNoYXJ0cy4gQWx0ZXJuYXRpdmVseSwNCiMgdGhlIE1TQ0dFTl9UT09MIHRhZyBj
YW4gYWxzbyBzcGVjaWZ5IHRoZSBuYW1lIGFuIGV4dGVybmFsIHRvb2wuIEZvciBpbnN0YW5jZSwN
CiMgc3BlY2lmeWluZyBwcm9nIGFzIHRoZSB2YWx1ZSwgRG94eWdlbiB3aWxsIGNhbGwgdGhlIHRv
b2wgYXMgcHJvZyAtVA0KIyA8b3V0ZmlsZV9mb3JtYXQ+IC1vIDxvdXRwdXRmaWxlPiA8aW5wdXRm
aWxlPi4gVGhlIGV4dGVybmFsIHRvb2wgc2hvdWxkIHN1cHBvcnQNCiMgb3V0cHV0IGZpbGUgZm9y
bWF0cyAicG5nIiwgImVwcyIsICJzdmciLCBhbmQgImlzbWFwIi4NCg0KTVNDR0VOX1RPT0wgICAg
ICAgICAgICA9DQoNCiMgVGhlIE1TQ0ZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lm
eSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0DQojIGNvbnRhaW4gbXNjIGZpbGVzIHRoYXQg
YXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIFxtc2NmaWxlDQojIGNv
bW1hbmQpLg0KDQpNU0NGSUxFX0RJUlMgICAgICAgICAgID0NCg==

--Multipart=_Tue__17_Jun_2025_21_46_47_+0900_h=Nz7CH.Mgk+DlPb
Content-Type: text/x-csrc;
 name="x.c"
Content-Disposition: attachment;
 filename="x.c"
Content-Transfer-Encoding: 7bit

void func1(void) { func0(); }
void func2(void) { func1(); }
void func3(void) { func2(); }
void func4(void) { func3(); }
void func5(void) { func4(); }
void func6(void) { func5(); }
void func7(void) { func6(); }
void func8(void) { func7(); }
void func9(void) { func8(); }
void func10(void) { func9(); }
void func11(void) { func10(); }
void func12(void) { func11(); }
void func13(void) { func12(); }
void func14(void) { func13(); }
void func15(void) { func14(); }
void func16(void) { func15(); }
void func17(void) { func16(); }
void func18(void) { func17(); }
void func19(void) { func18(); }
void func20(void) { func19(); }
void func21(void) { func20(); }
void func22(void) { func21(); }
void func23(void) { func22(); }
void func24(void) { func23(); }
void func25(void) { func24(); }
void func26(void) { func25(); }
void func27(void) { func26(); }
void func28(void) { func27(); }
void func29(void) { func28(); }
void func30(void) { func29(); }
void func31(void) { func30(); }
void func32(void) { func31(); }
void func33(void) { func32(); }
void func34(void) { func33(); }
void func35(void) { func34(); }
void func36(void) { func35(); }
void func37(void) { func36(); }
void func38(void) { func37(); }
void func39(void) { func38(); }
void func40(void) { func39(); }
void func41(void) { func40(); }
void func42(void) { func41(); }
void func43(void) { func42(); }
void func44(void) { func43(); }
void func45(void) { func44(); }
void func46(void) { func45(); }
void func47(void) { func46(); }
void func48(void) { func47(); }
void func49(void) { func48(); }
void func50(void) { func49(); }
void func51(void) { func50(); }
void func52(void) { func51(); }
void func53(void) { func52(); }
void func54(void) { func53(); }
void func55(void) { func54(); }
void func56(void) { func55(); }
void func57(void) { func56(); }
void func58(void) { func57(); }
void func59(void) { func58(); }
void func60(void) { func59(); }
void func61(void) { func60(); }
void func62(void) { func61(); }
void func63(void) { func62(); }
void func64(void) { func63(); }
void func65(void) { func64(); }
void func66(void) { func65(); }
void func67(void) { func66(); }
void func68(void) { func67(); }
void func69(void) { func68(); }
void func70(void) { func69(); }
void func71(void) { func70(); }
void func72(void) { func71(); }
void func73(void) { func72(); }
void func74(void) { func73(); }
void func75(void) { func74(); }
void func76(void) { func75(); }
void func77(void) { func76(); }
void func78(void) { func77(); }
void func79(void) { func78(); }
void func80(void) { func79(); }
void func81(void) { func80(); }
void func82(void) { func81(); }
void func83(void) { func82(); }
void func84(void) { func83(); }
void func85(void) { func84(); }
void func86(void) { func85(); }
void func87(void) { func86(); }
void func88(void) { func87(); }
void func89(void) { func88(); }
void func90(void) { func89(); }
void func91(void) { func90(); }
void func92(void) { func91(); }
void func93(void) { func92(); }
void func94(void) { func93(); }
void func95(void) { func94(); }
void func96(void) { func95(); }
void func97(void) { func96(); }
void func98(void) { func97(); }
void func99(void) { func98(); }
void func100(void) { func99(); }

--Multipart=_Tue__17_Jun_2025_21_46_47_+0900_h=Nz7CH.Mgk+DlPb
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

--Multipart=_Tue__17_Jun_2025_21_46_47_+0900_h=Nz7CH.Mgk+DlPb--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019