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

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

    <bug>
          <bug_id>130979</bug_id>
          
          <creation_ts>2006-04-23 09:19 0000</creation_ts>
          <short_desc>x11-base/xorg-x11 mis-computation of buffer size (CVE-2006-1526)</short_desc>
          <delta_ts>2007-05-31 10:55:31 0000</delta_ts>
          
          
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Security</product>
          <component>Vulnerabilities</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          <bug_file_loc>http://lists.freedesktop.org/archives/xorg/2006-May/015136.html</bug_file_loc>
          <status_whiteboard>A1 [glsa] jaervosz</status_whiteboard>
          
          <priority>P2</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jaervosz@gentoo.org</reporter>
          <assigned_to>security@gentoo.org</assigned_to>
          <cc>corsair@gentoo.org</cc>
    
    <cc>dberkholz@gentoo.org</cc>
    
    <cc>dertobi123@gentoo.org</cc>
    
    <cc>ferdy@gentoo.org</cc>
    
    <cc>fmccor@gentoo.org</cc>
    
    <cc>gustavoz@gentoo.org</cc>
    
    <cc>halcy0n@gentoo.org</cc>
    
    <cc>killerfox@gentoo.org</cc>
    
    <cc>tcort@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-04-23 09:19:22 0000</bug_when>
            <thetext>Bart Massey, a X.Org user reported that &quot;When running rendertest from
XCB xcb/xcb-demo, the Xorg X server crashes partway through.  100%
reproducible on a wide variety of graphics architectures&quot;.

Analyzing the bug Eric Anholt found out that a typo in render/mitri.c
causes the X render extension to mis-calculate the size of a
buffer, leading to an overflow, which can problably be exploited by 
clients of the X server on most systems.

This is Freedesktop.org bugzilla #6642. It has been marked confidential, 
  after the security implications of the problem were identified.

X.Org releases 6.8.0 and later are affected by this bug. Previous 
versions (and XFree86 versions) are not affected.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-04-23 09:23:42 0000</bug_when>
            <thetext>Created an attachment (id=85279)
xrender-mitri.diff

Upstream patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-04-23 09:26:07 0000</bug_when>
            <thetext>Donnie please advise on severity and attach an updated ebuild to this bug. We will call Arch Security Liaisons to test. Do NOT commit anything yet.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 12:47:11 0000</bug_when>
            <thetext>For severity, you can just read the description. Buffer overflow, probably exploitable by X clients (any X-using program).

I&apos;ll be pushing out a new 6.8.2-r7, 6.9-r1 and xorg-server 1.0.2 and 1.0.99.901-r2. Ah, the joys of so many parallel ebuilds.

Testers will probably want to test either 6.8.2 or 1.0.2, current stable and ~arch. Ebuilds coming today or tomorrow.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-04-23 13:07:35 0000</bug_when>
            <thetext>Thx Donnie, just remember don&apos;t commit the updates to Portage just yet:-)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 13:37:28 0000</bug_when>
            <thetext>You didn&apos;t need to tell me the first time, let alone a second. I don&apos;t really appreciate being treated like I&apos;m clueless.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-04-23 21:52:32 0000</bug_when>
            <thetext>To be on the safe side I&apos;d rather say it too often. This was obviously too often. I was just not sure after reading your comment #3, OTOH you&apos;ve handled stuff like this before and I should have remembered. Sorry about that.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 23:28:40 0000</bug_when>
            <thetext>Created an attachment (id=85322)
modular patch

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 23:29:02 0000</bug_when>
            <thetext>Created an attachment (id=85323)
monolith patch

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 23:29:25 0000</bug_when>
            <thetext>Created an attachment (id=85325)
xorg-x11-6.8.2-r7.ebuild

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 23:29:43 0000</bug_when>
            <thetext>Created an attachment (id=85326)
xorg-x11-6.9.0-r1.ebuild

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 23:30:04 0000</bug_when>
            <thetext>Created an attachment (id=85327)
xorg-server-1.0.2-r4.ebuild

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 23:30:21 0000</bug_when>
            <thetext>Created an attachment (id=85328)
xorg-server-1.0.99.901-r2.ebuild

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-04-23 23:46:05 0000</bug_when>
            <thetext>Thx Donnie.

Arch Security Liaisons please test and report back on this bug.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-23 23:55:25 0000</bug_when>
            <thetext>I&apos;ve confirmed the fix no longer crashes the server. Although the rendertest client crashes now, that&apos;s a separate issue.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tcort@gentoo.org</who>
            <bug_when>2006-04-24 03:19:49 0000</bug_when>
            <thetext>(In reply to comment #14)
&gt; I&apos;ve confirmed the fix no longer crashes the server. Although the rendertest
&gt; client crashes now, that&apos;s a separate issue.

I&apos;m running xorg-x11-6.8.2-r6 on amd64 and I&apos;d like to be able to confirm this. I tried checking out xcb-demo from cvs because it appears that xcb-demo isn&apos;t in portage. The cvs version fails on ./configure, it says:

    checking for XCB... configure: error: Package requirements (xcb) 
        were not met: No package &apos;xcb&apos; found

and I have x11-misc/xcb-2.4 installed. Any hints?

http://webcvs.freedesktop.org/xcb/xcb-demo/
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xcb co xcb-demo</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>corsair@gentoo.org</who>
            <bug_when>2006-04-24 04:10:59 0000</bug_when>
            <thetext>I have compile tested xorg-x11-6.8.2-r7 and xorg-server-1.0.2-r4 on PPC64 now.

they compile just fine, but unfortunately I don&apos;t have access to the bug on fd.o bugzilla, so I don&apos;t know how to trigger this bug. Is there a testcase?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-24 09:05:41 0000</bug_when>
            <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; I&apos;ve confirmed the fix no longer crashes the server. Although the rendertest
&gt; &gt; client crashes now, that&apos;s a separate issue.
&gt; 
&gt; I&apos;m running xorg-x11-6.8.2-r6 on amd64 and I&apos;d like to be able to confirm this.
&gt; I tried checking out xcb-demo from cvs because it appears that xcb-demo isn&apos;t
&gt; in portage. The cvs version fails on ./configure, it says:
&gt; 
&gt;     checking for XCB... configure: error: Package requirements (xcb) 
&gt;         were not met: No package &apos;xcb&apos; found
&gt; 
&gt; and I have x11-misc/xcb-2.4 installed. Any hints?

X Cut Buffers != X C Bindings

XCB is no longer maintained in CVS, it&apos;s in git. You&apos;ll need to install stuff in roughly this order: xcb-proto, xcb, xcb-util, xcb-demo.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-24 09:06:27 0000</bug_when>
            <thetext>Created an attachment (id=85366)
xcb-build.diff

This hacky patch fixes the build of xcb-util and xcb-demos.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-24 09:07:44 0000</bug_when>
            <thetext>(In reply to comment #16)
&gt; I have compile tested xorg-x11-6.8.2-r7 and xorg-server-1.0.2-r4 on PPC64 now.
&gt; 
&gt; they compile just fine, but unfortunately I don&apos;t have access to the bug on
&gt; fd.o bugzilla, so I don&apos;t know how to trigger this bug. Is there a testcase?

As mentioned in comment #0, rendertest from xcb/xcb-demo is the testcase. http://xcb.freedesktop.org/wiki/ has all the info.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gustavoz@gentoo.org</who>
            <bug_when>2006-04-24 15:44:13 0000</bug_when>
            <thetext>Adding Ferris since he&apos;s our xorg man in the sparc team.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>fmccor@gentoo.org</who>
            <bug_when>2006-04-24 16:14:16 0000</bug_when>
            <thetext>Um, for me, repoman hates -r6.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dberkholz@gentoo.org</who>
            <bug_when>2006-04-24 16:35:09 0000</bug_when>
            <thetext>There&apos;s no -r6 anywhere on this bug, so it&apos;s a little unclear what you&apos;re talking about.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>halcy0n@gentoo.org</who>
            <bug_when>2006-04-24 20:37:38 0000</bug_when>
            <thetext>Seems fine to me. (x86)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>tcort@gentoo.org</who>
            <bug_when>2006-04-25 06:15:42 0000</bug_when>
            <thetext>Seems fine to me. (amd64) 

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>killerfox@gentoo.org</who>
            <bug_when>2006-04-25 13:10:15 0000</bug_when>
            <thetext>Looks good on hppa</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>gustavoz@gentoo.org</who>
            <bug_when>2006-04-25 15:06:32 0000</bug_when>
            <thetext>Looks good on sparc 2.6/ati-pci.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>fmccor@gentoo.org</who>
            <bug_when>2006-04-27 06:52:34 0000</bug_when>
            <thetext>sparc with 2.6 kernel/sunffb video driver builds and seems fine when using xorg-server-1.0.99.901-r2 + the modular patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2006-04-28 11:00:03 0000</bug_when>
            <thetext>Still missing test reports from alpha, ppc and ppc64 teams</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>kloeri@gentoo.org</who>
            <bug_when>2006-04-28 13:14:08 0000</bug_when>
            <thetext>cc&apos;ign ferdy on behalf of alpha.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ferdy@gentoo.org</who>
            <bug_when>2006-04-30 13:54:12 0000</bug_when>
            <thetext>Looks ok on Alpha.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>dertobi123@gentoo.org</who>
            <bug_when>2006-04-30 16:21:02 0000</bug_when>
            <thetext>6.8.2-r7 looks good on ppc</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-05-01 07:13:17 0000</bug_when>
            <thetext>ppc64 please test and report back, disclosure date is tomorrow. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>corsair@gentoo.org</who>
            <bug_when>2006-05-01 14:14:39 0000</bug_when>
            <thetext>sorry for being late. looks good on ppc64.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-05-01 21:11:52 0000</bug_when>
            <thetext>Thx Markus.

Security please review draft GLSA so we can release on time.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-05-02 09:50:20 0000</bug_when>
            <thetext>Opening since it is public now.

Donnie/someone with commit rights please commit the ebuilds, GLSA is ready.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>joshuabaergen@gentoo.org</who>
            <bug_when>2006-05-02 10:36:12 0000</bug_when>
            <thetext>Ebuilds committed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-05-02 10:42:05 0000</bug_when>
            <thetext>Thx Joshua.

This one is ready for GLSA. Let&apos;s give the mirrors a chance to sync before sending the GLSA.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2006-05-02 11:25:31 0000</bug_when>
            <thetext>Thx everyone.

GLSA 200605-02</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85279</attachid>
            <date>2006-04-23 09:23 0000</date>
            <desc>xrender-mitri.diff</desc>
            <filename>xrender-mitri.diff</filename>
            <type>text/plain</type>
            <data encoding="base64">SW5kZXg6IHJlbmRlci9taXRyaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMveG9yZy94c2Vy
dmVyL3hvcmcvcmVuZGVyL21pdHJpLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC11
IC1yMS41IG1pdHJpLmMKLS0tIHJlbmRlci9taXRyaS5jCTMgSnVsIDIwMDUgMDc6MDI6MDggLTAw
MDAJMS41CisrKyByZW5kZXIvbWl0cmkuYwkxOCBBcHIgMjAwNiAyMjozNDowOCAtMDAwMApAQCAt
MTQ1LDcgKzE0NSw3IEBACiAgICAgaWYgKG5wb2ludCA8IDMpCiAJcmV0dXJuOwogICAgIG50cmkg
PSBucG9pbnQgLSAyOwotICAgIHRyaXMgPSBBTExPQ0FURV9MT0NBTCAobnRyaSAmIHNpemVvZiAo
eFRyaWFuZ2xlKSk7CisgICAgdHJpcyA9IEFMTE9DQVRFX0xPQ0FMIChudHJpICogc2l6ZW9mICh4
VHJpYW5nbGUpKTsKICAgICBpZiAoIXRyaXMpCiAJcmV0dXJuOwogICAgIGZvciAodHJpID0gdHJp
czsgbnBvaW50ID49IDM7IG5wb2ludC0tLCBwb2ludHMrKywgdHJpKyspCkBAIC0xNzcsNyArMTc3
LDcgQEAKICAgICBpZiAobnBvaW50IDwgMykKIAlyZXR1cm47CiAgICAgbnRyaSA9IG5wb2ludCAt
IDI7Ci0gICAgdHJpcyA9IEFMTE9DQVRFX0xPQ0FMIChudHJpICYgc2l6ZW9mICh4VHJpYW5nbGUp
KTsKKyAgICB0cmlzID0gQUxMT0NBVEVfTE9DQUwgKG50cmkgKiBzaXplb2YgKHhUcmlhbmdsZSkp
OwogICAgIGlmICghdHJpcykKIAlyZXR1cm47CiAgICAgZmlyc3QgPSBwb2ludHMrKzsKCg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85322</attachid>
            <date>2006-04-23 23:28 0000</date>
            <desc>modular patch</desc>
            <filename>CVE-2006-1526-xrender-mitri.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">SW5kZXg6IHJlbmRlci9taXRyaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMveG9yZy94c2Vy
dmVyL3hvcmcvcmVuZGVyL21pdHJpLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC11
IC1yMS41IG1pdHJpLmMKLS0tIHhzZXJ2ZXIveG9yZy9yZW5kZXIvbWl0cmkuYwkzIEp1bCAyMDA1
IDA3OjAyOjA4IC0wMDAwCTEuNQorKysgeHNlcnZlci94b3JnL3JlbmRlci9taXRyaS5jCTE4IEFw
ciAyMDA2IDIyOjM0OjA4IC0wMDAwCkBAIC0xNDUsNyArMTQ1LDcgQEAKICAgICBpZiAobnBvaW50
IDwgMykKIAlyZXR1cm47CiAgICAgbnRyaSA9IG5wb2ludCAtIDI7Ci0gICAgdHJpcyA9IEFMTE9D
QVRFX0xPQ0FMIChudHJpICYgc2l6ZW9mICh4VHJpYW5nbGUpKTsKKyAgICB0cmlzID0gQUxMT0NB
VEVfTE9DQUwgKG50cmkgKiBzaXplb2YgKHhUcmlhbmdsZSkpOwogICAgIGlmICghdHJpcykKIAly
ZXR1cm47CiAgICAgZm9yICh0cmkgPSB0cmlzOyBucG9pbnQgPj0gMzsgbnBvaW50LS0sIHBvaW50
cysrLCB0cmkrKykKQEAgLTE3Nyw3ICsxNzcsNyBAQAogICAgIGlmIChucG9pbnQgPCAzKQogCXJl
dHVybjsKICAgICBudHJpID0gbnBvaW50IC0gMjsKLSAgICB0cmlzID0gQUxMT0NBVEVfTE9DQUwg
KG50cmkgJiBzaXplb2YgKHhUcmlhbmdsZSkpOworICAgIHRyaXMgPSBBTExPQ0FURV9MT0NBTCAo
bnRyaSAqIHNpemVvZiAoeFRyaWFuZ2xlKSk7CiAgICAgaWYgKCF0cmlzKQogCXJldHVybjsKICAg
ICBmaXJzdCA9IHBvaW50cysrOwoK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85323</attachid>
            <date>2006-04-23 23:29 0000</date>
            <desc>monolith patch</desc>
            <filename>CVE-2006-1526-xrender-mitri.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">SW5kZXg6IHJlbmRlci9taXRyaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMveG9yZy94c2Vy
dmVyL3hvcmcvcmVuZGVyL21pdHJpLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQpkaWZmIC11
IC1yMS41IG1pdHJpLmMKLS0tIHhjL3Byb2dyYW1zL1hzZXJ2ZXIvcmVuZGVyL21pdHJpLmMJMyBK
dWwgMjAwNSAwNzowMjowOCAtMDAwMAkxLjUKKysrIHhjL3Byb2dyYW1zL1hzZXJ2ZXIvcmVuZGVy
L21pdHJpLmMJMTggQXByIDIwMDYgMjI6MzQ6MDggLTAwMDAKQEAgLTE0NSw3ICsxNDUsNyBAQAog
ICAgIGlmIChucG9pbnQgPCAzKQogCXJldHVybjsKICAgICBudHJpID0gbnBvaW50IC0gMjsKLSAg
ICB0cmlzID0gQUxMT0NBVEVfTE9DQUwgKG50cmkgJiBzaXplb2YgKHhUcmlhbmdsZSkpOworICAg
IHRyaXMgPSBBTExPQ0FURV9MT0NBTCAobnRyaSAqIHNpemVvZiAoeFRyaWFuZ2xlKSk7CiAgICAg
aWYgKCF0cmlzKQogCXJldHVybjsKICAgICBmb3IgKHRyaSA9IHRyaXM7IG5wb2ludCA+PSAzOyBu
cG9pbnQtLSwgcG9pbnRzKyssIHRyaSsrKQpAQCAtMTc3LDcgKzE3Nyw3IEBACiAgICAgaWYgKG5w
b2ludCA8IDMpCiAJcmV0dXJuOwogICAgIG50cmkgPSBucG9pbnQgLSAyOwotICAgIHRyaXMgPSBB
TExPQ0FURV9MT0NBTCAobnRyaSAmIHNpemVvZiAoeFRyaWFuZ2xlKSk7CisgICAgdHJpcyA9IEFM
TE9DQVRFX0xPQ0FMIChudHJpICogc2l6ZW9mICh4VHJpYW5nbGUpKTsKICAgICBpZiAoIXRyaXMp
CiAJcmV0dXJuOwogICAgIGZpcnN0ID0gcG9pbnRzKys7Cgo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85325</attachid>
            <date>2006-04-23 23:29 0000</date>
            <desc>xorg-x11-6.8.2-r7.ebuild</desc>
            <filename>xorg-x11-6.8.2-r7.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA2IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L3gxMS1iYXNlL3hvcmcteDExL3hvcmcteDExLTYu
OC4yLXI2LmVidWlsZCx2IDEuMTQgMjAwNi8wNC8wMyAyMzoxMzo1MiBzcHlkZXJvdXMgRXhwICQK
CiMgU2V0IFRERlhfUklTS1kgdG8gInllcyIgdG8gZ2V0IDE2LWJpdCwgMTAyNHg3Njggb3IgaGln
aGVyIG9uIGxvdy1tZW1vcnkKIyB2b29kb28zIGNhcmRzLgoKIyBMaWJyYXJpZXMgd2hpY2ggYXJl
IG5vdyBzdXBwbGllZCBpbiBzaGFyZWQgZm9ybSB0aGF0IHdlcmUgbm90IGluIHRoZSBwYXN0CiMg
aW5jbHVkZTogIGxpYkZTLnNvLCBsaWJHTHcuc28sIGxpYkk4MTBYdk1DLnNvLCBsaWJYUmVzLnNv
LCBsaWJYZm9udGNhY2hlLnNvLAojIGxpYlhpbmVyYW1hLnNvLCBsaWJYc3Muc28sIGxpYlh2TUMu
c28sIGxpYlh4Zjg2cnVzaC5zbywgbGliZm9udGVuYy5zbywKIyBsaWJ4a2JmaWxlLnNvLCBsaWJ4
a2J1aS5zbwoKIyBUT0RPCiMgMSBKdW5lIDIwMDUgPHNweWRlcm91c0BnZW50b28ub3JnPgojICAg
VEFSR0VUOiBub25lCiMJCUNvbnNpZGVyIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMgb25seSwg
d2hlbiBib3RoIGFyZSBwcm92aWRlZAojCQlDb21iaW5lIGZpbmQgbG9vcHMgZm9yICJDcmVhdGlu
ZyBmb250cy5zY2FsZSBmaWxlcywiICJHZW5lcmF0aW5nCiMJCQlmb250cy5kaXIgZmlsZXMgYW5k
ICJHZW5lcmF0aW5nIFhmdCBjYWNoZSIKIwkJPE1yX0JvbmVzXz4gdGhlIGxvb3AgaW4gcGtnX3Bv
c3RpbnN0IGZvciByZW1vdmluZyBDb21wb3NlIGNhbiBwcm9iYWJseQojCQkJYmUgb25lIGxpbmUg
b2YgYmFzaCBleHBhbnNpb24gbGlrZSBybSAtZiAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpLwoj
CQkJWDExL2xvY2FsZS97amEqfGtvKnx6aCp9L0NvbXBvc2UKIwkJQ2xlYW4gdXAgbWlncmF0aW9u
IGZ1bmN0aW9uCiMJCQktIGxvb3AgdGhyb3VnaCBsaWIqIGluc3RlYWQgb2YgcmVwZXRpdGlvbgoj
CQlGaXggZGlyZWN0aW9uIG9mIGxpYiAtPiBsaWJkaXIgc3ltbGluawojCQlHZW5lcmFsaXplIGFu
eSBmdW5jdGlvbnMgdGhhdCBtYWtlIHNlbnNlIHRvIGdlbmVyYWxpemUgKGkuZS4sIGFueXRoaW5n
CiMJCQl0aGF0IG1pZ2h0IHJlYWxpc3RpY2FsbHkgc2VlIHVzZSBlbHNld2hlcmUsIG9yIHJlcGV0
aXRpdmVseSBoZXJlKQppbmhlcml0IGV1dGlscyBmbGFnLW8tbWF0aWMgdG9vbGNoYWluLWZ1bmNz
IHgxMSBsaW51eC1pbmZvIG11bHRpbGliCgoKIyBNYWtlIHN1cmUgUG9ydGFnZSBkb2VzIF9OT1Rf
IHN0cmlwIHN5bWJvbHMuICBXZSB3aWxsIGRvIGl0IGxhdGVyIGFuZCBtYWtlIHN1cmUKIyB0aGF0
IG9ubHkgd2Ugb25seSBzdHJpcCBzdHVmZiB0aGF0IGFyZSBzYWZlIHRvIHN0cmlwIC4uLgpSRVNU
UklDVD0ibm9zdHJpcCIKCiMgSVVTRT0iZ2F0b3MiIGRpc2FibGVkIGJlY2F1c2UgZ2F0b3MgaXMg
YnJva2VuIG9uIH40LjQgbm93ICgzMSBKYW4gMjAwNCkKSVVTRT0iM2RmeCAzZG5vdyBiaXRtYXAt
Zm9udHMgY2prIGRlYnVnIGRsbG9hZGVyIGRteCBkb2MgZm9udC1zZXJ2ZXIKCWluc2VjdXJlLWRy
aXZlcnMgaXB2NiBtaW5pbWFsIG1teCBubHMgbm9jeHggb3BlbmdsIHBhbSBzZGsgc3NlIHN0YXRp
YwoJdHJ1ZXR5cGUtZm9udHMgdHlwZTEtZm9udHMgdWNsaWJjIHhwcmludCB4diIKIyBJVVNFX0lO
UFVUX0RFVklDRVM9InN5bmFwdGljcyB3YWNvbSIKCkZJTEVTX1ZFUj0iMC44IgpQQVRDSF9WRVI9
IjAuMS4xMyIKWENVUl9WRVI9IjAuMy4xIgpYRlNGVF9FTkNfVkVSPSIwLjEiCgpTPSR7V09SS0RJ
Un0veGMKCkhPTUVQQUdFPSJodHRwOi8veG9yZy5mcmVlZGVza3RvcC5vcmcvIgoKIyBNaXNjIHBh
dGNoZXMgd2UgbWF5IG5lZWQgdG8gZmV0Y2ggLi4KWF9QQVRDSEVTPSJodHRwOi8vZGV2LmdlbnRv
by5vcmcvfmpvc2h1YWJhZXJnZW4vZGlzdGZpbGVzLyR7UH0tcGF0Y2hlcy0ke1BBVENIX1ZFUn0u
dGFyLmJ6MgoJbWlycm9yOi8vZ2VudG9vLyR7UH0tcGF0Y2hlcy0ke1BBVENIX1ZFUn0udGFyLmJ6
MiIKCkdFTlRPT19GSUxFUz0iaHR0cDovL2Rldi5nZW50b28ub3JnL35zZWVtYW50L2Rpc3RmaWxl
cy8ke1B9LWZpbGVzLSR7RklMRVNfVkVSfS50YXIuYnoyCgltaXJyb3I6Ly9nZW50b28vJHtQfS1m
aWxlcy0ke0ZJTEVTX1ZFUn0udGFyLmJ6MiIKClNSQ19VUkk9IiFtaW5pbWFsPyAoIG1pcnJvcjov
L2dlbnRvby9ldXJvZm9udHMtWDExLnRhci5iejIgKQoJZm9udC1zZXJ2ZXI/ICggaHR0cDovL2Rl
di5nZW50b28ub3JnL35jeWZyZWQveG9yZy8ke1BOfS9wYXRjaHNldHMvJHtQVn0veGZzZnQtZW5j
b2RpbmdzLSR7WEZTRlRfRU5DX1ZFUn0udGFyLmJ6MiApCgkhbWluaW1hbD8gKCBtaXJyb3I6Ly9n
ZW50b28vZ2VudG9vLWN1cnNvcnMtdGFkLSR7WENVUl9WRVJ9LnRhci5iejIgKQoJbmxzPyAoIG1p
cnJvcjovL2dlbnRvby9nZW1pbmkta29pOC11LnRhci5iejIgKQoJJHtHRU5UT09fRklMRVN9Cgkk
e1hfUEFUQ0hFU30KCWh0dHA6Ly94b3JnLmZyZWVkZXNrdG9wLm9yZy9YMTFSJHtQVn0vc3JjLXNp
bmdsZS9YMTFSJHtQVn0tc3JjLnRhci5iejIiCiMJaHR0cDovL3hvcmcuZnJlZWRlc2t0b3Aub3Jn
L1gxMVIke1BWfS9zcmMvWDExUiR7UFZ9LXNyYzEudGFyLmd6CiMJaHR0cDovL3hvcmcuZnJlZWRl
c2t0b3Aub3JnL1gxMVIke1BWfS9zcmMvL1gxMVIke1BWfS1zcmMyLnRhci5negojCWh0dHA6Ly94
b3JnLmZyZWVkZXNrdG9wLm9yZy9YMTFSJHtQVn0vc3JjLy9YMTFSJHtQVn0tc3JjMy50YXIuZ3oK
IwlodHRwOi8veG9yZy5mcmVlZGVza3RvcC5vcmcvWDExUiR7UFZ9L3NyYy8vWDExUiR7UFZ9LXNy
YzQudGFyLmd6CiMJaHR0cDovL3hvcmcuZnJlZWRlc2t0b3Aub3JnL1gxMVIke1BWfS9zcmMvL1gx
MVIke1BWfS1zcmM1LnRhci5negojCWRvYz8gKAojCQlodHRwOi8veG9yZy5mcmVlZGVza3RvcC5v
cmcvWDExUiR7UFZ9L3NyYy8vWDExUiR7UFZ9LXNyYzYudGFyLmd6CiMJCWh0dHA6Ly94b3JnLmZy
ZWVkZXNrdG9wLm9yZy9YMTFSJHtQVn0vc3JjLy9YMTFSJHtQVn0tc3JjNy50YXIuZ3oKIwkpIgoK
TElDRU5TRT0iQWRvYmUtWCBDSUQgREVDIERFQy0yIElCTS1YIE5WSURJQS1YIE5ldEJTRCBTR0kg
VUNCLUxCTCBYQy0yCgliaWdlbG93LWhvbG1lcy11cnctZ21iaC1sdXhpIGNocmlzdG9waGVyLWct
ZGVtZXRyaW91IG5hdGlvbmFsLXNlbWljb25kdWN0b3IKCW5va2lhIHRla3Ryb25peCB0aGUtb3Bl
bi1ncm91cCB0b2RkLWMtbWlsbGVyIHgtdHJ1ZXR5cGUgeGZyZWU4Ni0xLjAKCU1JVCBTR0ktQiBC
U0QgfHwgKCBGVEwgR1BMLTIgKSIKU0xPVD0iMCIKS0VZV09SRFM9ImFscGhhIGFtZDY0IGFybSBo
cHBhIGlhNjQgfm1pcHMgcHBjIHBwYzY0IHNoIH5zcGFyYyB4ODYiCgpERVBFTkQ9Ij49c3lzLWxp
YnMvbmN1cnNlcy01LjEKCT49c3lzLWxpYnMvemxpYi0xLjEuMy1yMgoJPj1zeXMtZGV2ZWwvZmxl
eC0yLjUuNGEtcjUKCXN5cy1hcHBzL2dyb2ZmCgk+PWRldi1saWJzL2V4cGF0LTEuOTUuMwoJPj1t
ZWRpYS1saWJzL2ZyZWV0eXBlLTIuMS44Cgk+PW1lZGlhLWxpYnMvZm9udGNvbmZpZy0yLjEtcjEK
CW9wZW5nbD8gKCA+PXgxMS1iYXNlL29wZW5nbC11cGRhdGUtMi4yLjAgKQoJIW5vY3h4PyAoID49
eDExLWFwcHMvdHRta2ZkaXItMy4wLjktcjIgKQoJPj1zeXMtYXBwcy9zZWQtNAoJdXNlcmxhbmRf
R05VPyAoIHN5cy1hcHBzL3V0aWwtbGludXggKQoJZGV2LWxhbmcvcGVybAoJbWVkaWEtbGlicy9s
aWJwbmcKCSE8PWFwcC1lbXVsYXRpb24vZW11bC1saW51eC14ODYteGxpYnMtMS4yLXIzCgkhdmly
dHVhbC94ZnQiCiMgeDExLWxpYnMveGZ0IC0tIGJsb2NrZWQgYmVjYXVzZSBvZiBpbnRlcmZlcmVu
Y2Ugd2l0aCB4b3JnJ3MKIyBGQlNEVE9ETzogbmVlZCB0byBjaGVjayB0aGF0IFggaXMgbm90IHB1
bGxlZCBpbiBiZWZvcmUgZnJlZWJzZC11YmluIGZvciAnY29sJyBwcmVzZW5jZQoKUkRFUEVORD0i
CgkJPj1zeXMtbGlicy96bGliLTEuMS4zLXIyCgkJPj1zeXMtZGV2ZWwvZmxleC0yLjUuNGEtcjUK
CQk+PWRldi1saWJzL2V4cGF0LTEuOTUuMwoJCT49bWVkaWEtbGlicy9mcmVldHlwZS0yLjEuOAoJ
CT49bWVkaWEtbGlicy9mb250Y29uZmlnLTIuMS1yMQoJCW9wZW5nbD8gKCA+PXgxMS1iYXNlL29w
ZW5nbC11cGRhdGUtMi4yLjAgKQoJCSFub2N4eD8gKCA+PXgxMS1hcHBzL3R0bWtmZGlyLTMuMC45
LXIyICkKCQltZWRpYS1saWJzL2xpYnBuZwoJCT49c3lzLWxpYnMvbmN1cnNlcy01LjEKCQkhPD1h
cHAtZW11bGF0aW9uL2VtdWwtbGludXgteDg2LXhsaWJzLTEuMi1yMwoJCSF2aXJ0dWFsL3hmdCIK
ClBERVBFTkQ9Ing4Nj8gKAoJCQlpbnB1dF9kZXZpY2VzX3N5bmFwdGljcz8gKCB4MTEtZHJpdmVy
cy9zeW5hcHRpY3MgKQoJCQlpbnB1dF9kZXZpY2VzX3dhY29tPyAoIHgxMS1taXNjL2xpbnV4d2Fj
b20gKQoJCSkKCQkzZGZ4PyAoID49bWVkaWEtbGlicy9nbGlkZS12My0zLjEwICkKCQl4MTEtdGVy
bXMveHRlcm0iCgpQUk9WSURFPSJ2aXJ0dWFsL3gxMQoJb3BlbmdsPyAoIHZpcnR1YWwvb3Blbmds
CgkJdmlydHVhbC9nbHUgKQoJdmlydHVhbC94ZnQiCgpERVNDUklQVElPTj0iQW4gWDExIGltcGxl
bWVudGF0aW9uIG1haW50YWluZWQgYnkgdGhlIFguT3JnIEZvdW5kYXRpb24iCgpwa2dfc2V0dXAo
KSB7CglGSUxFU19ESVI9IiR7V09SS0RJUn0vZmlsZXMiCglQQVRDSERJUj0iJHtXT1JLRElSfS9w
YXRjaCIKCUVYQ0xVREVEPSIke1BBVENIRElSfS9leGNsdWRlZCIKCgkjIFNldCB1cCBDRkxBRy1y
ZWxhdGVkIHRoaW5ncwoJY2ZsYWdfc2V0dXAKCgkjIFNlZSBidWcgIzM1NDY4LCBjaXJjdWxhciBw
YW0tWDExIGRlcAoJY2hlY2tfcGFtCgoJIyBMb29rIGZvciBpbnZhbGlkL2Rhbmdlcm91cyBVU0Ug
ZmxhZ3MgYW5kIGNvbWJpbmF0aW9ucwoJY2hlY2tfdXNlX2NvbWJvcwoKCXNldHVwX211bHRpbGli
CgoJIyB4ZnMgdXNlcgoJaWYgdXNlIGZvbnQtc2VydmVyOyB0aGVuCgkJZW5ld2dyb3VwIHhmcyAz
MwoJCWVuZXd1c2VyIHhmcyAzMyAtMSAvZXRjL1gxMS9mcyB4ZnMKCWZpCn0KCnNyY191bnBhY2so
KSB7Cgl1bnBhY2tfYWxsCgoJcGF0Y2hfc2V0dXAKCglkb19wYXRjaAoKCWhvc3RfZGVmX3NldHVw
CgoJdXNlX3NwZWNpZmljX2hhY2tzCn0KCnNyY19jb21waWxlKCkgewoJYnVpbGQKfQoKc3JjX2lu
c3RhbGwoKSB7CglpbnN0YWxsX2V2ZXJ5dGhpbmcKCgliYWNrd2FyZF9jb21wYXRfaW5zdGFsbAoK
CWZpeF9wZXJtaXNzaW9ucwoKCSMgV2UgemFwIG91ciBDRkxBR1MgaW4gdGhlIGhvc3QuZGVmIGZp
bGUsIGFzIGhhcmRjb2RlZCBDRkxBR1MgY2FuCgkjIG1lc3MgdXAgb3RoZXIgdGhpbmdzIHRoYXQg
dXNlIHhta21mCgl6YXBfaG9zdF9kZWZfY2ZsYWdzCgoJIyBFVVJPIHN1cHBvcnQKCWlmICEgdXNl
IG1pbmltYWw7IHRoZW4KCQlhZGRfZXVyb19zdXBwb3J0CglmaQoKCXNldHVwX3N0YW5kYXJkX3N5
bWxpbmtzCgoJaWYgdXNlIG9wZW5nbDsgdGhlbgoJCWZpeF9vcGVuZ2xfc3ltbGlua3MKCWZpCgoJ
bGlidG9vbF9hcmNoaXZlX2luc3RhbGwKCgljb21wb3NlX2ZpbGVzX2luc3RhbGwKCglpZiB1c2Ug
Zm9udC1zZXJ2ZXI7IHRoZW4KCQllbmNvZGVfeGZzZnRfZmlsZXMKCWZpCgoJaWYgdXNlIG5sczsg
dGhlbgoJCWtvaThfZm9udHNfaW5zdGFsbAoJZmkKCglldGNfZmlsZXNfaW5zdGFsbAoKCWlmIHVz
ZSBvcGVuZ2w7IHRoZW4KCQlkeW5hbWljX2xpYmdsX2luc3RhbGwKCWZpCgoJZml4X2xpYnRvb2xf
bGliZGlyX3BhdGhzICIkKGZpbmQgJHtEfSAtbmFtZSAqLmxhKSIKCgljdXJzb3JfaW5zdGFsbAoK
CXN0cmlwX2V4ZWNzCgoJaWYgdXNlIG1pbmltYWw7IHRoZW4KCQltaW5pbWFsX2luc3RhbGwKCWZp
CgoJIyBURU1QT1JBUlkgaGFjazogc2hvdWxkIGJlIHBhdGNoZWQgaW4sIGlmIGl0J3Mgbm90IGFs
cmVhZHkKCSMgRm9yIEJhdHRvdXNzYWkncyBnYXRvcyBzdHVmZnM6CglpZiB1c2Ugc2RrOyB0aGVu
CgkJaW5zaW50byAvdXNyLyQoZ2V0X2xpYmRpcikvU2VydmVyL2luY2x1ZGUKCQlkb2lucyAke1N9
L2V4dHJhcy9kcm0vc2hhcmVkL2RybS5oCglmaQoKCXhwcmludF9pbnN0YWxsCgoJY29uZmlnX2Zp
bGVzX2luc3RhbGwKfQoKcGtnX3ByZWluc3QoKSB7CgkjIERvIG1pZ3JhdGlvbiBiZWZvcmUgYW55
dGhpbmcgZWxzZSwgc28gd2UgZG8gYWxsIHRoZSByZXN0IGluc2lkZSB0aGUKCSMgc3ltbGluawoK
CSMgR2V0IHJpZCBvZiAic3RhbmRhcmQiIHN5bWxpbmtzCgkjIFdlIGNhbid0IG92ZXJ3cml0ZSBz
eW1saW5rIHdpdGggZGlyZWN0b3J5IHcvICQobXYgLWYpCglbIC1MICR7Uk9PVH11c3IvJChnZXRf
bGliZGlyKS9YMTEgXSBcCgkJJiYgcm0gJHtST09UfXVzci8kKGdldF9saWJkaXIpL1gxMQoJWyAt
TCAke1JPT1R9dXNyL2luY2x1ZGUvWDExIF0gXAoJCSYmIHJtICR7Uk9PVH11c3IvaW5jbHVkZS9Y
MTEKCVsgLUwgJHtST09UfXVzci9pbmNsdWRlL0dMIF0gXAoJCSYmIHJtICR7Uk9PVH11c3IvaW5j
bHVkZS9HTAoJWyAtTCAke1JPT1R9dXNyL2Jpbi9YMTEgXSBcCgkJJiYgcm0gJHtST09UfXVzci9i
aW4vWDExCgkjIEdldCByaWQgb2Ygc29tZSBhcHBhcmVudCBhcnRpZmFjdHMgb2YgbWlncmF0aW9u
CglbIC1MICR7Uk9PVH11c3IvaW5jbHVkZS9HTC9HTCBdIFwKCQkmJiBybSAke1JPT1R9dXNyL2lu
Y2x1ZGUvR0wvR0wKCVsgLUwgJHtST09UfXVzci9pbmNsdWRlL1gxMS9YMTEgXSBcCgkJJiYgcm0g
JHtST09UfXVzci9pbmNsdWRlL1gxMS9YMTEKCVsgLWQgJHtST09UfXVzci9zaGFyZS9mb250cy9m
b250cyBdIFwKCQkmJiBybSAtcmYgJHtST09UfXVzci9zaGFyZS9mb250cy9mb250cwoKCSMgTm8g
bmVlZCB0byBkbyB0aGlzLCBpZiBpdCdzIGFscmVhZHkgYmVlbiBkb25lCgkjIEFsc28sIGl0J2xs
IG92ZXJ3cml0ZSBhIHRvbiBvZiBzdHVmZiBiZWNhdXNlIGl0IHdvbid0IHJlYWxpemUgL3Vzci9Y
MTFSNgoJIyBpcyBhIHN5bWxpbmsuCglpZiBbICEgLUwgIi91c3IvWDExUjYiIF07IHRoZW4KCQkj
IE1pZ3JhdGUgc3R1ZmYgaW4gL3Vzci9YMTFSNiB0byAvdXNyCgkJbG9jYWwgRElSIERJUlMKCQlE
SVJTPSJiaW4gaW5jbHVkZSBsaWIiCgkJaWYgWyAibGliIiAhPSAiJChnZXRfbGliZGlyKSIgXTsg
dGhlbgoJCQlESVJTPSIke0RJUlN9ICQoZ2V0X2xpYmRpcikiCgkJZmkKCQlmb3IgRElSIGluICR7
RElSU307IGRvCgkJCW1pZ3JhdGUgL3Vzci9YMTFSNi8ke0RJUn0gL3Vzci8ke0RJUn0KCQlkb25l
CgkJIyBDYW4ndCBkbyB0aGlzIGluIHRoZSBvdGhlciBsb29wIGJlY2F1c2Ugb2YgZGlmZmVyZW50
IHN0YXJ0IGFuZCBlbmQKCQltaWdyYXRlIC91c3IvWDExUjYvbWFuIC91c3Ivc2hhcmUvbWFuCglm
aQoKCXVwZGF0ZV9jb25maWdfZmlsZXMKCgljbGVhbnVwX2ZvbnRzCgoJIyBTZWUgYWJvdmUgY29t
bWVudCBmb3IgdGhlIHNhbWUgdGVzdAoJaWYgWyAhIC1MICIvdXNyL1gxMVI2IiBdOyB0aGVuCgkJ
IyBOZWVkcyB0byBoYXBwZW4gYWZ0ZXIgY2xlYW51cF9mb250cygpCgkJbWlncmF0ZSAvdXNyL1gx
MVI2LyQoZ2V0X2xpYmRpcikvWDExL2ZvbnRzIC91c3Ivc2hhcmUvZm9udHMKCgkJIyBHZXQgcmlk
IG9mIHN5bWxpbmtzIHNvIHdlIGNhbiBtaWdyYXRlIC91c3IvWDExUjYgd2l0aG91dCBkeWluZyB3
aGVuIGEKCQkjIHN5bWxpbmsgdHJpZXMgdG8gY29weSB0byBhIGRpcgoJCWVpbmZvICJQcmVwYXJp
bmcgZm9yIC91c3IvWDExUjYgLT4gL3VzciBtaWdyYXRpb24uLi4iCgkJbG9jYWwgTElOSyBMSU5L
UwoJCUxJTktTPSJiaW4gaW5jbHVkZSBsaWIgbWFuIHNoYXJlL2luZm8iCgkJaWYgWyAibGliIiAh
PSAiJChnZXRfbGliZGlyKSIgXTsgdGhlbgoJCQlMSU5LUz0iJHtMSU5LU30gJChnZXRfbGliZGly
KSIKCQlmaQoJCWZvciBMSU5LIGluICR7TElOS1N9OyBkbwoJCQlpZiBbIC1MICIke1JPT1R9L3Vz
ci9YMTFSNi8ke0xJTkt9IiBdOyB0aGVuCgkJCQlybSAtZnYgJHtST09UfS91c3IvWDExUjYvJHtM
SU5LfQoJCQlmaQoJCWRvbmUKCQllaW5mbyAiUmVtYWluaW5nIHN5bWxpbmtzIGluIC91c3IvWDEx
UjY6IgoJCWZpbmQgJHtST09UfS91c3IvWDExUjYvIC10eXBlIGwKCgkJIyBXb29ob28sIG5vdGhp
bmcgaW4gL3Vzci9YMTFSNiBhZnRlciB0aGlzCgkJbWlncmF0ZSAvdXNyL1gxMVI2IC91c3IKCWZp
CgoJbW92ZV9hcHBfZGVmYXVsdHNfdG9fZXRjCgoJbW92ZV94a2JfdG9fdXNyCgoJIyBSdW4gdGhp
cyBldmVuIGZvciBVU0U9LW9wZW5nbCwgdG8gY2xlYW4gb3V0IG9sZCBzdHVmZiBmcm9tIHBvc3Np
YmxlCgkjIFVTRT1vcGVuZ2wgYnVpbGQKCWR5bmFtaWNfbGliZ2xfcHJlaW5zdAp9Cgpwa2dfcG9z
dGluc3QoKSB7CgllbnYtdXBkYXRlCgoJaWYgWyAiJHtST09UfSIgPSAiLyIgXTsgdGhlbgoJCWZv
bnRfc2V0dXAKCgkJaWYgdXNlIG9wZW5nbDsgdGhlbgoJCQlzd2l0Y2hfb3BlbmdsX2ltcGxlbQoJ
CWZpCglmaQoKCXJlbW92ZV9vbGRfY29tcG9zZV9maWxlcwoKCXNldHVwX3RtcF9maWxlcwoKCXBy
aW50X2luZm8KfQoKcGtnX3Bvc3RybSgpIHsKCWZpeF9saW5rcwp9CgojIyMjIyMjIyMjIyMjIyMK
IyBwa2dfc2V0dXAoKSAjCiMjIyMjIyMjIyMjIyMjIwoKY2ZsYWdfc2V0dXAoKSB7CgkjIFNldCB1
cCBDRkxBR1MKCWZpbHRlci1mbGFncyAiLWZ1bnJvbGwtbG9vcHMiCgoJQUxMT1dFRF9GTEFHUz0i
LWZzdGFjay1wcm90ZWN0b3IgLW1hcmNoIC1tY3B1IC1tdHVuZSAtTyAtTzAgLU8xIC1PMiAtTzMg
LU9zIgoJQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtcGlwZSAtZm9taXQtZnJhbWUt
cG9pbnRlciIKCUFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLW1vbWl0LWxlYWYtZnJh
bWUtcG9pbnRlciIKCUFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLWcgLWcwIC1nMSAt
ZzIgLWczIgoJQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtZ2dkYiAtZ2dkYjAgLWdn
ZGIxIC1nZ2RiMiAtZ2dkYjMiCgkjIGFyY2gtc3BlY2lmaWMgc2VjdGlvbiBhZGRlZCBieSBwb3B1
bGFyIGRlbWFuZAoJY2FzZSAiJHtBUkNIfSIgaW4KCQltaXBzKQlBTExPV0VEX0ZMQUdTPSIke0FM
TE9XRURfRkxBR1N9IC1taXBzMSAtbWlwczIgLW1pcHMzIC1taXBzNCAtbWFiaSIKCQkJOzsKCQkj
IC1mb21pdC1mcmFtZS1wb2ludGVyIGtub3duIHRvIGJyZWFrIHRoaW5ncyBhbmQgaXMgcG9pbnRs
ZXNzCgkJIyBhY2NvcmRpbmcgdG8gY2lhcmFubQoJCSMgQW5kIGhhcmRlbmVkIGNvbXBpbGVyIG11
c3QgYmUgc29mdGVuZWQuIC0tIGZtY2NvciwgMjAudmlpaS4wNAoJCXNwYXJjKQlmaWx0ZXItZmxh
Z3MgIi1mb21pdC1mcmFtZS1wb2ludGVyIiAiLW1vbWl0LWxlYWYtZnJhbWUtcG9pbnRlciIKCQkJ
aWYgaGFzX2hhcmRlbmVkICYmICEgdXNlIGRsbG9hZGVyOyB0aGVuCgkJCQllaW5mbyAiU29mdGVu
aW5nIGdjYyBmb3Igc3BhcmMuIgoJCQkJQUxMT1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAt
Zm5vLXBpZSAtZm5vLVBJRSIKCQkJCWFwcGVuZC1mbGFncyAtZm5vLXBpZSAtZm5vLVBJRQoJCQlm
aQoKCQkJaWYgW1sgJHtBQkl9ID09ICJzcGFyYzY0IiBdXTsgdGhlbgoJCQkJQUxMT1dFRF9GTEFH
Uz0iJHtBTExPV0VEX0ZMQUdTfSAtRF9fc3BhcmNfdjlfXyAtRF9fbGludXhfc3BhcmNfNjRfXyIK
CQkJCWFwcGVuZC1mbGFncyAtRF9fc3BhcmNfdjlfXyAtRF9fbGludXhfc3BhcmNfNjRfXwoJCQlm
aQoJCQk7OwoJCSMgZ2NjLTMuMy4yIGNhdXNlcyBpbnZhbGlkIGluc24gZXJyb3IKCQlocHBhICkg
cmVwbGFjZS1jcHUtZmxhZ3MgMi4wIDEuMAoJCQk7OwoJZXNhYwoKCSMgUmVjZW50bHkgdGhlcmUg
aGFzIGJlZW4gYSBsb3Qgb2Ygc3RhYmlsaXR5IHByb2JsZW0gaW4gR2VudG9vLWxhbmQuICBNYW55
CgkjIHRoaW5ncyBjYW4gYmUgdGhlIGNhdXNlIHRvIHRoaXMsIGJ1dCBJIGJlbGlldmUgdGhhdCBp
dCBpcyBkdWUgdG8gZ2NjMwoJIyBzdGlsbCBoYXZpbmcgaXNzdWVzIHdpdGggb3B0aW1pemF0aW9u
cywgb3Igd2l0aCBpdCBub3QgZmlsdGVyaW5nIGJhZAoJIyBjb21iaW5hdGlvbnMgKHByb3RlY3Rp
bmcgdGhlIHVzZXIgbWF5YmUgZnJvbSB0aGVtc2VsdmVzKSB5ZXQuCgkjCgkjIFRoaXMgY2FuIGNs
ZWFybHkgYmUgc2VlbiBpbiBsYXJnZSBidWlsZHMgbGlrZSBnbGliYywgd2hlcmUgdG9vIGFnZ3Jl
c3NpdmUKCSMgQ0ZMQUdTIGNhdXNlIHRoZSB0ZXN0cyB0byBmYWlsIG1pc2VyYmx5LgoJIwoJIyBR
dW90ZSBmcm9tIE5pY2sgSm9uZXMgPGNhcnBhc2tpQGdlbnRvby5vcmc+LCB3aG8gaW4gbXkgb3Bp
bmlvbgoJIyBrbm93cyB3aGF0IGhlIGlzIHRhbGtpbmcgYWJvdXQ6CgkjCgkjICAgUGVvcGxlIHJl
YWxseSBzaG91bGRuJ3QgZm9yY2UgY29kZS1zcGVjaWZpYyBvcHRpb25zIG9uLi4uIEl0J3MgYQoJ
IyAgIGJhZCBpZGVhLiBUaGUgLW1hcmNoIG9wdGlvbnMgYXJlbid0IGp1c3QgdG8gbG9vayBwcmV0
dHkuIFRoZXkgZW5hYmxlCgkjICAgb3B0aW9ucyB0aGF0IGFyZSBzZW5zaWJsZSAoYW5kIGluY2x1
ZGUgc3NlLG1teCwzZG5vdyB3aGVuIGFwcHJvcHJpYXRlKS4KCSMKCSMgVGhlIG5leHQgY29tbWFu
ZCBzdHJpcHMgQ0ZMQUdTIGFuZCBDWFhGTEFHUyBmcm9tIG5lYXJseSBhbGwgZmxhZ3MuICBJZgoJ
IyB5b3UgZG8gbm90IGxpa2UgaXQsIGNvbW1lbnQgaXQsIGJ1dCBkbyBub3QgYnVncmVwb3J0IGlm
IHlvdSBydW4gaW50bwoJIyBwcm9ibGVtcy4KCSMKCSMgPGF6YXJhaEBnZW50b28ub3JnPiAoMTMg
T2N0IDIwMDIpCglzdHJpcC1mbGFncwp9CgpjaGVja19wYW0oKSB7CglpZiB1c2UgcGFtICYmIGhh
c192ZXJzaW9uIHgxMS1iYXNlLyR7UE59OyB0aGVuCgkJZWluZm8gIlByZXZpb3VzICR7UE59IGlu
c3RhbGxhdGlvbiBkZXRlY3RlZC4iCgkJZWluZm8gIkVuYWJsaW5nIFBBTSBmZWF0dXJlcyBpbiAk
e1BOfS4iCgllbHNlCgkJZWluZm8gIlByZXZpb3VzICR7UE59IGluc3RhbGxhdGlvbiBOT1QgZGV0
ZWN0ZWQuIgoJCWVpbmZvICJEaXNhYmxpbmcgUEFNIGZlYXR1cmVzIGluICR7UE59LiIKCQllaW5m
byAiWW91IG11c3QgcmVtZXJnZSAke1BOfSB0byBlbmFibGUgcGFtLiIKCQllaW5mbyAiU2VlIGh0
dHA6Ly9idWdzLmdlbnRvby5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDY4LiIKCWZpCn0KCmNoZWNr
X3VzZV9jb21ib3MoKSB7CglpZiB1c2Ugc3RhdGljOyB0aGVuCgkJIyBBIHN0YXRpYyBidWlsZCBk
aXNhbGxvd3MgYnVpbGRpbmcgdGhlIFNESy4KCQkjIFNlZSBjb25maWcveGY4Ni5ydWxlcy4KCQlp
ZiB1c2Ugc2RrOyB0aGVuCgkJCWRpZSAiVGhlIHN0YXRpYyBVU0UgZmxhZyBpcyBpbmNvbXBhdGli
bGUgd2l0aCB0aGUgc2RrIFVTRSBmbGFnLiIKCQlmaQoJZmkKCglpZiB1c2UgZG14ICYmIHVzZSBk
b2M7IHRoZW4KCQlkaWUgIlRoZSBkbXggYW5kIGRvYyBVU0UgZmxhZ3MgYXJlIHRlbXBvcmFyaWx5
IGluY29tcGF0aWJsZSBhbmQgcmVzdWx0IGluIGEgZGVhZCBidWlsZC4iCglmaQoKCSMgKCM3Nzk0
OSkKCWlmIHVzZSBtaW5pbWFsICYmIHVzZSBkb2M7IHRoZW4KCQlkaWUgIlRoZSBtaW5pbWFsIGFu
ZCBkb2MgVVNFIGZsYWdzIGFyZSB0ZW1wb3JhcmlseSBpbmNvbXBhdGlibGUgYW5kIHJlc3VsdCBp
biBhIGRlYWQgYnVpbGQuIgoJZmkKCglpZiB1c2UgeHYgJiYgISB1c2Ugb3BlbmdsOyB0aGVuCgkJ
ZWVycm9yICJTZWUgaHR0cDovL2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5OTYi
CgkJZWVycm9yICJUaGUgeHYgVVNFIGZsYWcgY3VycmVudGx5IHJlcXVpcmVzIHRoZSBvcGVuZ2wg
ZmxhZy4iCgkJZGllICJUaGlzIGlzIGEga25vd24gYnVnLiBEbyBub3QgcmVwb3J0IGl0LiIKCWZp
CgoJaWYgdXNlIG9wZW5nbCAmJiAhIHVzZSB4djsgdGhlbgoJCWVlcnJvciAiU2VlIGh0dHA6Ly9i
dWdzLmdlbnRvby5vcmcvc2hvd19idWcuY2dpP2lkPTc2OTM2IgoJCWVlcnJvciAiVGhlIG9wZW5n
bCBVU0UgZmxhZyBjdXJyZW50bHkgcmVxdWlyZXMgdGhlIHh2IGZsYWcuIgoJCWRpZSAiVGhpcyBp
cyBhIGtub3duIGJ1Zy4gRG8gbm90IHJlcG9ydCBpdC4iCglmaQoKCSMgRWNobyBhIG1lc3NhZ2Ug
dG8gdGhlIHVzZXIgYWJvdXQgYml0bWFwLWZvbnRzCglpZiAhIHVzZSBiaXRtYXAtZm9udHM7IHRo
ZW4KCQlld2FybiAiUGxlYXNlIGVtZXJnZSB0aGlzIHdpdGggVVNFPVwiYml0bWFwLWZvbnRzXCIg
dG8gZW5hYmxlIgoJCWV3YXJuICI3NWRwaSBhbmQgMTAwZHBpIGZvbnRzLiAgWW91ciBHVEsrLTEu
MiBmb250cyBtYXkgbG9vayIKCQlld2FybiAic2NyZXd5IG90aGVyd2lzZSIKCgkJZWJlZXAgNQoJ
CWVwYXVzZSAxMAoJZmkKfQoKc2V0dXBfbXVsdGlsaWIoKSB7CgkjIG9uIGFtZDY0IHdlIG5lZWQg
L3Vzci9saWI2NC9YMTEvbG9jYWxlL2xpYiB0byBiZSBhIHN5bWxpbmsKCSMgY3JlYXRlZCBieSB0
aGUgZW11bCBsaWIgZWJ1aWxkIGluIG9yZGVyIGZvciBhZG9iZSBhY3JvYmF0LCBzdGFyb2ZmaWNl
LAoJIyBhbmQgYSBmZXcgb3RoZXIgYXBwcyB0byB3b3JrLgoJaWYgISBoYXNfbXVsdGlsaWJfcHJv
ZmlsZTsgdGhlbgoJCXVzZSBhbWQ2NCAmJiBnZXRfbGliZGlyX292ZXJyaWRlIGxpYjY0CglmaQp9
CgojIyMjIyMjIyMjIyMjIyMjCiMgc3JjX3VucGFjaygpICMKIyMjIyMjIyMjIyMjIyMjIwoKdW5w
YWNrX2FsbCgpIHsKCSMgVW5wYWNrIHNvdXJjZSBhbmQgcGF0Y2hlcwoJZWJlZ2luICJVbnBhY2tp
bmcgJHtQVn0gc291cmNlIgoJCXVucGFjayBYMTFSJHtQVn0tc3JjLnRhci5iejIgPiAvZGV2L251
bGwKIwkJdW5wYWNrIFgxMVIke1BWfS1zcmN7MSwyLDMsNCw1fS50YXIuZ3ogPiAvZGV2L251bGwK
CWVlbmQgMAoKIwlpZiB1c2UgZG9jOyB0aGVuCiMJCWViZWdpbiAiVW5wYWNraW5nIGRvY3VtZW50
YXRpb24iCiMJCQl1bnBhY2sgWDExUiR7UFZ9LXNyY3s2LDd9LnRhci5neiA+IC9kZXYvbnVsbAoj
CQllZW5kIDAKIwlmaQoKCWViZWdpbiAiVW5wYWNraW5nIEdlbnRvbyBmaWxlcyBhbmQgcGF0Y2hl
cyIKCQl1bnBhY2sgJHtQfS1maWxlcy0ke0ZJTEVTX1ZFUn0udGFyLmJ6MiA+IC9kZXYvbnVsbAoJ
CXVucGFjayAke1B9LXBhdGNoZXMtJHtQQVRDSF9WRVJ9LnRhci5iejIgPiAvZGV2L251bGwKCWVl
bmQgMAoKCWlmICEgdXNlIG1pbmltYWw7IHRoZW4KCQkjIFVucGFjayBUYUQncyBnZW50b28gY3Vy
c29ycwoJCWViZWdpbiAiVW5wYWNraW5nIEdlbnRvbyBjdXJzb3JzIgoJCQl1bnBhY2sgZ2VudG9v
LWN1cnNvcnMtdGFkLSR7WENVUl9WRVJ9LnRhci5iejIgPiAvZGV2L251bGwKCQllZW5kIDAKCWZp
CgoJIyBVbnBhY2sgZXh0cmEgZm9udHMgc3R1ZmYgZnJvbSBNYW5kcmFrZQoJZWJlZ2luICJVbnBh
Y2tpbmcgZm9udHMiCgkJaWYgdXNlIG5sczsgdGhlbgoJCQl1bnBhY2sgZ2VtaW5pLWtvaTgtdS50
YXIuYnoyID4gL2Rldi9udWxsCgkJZmkKCQlpZiAhIHVzZSBtaW5pbWFsOyB0aGVuCgkJCXVucGFj
ayBldXJvZm9udHMtWDExLnRhci5iejIgPiAvZGV2L251bGwKCQlmaQoJCWlmIHVzZSBmb250LXNl
cnZlcjsgdGhlbgoJCQl1bnBhY2sgeGZzZnQtZW5jb2RpbmdzLSR7WEZTRlRfRU5DX1ZFUn0udGFy
LmJ6MiA+IC9kZXYvbnVsbAoJCWZpCgllZW5kIDAKCgkjIFJlbW92ZSBidW0gZW5jb2RpbmcKCXJt
IC1mICR7V09SS0RJUn0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy91cmR1bmFxc2gtMC5lbmMK
fQoKZG9fcGF0Y2goKSB7CgkjIEJ1bGsgcGF0Y2hpbmcgLSBiYXNlZCBvbiBwYXRjaCBuYW1lCgkj
IFdpbGwgY3JlYXRlIGV4Y2x1ZGVkIHN0dWZmIG9uY2UgaXQncyBuZWVkZWQKCWNkICR7V09SS0RJ
Un0KCUVQQVRDSF9TVUZGSVg9InBhdGNoIiBcCgllcGF0Y2ggJHtQQVRDSERJUn0KCWNkICR7U30K
CgkjIFNlY3VyaXR5IHBhdGNoCgllcGF0Y2ggJHtGSUxFU0RJUn0vQ1ZFLTIwMDYtMTUyNi14cmVu
ZGVyLW1pdHJpLnBhdGNoCn0KCmhvc3RfZGVmX3NldHVwKCkgewoJSE9TVENPTkY9ImNvbmZpZy9j
Zi9ob3N0LmRlZiIKCgllYmVnaW4gIlNldHRpbmcgdXAgJHtIT1NUQ09ORn0iCgkJY2QgJHtTfTsg
Y3AgJHtGSUxFU19ESVJ9L3NpdGUuZGVmICR7SE9TVENPTkZ9IFwKCQkJfHwgZGllICJob3N0LmRl
ZiBjb3B5IGZhaWxlZCIKCQllY2hvICIjZGVmaW5lIFhWZW5kb3JTdHJpbmcgXCJHZW50b28gKFRo
ZSBYLk9yZyBGb3VuZGF0aW9uICR7UFZ9LCByZXZpc2lvbiAke1BSfS0ke1BBVENIX1ZFUn0pXCIi
IFwKCQkJPj4gJHtIT1NUQ09ORn0KCgkJIyBQZW5kaW5nIGh0dHA6Ly9idWdzLmdlbnRvby5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MDM4IGFuZAoJCSMgaHR0cDovL2ZyZWVkZXNrdG9wLm9yZy9jZ2kt
YmluL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD02MDAKCQkjCgkJIyBNYWtlcyBsZCBiYWlsIGF0
IGxpbmsgdGltZSBvbiB1bmRlZmluZWQgc3ltYm9scwoJCSMgU3VnZ2VzdGVkIGJ5IE1pa2UgSGFy
cmlzIDxtaGFycmlzQHJlZGhhdC5jb20+CgkJI2VjaG8gIiNkZWZpbmUgU2hhcmVkTGlicmFyeUxv
YWRGbGFncyAgLXNoYXJlZCAtV2wsLXosZGVmcyIgXAoJCSMJPj4gJHtIT1NUQ09ORn0KCgkJIyBF
bmFibGUgaTgxMCBvbiB4ODZfNjQgKFJIICMxMjY2ODcpCgkJaWYgdXNlIGFtZDY0OyB0aGVuCgkJ
CWVjaG8gIiNkZWZpbmUgWEY4NkV4dHJhQ2FyZERyaXZlcnMgaTgxMCIgPj4gJHtIT1NUQ09ORn0K
CQlmaQoKCQkjIEZIUyBpbnN0YWxsIGxvY2F0aW9ucwoJCWVjaG8gIiNkZWZpbmUgTWFuRGlyZWN0
b3J5Um9vdCAvdXNyL3NoYXJlL21hbiIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIERv
Y0RpciAvdXNyL3NoYXJlL2RvYy8ke1BGfSIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5l
IEZvbnREaXIgL3Vzci9zaGFyZS9mb250cyIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5l
IEJpbkRpciAvdXNyL2JpbiIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIEluY1Jvb3Qg
L3Vzci9pbmNsdWRlIiA+PiAke0hPU1RDT05GfQoJCSMgVGhpcyBicmVha3MgdGhlIGNhc2Ugd2hl
biAkKFNZU1RFTVVTUklOQ0RJUikgPSAkKElOQ0RJUikKCQkjIFNlZSB4Yy9pbmNsdWRlL0ltYWtl
ZmlsZQoJCWVjaG8gIiNkZWZpbmUgTGlua0dMVG9Vc3JJbmNsdWRlIE5PIiA+PiAke0hPU1RDT05G
fQoJCSMgL3Vzci9YMTFSNi9saWIvWDExCgkJZWNobyAiI2RlZmluZSBMaWJEaXIgL3Vzci8kKGdl
dF9saWJkaXIpL1gxMSIgPj4gJHtIT1NUQ09ORn0KCQkjIC91c3IvWDExUjYvbGliIHdpdGggZXhj
ZXB0aW9uIG9mIC91c3IvWDExUjYvbGliL1gxMQoJCWVjaG8gIiNkZWZpbmUgVXNyTGliRGlyIC91
c3IvJChnZXRfbGliZGlyKSIgPj4gJHtIT1NUQ09ORn0KCgkJIyBNYWtlIG1hbjQgYW5kIG1hbjcg
c3R1ZmYgZ2V0ICd4JyBzdWZmaXggbGlrZSBldmVyeXRoaW5nIGVsc2UKCQkjIE5lY2Vzc2FyeSBz
byB3ZSBjYW4gaW5zdGFsbCB0byAvdXNyL3NoYXJlL21hbiB3aXRob3V0IG92ZXJ3cml0aW5nCgkJ
ZWNobyAiI2RlZmluZSBEcml2ZXJNYW5EaXIgXCQoTUFOU09VUkNFUEFUSCk0IiA+PiAke0hPU1RD
T05GfQoJCWVjaG8gIiNkZWZpbmUgRHJpdmVyTWFuU3VmZml4IDR4IC8qIHVzZSBqdXN0IG9uZSB0
YWIgb3IgY3BwIHdpbGwgZGllICovIiBcCgkJCT4+ICR7SE9TVENPTkZ9CgkJZWNobyAiI2RlZmlu
ZSBNaXNjTWFuRGlyIFwkKE1BTlNPVVJDRVBBVEgpNyIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIj
ZGVmaW5lIE1pc2NNYW5TdWZmaXggN3ggLyogdXNlIGp1c3Qgb25lIHRhYiBvciBjcHAgd2lsbCBk
aWUgKi8iIFwKCQkJPj4gJHtIT1NUQ09ORn0KCgkJIyBEb24ndCBidWlsZCB4dGVybSAtLSB1c2Ug
ZXh0ZXJuYWwgKCM1NDA1MSkKCQllY2hvICIjZGVmaW5lIEJ1aWxkWHRlcm0gTk8iID4+ICR7SE9T
VENPTkZ9CgoJCSMgWHdyYXBwZXIgaGFzIGJlZW4gcmVtb3ZlZCBzbyB3ZSBub3cgbmVlZCB0byB1
c2UgdGhlIHNldCB1aWQgc2VydmVyCgkJIyBhZ2FpbiwgdGhpcyBtdXN0dmUgaGFwcGVuZWQgc29t
ZXdoZXJlIGFmdGVyIDQuMy4wIGluIHRoZSBkZXZlbG9wbWVudC4KCQllY2hvICIjZGVmaW5lIElu
c3RhbGxYc2VydmVyU2V0VUlEIFlFUyIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIEJ1
aWxkU2VydmVyc09ubHkgTk8iID4+ICR7SE9TVENPTkZ9CgoJCSMgRG9uJ3QgdXNlIC9saWI2NCBp
ZiAkKGdldF9saWJkaXIpICE9IGxpYjY0CgkJIyBSZXBsYWNlcyAwMTgxX2FsbF80LjMuMC1hbWQ2
NC1ub2xpYjY0LnBhdGNoCgkJaWYgWyAiJChnZXRfbGliZGlyKSIgPT0gImxpYjY0IiBdOyB0aGVu
CgkJCWVjaG8gIiNkZWZpbmUgSGF2ZUxpYjY0IFlFUyIgPj4gJHtIT1NUQ09ORn0KCQkJc2VkIC1p
ICcvXiNkZWZpbmUgRnJlZXR5cGUyTGliRGlyL3M6Xi4qJDojZGVmaW5lIEZyZWV0eXBlMkxpYkRp
ciAvdXNyL2xpYjY0OicgJHtIT1NUQ09ORn0KCQllbHNlCgkJCWVjaG8gIiNkZWZpbmUgSGF2ZUxp
YjY0IE5PIiA+PiAke0hPU1RDT05GfQoJCWZpCgoJCSMgU2V0IGxvY2F0aW9uIG9mIERSTSBzb3Vy
Y2UgdG8gYmUgaW5zdGFsbGVkCgkJZWNobyAiI2RlZmluZSBJbnN0U3JjRGlyICR7Uk9PVH0vdXNy
L3NyYy8ke1BGfSIgPj4gJHtIT1NUQ09ORn0KCgkJaWYgWyAiJChnY2MtbWFqb3ItdmVyc2lvbiki
IC1lcSAiMyIgXTsgdGhlbgoJCQlpZiB1c2UgeDg2OyB0aGVuCgkJCQkjIFNob3VsZCBmaXggYnVn
ICM0MTg5LiAgZ2NjIDMueCBoYXZlIHByb2JsZW1zIHdpdGgKCQkJCSMgLW1hcmNoPXBlbnRpdW00
IGFuZCAtbWFyY2g9YXRobG9uLXRiaXJkCgkJCQkjIFNlZW1zIGZpeGVkIG9uIDMuMyBhbmQgaGln
aGVyCgkJCQlpZiBbICIkKGdjYy1taW5vci12ZXJzaW9uKSIgLWxlICIyIiBdOyB0aGVuCgkJCQkJ
cmVwbGFjZS1jcHUtZmxhZ3MgcGVudGl1bTQgcGVudGl1bTMKCQkJCQlyZXBsYWNlLWNwdS1mbGFn
cyBhdGhsb24gYXRobG9uLXRiaXJkCgkJCQlmaQoKCQkJCWlmIFsgIiQoZ2NjLW1pbm9yLXZlcnNp
b24pIiAtZXEgIjQiIF07IHRoZW4KCQkJCQlpZiBbICIkKGdjYy1taWNyby12ZXJzaW9uKSIgLWx0
ICI0IiBdOyB0aGVuCgkJCQkJCSN0byBmaXggIzU3NjAyIGZvciBub3csIHRoYW5rcyBTcGFua3kg
KGJyb2tlbiBzc2UyKQoJCQkJCQlpZiB0ZXN0X2ZsYWcgLW1uby1zc2UyOyB0aGVuCgkJCQkJCQlh
cHBlbmQtZmxhZ3MgLW1uby1zc2UyCgkJCQkJCWZpCgkJCQkJCSMgKCM3NTA2NykgYnJva2VuIHNz
ZTMKCQkJCQkJaWYgdGVzdF9mbGFnIC1tbm8tc3NlMzsgdGhlbgoJCQkJCQkJYXBwZW5kLWZsYWdz
IC1tbm8tc3NlMwoJCQkJCQlmaQoJCQkJCWZpCgkJCQlmaQoKCQkJCSMgVHJ5IGEgZml4IGZvciAj
NDkzMTAsIHNlZSAjNTA5MzEgZm9yIG1vcmUgaW5mby4gPHNweWRlcm91cz4KCQkJCWlmIFsgIiQo
aXMtZmxhZyAtZm9taXQtZnJhbWUtcG9pbnRlcikiIF07IHRoZW4KCQkJCQlyZXBsYWNlLWNwdS1m
bGFncyBrNiBrNi0yIGs2LTMgaTU4NgoJCQkJZmkKCQkJZmkKCgkJCSMgV2l0aG91dCB0aGlzLCBt
b2R1bGVzIGJyZWFrcyB3aXRoIGdjYzMKCQkJaWYgWyAiJChnY2MtbWlub3ItdmVyc2lvbikiIC1l
cSAiMSIgXTsgdGhlbgoJCQkJYXBwZW5kLWZsYWdzICItZm5vLW1lcmdlLWNvbnN0YW50cyIKCQkJ
CWFwcGVuZC1mbGFncyAiLWZuby1tZXJnZS1jb25zdGFudHMiCgkJCWZpCgoJCQlpZiBbICIkKGdj
Yy1taW5vci12ZXJzaW9uKSIgLWVxICIyIiBdOyB0aGVuCgkJCQlpZiBbICIkKGdjYy1taWNyby12
ZXJzaW9uKSIgLWx0ICIyIiBdOyB0aGVuCgkJCQkJIyBCdWcgIzEyNzc1IC4uIGZhaWxzIHdpdGgg
LU9zLgoJCQkJCXJlcGxhY2UtZmxhZ3MgIi1PcyIgIi1PMiIKCQkJCWZpCgkJCWVsaWYgWyAiJChn
Y2MtbWlub3ItdmVyc2lvbikiIC1sdCAiMiIgXTsgdGhlbgoJCQkJIyBCdWcgIzEyNzc1IC4uIGZh
aWxzIHdpdGggLU9zLgoJCQkJcmVwbGFjZS1mbGFncyAiLU9zIiAiLU8yIgoJCQlmaQoJCWVsaWYg
WyAiJChnY2MtbWFqb3ItdmVyc2lvbikiIC1sdCAiMyIgXTsgdGhlbgoJCQkjIEJ1ZyAjMTI3NzUg
Li4gZmFpbHMgd2l0aCAtT3MuCgkJCXJlcGxhY2UtZmxhZ3MgIi1PcyIgIi1PMiIKCQlmaQoKCQll
Y2hvICIjZGVmaW5lIENjQ21kICQodGMtZ2V0Q0MpIiA+PiAke0hPU1RDT05GfQoJCWVjaG8gIiNk
ZWZpbmUgT3B0aW1pemVkQ0RlYnVnRmxhZ3MgJHtDRkxBR1N9IEdjY0FsaWFzaW5nQXJncyIgPj4g
JHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIE9wdGltaXplZENwbHVzcGx1c0RlYnVnRmxhZ3Mg
JHtDWFhGTEFHU30gR2NjQWxpYXNpbmdBcmdzIiA+PiAke0hPU1RDT05GfQoKCQlpZiB1c2Ugc3Rh
dGljOyB0aGVuCgkJCWVjaG8gIiNkZWZpbmUgRG9Mb2FkYWJsZVNlcnZlcglOTyIgPj4ke0hPU1RD
T05GfQoJCWVsc2UKCQkJZWluZm8gIlNldHRpbmcgRG9Mb2FkYWJsZVNlcnZlciB0byBZRVMuIgoJ
CQllY2hvICIjZGVmaW5lIERvTG9hZGFibGVTZXJ2ZXIgIFlFUyIgPj4gJHtIT1NUQ09ORn0KCgkJ
CWlmIHVzZSBkbGxvYWRlcjsgdGhlbgoJCQkJZWluZm8gIlNldHRpbmcgTWFrZURsbE1vZHVsZXMg
dG8gWUVTLiIKCQkJCWVjaG8gIiNkZWZpbmUgTWFrZURsbE1vZHVsZXMgICAgWUVTIiA+PiAke0hP
U1RDT05GfQoJCQkJaWYgaGFzX2hhcmRlbmVkOyB0aGVuCgkJCQkJZWNobyAiI2RlZmluZSBIYXJk
ZW5lZEdjY1NwZWNzIFlFUyIgPj4gJHtIT1NUQ09ORn0KCQkJCWZpCgkJCWVsc2UKCQkJCWVpbmZv
ICJTZXR0aW5nIE1ha2VEbGxNb2R1bGVzIHRvIE5PLiIKCQkJCWVjaG8gIiNkZWZpbmUgTWFrZURs
bE1vZHVsZXMgICAgTk8iID4+ICR7SE9TVENPTkZ9CgkJCWZpCgkJZmkKCgkJdXNlX2J1aWxkIGRl
YnVnIFhGcmVlODZEZXZlbAoJCXVzZV9idWlsZCBkZWJ1ZyBCdWlsZERlYnVnCgkJdXNlX2J1aWxk
IGRlYnVnIERlYnVnZ2FibGVMaWJyYXJpZXMKCgkJaWYgISB1c2UgZGVidWc7IHRoZW4KCQkJIyB1
c2UgbGVzcyByYW0gLi4gZ290IHRoaXMgZnJvbSBTcGlkZXIncyBtYWtlZWRpdC5lY2xhc3MgOikK
CQkJZWNobyAiI2RlZmluZSBHY2NXYXJuaW5nT3B0aW9ucyAtV25vLXJldHVybi10eXBlIC13IiBc
CgkJCQk+PiAke0hPU1RDT05GfQoJCWZpCgoJCSMgUmVtb3ZlIGNpcmN1bGFyIGRlcCBiZXR3ZWVu
IHBhbSBhbmQgWDExLCBidWcgIzM1NDY4CgkJIyBJZiBwYW0gaXMgaW4gVVNFIGFuZCB3ZSBoYXZl
IFgxMSwgdGhlbiB3ZSBjYW4gZW5hYmxlIFBBTQojCQlpZiB1c2UgcGFtICYmIGhhc192ZXJzaW9u
IHgxMS1iYXNlL3hvcmcteDExCgkJaWYgaGFzX3ZlcnNpb24geDExLWJhc2UveG9yZy14MTE7IHRo
ZW4KCQkJIyBJZiB5b3Ugd2FudCB0byBoYXZlIG9wdGlvbmFsIHBhbSBzdXBwb3J0LCBkbyBpdCBw
cm9wZXJseSAuLi4KCQkJdXNlX2J1aWxkIHBhbSBIYXNQYW0KCQkJdXNlX2J1aWxkIHBhbSBIYXNQ
YW1NaXNjCgkJZmkKCgkJaWYgdXNlIHg4NiB8fCB1c2UgYWxwaGE7IHRoZW4KCQkJIyBidWlsZCB3
aXRoIGdsaWRlMyBzdXBwb3J0PyAoYnVpbGQgdGhlIHRkZnhfZHJpLm8gbW9kdWxlKQoJCQlpZiB1
c2UgM2RmeDsgdGhlbgoJCQkJZWNobyAiI2RlZmluZSBIYXNHbGlkZTMgWUVTIiA+PiAke0hPU1RD
T05GfQoJCQlmaQojIAkJCVRoaXMgd29uJ3Qgd29yayB1bmxlc3Mgd2UgY2FuIGRpc2FibGUgYnVp
bGRpbmcgdGhlIHRkZnggc3R1ZmYKIyAJCQllbnRpcmVseSA6LwojCQkJdXNlX2J1aWxkIDNkZngg
SGFzR2xpZGUzCgkJZmkKCgkJaWYgdXNlIHg4NjsgdGhlbgoJCQkjIG9wdGltaXplIE1lc2EgZm9y
IGFyY2hpdGVjdHVyZQoJCQl1c2VfYnVpbGQgbW14IEhhc01NWFN1cHBvcnQKCQkJdXNlX2J1aWxk
IDNkbm93IEhhczNETm93U3VwcG9ydAoJCQl1c2VfYnVpbGQgc3NlIEhhc1NTRVN1cHBvcnQKCQlm
aQoKCQkjIG9wdGltaXplIE1lc2EgZm9yIGFyY2hpdGVjdHVyZQoJCWlmIHVzZSBhbWQ2NDsgdGhl
bgoJCQl1c2VfYnVpbGQgYW1kNjQgSGFzTU1YU3VwcG9ydAoJCQl1c2VfYnVpbGQgYW1kNjQgSGFz
M0ROb3dTdXBwb3J0CgkJCXVzZV9idWlsZCBhbWQ2NCBIYXNTU0VTdXBwb3J0CgkJZmkKCgkJIyBE
byB3ZSB3YW50IHRoZSBnbHggZXh0ZW5zaW9uPyBUaGlzIHdpbGwgdHVybiBvZmYgWEY4NkRSSSBp
ZiBpdCdzIG9mZi4KCQkjIERSSSBjYW4ndCBidWlsZCBpZiBnbHggaXNuJ3QgYnVpbHQsIHNvIGtl
ZXAgdGhpcyBiZWxvdyBEUkkgZGVmaW5lLgoJCSMgRG8gdGhpcyBiZWZvcmUgaHBwYSBzbyB0aGV5
IGNhbiB0dXJuIERSSSBvZmYKCQl1c2VfYnVpbGQgb3BlbmdsIEJ1aWxkR2x4RXh0CgkJdXNlX2J1
aWxkIG9wZW5nbCBCdWlsZEdMWExpYnJhcnkKCQl1c2VfYnVpbGQgb3BlbmdsIEJ1aWxkWEY4NkRS
SQoJCSMgTmVlZHMgR0wgaGVhZGVycwoJCXVzZV9idWlsZCBvcGVuZ2wgQnVpbGRHTFVMaWJyYXJ5
CgoKCgkJaWYgdXNlIG1pcHM7IHRoZW4KCQkJZWNobyAiI2RlZmluZSBYRjg2Q2FyZERyaXZlcnMg
ZmJkZXYgbmV3cG9ydCIgPj4gJHtIT1NUQ09ORn0KCQlmaQoKCQkjIE1ha2UgeHYgb3B0aW9uYWwg
Zm9yIG1vcmUgbWluaW1hbCBidWlsZHMKCQl1c2VfYnVpbGQgeHYgQnVpbGRYdkxpYnJhcnkKCQl1
c2VfYnVpbGQgeHYgQnVpbGRYdkV4dAoJCSMgRGVwZW5kcyBvbiBYMTEvZXh0ZW5zaW9ucy9Ydi5o
CgkJdXNlX2J1aWxkIHh2IEJ1aWxkWEY4NlJ1c2hFeHQKCQl1c2VfYnVpbGQgeHYgQnVpbGRYRjg2
UnVzaExpYnJhcnkKCgkJaWYgdXNlIGhwcGE7IHRoZW4KCQkJZWNobyAiI2RlZmluZSBEb0xvYWRh
YmxlU2VydmVyIE5PIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIEJ1aWxkWEY4NkRS
SSBOTyIgPj4gY29uZmlnL2NmL2hvc3QuZGVmCgkJCWVjaG8gIiN1bmRlZiBEcmlEcml2ZXJzIiA+
PiBjb25maWcvY2YvaG9zdC5kZWYKCQkJZWNobyAiI2RlZmluZSBYRjg2Q2FyZERyaXZlcnMgZmJk
ZXYiID4+IGNvbmZpZy9jZi9ob3N0LmRlZgoJCQllY2hvICIjZGVmaW5lIEJ1aWxkWHZFeHQgWUVT
IiA+PiBjb25maWcvY2YvaG9zdC5kZWYKCQlmaQoKCgkJaWYgdXNlIGFscGhhOyB0aGVuCgkJCWVj
aG8gIiNkZWZpbmUgWEY4NkNhcmREcml2ZXJzIG1nYSBudiB0Z2EgczN2aXJnZSBzaXMgcmVuZGl0
aW9uIFwKCQkJCWk3NDAgdGRmeCBjaXJydXMgdHNlbmcgZmJkZXYgXAoJCQkJYXRpIHZnYSB2NGwg
Z2xpbnQgczMgdmVzYSIgPj4gJHtIT1NUQ09ORn0KCQlmaQoKCQlpZiB1c2UgcHBjOyB0aGVuCgkJ
CWVjaG8gIiNkZWZpbmUgWEY4NkNhcmREcml2ZXJzIG1nYSBnbGludCBzM3ZpcmdlIHNpcyBzYXZh
Z2UgdHJpZGVudCBcCgkJCQljaGlwcyB0ZGZ4IGZiZGV2IGF0aSBEZXZlbERyaXZlcnMgdmdhIG52
IGltc3R0IFwKCQkJCVhGODZPU0NhcmREcml2ZXJzIFhGODZFeHRyYUNhcmREcml2ZXJzIiA+PiAk
e0hPU1RDT05GfQoJCWZpCgoJCWlmIHVzZSBwcGM2NDsgdGhlbgoJCQllY2hvICIjZGVmaW5lIE1h
a2VEbGxNb2R1bGVzIFlFUyIgPj4gJHtIT1NUQ09ORn0KCQkJZWNobyAiI2RlZmluZSBYRjg2Vmdh
SHcgWUVTIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIFhGODZGQkRldkh3IFlFUyIg
Pj4gJHtIT1NUQ09ORn0KCQkJZWNobyAiI2RlZmluZSBYRjg2Q2FyZERyaXZlcnMgbWdhIGZiZGV2
IHY0bCBhdGkgdmdhIG52IiA+PiAke0hPU1RDT05GfQoJCWZpCgoJCWlmIHVzZSBzcGFyYzsgdGhl
bgoJCQllY2hvICIjZGVmaW5lIFhGODZDYXJkRHJpdmVycyBzdW5mZmIgc3VubGVvIHN1bmNnNiBz
dW5jZzMgc3VuY2cxNCBcCgkJCXN1bnRjeCBzdW5idzIgZ2xpbnQgbWdhIHRkZnggYXRpIHNhdmFn
ZSB2ZXNhIHZnYSBmYmRldiBcCgkJCVhGODZPU0NhcmREcml2ZXJzIFhGODZFeHRyYUNhcmREcml2
ZXJzIFwKCQkJRGV2ZWxEcml2ZXJzIiA+PiAke0hPU1RDT05GfQoJCQlpZiBoYXNfaGFyZGVuZWQg
JiYgISB1c2UgZGxsb2FkZXI7IHRoZW4KCQkJCWVpbmZvICJTb2Z0ZW5pbmcgdGhlIGFzc2VtYmxl
ciBzbyBjZmIgbW9kdWxlcyB3aWxsIHBsYXkgbmljZSB3aXRoIHN1bmZmYi4iCgkJCQllY2hvICIj
ZGVmaW5lIEFzQ21kIENjQ21kIC1jIC14IGFzc2VtYmxlciAtZm5vLXBpZSAtZm5vLVBJRSIgPj4g
JHtIT1NUQ09ORn0KCQkJCWVjaG8gIiNkZWZpbmUgTW9kdWxlQXNDbWQgQ2NDbWQgLWMgLXggYXNz
ZW1ibGVyIC1mbm8tcGllIC1mbm8tUElFIiA+PiAke0hPU1RDT05GfQoJCQlmaQoJCQlpZiAoIFsg
LWUgIiR7Uk9PVH0vdXNyL3NyYy9saW51eCIgXSBcCgkJCQkmJiAhIGtlcm5lbF9pcyAiMiIgIjYi
ICkgXAoJCQkJfHwgWyAiJCh1bmFtZSAtciB8IGN1dCAtZC4gLWYxLDIpIiAhPSAiMi42IiBdOyB0
aGVuCgkJCQkjIENvbW1lbnRlZCBvdXQgbmV4dCB0d28gbGluZXMgZHVlIHRvIHBhdGNoIGZyb20g
YnVnICM2MTk0MAoJCQkJIyBKb3NodWEgQmFlcmdlbiwgU2VwdCAxOSwgMjAwNQojCQkJCWVpbmZv
ICJCdWlsZGluZyBmb3Iga2VybmVscyBsZXNzIHRoYW4gMi42IHJlcXVpcmVzIHNwZWNpYWwgdHJl
YXRtZW50LiIKIwkJCQllY2hvICIjZGVmaW5lIFVzZURlcHJlY2F0ZWRLZXlib2FyZERyaXZlciBZ
RVMiID4+ICR7SE9TVENPTkZ9CgkJCQllaW5mbyAiQXZvaWQgYnVnICM0NjU5MyBmb3Igc3BhcmMz
Mi1TTVAgd2l0aCBrZXJuZWwgMi40Lnh4LiIKCQkJCWVjaG8gIi8qIEFkZCBhIGxpbmUgdG8gYXZv
aWQgYnVnICM1NjU5MyBvbiBzcGFyYzMyICovIiA+PiBcCgkJCQkgIHByb2dyYW1zL1hzZXJ2ZXIv
aHcveGZyZWU4Ni9kcml2ZXJzL2F0aS9yMTI4X2RyaXZlci5jCgkJCWZpCgkJZmkKCgkJIyBUaGUg
ZGVmaW5pdGlvbnMgZm9yIGZvbnRjb25maWcKCQllY2hvICIjZGVmaW5lIFVzZUZvbnRjb25maWcg
WUVTIiA+PiAke0hPU1RDT05GfQoJCWVjaG8gIiNkZWZpbmUgSGFzRm9udGNvbmZpZyBZRVMiID4+
ICR7SE9TVENPTkZ9CgoJCSMgVXNlIHRoZSB4b3JnIFhmdDIgbGliCgkJZWNobyAiI2RlZmluZSBT
aGFyZWRMaWJYZnQgWUVTIiA+PiAke0hPU1RDT05GfQoKCQkjIHdpdGggVVNFPSJYIGRvYycgY2ly
Y3VsYXIgZGVwIHcvIHZpcnR1YWwvZ2hvc3RzY3JpcHQKCQkjIGVjaG8gIiNkZWZpbmUgSGFzR2hv
c3RTY3JpcHQgJHtET0N9IiA+PiAke0hPU1RDT05GfQoJCSMgQ2F1c2VkIGlzc3VlcywgYmFzaWMg
ZG9jcyBhcmVuJ3QgaW5zdGFsbGVkCgkJdXNlX2J1aWxkIGRvYyBCdWlsZExpbnV4RG9jUFMKCQl1
c2VfYnVpbGQgZG9jIEJ1aWxkU3BlY3NEb2NzCgkJdXNlX2J1aWxkIGRvYyBCdWlsZEh0bWxNYW5Q
YWdlcwoJCXVzZV9idWlsZCBkb2MgSW5zdGFsbEhhcmRjb3B5RG9jcwoKCQkjIGVuYWJsZSBKYXBh
bmVzZSBkb2NzLCBvcHRpb25hbGx5CgkJdXNlIGRvYyAmJiB1c2VfYnVpbGQgY2prIEluc3RhbGxK
YXBhbmVzZURvY3MKCgkJIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydCBGb250cwoJCXVzZV9idWls
ZCBubHMgQnVpbGRDeXJpbGxpY0ZvbnRzCgkJdXNlX2J1aWxkIG5scyBCdWlsZEFyYWJpY0ZvbnRz
CgkJdXNlX2J1aWxkIG5scyBCdWlsZEdyZWVrRm9udHMKCQl1c2VfYnVpbGQgbmxzIEJ1aWxkSGVi
cmV3Rm9udHMKCQl1c2VfYnVpbGQgbmxzIEJ1aWxkVGhhaUZvbnRzCgoJCWlmIHVzZSBubHM7IHRo
ZW4KCQkJdXNlX2J1aWxkIGNqayBCdWlsZENJREZvbnRzCgkJCXVzZV9idWlsZCBjamsgQnVpbGRK
YXBhbmVzZUZvbnRzCgkJCXVzZV9idWlsZCBjamsgQnVpbGRLb3JlYW5Gb250cwoJCQl1c2VfYnVp
bGQgY2prIEJ1aWxkQ2hpbmVzZUZvbnRzCgkJZmkKCgkJIyBDcmFwcHkgYml0bWFwIGZvbnRzCgkJ
dXNlX2J1aWxkIGJpdG1hcC1mb250cyBCdWlsZDc1RHBpRm9udHMKCQl1c2VfYnVpbGQgYml0bWFw
LWZvbnRzIEJ1aWxkMTAwRHBpRm9udHMKCgkJIyBUeXBlMSBmb250cwoJCXVzZV9idWlsZCB0eXBl
MS1mb250cyBCdWlsZFR5cGUxRm9udHMKCgkJIyBUcnVlVHlwZSBmb250cwoJCXVzZV9idWlsZCB0
cnVldHlwZS1mb250cyBCdWlsZFRydWVUeXBlRm9udHMKCgkJIyBYIEZvbnQgU2VydmVyCgkJdXNl
X2J1aWxkIGZvbnQtc2VydmVyIEJ1aWxkRm9udFNlcnZlcgoKCQkjIERpc3RyaWJ1dGVkIE11bHRp
aGVhZGVkIFgKCQl1c2VfYnVpbGQgZG14IEJ1aWxkRG14CgoJCXVzZV9idWlsZCBpbnNlY3VyZS1k
cml2ZXJzIEJ1aWxkRGV2ZWxEUklEcml2ZXJzCgoJCWlmIHVzZSBpcHY2OyB0aGVuCgkJCSMgSW4g
Y2FzZSBHZW50b28gZXZlciB3b3JrcyBvbiBhIHN5c3RlbSB3aXRoIElQdjYgc29ja2V0cyB0aGF0
IGRvbid0CgkJCSMgYWxzbyBsaXN0ZW4gb24gSVB2NCAoc2VlIGNvbmZpZy9jZi9YMTEudG1wbCkK
CQkJZWNobyAiI2RlZmluZSBQcmVmZXJYZG1jcElQdjYgWUVTIiA+PiAke0hPU1RDT05GfQoJCWZp
CgoJCXVzZV9idWlsZCBpcHY2IEJ1aWxkSVB2NgoKCQlpZiB1c2UgbWluaW1hbDsgdGhlbgoJCQkj
IERvbid0IGJ1aWxkIHN0YXRpYyBsaWJzCgkJCWVjaG8gIiNkZWZpbmUgRm9yY2VOb3JtYWxMaWIg
Tk8iID4+ICR7SE9TVENPTkZ9CgkJCSMgVHVybiBiYWNrIG9uIG5lZWRlZCBvbmVzCgkJCWVjaG8g
IiNkZWZpbmUgTm9ybWFsTGliWGF1IFlFUyIgPj4gJHtIT1NUQ09ORn0KCgkJCWVjaG8gIiNkZWZp
bmUgQnVpbGREUFNMaWJyYXJpZXMgTk8iID4+ICR7SE9TVENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUg
QnVpbGRDbGllbnRzIE5PIiA+PiAke0hPU1RDT05GfQoJCQkjIEJ1aWxkQ2xpZW50cyBkb2Vzbid0
IGNhdGNoIHRoaW5ncyBpbiB4Yy9wcm9ncmFtcy9Yc2VydmVyCgkJCSMgQWxzbyBoYWQgdG8gYWRk
CgkJCSMgOTI1MF9hbGxfNi44LjEuOTA0LXJlc3BlY3QteGZyZWU4NmNvbmZpZ3Rvb2xzLXNldHRp
bmcucGF0Y2gKCQkJZWNobyAiI2RlZmluZSBCdWlsZFhGcmVlODZDb25maWdUb29scyBOTyIgPj4g
JHtIT1NUQ09ORn0KCQkJZWNobyAiI2RlZmluZSBCdWlsZExCWCBOTyIgPj4gJHtIT1NUQ09ORn0K
CgkJCSMgV2VpcmQgY3JhcCB3ZSBkb24ndCBuZWVkCgkJCWVjaG8gIiNkZWZpbmUgWEY4XzMyV2lk
IE5PIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIFhGOF8zMkJwcCBOTyIgPj4gJHtI
T1NUQ09ORn0KCQkJZWNobyAiI2RlZmluZSBYRjhfMTZCcHAgTk8iID4+ICR7SE9TVENPTkZ9CgkJ
CWVjaG8gIiNkZWZpbmUgWEYyNF8zMkJwcCBOTyIgPj4gJHtIT1NUQ09ORn0KCgkJCSMgV2l0aG91
dCBubHMsIHRydWV0eXBlLWZvbnRzLCB0eXBlMS1mb250cywgd2Ugb25seSBidWlsZCBtaXNjCgkJ
CSMgTm93IGxldCdzIHRyeSB0byByZWR1Y2Ugd2hhdCBnZXRzIGJ1aWx0IGluIG1pc2MKCQkJIyBp
c284ODU5LTEgaGFzIHRoZSAiZml4ZWQiIGZvbnQKCQkJZWNobyAiI2RlZmluZSBCdWlsZElTTzg4
NTlfMkZvbnRzIE5PIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIEJ1aWxkSVNPODg1
OV8zRm9udHMgTk8iID4+ICR7SE9TVENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRJU084ODU5
XzRGb250cyBOTyIgPj4gJHtIT1NUQ09ORn0KCQkJIyA1IGlzIGN5cmlsbGljLCA2IGlzbid0IGlu
IG1pc2MsIDcgaXMgZ3JlZWssIDggaXMgaGVicmV3CgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRJU084
ODU5XzlGb250cyBOTyIgPj4gJHtIT1NUQ09ORn0KCQkJZWNobyAiI2RlZmluZSBCdWlsZElTTzg4
NTlfMTBGb250cyBOTyIgPj4gJHtIT1NUQ09ORn0KCQkJIyAxMSBpcyB0aGFpLCAxMiBpc24ndCBp
biBtaXNjCgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRJU084ODU5XzEzRm9udHMgTk8iID4+ICR7SE9T
VENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRJU084ODU5XzE0Rm9udHMgTk8iID4+ICR7SE9T
VENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRJU084ODU5XzE1Rm9udHMgTk8iID4+ICR7SE9T
VENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRJU084ODU5XzE2Rm9udHMgTk8iID4+ICR7SE9T
VENPTkZ9CgoJCQllY2hvICIjZGVmaW5lIFhuZXN0U2VydmVyIE5PIiA+PiAke0hPU1RDT05GfQoJ
CQllY2hvICIjZGVmaW5lIFhWaXJ0dWFsRnJhbWVidWZmZXJTZXJ2ZXIgTk8iID4+ICR7SE9TVENP
TkZ9CgkJCWVjaG8gIiNkZWZpbmUgWElucHV0RHJpdmVycyBtb3VzZSBrZXlib2FyZCIgPj4gJHtI
T1NUQ09ORn0KCgkJCSMgSWYgeW91IHdhbnQgbW9yZSBkcml2ZXJzIGJ1aWx0IHdpdGggbWluaW1h
bCwgZmlsZSBhIGJ1ZwoJCQkjIC1Eb25uaWUgQmVya2hvbHogPHNweWRlcm91c0BnZW50b28ub3Jn
PgoJCQlpZiB1c2UgeDg2OyB0aGVuCgkJCQkjIFJlbW92ZSBnbGludCwgdGdhLCBzMywgczN2aXJn
ZSwgcmVuZGl0aW9uLCBuZW9tYWdpYywgaTc0MCwKCQkJCSMgY2lycnVzLCB0c2VuZywgdHJpZGVu
dCwgY2hpcHMsIGFwbSwgYXJrLCBjeXJpeCwgc2lsaWNvbm1vdGlvbgoJCQkJIyBtZ2EsIG52LCBz
aXMsIHRkZngsIHNhdmFnZSwgR2xpZGVEcml2ZXIsIGkzODZEcml2ZXJzCgkJCQkjIChuc2MsIGk4
MTApLCBhdGksIERldmVsRHJpdmVycywgdmlhCgkJCQkjIExlYXZlIHZtd2FyZSBkcml2ZXIgZm9y
IHRlc3RpbmcgbWluaW1hbCBzZXR1cHMgdXNpbmcgVk1XYXJlCgkJCQkjIFhGODZPU0NhcmREcml2
ZXJzIGluY2x1ZGVzIHY0bCBhbmQgZmJkZXYgb24gbGludXgKCQkJCSMgRGV2ZWxEcml2ZXJzIGlu
Y2x1ZGVzIGltc3R0IGFuZCBuZXdwb3J0IG9uIHg4NgoJCQkJZWNobyAiI2RlZmluZSBYRjg2Q2Fy
ZERyaXZlcnMgdm13YXJlIHZlc2EgdmdhIGR1bW15IFwKCQkJCQlYRjg2T1NDYXJkRHJpdmVycyBY
Rjg2RXh0cmFDYXJkRHJpdmVycyIgPj4gJHtIT1NUQ09ORn0KCQkJIyAoIzkzMzM5KQoJCQllbGlm
IHVzZSBzcGFyYzsgdGhlbgoJCQkJZWNobyAiI2RlZmluZSBYRjg2Q2FyZERyaXZlcnMgdmVzYSB2
Z2EgZmJkZXYgc3VuZmZiIHN1bmNnNiBcCgkJCQkJc3VubGVvIiA+PiAke0hPU1RDT05GfQoJCQlm
aQoJCWZpCgoJCSMgQWpheCBpcyB0aGUgbWFuIGZvciBnZXR0aW5nIHRoaXMgZ29pbmcgZm9yIHVz
CgkJZWNobyAiI2RlZmluZSBQcm9Qb2xpY2VTdXBwb3J0IFlFUyIgPj4gJHtIT1NUQ09ORn0KCgkJ
IyBNYWtlIHhwcmludCBvcHRpb25hbAoJCXVzZV9idWlsZCB4cHJpbnQgQnVpbGRYcHJpbnQKCQl1
c2VfYnVpbGQgeHByaW50IEJ1aWxkWHByaW50Q2xpZW50cwoJCSMgQnVpbGQgbGliWHAgZXZlbiB3
aGVuIHhwcmludCBpcyBvZmYuIEl0J3MganVzdCBmb3IgY2xpZW50cywgc2VydmVyCgkJaWYgISB1
c2UgeHByaW50OyB0aGVuCgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRYcHJpbnRMaWIgWUVTIiA+PiAk
e0hPU1RDT05GfQoJCWZpCgoJIyBFbmQgdGhlIGhvc3QuZGVmIGRlZmluaXRpb25zIGhlcmUKCWVl
bmQgMAp9CgpwYXRjaF9zZXR1cCgpIHsKCWVpbmZvICJFeGNsdWRpbmcgcGF0Y2hlcy4uLiIKCgkJ
IyBUaGlzIHBhdGNoIGlzIGp1c3QgcGxhaW4gYnJva2VuLiBSZXN1bHRzIGluIHJhbmRvbSBmYWls
dXJlcy4KCQlwYXRjaF9leGNsdWRlIDAxMjAqcGFyYWxsZWwtbWFrZQoKCQkjIEhhcmRlbmVkIHBh
dGNoZXMgKGJvdGggYnJva2VuKQoJCXBhdGNoX2V4Y2x1ZGUgOTk2MF9hbGxfNC4zLjAtZXhlYy1z
aGllbGQtR05VCgkJcGF0Y2hfZXhjbHVkZSA5OTYxX2FsbF80LjMuMC1saWJHTC1leGVjLXNoaWVs
ZAoKCQkjIFhib3ggbnZpZGlhIGRyaXZlciwgcGF0Y2ggaXMgYSB0b3RhbCBoYWNrLCB0ZWFycyBh
cGFydCB4Yy9jb25maWcvY2YKCQkjICgjNjg3MjYpLiBPbmx5IGFwcGx5IHdoZW4gbmVjZXNzYXJ5
IHNvIHdlIGRvbid0IHNjcmV3IG90aGVyIHN0dWZmIHVwLgoJCSMgOTk5MCBpcyB0aGUgZHJpdmVy
LCA5OTkxIGlzIHhib3ggcGNpIHNjYW5uaW5nIChwb3RlbnRpYWxseSB1c2VmdWwpCgkJaWYgWyAh
ICIke1BST0ZJTEVfQVJDSH0iID0gInhib3giIF07IHRoZW4KCQkJcGF0Y2hfZXhjbHVkZSA5OTkw
IDk5OTEKCQlmaQoKCQkjIHRoaXMgcGF0Y2ggY29tbWVudHMgb3V0IHRoZSBYc2VydmVyIGxpbmUg
aW4geGRtJ3MgY29uZmlnCgkJIyBXZSBvbmx5IHdhbnQgaXQgaGVyZQoJCWlmICEgdXNlIHMzOTA7
IHRoZW4KCQkJcGF0Y2hfZXhjbHVkZSA3NTAwCgkJZmkKCgkjCWlmICEgdXNlIGdhdG9zOyB0aGVu
CgkjCQlwYXRjaF9leGNsdWRlIDk4NDFfYWxsXzQuMy4wLWdhdG9zLW1lc2EKCSMJZmkKCgkJaWYg
dXNlIGRlYnVnOyB0aGVuCgkJCXBhdGNoX2V4Y2x1ZGUgNTkwMSphY2VjYWQtZGVidWcKCQlmaQoK
CQkjIFRERlhfUklTS1kgLSAxNi1iaXQsIDEwMjR4NzY4IG9yIGhpZ2hlciBvbiBsb3ctbWVtb3J5
IHZvb2RvbzMncwoJCWlmIHVzZSAzZGZ4ICYmIFsgIiR7VERGWF9SSVNLWX0iID0gInllcyIgXTsg
dGhlbgoJCQlwYXRjaF9leGNsdWRlIDU4NTAKCQllbHNlCgkJCXBhdGNoX2V4Y2x1ZGUgNTg1MQoJ
CWZpCgoJCSMgR2xpYmMtc3BlY2lmaWMgcGF0Y2hlcyB0byBleGNsdWRlIGZvciBub24tZ2xpYmMg
c3lzdGVtcwoJCWlmIHVzZSBlbGliY19GcmVlQlNEIHx8IHVzZSBlbGliY19PcGVuQlNEOyB0aGVu
CgkJCXBhdGNoX2V4Y2x1ZGUgMDcwMAoJCWZpCgllaW5mbyAiRG9uZSBleGNsdWRpbmcgcGF0Y2hl
cy4iCn0KCnVzZV9zcGVjaWZpY19oYWNrcygpIHsKCSMgdWNsaWJjIGxhY2tzIHNpbmYgYW5kIGNv
c2YKCWlmIHVzZSB1Y2xpYmM7IHRoZW4KCQlzZWQgLWkgLWUgJ3M6R0xYQ0xJRU5URElSUyA9IGds
eGluZm8gZ2x4Z2VhcnM6R0xYQ0xJRU5URElSUyA9IDonIFwKCQkJJHtTfS9wcm9ncmFtcy9JbWFr
ZWZpbGUKCWZpCgoJIyBHZXQgcmlkIG9mIGN1cnNvciBzZXRzIG90aGVyIHRoYW4gY29yZSBhbmQg
aGFuZGhlbGRzLCBzYXZlcyB+NE1CCglpZiB1c2UgbWluaW1hbDsgdGhlbgoJCSBzZWQgLWkgLWUg
J3M6U1VCRElSUyA9IHJlZGdsYXNzIHdoaXRlZ2xhc3MgaGFuZGhlbGRzOlNVQkRJUlMgPSBoYW5k
aGVsZHM6JyBcCgkJCSR7U30vcHJvZ3JhbXMveGN1cnNvcmdlbi9JbWFrZWZpbGUKCWZpCgoJY2Qg
JHtTfQoJaWYgdXNlIGRvYzsgdGhlbgoJCSMgVGhlc2UgYXJlIG5vdCBpbmNsdWRlZCBhbnltb3Jl
IGFzIHRoZXkgYXJlIG9ic29sZXRlCgkJbG9jYWwgeAoJCWZvciB4IGluICR7U30vcHJvZ3JhbXMv
WHNlcnZlci9ody94ZnJlZTg2L3tYRjk4Q29uZi5jcHAsWEY5OENvbmZpZ307IGRvCgkJCWlmIFsg
LWYgJHt4fSBdOyB0aGVuCgkJCQlzZWQgLWkgJy9Mb2FkW1s6c3BhY2U6XV0qIlwocGV4NVx8eGll
XCkiL2QnICR7eH0KCQkJZmkKCQlkb25lCglmaQp9CgojIyMjIyMjIyMjIyMjIyMjIwojIHNyY19j
b21waWxlKCkgIwojIyMjIyMjIyMjIyMjIyMjIwoKYnVpbGQoKSB7CgkjIElmIGEgdXNlciBkZWZp
bmVzIHRoZSBNQUtFX09QVFMgdmFyaWFibGUgaW4gL2V0Yy9tYWtlLmNvbmYgaW5zdGVhZCBvZgoJ
IyBNQUtFT1BUUywgdGhleSdsbCByZWRlZmluZSBhbiBpbnRlcm5hbCB4b3JnIE1ha2VmaWxlIHZh
cmlhYmxlIGFuZCB0aGUKCSMgeG9yZyBidWlsZCB3aWxsIHNpbGVudGx5IGRpZS4gVGhpcyBpcyB0
cmlja3kgdG8gdHJhY2sgZG93biwgc28gSSdtCgkjIGFkZGluZyBhIHByZWVtcHRpdmUgZml4IGZv
ciB0aGlzIGlzc3VlIGJ5IG1ha2luZyBzdXJlIHRoYXQgTUFLRV9PUFRTIGlzCgkjIHVuc2V0LiAo
ZHJvYmJpbnMsIDA4IE1hciAyMDAzKQoJdW5zZXQgTUFLRV9PUFRTCgoJZWluZm8gIkJ1aWxkaW5n
IHhvcmcteDExLi4uIgoJaWYgdXNlIGRlYnVnOyB0aGVuCgkJY2htb2QgdSt4ICR7U30vY29uZmln
L3V0aWwvbWFrZWcuc2gKCQlGQVNUPTEgJHtTfS9jb25maWcvdXRpbC9tYWtlZy5zaCBXb3JsZCBX
T1JMRE9QVFM9IiIgTUFLRT0ibWFrZSIgXAoJCQl8fCBkaWUgImRlYnVnIG1ha2UgV29ybGQgZmFp
bGVkIgoJZWxzZQoJCUZBU1Q9MSBlbWFrZSAtajEgV29ybGQgV09STERPUFRTPSIiIE1BS0U9Im1h
a2UiIHx8IGRpZSAibWFrZSBXb3JsZCBmYWlsZWQiCglmaQoKCWlmIHVzZSBubHM7IHRoZW4KCQll
bWFrZSAtajEgLUMgJHtTfS9ubHMgTUFLRT0ibWFrZSIgfHwgZGllICJubHMgYnVpbGQgZmFpbGVk
IgoJZmkKfQoKIyMjIyMjIyMjIyMjIyMjIyMKIyBzcmNfaW5zdGFsbCgpICMKIyMjIyMjIyMjIyMj
IyMjIyMKCmluc3RhbGxfZXZlcnl0aGluZygpIHsKCXVuc2V0IE1BS0VfT1BUUwoKCWVpbmZvICJJ
bnN0YWxsaW5nIFgub3JnIFgxMS4uLiIKCSMgZ2NjMyByZWxhdGVkIGZpeC4gIERvIHRoaXMgZHVy
aW5nIGluc3RhbGwsIHNvIHRoYXQgb3VyCgkjIHdob2xlIGJ1aWxkIHdpbGwgbm90IGJlIGNvbXBp
bGVkIHdpdGhvdXQgbW14IGluc3RydWN0aW9ucy4KCWlmIFsgIiQoZ2NjLXZlcnNpb24pIiAhPSAi
Mi45NSIgXSAmJiB1c2UgeDg2OyB0aGVuCgkJbWFrZSBpbnN0YWxsIE1BS0U9Im1ha2UiIERFU1RE
SVI9JHtEfSBcCgkJfHwgbWFrZSBDREVCVUdGTEFHUz0iJHtDREVCVUdGTEFHU30gLW1uby1tbXgi
IFwKCQkJQ1hYREVCVUdGTEFHUz0iJHtDWFhERUJVR0ZMQUdTfSAtbW5vLW1teCIgXAoJCQlpbnN0
YWxsIE1BS0U9Im1ha2UiIERFU1RESVI9JHtEfSB8fCBkaWUgImluc3RhbGwgZmFpbGVkIgoJZWxz
ZQoJCW1ha2UgaW5zdGFsbCBNQUtFPSJtYWtlIiBERVNURElSPSR7RH0gfHwgZGllICJpbnN0YWxs
IGZhaWxlZCIKCWZpCgoJaWYgdXNlIHNkazsgdGhlbgoJCWVpbmZvICJJbnN0YWxsaW5nIFgub3Jn
IFgxMSBTREsuLi4iCgkJbWFrZSBpbnN0YWxsLnNkayBNQUtFPSJtYWtlIiBERVNURElSPSR7RH0g
fHwgZGllICJzZGsgaW5zdGFsbCBmYWlsZWQiCglmaQoKCWlmICEgdXNlIG1pbmltYWw7IHRoZW4K
CQllaW5mbyAiSW5zdGFsbGluZyBtYW4gcGFnZXMuLi4iCgkJbWFrZSBpbnN0YWxsLm1hbiBNQUtF
PSJtYWtlIiBERVNURElSPSR7RH0gfHwgZGllICJtYW4gcGFnZSBpbnN0YWxsIGZhaWxlZCIKCQll
aW5mbyAiQ29tcHJlc3NpbmcgbWFuIHBhZ2VzLi4uIgoJCXByZXBtYW4gL3VzcgoJZmkKCglpZiB1
c2UgbmxzOyB0aGVuCgkJY2QgJHtTfS9ubHMKCQltYWtlIE1BS0U9Im1ha2UiIERFU1RESVI9JHtE
fSBpbnN0YWxsIHx8IGRpZSAibmxzIGluc3RhbGwgZmFpbGVkIgoJZmkKCWRvZG9jICR7U30vUkVM
Tk9URVMKfQoKYmFja3dhcmRfY29tcGF0X2luc3RhbGwoKSB7CgkjIEJhY2t3YXJkcyBjb21wYXRp
YmlsaXR5IGZvciAvdXNyL3NoYXJlIG1vdmUKCWRvc3ltIC4uLy4uL3NoYXJlL2ZvbnRzIC91c3Iv
JChnZXRfbGliZGlyKS9YMTEvZm9udHMKCgkjIEhhdmUgdGhlIHRvcC1sZXZlbCBsaWJkaXIgc3lt
bGluayBtYWRlIGZpcnN0LCBzbyByZWFsIGRpcnMgZG9uJ3QgZ2V0IGNyZWF0ZWQKCWxvY2FsIERJ
UiBESVJTCglpZiBbICJsaWIiICE9ICIkKGdldF9saWJkaXIpIiBdOyB0aGVuCgkJRElSUz0iJHtE
SVJTfSAkKGdldF9saWJkaXIpIgoJZmkKCWZvciBESVIgaW4gJHtESVJTfTsgZG8KCQlkb3N5bSAu
Li8ke0RJUn0gL3Vzci9YMTFSNi8ke0RJUn0KCWRvbmUKCglkb3N5bSAuLi8uLi8uLi9zaGFyZS9k
b2MvJHtQRn0gL3Vzci9YMTFSNi8kKGdldF9saWJkaXIpL1gxMS9kb2MKfQoKZml4X3Blcm1pc3Np
b25zKCkgewoJIyBGaXggcGVybWlzc2lvbnMgb24gbG9jYWxlL2NvbW1vbi8qLnNvCglsb2NhbCB4
Cglmb3IgeCBpbiAke0R9L3Vzci8kKGdldF9saWJkaXIpL1gxMS9sb2NhbGUvJChnZXRfbGliZGly
KS9jb21tb24vKi5zbyo7IGRvCgkJaWYgWyAtZiAke3h9IF07IHRoZW4KCQkJZnBlcm1zIDA3NTUg
JHt4LyR7RH19CgkJZmkKCWRvbmUKCgkjIEZpeCBwZXJtaXNzaW9ucyBvbiBtb2R1bGVzIC4uLgoJ
Zm9yIHggaW4gJChmaW5kICR7RH0vdXNyLyQoZ2V0X2xpYmRpcikvbW9kdWxlcyAtbmFtZSAnKi5v
JyAtbyAtbmFtZSAnKi5zbycpOyBkbwoJCWlmIFsgLWYgJHt4fSBdOyB0aGVuCgkJCWZwZXJtcyAw
NzU1ICR7eC8ke0R9fQoJCWZpCglkb25lCgoJIyBGaXggcGVybXMKCWlmICEgdXNlIG1pbmltYWw7
IHRoZW4KCQlmcGVybXMgNzU1IC91c3IvJChnZXRfbGliZGlyKS9YMTEveGtiL2dlb21ldHJ5L3Nn
aSAvdXNyL2Jpbi9kZ2EKCWZpCn0KCnphcF9ob3N0X2RlZl9jZmxhZ3MoKSB7CgllYmVnaW4gIkZp
eGluZyAkKGdldF9saWJkaXIpL1gxMS9jb25maWcvaG9zdC5kZWYiCgkJY3AgJHtEfS91c3IvJChn
ZXRfbGliZGlyKS9YMTEvY29uZmlnL2hvc3QuZGVmICR7VH0KCQlhd2sgJyEvT3B0aW1pemVkQ0Rl
YnVnRmxhZ3N8T3B0aW1pemVkQ3BsdXNwbHVzRGVidWdGbGFnc3xHY2NXYXJuaW5nT3B0aW9ucy8g
e3ByaW50ICQwfScgXAoJCQkke1R9L2hvc3QuZGVmID4gJHtEfS91c3IvJChnZXRfbGliZGlyKS9Y
MTEvY29uZmlnL2hvc3QuZGVmIFwKCQkJfHwgZWVycm9yICJNdW5naW5nIGhvc3QuZGVmIGZhaWxl
ZCIKCQkjIHRoZW9yZXRpY2FsbHksIC91c3IvbGliL1gxMS9jb25maWcgaXMgYSBwb3NzaWJsZSBj
YW5kaWRhdGUgZm9yCgkJIyBjb25maWcgZmlsZSBtYW5hZ2VtZW50LiBJZiB3ZSBmaW5kIHRoYXQg
cGVvcGxlIHJlYWxseSB3b3JyeSBhYm91dCBpbWFrZQoJCSMgc3R1ZmYsIHdlIG1heSBhZGQgaXQu
ICBCdXQgZm9yIG5vdywgd2UgbGVhdmUgdGhlIGRpciB1bnByb3RlY3RlZC4KCWVlbmQgMAp9Cgph
ZGRfZXVyb19zdXBwb3J0KCkgewoJZWJlZ2luICJBZGRpbmcgRXVybyBzdXBwb3J0IgoJCUxEX0xJ
QlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZX1BBVEh9OiR7RH0vdXNyLyQoZ2V0X2xpYmRpcikiIFwK
CQkke0R9L3Vzci9iaW4vYmRmdG9wY2YgLXQgJHtXT1JLRElSfS9YbGF0OS04eDE0LmJkZiB8IFwK
CQkJZ3ppcCAtOSA+ICR7RH0vdXNyL3NoYXJlL2ZvbnRzL21pc2MvWGxhdDktOHgxNC1sYXQ5LnBj
Zi5negoJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZX1BBVEh9OiR7RH0vdXNyLyQoZ2V0
X2xpYmRpcikiIFwKCQkke0R9L3Vzci9iaW4vYmRmdG9wY2YgLXQgJHtXT1JLRElSfS9YbGF0OS05
eDE2LmJkZiB8IFwKCQkJZ3ppcCAtOSA+ICR7RH0vdXNyL3NoYXJlL2ZvbnRzL21pc2MvWGxhdDkt
OXgxNi1sYXQ5LnBjZi5negoJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZX1BBVEh9OiR7
RH0vdXNyLyQoZ2V0X2xpYmRpcikiIFwKCQkke0R9L3Vzci9iaW4vYmRmdG9wY2YgLXQgJHtXT1JL
RElSfS9YbGF0OS0xMHgyMC5iZGYgfCBcCgkJCWd6aXAgLTkgPiAke0R9L3Vzci9zaGFyZS9mb250
cy9taXNjL1hsYXQ5LTEweDIwLWxhdDkucGNmLmd6CgllZW5kIDAKfQoKc2V0dXBfc3RhbmRhcmRf
c3ltbGlua3MoKSB7CgkjIFN0YW5kYXJkIHN5bWxpbmtzCglkb2RpciAvdXNyL3tiaW4saW5jbHVk
ZSwkKGdldF9saWJkaXIpfQoJZG9zeW0gLi4vYmluIC91c3IvYmluL1gxMQoJIyBTdG9wIGNvbXBs
YWlucyBhYm91dCAiZmlsZSBvciBkaXJlY3Rvcnkgbm90IGV4aXN0aW5nIgoJZG9kaXIgL3Vzci9Y
MTFSNgoJZG9zeW0gLi4vaW5jbHVkZSAvdXNyL1gxMVI2L2luY2x1ZGUKCWRvc3ltIC4uLy4uL3Vz
ci8kKGdldF9saWJkaXIpL1gxMS94a2IgL2V0Yy9YMTEveGtiCgoJIyBTb21lIGNyaXRpY2FsIGRp
cmVjdG9yaWVzCglpZiAhIHVzZSBtaW5pbWFsOyB0aGVuCgkJa2VlcGRpciAvdmFyL2xpYi94ZG0K
CQlkb3N5bSAuLi8uLi8uLi92YXIvbGliL3hkbSAvZXRjL1gxMS94ZG0vYXV0aGRpcgoJZmkKCgkj
IEJhY2t3YXJkcyBjb21wYXQsIEZIUywgZXRjLgoJZG9zeW0gLi4vLi4vdXNyL1gxMVI2L2Jpbi9Y
b3JnIC9ldGMvWDExL1gKfQoKbGlidG9vbF9hcmNoaXZlX2luc3RhbGwoKSB7CglpZiB1c2Ugb3Bl
bmdsOyB0aGVuCgkJIyAubGEgZmlsZXMgZm9yIGxpYnRvb2wgc3VwcG9ydAoJCWluc2ludG8gL3Vz
ci8kKGdldF9saWJkaXIpCgkJIyAoIzY3NzI5KSBOZWVkcyB0byBiZSBsaWIsIG5vdCAkKGdldF9s
aWJkaXIpCgkJZG9pbnMgJHtGSUxFU19ESVJ9L2xpYi8qLmxhCglmaQp9CgpmaXhfbGlidG9vbF9s
aWJkaXJfcGF0aHMoKSB7Cglsb2NhbCBkaXJwYXRoCglmb3IgYXJjaGl2ZSBpbiAkeyp9IDsgZG8K
CQlkaXJwYXRoPSQoZGlybmFtZSAke2FyY2hpdmV9IHwgc2VkIC1lICJzOl4ke0R9OjoiKQoJCVtb
ICR7ZGlycGF0aDo6MX0gPT0gIi8iIF1dIHx8IGRpcnBhdGg9Ii8iJHtkaXJwYXRofQoJCXNlZCAt
aSAke2FyY2hpdmV9IC1lICJzOl5saWJkaXIuKjpsaWJkaXI9XCcke2RpcnBhdGh9XCc6IgoJZG9u
ZQp9Cgpjb21wb3NlX2ZpbGVzX2luc3RhbGwoKSB7CgkjIEhhY2sgZnJvbSBNYW5kcmFrZSAodXBk
YXRlIG91cnMgdGhhdCBqdXN0IGNyZWF0ZWQgQ29tcG9zZSBmaWxlcyBmb3IKCSMgYWxsIGxvY2Fs
ZXMpCglsb2NhbCB4Cglmb3IgeCBpbiAkKGZpbmQgJHtEfS91c3IvJChnZXRfbGliZGlyKS9YMTEv
bG9jYWxlLyAtbWluZGVwdGggMSAtdHlwZSBkKTsgZG8KCQkjIG1ha2UgZW1wdHkgQ29tcG9zZSBm
aWxlcyBmb3Igc29tZSBsb2NhbGVzCgkJIyBDSksgbXVzdCBub3QgaGF2ZSB0aGF0IGZpbGUgKG90
aGVyd2lzZSBYSU0gZG9uJ3Qgd29ya3Mgc29tZSB0aW1lcykKCQljYXNlICQoYmFzZW5hbWUgJHt4
fSkgaW4KCQkJQ3xtaWNyb3NvZnQtKnxpc284ODU5LSp8a29pOC0qKQoJCQkJaWYgWyAhIC1mICR7
eH0vQ29tcG9zZSBdOyB0aGVuCgkJCQkJdG91Y2ggJHt4fS9Db21wb3NlCgkJCQlmaQoJCQkJOzsK
CQkJamEqfGtvKnx6aCopCgkJCQlpZiBbIC1yICR7eH0vQ29tcG9zZSBdOyB0aGVuCgkJCQkJcm0g
LWYgJHt4fS9Db21wb3NlCgkJCQlmaQoJCQkJOzsKCQllc2FjCglkb25lCgoJIyBBbm90aGVyIGhh
Y2sgZnJvbSBNYW5kcmFrZSAtLSB0byBmaXggZGVhZCArIHNwYWNlIGZvciB0aGUgdXMKCSMgaW50
ZXJuYXRpb25hbCBrZXlib2FyZAoJbG9jYWwgaQoJZm9yIGkgaW4gJHtEfS91c3IvJChnZXRfbGli
ZGlyKS9YMTEvbG9jYWxlLyovQ29tcG9zZTsgZG8KCQlzZWQgLWkgXAoJCQktZSAncy9cKDxkZWFk
X2RpYWVyZXNpcz4gPHNwYWNlPlwpLiokL1wxIDogIlxcIiIgcXVvdGVkYmwvJyBcCgkJCS1lICJz
L1woPGRlYWRfYWN1dGU+IDxzcGFjZT5cKS4qJC9cMSA6IFwiJ1wiIGFwb3N0cm9waGUvIiAke2l9
IFwKCQkJfHwgZWVycm9yICJzZWQgJHtpfSBmYWlsZWQiCglkb25lCn0KCmVuY29kZV94ZnNmdF9m
aWxlcygpIHsKCSMgWWV0IG1vcmUgTWFuZHJha2UKCWViZWdpbiAiRW5jb2RpbmcgZmlsZXMgZm9y
IHhmc2Z0IGZvbnQgc2VydmVyIgoJCWRvZGlyIC91c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzCgkJ
Y3AgLXBQUiAke1dPUktESVJ9L3Vzci9zaGFyZS9mb250cy9lbmNvZGluZ3MvKiBcCgkJCSR7RH0v
dXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncwoKCQlmb3IgeCBpbiAke0R9L3Vzci9zaGFyZS9mb250
cy9lbmNvZGluZ3Mvey4sbGFyZ2V9LyouZW5jOyBkbwoJCQlpZiBbIC1mICIke3h9IiBdOyB0aGVu
CgkJCQlnemlwIC05IC1mICR7eH0gXAoJCQkJCXx8IGVlcnJvciAiZ3ppcHBpbmcgJHt4fSBmYWls
ZWQiCgkJCWZpCgkJZG9uZQoJZWVuZCAwCn0KCmtvaThfZm9udHNfaW5zdGFsbCgpIHsKCWViZWdp
biAiQWRkaW5nIGdlbWluaS1rb2k4IGZvbnRzIgoJCWNkICR7V09SS0RJUn0vdWtyCgkJZ3Vuemlw
ICouWiB8fCBlZXJyb3IgImd1bnppcHBpbmcgZ2VtaW5pLWtvaTggZm9udHMgZmFpbGVkIgoJCWd6
aXAgLTkgKi5wY2YgfHwgZWVycm9yICJnemlwcGluZyBnZW1pbmkta29pOCBmb250cyBmYWlsZWQi
CgkJY2QgJHtTfQoJCWNwIC1wUFIgJHtXT1JLRElSfS91a3IgJHtEfS91c3Ivc2hhcmUvZm9udHMg
XAoJCQl8fCBlZXJyb3IgImNvcHlpbmcgZ2VtaW5pLWtvaTggZm9udHMgZmFpbGVkIgoJZWVuZCAw
Cn0KCmV0Y19maWxlc19pbnN0YWxsKCkgewoJaW5zaW50byAvZXRjL1gxMQoKCSMgSW5zdGFsbCBl
eGFtcGxlIGNvbmZpZyBmaWxlCgluZXdpbnMgJHtTfS9wcm9ncmFtcy9Yc2VydmVyL2h3L3hmcmVl
ODYveG9yZy5jb25mIHhvcmcuY29uZi5leGFtcGxlCgoJZXhlaW50byAvZXRjL1gxMQoJIyBuZXcg
c2Vzc2lvbiBtYW5hZ2VtZW50IHNjcmlwdAoJZG9leGUgJHtGSUxFU19ESVJ9L2Nob29zZXIuc2gK
CSMgbmV3IGRpc3BsYXkgbWFuYWdlciBzY3JpcHQKCWRvZXhlICR7RklMRVNfRElSfS9zdGFydERN
LnNoCglleGVpbnRvIC9ldGMvWDExL1Nlc3Npb25zCgkjIGRvZXhlIHNraXBzIGRpcmVjdG9yaWVz
LCBzbyB0aGlzIHNob3VsZCBiZSBzYWZlCglkb2V4ZSAke0ZJTEVTX0RJUn0vU2Vzc2lvbnMvKgoJ
aW5zaW50byAvZXRjL2Vudi5kCglkb2lucyAke0ZJTEVTX0RJUn0vMTB4b3JnCglpbnNpbnRvIC9l
dGMvWDExL3hpbml0Cglkb2lucyAke0ZJTEVTX0RJUn0veGluaXRyYwoJaWYgISB1c2UgbWluaW1h
bDsgdGhlbgoJCWV4ZWludG8gL2V0Yy9YMTEveGRtCgkJZG9leGUgJHtGSUxFU19ESVJ9L1hzZXNz
aW9uCgkJZXhlaW50byAvZXRjL2luaXQuZAoJCW5ld2V4ZSAke0ZJTEVTX0RJUn0veGRtLnN0YXJ0
IHhkbQoJZmkKCWlmIHVzZSBmb250LXNlcnZlcjsgdGhlbgoJCWluc2ludG8gL2V0Yy9YMTEvZnMK
CQluZXdpbnMgJHtGSUxFU19ESVJ9L3hmcy5jb25maWcgY29uZmlnCglmaQoJaWYgdXNlIHBhbTsg
dGhlbgoJCWluc2ludG8gL2V0Yy9wYW0uZAoJCW5ld2lucyAke0ZJTEVTX0RJUn0veGRtLnBhbWQg
eGRtCgkJIyBOZWVkIHRvIGZpeCBjb25zb2xlIHBlcm1pc3Npb25zIGZpcnN0CgkJbmV3aW5zICR7
RklMRVNfRElSfS94c2VydmVyLnBhbWQgeHNlcnZlcgoJZmkKCWlmIHVzZSBmb250LXNlcnZlcjsg
dGhlbgoJCW5ld2V4ZSAke0ZJTEVTX0RJUn0veGZzLnN0YXJ0IHhmcwoJCWluc2ludG8gL2V0Yy9j
b25mLmQKCQluZXdpbnMgJHtGSUxFU19ESVJ9L3hmcy5jb25mLmQgeGZzCglmaQp9CgpkeW5hbWlj
X2xpYmdsX2luc3RhbGwoKSB7CgkjIG5leHQgc2VjdGlvbiBpcyB0byBzZXR1cCB0aGUgZHluYW1p
YyBsaWJHTCBzdHVmZgoJZWJlZ2luICJNb3ZpbmcgbGliR0wgYW5kIGZyaWVuZHMgZm9yIGR5bmFt
aWMgc3dpdGNoaW5nIgoJCWRvZGlyIC91c3IvJChnZXRfbGliZGlyKS9vcGVuZ2wvJHtQTn0ve2xp
YixleHRlbnNpb25zLGluY2x1ZGV9CgkJbG9jYWwgeD0iIgoJCWZvciB4IGluICR7RH0vdXNyLyQo
Z2V0X2xpYmRpcikvbGliR0wuc28qIFwKCQkJJHtEfS91c3IvJChnZXRfbGliZGlyKS9saWJHTC5s
YSBcCgkJCSR7RH0vdXNyLyQoZ2V0X2xpYmRpcikvbGliR0wuYTsgZG8KCQkJaWYgWyAtZiAke3h9
IC1vIC1MICR7eH0gXTsgdGhlbgoJCQkJIyBsaWJHTC5hIGNhdXNlIHByb2JsZW1zIHdpdGggdHV4
cmFjZXIsIGV0YwoJCQkJbXYgLWYgJHt4fSAke0R9L3Vzci8kKGdldF9saWJkaXIpL29wZW5nbC8k
e1BOfS9saWIKCQkJZmkKCQlkb25lCgkJCWZvciB4IGluICR7RH0vdXNyLyQoZ2V0X2xpYmRpcikv
bW9kdWxlcy9leHRlbnNpb25zL2xpYmdseCo7IGRvCgkJCWlmIFsgLWYgJHt4fSAtbyAtTCAke3h9
IF07IHRoZW4KCQkJCW12IC1mICR7eH0gJHtEfS91c3IvJChnZXRfbGliZGlyKS9vcGVuZ2wvJHtQ
Tn0vZXh0ZW5zaW9ucwoJCQlmaQoJCWRvbmUKCQkjIGdsZXh0LmggYWRkZWQgZm9yICM1NDk4NAoJ
CWZvciB4IGluICR7RH0vdXNyL2luY2x1ZGUvR0wve2dsLmgsZ2x4LmgsZ2x4dG9rZW5zLmgsZ2xl
eHQuaCxnbHhleHQuaCxnbHhtZC5oLGdseHByb3RvLmh9OyBkbwoJCQlpZiBbIC1mICR7eH0gLW8g
LUwgJHt4fSBdOyB0aGVuCgkJCQltdiAtZiAke3h9ICR7RH0vdXNyLyQoZ2V0X2xpYmRpcikvb3Bl
bmdsLyR7UE59L2luY2x1ZGUKCQkJZmkKCQlkb25lCgllZW5kIDAKfQoKY3Vyc29yX2luc3RhbGwo
KSB7CgkjIE1ha2UgdGhlIGNvcmUgY3Vyc29yIHRoZSBkZWZhdWx0LiAgUGVvcGxlIHNlZW0gbm90
IHRvIGxpa2Ugd2hpdGVnbGFzcwoJIyBmb3Igc29tZSByZWFzb24uCglkb3NlZCAnczp3aGl0ZWds
YXNzOmNvcmU6JyAvdXNyL3NoYXJlL2N1cnNvcnMvJHtQTn0vZGVmYXVsdC9pbmRleC50aGVtZQoK
CWlmICEgdXNlIG1pbmltYWw7IHRoZW4KCQlpbnN0YWxsX2V4dHJhX2N1cnNvcnMKCWZpCn0KCnN0
cmlwX2V4ZWNzKCkgewoJaWYgdXNlIGRlYnVnIHx8IGhhcyBub3N0cmlwICR7RkVBVFVSRVN9OyB0
aGVuCgkJZXdhcm4gIkRlYnVnIGJ1aWxkIHR1cm5lZCBvbiBieSBVU0U9ZGVidWcgb3IgRkVBVFVS
RVM9bm9zdHJpcCIKCQlld2FybiAiTk9UIHN0cmlwcGluZyBiaW5hcmllcyBhbmQgbGlicmFyaWVz
IgoJZWxzZQoJCWxvY2FsIFNUUklQCgkJaWYgWyAhIC16ICIke0NCVUlMRH0iIF0gJiYgWyAiJHtD
QlVJTER9IiAhPSAiJHtDSE9TVH0iIF07IHRoZW4KCQkJU1RSSVA9JHtDSE9TVH0tc3RyaXAKCQll
bHNlCgkJCVNUUklQPXN0cmlwCgkJZmkKCQllaW5mbyAiU3RyaXBwaW5nIGJpbmFyaWVzIGFuZCBs
aWJyYXJpZXMuLi4iCgkJIyBUaGlzIGJpdCBJIGdvdCBmcm9tIFJlZGhhdCAuLi4gc3RyaXAgYmlu
YXJpZXMgYW5kIGRyaXZlcnMgLi4KCQkjIE5PVEU6ICBXZSBkbyBOT1Qgd2FudCB0byBzdHJpcCB0
aGUgZHJpdmVycywgbW9kdWxlcyBvciBEUkkgbW9kdWxlcyEKCQlsb2NhbCB4CgkJZm9yIHggaW4g
JChmaW5kICR7RH0vIC10eXBlIGYgLXBlcm0gKzAxMTEgLWV4ZWMgZmlsZSB7fSBcOyB8IFwKCQkg
ICAgICAgICAgIGdyZXAgLXYgJyBzaGFyZWQgb2JqZWN0LCcgfCBcCgkJICAgICAgICAgICBzZWQg
LW4gLWUgJ3MvXlwoLipcKTpbICBdKkVMRi4qLCBub3Qgc3RyaXBwZWQvXDEvcCcpOyBkbwoJCQlp
ZiBbIC1mICR7eH0gXTsgdGhlbgoJCQkJIyBEb250IGRvIHRoZSBtb2R1bGVzIC4uLgoJCQkJaWYg
WyAiJHt4L1wvdXNyXC8kKGdldF9saWJkaXIpXC9tb2R1bGVzfSIgPSAiJHt4fSIgXTsgdGhlbgoJ
CQkJCWVjaG8gIiQoZWNobyAke3gvJHtEfX0pIgoJCQkJCSR7U1RSSVB9ICR7eH0gfHwgOgoJCQkJ
ZmkKCQkJZmkKCQlkb25lCgkJIyBOb3cgZG8gdGhlIGxpYnJhcmllcyAuLi4KCQlmb3IgeCBpbiAk
e0R9L3Vzci97JChnZXRfbGliZGlyKSwkKGdldF9saWJkaXIpL29wZW5nbC8ke1BOfS9saWJ9Lyou
c28uKiBcCgkJCSQoZ2V0X2xpYmRpcikvWDExL2xvY2FsZS8kKGdldF9saWJkaXIpL2NvbW1vbn0v
Ki5zby4qOyBkbwoJCQlpZiBbIC1mICR7eH0gXTsgdGhlbgoJCQkJZWNobyAiJChlY2hvICR7eC8k
e0R9fSkiCgkJCQkke1NUUklQfSAtLXN0cmlwLWRlYnVnICR7eH0gfHwgOgoJCQlmaQoJCWRvbmUK
CWZpCn0KCmluc3RhbGxfZXh0cmFfY3Vyc29ycygpIHsKCSMgSW5zdGFsbCBUYUQncyBnZW50b28g
Y3Vyc29ycwoJaW5zaW50byAvdXNyL3NoYXJlL2N1cnNvcnMvJHtQTn0vZ2VudG9vL2N1cnNvcnMK
CWRvaW5zICR7V09SS0RJUn0vY3Vyc29ycy9nZW50b28vY3Vyc29ycy8qCglpbnNpbnRvIC91c3Iv
c2hhcmUvY3Vyc29ycy8ke1BOfS9nZW50b28tYmx1ZS9jdXJzb3JzCglkb2lucyAke1dPUktESVJ9
L2N1cnNvcnMvZ2VudG9vLWJsdWUvY3Vyc29ycy8qCglpbnNpbnRvIC91c3Ivc2hhcmUvY3Vyc29y
cy8ke1BOfS9nZW50b28tc2lsdmVyL2N1cnNvcnMKCWRvaW5zICR7V09SS0RJUn0vY3Vyc29ycy9n
ZW50b28tc2lsdmVyL2N1cnNvcnMvKgp9CgptaW5pbWFsX2luc3RhbGwoKSB7CgkJIyBHZXQgcmlk
IG9mIGFsbCB1bm5lY2Vzc2FyeSBmb250cyAoc2F2ZXMgfjUuNSBNQikKCQlmaW5kICR7RH0vdXNy
L3NoYXJlL2ZvbnRzL21pc2MvIC1uYW1lICcqLnBjZi5neicgXAoJCQktbm90IC1uYW1lICcqNngx
MyonIC1ub3QgLW5hbWUgJ2N1cnNvci5wY2YuZ3onIC1leGVjIHJtIHt9IFw7CgkJIyBXb29ob28s
IGFub3RoZXIgNzcySwoJCXJtIC1yZiAke0R9L3Vzci9zaGFyZS9kb2MKfQoKeHByaW50X2luc3Rh
bGwoKSB7CgkjIElmIHdlIHdhbnQgeHByaW50LCBzYXZlIHRoZSBpbml0IHNjcmlwdCBiZWZvcmUg
ZGVsZXRpbmcgL2V0Yy9yYy5kLwoJIyBSZXF1ZXN0ZWQgb24gIzY4MzE2CglpZiB1c2UgeHByaW50
OyB0aGVuCgkJeHByaW50X2luaXRfaW5zdGFsbAoJZWxzZQoJCSMgZGVsZXRlIHhwcmludCBzdHVm
ZgoJCXJtIC1mICR7RH0vZXRjL3tpbml0LHByb2ZpbGV9LmQveHByaW50KgoJCXJtZGlyIC0taWdu
b3JlLWZhaWwtb24tbm9uLWVtcHR5ICR7RH0vZXRjL3tpbml0LHByb2ZpbGV9LmQKCWZpCgoJIyBS
ZW1vdmUgdGhlIC9ldGMvcmMuZCBub25zZW5zZSAtLSBub3QgZXZlcnlvbmUgaXMgUmVkSGF0Cgly
bSAtcmYgJHtEfS9ldGMvcmMuZAp9Cgp4cHJpbnRfaW5pdF9pbnN0YWxsKCkgewoJIyBSSC1zdHls
ZSBpbml0IHNjcmlwdCwgd2UgcHJvdmlkZSBhIHdyYXBwZXIKCWV4ZWludG8gL3Vzci8kKGdldF9s
aWJkaXIpL21pc2MKCWRvZXhlICR7RH0vZXRjL2luaXQuZC94cHJpbnQKCXJtIC1mICR7RH0vZXRj
L2luaXQuZC94cHJpbnQKCSMgSW5zdGFsbCB0aGUgd3JhcHBlcgoJbmV3aW5pdGQgJHtGSUxFU19E
SVJ9L3hwcmludC5pbml0IHhwcmludAoJIyBwYXRjaCBwcm9maWxlIHNjcmlwdHMKCXNlZCAtaSAt
ZSAiczovYmluL3NoLipnZXRfeHBzZXJ2ZXJsaXN0Oi91c3IvJChnZXRfbGliZGlyKS9taXNjL3hw
cmludCBnZXRfeHBzZXJ2ZXJsaXN0OmciICR7RH0vZXRjL3Byb2ZpbGUuZC94cHJpbnQqCgkjIG1v
dmUgcHJvZmlsZSBzY3JpcHRzLCB3ZSBjYW4ndCB0b3VjaCAvZXRjL3Byb2ZpbGUuZC8gaW4gR2Vu
dG9vCglkb2RvYyAke0R9L2V0Yy9wcm9maWxlLmQveHByaW50KgoJcm0gLWYgJHtEfS9ldGMvcHJv
ZmlsZS5kL3hwcmludCoKfQoKY29uZmlnX2ZpbGVzX2luc3RhbGwoKSB7CgoJIyBGaXggZGVmYXVs
dCBjb25maWcgZmlsZXMgYWZ0ZXIgaW5zdGFsbGluZyBmb250cyB0byAvdXNyL3NoYXJlL2ZvbnRz
CglzZWQgLWkgLWUgInM6L3Vzci9YMTFSNi8kKGdldF9saWJkaXIpL1gxMS9mb250czovdXNyL3No
YXJlL2ZvbnRzOmciIFwKCQktZSAiczovdXNyLyQoZ2V0X2xpYmRpcikvWDExL2ZvbnRzOi91c3Iv
c2hhcmUvZm9udHM6ZyIgXAoJCS1lICJzOi91c3IvJChnZXRfbGliZGlyKS9mb250czovdXNyL3No
YXJlL2ZvbnRzOmciIFwKCQkke0R9L2V0Yy9YMTEveG9yZy5jb25mLmV4YW1wbGUKCWlmIHVzZSBm
b250LXNlcnZlcjsgdGhlbgoJCXNlZCAtaSAiczovdXNyL1gxMVI2LyQoZ2V0X2xpYmRpcikvWDEx
L2ZvbnRzOi91c3Ivc2hhcmUvZm9udHM6ZyIgXAoJCQkke0R9L2V0Yy9YMTEvZnMvY29uZmlnCglm
aQoKCSMgV29yayBhcm91bmQgdXBncmFkZSBwcm9ibGVtIHdoZXJlIHBlb3BsZSBoYXZlCgkjIE9w
dGlvbiAiWGtiUnVsZXMiICJ4ZnJlZTg2IiBpbiB0aGVpciBjb25maWcgZmlsZQoJc2VkIC1pICJz
Ol4uKk9wdGlvbi4qIlhrYlJ1bGVzIi4qJDo6ZyIgJHtEfS9ldGMvWDExL3hvcmcuY29uZi5leGFt
cGxlCn0KCmZpeF9vcGVuZ2xfc3ltbGlua3MoKSB7CgkjIFJlbW92ZSBpbnZhbGlkIHN5bWxpbmtz
Cglsb2NhbCBMSU5LCglmb3IgTElOSyBpbiAkKGZpbmQgJHtEfS91c3IvJChnZXRfbGliZGlyKSBc
CgkJLW5hbWUgbGliR0wuKiAtdHlwZSBsKTsgZG8KCQlybSAtZiAke0xJTkt9Cglkb25lCgkjIENy
ZWF0ZSByZXF1aXJlZCBzeW1saW5rcwoJZG9zeW0gbGliR0wuc28uMS4yIC91c3IvJChnZXRfbGli
ZGlyKS9saWJHTC5zbwoJZG9zeW0gbGliR0wuc28uMS4yIC91c3IvJChnZXRfbGliZGlyKS9saWJH
TC5zby4xCn0KCiMjIyMjIyMjIyMjIyMjIyMjCiMgcGtnX3ByZWluc3QoKSAjCiMjIyMjIyMjIyMj
IyMjIyMjCgojIFdlIG5lZWQgYSBzeW1saW5rIC91c3IvWDExUjYvZGlyIC0+IC91c3IvZGlyIHNv
IGFsbCB0aGUgcGFja2FnZXMKIyB3aG9zZSBmaWxlcyB3ZSBtb3ZlIGRvbid0IGxvc2UgdHJhY2sg
b2YgdGhlbS4gQXMgc3VjaCwgd2UgbmVlZAojIF9hYnNvbHV0ZWx5IG5vdGhpbmdfIGluIC91c3Iv
WDExUjYvZGlyIHNvIHdlIGNhbiBtYWtlIHN1Y2ggYSBzeW1saW5rLgojIERvbm5pZSBCZXJraG9s
eiA8c3B5ZGVyb3VzQGdlbnRvby5vcmc+IDIwIE9jdG9iZXIgMjAwNAojCiMgVGFrZXMgdHdvIGFy
Z3VtZW50cyAtLSBzdGFydGluZyBsb2NhdGlvbiBhbmQgZW5kaW5nIGxvY2F0aW9uCm1pZ3JhdGUo
KSB7CgllaW5mbyAiTWlncmF0aW5nIGZyb20gJHsxfSB0byAkezJ9Li4uIgoKCSMgU3RyaXAgdHJh
aWxpbmcgc2xhc2gKCWlmIFsgLXogIiR7MSMjKi99IiBdOyB0aGVuCgkJc2V0IC0tICR7MSUvfSAk
ezJ9CglmaQoKCWlmIFsgLWUgJHtST09UfSR7MX0gXTsgdGhlbgoJCSMgSWYgaXQncyBub3QgYSBz
eW1saW5rIChpbiBvdGhlciB3b3JkcywgaXQgc2hvdWxkIGJlIGEgZGlyZWN0b3J5KQoJCWlmIFsg
ISAtTCAke1JPT1R9JHsxfSBdOyB0aGVuCgkJCWVpbmZvICIgICR7MX0gaXNuJ3QgYSBzeW1saW5r
LCBtaWdyYXRpbmcuLi4iCgkJCSMgTW92ZSBldmVyeXRoaW5nCgkJCQkJcnN5bmMgXAoJCQkJCQkt
LWFyY2hpdmUgXAoJCQkJCQktLXVwZGF0ZSBcCgkJCQkJCS0tbGlua3MgXAoJCQkJCQktLWhhcmQt
bGlua3MgXAoJCQkJCQktLWlnbm9yZS1leGlzdGluZyBcCgkJCQkJCS0tc3RhdHMgXAoJCQkJCQkt
LXByb2dyZXNzIFwKCQkJCQkJLS12ZXJib3NlIFwKCQkJCQkJJHtST09UfSR7MX0vICR7Uk9PVH0k
ezJ9ID4gJHtUfS9taWdyYXRlLSR7MS8vXC8vLX0ubG9nIDI+JjEKCgkJCQkJY2hlY2tfbWlncmF0
ZV9yZXR1cm4KCQkJCQlyZW1vdmVfbWlncmF0ZWRfZmlsZXMgJHsxfQoKCQkJaWYgWyAtZSAiJHtS
T09UfSR7MX0iIF07IHRoZW4KCQkJCSMgUmVtb3ZlIGFueSBmbG9hdGluZyAua2VlcCBmaWxlcyBz
byB3ZSBjYW4gcnVuIHJtZGlyCgkJCQlmaW5kICR7Uk9PVH0kezF9IC1uYW1lICdcLmtlZXAnIC1l
eGVjIHJtIC1mIHt9IFw7CgkJCQkjIEdldCByaWQgb2YgdGhlIGRpcmVjdG9yeQoJCQkJcm1kaXIg
JHtST09UfSR7MX0KCQkJZmkKCgkJCW1ha2Vfc3ltbGlua3MgJHsxfQoJCWVsc2UKCQkJZXdhcm4g
IiAgICAkezF9IGlzIGEgc3ltbGluaywgbm90IG1pZ3JhdGluZyIKCQlmaQoJZWxzZQoJCWV3YXJu
ICIgICR7MX0gZG9lc24ndCBleGlzdCwgbm90IG1pZ3JhdGluZyIKCQltYWtlX3N5bWxpbmtzICR7
MX0KCWZpCn0KCmNoZWNrX21pZ3JhdGVfcmV0dXJuKCkgewoJTUlHUkFURV9SRVRVUk49IiQ/IgoJ
aWYgWyAiJHtNSUdSQVRFX1JFVFVSTn0iIC1lcSAiMCIgXTsgdGhlbgoJCWVpbmZvICJyc3luYyBz
dWNjZXNzZnVsISIKCWVsc2UKCQllZXJyb3IgInJzeW5jIGZhaWxlZC4iCgkJZWVycm9yICJDaGVj
ayBmb3IgbWlncmF0ZS0qIGZpbGVzIGluICR7VH0uIgoJCWRpZSAicnN5bmMgZmFpbGVkLiBFeGl0
IGNvZGU6ICR7TUlHUkFURV9SRVRVUk59LiIKCWZpCgoJIyBNaWdyYXRpb24gZnViYXJzIGxpYiBz
eW1saW5rcyAtLSBlcmFkaWNhdG9yCglpZiB1c2UgYW1kNjQ7IHRoZW4KCQlpZiBbWyAtTCAke1JP
T1R9dXNyL2xpYjY0IF1dOyB0aGVuCgkJCXJtICR7Uk9PVH11c3IvbGliNjQKCQkJbG4gLXMgbGli
ICR7Uk9PVH11c3IvbGliNjQKCQllbGlmIFtbIC1MICR7Uk9PVH11c3IvbGliIF1dOyB0aGVuCgkJ
CXJtIC1mICR7Uk9PVH11c3IvbGliCgkJCWxuIC1zIGxpYjY0ICR7Uk9PVH11c3IvbGliCgkJZWxp
ZiBbWyAtTCAke1JPT1R9dXNyL2xpYjMyIF1dOyB0aGVuCgkJCWlmIGhhc19tdWx0aWxpYl9wcm9m
aWxlOyB0aGVuCgkJCWxuIC1zIGxpYiAke1JPT1R9dXNyL2xpYjMyCgkJCWVsc2UKCQkJCWxuIC1z
IC4uL2VtdWwvbGludXgveDg2L3Vzci9saWIgJHtST09UfXVzci9saWIzMgoJCQlmaQoJCWZpCglm
aQp9CgpyZW1vdmVfbWlncmF0ZWRfZmlsZXMoKSB7CgkjIFRoaXMgaXMgYSBjb3B5IGluc3RlYWQg
b2YgYSBtb3ZlLCBzbyB3ZSBuZWVkIHRvIGdldCByaWQgb2Ygd2hhdAoJIyB3ZSBjb3BpZWQuIFRo
aXMgaXMgYSBsaXR0bGUgcmlza3kgaWYgaXQgZmFpbHMsIHNvIGp1c3QgZG8gaXQgb24KCSMgc3Vj
Y2Vzcy4KCgkjIERPIE5PVCBwcm9jZWVkIGlmIHdlIGRvbid0IGhhdmUgYW4gYXJndW1lbnQsIG9y
IHdlIGtpbGwgcm9vdCBmaWxlc3lzdGVtCglpZiBbIC16ICIkezF9IiBdOyB0aGVuCgkJZGllICJO
byBhcmd1bWVudCB0byByZW1vdmVfbWlncmF0ZWRfZmlsZXMoKS4gV2FudCB0byBgcm0gLXJmICR7
Uk9PVH1gPyIKCWZpCgoJaWYgWyAiJHtNSUdSQVRFX1JFVFVSTn0iIC1lcSAiMCIgXTsgdGhlbgoj
CQlybSAtcmZ2ICR7Uk9PVH0kezF9ID4gJHtUfS9taWdyYXRlLXJlbW92ZS0kezEvL1wvLy19Lmxv
ZyAyPiYxCgkJcm0gLXJmdiAke1JPT1R9JHsxfQoJZmkKfQoKbWFrZV9zeW1saW5rcygpIHsKCQkJ
IyBQdXQgYSBzeW1saW5rIGluIGl0cyBwbGFjZQoKCQkJIyBTcGVjaWFsIGNhc2U6IGxpYiAhPSBs
aWJkaXIKCQkJaWYgWyAiJHsxIyMqL30iID0gIiQoZ2V0X2xpYmRpcikiIC1hICIkKGdldF9saWJk
aXIpIiAhPSAibGliIiBdOyB0aGVuCgkJCQllaW5mbyAiICAgIFN5bWxpbmtpbmcgJHtST09UfXVz
ci9YMTFSNi9saWIgLT4gJChnZXRfbGliZGlyKSIKCQkJCWxuIC1zICQoZ2V0X2xpYmRpcikgJHtS
T09UfXVzci9YMTFSNi9saWIKCQkJIyBTcGVjaWFsIGNhc2U6IGZvbnRzCgkJCWVsaWYgWyAiJHsx
IyMqL30iID0gImZvbnRzIiBdOyB0aGVuCgkJCQllaW5mbyAiICAgIFN5bWxpbmtpbmcgJHtST09U
fSR7MX0gLT4gLi4vLi4vc2hhcmUvZm9udHMiCgkJCQlsbiAtcyAuLi8uLi9zaGFyZS9mb250cyAk
e1JPT1R9JHsxfQoJCQkjIFNwZWNpYWwgY2FzZTogWDExUjYKCQkJZWxpZiBbICIkezEjIyovfSIg
PSAiWDExUjYiIF07IHRoZW4KCQkJCWVpbmZvICIgICAgU3ltbGlua2luZyAke1JPT1R9JHsxfSAt
PiAuLi91c3IiCgkJCQlsbiAtcyAuLi91c3IgJHtST09UfSR7MX0KCQkJZWxzZQoJCQkJZWluZm8g
IiAgICBTeW1saW5raW5nICR7Uk9PVH0kezF9IC0+IC4uLyR7MSMjKi99IgoJCQkJbG4gLXMgLi4v
JHsxIyMqL30gJHtST09UfSR7MX0KCQkJZmkKfQoKdXBkYXRlX2NvbmZpZ19maWxlcygpIHsKCSMg
Rml4IGFueSBpbnN0YWxsZWQgY29uZmlnIGZpbGVzIGZvciBpbnN0YWxsaW5nIGZvbnRzIHRvIC91
c3Ivc2hhcmUvZm9udHMKCSMgVGhpcyAqbmVlZHMqIHRvIGJlIGFmdGVyIGFsbCBvdGhlciBpbnN0
YWxsYXRpb24gc28gZmlsZXMgYXJlbid0CgkjIG92ZXJ3cml0dGVuLgoKCWlmIFsgIiR7Uk9PVH0i
ID0gIi8iIF07IHRoZW4KCQllaW5mbyAiUHJlcGFyaW5nIGFueSBpbnN0YWxsZWQgY29uZmlndXJh
dGlvbiBmaWxlcyBmb3IgZm9udCBtb3ZlLi4uIgoJCUZJTEVTPSIvZXRjL1gxMS94b3JnLmNvbmYK
CQkJL2V0Yy9YMTEvWEY4NkNvbmZpZy00CgkJCS9ldGMvWDExL1hGODZDb25maWciCgkJaWYgdXNl
IGZvbnQtc2VydmVyOyB0aGVuCgkJCUZJTEVTPSIke0ZJTEVTfSAvZXRjL1gxMS9mcy9jb25maWci
CgkJZmkKCQkjCS9ldGMvZm9udHMvZm9udHMuY29uZgoJCSMJL2V0Yy9mb250cy9sb2NhbC5jb25m
CgoJCWxvY2FsIEZJTEUKCQlmb3IgRklMRSBpbiAke0ZJTEVTfTsgZG8KCQkJaWYgWyAtZSAke0ZJ
TEV9IF07IHRoZW4KCQkJCSMgTmV3IGZvbnQgcGF0aHMKCQkJCXNlZCAicywvdXNyL1gxMVI2LyQo
Z2V0X2xpYmRpcikvWDExL2ZvbnRzLC91c3Ivc2hhcmUvZm9udHMsZyIgXAoJCQkJCSR7Uk9PVH0k
e0ZJTEV9ID4gJHtJTUFHRX0ke0ZJTEV9CgoJCQkJaWYgWyAiJHtGSUxFfSIgPSAiL2V0Yy9YMTEv
eG9yZy5jb25mIiBdIFwKCQkJCQl8fCBbICIke0ZJTEV9IiA9ICIvZXRjL1gxMS9YRjg2Q29uZmln
IiBdIFwKCQkJCQl8fCBbICIke0ZJTEV9IiA9ICIvZXRjL1gxMS9YRjg2Q29uZmlnLTQiIF07IHRo
ZW4KCQkJCQkjICJrZXlib2FyZCIgZHJpdmVyIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVt
b3ZlZCwKCQkJCQkjIHN3aXRjaCB0byAia2JkIgoJCQkJCXNlZCAtaSAnc35eXChbIFx0XSpEcml2
ZXJbIFx0XVwrXCkiW2tLXWV5Ym9hcmQiflwxImtiZCJ+JyBcCgkJCQkJCSR7SU1BR0V9JHtGSUxF
fQoKCQkJCQkjIFRoaXMgbW92ZWQgaW4gdGhlIC91c3IvWDExUjYvbGliZGlyIC0+IC91c3IvbGli
ZGlyIGNoYW5nZQoJCQkJCXNlZCAtaSBcCgkJCQkJCS1lICdzfl5cKFsgXHRdKlJnYlBhdGhbIFx0
XVwrXCkiL3Vzci9YMTFSNi8kKGdldF9saWJkaXIpL1gxMS9yZ2IiflwxIi91c3IvJChnZXRfbGli
ZGlyKS9YMTEvcmdiIn4nIFwKCQkJCQkJLWUgJ3N+XlwoWyBcdF0qUmdiUGF0aFsgXHRdXCtcKSIv
dXNyL1gxMVI2L2xpYi9YMTEvcmdiIn5cMSIvdXNyL2xpYi9YMTEvcmdiIn4nIFwKCQkJCQkJJHtJ
TUFHRX0ke0ZJTEV9CgoJCQkJCSMgV29yayBhcm91bmQgdXBncmFkZSBwcm9ibGVtIHdoZXJlIHBl
b3BsZSBoYXZlCgkJCQkJIyBPcHRpb24gIlhrYlJ1bGVzIiAieGZyZWU4NiIgaW4gdGhlaXIgY29u
ZmlnIGZpbGUKCQkJCQlzZWQgLWkgInM6Xi4qT3B0aW9uLipcIlhrYlJ1bGVzXCIuKiQ6OmciIFwK
CQkJCQkJJHtJTUFHRX0ke0ZJTEV9CgkJCQlmaQoJCQlmaQoJCWRvbmUKCWZpCn0KCmNsZWFudXBf
Zm9udHMoKSB7Cglsb2NhbCBHX0ZPTlRESVJTCglHX0ZPTlRESVJTPSJTcGVlZG8gZW5jb2Rpbmdz
IGxvY2FsIG1pc2MgdXRpbCIKCWlmIHVzZSB0cnVldHlwZS1mb250czsgdGhlbgoJCUdfRk9OVERJ
UlM9IiR7R19GT05URElSU30gVFRGIgoJZmkKCWlmIHVzZSB0eXBlMS1mb250czsgdGhlbgoJCUdf
Rk9OVERJUlM9IiR7R19GT05URElSU30gVHlwZTEiCglmaQoJaWYgdXNlIGNqazsgdGhlbgoJCUdf
Rk9OVERJUlM9IiR7R19GT05URElSU30gQ0lEIgoJZmkKCWlmIHVzZSBiaXRtYXAtZm9udHM7IHRo
ZW4KCQlHX0ZPTlRESVJTPSIke0dfRk9OVERJUlN9IDc1ZHBpIDEwMGRwaSIKCWZpCglpZiB1c2Ug
bmxzOyB0aGVuCgkJR19GT05URElSUz0iJHtHX0ZPTlRESVJTfSBjeXJpbGxpYyB1a3IiCglmaQoK
CWZvciBHX0ZPTlRESVIgaW4gJHtHX0ZPTlRESVJTfTsgZG8KCQkjIGNsZWFuIG91dCBvbGQgZm9u
dHMuKiBhbmQgZW5jb2RpbmdzLmRpciBmaWxlcywgYXMgd2UKCQkjIHdpbGwgcmVnZW5lcmF0ZSB0
aGVtCgkJIyBOb3QgU3BlZWRvIG9yIENJRCwgYXMgdGhlaXIgZm9udHMuc2NhbGUgZmlsZXMgYXJl
ICJyZWFsIgoJCWlmIFsgIiR7R19GT05URElSfSIgIT0gIkNJRCIgLWEgIiR7R19GT05URElSfSIg
IT0gIlNwZWVkbyIgXTsgdGhlbgoJCQlmaW5kICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzLyR7R19G
T05URElSfSAtdHlwZSBmIC1uYW1lICdmb250cy4qJyBcCgkJCQktbyAtbmFtZSAnZW5jb2Rpbmdz
LmRpcicgLWV4ZWMgcm0gLWZ2IHt9IFw7CgkJZmkKCWRvbmUKCgkjIEdldCByaWQgb2YgZGVwcmVj
YXRlZCBkaXJlY3RvcmllcyBzbyBvdXIgc3ltbGlua3MgaW4gdGhlIHNhbWUgbG9jYXRpb24KCSMg
d29yayAtLSB1c2VycyBzaG91bGRuJ3QgYmUgcGxhY2luZyBmb250cyBoZXJlIHNvIHRoYXQgc2hv
dWxkIGJlIGZpbmUsCgkjIHRoZXkgc2hvdWxkIGJlIHVzaW5nIH4vLmZvbnRzIG9yIC91c3Ivc2hh
cmUvZm9udHMuIDxzcHlkZXJvdXM+CglyZW1vdmVfZm9udF9kaXJzCn0KCnJlbW92ZV9mb250X2Rp
cnMoKSB7CglpZiBbIC1lICR7Uk9PVH0vdXNyL1gxMVI2LyQoZ2V0X2xpYmRpcikvWDExL2ZvbnRz
IF07IHRoZW4KCQlpZiBbICEgLUwgJHtST09UfS91c3IvWDExUjYvJChnZXRfbGliZGlyKS9YMTEv
Zm9udHMgXTsgdGhlbgoJCQlsb2NhbCBHX0ZPTlRESVIKCQkJZm9yIEdfRk9OVERJUiBpbiAke1JP
T1R9L3Vzci9YMTFSNi8kKGdldF9saWJkaXIpL1gxMS9mb250cy8qOyBkbwoJCQkJaWYgWyAtTCAi
JHtHX0ZPTlRESVJ9IiBdOyB0aGVuCgkJCQkJZWluZm8gIlJlbW92aW5nICR7R19GT05URElSfSBz
eW1saW5rLiIKCQkJCQlybSAtcmZ2ICR7R19GT05URElSfQoJCQkJZWxzZQoJCQkJCWV3YXJuICIk
e0dfRk9OVERJUn0gbm90IGEgc3ltbGluaywgbW92aW5nIHRvIC91c3Ivc2hhcmUvZm9udHMiCgkJ
CQkJaWYgWyAtZCAke0dfRk9OVERJUn0gXTsgdGhlbgoJCQkJCQlpZiBbICEgLWUgL3Vzci9zaGFy
ZS9mb250cy8ke0dfRk9OVERJUiMjKi99IF07IHRoZW4KCQkJCQkJCWVpbmZvICJNb3ZpbmcgJHtH
X0ZPTlRESVJ9IHRvIC91c3Ivc2hhcmUvZm9udHMvLiIKCQkJCQkJCW12ICR7R19GT05URElSfSAv
dXNyL3NoYXJlL2ZvbnRzLwoJCQkJCQllbHNlCgkJCQkJCQlld2FybiAiL3Vzci9zaGFyZS9mb250
cy8ke0dfRk9OVERJUiMjKi99IGV4aXN0cy4gUmVtb3ZlIGl0IGFuZCB0cnkgYWdhaW4uIgoJCQkJ
CQlmaQoJCQkJCWVsc2UKCQkJCQkJZXdhcm4gIiR7R19GT05URElSfSBkb2VzIG5vdCBleGlzdC4i
CgkJCQkJZmkKCQkJCWZpCgkJCWRvbmUKCQlmaQoJZWxzZQoJCWV3YXJuICIke1JPT1R9L3Vzci9Y
MTFSNi8kKGdldF9saWJkaXIpL1gxMS9mb250cyBkb2VzIG5vdCBleGlzdC4iCglmaQp9Cgptb3Zl
X2FwcF9kZWZhdWx0c190b19ldGMoKSB7CglpZiBbIC1MICR7Uk9PVH0vZXRjL1gxMS9hcHAtZGVm
YXVsdHMgXTsgdGhlbgoJCXJtIC1mICR7Uk9PVH0vZXRjL1gxMS9hcHAtZGVmYXVsdHMKCWZpCgoJ
aWYgWyAhIC1MICR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikvYXBwLWRlZmF1bHRzIF0gXAoJCSYm
IFsgLWQgJHtST09UfS91c3IvJChnZXRfbGliZGlyKS9hcHAtZGVmYXVsdHMgXTsgdGhlbgoJCWlm
IFsgISAtZCAke1JPT1R9L2V0Yy9YMTEvYXBwLWRlZmF1bHRzIF07IHRoZW4KCQkJbWtkaXIgLXAg
JHtST09UfS9ldGMvWDExL2FwcC1kZWZhdWx0cwoJCWZpCgoJCW12IC1mICR7Uk9PVH0vdXNyLyQo
Z2V0X2xpYmRpcikvYXBwLWRlZmF1bHRzICR7Uk9PVH0vZXRjL1gxMQoJZmkKfQoKbW92ZV94a2Jf
dG9fdXNyKCkgewoJaWYgWyAtTCAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpL3hrYiBdOyB0aGVu
CgkJcm0gLWYgJHtST09UfS91c3IvJChnZXRfbGliZGlyKS94a2IKCWZpCgoJaWYgWyAhIC1MICR7
Uk9PVH0vZXRjL1gxMS94a2IgXSBcCgkJJiYgWyAtZCAke1JPT1R9L2V0Yy9YMTEveGtiIF07IHRo
ZW4KCQlpZiBbICEgLWQgJHtST09UfS91c3IvJChnZXRfbGliZGlyKS94a2IgXTsgdGhlbgoJCQlt
a2RpciAtcCAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpCgkJZmkKCgkgICAgbXYgLWYgJHtST09U
fS9ldGMvWDExL3hrYiAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpCglmaQp9CgpkeW5hbWljX2xp
YmdsX3ByZWluc3QoKSB7CgkjIGNsZWFuIHRoZSBkeW5hbWljIGxpYkdMIHN0dWZmJ3MgaG9tZSB0
byBlbnN1cmUKCSMgd2UgZG9uJ3QgaGF2ZSBzdGFsZSBsaWJzIGZsb2F0aW5nIGFyb3VuZAoJaWYg
WyAtZCAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpL29wZW5nbC8ke1BOfSBdOyB0aGVuCgkJcm0g
LXJmICR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikvb3BlbmdsLyR7UE59LyoKCWZpCgoJIyBtYWtl
IHN1cmUgd2UgZG8gbm90IGhhdmUgYW55IHN0YWxlIGZpbGVzIGx5aW5nIGFyb3VuZAoJIyB0aGF0
IGNvdWxkIGJyZWFrIHRoaW5ncy4gQ2hlY2sgb2xkIGFuZCBuZXcgbG9jYXRpb25zLgoJcm0gLWYg
JHtST09UfS91c3IvWDExUjYvJChnZXRfbGliZGlyKS9saWJHTFwuKiBcCgkJJHtST09UfS91c3Iv
JChnZXRfbGliZGlyKS9saWJHTFwuKgp9CgojIyMjIyMjIyMjIyMjIyMjIyMKIyBwa2dfcG9zdGlu
c3QoKSAjCiMjIyMjIyMjIyMjIyMjIyMjIwoKZm9udF9zZXR1cCgpIHsKCXVtYXNrIDAyMgoKCSMg
VGhlc2UgY2F1c2UgdHRta2ZkaXIgdG8gc2VnZmF1bHQgOi8KCXJtIC1mICR7Uk9PVH0vdXNyL3No
YXJlL2ZvbnRzL2VuY29kaW5ncy9pc284ODU5LTYuOHguZW5jLmd6CglybSAtZiAke1JPT1R9L3Vz
ci9zaGFyZS9mb250cy9lbmNvZGluZ3MvaXNvODg1OS02LjE2LmVuYy5negojCXJtIC1mICR7Uk9P
VH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy9sYXJnZS9jbnMxMTY0My0xLmVuYwojCXJtIC1m
ICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy9sYXJnZS9jbnMxMTY0My0yLmVuYwoj
CXJtIC1mICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy9sYXJnZS9jbnMxMTY0My0z
LmVuYwojCXJtIC1mICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy9zdW5ldS1ncmVl
ay5lbmMKCgkjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCgkjICBBIG5vdGUgYWJvdXQgZm9udHMgYW5kIG5lZWRlZCBm
aWxlczoKCSMKCSMgIDEpICBDcmVhdGUgL3Vzci9zaGFyZS9mb250cy9lbmNvZGluZ3MvZW5jb2Rp
bmdzLmRpcgoJIwoJIyAgMikgIENyZWF0ZSBmb250cy5zY2FsZSBmb3IgVHJ1ZVR5cGUgZm9udHMg
KG5lZWQgdG8gZG8gdGhpcyBiZWZvcmUKCSMgICAgICB3ZSBjcmVhdGUgZm9udHMuZGlyIGZpbGVz
LCBlbHNlIGZvbnRzLmRpciBmaWxlcyB3aWxsIGJlCgkjICAgICAgaW52YWxpZCBmb3IgVHJ1ZVR5
cGUgZm9udHMuLi4pCgkjCgkjICAzKSAgTm93IEdlbmVyYXRlIGZvbnRzLmRpciBmaWxlcy4KCSMK
CSMgIENJRCBmb250cyBpcyBhIGJpdCBtb3JlIGludm9sdmVkLCBidXQgYXMgd2UgZG8gbm90IGlu
c3RhbGwgYW55LAoJIyAgdGh1cyBJIGFtIG5vdCBnb2luZyB0byBib3RoZXIuCgkjCgkjICA8YXph
cmFoQGdlbnRvby5vcmc+ICgyMCBPY3QgMjAwMikKCSMKCSMgKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgllYmVnaW4g
IkdlbmVyYXRpbmcgZW5jb2RpbmdzLmRpciIKCQkjIENyZWF0ZSB0aGUgZW5jb2RpbmdzLmRpciBp
biAvdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncwoJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJS
QVJZX1BBVEh9OiR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikiIFwKCQkke1JPT1R9L3Vzci9iaW4v
bWtmb250ZGlyIC1uIFwKCQkJLWUgJHtST09UfS91c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzIFwK
CQkJLWUgJHtST09UfS91c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzL2xhcmdlIFwKCQkJLS0gJHtS
T09UfS91c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzCgoJZWVuZCAwCgoJZWJlZ2luICJDcmVhdGlu
ZyBmb250cy5zY2FsZSBmaWxlcyIKCQlsb2NhbCB4CgkJZm9yIHggaW4gJChmaW5kICR7Uk9PVH0v
dXNyL3NoYXJlL2ZvbnRzLyogLW1heGRlcHRoIDEgLXR5cGUgZCk7IGRvCgkJCVsgLXogIiQobHMg
JHt4fS8pIiBdICYmIGNvbnRpbnVlCgkJCVsgIiQobHMgJHt4fS8pIiA9ICJmb250cy5jYWNoZS0x
IiBdICYmIGNvbnRpbnVlCgoJCQkjIE9ubHkgZ2VuZXJhdGUgLnNjYWxlIGZpbGVzIGlmIHRydWV0
eXBlLCBvcGVudHlwZSBvciB0eXBlMQoJCQkjIGZvbnRzIGFyZSBwcmVzZW50IC4uLgoKCQkJIyBG
aXJzdCB0cnVldHlwZSAodHRmLHR0YykKCQkJIyBOT1RFOiB0dG1rZmRpciBkb2VzIE5PVCB3b3Jr
IG9uIHR5cGUxIGZvbnRzICgjNTM3NTMpCgkJCSMgQWxzbywgdGhlcmUgaXMgbm8gd2F5IHRvIHJl
Z2VuZXJhdGUgU3BlZWRvL0NJRCBmb250cy5zY2FsZQoJCQkjIDxzcHlkZXJvdXNAZ2VudG9vLm9y
Zz4gMiBBdWd1c3QgMjAwNAoJCQlpZiBbICIke3gvZW5jb2RpbmdzfSIgPSAiJHt4fSIgLWEgXAoJ
CQkJLW4gIiQoZmluZCAke3h9IC1pbmFtZSAnKi50dFtjZl0nIC1wcmludCkiIF07IHRoZW4KCQkJ
CWlmIFsgLXggJHtST09UfS91c3IvYmluL3R0bWtmZGlyIF07IHRoZW4KCQkJCQlMRF9MSUJSQVJZ
X1BBVEg9IiR7TERfTElCUkFSWV9QQVRIfToke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpIiBcCgkJ
CQkJJHtST09UfS91c3IvYmluL3R0bWtmZGlyIC14IDIgXAoJCQkJCQktZSAke1JPT1R9L3Vzci9z
aGFyZS9mb250cy9lbmNvZGluZ3MvZW5jb2RpbmdzLmRpciBcCgkJCQkJCS1vICR7eH0vZm9udHMu
c2NhbGUgLWQgJHt4fQoJCQkJCSMgdHRta2ZkaXIgZmFpbHMgb24gc29tZSBzdHVmZiwgc28gdHJ5
IG1rZm9udHNjYWxlIGlmIGl0IGRvZXMKCQkJCQlsb2NhbCB0dG1rZmRpcl9yZXR1cm49JD8KCQkJ
CWVsc2UKCQkJCQkjIFdlIGRpZG4ndCB1c2UgdHRta2ZkaXIgYXQgYWxsCgkJCQkJbG9jYWwgdHRt
a2ZkaXJfcmV0dXJuPTIKCQkJCWZpCgkJCQlpZiBbICR7dHRta2ZkaXJfcmV0dXJufSAtbmUgMCBd
OyB0aGVuCgkJCQkJTERfTElCUkFSWV9QQVRIPSIke0xEX0xJQlJBUllfUEFUSH06JHtST09UfS91
c3IvJChnZXRfbGliZGlyKSIgXAoJCQkJCSR7Uk9PVH0vdXNyL2Jpbi9ta2ZvbnRzY2FsZSBcCgkJ
CQkJCS1hIC91c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzL2VuY29kaW5ncy5kaXIgXAoJCQkJCQkt
LSAke3h9CgkJCQlmaQoJCQkjIE5leHQgdHlwZTEgYW5kIG9wZW50eXBlIChwZmEscGZiLG90Zixv
dGMpCgkJCWVsaWYgWyAiJHt4L2VuY29kaW5nc30iID0gIiR7eH0iIC1hIFwKCQkJCS1uICIkKGZp
bmQgJHt4fSAtaW5hbWUgJyouW3BvXVtmdF1bYWJjZl0nIC1wcmludCkiIF07IHRoZW4KCQkJCUxE
X0xJQlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZX1BBVEh9OiR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRp
cikiIFwKCQkJCSR7Uk9PVH0vdXNyL2Jpbi9ta2ZvbnRzY2FsZSBcCgkJCQkJLWEgJHtST09UfS91
c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzL2VuY29kaW5ncy5kaXIgXAoJCQkJCS0tICR7eH0KCQkJ
ZmkKCQlkb25lCgllZW5kIDAKCgllYmVnaW4gIkdlbmVyYXRpbmcgZm9udHMuZGlyIGZpbGVzIgoJ
CWZvciB4IGluICQoZmluZCAke1JPT1R9L3Vzci9zaGFyZS9mb250cy8qIC1tYXhkZXB0aCAxIC10
eXBlIGQpOyBkbwoJCQlbIC16ICIkKGxzICR7eH0vKSIgXSAmJiBjb250aW51ZQoJCQlbICIkKGxz
ICR7eH0vKSIgPSAiZm9udHMuY2FjaGUtMSIgXSAmJiBjb250aW51ZQoKCQkJaWYgWyAiJHt4L2Vu
Y29kaW5nc30iID0gIiR7eH0iIF07IHRoZW4KCQkJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJS
QVJZX1BBVEh9OiR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikiIFwKCQkJCSR7Uk9PVH0vdXNyL2Jp
bi9ta2ZvbnRkaXIgXAoJCQkJCS1lICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncyBc
CgkJCQkJLWUgJHtST09UfS91c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzL2xhcmdlIFwKCQkJCQkt
LSAke3h9CgkJCWZpCgkJZG9uZQoJZWVuZCAwCgoJZWJlZ2luICJHZW5lcmF0aW5nIFhmdCBjYWNo
ZSIKCQlmb3IgeCBpbiAkKGZpbmQgJHtST09UfS91c3Ivc2hhcmUvZm9udHMvKiAtbWF4ZGVwdGgg
MSAtdHlwZSBkKTsgZG8KCQkJWyAteiAiJChscyAke3h9LykiIF0gJiYgY29udGludWUKCQkJWyAi
JChscyAke3h9LykiID0gImZvbnRzLmNhY2hlLTEiIF0gJiYgY29udGludWUKCgkJCSMgT25seSBn
ZW5lcmF0ZSBYZnRDYWNoZSBmaWxlcyBpZiB0aGVyZSBhcmUgdHJ1ZXR5cGUKCQkJIyBmb250cyBw
cmVzZW50IC4uLgoJCQlpZiBbICIke3gvZW5jb2RpbmdzfSIgPSAiJHt4fSIgLWEgXAoJCQkgICAg
IC1uICIkKGZpbmQgJHt4fSAtaW5hbWUgJyouW290cHNdW3BmdF1bY2ZhZF0nIC1wcmludCkiIF07
IHRoZW4KCQkJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZX1BBVEh9OiR7Uk9PVH0vdXNy
LyQoZ2V0X2xpYmRpcikiIFwKCQkJCSR7Uk9PVH0vdXNyL2Jpbi94ZnRjYWNoZSAke3h9ICY+IC9k
ZXYvbnVsbAoJCQlmaQoJCWRvbmUKCWVlbmQgMAoKCWViZWdpbiAiRml4aW5nIHBlcm1pc3Npb25z
IgoJCWZpbmQgJHtST09UfS91c3Ivc2hhcmUvZm9udHMvIC10eXBlIGYgLW5hbWUgJ2ZvbnQuKicg
XAoJCQktZXhlYyBjaG1vZCAwNjQ0IHt9IFw7CgllZW5kIDAKCgkjIGRhbmFybWFrIGZvdW5kIG91
dCB0aGF0IGZjLWNhY2hlIHNob3VsZCBiZSBydW4gQUZURVIgYWxsIHRoZSBhYm92ZQoJIyBzdHVm
ZiwgYXMgb3RoZXJ3aXNlIHRoZSBjYWNoZSBpcyBpbnZhbGlkLCBhbmQgaGFzIHRvIGJlIHJ1biBh
Z2FpbgoJIyBhcyByb290IGFueXdheQoJaWYgWyAteCAke1JPT1R9L3Vzci9iaW4vZmMtY2FjaGUg
XTsgdGhlbgoJCWViZWdpbiAiQ3JlYXRpbmcgRkMgZm9udCBjYWNoZSIKCQkJSE9NRT0iL3Jvb3Qi
ICR7Uk9PVH0vdXNyL2Jpbi9mYy1jYWNoZQoJCWVlbmQgMAoJZmkKfQoKc3dpdGNoX29wZW5nbF9p
bXBsZW0oKSB7CgkJIyBTd2l0Y2ggdG8gdGhlIHhvcmcgaW1wbGVtZW50YXRpb24uCgkJIyBVc2Ug
bmV3IG9wZW5nbC11cGRhdGUgdGhhdCB3aWxsIG5vdCByZXNldCB1c2VyIHNlbGVjdGVkCgkJIyBP
cGVuR0wgaW50ZXJmYWNlIC4uLgoJCWVjaG8KCQlsb2NhbCBvcGVuZ2xfaW1wbGVtPSIkKCR7Uk9P
VH0vdXNyL3NiaW4vb3BlbmdsLXVwZGF0ZSAtLWdldC1pbXBsZW1lbnRhdGlvbikiCgkJJHtST09U
fS91c3Ivc2Jpbi9vcGVuZ2wtdXBkYXRlIC0tdXNlLW9sZCAke1BOfQp9CgpyZW1vdmVfb2xkX2Nv
bXBvc2VfZmlsZXMoKSB7Cglmb3IgeCBpbiAkKGZpbmQgJHtST09UfS91c3IvJChnZXRfbGliZGly
KS9YMTEvbG9jYWxlLyAtbWluZGVwdGggMSAtdHlwZSBkKTsgZG8KCQkjIFJlbW92ZSBvbGQgY29t
cG9zZSBmaWxlcyB3ZSBtaWdodCBoYXZlIGNyZWF0ZWQgaW5jb3JyZWN0bHkKCQkjIENKSyBtdXN0
IG5vdCBoYXZlIHRoYXQgZmlsZSAob3RoZXJ3aXNlIFhJTSBkb24ndCB3b3JrcyBzb21lIHRpbWVz
KQoJCWNhc2UgJChiYXNlbmFtZSAke3h9KSBpbgoJCQlqYSp8a28qfHpoKikKCQkJCWlmIFsgLXIg
IiR7eH0vQ29tcG9zZSIgXTsgdGhlbgoJCQkJCXJtIC1mICR7eH0vQ29tcG9zZQoJCQkJZmkKCQkJ
CTs7CgkJZXNhYwoJZG9uZQp9CgpzZXR1cF90bXBfZmlsZXMoKSB7CgkjIFRoZXNlIG5lZWQgdG8g
YmUgb3duZWQgYnkgcm9vdCBhbmQgdGhlIGNvcnJlY3QgcGVybWlzc2lvbnMKCSMgKGJ1ZyAjODI4
MSkKCWxvY2FsIHg9IiIKCWZvciB4IGluICR7Uk9PVH0vdG1wLy57SUNFLFgxMX0tdW5peDsgZG8K
CQlpZiBbICEgLWQgJHt4fSBdOyB0aGVuCgkJCW1rZGlyIC1wICR7eH0KCQlmaQoKCQljaG93biBy
b290OndoZWVsICR7eH0KCQljaG1vZCAxNzc3ICR7eH0KCWRvbmUKfQoKcHJpbnRfaW5mbygpIHsK
CWVjaG8KCWVpbmZvICJQbGVhc2Ugbm90ZSB0aGF0IHRoZSB4Y3Vyc29ycyBhcmUgaW4gL3Vzci9z
aGFyZS9jdXJzb3JzLyR7UE59LiIKCWVpbmZvICJBbnkgY3VzdG9tIGN1cnNvciBzZXRzIHNob3Vs
ZCBiZSBwbGFjZWQgaW4gdGhhdCBkaXJlY3RvcnkuIgoJZWNobwoJZWluZm8gIklmIHlvdSB3aXNo
IHRvIHNldCBzeXN0ZW0td2lkZSBkZWZhdWx0IGN1cnNvcnMsIHBsZWFzZSBjcmVhdGUiCgllaW5m
byAiL3Vzci9sb2NhbC9zaGFyZS9jdXJzb3JzLyR7UE59L2RlZmF1bHQvaW5kZXgudGhlbWUiCgll
aW5mbyAid2l0aCBjb250ZW50OiBcIkluaGVyaXRzPXRoZW1lX25hbWVcIiBzbyB0aGF0IGZ1dHVy
ZSIKCWVpbmZvICJlbWVyZ2VzIHdpbGwgbm90IG92ZXJ3cml0ZSB0aG9zZSBzZXR0aW5ncy4iCgll
Y2hvCgllaW5mbyAiTGlzdGVuaW5nIG9uIFRDUCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IHdpdGgg
c3RhcnR4LiIKCWVpbmZvICJUbyBlbmFibGUgaXQsIGVkaXQgL3Vzci9iaW4vc3RhcnR4LiIKCWVj
aG8KCgllY2hvCglld2FybiAiQkVXQVJFOiIKCWV3YXJuICIvdXNyL1gxMVI2LyQoZ2V0X2xpYmRp
cikgaGFzIE1PVkVEIgoJZXdhcm4gInRvIC91c3IvJChnZXRfbGliZGlyKSIKCWV3YXJuICJSdW4g
ZXRjLXVwZGF0ZSB0byB1cGRhdGUgeW91ciBjb25maWcgZmlsZXMuIgoJZXdhcm4gIk9sZCBsb2Nh
dGlvbnMgZm9yIGFueXRoaW5nIGluIC91c3IvWDExUjYvJChnZXRfbGliZGlyKSIKCWV3YXJuICJh
cmUgZGVwcmVjYXRlZC4iCgllY2hvCgkjICgjNzY5ODUpCgllaW5mbyAiVmlzaXQgaHR0cDovL3d3
dy5nZW50b28ub3JnL2RvYy9lbi9pbmRleC54bWw/Y2F0aWQ9ZGVza3RvcCIKCWVpbmZvICJmb3Ig
bW9yZSBpbmZvcm1hdGlvbiBvbiBjb25maWd1cmluZyBYLiIKCgkjIFRyeSB0byBnZXQgcGVvcGxl
IHRvIHJlYWQgL3Vzci9YMTFSNi9saWJkaXIgbW92ZQoJZWJlZXAgNQoJZXBhdXNlIDEwCn0KCmZp
eF9saW5rcygpIHsKCSMgRml4IHByb2JsZW1hdGljIGxpbmtzCglpZiBbIC14ICR7Uk9PVH0vdXNy
L2Jpbi9Yb3JnIF07IHRoZW4KCQlsbiAtc25mIC4uL2JpbiAke1JPT1R9L3Vzci9iaW4vWDExCglm
aQp9Cg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85326</attachid>
            <date>2006-04-23 23:29 0000</date>
            <desc>xorg-x11-6.9.0-r1.ebuild</desc>
            <filename>xorg-x11-6.9.0-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA2IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L3gxMS1iYXNlL3hvcmcteDExL3hvcmcteDExLTYu
OS4wLmVidWlsZCx2IDEuMiAyMDA2LzA0LzAzIDIzOjEzOjUyIHNweWRlcm91cyBFeHAgJAoKIyBT
ZXQgVERGWF9SSVNLWSB0byAieWVzIiB0byBnZXQgMTYtYml0LCAxMDI0eDc2OCBvciBoaWdoZXIg
b24gbG93LW1lbW9yeQojIHZvb2RvbzMgY2FyZHMuCgojIExpYnJhcmllcyB3aGljaCBhcmUgbm93
IHN1cHBsaWVkIGluIHNoYXJlZCBmb3JtIHRoYXQgd2VyZSBub3QgaW4gdGhlIHBhc3QKIyBpbmNs
dWRlOiAgbGliRlMuc28sIGxpYkdMdy5zbywgbGliSTgxMFh2TUMuc28sIGxpYlhSZXMuc28sIGxp
Ylhmb250Y2FjaGUuc28sCiMgbGliWGluZXJhbWEuc28sIGxpYlhzcy5zbywgbGliWHZNQy5zbywg
bGliWHhmODZydXNoLnNvLCBsaWJmb250ZW5jLnNvLAojIGxpYnhrYmZpbGUuc28sIGxpYnhrYnVp
LnNvCgojIFRPRE8KIyAxIEp1bmUgMjAwNSA8c3B5ZGVyb3VzQGdlbnRvby5vcmc+CiMgICBUQVJH
RVQ6IG5vbmUKIwkJQ29uc2lkZXIgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcyBvbmx5LCB3aGVu
IGJvdGggYXJlIHByb3ZpZGVkCiMJCUNvbWJpbmUgZmluZCBsb29wcyBmb3IgIkNyZWF0aW5nIGZv
bnRzLnNjYWxlIGZpbGVzLCIgIkdlbmVyYXRpbmcKIwkJCWZvbnRzLmRpciBmaWxlcyBhbmQgIkdl
bmVyYXRpbmcgWGZ0IGNhY2hlIgojCQk8TXJfQm9uZXNfPiB0aGUgbG9vcCBpbiBwa2dfcG9zdGlu
c3QgZm9yIHJlbW92aW5nIENvbXBvc2UgY2FuIHByb2JhYmx5CiMJCQliZSBvbmUgbGluZSBvZiBi
YXNoIGV4cGFuc2lvbiBsaWtlIHJtIC1mICR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikvCiMJCQlY
MTEvbG9jYWxlL3tqYSp8a28qfHpoKn0vQ29tcG9zZQojCQlDbGVhbiB1cCBtaWdyYXRpb24gZnVu
Y3Rpb24KIwkJCS0gbG9vcCB0aHJvdWdoIGxpYiogaW5zdGVhZCBvZiByZXBldGl0aW9uCiMJCUZp
eCBkaXJlY3Rpb24gb2YgbGliIC0+IGxpYmRpciBzeW1saW5rCiMJCUdlbmVyYWxpemUgYW55IGZ1
bmN0aW9ucyB0aGF0IG1ha2Ugc2Vuc2UgdG8gZ2VuZXJhbGl6ZSAoaS5lLiwgYW55dGhpbmcKIwkJ
CXRoYXQgbWlnaHQgcmVhbGlzdGljYWxseSBzZWUgdXNlIGVsc2V3aGVyZSwgb3IgcmVwZXRpdGl2
ZWx5IGhlcmUpCmluaGVyaXQgZXV0aWxzIGZsYWctby1tYXRpYyB0b29sY2hhaW4tZnVuY3MgeDEx
IGxpbnV4LWluZm8gbXVsdGlsaWIKCgojIE1ha2Ugc3VyZSBQb3J0YWdlIGRvZXMgX05PVF8gc3Ry
aXAgc3ltYm9scy4gIFdlIHdpbGwgZG8gaXQgbGF0ZXIgYW5kIG1ha2Ugc3VyZQojIHRoYXQgb25s
eSB3ZSBvbmx5IHN0cmlwIHN0dWZmIHRoYXQgYXJlIHNhZmUgdG8gc3RyaXAgLi4uClJFU1RSSUNU
PSJub3N0cmlwIgoKIyBJVVNFPSJnYXRvcyIgZGlzYWJsZWQgYmVjYXVzZSBnYXRvcyBpcyBicm9r
ZW4gb24gfjQuNCBub3cgKDMxIEphbiAyMDA0KQpJVVNFPSIzZGZ4IGJpdG1hcC1mb250cyBjamsg
ZGVidWcgZG9jIGZvbnQtc2VydmVyIGluc2VjdXJlLWRyaXZlcnMgaXB2NiBtaW5pbWFsCglubHMg
bm9jeHggb3BlbmdsIHBhbSBzZGsgc3RhdGljIHRydWV0eXBlLWZvbnRzIHR5cGUxLWZvbnRzIHVj
bGliYyB4cHJpbnQgeHYiCiMgSVVTRV9JTlBVVF9ERVZJQ0VTPSJzeW5hcHRpY3Mgd2Fjb20iCgpG
SUxFU19WRVI9IjAuMSIKUEFUQ0hfVkVSPSIwLjEuMSIKWENVUl9WRVI9IjAuMy4xIgpYRlNGVF9F
TkNfVkVSPSIwLjEiCgpTPSR7V09SS0RJUn0veGMKCkhPTUVQQUdFPSJodHRwOi8veG9yZy5mcmVl
ZGVza3RvcC5vcmcvIgoKIyBNaXNjIHBhdGNoZXMgd2UgbWF5IG5lZWQgdG8gZmV0Y2ggLi4KWF9Q
QVRDSEVTPSJodHRwOi8vZGV2LmdlbnRvby5vcmcvfnNweWRlcm91cy8ke1BOfS9wYXRjaHNldHMv
JHtQVn0vJHtQfS1wYXRjaGVzLSR7UEFUQ0hfVkVSfS50YXIuYnoyCglodHRwOi8vZGV2LmdlbnRv
by5vcmcvfmpvc2h1YWJhZXJnZW4vZGlzdGZpbGVzLyR7UH0tcGF0Y2hlcy0ke1BBVENIX1ZFUn0u
dGFyLmJ6MgoJbWlycm9yOi8vZ2VudG9vLyR7UH0tcGF0Y2hlcy0ke1BBVENIX1ZFUn0udGFyLmJ6
MiIKCkdFTlRPT19GSUxFUz0iaHR0cDovL2Rldi5nZW50b28ub3JnL35zcHlkZXJvdXMvJHtQTn0v
cGF0Y2hzZXRzLyR7UFZ9LyR7UH0tZmlsZXMtJHtGSUxFU19WRVJ9LnRhci5iejIKCWh0dHA6Ly9k
ZXYuZ2VudG9vLm9yZy9+Y3lmcmVkL2Rpc3RmaWxlcy8ke1B9LWZpbGVzLSR7RklMRVNfVkVSfS50
YXIuYnoyCgltaXJyb3I6Ly9nZW50b28vJHtQfS1maWxlcy0ke0ZJTEVTX1ZFUn0udGFyLmJ6MiIK
ClNSQ19VUkk9IiFtaW5pbWFsPyAoIG1pcnJvcjovL2dlbnRvby9ldXJvZm9udHMtWDExLnRhci5i
ejIgKQoJZm9udC1zZXJ2ZXI/ICggaHR0cDovL2Rldi5nZW50b28ub3JnL35jeWZyZWQveG9yZy8k
e1BOfS9wYXRjaHNldHMvJHtQVn0veGZzZnQtZW5jb2RpbmdzLSR7WEZTRlRfRU5DX1ZFUn0udGFy
LmJ6MiApCgkhbWluaW1hbD8gKCBtaXJyb3I6Ly9nZW50b28vZ2VudG9vLWN1cnNvcnMtdGFkLSR7
WENVUl9WRVJ9LnRhci5iejIgKQoJbmxzPyAoIG1pcnJvcjovL2dlbnRvby9nZW1pbmkta29pOC11
LnRhci5iejIgKQoJJHtHRU5UT09fRklMRVN9Cgkke1hfUEFUQ0hFU30KCWh0dHA6Ly94b3JnLmZy
ZWVkZXNrdG9wLm9yZy9yZWxlYXNlcy9YMTFSJHtQVn0vc3JjLXNpbmdsZS9YMTFSJHtQVn0tc3Jj
LnRhci5iejIiCgpMSUNFTlNFPSJBZG9iZS1YIENJRCBERUMgREVDLTIgSUJNLVggTlZJRElBLVgg
TmV0QlNEIFNHSSBVQ0ItTEJMIFhDLTIKCWJpZ2Vsb3ctaG9sbWVzLXVydy1nbWJoLWx1eGkgY2hy
aXN0b3BoZXItZy1kZW1ldHJpb3UgbmF0aW9uYWwtc2VtaWNvbmR1Y3RvcgoJbm9raWEgdGVrdHJv
bml4IHRoZS1vcGVuLWdyb3VwIHRvZGQtYy1taWxsZXIgeC10cnVldHlwZSB4ZnJlZTg2LTEuMAoJ
TUlUIFNHSS1CIEJTRCB8fCAoIEZUTCBHUEwtMiApIgpTTE9UPSIwIgpLRVlXT1JEUz0ifmFscGhh
IH5hbWQ2NCB+YXJtIH5ocHBhIH5pYTY0IH5taXBzIH5wcGMgfnBwYzY0IH5zcGFyYyB+eDg2IgoK
REVQRU5EPSI+PXN5cy1saWJzL25jdXJzZXMtNS4xCgk+PXN5cy1saWJzL3psaWItMS4xLjMtcjIK
CT49c3lzLWRldmVsL2ZsZXgtMi41LjRhLXI1CglzeXMtYXBwcy9ncm9mZgoJPj1kZXYtbGlicy9l
eHBhdC0xLjk1LjMKCT49bWVkaWEtbGlicy9mcmVldHlwZS0yLjEuOAoJPj1tZWRpYS1saWJzL2Zv
bnRjb25maWctMi4xLXIxCglvcGVuZ2w/ICggPj14MTEtYmFzZS9vcGVuZ2wtdXBkYXRlLTIuMi4w
ICkKCSFub2N4eD8gKCA+PXgxMS1hcHBzL3R0bWtmZGlyLTMuMC45LXIyICkKCT49c3lzLWFwcHMv
c2VkLTQKCXVzZXJsYW5kX0dOVT8gKCBzeXMtYXBwcy91dGlsLWxpbnV4ICkKCWRldi1sYW5nL3Bl
cmwKCW1lZGlhLWxpYnMvbGlicG5nCgkhPD1hcHAtZW11bGF0aW9uL2VtdWwtbGludXgteDg2LXhs
aWJzLTEuMi1yMwoJIXZpcnR1YWwveGZ0IgojIHgxMS1saWJzL3hmdCAtLSBibG9ja2VkIGJlY2F1
c2Ugb2YgaW50ZXJmZXJlbmNlIHdpdGggeG9yZydzCiMgRkJTRFRPRE86IG5lZWQgdG8gY2hlY2sg
dGhhdCBYIGlzIG5vdCBwdWxsZWQgaW4gYmVmb3JlIGZyZWVic2QtdWJpbiBmb3IgJ2NvbCcgcHJl
c2VuY2UKClJERVBFTkQ9IgoJCT49c3lzLWxpYnMvemxpYi0xLjEuMy1yMgoJCT49c3lzLWRldmVs
L2ZsZXgtMi41LjRhLXI1CgkJPj1kZXYtbGlicy9leHBhdC0xLjk1LjMKCQk+PW1lZGlhLWxpYnMv
ZnJlZXR5cGUtMi4xLjgKCQk+PW1lZGlhLWxpYnMvZm9udGNvbmZpZy0yLjEtcjEKCQlvcGVuZ2w/
ICggPj14MTEtYmFzZS9vcGVuZ2wtdXBkYXRlLTIuMi4wICkKCQkhbm9jeHg/ICggPj14MTEtYXBw
cy90dG1rZmRpci0zLjAuOS1yMiApCgkJbWVkaWEtbGlicy9saWJwbmcKCQk+PXN5cy1saWJzL25j
dXJzZXMtNS4xCgkJITw9YXBwLWVtdWxhdGlvbi9lbXVsLWxpbnV4LXg4Ni14bGlicy0xLjItcjMK
CQkhdmlydHVhbC94ZnQiCgpQREVQRU5EPSJ4ODY/ICgKCQkJaW5wdXRfZGV2aWNlc19zeW5hcHRp
Y3M/ICggeDExLWRyaXZlcnMvc3luYXB0aWNzICkKCQkJaW5wdXRfZGV2aWNlc193YWNvbT8gKCB4
MTEtbWlzYy9saW51eHdhY29tICkKCQkpCgkJM2RmeD8gKCA+PW1lZGlhLWxpYnMvZ2xpZGUtdjMt
My4xMCApCgkJeDExLXRlcm1zL3h0ZXJtIgoKUFJPVklERT0idmlydHVhbC94MTEKCW9wZW5nbD8g
KCB2aXJ0dWFsL29wZW5nbAoJCXZpcnR1YWwvZ2x1ICkKCXZpcnR1YWwveGZ0IgoKREVTQ1JJUFRJ
T049IkFuIFgxMSBpbXBsZW1lbnRhdGlvbiBtYWludGFpbmVkIGJ5IHRoZSBYLk9yZyBGb3VuZGF0
aW9uIgoKcGtnX3NldHVwKCkgewoJRklMRVNfRElSPSIke1dPUktESVJ9L2ZpbGVzIgoJUEFUQ0hE
SVI9IiR7V09SS0RJUn0vcGF0Y2giCglFWENMVURFRD0iJHtQQVRDSERJUn0vZXhjbHVkZWQiCgoJ
IyBTZXQgdXAgQ0ZMQUctcmVsYXRlZCB0aGluZ3MKCWNmbGFnX3NldHVwCgoJIyBTZWUgYnVnICMz
NTQ2OCwgY2lyY3VsYXIgcGFtLVgxMSBkZXAKCWNoZWNrX3BhbQoKCSMgTG9vayBmb3IgaW52YWxp
ZC9kYW5nZXJvdXMgVVNFIGZsYWdzIGFuZCBjb21iaW5hdGlvbnMKCWNoZWNrX3VzZV9jb21ib3MK
CglzZXR1cF9tdWx0aWxpYgoKCSMgeGZzIHVzZXIKCWlmIHVzZSBmb250LXNlcnZlcjsgdGhlbgoJ
CWVuZXdncm91cCB4ZnMgMzMKCQllbmV3dXNlciB4ZnMgMzMgLTEgL2V0Yy9YMTEvZnMgeGZzCglm
aQp9CgpzcmNfdW5wYWNrKCkgewoJdW5wYWNrX2FsbAoKCXBhdGNoX3NldHVwCgoJZG9fcGF0Y2gK
Cglob3N0X2RlZl9zZXR1cAoKCXVzZV9zcGVjaWZpY19oYWNrcwp9CgpzcmNfY29tcGlsZSgpIHsK
CWJ1aWxkCn0KCnNyY19pbnN0YWxsKCkgewoJaW5zdGFsbF9ldmVyeXRoaW5nCgoJYmFja3dhcmRf
Y29tcGF0X2luc3RhbGwKCglmaXhfcGVybWlzc2lvbnMKCgkjIFdlIHphcCBvdXIgQ0ZMQUdTIGlu
IHRoZSBob3N0LmRlZiBmaWxlLCBhcyBoYXJkY29kZWQgQ0ZMQUdTIGNhbgoJIyBtZXNzIHVwIG90
aGVyIHRoaW5ncyB0aGF0IHVzZSB4bWttZgoJemFwX2hvc3RfZGVmX2NmbGFncwoKCSMgRVVSTyBz
dXBwb3J0CglpZiAhIHVzZSBtaW5pbWFsOyB0aGVuCgkJYWRkX2V1cm9fc3VwcG9ydAoJZmkKCglz
ZXR1cF9zdGFuZGFyZF9zeW1saW5rcwoKCWlmIHVzZSBvcGVuZ2w7IHRoZW4KCQlmaXhfb3Blbmds
X3N5bWxpbmtzCglmaQoKCWxpYnRvb2xfYXJjaGl2ZV9pbnN0YWxsCgoJY29tcG9zZV9maWxlc19p
bnN0YWxsCgoJaWYgdXNlIGZvbnQtc2VydmVyOyB0aGVuCgkJZW5jb2RlX3hmc2Z0X2ZpbGVzCglm
aQoKCWlmIHVzZSBubHM7IHRoZW4KCQlrb2k4X2ZvbnRzX2luc3RhbGwKCWZpCgoJZXRjX2ZpbGVz
X2luc3RhbGwKCglpZiB1c2Ugb3BlbmdsOyB0aGVuCgkJZHluYW1pY19saWJnbF9pbnN0YWxsCglm
aQoKCWZpeF9saWJ0b29sX2xpYmRpcl9wYXRocyAiJChmaW5kICR7RH0gLW5hbWUgKi5sYSkiCgoJ
Y3Vyc29yX2luc3RhbGwKCglzdHJpcF9leGVjcwoKCWlmIHVzZSBtaW5pbWFsOyB0aGVuCgkJbWlu
aW1hbF9pbnN0YWxsCglmaQoKCSMgVEVNUE9SQVJZIGhhY2s6IHNob3VsZCBiZSBwYXRjaGVkIGlu
LCBpZiBpdCdzIG5vdCBhbHJlYWR5CgkjIEZvciBCYXR0b3Vzc2FpJ3MgZ2F0b3Mgc3R1ZmZzOgoJ
aWYgdXNlIHNkazsgdGhlbgoJCWluc2ludG8gL3Vzci8kKGdldF9saWJkaXIpL1NlcnZlci9pbmNs
dWRlCgkJZG9pbnMgJHtTfS9leHRyYXMvZHJtL3NoYXJlZC9kcm0uaAoJZmkKCgl4cHJpbnRfaW5z
dGFsbAoKCWNvbmZpZ19maWxlc19pbnN0YWxsCn0KCnBrZ19wcmVpbnN0KCkgewoJIyBEbyBtaWdy
YXRpb24gYmVmb3JlIGFueXRoaW5nIGVsc2UsIHNvIHdlIGRvIGFsbCB0aGUgcmVzdCBpbnNpZGUg
dGhlCgkjIHN5bWxpbmsKCgkjIEdldCByaWQgb2YgInN0YW5kYXJkIiBzeW1saW5rcwoJIyBXZSBj
YW4ndCBvdmVyd3JpdGUgc3ltbGluayB3aXRoIGRpcmVjdG9yeSB3LyAkKG12IC1mKQoJWyAtTCAk
e1JPT1R9dXNyLyQoZ2V0X2xpYmRpcikvWDExIF0gXAoJCSYmIHJtICR7Uk9PVH11c3IvJChnZXRf
bGliZGlyKS9YMTEKCVsgLUwgJHtST09UfXVzci9pbmNsdWRlL1gxMSBdIFwKCQkmJiBybSAke1JP
T1R9dXNyL2luY2x1ZGUvWDExCglbIC1MICR7Uk9PVH11c3IvaW5jbHVkZS9HTCBdIFwKCQkmJiBy
bSAke1JPT1R9dXNyL2luY2x1ZGUvR0wKCVsgLUwgJHtST09UfXVzci9iaW4vWDExIF0gXAoJCSYm
IHJtICR7Uk9PVH11c3IvYmluL1gxMQoJIyBHZXQgcmlkIG9mIHNvbWUgYXBwYXJlbnQgYXJ0aWZh
Y3RzIG9mIG1pZ3JhdGlvbgoJWyAtTCAke1JPT1R9dXNyL2luY2x1ZGUvR0wvR0wgXSBcCgkJJiYg
cm0gJHtST09UfXVzci9pbmNsdWRlL0dML0dMCglbIC1MICR7Uk9PVH11c3IvaW5jbHVkZS9YMTEv
WDExIF0gXAoJCSYmIHJtICR7Uk9PVH11c3IvaW5jbHVkZS9YMTEvWDExCglbIC1kICR7Uk9PVH11
c3Ivc2hhcmUvZm9udHMvZm9udHMgXSBcCgkJJiYgcm0gLXJmICR7Uk9PVH11c3Ivc2hhcmUvZm9u
dHMvZm9udHMKCgkjIE5vIG5lZWQgdG8gZG8gdGhpcywgaWYgaXQncyBhbHJlYWR5IGJlZW4gZG9u
ZQoJIyBBbHNvLCBpdCdsbCBvdmVyd3JpdGUgYSB0b24gb2Ygc3R1ZmYgYmVjYXVzZSBpdCB3b24n
dCByZWFsaXplIC91c3IvWDExUjYKCSMgaXMgYSBzeW1saW5rLgoJaWYgWyAhIC1MICIvdXNyL1gx
MVI2IiBdOyB0aGVuCgkJIyBNaWdyYXRlIHN0dWZmIGluIC91c3IvWDExUjYgdG8gL3VzcgoJCWxv
Y2FsIERJUiBESVJTCgkJRElSUz0iYmluIGluY2x1ZGUgbGliIgoJCWlmIFsgImxpYiIgIT0gIiQo
Z2V0X2xpYmRpcikiIF07IHRoZW4KCQkJRElSUz0iJHtESVJTfSAkKGdldF9saWJkaXIpIgoJCWZp
CgkJZm9yIERJUiBpbiAke0RJUlN9OyBkbwoJCQltaWdyYXRlIC91c3IvWDExUjYvJHtESVJ9IC91
c3IvJHtESVJ9CgkJZG9uZQoJCSMgQ2FuJ3QgZG8gdGhpcyBpbiB0aGUgb3RoZXIgbG9vcCBiZWNh
dXNlIG9mIGRpZmZlcmVudCBzdGFydCBhbmQgZW5kCgkJbWlncmF0ZSAvdXNyL1gxMVI2L21hbiAv
dXNyL3NoYXJlL21hbgoJZmkKCgl1cGRhdGVfY29uZmlnX2ZpbGVzCgoJY2xlYW51cF9mb250cwoK
CSMgU2VlIGFib3ZlIGNvbW1lbnQgZm9yIHRoZSBzYW1lIHRlc3QKCWlmIFsgISAtTCAiL3Vzci9Y
MTFSNiIgXTsgdGhlbgoJCSMgTmVlZHMgdG8gaGFwcGVuIGFmdGVyIGNsZWFudXBfZm9udHMoKQoJ
CW1pZ3JhdGUgL3Vzci9YMTFSNi8kKGdldF9saWJkaXIpL1gxMS9mb250cyAvdXNyL3NoYXJlL2Zv
bnRzCgoJCSMgR2V0IHJpZCBvZiBzeW1saW5rcyBzbyB3ZSBjYW4gbWlncmF0ZSAvdXNyL1gxMVI2
IHdpdGhvdXQgZHlpbmcgd2hlbiBhCgkJIyBzeW1saW5rIHRyaWVzIHRvIGNvcHkgdG8gYSBkaXIK
CQllaW5mbyAiUHJlcGFyaW5nIGZvciAvdXNyL1gxMVI2IC0+IC91c3IgbWlncmF0aW9uLi4uIgoJ
CWxvY2FsIExJTksgTElOS1MKCQlMSU5LUz0iYmluIGluY2x1ZGUgbGliIG1hbiBzaGFyZS9pbmZv
IgoJCWlmIFsgImxpYiIgIT0gIiQoZ2V0X2xpYmRpcikiIF07IHRoZW4KCQkJTElOS1M9IiR7TElO
S1N9ICQoZ2V0X2xpYmRpcikiCgkJZmkKCQlmb3IgTElOSyBpbiAke0xJTktTfTsgZG8KCQkJaWYg
WyAtTCAiJHtST09UfS91c3IvWDExUjYvJHtMSU5LfSIgXTsgdGhlbgoJCQkJcm0gLWZ2ICR7Uk9P
VH0vdXNyL1gxMVI2LyR7TElOS30KCQkJZmkKCQlkb25lCgkJZWluZm8gIlJlbWFpbmluZyBzeW1s
aW5rcyBpbiAvdXNyL1gxMVI2OiIKCQlmaW5kICR7Uk9PVH0vdXNyL1gxMVI2LyAtdHlwZSBsCgoJ
CSMgV29vaG9vLCBub3RoaW5nIGluIC91c3IvWDExUjYgYWZ0ZXIgdGhpcwoJCW1pZ3JhdGUgL3Vz
ci9YMTFSNiAvdXNyCglmaQoKCW1vdmVfYXBwX2RlZmF1bHRzX3RvX2V0YwoKCW1vdmVfeGtiX3Rv
X3VzcgoKCSMgUnVuIHRoaXMgZXZlbiBmb3IgVVNFPS1vcGVuZ2wsIHRvIGNsZWFuIG91dCBvbGQg
c3R1ZmYgZnJvbSBwb3NzaWJsZQoJIyBVU0U9b3BlbmdsIGJ1aWxkCglkeW5hbWljX2xpYmdsX3By
ZWluc3QKfQoKcGtnX3Bvc3RpbnN0KCkgewoJZW52LXVwZGF0ZQoKCWlmIFsgIiR7Uk9PVH0iID0g
Ii8iIF07IHRoZW4KCQlmb250X3NldHVwCgoJCWlmIHVzZSBvcGVuZ2w7IHRoZW4KCQkJc3dpdGNo
X29wZW5nbF9pbXBsZW0KCQlmaQoJZmkKCglyZW1vdmVfb2xkX2NvbXBvc2VfZmlsZXMKCglzZXR1
cF90bXBfZmlsZXMKCglwcmludF9pbmZvCn0KCnBrZ19wb3N0cm0oKSB7CglmaXhfbGlua3MKfQoK
IyMjIyMjIyMjIyMjIyMjCiMgcGtnX3NldHVwKCkgIwojIyMjIyMjIyMjIyMjIyMKCmNmbGFnX3Nl
dHVwKCkgewoJIyBTZXQgdXAgQ0ZMQUdTCglmaWx0ZXItZmxhZ3MgIi1mdW5yb2xsLWxvb3BzIgoK
CUFMTE9XRURfRkxBR1M9Ii1mc3RhY2stcHJvdGVjdG9yIC1tYXJjaCAtbWNwdSAtbXR1bmUgLU8g
LU8wIC1PMSAtTzIgLU8zIC1PcyIKCUFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLXBp
cGUgLWZvbWl0LWZyYW1lLXBvaW50ZXIiCglBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxBR1N9
IC1tb21pdC1sZWFmLWZyYW1lLXBvaW50ZXIiCglBTExPV0VEX0ZMQUdTPSIke0FMTE9XRURfRkxB
R1N9IC1nIC1nMCAtZzEgLWcyIC1nMyIKCUFMTE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30g
LWdnZGIgLWdnZGIwIC1nZ2RiMSAtZ2dkYjIgLWdnZGIzIgoJIyBhcmNoLXNwZWNpZmljIHNlY3Rp
b24gYWRkZWQgYnkgcG9wdWxhciBkZW1hbmQKCWNhc2UgIiR7QVJDSH0iIGluCgkJbWlwcykJQUxM
T1dFRF9GTEFHUz0iJHtBTExPV0VEX0ZMQUdTfSAtbWlwczEgLW1pcHMyIC1taXBzMyAtbWlwczQg
LW1hYmkiCgkJCTs7CgkJIyAtZm9taXQtZnJhbWUtcG9pbnRlciBrbm93biB0byBicmVhayB0aGlu
Z3MgYW5kIGlzIHBvaW50bGVzcwoJCSMgYWNjb3JkaW5nIHRvIGNpYXJhbm0KCQkjIEFuZCBoYXJk
ZW5lZCBjb21waWxlciBtdXN0IGJlIHNvZnRlbmVkLiAtLSBmbWNjb3IsIDIwLnZpaWkuMDQKCQlz
cGFyYykJZmlsdGVyLWZsYWdzICItZm9taXQtZnJhbWUtcG9pbnRlciIgIi1tb21pdC1sZWFmLWZy
YW1lLXBvaW50ZXIiCgkJCWlmIFtbICR7QUJJfSA9PSAic3BhcmM2NCIgXV07IHRoZW4KCQkJCUFM
TE9XRURfRkxBR1M9IiR7QUxMT1dFRF9GTEFHU30gLURfX3NwYXJjX3Y5X18gLURfX2xpbnV4X3Nw
YXJjXzY0X18iCgkJCQlhcHBlbmQtZmxhZ3MgLURfX3NwYXJjX3Y5X18gLURfX2xpbnV4X3NwYXJj
XzY0X18KCQkJZmkKCQkJOzsKCQkjIGdjYy0zLjMuMiBjYXVzZXMgaW52YWxpZCBpbnNuIGVycm9y
CgkJaHBwYSApIHJlcGxhY2UtY3B1LWZsYWdzIDIuMCAxLjAKCQkJOzsKCWVzYWMKCgkjIFJlY2Vu
dGx5IHRoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHN0YWJpbGl0eSBwcm9ibGVtIGluIEdlbnRvby1s
YW5kLiAgTWFueQoJIyB0aGluZ3MgY2FuIGJlIHRoZSBjYXVzZSB0byB0aGlzLCBidXQgSSBiZWxp
ZXZlIHRoYXQgaXQgaXMgZHVlIHRvIGdjYzMKCSMgc3RpbGwgaGF2aW5nIGlzc3VlcyB3aXRoIG9w
dGltaXphdGlvbnMsIG9yIHdpdGggaXQgbm90IGZpbHRlcmluZyBiYWQKCSMgY29tYmluYXRpb25z
IChwcm90ZWN0aW5nIHRoZSB1c2VyIG1heWJlIGZyb20gdGhlbXNlbHZlcykgeWV0LgoJIwoJIyBU
aGlzIGNhbiBjbGVhcmx5IGJlIHNlZW4gaW4gbGFyZ2UgYnVpbGRzIGxpa2UgZ2xpYmMsIHdoZXJl
IHRvbyBhZ2dyZXNzaXZlCgkjIENGTEFHUyBjYXVzZSB0aGUgdGVzdHMgdG8gZmFpbCBtaXNlcmJs
eS4KCSMKCSMgUXVvdGUgZnJvbSBOaWNrIEpvbmVzIDxjYXJwYXNraUBnZW50b28ub3JnPiwgd2hv
IGluIG15IG9waW5pb24KCSMga25vd3Mgd2hhdCBoZSBpcyB0YWxraW5nIGFib3V0OgoJIwoJIyAg
IFBlb3BsZSByZWFsbHkgc2hvdWxkbid0IGZvcmNlIGNvZGUtc3BlY2lmaWMgb3B0aW9ucyBvbi4u
LiBJdCdzIGEKCSMgICBiYWQgaWRlYS4gVGhlIC1tYXJjaCBvcHRpb25zIGFyZW4ndCBqdXN0IHRv
IGxvb2sgcHJldHR5LiBUaGV5IGVuYWJsZQoJIyAgIG9wdGlvbnMgdGhhdCBhcmUgc2Vuc2libGUg
KGFuZCBpbmNsdWRlIHNzZSxtbXgsM2Rub3cgd2hlbiBhcHByb3ByaWF0ZSkuCgkjCgkjIFRoZSBu
ZXh0IGNvbW1hbmQgc3RyaXBzIENGTEFHUyBhbmQgQ1hYRkxBR1MgZnJvbSBuZWFybHkgYWxsIGZs
YWdzLiAgSWYKCSMgeW91IGRvIG5vdCBsaWtlIGl0LCBjb21tZW50IGl0LCBidXQgZG8gbm90IGJ1
Z3JlcG9ydCBpZiB5b3UgcnVuIGludG8KCSMgcHJvYmxlbXMuCgkjCgkjIDxhemFyYWhAZ2VudG9v
Lm9yZz4gKDEzIE9jdCAyMDAyKQoJc3RyaXAtZmxhZ3MKfQoKY2hlY2tfcGFtKCkgewoJaWYgdXNl
IHBhbSAmJiBoYXNfdmVyc2lvbiB4MTEtYmFzZS8ke1BOfTsgdGhlbgoJCWVpbmZvICJQcmV2aW91
cyAke1BOfSBpbnN0YWxsYXRpb24gZGV0ZWN0ZWQuIgoJCWVpbmZvICJFbmFibGluZyBQQU0gZmVh
dHVyZXMgaW4gJHtQTn0uIgoJZWxzZQoJCWVpbmZvICJQcmV2aW91cyAke1BOfSBpbnN0YWxsYXRp
b24gTk9UIGRldGVjdGVkLiIKCQllaW5mbyAiRGlzYWJsaW5nIFBBTSBmZWF0dXJlcyBpbiAke1BO
fS4iCgkJZWluZm8gIllvdSBtdXN0IHJlbWVyZ2UgJHtQTn0gdG8gZW5hYmxlIHBhbS4iCgkJZWlu
Zm8gIlNlZSBodHRwOi8vYnVncy5nZW50b28ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTQ2OC4iCglm
aQp9CgpjaGVja191c2VfY29tYm9zKCkgewoJaWYgdXNlIHN0YXRpYzsgdGhlbgoJCSMgQSBzdGF0
aWMgYnVpbGQgZGlzYWxsb3dzIGJ1aWxkaW5nIHRoZSBTREsuCgkJIyBTZWUgY29uZmlnL3hmODYu
cnVsZXMuCgkJaWYgdXNlIHNkazsgdGhlbgoJCQlkaWUgIlRoZSBzdGF0aWMgVVNFIGZsYWcgaXMg
aW5jb21wYXRpYmxlIHdpdGggdGhlIHNkayBVU0UgZmxhZy4iCgkJZmkKCWZpCgoJIyAoIzc3OTQ5
KQoJaWYgdXNlIG1pbmltYWwgJiYgdXNlIGRvYzsgdGhlbgoJCWRpZSAiVGhlIG1pbmltYWwgYW5k
IGRvYyBVU0UgZmxhZ3MgYXJlIGluY29tcGF0aWJsZSBhbmQgcmVzdWx0IGluIGEgZGVhZCBidWls
ZC4iCglmaQoKCWlmIHVzZSB4diAmJiAhIHVzZSBvcGVuZ2w7IHRoZW4KCQllZXJyb3IgIlNlZSBo
dHRwOi8vYnVncy5nZW50b28ub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk5NiIKCQllZXJyb3IgIlRo
ZSB4diBVU0UgZmxhZyBjdXJyZW50bHkgcmVxdWlyZXMgdGhlIG9wZW5nbCBmbGFnLiIKCQlkaWUg
IlRoaXMgaXMgYSBrbm93biBidWcuIERvIG5vdCByZXBvcnQgaXQuIgoJZmkKCglpZiB1c2Ugb3Bl
bmdsICYmICEgdXNlIHh2OyB0aGVuCgkJZWVycm9yICJTZWUgaHR0cDovL2J1Z3MuZ2VudG9vLm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzY5MzYiCgkJZWVycm9yICJUaGUgb3BlbmdsIFVTRSBmbGFnIGN1
cnJlbnRseSByZXF1aXJlcyB0aGUgeHYgZmxhZy4iCgkJZGllICJUaGlzIGlzIGEga25vd24gYnVn
LiBEbyBub3QgcmVwb3J0IGl0LiIKCWZpCgoJIyBFY2hvIGEgbWVzc2FnZSB0byB0aGUgdXNlciBh
Ym91dCBiaXRtYXAtZm9udHMKCWlmICEgdXNlIGJpdG1hcC1mb250czsgdGhlbgoJCWV3YXJuICJQ
bGVhc2UgZW1lcmdlIHRoaXMgd2l0aCBVU0U9XCJiaXRtYXAtZm9udHNcIiB0byBlbmFibGUiCgkJ
ZXdhcm4gIjc1ZHBpIGFuZCAxMDBkcGkgZm9udHMuICBZb3VyIEdUSystMS4yIGZvbnRzIG1heSBs
b29rIgoJCWV3YXJuICJzY3Jld3kgb3RoZXJ3aXNlIgoKCQllYmVlcCA1CgkJZXBhdXNlIDEwCglm
aQp9CgpzZXR1cF9tdWx0aWxpYigpIHsKCSMgb24gYW1kNjQgd2UgbmVlZCAvdXNyL2xpYjY0L1gx
MS9sb2NhbGUvbGliIHRvIGJlIGEgc3ltbGluawoJIyBjcmVhdGVkIGJ5IHRoZSBlbXVsIGxpYiBl
YnVpbGQgaW4gb3JkZXIgZm9yIGFkb2JlIGFjcm9iYXQsIHN0YXJvZmZpY2UsCgkjIGFuZCBhIGZl
dyBvdGhlciBhcHBzIHRvIHdvcmsuCglpZiAhIGhhc19tdWx0aWxpYl9wcm9maWxlOyB0aGVuCgkJ
dXNlIGFtZDY0ICYmIGdldF9saWJkaXJfb3ZlcnJpZGUgbGliNjQKCWZpCn0KCiMjIyMjIyMjIyMj
IyMjIyMKIyBzcmNfdW5wYWNrKCkgIwojIyMjIyMjIyMjIyMjIyMjCgp1bnBhY2tfYWxsKCkgewoJ
IyBVbnBhY2sgc291cmNlIGFuZCBwYXRjaGVzCgllYmVnaW4gIlVucGFja2luZyAke1BWfSBzb3Vy
Y2UiCgkJdW5wYWNrIFgxMVIke1BWfS1zcmMudGFyLmJ6MiA+IC9kZXYvbnVsbAoJZWVuZCAwCgoJ
ZWJlZ2luICJVbnBhY2tpbmcgR2VudG9vIGZpbGVzIGFuZCBwYXRjaGVzIgoJCXVucGFjayAke1B9
LWZpbGVzLSR7RklMRVNfVkVSfS50YXIuYnoyID4gL2Rldi9udWxsCgkJdW5wYWNrICR7UH0tcGF0
Y2hlcy0ke1BBVENIX1ZFUn0udGFyLmJ6MiA+IC9kZXYvbnVsbAoJZWVuZCAwCgoJaWYgISB1c2Ug
bWluaW1hbDsgdGhlbgoJCSMgVW5wYWNrIFRhRCdzIGdlbnRvbyBjdXJzb3JzCgkJZWJlZ2luICJV
bnBhY2tpbmcgR2VudG9vIGN1cnNvcnMiCgkJCXVucGFjayBnZW50b28tY3Vyc29ycy10YWQtJHtY
Q1VSX1ZFUn0udGFyLmJ6MiA+IC9kZXYvbnVsbAoJCWVlbmQgMAoJZmkKCgkjIFVucGFjayBleHRy
YSBmb250cyBzdHVmZiBmcm9tIE1hbmRyYWtlCgllYmVnaW4gIlVucGFja2luZyBmb250cyIKCQlp
ZiB1c2UgbmxzOyB0aGVuCgkJCXVucGFjayBnZW1pbmkta29pOC11LnRhci5iejIgPiAvZGV2L251
bGwKCQlmaQoJCWlmICEgdXNlIG1pbmltYWw7IHRoZW4KCQkJdW5wYWNrIGV1cm9mb250cy1YMTEu
dGFyLmJ6MiA+IC9kZXYvbnVsbAoJCWZpCgkJaWYgdXNlIGZvbnQtc2VydmVyOyB0aGVuCgkJCXVu
cGFjayB4ZnNmdC1lbmNvZGluZ3MtJHtYRlNGVF9FTkNfVkVSfS50YXIuYnoyID4gL2Rldi9udWxs
CgkJZmkKCWVlbmQgMAoKCSMgUmVtb3ZlIGJ1bSBlbmNvZGluZwoJcm0gLWYgJHtXT1JLRElSfS91
c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzL3VyZHVuYXFzaC0wLmVuYwp9Cgpkb19wYXRjaCgpIHsK
CSMgQnVsayBwYXRjaGluZyAtIGJhc2VkIG9uIHBhdGNoIG5hbWUKCSMgV2lsbCBjcmVhdGUgZXhj
bHVkZWQgc3R1ZmYgb25jZSBpdCdzIG5lZWRlZAoJY2QgJHtXT1JLRElSfQoJRVBBVENIX1NVRkZJ
WD0icGF0Y2giIFwKCWVwYXRjaCAke1BBVENIRElSfQoJY2QgJHtTfQoKCSMgU2VjdXJpdHkgcGF0
Y2gKCWVwYXRjaCAke0ZJTEVTRElSfS9DVkUtMjAwNi0xNTI2LXhyZW5kZXItbWl0cmkucGF0Y2gK
fQoKaG9zdF9kZWZfc2V0dXAoKSB7CglIT1NUQ09ORj0iY29uZmlnL2NmL2hvc3QuZGVmIgoKCWVi
ZWdpbiAiU2V0dGluZyB1cCAke0hPU1RDT05GfSIKCQljZCAke1N9OyBjcCAke0ZJTEVTX0RJUn0v
c2l0ZS5kZWYgJHtIT1NUQ09ORn0gXAoJCQl8fCBkaWUgImhvc3QuZGVmIGNvcHkgZmFpbGVkIgoJ
CWVjaG8gIiNkZWZpbmUgWFZlbmRvclN0cmluZyBcIkdlbnRvbyAoVGhlIFguT3JnIEZvdW5kYXRp
b24gJHtQVn0sIHJldmlzaW9uICR7UFJ9LSR7UEFUQ0hfVkVSfSlcIiIgXAoJCQk+PiAke0hPU1RD
T05GfQoKCQkjIFBlbmRpbmcgaHR0cDovL2J1Z3MuZ2VudG9vLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDkwMzggYW5kCgkJIyBodHRwOi8vZnJlZWRlc2t0b3Aub3JnL2NnaS1iaW4vYnVnemlsbGEvc2hv
d19idWcuY2dpP2lkPTYwMAoJCSMKCQkjIE1ha2VzIGxkIGJhaWwgYXQgbGluayB0aW1lIG9uIHVu
ZGVmaW5lZCBzeW1ib2xzCgkJIyBTdWdnZXN0ZWQgYnkgTWlrZSBIYXJyaXMgPG1oYXJyaXNAcmVk
aGF0LmNvbT4KCQkjZWNobyAiI2RlZmluZSBTaGFyZWRMaWJyYXJ5TG9hZEZsYWdzICAtc2hhcmVk
IC1XbCwteixkZWZzIiBcCgkJIwk+PiAke0hPU1RDT05GfQoKCQkjIEVuYWJsZSBpODEwIG9uIHg4
Nl82NCAoUkggIzEyNjY4NykKCQlpZiB1c2UgYW1kNjQ7IHRoZW4KCQkJZWNobyAiI2RlZmluZSBY
Rjg2RXh0cmFDYXJkRHJpdmVycyBpODEwIiA+PiAke0hPU1RDT05GfQoJCWZpCgoJCSMgRkhTIGlu
c3RhbGwgbG9jYXRpb25zCgkJZWNobyAiI2RlZmluZSBNYW5EaXJlY3RvcnlSb290IC91c3Ivc2hh
cmUvbWFuIiA+PiAke0hPU1RDT05GfQoJCWVjaG8gIiNkZWZpbmUgRG9jRGlyIC91c3Ivc2hhcmUv
ZG9jLyR7UEZ9IiA+PiAke0hPU1RDT05GfQoJCWVjaG8gIiNkZWZpbmUgRm9udERpciAvdXNyL3No
YXJlL2ZvbnRzIiA+PiAke0hPU1RDT05GfQoJCSMgU2luZ2xlIHF1b3RlcyBzbyBGT05URElSIGRv
ZXNuJ3QgZ2V0IHJ1bgoJCWVjaG8gJyNkZWZpbmUgRm9udEVuY0RpciAkKEZPTlRESVIpL2VuY29k
aW5ncycgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIEJpbkRpciAvdXNyL2JpbiIgPj4g
JHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIEluY1Jvb3QgL3Vzci9pbmNsdWRlIiA+PiAke0hP
U1RDT05GfQoJCSMgVGhpcyBicmVha3MgdGhlIGNhc2Ugd2hlbiAkKFNZU1RFTVVTUklOQ0RJUikg
PSAkKElOQ0RJUikKCQkjIFNlZSB4Yy9pbmNsdWRlL0ltYWtlZmlsZQoJCWVjaG8gIiNkZWZpbmUg
TGlua0dMVG9Vc3JJbmNsdWRlIE5PIiA+PiAke0hPU1RDT05GfQoJCSMgL3Vzci9YMTFSNi9saWIv
WDExCgkJZWNobyAiI2RlZmluZSBMaWJEaXIgL3Vzci8kKGdldF9saWJkaXIpL1gxMSIgPj4gJHtI
T1NUQ09ORn0KCQkjIC91c3IvWDExUjYvbGliIHdpdGggZXhjZXB0aW9uIG9mIC91c3IvWDExUjYv
bGliL1gxMQoJCWVjaG8gIiNkZWZpbmUgVXNyTGliRGlyIC91c3IvJChnZXRfbGliZGlyKSIgPj4g
JHtIT1NUQ09ORn0KCgkJIyBNYWtlIG1hbjQgYW5kIG1hbjcgc3R1ZmYgZ2V0ICd4JyBzdWZmaXgg
bGlrZSBldmVyeXRoaW5nIGVsc2UKCQkjIE5lY2Vzc2FyeSBzbyB3ZSBjYW4gaW5zdGFsbCB0byAv
dXNyL3NoYXJlL21hbiB3aXRob3V0IG92ZXJ3cml0aW5nCgkJZWNobyAiI2RlZmluZSBEcml2ZXJN
YW5EaXIgXCQoTUFOU09VUkNFUEFUSCk0IiA+PiAke0hPU1RDT05GfQoJCWVjaG8gIiNkZWZpbmUg
RHJpdmVyTWFuU3VmZml4IDR4IC8qIHVzZSBqdXN0IG9uZSB0YWIgb3IgY3BwIHdpbGwgZGllICov
IiBcCgkJCT4+ICR7SE9TVENPTkZ9CgkJZWNobyAiI2RlZmluZSBNaXNjTWFuRGlyIFwkKE1BTlNP
VVJDRVBBVEgpNyIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIE1pc2NNYW5TdWZmaXgg
N3ggLyogdXNlIGp1c3Qgb25lIHRhYiBvciBjcHAgd2lsbCBkaWUgKi8iIFwKCQkJPj4gJHtIT1NU
Q09ORn0KCgkJIyBEb24ndCBidWlsZCB4dGVybSAtLSB1c2UgZXh0ZXJuYWwgKCM1NDA1MSkKCQll
Y2hvICIjZGVmaW5lIEJ1aWxkWHRlcm0gTk8iID4+ICR7SE9TVENPTkZ9CgoJCSMgWHdyYXBwZXIg
aGFzIGJlZW4gcmVtb3ZlZCBzbyB3ZSBub3cgbmVlZCB0byB1c2UgdGhlIHNldCB1aWQgc2VydmVy
CgkJIyBhZ2FpbiwgdGhpcyBtdXN0dmUgaGFwcGVuZWQgc29tZXdoZXJlIGFmdGVyIDQuMy4wIGlu
IHRoZSBkZXZlbG9wbWVudC4KCQllY2hvICIjZGVmaW5lIEluc3RhbGxYc2VydmVyU2V0VUlEIFlF
UyIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIjZGVmaW5lIEJ1aWxkU2VydmVyc09ubHkgTk8iID4+
ICR7SE9TVENPTkZ9CgoJCSMgRG9uJ3QgdXNlIC9saWI2NCBpZiAkKGdldF9saWJkaXIpICE9IGxp
YjY0CgkJIyBSZXBsYWNlcyAwMTgxX2FsbF80LjMuMC1hbWQ2NC1ub2xpYjY0LnBhdGNoCgkJaWYg
WyAiJChnZXRfbGliZGlyKSIgPT0gImxpYjY0IiBdOyB0aGVuCgkJCWVjaG8gIiNkZWZpbmUgSGF2
ZUxpYjY0IFlFUyIgPj4gJHtIT1NUQ09ORn0KCQkJc2VkIC1pICcvXiNkZWZpbmUgRnJlZXR5cGUy
TGliRGlyL3M6Xi4qJDojZGVmaW5lIEZyZWV0eXBlMkxpYkRpciAvdXNyL2xpYjY0OicgJHtIT1NU
Q09ORn0KCQllbHNlCgkJCWVjaG8gIiNkZWZpbmUgSGF2ZUxpYjY0IE5PIiA+PiAke0hPU1RDT05G
fQoJCWZpCgoJCSMgU2V0IGxvY2F0aW9uIG9mIERSTSBzb3VyY2UgdG8gYmUgaW5zdGFsbGVkCgkJ
ZWNobyAiI2RlZmluZSBJbnN0U3JjRGlyICR7Uk9PVH0vdXNyL3NyYy8ke1BGfSIgPj4gJHtIT1NU
Q09ORn0KCgkJaWYgWyAiJChnY2MtbWFqb3ItdmVyc2lvbikiIC1lcSAiMyIgXTsgdGhlbgoJCQlp
ZiB1c2UgeDg2OyB0aGVuCgkJCQkjIFNob3VsZCBmaXggYnVnICM0MTg5LiAgZ2NjIDMueCBoYXZl
IHByb2JsZW1zIHdpdGgKCQkJCSMgLW1hcmNoPXBlbnRpdW00IGFuZCAtbWFyY2g9YXRobG9uLXRi
aXJkCgkJCQkjIFNlZW1zIGZpeGVkIG9uIDMuMyBhbmQgaGlnaGVyCgkJCQlpZiBbICIkKGdjYy1t
aW5vci12ZXJzaW9uKSIgLWxlICIyIiBdOyB0aGVuCgkJCQkJcmVwbGFjZS1jcHUtZmxhZ3MgcGVu
dGl1bTQgcGVudGl1bTMKCQkJCQlyZXBsYWNlLWNwdS1mbGFncyBhdGhsb24gYXRobG9uLXRiaXJk
CgkJCQlmaQoKCQkJCWlmIFsgIiQoZ2NjLW1pbm9yLXZlcnNpb24pIiAtZXEgIjQiIF07IHRoZW4K
CQkJCQlpZiBbICIkKGdjYy1taWNyby12ZXJzaW9uKSIgLWx0ICI0IiBdOyB0aGVuCgkJCQkJCSN0
byBmaXggIzU3NjAyIGZvciBub3csIHRoYW5rcyBTcGFua3kgKGJyb2tlbiBzc2UyKQoJCQkJCQlp
ZiB0ZXN0X2ZsYWcgLW1uby1zc2UyOyB0aGVuCgkJCQkJCQlhcHBlbmQtZmxhZ3MgLW1uby1zc2Uy
CgkJCQkJCWZpCgkJCQkJCSMgKCM3NTA2NykgYnJva2VuIHNzZTMKCQkJCQkJaWYgdGVzdF9mbGFn
IC1tbm8tc3NlMzsgdGhlbgoJCQkJCQkJYXBwZW5kLWZsYWdzIC1tbm8tc3NlMwoJCQkJCQlmaQoJ
CQkJCWZpCgkJCQlmaQoKCQkJCSMgVHJ5IGEgZml4IGZvciAjNDkzMTAsIHNlZSAjNTA5MzEgZm9y
IG1vcmUgaW5mby4gPHNweWRlcm91cz4KCQkJCWlmIFsgIiQoaXMtZmxhZyAtZm9taXQtZnJhbWUt
cG9pbnRlcikiIF07IHRoZW4KCQkJCQlyZXBsYWNlLWNwdS1mbGFncyBrNiBrNi0yIGs2LTMgaTU4
NgoJCQkJZmkKCQkJZmkKCgkJCSMgV2l0aG91dCB0aGlzLCBtb2R1bGVzIGJyZWFrcyB3aXRoIGdj
YzMKCQkJaWYgWyAiJChnY2MtbWlub3ItdmVyc2lvbikiIC1lcSAiMSIgXTsgdGhlbgoJCQkJYXBw
ZW5kLWZsYWdzICItZm5vLW1lcmdlLWNvbnN0YW50cyIKCQkJCWFwcGVuZC1mbGFncyAiLWZuby1t
ZXJnZS1jb25zdGFudHMiCgkJCWZpCgoJCQlpZiBbICIkKGdjYy1taW5vci12ZXJzaW9uKSIgLWVx
ICIyIiBdOyB0aGVuCgkJCQlpZiBbICIkKGdjYy1taWNyby12ZXJzaW9uKSIgLWx0ICIyIiBdOyB0
aGVuCgkJCQkJIyBCdWcgIzEyNzc1IC4uIGZhaWxzIHdpdGggLU9zLgoJCQkJCXJlcGxhY2UtZmxh
Z3MgIi1PcyIgIi1PMiIKCQkJCWZpCgkJCWVsaWYgWyAiJChnY2MtbWlub3ItdmVyc2lvbikiIC1s
dCAiMiIgXTsgdGhlbgoJCQkJIyBCdWcgIzEyNzc1IC4uIGZhaWxzIHdpdGggLU9zLgoJCQkJcmVw
bGFjZS1mbGFncyAiLU9zIiAiLU8yIgoJCQlmaQoJCWVsaWYgWyAiJChnY2MtbWFqb3ItdmVyc2lv
bikiIC1sdCAiMyIgXTsgdGhlbgoJCQkjIEJ1ZyAjMTI3NzUgLi4gZmFpbHMgd2l0aCAtT3MuCgkJ
CXJlcGxhY2UtZmxhZ3MgIi1PcyIgIi1PMiIKCQlmaQoKCQllY2hvICIjZGVmaW5lIENjQ21kICQo
dGMtZ2V0Q0MpIiA+PiAke0hPU1RDT05GfQoJCWVjaG8gIiNkZWZpbmUgT3B0aW1pemVkQ0RlYnVn
RmxhZ3MgJHtDRkxBR1N9IEdjY0FsaWFzaW5nQXJncyIgPj4gJHtIT1NUQ09ORn0KCQllY2hvICIj
ZGVmaW5lIE9wdGltaXplZENwbHVzcGx1c0RlYnVnRmxhZ3MgJHtDWFhGTEFHU30gR2NjQWxpYXNp
bmdBcmdzIiA+PiAke0hPU1RDT05GfQoKCQlpZiB1c2Ugc3RhdGljOyB0aGVuCgkJCWVjaG8gIiNk
ZWZpbmUgRG9Mb2FkYWJsZVNlcnZlcglOTyIgPj4ke0hPU1RDT05GfQoJCWVsc2UKCQkJZWluZm8g
IlNldHRpbmcgRG9Mb2FkYWJsZVNlcnZlciB0byBZRVMuIgoJCQllY2hvICIjZGVmaW5lIERvTG9h
ZGFibGVTZXJ2ZXIgIFlFUyIgPj4gJHtIT1NUQ09ORn0KCgkJCWlmIGhhc19oYXJkZW5lZDsgdGhl
bgoJCQkJZWNobyAiI2RlZmluZSBIYXJkZW5lZEdjY1NwZWNzIFlFUyIgPj4gJHtIT1NUQ09ORn0K
CQkJZmkKCQlmaQoKCQl1c2VfYnVpbGQgZGVidWcgWEZyZWU4NkRldmVsCgkJdXNlX2J1aWxkIGRl
YnVnIEJ1aWxkRGVidWcKCQl1c2VfYnVpbGQgZGVidWcgRGVidWdnYWJsZUxpYnJhcmllcwoKCQlp
ZiAhIHVzZSBkZWJ1ZzsgdGhlbgoJCQkjIHVzZSBsZXNzIHJhbSAuLiBnb3QgdGhpcyBmcm9tIFNw
aWRlcidzIG1ha2VlZGl0LmVjbGFzcyA6KQoJCQllY2hvICIjZGVmaW5lIEdjY1dhcm5pbmdPcHRp
b25zIC1Xbm8tcmV0dXJuLXR5cGUgLXciIFwKCQkJCT4+ICR7SE9TVENPTkZ9CgkJZmkKCgkJIyBS
ZW1vdmUgY2lyY3VsYXIgZGVwIGJldHdlZW4gcGFtIGFuZCBYMTEsIGJ1ZyAjMzU0NjgKCQkjIElm
IHBhbSBpcyBpbiBVU0UgYW5kIHdlIGhhdmUgWDExLCB0aGVuIHdlIGNhbiBlbmFibGUgUEFNCiMJ
CWlmIHVzZSBwYW0gJiYgaGFzX3ZlcnNpb24geDExLWJhc2UveG9yZy14MTEKCQlpZiBoYXNfdmVy
c2lvbiB4MTEtYmFzZS94b3JnLXgxMTsgdGhlbgoJCQkjIElmIHlvdSB3YW50IHRvIGhhdmUgb3B0
aW9uYWwgcGFtIHN1cHBvcnQsIGRvIGl0IHByb3Blcmx5IC4uLgoJCQl1c2VfYnVpbGQgcGFtIEhh
c1BhbQoJCQl1c2VfYnVpbGQgcGFtIEhhc1BhbU1pc2MKCQlmaQoKCQlpZiB1c2UgeDg2IHx8IHVz
ZSBhbHBoYTsgdGhlbgoJCQkjIGJ1aWxkIHdpdGggZ2xpZGUzIHN1cHBvcnQ/IChidWlsZCB0aGUg
dGRmeF9kcmkubyBtb2R1bGUpCgkJCWlmIHVzZSAzZGZ4OyB0aGVuCgkJCQllY2hvICIjZGVmaW5l
IEhhc0dsaWRlMyBZRVMiID4+ICR7SE9TVENPTkZ9CgkJCWZpCiMgCQkJVGhpcyB3b24ndCB3b3Jr
IHVubGVzcyB3ZSBjYW4gZGlzYWJsZSBidWlsZGluZyB0aGUgdGRmeCBzdHVmZgojIAkJCWVudGly
ZWx5IDovCiMJCQl1c2VfYnVpbGQgM2RmeCBIYXNHbGlkZTMKCQlmaQoKCQkjIERvIHdlIHdhbnQg
dGhlIGdseCBleHRlbnNpb24/IFRoaXMgd2lsbCB0dXJuIG9mZiBYRjg2RFJJIGlmIGl0J3Mgb2Zm
LgoJCSMgRFJJIGNhbid0IGJ1aWxkIGlmIGdseCBpc24ndCBidWlsdCwgc28ga2VlcCB0aGlzIGJl
bG93IERSSSBkZWZpbmUuCgkJIyBEbyB0aGlzIGJlZm9yZSBocHBhIHNvIHRoZXkgY2FuIHR1cm4g
RFJJIG9mZgoJCXVzZV9idWlsZCBvcGVuZ2wgQnVpbGRHbHhFeHQKCQl1c2VfYnVpbGQgb3Blbmds
IEJ1aWxkR0xYTGlicmFyeQoJCXVzZV9idWlsZCBvcGVuZ2wgQnVpbGRYRjg2RFJJCgkJIyBOZWVk
cyBHTCBoZWFkZXJzCgkJdXNlX2J1aWxkIG9wZW5nbCBCdWlsZEdMVUxpYnJhcnkKCgoKCQlpZiB1
c2UgbWlwczsgdGhlbgoJCQllY2hvICIjZGVmaW5lIFhGODZDYXJkRHJpdmVycyBmYmRldiBuZXdw
b3J0IiA+PiAke0hPU1RDT05GfQoJCWZpCgoJCSMgTWFrZSB4diBvcHRpb25hbCBmb3IgbW9yZSBt
aW5pbWFsIGJ1aWxkcwoJCXVzZV9idWlsZCB4diBCdWlsZFh2TGlicmFyeQoJCXVzZV9idWlsZCB4
diBCdWlsZFh2RXh0CgkJIyBEZXBlbmRzIG9uIFgxMS9leHRlbnNpb25zL1h2LmgKCQl1c2VfYnVp
bGQgeHYgQnVpbGRYRjg2UnVzaEV4dAoJCXVzZV9idWlsZCB4diBCdWlsZFhGODZSdXNoTGlicmFy
eQoKCQlpZiB1c2UgaHBwYTsgdGhlbgoJCQllY2hvICIjZGVmaW5lIERvTG9hZGFibGVTZXJ2ZXIg
Tk8iID4+ICR7SE9TVENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRYRjg2RFJJIE5PIiA+PiBj
b25maWcvY2YvaG9zdC5kZWYKCQkJZWNobyAiI3VuZGVmIERyaURyaXZlcnMiID4+IGNvbmZpZy9j
Zi9ob3N0LmRlZgoJCQllY2hvICIjZGVmaW5lIFhGODZDYXJkRHJpdmVycyBmYmRldiIgPj4gY29u
ZmlnL2NmL2hvc3QuZGVmCgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRYdkV4dCBZRVMiID4+IGNvbmZp
Zy9jZi9ob3N0LmRlZgoJCWZpCgoKCQlpZiB1c2UgYWxwaGE7IHRoZW4KCQkJZWNobyAiI2RlZmlu
ZSBYRjg2Q2FyZERyaXZlcnMgbWdhIG52IHRnYSBzM3ZpcmdlIHNpcyByZW5kaXRpb24gXAoJCQkJ
aTc0MCB0ZGZ4IGNpcnJ1cyB0c2VuZyBmYmRldiBcCgkJCQlhdGkgdmdhIHY0bCBnbGludCBzMyB2
ZXNhIiA+PiAke0hPU1RDT05GfQoJCWZpCgoJCWlmIHVzZSBwcGM7IHRoZW4KCQkJZWNobyAiI2Rl
ZmluZSBYRjg2Q2FyZERyaXZlcnMgbWdhIGdsaW50IHMzdmlyZ2Ugc2lzIHNhdmFnZSB0cmlkZW50
IFwKCQkJCWNoaXBzIHRkZnggZmJkZXYgYXRpIERldmVsRHJpdmVycyB2Z2EgbnYgaW1zdHQgXAoJ
CQkJWEY4Nk9TQ2FyZERyaXZlcnMgWEY4NkV4dHJhQ2FyZERyaXZlcnMiID4+ICR7SE9TVENPTkZ9
CgkJZmkKCgkJaWYgdXNlIHBwYzY0OyB0aGVuCgkJCWVjaG8gIiNkZWZpbmUgTWFrZURsbE1vZHVs
ZXMgWUVTIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIFhGODZWZ2FIdyBZRVMiID4+
ICR7SE9TVENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgWEY4NkZCRGV2SHcgWUVTIiA+PiAke0hPU1RD
T05GfQoJCQllY2hvICIjZGVmaW5lIFhGODZDYXJkRHJpdmVycyBtZ2EgZmJkZXYgdjRsIGF0aSB2
Z2EgbnYiID4+ICR7SE9TVENPTkZ9CgkJZmkKCgkJaWYgdXNlIHNwYXJjOyB0aGVuCgkJCWVjaG8g
IiNkZWZpbmUgWEY4NkNhcmREcml2ZXJzIHN1bmZmYiBzdW5sZW8gc3VuY2c2IHN1bmNnMyBzdW5j
ZzE0IFwKCQkJc3VudGN4IHN1bmJ3MiBnbGludCBtZ2EgdGRmeCBhdGkgc2F2YWdlIHZlc2Egdmdh
IGZiZGV2IFwKCQkJWEY4Nk9TQ2FyZERyaXZlcnMgWEY4NkV4dHJhQ2FyZERyaXZlcnMgXAoJCQlE
ZXZlbERyaXZlcnMiID4+ICR7SE9TVENPTkZ9CgkJCWlmICggWyAtZSAiJHtST09UfS91c3Ivc3Jj
L2xpbnV4IiBdIFwKCQkJCSYmICEga2VybmVsX2lzICIyIiAiNiIgKSBcCgkJCQl8fCBbICIkKHVu
YW1lIC1yIHwgY3V0IC1kLiAtZjEsMikiICE9ICIyLjYiIF07IHRoZW4KCQkJCWVpbmZvICJBdm9p
ZCBidWcgIzQ2NTkzIGZvciBzcGFyYzMyLVNNUCB3aXRoIGtlcm5lbCAyLjQueHguIgoJCQkJZWNo
byAiLyogQWRkIGEgbGluZSB0byBhdm9pZCBidWcgIzU2NTkzIG9uIHNwYXJjMzIgKi8iID4+IFwK
CQkJCSAgcHJvZ3JhbXMvWHNlcnZlci9ody94ZnJlZTg2L2RyaXZlcnMvYXRpL3IxMjhfZHJpdmVy
LmMKCQkJZmkKCQlmaQoKCQkjIFRoZSBkZWZpbml0aW9ucyBmb3IgZm9udGNvbmZpZwoJCWVjaG8g
IiNkZWZpbmUgVXNlRm9udGNvbmZpZyBZRVMiID4+ICR7SE9TVENPTkZ9CgkJZWNobyAiI2RlZmlu
ZSBIYXNGb250Y29uZmlnIFlFUyIgPj4gJHtIT1NUQ09ORn0KCgkJIyBVc2UgdGhlIHhvcmcgWGZ0
MiBsaWIKCQllY2hvICIjZGVmaW5lIFNoYXJlZExpYlhmdCBZRVMiID4+ICR7SE9TVENPTkZ9CgoJ
CSMgd2l0aCBVU0U9IlggZG9jJyBjaXJjdWxhciBkZXAgdy8gdmlydHVhbC9naG9zdHNjcmlwdAoJ
CSMgZWNobyAiI2RlZmluZSBIYXNHaG9zdFNjcmlwdCAke0RPQ30iID4+ICR7SE9TVENPTkZ9CgkJ
IyBDYXVzZWQgaXNzdWVzLCBiYXNpYyBkb2NzIGFyZW4ndCBpbnN0YWxsZWQKCQl1c2VfYnVpbGQg
ZG9jIEJ1aWxkTGludXhEb2NQUwoJCXVzZV9idWlsZCBkb2MgQnVpbGRTcGVjc0RvY3MKCQl1c2Vf
YnVpbGQgZG9jIEJ1aWxkSHRtbE1hblBhZ2VzCgkJdXNlX2J1aWxkIGRvYyBJbnN0YWxsSGFyZGNv
cHlEb2NzCgoJCSMgZW5hYmxlIEphcGFuZXNlIGRvY3MsIG9wdGlvbmFsbHkKCQl1c2UgZG9jICYm
IHVzZV9idWlsZCBjamsgSW5zdGFsbEphcGFuZXNlRG9jcwoKCQkjIE5hdGl2ZSBMYW5ndWFnZSBT
dXBwb3J0IEZvbnRzCgkJdXNlX2J1aWxkIG5scyBCdWlsZEN5cmlsbGljRm9udHMKCQl1c2VfYnVp
bGQgbmxzIEJ1aWxkQXJhYmljRm9udHMKCQl1c2VfYnVpbGQgbmxzIEJ1aWxkR3JlZWtGb250cwoJ
CXVzZV9idWlsZCBubHMgQnVpbGRIZWJyZXdGb250cwoJCXVzZV9idWlsZCBubHMgQnVpbGRUaGFp
Rm9udHMKCgkJaWYgdXNlIG5sczsgdGhlbgoJCQl1c2VfYnVpbGQgY2prIEJ1aWxkQ0lERm9udHMK
CQkJdXNlX2J1aWxkIGNqayBCdWlsZEphcGFuZXNlRm9udHMKCQkJdXNlX2J1aWxkIGNqayBCdWls
ZEtvcmVhbkZvbnRzCgkJCXVzZV9idWlsZCBjamsgQnVpbGRDaGluZXNlRm9udHMKCQlmaQoKCQkj
IENyYXBweSBiaXRtYXAgZm9udHMKCQl1c2VfYnVpbGQgYml0bWFwLWZvbnRzIEJ1aWxkNzVEcGlG
b250cwoJCXVzZV9idWlsZCBiaXRtYXAtZm9udHMgQnVpbGQxMDBEcGlGb250cwoKCQkjIFR5cGUx
IGZvbnRzCgkJdXNlX2J1aWxkIHR5cGUxLWZvbnRzIEJ1aWxkVHlwZTFGb250cwoKCQkjIFRydWVU
eXBlIGZvbnRzCgkJdXNlX2J1aWxkIHRydWV0eXBlLWZvbnRzIEJ1aWxkVHJ1ZVR5cGVGb250cwoK
CQkjIFggRm9udCBTZXJ2ZXIKCQl1c2VfYnVpbGQgZm9udC1zZXJ2ZXIgQnVpbGRGb250U2VydmVy
CgoJCXVzZV9idWlsZCBpbnNlY3VyZS1kcml2ZXJzIEJ1aWxkRGV2ZWxEUklEcml2ZXJzCgoJCWlm
IHVzZSBpcHY2OyB0aGVuCgkJCSMgSW4gY2FzZSBHZW50b28gZXZlciB3b3JrcyBvbiBhIHN5c3Rl
bSB3aXRoIElQdjYgc29ja2V0cyB0aGF0IGRvbid0CgkJCSMgYWxzbyBsaXN0ZW4gb24gSVB2NCAo
c2VlIGNvbmZpZy9jZi9YMTEudG1wbCkKCQkJZWNobyAiI2RlZmluZSBQcmVmZXJYZG1jcElQdjYg
WUVTIiA+PiAke0hPU1RDT05GfQoJCWZpCgoJCXVzZV9idWlsZCBpcHY2IEJ1aWxkSVB2NgoKCQlp
ZiB1c2UgbWluaW1hbDsgdGhlbgoJCQkjIERvbid0IGJ1aWxkIHN0YXRpYyBsaWJzCgkJCWVjaG8g
IiNkZWZpbmUgRm9yY2VOb3JtYWxMaWIgTk8iID4+ICR7SE9TVENPTkZ9CgkJCSMgVHVybiBiYWNr
IG9uIG5lZWRlZCBvbmVzCgkJCWVjaG8gIiNkZWZpbmUgTm9ybWFsTGliWGF1IFlFUyIgPj4gJHtI
T1NUQ09ORn0KCgkJCWVjaG8gIiNkZWZpbmUgQnVpbGREUFNMaWJyYXJpZXMgTk8iID4+ICR7SE9T
VENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRDbGllbnRzIE5PIiA+PiAke0hPU1RDT05GfQoK
CQkJIyBCdWlsZENsaWVudHMgZG9lc24ndCBjYXRjaCB0aGluZ3MgaW4geGMvcHJvZ3JhbXMvWHNl
cnZlcgoJCQkjIEFsc28gaGFkIHRvIGFkZAoJCQkjIDkyNTBfYWxsXzYuOC4xLjkwNC1yZXNwZWN0
LXhmcmVlODZjb25maWd0b29scy1zZXR0aW5nLnBhdGNoCgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRY
RnJlZTg2Q29uZmlnVG9vbHMgTk8iID4+ICR7SE9TVENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgQnVp
bGRMQlggTk8iID4+ICR7SE9TVENPTkZ9CgoJCQkjIFdlaXJkIGNyYXAgd2UgZG9uJ3QgbmVlZAoJ
CQllY2hvICIjZGVmaW5lIFhGOF8zMldpZCBOTyIgPj4gJHtIT1NUQ09ORn0KCQkJZWNobyAiI2Rl
ZmluZSBYRjhfMzJCcHAgTk8iID4+ICR7SE9TVENPTkZ9CgkJCWVjaG8gIiNkZWZpbmUgWEY4XzE2
QnBwIE5PIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIFhGMjRfMzJCcHAgTk8iID4+
ICR7SE9TVENPTkZ9CgoJCQkjIFdpdGhvdXQgbmxzLCB0cnVldHlwZS1mb250cywgdHlwZTEtZm9u
dHMsIHdlIG9ubHkgYnVpbGQgbWlzYwoJCQkjIE5vdyBsZXQncyB0cnkgdG8gcmVkdWNlIHdoYXQg
Z2V0cyBidWlsdCBpbiBtaXNjCgkJCSMgaXNvODg1OS0xIGhhcyB0aGUgImZpeGVkIiBmb250CgkJ
CWVjaG8gIiNkZWZpbmUgQnVpbGRJU084ODU5XzJGb250cyBOTyIgPj4gJHtIT1NUQ09ORn0KCQkJ
ZWNobyAiI2RlZmluZSBCdWlsZElTTzg4NTlfM0ZvbnRzIE5PIiA+PiAke0hPU1RDT05GfQoJCQll
Y2hvICIjZGVmaW5lIEJ1aWxkSVNPODg1OV80Rm9udHMgTk8iID4+ICR7SE9TVENPTkZ9CgkJCSMg
NSBpcyBjeXJpbGxpYywgNiBpc24ndCBpbiBtaXNjLCA3IGlzIGdyZWVrLCA4IGlzIGhlYnJldwoJ
CQllY2hvICIjZGVmaW5lIEJ1aWxkSVNPODg1OV85Rm9udHMgTk8iID4+ICR7SE9TVENPTkZ9CgkJ
CWVjaG8gIiNkZWZpbmUgQnVpbGRJU084ODU5XzEwRm9udHMgTk8iID4+ICR7SE9TVENPTkZ9CgkJ
CSMgMTEgaXMgdGhhaSwgMTIgaXNuJ3QgaW4gbWlzYwoJCQllY2hvICIjZGVmaW5lIEJ1aWxkSVNP
ODg1OV8xM0ZvbnRzIE5PIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIEJ1aWxkSVNP
ODg1OV8xNEZvbnRzIE5PIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIEJ1aWxkSVNP
ODg1OV8xNUZvbnRzIE5PIiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIEJ1aWxkSVNP
ODg1OV8xNkZvbnRzIE5PIiA+PiAke0hPU1RDT05GfQoKCQkJZWNobyAiI2RlZmluZSBCdWlsZERt
eCBOTyIgPj4gJHtIT1NUQ09ORn0KCQkJZWNobyAiI2RlZmluZSBYbmVzdFNlcnZlciBOTyIgPj4g
JHtIT1NUQ09ORn0KCQkJZWNobyAiI2RlZmluZSBYVmlydHVhbEZyYW1lYnVmZmVyU2VydmVyIE5P
IiA+PiAke0hPU1RDT05GfQoJCQllY2hvICIjZGVmaW5lIFhJbnB1dERyaXZlcnMgbW91c2Uga2V5
Ym9hcmQiID4+ICR7SE9TVENPTkZ9CgoJCQkJIyBJZiB5b3Ugd2FudCBtb3JlIGRyaXZlcnMgYnVp
bHQgd2l0aCBtaW5pbWFsLCBmaWxlIGEgYnVnCgkJCQkjIC1Eb25uaWUgQmVya2hvbHogPHNweWRl
cm91c0BnZW50b28ub3JnPgoJCQlpZiB1c2UgeDg2OyB0aGVuCgkJCQkjIFJlbW92ZSBnbGludCwg
dGdhLCBzMywgczN2aXJnZSwgcmVuZGl0aW9uLCBuZW9tYWdpYywgaTc0MCwKCQkJCSMgY2lycnVz
LCB0c2VuZywgdHJpZGVudCwgY2hpcHMsIGFwbSwgYXJrLCBjeXJpeCwgc2lsaWNvbm1vdGlvbgoJ
CQkJIyBtZ2EsIG52LCBzaXMsIHRkZngsIHNhdmFnZSwgR2xpZGVEcml2ZXIsIGkzODZEcml2ZXJz
CgkJCQkjIChuc2MsIGk4MTApLCBhdGksIERldmVsRHJpdmVycywgdmlhCgkJCQkjIExlYXZlIHZt
d2FyZSBkcml2ZXIgZm9yIHRlc3RpbmcgbWluaW1hbCBzZXR1cHMgdXNpbmcgVk1XYXJlCgkJCQkj
IFhGODZPU0NhcmREcml2ZXJzIGluY2x1ZGVzIHY0bCBhbmQgZmJkZXYgb24gbGludXgKCQkJCSMg
RGV2ZWxEcml2ZXJzIGluY2x1ZGVzIGltc3R0IGFuZCBuZXdwb3J0IG9uIHg4NgoJCQkJZWNobyAi
I2RlZmluZSBYRjg2Q2FyZERyaXZlcnMgdm13YXJlIHZlc2EgdmdhIGR1bW15IFwKCQkJCQlYRjg2
T1NDYXJkRHJpdmVycyBYRjg2RXh0cmFDYXJkRHJpdmVycyIgPj4gJHtIT1NUQ09ORn0KCQkJIyAo
IzkzMzM5KQoJCQllbGlmIHVzZSBzcGFyYzsgdGhlbgoJCQkJZWNobyAiI2RlZmluZSBYRjg2Q2Fy
ZERyaXZlcnMgdmVzYSB2Z2EgZmJkZXYgc3VuZmZiIHN1bmNnNiBcCgkJCQkJc3VubGVvIiA+PiAk
e0hPU1RDT05GfQoJCQlmaQoJCWZpCgoJCSMgQWpheCBpcyB0aGUgbWFuIGZvciBnZXR0aW5nIHRo
aXMgZ29pbmcgZm9yIHVzCgkJZWNobyAiI2RlZmluZSBQcm9Qb2xpY2VTdXBwb3J0IFlFUyIgPj4g
JHtIT1NUQ09ORn0KCgkJIyBNYWtlIHhwcmludCBvcHRpb25hbAoJCXVzZV9idWlsZCB4cHJpbnQg
QnVpbGRYcHJpbnQKCQl1c2VfYnVpbGQgeHByaW50IEJ1aWxkWHByaW50Q2xpZW50cwoJCSMgQnVp
bGQgbGliWHAgZXZlbiB3aGVuIHhwcmludCBpcyBvZmYuIEl0J3MganVzdCBmb3IgY2xpZW50cywg
c2VydmVyCgkJaWYgISB1c2UgeHByaW50OyB0aGVuCgkJCWVjaG8gIiNkZWZpbmUgQnVpbGRYcHJp
bnRMaWIgWUVTIiA+PiAke0hPU1RDT05GfQoJCWZpCgoJIyBFbmQgdGhlIGhvc3QuZGVmIGRlZmlu
aXRpb25zIGhlcmUKCWVlbmQgMAp9CgpwYXRjaF9zZXR1cCgpIHsKCWVpbmZvICJFeGNsdWRpbmcg
cGF0Y2hlcy4uLiIKCgkJcGF0Y2hfZXhjbHVkZSA5MDIwIDkwMzAKCQlwYXRjaF9leGNsdWRlIDk5
MTMgOTkxNCA5OTE1IDk5MjAKCgkJIyBUaGlzIHBhdGNoIGlzIGp1c3QgcGxhaW4gYnJva2VuLiBS
ZXN1bHRzIGluIHJhbmRvbSBmYWlsdXJlcy4KCQlwYXRjaF9leGNsdWRlIDAxMjAqcGFyYWxsZWwt
bWFrZQoKCQkjIEhhcmRlbmVkIHBhdGNoZXMgKGJvdGggYnJva2VuKQoJCXBhdGNoX2V4Y2x1ZGUg
OTk2MF9hbGxfNC4zLjAtZXhlYy1zaGllbGQtR05VCgkJcGF0Y2hfZXhjbHVkZSA5OTYxX2FsbF80
LjMuMC1saWJHTC1leGVjLXNoaWVsZAoKCQkjIFhib3ggbnZpZGlhIGRyaXZlciwgcGF0Y2ggaXMg
YSB0b3RhbCBoYWNrLCB0ZWFycyBhcGFydCB4Yy9jb25maWcvY2YKCQkjICgjNjg3MjYpLiBPbmx5
IGFwcGx5IHdoZW4gbmVjZXNzYXJ5IHNvIHdlIGRvbid0IHNjcmV3IG90aGVyIHN0dWZmIHVwLgoJ
CSMgOTk5MCBpcyB0aGUgZHJpdmVyLCA5OTkxIGlzIHhib3ggcGNpIHNjYW5uaW5nIChwb3RlbnRp
YWxseSB1c2VmdWwpCgkJaWYgWyAhICIke1BST0ZJTEVfQVJDSH0iID0gInhib3giIF07IHRoZW4K
CQkJcGF0Y2hfZXhjbHVkZSA5OTkwIDk5OTEKCQlmaQoKCQkjIHRoaXMgcGF0Y2ggY29tbWVudHMg
b3V0IHRoZSBYc2VydmVyIGxpbmUgaW4geGRtJ3MgY29uZmlnCgkJIyBXZSBvbmx5IHdhbnQgaXQg
aGVyZQoJCWlmICEgdXNlIHMzOTA7IHRoZW4KCQkJcGF0Y2hfZXhjbHVkZSA3NTAwCgkJZmkKCgkj
CWlmICEgdXNlIGdhdG9zOyB0aGVuCgkjCQlwYXRjaF9leGNsdWRlIDk4NDFfYWxsXzQuMy4wLWdh
dG9zLW1lc2EKCSMJZmkKCgkJaWYgdXNlIGRlYnVnOyB0aGVuCgkJCXBhdGNoX2V4Y2x1ZGUgNTkw
MSphY2VjYWQtZGVidWcKCQlmaQoKCQkjIFRERlhfUklTS1kgLSAxNi1iaXQsIDEwMjR4NzY4IG9y
IGhpZ2hlciBvbiBsb3ctbWVtb3J5IHZvb2RvbzMncwoJCWlmIHVzZSAzZGZ4ICYmIFsgIiR7VERG
WF9SSVNLWX0iID0gInllcyIgXTsgdGhlbgoJCQlwYXRjaF9leGNsdWRlIDU4NTAKCQllbHNlCgkJ
CXBhdGNoX2V4Y2x1ZGUgNTg1MQoJCWZpCgoJCSMgR2xpYmMtc3BlY2lmaWMgcGF0Y2hlcyB0byBl
eGNsdWRlIGZvciBub24tZ2xpYmMgc3lzdGVtcwoJCWlmIHVzZSBlbGliY19GcmVlQlNEIHx8IHVz
ZSBlbGliY19PcGVuQlNEOyB0aGVuCgkJCXBhdGNoX2V4Y2x1ZGUgMDcwMAoJCWZpCgllaW5mbyAi
RG9uZSBleGNsdWRpbmcgcGF0Y2hlcy4iCn0KCnVzZV9zcGVjaWZpY19oYWNrcygpIHsKCSMgdWNs
aWJjIGxhY2tzIHNpbmYgYW5kIGNvc2YKCWlmIHVzZSB1Y2xpYmM7IHRoZW4KCQlzZWQgLWkgLWUg
J3M6R0xYQ0xJRU5URElSUyA9IGdseGluZm8gZ2x4Z2VhcnM6R0xYQ0xJRU5URElSUyA9IDonIFwK
CQkJJHtTfS9wcm9ncmFtcy9JbWFrZWZpbGUKCWZpCgoJIyBHZXQgcmlkIG9mIGN1cnNvciBzZXRz
IG90aGVyIHRoYW4gY29yZSBhbmQgaGFuZGhlbGRzLCBzYXZlcyB+NE1CCglpZiB1c2UgbWluaW1h
bDsgdGhlbgoJCSBzZWQgLWkgLWUgJ3M6U1VCRElSUyA9IHJlZGdsYXNzIHdoaXRlZ2xhc3MgaGFu
ZGhlbGRzOlNVQkRJUlMgPSBoYW5kaGVsZHM6JyBcCgkJCSR7U30vcHJvZ3JhbXMveGN1cnNvcmdl
bi9JbWFrZWZpbGUKCWZpCgoJY2QgJHtTfQoJaWYgdXNlIGRvYzsgdGhlbgoJCSMgVGhlc2UgYXJl
IG5vdCBpbmNsdWRlZCBhbnltb3JlIGFzIHRoZXkgYXJlIG9ic29sZXRlCgkJbG9jYWwgeAoJCWZv
ciB4IGluICR7U30vcHJvZ3JhbXMvWHNlcnZlci9ody94ZnJlZTg2L3tYRjk4Q29uZi5jcHAsWEY5
OENvbmZpZ307IGRvCgkJCWlmIFsgLWYgJHt4fSBdOyB0aGVuCgkJCQlzZWQgLWkgJy9Mb2FkW1s6
c3BhY2U6XV0qIlwocGV4NVx8eGllXCkiL2QnICR7eH0KCQkJZmkKCQlkb25lCglmaQp9CgojIyMj
IyMjIyMjIyMjIyMjIwojIHNyY19jb21waWxlKCkgIwojIyMjIyMjIyMjIyMjIyMjIwoKYnVpbGQo
KSB7CgkjIElmIGEgdXNlciBkZWZpbmVzIHRoZSBNQUtFX09QVFMgdmFyaWFibGUgaW4gL2V0Yy9t
YWtlLmNvbmYgaW5zdGVhZCBvZgoJIyBNQUtFT1BUUywgdGhleSdsbCByZWRlZmluZSBhbiBpbnRl
cm5hbCB4b3JnIE1ha2VmaWxlIHZhcmlhYmxlIGFuZCB0aGUKCSMgeG9yZyBidWlsZCB3aWxsIHNp
bGVudGx5IGRpZS4gVGhpcyBpcyB0cmlja3kgdG8gdHJhY2sgZG93biwgc28gSSdtCgkjIGFkZGlu
ZyBhIHByZWVtcHRpdmUgZml4IGZvciB0aGlzIGlzc3VlIGJ5IG1ha2luZyBzdXJlIHRoYXQgTUFL
RV9PUFRTIGlzCgkjIHVuc2V0LiAoZHJvYmJpbnMsIDA4IE1hciAyMDAzKQoJdW5zZXQgTUFLRV9P
UFRTCgoJZWluZm8gIkJ1aWxkaW5nIHhvcmcteDExLi4uIgoJaWYgdXNlIGRlYnVnOyB0aGVuCgkJ
Y2htb2QgdSt4ICR7U30vY29uZmlnL3V0aWwvbWFrZWcuc2gKCQlGQVNUPTEgJHtTfS9jb25maWcv
dXRpbC9tYWtlZy5zaCBXb3JsZCBXT1JMRE9QVFM9IiIgTUFLRT0ibWFrZSIgXAoJCQl8fCBkaWUg
ImRlYnVnIG1ha2UgV29ybGQgZmFpbGVkIgoJZWxzZQoJCUZBU1Q9MSBlbWFrZSAtajEgV29ybGQg
V09STERPUFRTPSIiIE1BS0U9Im1ha2UiIHx8IGRpZSAibWFrZSBXb3JsZCBmYWlsZWQiCglmaQoK
CWlmIHVzZSBubHM7IHRoZW4KCQllbWFrZSAtajEgLUMgJHtTfS9ubHMgTUFLRT0ibWFrZSIgfHwg
ZGllICJubHMgYnVpbGQgZmFpbGVkIgoJZmkKfQoKIyMjIyMjIyMjIyMjIyMjIyMKIyBzcmNfaW5z
dGFsbCgpICMKIyMjIyMjIyMjIyMjIyMjIyMKCmluc3RhbGxfZXZlcnl0aGluZygpIHsKCXVuc2V0
IE1BS0VfT1BUUwoKCWVpbmZvICJJbnN0YWxsaW5nIFgub3JnIFgxMS4uLiIKCSMgZ2NjMyByZWxh
dGVkIGZpeC4gIERvIHRoaXMgZHVyaW5nIGluc3RhbGwsIHNvIHRoYXQgb3VyCgkjIHdob2xlIGJ1
aWxkIHdpbGwgbm90IGJlIGNvbXBpbGVkIHdpdGhvdXQgbW14IGluc3RydWN0aW9ucy4KCWlmIFsg
IiQoZ2NjLXZlcnNpb24pIiAhPSAiMi45NSIgXSAmJiB1c2UgeDg2OyB0aGVuCgkJbWFrZSBpbnN0
YWxsIE1BS0U9Im1ha2UiIERFU1RESVI9JHtEfSBcCgkJfHwgbWFrZSBDREVCVUdGTEFHUz0iJHtD
REVCVUdGTEFHU30gLW1uby1tbXgiIFwKCQkJQ1hYREVCVUdGTEFHUz0iJHtDWFhERUJVR0ZMQUdT
fSAtbW5vLW1teCIgXAoJCQlpbnN0YWxsIE1BS0U9Im1ha2UiIERFU1RESVI9JHtEfSB8fCBkaWUg
Imluc3RhbGwgZmFpbGVkIgoJZWxzZQoJCW1ha2UgaW5zdGFsbCBNQUtFPSJtYWtlIiBERVNURElS
PSR7RH0gfHwgZGllICJpbnN0YWxsIGZhaWxlZCIKCWZpCgoJaWYgdXNlIHNkazsgdGhlbgoJCWVp
bmZvICJJbnN0YWxsaW5nIFgub3JnIFgxMSBTREsuLi4iCgkJbWFrZSBpbnN0YWxsLnNkayBNQUtF
PSJtYWtlIiBERVNURElSPSR7RH0gfHwgZGllICJzZGsgaW5zdGFsbCBmYWlsZWQiCglmaQoKCWlm
ICEgdXNlIG1pbmltYWw7IHRoZW4KCQllaW5mbyAiSW5zdGFsbGluZyBtYW4gcGFnZXMuLi4iCgkJ
bWFrZSBpbnN0YWxsLm1hbiBNQUtFPSJtYWtlIiBERVNURElSPSR7RH0gfHwgZGllICJtYW4gcGFn
ZSBpbnN0YWxsIGZhaWxlZCIKCQllaW5mbyAiQ29tcHJlc3NpbmcgbWFuIHBhZ2VzLi4uIgoJCXBy
ZXBtYW4gL3VzcgoJZmkKCglpZiB1c2UgbmxzOyB0aGVuCgkJY2QgJHtTfS9ubHMKCQltYWtlIE1B
S0U9Im1ha2UiIERFU1RESVI9JHtEfSBpbnN0YWxsIHx8IGRpZSAibmxzIGluc3RhbGwgZmFpbGVk
IgoJZmkKCWRvZG9jICR7U30vUkVMTk9URVMKfQoKYmFja3dhcmRfY29tcGF0X2luc3RhbGwoKSB7
CgkjIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciAvdXNyL3NoYXJlIG1vdmUKCWRvc3ltIC4u
Ly4uL3NoYXJlL2ZvbnRzIC91c3IvJChnZXRfbGliZGlyKS9YMTEvZm9udHMKCgkjIEhhdmUgdGhl
IHRvcC1sZXZlbCBsaWJkaXIgc3ltbGluayBtYWRlIGZpcnN0LCBzbyByZWFsIGRpcnMgZG9uJ3Qg
Z2V0IGNyZWF0ZWQKCWxvY2FsIERJUiBESVJTCglpZiBbICJsaWIiICE9ICIkKGdldF9saWJkaXIp
IiBdOyB0aGVuCgkJRElSUz0iJHtESVJTfSAkKGdldF9saWJkaXIpIgoJZmkKCWZvciBESVIgaW4g
JHtESVJTfTsgZG8KCQlkb3N5bSAuLi8ke0RJUn0gL3Vzci9YMTFSNi8ke0RJUn0KCWRvbmUKCglk
b3N5bSAuLi8uLi8uLi9zaGFyZS9kb2MvJHtQRn0gL3Vzci9YMTFSNi8kKGdldF9saWJkaXIpL1gx
MS9kb2MKfQoKZml4X3Blcm1pc3Npb25zKCkgewoJIyBGaXggcGVybWlzc2lvbnMgb24gbG9jYWxl
L2NvbW1vbi8qLnNvCglsb2NhbCB4Cglmb3IgeCBpbiAke0R9L3Vzci8kKGdldF9saWJkaXIpL1gx
MS9sb2NhbGUvJChnZXRfbGliZGlyKS9jb21tb24vKi5zbyo7IGRvCgkJaWYgWyAtZiAke3h9IF07
IHRoZW4KCQkJZnBlcm1zIDA3NTUgJHt4LyR7RH19CgkJZmkKCWRvbmUKCgkjIEZpeCBwZXJtaXNz
aW9ucyBvbiBtb2R1bGVzIC4uLgoJZm9yIHggaW4gJChmaW5kICR7RH0vdXNyLyQoZ2V0X2xpYmRp
cikvbW9kdWxlcyAtbmFtZSAnKi5vJyAtbyAtbmFtZSAnKi5zbycpOyBkbwoJCWlmIFsgLWYgJHt4
fSBdOyB0aGVuCgkJCWZwZXJtcyAwNzU1ICR7eC8ke0R9fQoJCWZpCglkb25lCgoJIyBGaXggcGVy
bXMKCWlmICEgdXNlIG1pbmltYWw7IHRoZW4KCQlmcGVybXMgNzU1IC91c3IvJChnZXRfbGliZGly
KS9YMTEveGtiL2dlb21ldHJ5L3NnaSAvdXNyL2Jpbi9kZ2EKCWZpCn0KCnphcF9ob3N0X2RlZl9j
ZmxhZ3MoKSB7CgllYmVnaW4gIkZpeGluZyAkKGdldF9saWJkaXIpL1gxMS9jb25maWcvaG9zdC5k
ZWYiCgkJY3AgJHtEfS91c3IvJChnZXRfbGliZGlyKS9YMTEvY29uZmlnL2hvc3QuZGVmICR7VH0K
CQlhd2sgJyEvT3B0aW1pemVkQ0RlYnVnRmxhZ3N8T3B0aW1pemVkQ3BsdXNwbHVzRGVidWdGbGFn
c3xHY2NXYXJuaW5nT3B0aW9ucy8ge3ByaW50ICQwfScgXAoJCQkke1R9L2hvc3QuZGVmID4gJHtE
fS91c3IvJChnZXRfbGliZGlyKS9YMTEvY29uZmlnL2hvc3QuZGVmIFwKCQkJfHwgZWVycm9yICJN
dW5naW5nIGhvc3QuZGVmIGZhaWxlZCIKCQkjIHRoZW9yZXRpY2FsbHksIC91c3IvbGliL1gxMS9j
b25maWcgaXMgYSBwb3NzaWJsZSBjYW5kaWRhdGUgZm9yCgkJIyBjb25maWcgZmlsZSBtYW5hZ2Vt
ZW50LiBJZiB3ZSBmaW5kIHRoYXQgcGVvcGxlIHJlYWxseSB3b3JyeSBhYm91dCBpbWFrZQoJCSMg
c3R1ZmYsIHdlIG1heSBhZGQgaXQuICBCdXQgZm9yIG5vdywgd2UgbGVhdmUgdGhlIGRpciB1bnBy
b3RlY3RlZC4KCWVlbmQgMAp9CgphZGRfZXVyb19zdXBwb3J0KCkgewoJZWJlZ2luICJBZGRpbmcg
RXVybyBzdXBwb3J0IgoJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZX1BBVEh9OiR7RH0v
dXNyLyQoZ2V0X2xpYmRpcikiIFwKCQkke0R9L3Vzci9iaW4vYmRmdG9wY2YgLXQgJHtXT1JLRElS
fS9YbGF0OS04eDE0LmJkZiB8IFwKCQkJZ3ppcCAtOSA+ICR7RH0vdXNyL3NoYXJlL2ZvbnRzL21p
c2MvWGxhdDktOHgxNC1sYXQ5LnBjZi5negoJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZ
X1BBVEh9OiR7RH0vdXNyLyQoZ2V0X2xpYmRpcikiIFwKCQkke0R9L3Vzci9iaW4vYmRmdG9wY2Yg
LXQgJHtXT1JLRElSfS9YbGF0OS05eDE2LmJkZiB8IFwKCQkJZ3ppcCAtOSA+ICR7RH0vdXNyL3No
YXJlL2ZvbnRzL21pc2MvWGxhdDktOXgxNi1sYXQ5LnBjZi5negoJCUxEX0xJQlJBUllfUEFUSD0i
JHtMRF9MSUJSQVJZX1BBVEh9OiR7RH0vdXNyLyQoZ2V0X2xpYmRpcikiIFwKCQkke0R9L3Vzci9i
aW4vYmRmdG9wY2YgLXQgJHtXT1JLRElSfS9YbGF0OS0xMHgyMC5iZGYgfCBcCgkJCWd6aXAgLTkg
PiAke0R9L3Vzci9zaGFyZS9mb250cy9taXNjL1hsYXQ5LTEweDIwLWxhdDkucGNmLmd6CgllZW5k
IDAKfQoKc2V0dXBfc3RhbmRhcmRfc3ltbGlua3MoKSB7CgkjIFN0YW5kYXJkIHN5bWxpbmtzCglk
b2RpciAvdXNyL3tiaW4saW5jbHVkZSwkKGdldF9saWJkaXIpfQoJZG9zeW0gLi4vYmluIC91c3Iv
YmluL1gxMQoJIyBTdG9wIGNvbXBsYWlucyBhYm91dCAiZmlsZSBvciBkaXJlY3Rvcnkgbm90IGV4
aXN0aW5nIgoJZG9kaXIgL3Vzci9YMTFSNgoJZG9zeW0gLi4vaW5jbHVkZSAvdXNyL1gxMVI2L2lu
Y2x1ZGUKCWRvc3ltIC4uLy4uL3Vzci8kKGdldF9saWJkaXIpL1gxMS94a2IgL2V0Yy9YMTEveGti
CgoJIyBTb21lIGNyaXRpY2FsIGRpcmVjdG9yaWVzCglpZiAhIHVzZSBtaW5pbWFsOyB0aGVuCgkJ
a2VlcGRpciAvdmFyL2xpYi94ZG0KCQlkb3N5bSAuLi8uLi8uLi92YXIvbGliL3hkbSAvZXRjL1gx
MS94ZG0vYXV0aGRpcgoJZmkKCgkjIEJhY2t3YXJkcyBjb21wYXQsIEZIUywgZXRjLgoJZG9zeW0g
Li4vLi4vdXNyL1gxMVI2L2Jpbi9Yb3JnIC9ldGMvWDExL1gKfQoKbGlidG9vbF9hcmNoaXZlX2lu
c3RhbGwoKSB7CglpZiB1c2Ugb3BlbmdsOyB0aGVuCgkJIyAubGEgZmlsZXMgZm9yIGxpYnRvb2wg
c3VwcG9ydAoJCWluc2ludG8gL3Vzci8kKGdldF9saWJkaXIpCgkJIyAoIzY3NzI5KSBOZWVkcyB0
byBiZSBsaWIsIG5vdCAkKGdldF9saWJkaXIpCgkJZG9pbnMgJHtGSUxFU19ESVJ9L2xpYi8qLmxh
CglmaQp9CgpmaXhfbGlidG9vbF9saWJkaXJfcGF0aHMoKSB7Cglsb2NhbCBkaXJwYXRoCglmb3Ig
YXJjaGl2ZSBpbiAkeyp9IDsgZG8KCQlkaXJwYXRoPSQoZGlybmFtZSAke2FyY2hpdmV9IHwgc2Vk
IC1lICJzOl4ke0R9OjoiKQoJCVtbICR7ZGlycGF0aDo6MX0gPT0gIi8iIF1dIHx8IGRpcnBhdGg9
Ii8iJHtkaXJwYXRofQoJCXNlZCAtaSAke2FyY2hpdmV9IC1lICJzOl5saWJkaXIuKjpsaWJkaXI9
XCcke2RpcnBhdGh9XCc6IgoJZG9uZQp9Cgpjb21wb3NlX2ZpbGVzX2luc3RhbGwoKSB7CgkjIEhh
Y2sgZnJvbSBNYW5kcmFrZSAodXBkYXRlIG91cnMgdGhhdCBqdXN0IGNyZWF0ZWQgQ29tcG9zZSBm
aWxlcyBmb3IKCSMgYWxsIGxvY2FsZXMpCglsb2NhbCB4Cglmb3IgeCBpbiAkKGZpbmQgJHtEfS91
c3IvJChnZXRfbGliZGlyKS9YMTEvbG9jYWxlLyAtbWluZGVwdGggMSAtdHlwZSBkKTsgZG8KCQkj
IG1ha2UgZW1wdHkgQ29tcG9zZSBmaWxlcyBmb3Igc29tZSBsb2NhbGVzCgkJIyBDSksgbXVzdCBu
b3QgaGF2ZSB0aGF0IGZpbGUgKG90aGVyd2lzZSBYSU0gZG9uJ3Qgd29ya3Mgc29tZSB0aW1lcykK
CQljYXNlICQoYmFzZW5hbWUgJHt4fSkgaW4KCQkJQ3xtaWNyb3NvZnQtKnxpc284ODU5LSp8a29p
OC0qKQoJCQkJaWYgWyAhIC1mICR7eH0vQ29tcG9zZSBdOyB0aGVuCgkJCQkJdG91Y2ggJHt4fS9D
b21wb3NlCgkJCQlmaQoJCQkJOzsKCQkJamEqfGtvKnx6aCopCgkJCQlpZiBbIC1yICR7eH0vQ29t
cG9zZSBdOyB0aGVuCgkJCQkJcm0gLWYgJHt4fS9Db21wb3NlCgkJCQlmaQoJCQkJOzsKCQllc2Fj
Cglkb25lCgoJIyBBbm90aGVyIGhhY2sgZnJvbSBNYW5kcmFrZSAtLSB0byBmaXggZGVhZCArIHNw
YWNlIGZvciB0aGUgdXMKCSMgaW50ZXJuYXRpb25hbCBrZXlib2FyZAoJbG9jYWwgaQoJZm9yIGkg
aW4gJHtEfS91c3IvJChnZXRfbGliZGlyKS9YMTEvbG9jYWxlLyovQ29tcG9zZTsgZG8KCQlzZWQg
LWkgXAoJCQktZSAncy9cKDxkZWFkX2RpYWVyZXNpcz4gPHNwYWNlPlwpLiokL1wxIDogIlxcIiIg
cXVvdGVkYmwvJyBcCgkJCS1lICJzL1woPGRlYWRfYWN1dGU+IDxzcGFjZT5cKS4qJC9cMSA6IFwi
J1wiIGFwb3N0cm9waGUvIiAke2l9IFwKCQkJfHwgZWVycm9yICJzZWQgJHtpfSBmYWlsZWQiCglk
b25lCn0KCmVuY29kZV94ZnNmdF9maWxlcygpIHsKCSMgWWV0IG1vcmUgTWFuZHJha2UKCWViZWdp
biAiRW5jb2RpbmcgZmlsZXMgZm9yIHhmc2Z0IGZvbnQgc2VydmVyIgoJCWRvZGlyIC91c3Ivc2hh
cmUvZm9udHMvZW5jb2RpbmdzCgkJY3AgLXBQUiAke1dPUktESVJ9L3Vzci9zaGFyZS9mb250cy9l
bmNvZGluZ3MvKiBcCgkJCSR7RH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncwoKCQlmb3IgeCBp
biAke0R9L3Vzci9zaGFyZS9mb250cy9lbmNvZGluZ3Mvey4sbGFyZ2V9LyouZW5jOyBkbwoJCQlp
ZiBbIC1mICIke3h9IiBdOyB0aGVuCgkJCQlnemlwIC05IC1mICR7eH0gXAoJCQkJCXx8IGVlcnJv
ciAiZ3ppcHBpbmcgJHt4fSBmYWlsZWQiCgkJCWZpCgkJZG9uZQoJZWVuZCAwCn0KCmtvaThfZm9u
dHNfaW5zdGFsbCgpIHsKCWViZWdpbiAiQWRkaW5nIGdlbWluaS1rb2k4IGZvbnRzIgoJCWNkICR7
V09SS0RJUn0vdWtyCgkJZ3VuemlwICouWiB8fCBlZXJyb3IgImd1bnppcHBpbmcgZ2VtaW5pLWtv
aTggZm9udHMgZmFpbGVkIgoJCWd6aXAgLTkgKi5wY2YgfHwgZWVycm9yICJnemlwcGluZyBnZW1p
bmkta29pOCBmb250cyBmYWlsZWQiCgkJY2QgJHtTfQoJCWNwIC1wUFIgJHtXT1JLRElSfS91a3Ig
JHtEfS91c3Ivc2hhcmUvZm9udHMgXAoJCQl8fCBlZXJyb3IgImNvcHlpbmcgZ2VtaW5pLWtvaTgg
Zm9udHMgZmFpbGVkIgoJZWVuZCAwCn0KCmV0Y19maWxlc19pbnN0YWxsKCkgewoJaW5zaW50byAv
ZXRjL1gxMQoKCSMgSW5zdGFsbCBleGFtcGxlIGNvbmZpZyBmaWxlCgluZXdpbnMgJHtTfS9wcm9n
cmFtcy9Yc2VydmVyL2h3L3hmcmVlODYveG9yZy5jb25mIHhvcmcuY29uZi5leGFtcGxlCgoJZXhl
aW50byAvZXRjL1gxMQoJIyBuZXcgc2Vzc2lvbiBtYW5hZ2VtZW50IHNjcmlwdAoJZG9leGUgJHtG
SUxFU19ESVJ9L2Nob29zZXIuc2gKCSMgbmV3IGRpc3BsYXkgbWFuYWdlciBzY3JpcHQKCWRvZXhl
ICR7RklMRVNfRElSfS9zdGFydERNLnNoCglleGVpbnRvIC9ldGMvWDExL1Nlc3Npb25zCgkjIGRv
ZXhlIHNraXBzIGRpcmVjdG9yaWVzLCBzbyB0aGlzIHNob3VsZCBiZSBzYWZlCglkb2V4ZSAke0ZJ
TEVTX0RJUn0vU2Vzc2lvbnMvKgoJaW5zaW50byAvZXRjL2Vudi5kCglkb2lucyAke0ZJTEVTX0RJ
Un0vMTB4b3JnCglpbnNpbnRvIC9ldGMvWDExL3hpbml0Cglkb2lucyAke0ZJTEVTX0RJUn0veGlu
aXRyYwoJaWYgISB1c2UgbWluaW1hbDsgdGhlbgoJCWV4ZWludG8gL2V0Yy9YMTEveGRtCgkJZG9l
eGUgJHtGSUxFU19ESVJ9L1hzZXNzaW9uCgkJZXhlaW50byAvZXRjL2luaXQuZAoJCW5ld2V4ZSAk
e0ZJTEVTX0RJUn0veGRtLnN0YXJ0IHhkbQoJZmkKCWlmIHVzZSBmb250LXNlcnZlcjsgdGhlbgoJ
CWluc2ludG8gL2V0Yy9YMTEvZnMKCQluZXdpbnMgJHtGSUxFU19ESVJ9L3hmcy5jb25maWcgY29u
ZmlnCglmaQoJaWYgdXNlIHBhbTsgdGhlbgoJCWluc2ludG8gL2V0Yy9wYW0uZAoJCW5ld2lucyAk
e0ZJTEVTX0RJUn0veGRtLnBhbWQgeGRtCgkJIyBOZWVkIHRvIGZpeCBjb25zb2xlIHBlcm1pc3Np
b25zIGZpcnN0CgkJbmV3aW5zICR7RklMRVNfRElSfS94c2VydmVyLnBhbWQgeHNlcnZlcgoJZmkK
CWlmIHVzZSBmb250LXNlcnZlcjsgdGhlbgoJCW5ld2V4ZSAke0ZJTEVTX0RJUn0veGZzLnN0YXJ0
IHhmcwoJCWluc2ludG8gL2V0Yy9jb25mLmQKCQluZXdpbnMgJHtGSUxFU19ESVJ9L3hmcy5jb25m
LmQgeGZzCglmaQp9CgpkeW5hbWljX2xpYmdsX2luc3RhbGwoKSB7CgkjIG5leHQgc2VjdGlvbiBp
cyB0byBzZXR1cCB0aGUgZHluYW1pYyBsaWJHTCBzdHVmZgoJZWJlZ2luICJNb3ZpbmcgbGliR0wg
YW5kIGZyaWVuZHMgZm9yIGR5bmFtaWMgc3dpdGNoaW5nIgoJCWRvZGlyIC91c3IvJChnZXRfbGli
ZGlyKS9vcGVuZ2wvJHtQTn0ve2xpYixleHRlbnNpb25zLGluY2x1ZGV9CgkJbG9jYWwgeD0iIgoJ
CWZvciB4IGluICR7RH0vdXNyLyQoZ2V0X2xpYmRpcikvbGliR0wuc28qIFwKCQkJJHtEfS91c3Iv
JChnZXRfbGliZGlyKS9saWJHTC5sYSBcCgkJCSR7RH0vdXNyLyQoZ2V0X2xpYmRpcikvbGliR0wu
YTsgZG8KCQkJaWYgWyAtZiAke3h9IC1vIC1MICR7eH0gXTsgdGhlbgoJCQkJIyBsaWJHTC5hIGNh
dXNlIHByb2JsZW1zIHdpdGggdHV4cmFjZXIsIGV0YwoJCQkJbXYgLWYgJHt4fSAke0R9L3Vzci8k
KGdldF9saWJkaXIpL29wZW5nbC8ke1BOfS9saWIKCQkJZmkKCQlkb25lCgkJCWZvciB4IGluICR7
RH0vdXNyLyQoZ2V0X2xpYmRpcikvbW9kdWxlcy9leHRlbnNpb25zL2xpYmdseCo7IGRvCgkJCWlm
IFsgLWYgJHt4fSAtbyAtTCAke3h9IF07IHRoZW4KCQkJCW12IC1mICR7eH0gJHtEfS91c3IvJChn
ZXRfbGliZGlyKS9vcGVuZ2wvJHtQTn0vZXh0ZW5zaW9ucwoJCQlmaQoJCWRvbmUKCQkjIGdsZXh0
LmggYWRkZWQgZm9yICM1NDk4NAoJCWZvciB4IGluICR7RH0vdXNyL2luY2x1ZGUvR0wve2dsLmgs
Z2x4LmgsZ2x4dG9rZW5zLmgsZ2xleHQuaCxnbHhleHQuaCxnbHhtZC5oLGdseHByb3RvLmh9OyBk
bwoJCQlpZiBbIC1mICR7eH0gLW8gLUwgJHt4fSBdOyB0aGVuCgkJCQltdiAtZiAke3h9ICR7RH0v
dXNyLyQoZ2V0X2xpYmRpcikvb3BlbmdsLyR7UE59L2luY2x1ZGUKCQkJZmkKCQlkb25lCgllZW5k
IDAKfQoKY3Vyc29yX2luc3RhbGwoKSB7CgkjIE1ha2UgdGhlIGNvcmUgY3Vyc29yIHRoZSBkZWZh
dWx0LiAgUGVvcGxlIHNlZW0gbm90IHRvIGxpa2Ugd2hpdGVnbGFzcwoJIyBmb3Igc29tZSByZWFz
b24uCglkb3NlZCAnczp3aGl0ZWdsYXNzOmNvcmU6JyAvdXNyL3NoYXJlL2N1cnNvcnMvJHtQTn0v
ZGVmYXVsdC9pbmRleC50aGVtZQoKCWlmICEgdXNlIG1pbmltYWw7IHRoZW4KCQlpbnN0YWxsX2V4
dHJhX2N1cnNvcnMKCWZpCn0KCnN0cmlwX2V4ZWNzKCkgewoJaWYgdXNlIGRlYnVnIHx8IGhhcyBu
b3N0cmlwICR7RkVBVFVSRVN9OyB0aGVuCgkJZXdhcm4gIkRlYnVnIGJ1aWxkIHR1cm5lZCBvbiBi
eSBVU0U9ZGVidWcgb3IgRkVBVFVSRVM9bm9zdHJpcCIKCQlld2FybiAiTk9UIHN0cmlwcGluZyBi
aW5hcmllcyBhbmQgbGlicmFyaWVzIgoJZWxzZQoJCWxvY2FsIFNUUklQCgkJaWYgWyAhIC16ICIk
e0NCVUlMRH0iIF0gJiYgWyAiJHtDQlVJTER9IiAhPSAiJHtDSE9TVH0iIF07IHRoZW4KCQkJU1RS
SVA9JHtDSE9TVH0tc3RyaXAKCQllbHNlCgkJCVNUUklQPXN0cmlwCgkJZmkKCQllaW5mbyAiU3Ry
aXBwaW5nIGJpbmFyaWVzIGFuZCBsaWJyYXJpZXMuLi4iCgkJIyBUaGlzIGJpdCBJIGdvdCBmcm9t
IFJlZGhhdCAuLi4gc3RyaXAgYmluYXJpZXMgYW5kIGRyaXZlcnMgLi4KCQkjIE5PVEU6ICBXZSBk
byBOT1Qgd2FudCB0byBzdHJpcCB0aGUgZHJpdmVycywgbW9kdWxlcyBvciBEUkkgbW9kdWxlcyEK
CQlsb2NhbCB4CgkJZm9yIHggaW4gJChmaW5kICR7RH0vIC10eXBlIGYgLXBlcm0gKzAxMTEgLWV4
ZWMgZmlsZSB7fSBcOyB8IFwKCQkgICAgICAgICAgIGdyZXAgLXYgJyBzaGFyZWQgb2JqZWN0LCcg
fCBcCgkJICAgICAgICAgICBzZWQgLW4gLWUgJ3MvXlwoLipcKTpbICBdKkVMRi4qLCBub3Qgc3Ry
aXBwZWQvXDEvcCcpOyBkbwoJCQlpZiBbIC1mICR7eH0gXTsgdGhlbgoJCQkJIyBEb250IGRvIHRo
ZSBtb2R1bGVzIC4uLgoJCQkJaWYgWyAiJHt4L1wvdXNyXC8kKGdldF9saWJkaXIpXC9tb2R1bGVz
fSIgPSAiJHt4fSIgXTsgdGhlbgoJCQkJCWVjaG8gIiQoZWNobyAke3gvJHtEfX0pIgoJCQkJCSR7
U1RSSVB9ICR7eH0gfHwgOgoJCQkJZmkKCQkJZmkKCQlkb25lCgkJIyBOb3cgZG8gdGhlIGxpYnJh
cmllcyAuLi4KCQlmb3IgeCBpbiAke0R9L3Vzci97JChnZXRfbGliZGlyKSwkKGdldF9saWJkaXIp
L29wZW5nbC8ke1BOfS9saWJ9Lyouc28uKiBcCgkJCSQoZ2V0X2xpYmRpcikvWDExL2xvY2FsZS8k
KGdldF9saWJkaXIpL2NvbW1vbn0vKi5zby4qOyBkbwoJCQlpZiBbIC1mICR7eH0gXTsgdGhlbgoJ
CQkJZWNobyAiJChlY2hvICR7eC8ke0R9fSkiCgkJCQkke1NUUklQfSAtLXN0cmlwLWRlYnVnICR7
eH0gfHwgOgoJCQlmaQoJCWRvbmUKCWZpCn0KCmluc3RhbGxfZXh0cmFfY3Vyc29ycygpIHsKCSMg
SW5zdGFsbCBUYUQncyBnZW50b28gY3Vyc29ycwoJaW5zaW50byAvdXNyL3NoYXJlL2N1cnNvcnMv
JHtQTn0vZ2VudG9vL2N1cnNvcnMKCWRvaW5zICR7V09SS0RJUn0vY3Vyc29ycy9nZW50b28vY3Vy
c29ycy8qCglpbnNpbnRvIC91c3Ivc2hhcmUvY3Vyc29ycy8ke1BOfS9nZW50b28tYmx1ZS9jdXJz
b3JzCglkb2lucyAke1dPUktESVJ9L2N1cnNvcnMvZ2VudG9vLWJsdWUvY3Vyc29ycy8qCglpbnNp
bnRvIC91c3Ivc2hhcmUvY3Vyc29ycy8ke1BOfS9nZW50b28tc2lsdmVyL2N1cnNvcnMKCWRvaW5z
ICR7V09SS0RJUn0vY3Vyc29ycy9nZW50b28tc2lsdmVyL2N1cnNvcnMvKgp9CgptaW5pbWFsX2lu
c3RhbGwoKSB7CgkJIyBHZXQgcmlkIG9mIGFsbCB1bm5lY2Vzc2FyeSBmb250cyAoc2F2ZXMgfjUu
NSBNQikKCQlmaW5kICR7RH0vdXNyL3NoYXJlL2ZvbnRzL21pc2MvIC1uYW1lICcqLnBjZi5neicg
XAoJCQktbm90IC1uYW1lICcqNngxMyonIC1ub3QgLW5hbWUgJ2N1cnNvci5wY2YuZ3onIC1leGVj
IHJtIHt9IFw7CgkJIyBXb29ob28sIGFub3RoZXIgNzcySwoJCXJtIC1yZiAke0R9L3Vzci9zaGFy
ZS9kb2MKfQoKeHByaW50X2luc3RhbGwoKSB7CgkjIElmIHdlIHdhbnQgeHByaW50LCBzYXZlIHRo
ZSBpbml0IHNjcmlwdCBiZWZvcmUgZGVsZXRpbmcgL2V0Yy9yYy5kLwoJIyBSZXF1ZXN0ZWQgb24g
IzY4MzE2CglpZiB1c2UgeHByaW50OyB0aGVuCgkJeHByaW50X2luaXRfaW5zdGFsbAoJZWxzZQoJ
CSMgZGVsZXRlIHhwcmludCBzdHVmZgoJCXJtIC1mICR7RH0vZXRjL3tpbml0LHByb2ZpbGV9LmQv
eHByaW50KgoJCXJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICR7RH0vZXRjL3tpbml0
LHByb2ZpbGV9LmQKCWZpCgoJIyBSZW1vdmUgdGhlIC9ldGMvcmMuZCBub25zZW5zZSAtLSBub3Qg
ZXZlcnlvbmUgaXMgUmVkSGF0CglybSAtcmYgJHtEfS9ldGMvcmMuZAp9Cgp4cHJpbnRfaW5pdF9p
bnN0YWxsKCkgewoJIyBSSC1zdHlsZSBpbml0IHNjcmlwdCwgd2UgcHJvdmlkZSBhIHdyYXBwZXIK
CWV4ZWludG8gL3Vzci8kKGdldF9saWJkaXIpL21pc2MKCWRvZXhlICR7RH0vZXRjL2luaXQuZC94
cHJpbnQKCXJtIC1mICR7RH0vZXRjL2luaXQuZC94cHJpbnQKCSMgSW5zdGFsbCB0aGUgd3JhcHBl
cgoJbmV3aW5pdGQgJHtGSUxFU19ESVJ9L3hwcmludC5pbml0IHhwcmludAoJIyBwYXRjaCBwcm9m
aWxlIHNjcmlwdHMKCXNlZCAtaSAtZSAiczovYmluL3NoLipnZXRfeHBzZXJ2ZXJsaXN0Oi91c3Iv
JChnZXRfbGliZGlyKS9taXNjL3hwcmludCBnZXRfeHBzZXJ2ZXJsaXN0OmciICR7RH0vZXRjL3By
b2ZpbGUuZC94cHJpbnQqCgkjIG1vdmUgcHJvZmlsZSBzY3JpcHRzLCB3ZSBjYW4ndCB0b3VjaCAv
ZXRjL3Byb2ZpbGUuZC8gaW4gR2VudG9vCglkb2RvYyAke0R9L2V0Yy9wcm9maWxlLmQveHByaW50
KgoJcm0gLWYgJHtEfS9ldGMvcHJvZmlsZS5kL3hwcmludCoKfQoKY29uZmlnX2ZpbGVzX2luc3Rh
bGwoKSB7CgoJIyBGaXggZGVmYXVsdCBjb25maWcgZmlsZXMgYWZ0ZXIgaW5zdGFsbGluZyBmb250
cyB0byAvdXNyL3NoYXJlL2ZvbnRzCglzZWQgLWkgLWUgInM6L3Vzci9YMTFSNi8kKGdldF9saWJk
aXIpL1gxMS9mb250czovdXNyL3NoYXJlL2ZvbnRzOmciIFwKCQktZSAiczovdXNyLyQoZ2V0X2xp
YmRpcikvWDExL2ZvbnRzOi91c3Ivc2hhcmUvZm9udHM6ZyIgXAoJCS1lICJzOi91c3IvJChnZXRf
bGliZGlyKS9mb250czovdXNyL3NoYXJlL2ZvbnRzOmciIFwKCQkke0R9L2V0Yy9YMTEveG9yZy5j
b25mLmV4YW1wbGUKCWlmIHVzZSBmb250LXNlcnZlcjsgdGhlbgoJCXNlZCAtaSAiczovdXNyL1gx
MVI2LyQoZ2V0X2xpYmRpcikvWDExL2ZvbnRzOi91c3Ivc2hhcmUvZm9udHM6ZyIgXAoJCQkke0R9
L2V0Yy9YMTEvZnMvY29uZmlnCglmaQoKCSMgV29yayBhcm91bmQgdXBncmFkZSBwcm9ibGVtIHdo
ZXJlIHBlb3BsZSBoYXZlCgkjIE9wdGlvbiAiWGtiUnVsZXMiICJ4ZnJlZTg2IiBpbiB0aGVpciBj
b25maWcgZmlsZQoJc2VkIC1pICJzOl4uKk9wdGlvbi4qIlhrYlJ1bGVzIi4qJDo6ZyIgJHtEfS9l
dGMvWDExL3hvcmcuY29uZi5leGFtcGxlCn0KCmZpeF9vcGVuZ2xfc3ltbGlua3MoKSB7CgkjIFJl
bW92ZSBpbnZhbGlkIHN5bWxpbmtzCglsb2NhbCBMSU5LCglmb3IgTElOSyBpbiAkKGZpbmQgJHtE
fS91c3IvJChnZXRfbGliZGlyKSBcCgkJLW5hbWUgbGliR0wuKiAtdHlwZSBsKTsgZG8KCQlybSAt
ZiAke0xJTkt9Cglkb25lCgkjIENyZWF0ZSByZXF1aXJlZCBzeW1saW5rcwoJZG9zeW0gbGliR0wu
c28uMS4yIC91c3IvJChnZXRfbGliZGlyKS9saWJHTC5zbwoJZG9zeW0gbGliR0wuc28uMS4yIC91
c3IvJChnZXRfbGliZGlyKS9saWJHTC5zby4xCn0KCiMjIyMjIyMjIyMjIyMjIyMjCiMgcGtnX3By
ZWluc3QoKSAjCiMjIyMjIyMjIyMjIyMjIyMjCgojIFdlIG5lZWQgYSBzeW1saW5rIC91c3IvWDEx
UjYvZGlyIC0+IC91c3IvZGlyIHNvIGFsbCB0aGUgcGFja2FnZXMKIyB3aG9zZSBmaWxlcyB3ZSBt
b3ZlIGRvbid0IGxvc2UgdHJhY2sgb2YgdGhlbS4gQXMgc3VjaCwgd2UgbmVlZAojIF9hYnNvbHV0
ZWx5IG5vdGhpbmdfIGluIC91c3IvWDExUjYvZGlyIHNvIHdlIGNhbiBtYWtlIHN1Y2ggYSBzeW1s
aW5rLgojIERvbm5pZSBCZXJraG9seiA8c3B5ZGVyb3VzQGdlbnRvby5vcmc+IDIwIE9jdG9iZXIg
MjAwNAojCiMgVGFrZXMgdHdvIGFyZ3VtZW50cyAtLSBzdGFydGluZyBsb2NhdGlvbiBhbmQgZW5k
aW5nIGxvY2F0aW9uCm1pZ3JhdGUoKSB7CgllaW5mbyAiTWlncmF0aW5nIGZyb20gJHsxfSB0byAk
ezJ9Li4uIgoKCSMgU3RyaXAgdHJhaWxpbmcgc2xhc2gKCWlmIFsgLXogIiR7MSMjKi99IiBdOyB0
aGVuCgkJc2V0IC0tICR7MSUvfSAkezJ9CglmaQoKCWlmIFsgLWUgJHtST09UfSR7MX0gXTsgdGhl
bgoJCSMgSWYgaXQncyBub3QgYSBzeW1saW5rIChpbiBvdGhlciB3b3JkcywgaXQgc2hvdWxkIGJl
IGEgZGlyZWN0b3J5KQoJCWlmIFsgISAtTCAke1JPT1R9JHsxfSBdOyB0aGVuCgkJCWVpbmZvICIg
ICR7MX0gaXNuJ3QgYSBzeW1saW5rLCBtaWdyYXRpbmcuLi4iCgkJCSMgTW92ZSBldmVyeXRoaW5n
CgkJCQlyc3luYyBcCgkJCQkJLS1hcmNoaXZlIFwKCQkJCQktLXVwZGF0ZSBcCgkJCQkJLS1saW5r
cyBcCgkJCQkJLS1oYXJkLWxpbmtzIFwKCQkJCQktLWlnbm9yZS1leGlzdGluZyBcCgkJCQkJLS1z
dGF0cyBcCgkJCQkJLS1wcm9ncmVzcyBcCgkJCQkJLS12ZXJib3NlIFwKCQkJCQkke1JPT1R9JHsx
fS8gJHtST09UfSR7Mn0gPiAke1R9L21pZ3JhdGUtJHsxLy9cLy8tfS5sb2cgMj4mMQoKCQkJCWNo
ZWNrX21pZ3JhdGVfcmV0dXJuCgkJCQlyZW1vdmVfbWlncmF0ZWRfZmlsZXMgJHsxfQoKCQkJaWYg
WyAtZSAiJHtST09UfSR7MX0iIF07IHRoZW4KCQkJCSMgUmVtb3ZlIGFueSBmbG9hdGluZyAua2Vl
cCBmaWxlcyBzbyB3ZSBjYW4gcnVuIHJtZGlyCgkJCQlmaW5kICR7Uk9PVH0kezF9IC1uYW1lICdc
LmtlZXAnIC1leGVjIHJtIC1mIHt9IFw7CgkJCQkjIEdldCByaWQgb2YgdGhlIGRpcmVjdG9yeQoJ
CQkJcm1kaXIgJHtST09UfSR7MX0KCQkJZmkKCgkJCW1ha2Vfc3ltbGlua3MgJHsxfQoJCWVsc2UK
CQkJZXdhcm4gIiAgICAkezF9IGlzIGEgc3ltbGluaywgbm90IG1pZ3JhdGluZyIKCQlmaQoJZWxz
ZQoJCWV3YXJuICIgICR7MX0gZG9lc24ndCBleGlzdCwgbm90IG1pZ3JhdGluZyIKCQltYWtlX3N5
bWxpbmtzICR7MX0KCWZpCn0KCmNoZWNrX21pZ3JhdGVfcmV0dXJuKCkgewoJTUlHUkFURV9SRVRV
Uk49IiQ/IgoJaWYgWyAiJHtNSUdSQVRFX1JFVFVSTn0iIC1lcSAiMCIgXTsgdGhlbgoJCWVpbmZv
ICJyc3luYyBzdWNjZXNzZnVsISIKCWVsc2UKCQlkaWUgInJzeW5jIGZhaWxlZC4gRXhpdCBjb2Rl
OiAke01JR1JBVEVfUkVUVVJOfS4iCglmaQoKCSMgTWlncmF0aW9uIGZ1YmFycyBsaWIgc3ltbGlu
a3MgLS0gZXJhZGljYXRvcgoJaWYgdXNlIGFtZDY0OyB0aGVuCgkJaWYgW1sgLUwgJHtST09UfXVz
ci9saWI2NCBdXTsgdGhlbgoJCQlybSAke1JPT1R9dXNyL2xpYjY0CgkJCWxuIC1zIGxpYiAke1JP
T1R9dXNyL2xpYjY0CgkJZWxpZiBbWyAtTCAke1JPT1R9dXNyL2xpYiBdXTsgdGhlbgoJCQlybSAt
ZiAke1JPT1R9dXNyL2xpYgoJCQlsbiAtcyBsaWI2NCAke1JPT1R9dXNyL2xpYgoJCWVsaWYgW1sg
LUwgJHtST09UfXVzci9saWIzMiBdXTsgdGhlbgoJCQlpZiBoYXNfbXVsdGlsaWJfcHJvZmlsZTsg
dGhlbgoJCQlsbiAtcyBsaWIgJHtST09UfXVzci9saWIzMgoJCQllbHNlCgkJCQlsbiAtcyAuLi9l
bXVsL2xpbnV4L3g4Ni91c3IvbGliICR7Uk9PVH11c3IvbGliMzIKCQkJZmkKCQlmaQoJZmkKfQoK
cmVtb3ZlX21pZ3JhdGVkX2ZpbGVzKCkgewoJIyBUaGlzIGlzIGEgY29weSBpbnN0ZWFkIG9mIGEg
bW92ZSwgc28gd2UgbmVlZCB0byBnZXQgcmlkIG9mIHdoYXQKCSMgd2UgY29waWVkLiBUaGlzIGlz
IGEgbGl0dGxlIHJpc2t5IGlmIGl0IGZhaWxzLCBzbyBqdXN0IGRvIGl0IG9uCgkjIHN1Y2Nlc3Mu
CgoJIyBETyBOT1QgcHJvY2VlZCBpZiB3ZSBkb24ndCBoYXZlIGFuIGFyZ3VtZW50LCBvciB3ZSBr
aWxsIHJvb3QgZmlsZXN5c3RlbQoJaWYgWyAteiAiJHsxfSIgXTsgdGhlbgoJCWRpZSAiTm8gYXJn
dW1lbnQgdG8gcmVtb3ZlX21pZ3JhdGVkX2ZpbGVzKCkuIFdhbnQgdG8gYHJtIC1yZiAke1JPT1R9
YD8iCglmaQoKCWlmIFsgIiR7TUlHUkFURV9SRVRVUk59IiAtZXEgIjAiIF07IHRoZW4KIwkJcm0g
LXJmdiAke1JPT1R9JHsxfSA+ICR7VH0vbWlncmF0ZS1yZW1vdmUtJHsxLy9cLy8tfS5sb2cgMj4m
MQoJCXJtIC1yZnYgJHtST09UfSR7MX0KCWZpCn0KCm1ha2Vfc3ltbGlua3MoKSB7CgkJCSMgUHV0
IGEgc3ltbGluayBpbiBpdHMgcGxhY2UKCgkJCSMgU3BlY2lhbCBjYXNlOiBsaWIgIT0gbGliZGly
CgkJCWlmIFsgIiR7MSMjKi99IiA9ICIkKGdldF9saWJkaXIpIiAtYSAiJChnZXRfbGliZGlyKSIg
IT0gImxpYiIgXTsgdGhlbgoJCQkJZWluZm8gIiAgICBTeW1saW5raW5nICR7Uk9PVH11c3IvWDEx
UjYvbGliIC0+ICQoZ2V0X2xpYmRpcikiCgkJCQlsbiAtcyAkKGdldF9saWJkaXIpICR7Uk9PVH11
c3IvWDExUjYvbGliCgkJCSMgU3BlY2lhbCBjYXNlOiBmb250cwoJCQllbGlmIFsgIiR7MSMjKi99
IiA9ICJmb250cyIgXTsgdGhlbgoJCQkJZWluZm8gIiAgICBTeW1saW5raW5nICR7Uk9PVH0kezF9
IC0+IC4uLy4uL3NoYXJlL2ZvbnRzIgoJCQkJbG4gLXMgLi4vLi4vc2hhcmUvZm9udHMgJHtST09U
fSR7MX0KCQkJIyBTcGVjaWFsIGNhc2U6IFgxMVI2CgkJCWVsaWYgWyAiJHsxIyMqL30iID0gIlgx
MVI2IiBdOyB0aGVuCgkJCQllaW5mbyAiICAgIFN5bWxpbmtpbmcgJHtST09UfSR7MX0gLT4gLi4v
dXNyIgoJCQkJbG4gLXMgLi4vdXNyICR7Uk9PVH0kezF9CgkJCWVsc2UKCQkJCWVpbmZvICIgICAg
U3ltbGlua2luZyAke1JPT1R9JHsxfSAtPiAuLi8kezEjIyovfSIKCQkJCWxuIC1zIC4uLyR7MSMj
Ki99ICR7Uk9PVH0kezF9CgkJCWZpCn0KCnVwZGF0ZV9jb25maWdfZmlsZXMoKSB7CgkjIEZpeCBh
bnkgaW5zdGFsbGVkIGNvbmZpZyBmaWxlcyBmb3IgaW5zdGFsbGluZyBmb250cyB0byAvdXNyL3No
YXJlL2ZvbnRzCgkjIFRoaXMgKm5lZWRzKiB0byBiZSBhZnRlciBhbGwgb3RoZXIgaW5zdGFsbGF0
aW9uIHNvIGZpbGVzIGFyZW4ndAoJIyBvdmVyd3JpdHRlbi4KCglpZiBbICIke1JPT1R9IiA9ICIv
IiBdOyB0aGVuCgkJZWluZm8gIlByZXBhcmluZyBhbnkgaW5zdGFsbGVkIGNvbmZpZ3VyYXRpb24g
ZmlsZXMgZm9yIGZvbnQgbW92ZS4uLiIKCQlGSUxFUz0iL2V0Yy9YMTEveG9yZy5jb25mCgkJCS9l
dGMvWDExL1hGODZDb25maWctNAoJCQkvZXRjL1gxMS9YRjg2Q29uZmlnIgoJCWlmIHVzZSBmb250
LXNlcnZlcjsgdGhlbgoJCQlGSUxFUz0iJHtGSUxFU30gL2V0Yy9YMTEvZnMvY29uZmlnIgoJCWZp
CgkJIwkvZXRjL2ZvbnRzL2ZvbnRzLmNvbmYKCQkjCS9ldGMvZm9udHMvbG9jYWwuY29uZgoKCQls
b2NhbCBGSUxFCgkJZm9yIEZJTEUgaW4gJHtGSUxFU307IGRvCgkJCWlmIFsgLWUgJHtGSUxFfSBd
OyB0aGVuCgkJCQkjIE5ldyBmb250IHBhdGhzCgkJCQlzZWQgInMsL3Vzci9YMTFSNi8kKGdldF9s
aWJkaXIpL1gxMS9mb250cywvdXNyL3NoYXJlL2ZvbnRzLGciIFwKCQkJCQkke1JPT1R9JHtGSUxF
fSA+ICR7SU1BR0V9JHtGSUxFfQoKCQkJCWlmIFsgIiR7RklMRX0iID0gIi9ldGMvWDExL3hvcmcu
Y29uZiIgXSBcCgkJCQkJfHwgWyAiJHtGSUxFfSIgPSAiL2V0Yy9YMTEvWEY4NkNvbmZpZyIgXSBc
CgkJCQkJfHwgWyAiJHtGSUxFfSIgPSAiL2V0Yy9YMTEvWEY4NkNvbmZpZy00IiBdOyB0aGVuCgkJ
CQkJIyAia2V5Ym9hcmQiIGRyaXZlciBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQs
CgkJCQkJIyBzd2l0Y2ggdG8gImtiZCIKCQkJCQlzZWQgLWkgJ3N+XlwoWyBcdF0qRHJpdmVyWyBc
dF1cK1wpIltrS11leWJvYXJkIn5cMSJrYmQificgXAoJCQkJCQkke0lNQUdFfSR7RklMRX0KCgkJ
CQkJIyBUaGlzIG1vdmVkIGluIHRoZSAvdXNyL1gxMVI2L2xpYmRpciAtPiAvdXNyL2xpYmRpciBj
aGFuZ2UKCQkJCQlzZWQgLWkgXAoJCQkJCQktZSAnc35eXChbIFx0XSpSZ2JQYXRoWyBcdF1cK1wp
Ii91c3IvWDExUjYvJChnZXRfbGliZGlyKS9YMTEvcmdiIn5cMSIvdXNyLyQoZ2V0X2xpYmRpcikv
WDExL3JnYiJ+JyBcCgkJCQkJCS1lICdzfl5cKFsgXHRdKlJnYlBhdGhbIFx0XVwrXCkiL3Vzci9Y
MTFSNi9saWIvWDExL3JnYiJ+XDEiL3Vzci9saWIvWDExL3JnYiJ+JyBcCgkJCQkJCSR7SU1BR0V9
JHtGSUxFfQoKCQkJCQkjIFdvcmsgYXJvdW5kIHVwZ3JhZGUgcHJvYmxlbSB3aGVyZSBwZW9wbGUg
aGF2ZQoJCQkJCSMgT3B0aW9uICJYa2JSdWxlcyIgInhmcmVlODYiIGluIHRoZWlyIGNvbmZpZyBm
aWxlCgkJCQkJc2VkIC1pICJzOl4uKk9wdGlvbi4qXCJYa2JSdWxlc1wiLiokOjpnIiBcCgkJCQkJ
CSR7SU1BR0V9JHtGSUxFfQoJCQkJZmkKCQkJZmkKCQlkb25lCglmaQp9CgpjbGVhbnVwX2ZvbnRz
KCkgewoJbG9jYWwgR19GT05URElSUwoJR19GT05URElSUz0iU3BlZWRvIGVuY29kaW5ncyBsb2Nh
bCBtaXNjIHV0aWwiCglpZiB1c2UgdHJ1ZXR5cGUtZm9udHM7IHRoZW4KCQlHX0ZPTlRESVJTPSIk
e0dfRk9OVERJUlN9IFRURiIKCWZpCglpZiB1c2UgdHlwZTEtZm9udHM7IHRoZW4KCQlHX0ZPTlRE
SVJTPSIke0dfRk9OVERJUlN9IFR5cGUxIgoJZmkKCWlmIHVzZSBjams7IHRoZW4KCQlHX0ZPTlRE
SVJTPSIke0dfRk9OVERJUlN9IENJRCIKCWZpCglpZiB1c2UgYml0bWFwLWZvbnRzOyB0aGVuCgkJ
R19GT05URElSUz0iJHtHX0ZPTlRESVJTfSA3NWRwaSAxMDBkcGkiCglmaQoJaWYgdXNlIG5sczsg
dGhlbgoJCUdfRk9OVERJUlM9IiR7R19GT05URElSU30gY3lyaWxsaWMgdWtyIgoJZmkKCglmb3Ig
R19GT05URElSIGluICR7R19GT05URElSU307IGRvCgkJIyBjbGVhbiBvdXQgb2xkIGZvbnRzLiog
YW5kIGVuY29kaW5ncy5kaXIgZmlsZXMsIGFzIHdlCgkJIyB3aWxsIHJlZ2VuZXJhdGUgdGhlbQoJ
CSMgTm90IFNwZWVkbyBvciBDSUQsIGFzIHRoZWlyIGZvbnRzLnNjYWxlIGZpbGVzIGFyZSAicmVh
bCIKCQlpZiBbICIke0dfRk9OVERJUn0iICE9ICJDSUQiIC1hICIke0dfRk9OVERJUn0iICE9ICJT
cGVlZG8iIF07IHRoZW4KCQkJZmluZCAke1JPT1R9L3Vzci9zaGFyZS9mb250cy8ke0dfRk9OVERJ
Un0gLXR5cGUgZiAtbmFtZSAnZm9udHMuKicgXAoJCQkJLW8gLW5hbWUgJ2VuY29kaW5ncy5kaXIn
IC1leGVjIHJtIC1mdiB7fSBcOwoJCWZpCglkb25lCgoJIyBHZXQgcmlkIG9mIGRlcHJlY2F0ZWQg
ZGlyZWN0b3JpZXMgc28gb3VyIHN5bWxpbmtzIGluIHRoZSBzYW1lIGxvY2F0aW9uCgkjIHdvcmsg
LS0gdXNlcnMgc2hvdWxkbid0IGJlIHBsYWNpbmcgZm9udHMgaGVyZSBzbyB0aGF0IHNob3VsZCBi
ZSBmaW5lLAoJIyB0aGV5IHNob3VsZCBiZSB1c2luZyB+Ly5mb250cyBvciAvdXNyL3NoYXJlL2Zv
bnRzLiA8c3B5ZGVyb3VzPgoJcmVtb3ZlX2ZvbnRfZGlycwp9CgpyZW1vdmVfZm9udF9kaXJzKCkg
ewoJaWYgWyAtZSAke1JPT1R9L3Vzci9YMTFSNi8kKGdldF9saWJkaXIpL1gxMS9mb250cyBdOyB0
aGVuCgkJaWYgWyAhIC1MICR7Uk9PVH0vdXNyL1gxMVI2LyQoZ2V0X2xpYmRpcikvWDExL2ZvbnRz
IF07IHRoZW4KCQkJbG9jYWwgR19GT05URElSCgkJCWZvciBHX0ZPTlRESVIgaW4gJHtST09UfS91
c3IvWDExUjYvJChnZXRfbGliZGlyKS9YMTEvZm9udHMvKjsgZG8KCQkJCWlmIFsgLUwgIiR7R19G
T05URElSfSIgXTsgdGhlbgoJCQkJCWVpbmZvICJSZW1vdmluZyAke0dfRk9OVERJUn0gc3ltbGlu
ay4iCgkJCQkJcm0gLXJmdiAke0dfRk9OVERJUn0KCQkJCWVsc2UKCQkJCQlld2FybiAiJHtHX0ZP
TlRESVJ9IG5vdCBhIHN5bWxpbmssIG1vdmluZyB0byAvdXNyL3NoYXJlL2ZvbnRzIgoJCQkJCWlm
IFsgLWQgJHtHX0ZPTlRESVJ9IF07IHRoZW4KCQkJCQkJaWYgWyAhIC1lIC91c3Ivc2hhcmUvZm9u
dHMvJHtHX0ZPTlRESVIjIyovfSBdOyB0aGVuCgkJCQkJCQllaW5mbyAiTW92aW5nICR7R19GT05U
RElSfSB0byAvdXNyL3NoYXJlL2ZvbnRzLy4iCgkJCQkJCQltdiAke0dfRk9OVERJUn0gL3Vzci9z
aGFyZS9mb250cy8KCQkJCQkJZWxzZQoJCQkJCQkJZXdhcm4gIi91c3Ivc2hhcmUvZm9udHMvJHtH
X0ZPTlRESVIjIyovfSBleGlzdHMuIFJlbW92ZSBpdCBhbmQgdHJ5IGFnYWluLiIKCQkJCQkJZmkK
CQkJCQllbHNlCgkJCQkJCWV3YXJuICIke0dfRk9OVERJUn0gZG9lcyBub3QgZXhpc3QuIgoJCQkJ
CWZpCgkJCQlmaQoJCQlkb25lCgkJZmkKCWVsc2UKCQlld2FybiAiJHtST09UfS91c3IvWDExUjYv
JChnZXRfbGliZGlyKS9YMTEvZm9udHMgZG9lcyBub3QgZXhpc3QuIgoJZmkKfQoKbW92ZV9hcHBf
ZGVmYXVsdHNfdG9fZXRjKCkgewoJaWYgWyAtTCAke1JPT1R9L2V0Yy9YMTEvYXBwLWRlZmF1bHRz
IF07IHRoZW4KCQlybSAtZiAke1JPT1R9L2V0Yy9YMTEvYXBwLWRlZmF1bHRzCglmaQoKCWlmIFsg
ISAtTCAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpL2FwcC1kZWZhdWx0cyBdIFwKCQkmJiBbIC1k
ICR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikvYXBwLWRlZmF1bHRzIF07IHRoZW4KCQlpZiBbICEg
LWQgJHtST09UfS9ldGMvWDExL2FwcC1kZWZhdWx0cyBdOyB0aGVuCgkJCW1rZGlyIC1wICR7Uk9P
VH0vZXRjL1gxMS9hcHAtZGVmYXVsdHMKCQlmaQoKCQltdiAtZiAke1JPT1R9L3Vzci8kKGdldF9s
aWJkaXIpL2FwcC1kZWZhdWx0cyAke1JPT1R9L2V0Yy9YMTEKCWZpCn0KCm1vdmVfeGtiX3RvX3Vz
cigpIHsKCWlmIFsgLUwgJHtST09UfS91c3IvJChnZXRfbGliZGlyKS94a2IgXTsgdGhlbgoJCXJt
IC1mICR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikveGtiCglmaQoKCWlmIFsgISAtTCAke1JPT1R9
L2V0Yy9YMTEveGtiIF0gXAoJCSYmIFsgLWQgJHtST09UfS9ldGMvWDExL3hrYiBdOyB0aGVuCgkJ
aWYgWyAhIC1kICR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikveGtiIF07IHRoZW4KCQkJbWtkaXIg
LXAgJHtST09UfS91c3IvJChnZXRfbGliZGlyKQoJCWZpCgoJICAgIG12IC1mICR7Uk9PVH0vZXRj
L1gxMS94a2IgJHtST09UfS91c3IvJChnZXRfbGliZGlyKQoJZmkKfQoKZHluYW1pY19saWJnbF9w
cmVpbnN0KCkgewoJIyBjbGVhbiB0aGUgZHluYW1pYyBsaWJHTCBzdHVmZidzIGhvbWUgdG8gZW5z
dXJlCgkjIHdlIGRvbid0IGhhdmUgc3RhbGUgbGlicyBmbG9hdGluZyBhcm91bmQKCWlmIFsgLWQg
JHtST09UfS91c3IvJChnZXRfbGliZGlyKS9vcGVuZ2wvJHtQTn0gXTsgdGhlbgoJCXJtIC1yZiAk
e1JPT1R9L3Vzci8kKGdldF9saWJkaXIpL29wZW5nbC8ke1BOfS8qCglmaQoKCSMgbWFrZSBzdXJl
IHdlIGRvIG5vdCBoYXZlIGFueSBzdGFsZSBmaWxlcyBseWluZyBhcm91bmQKCSMgdGhhdCBjb3Vs
ZCBicmVhayB0aGluZ3MuIENoZWNrIG9sZCBhbmQgbmV3IGxvY2F0aW9ucy4KCXJtIC1mICR7Uk9P
VH0vdXNyL1gxMVI2LyQoZ2V0X2xpYmRpcikvbGliR0xcLiogXAoJCSR7Uk9PVH0vdXNyLyQoZ2V0
X2xpYmRpcikvbGliR0xcLioKfQoKIyMjIyMjIyMjIyMjIyMjIyMjCiMgcGtnX3Bvc3RpbnN0KCkg
IwojIyMjIyMjIyMjIyMjIyMjIyMKCmZvbnRfc2V0dXAoKSB7Cgl1bWFzayAwMjIKCgkjIFRoZXNl
IGNhdXNlIHR0bWtmZGlyIHRvIHNlZ2ZhdWx0IDovCglybSAtZiAke1JPT1R9L3Vzci9zaGFyZS9m
b250cy9lbmNvZGluZ3MvaXNvODg1OS02Ljh4LmVuYy5negoJcm0gLWYgJHtST09UfS91c3Ivc2hh
cmUvZm9udHMvZW5jb2RpbmdzL2lzbzg4NTktNi4xNi5lbmMuZ3oKIwlybSAtZiAke1JPT1R9L3Vz
ci9zaGFyZS9mb250cy9lbmNvZGluZ3MvbGFyZ2UvY25zMTE2NDMtMS5lbmMKIwlybSAtZiAke1JP
T1R9L3Vzci9zaGFyZS9mb250cy9lbmNvZGluZ3MvbGFyZ2UvY25zMTE2NDMtMi5lbmMKIwlybSAt
ZiAke1JPT1R9L3Vzci9zaGFyZS9mb250cy9lbmNvZGluZ3MvbGFyZ2UvY25zMTE2NDMtMy5lbmMK
IwlybSAtZiAke1JPT1R9L3Vzci9zaGFyZS9mb250cy9lbmNvZGluZ3Mvc3VuZXUtZ3JlZWsuZW5j
CgoJIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgoJIyAgQSBub3RlIGFib3V0IGZvbnRzIGFuZCBuZWVkZWQgZmlsZXM6
CgkjCgkjICAxKSAgQ3JlYXRlIC91c3Ivc2hhcmUvZm9udHMvZW5jb2RpbmdzL2VuY29kaW5ncy5k
aXIKCSMKCSMgIDIpICBDcmVhdGUgZm9udHMuc2NhbGUgZm9yIFRydWVUeXBlIGZvbnRzIChuZWVk
IHRvIGRvIHRoaXMgYmVmb3JlCgkjICAgICAgd2UgY3JlYXRlIGZvbnRzLmRpciBmaWxlcywgZWxz
ZSBmb250cy5kaXIgZmlsZXMgd2lsbCBiZQoJIyAgICAgIGludmFsaWQgZm9yIFRydWVUeXBlIGZv
bnRzLi4uKQoJIwoJIyAgMykgIE5vdyBHZW5lcmF0ZSBmb250cy5kaXIgZmlsZXMuCgkjCgkjICBD
SUQgZm9udHMgaXMgYSBiaXQgbW9yZSBpbnZvbHZlZCwgYnV0IGFzIHdlIGRvIG5vdCBpbnN0YWxs
IGFueSwKCSMgIHRodXMgSSBhbSBub3QgZ29pbmcgdG8gYm90aGVyLgoJIwoJIyAgPGF6YXJhaEBn
ZW50b28ub3JnPiAoMjAgT2N0IDIwMDIpCgkjCgkjICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoJZWJlZ2luICJHZW5l
cmF0aW5nIGVuY29kaW5ncy5kaXIiCgkJIyBDcmVhdGUgdGhlIGVuY29kaW5ncy5kaXIgaW4gL3Vz
ci9zaGFyZS9mb250cy9lbmNvZGluZ3MKCQlMRF9MSUJSQVJZX1BBVEg9IiR7TERfTElCUkFSWV9Q
QVRIfToke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpIiBcCgkJJHtST09UfS91c3IvYmluL21rZm9u
dGRpciAtbiBcCgkJCS1lICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncyBcCgkJCS1l
ICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy9sYXJnZSBcCgkJCS0tICR7Uk9PVH0v
dXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncwoKCWVlbmQgMAoKCWViZWdpbiAiQ3JlYXRpbmcgZm9u
dHMuc2NhbGUgZmlsZXMiCgkJbG9jYWwgeAoJCWZvciB4IGluICQoZmluZCAke1JPT1R9L3Vzci9z
aGFyZS9mb250cy8qIC1tYXhkZXB0aCAxIC10eXBlIGQpOyBkbwoJCQlbIC16ICIkKGxzICR7eH0v
KSIgXSAmJiBjb250aW51ZQoJCQlbICIkKGxzICR7eH0vKSIgPSAiZm9udHMuY2FjaGUtMSIgXSAm
JiBjb250aW51ZQoKCQkJIyBPbmx5IGdlbmVyYXRlIC5zY2FsZSBmaWxlcyBpZiB0cnVldHlwZSwg
b3BlbnR5cGUgb3IgdHlwZTEKCQkJIyBmb250cyBhcmUgcHJlc2VudCAuLi4KCgkJCSMgRmlyc3Qg
dHJ1ZXR5cGUgKHR0Zix0dGMpCgkJCSMgTk9URTogdHRta2ZkaXIgZG9lcyBOT1Qgd29yayBvbiB0
eXBlMSBmb250cyAoIzUzNzUzKQoJCQkjIEFsc28sIHRoZXJlIGlzIG5vIHdheSB0byByZWdlbmVy
YXRlIFNwZWVkby9DSUQgZm9udHMuc2NhbGUKCQkJIyA8c3B5ZGVyb3VzQGdlbnRvby5vcmc+IDIg
QXVndXN0IDIwMDQKCQkJaWYgWyAiJHt4L2VuY29kaW5nc30iID0gIiR7eH0iIC1hIFwKCQkJCS1u
ICIkKGZpbmQgJHt4fSAtaW5hbWUgJyoudHRbY2ZdJyAtcHJpbnQpIiBdOyB0aGVuCgkJCQlpZiBb
IC14ICR7Uk9PVH0vdXNyL2Jpbi90dG1rZmRpciBdOyB0aGVuCgkJCQkJTERfTElCUkFSWV9QQVRI
PSIke0xEX0xJQlJBUllfUEFUSH06JHtST09UfS91c3IvJChnZXRfbGliZGlyKSIgXAoJCQkJCSR7
Uk9PVH0vdXNyL2Jpbi90dG1rZmRpciAteCAyIFwKCQkJCQkJLWUgJHtST09UfS91c3Ivc2hhcmUv
Zm9udHMvZW5jb2RpbmdzL2VuY29kaW5ncy5kaXIgXAoJCQkJCQktbyAke3h9L2ZvbnRzLnNjYWxl
IC1kICR7eH0KCQkJCQkjIHR0bWtmZGlyIGZhaWxzIG9uIHNvbWUgc3R1ZmYsIHNvIHRyeSBta2Zv
bnRzY2FsZSBpZiBpdCBkb2VzCgkJCQkJbG9jYWwgdHRta2ZkaXJfcmV0dXJuPSQ/CgkJCQllbHNl
CgkJCQkJIyBXZSBkaWRuJ3QgdXNlIHR0bWtmZGlyIGF0IGFsbAoJCQkJCWxvY2FsIHR0bWtmZGly
X3JldHVybj0yCgkJCQlmaQoJCQkJaWYgWyAke3R0bWtmZGlyX3JldHVybn0gLW5lIDAgXTsgdGhl
bgoJCQkJCUxEX0xJQlJBUllfUEFUSD0iJHtMRF9MSUJSQVJZX1BBVEh9OiR7Uk9PVH0vdXNyLyQo
Z2V0X2xpYmRpcikiIFwKCQkJCQkke1JPT1R9L3Vzci9iaW4vbWtmb250c2NhbGUgXAoJCQkJCQkt
YSAvdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy9lbmNvZGluZ3MuZGlyIFwKCQkJCQkJLS0gJHt4
fQoJCQkJZmkKCQkJIyBOZXh0IHR5cGUxIGFuZCBvcGVudHlwZSAocGZhLHBmYixvdGYsb3RjKQoJ
CQllbGlmIFsgIiR7eC9lbmNvZGluZ3N9IiA9ICIke3h9IiAtYSBcCgkJCQktbiAiJChmaW5kICR7
eH0gLWluYW1lICcqLltwb11bZnRdW2FiY2ZdJyAtcHJpbnQpIiBdOyB0aGVuCgkJCQlMRF9MSUJS
QVJZX1BBVEg9IiR7TERfTElCUkFSWV9QQVRIfToke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpIiBc
CgkJCQkke1JPT1R9L3Vzci9iaW4vbWtmb250c2NhbGUgXAoJCQkJCS1hICR7Uk9PVH0vdXNyL3No
YXJlL2ZvbnRzL2VuY29kaW5ncy9lbmNvZGluZ3MuZGlyIFwKCQkJCQktLSAke3h9CgkJCWZpCgkJ
ZG9uZQoJZWVuZCAwCgoJZWJlZ2luICJHZW5lcmF0aW5nIGZvbnRzLmRpciBmaWxlcyIKCQlmb3Ig
eCBpbiAkKGZpbmQgJHtST09UfS91c3Ivc2hhcmUvZm9udHMvKiAtbWF4ZGVwdGggMSAtdHlwZSBk
KTsgZG8KCQkJWyAteiAiJChscyAke3h9LykiIF0gJiYgY29udGludWUKCQkJWyAiJChscyAke3h9
LykiID0gImZvbnRzLmNhY2hlLTEiIF0gJiYgY29udGludWUKCgkJCWlmIFsgIiR7eC9lbmNvZGlu
Z3N9IiA9ICIke3h9IiBdOyB0aGVuCgkJCQlMRF9MSUJSQVJZX1BBVEg9IiR7TERfTElCUkFSWV9Q
QVRIfToke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpIiBcCgkJCQkke1JPT1R9L3Vzci9iaW4vbWtm
b250ZGlyIFwKCQkJCQktZSAke1JPT1R9L3Vzci9zaGFyZS9mb250cy9lbmNvZGluZ3MgXAoJCQkJ
CS1lICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzL2VuY29kaW5ncy9sYXJnZSBcCgkJCQkJLS0gJHt4
fQoJCQlmaQoJCWRvbmUKCWVlbmQgMAoKCWViZWdpbiAiR2VuZXJhdGluZyBYZnQgY2FjaGUiCgkJ
Zm9yIHggaW4gJChmaW5kICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzLyogLW1heGRlcHRoIDEgLXR5
cGUgZCk7IGRvCgkJCVsgLXogIiQobHMgJHt4fS8pIiBdICYmIGNvbnRpbnVlCgkJCVsgIiQobHMg
JHt4fS8pIiA9ICJmb250cy5jYWNoZS0xIiBdICYmIGNvbnRpbnVlCgoJCQkjIE9ubHkgZ2VuZXJh
dGUgWGZ0Q2FjaGUgZmlsZXMgaWYgdGhlcmUgYXJlIHRydWV0eXBlCgkJCSMgZm9udHMgcHJlc2Vu
dCAuLi4KCQkJaWYgWyAiJHt4L2VuY29kaW5nc30iID0gIiR7eH0iIC1hIFwKCQkJICAgICAtbiAi
JChmaW5kICR7eH0gLWluYW1lICcqLltvdHBzXVtwZnRdW2NmYWRdJyAtcHJpbnQpIiBdOyB0aGVu
CgkJCQlMRF9MSUJSQVJZX1BBVEg9IiR7TERfTElCUkFSWV9QQVRIfToke1JPT1R9L3Vzci8kKGdl
dF9saWJkaXIpIiBcCgkJCQkke1JPT1R9L3Vzci9iaW4veGZ0Y2FjaGUgJHt4fSAmPiAvZGV2L251
bGwKCQkJZmkKCQlkb25lCgllZW5kIDAKCgllYmVnaW4gIkZpeGluZyBwZXJtaXNzaW9ucyIKCQlm
aW5kICR7Uk9PVH0vdXNyL3NoYXJlL2ZvbnRzLyAtdHlwZSBmIC1uYW1lICdmb250LionIFwKCQkJ
LWV4ZWMgY2htb2QgMDY0NCB7fSBcOwoJZWVuZCAwCgoJIyBkYW5hcm1hayBmb3VuZCBvdXQgdGhh
dCBmYy1jYWNoZSBzaG91bGQgYmUgcnVuIEFGVEVSIGFsbCB0aGUgYWJvdmUKCSMgc3R1ZmYsIGFz
IG90aGVyd2lzZSB0aGUgY2FjaGUgaXMgaW52YWxpZCwgYW5kIGhhcyB0byBiZSBydW4gYWdhaW4K
CSMgYXMgcm9vdCBhbnl3YXkKCWlmIFsgLXggJHtST09UfS91c3IvYmluL2ZjLWNhY2hlIF07IHRo
ZW4KCQllYmVnaW4gIkNyZWF0aW5nIEZDIGZvbnQgY2FjaGUiCgkJCUhPTUU9Ii9yb290IiAke1JP
T1R9L3Vzci9iaW4vZmMtY2FjaGUKCQllZW5kIDAKCWZpCn0KCnN3aXRjaF9vcGVuZ2xfaW1wbGVt
KCkgewoJCSMgU3dpdGNoIHRvIHRoZSB4b3JnIGltcGxlbWVudGF0aW9uLgoJCSMgVXNlIG5ldyBv
cGVuZ2wtdXBkYXRlIHRoYXQgd2lsbCBub3QgcmVzZXQgdXNlciBzZWxlY3RlZAoJCSMgT3BlbkdM
IGludGVyZmFjZSAuLi4KCQllY2hvCgkJbG9jYWwgb3BlbmdsX2ltcGxlbT0iJCgke1JPT1R9L3Vz
ci9zYmluL29wZW5nbC11cGRhdGUgLS1nZXQtaW1wbGVtZW50YXRpb24pIgoJCSR7Uk9PVH0vdXNy
L3NiaW4vb3BlbmdsLXVwZGF0ZSAtLXVzZS1vbGQgJHtQTn0KfQoKcmVtb3ZlX29sZF9jb21wb3Nl
X2ZpbGVzKCkgewoJZm9yIHggaW4gJChmaW5kICR7Uk9PVH0vdXNyLyQoZ2V0X2xpYmRpcikvWDEx
L2xvY2FsZS8gLW1pbmRlcHRoIDEgLXR5cGUgZCk7IGRvCgkJIyBSZW1vdmUgb2xkIGNvbXBvc2Ug
ZmlsZXMgd2UgbWlnaHQgaGF2ZSBjcmVhdGVkIGluY29ycmVjdGx5CgkJIyBDSksgbXVzdCBub3Qg
aGF2ZSB0aGF0IGZpbGUgKG90aGVyd2lzZSBYSU0gZG9uJ3Qgd29ya3Mgc29tZSB0aW1lcykKCQlj
YXNlICQoYmFzZW5hbWUgJHt4fSkgaW4KCQkJamEqfGtvKnx6aCopCgkJCQlpZiBbIC1yICIke3h9
L0NvbXBvc2UiIF07IHRoZW4KCQkJCQlybSAtZiAke3h9L0NvbXBvc2UKCQkJCWZpCgkJCQk7OwoJ
CWVzYWMKCWRvbmUKfQoKc2V0dXBfdG1wX2ZpbGVzKCkgewoJIyBUaGVzZSBuZWVkIHRvIGJlIG93
bmVkIGJ5IHJvb3QgYW5kIHRoZSBjb3JyZWN0IHBlcm1pc3Npb25zCgkjIChidWcgIzgyODEpCgls
b2NhbCB4PSIiCglmb3IgeCBpbiAke1JPT1R9L3RtcC8ue0lDRSxYMTF9LXVuaXg7IGRvCgkJaWYg
WyAhIC1kICR7eH0gXTsgdGhlbgoJCQlta2RpciAtcCAke3h9CgkJZmkKCgkJY2hvd24gcm9vdDp3
aGVlbCAke3h9CgkJY2htb2QgMTc3NyAke3h9Cglkb25lCn0KCnByaW50X2luZm8oKSB7CgllY2hv
CgllaW5mbyAiUGxlYXNlIG5vdGUgdGhhdCB0aGUgeGN1cnNvcnMgYXJlIGluIC91c3Ivc2hhcmUv
Y3Vyc29ycy8ke1BOfS4iCgllaW5mbyAiQW55IGN1c3RvbSBjdXJzb3Igc2V0cyBzaG91bGQgYmUg
cGxhY2VkIGluIHRoYXQgZGlyZWN0b3J5LiIKCWVjaG8KCWVpbmZvICJJZiB5b3Ugd2lzaCB0byBz
ZXQgc3lzdGVtLXdpZGUgZGVmYXVsdCBjdXJzb3JzLCBwbGVhc2UgY3JlYXRlIgoJZWluZm8gIi91
c3IvbG9jYWwvc2hhcmUvY3Vyc29ycy8ke1BOfS9kZWZhdWx0L2luZGV4LnRoZW1lIgoJZWluZm8g
IndpdGggY29udGVudDogXCJJbmhlcml0cz10aGVtZV9uYW1lXCIgc28gdGhhdCBmdXR1cmUiCgll
aW5mbyAiZW1lcmdlcyB3aWxsIG5vdCBvdmVyd3JpdGUgdGhvc2Ugc2V0dGluZ3MuIgoJZWNobwoJ
ZWluZm8gIkxpc3RlbmluZyBvbiBUQ1AgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCB3aXRoIHN0YXJ0
eC4iCgllaW5mbyAiVG8gZW5hYmxlIGl0LCBlZGl0IC91c3IvYmluL3N0YXJ0eC4iCgllY2hvCgoJ
ZWluZm8gIklmIHlvdSBoYXZlIGEgUmFkZW9uLCBzZXQgdGhpcyBvcHRpb24gZm9yIGRpcmVjdCBy
ZW5kZXJpbmc6IgoJZWluZm8gIk9wdGlvbiBcIkNvbG9yVGlsaW5nXCIgXCJmYWxzZVwiIgoJZWlu
Zm8gIlRoZSBNZXNhIGluIHRoZXNlIGRldmVsb3BtZW50YWwgc25hcHNob3RzIGlzIG91dCBvZiBk
YXRlLiIKCWVjaG8KCWVpbmZvICJCaW5hcnkgZHJpdmVycyBtYXkgYmUgYnJva2VuIGluID49Ni44
Ljk5LjguIgoJZWluZm8gIlNlZSBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMDY2LiIKCgkjICgjNzY5ODUpCgllaW5mbyAiVmlzaXQgaHR0cDovL3d3dy5nZW50
b28ub3JnL2RvYy9lbi9pbmRleC54bWw/Y2F0aWQ9ZGVza3RvcCIKCWVpbmZvICJmb3IgbW9yZSBp
bmZvcm1hdGlvbiBvbiBjb25maWd1cmluZyBYLiIKCgkjIFRyeSB0byBnZXQgcGVvcGxlIHRvIHJl
YWQgdGhpcywgcGVuZGluZyAjMTEzNTkKCWViZWVwIDUKCWVwYXVzZSAxMAp9CgpmaXhfbGlua3Mo
KSB7CgkjIEZpeCBwcm9ibGVtYXRpYyBsaW5rcwoJaWYgWyAteCAke1JPT1R9L3Vzci9iaW4vWG9y
ZyBdOyB0aGVuCgkJbG4gLXNuZiAuLi9iaW4gJHtST09UfS91c3IvYmluL1gxMQoJZmkKfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85327</attachid>
            <date>2006-04-23 23:30 0000</date>
            <desc>xorg-server-1.0.2-r4.ebuild</desc>
            <filename>xorg-server-1.0.2-r4.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA2IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L3gxMS1iYXNlL3hvcmctc2VydmVyL3hvcmctc2Vy
dmVyLTEuMC4yLXIzLmVidWlsZCx2IDEuNSAyMDA2LzA0LzIzIDIyOjMyOjE0IHNweWRlcm91cyBF
eHAgJAoKIyBNdXN0IGJlIGJlZm9yZSB4LW1vZHVsYXIgZWNsYXNzIGlzIGluaGVyaXRlZAojIEhh
Y2sgdG8gbWFrZSBzdXJlIGF1dG9yZWNvbmYgZ2V0cyBydW4KU05BUFNIT1Q9InllcyIKCmluaGVy
aXQgZmxhZy1vLW1hdGljIHgtbW9kdWxhciBtdWx0aWxpYgoKT1BFTkdMX0RJUj0ieG9yZy14MTEi
CgpNRVNBX1BOPSJNZXNhIgpNRVNBX1BWPSI2LjQuMiIKTUVTQV9QPSIke01FU0FfUE59LSR7TUVT
QV9QVn0iCk1FU0FfU1JDX1A9IiR7TUVTQV9QTn1MaWItJHtNRVNBX1BWfSIKClBBVENIRVM9IiR7
RklMRVNESVJ9LyR7UH0tU2J1cy5wYXRjaAoJJHtGSUxFU0RJUn0vQ1ZFLTIwMDYtMTUyNi14cmVu
ZGVyLW1pdHJpLnBhdGNoCgkke0ZJTEVTRElSfS8ke1B9LXNwYXJjNjQtY2ZicnJvcC1maXgucGF0
Y2gKCSR7RklMRVNESVJ9LyR7UH0tNjRiaXQtZml4LWluZGlyZWN0LXZlcnRleC1hcnJheS5wYXRj
aAoJJHtGSUxFU0RJUn0vJHtQfS02NGJpdC1maXgtaGF2ZS1kaXgtY29uZmlnLnBhdGNoCgkke0ZJ
TEVTRElSfS8ke1B9LTY0Yml0LWZpeC1mb3ItZ2x4LnBhdGNoCgkke0ZJTEVTRElSfS8ke1B9LVhw
cnQtYnVpbGQucGF0Y2gKCSR7RklMRVNESVJ9LyR7UH0teHByaW50LWluaXQucGF0Y2gKCSR7RklM
RVNESVJ9LyR7UFZ9LVhwcmludC14cHJpbnRkaXIucGF0Y2gKCSR7RklMRVNESVJ9LyR7UFZ9LXRy
eS10by1maXgteG9yZ2NmZy5wYXRjaAoJJHtGSUxFU0RJUn0vJHtQVn0tZml4LXhvcmdjb25maWct
cmdicGF0aC1hbmQtbW91c2UucGF0Y2gKCSR7RElTVERJUn0vJHtQVn0tb3ZlcmxheS13aW5kb3cu
cGF0Y2guYnoyIgoKU1JDX1VSST0iJHtTUkNfVVJJfQoJbWlycm9yOi8vc291cmNlZm9yZ2UvbWVz
YTNkLyR7TUVTQV9TUkNfUH0udGFyLmJ6MgoJaHR0cDovL2Rldi5nZW50b28ub3JnL35zcHlkZXJv
dXMveG9yZy14MTEvMS4wLjIvMS4wLjItb3ZlcmxheS13aW5kb3cucGF0Y2guYnoyIgpERVNDUklQ
VElPTj0iWC5PcmcgWCBzZXJ2ZXJzIgpLRVlXT1JEUz0ifmFscGhhIH5hbWQ2NCB+YXJtIH5ocHBh
IH5pYTY0IH5taXBzIH5wcGMgfnBwYzY0IH5zaCB+c3BhcmMgfng4NiB+eDg2LWZic2QiCklVU0U9
ImRyaSBpcHY2IG1pbmltYWwgeHByaW50IgpSREVQRU5EPSJ4MTEtbGlicy9saWJYZm9udAoJeDEx
LWxpYnMveHRyYW5zCgl4MTEtbGlicy9saWJYYXUKCXgxMS1saWJzL2xpYlhleHQKCXgxMS1saWJz
L2xpYlgxMQoJeDExLWxpYnMvbGlieGtiZmlsZQoJeDExLWxpYnMvbGliWGRtY3AKCXgxMS1saWJz
L2xpYlhtdQoJeDExLWxpYnMvbGliWHJlbmRlcgoJeDExLWxpYnMvbGliWGkKCW1lZGlhLWxpYnMv
ZnJlZXR5cGUKCW1lZGlhLWxpYnMvbWVzYQoJbWVkaWEtZm9udHMvZm9udC1hZG9iZS03NWRwaQoJ
bWVkaWEtZm9udHMvZm9udC1taXNjLW1pc2MKCW1lZGlhLWZvbnRzL2ZvbnQtY3Vyc29yLW1pc2MK
CXgxMS1taXNjL3hiaXRtYXBzCgl8fCAoIHgxMS1taXNjL3hrZXlib2FyZC1jb25maWcgeDExLW1p
c2MveGtiZGF0YSApCgl4MTEtYXBwcy9pY2VhdXRoCgl4MTEtYXBwcy9yZ2IKCXgxMS1hcHBzL3hh
dXRoCgl4MTEtYXBwcy94aW5pdAoJYXBwLWFkbWluL2VzZWxlY3Qtb3BlbmdsCgl4MTEtbGlicy9s
aWJYYXcKCXgxMS1saWJzL2xpYlhwbQoJeDExLWxpYnMvbGliWHhmODZtaXNjCgl4MTEtbGlicy9s
aWJYeGY4NnZtCgkhbWluaW1hbD8gKCB4MTEtbGlicy9saWJkbXgKCQl4MTEtbGlicy9saWJYdHN0
CgkJeDExLWxpYnMvbGliWHJlcyApCgl4MTEtbGlicy9saWJ4a2J1aQoJeDExLWxpYnMvbGlibGJ4
dXRpbCIKCSMgWHJlcyBpcyBkbXgtZGVwZW5kZW50LCB4a2J1aSBpcyB4b3JnY2ZnLWRlcGVuZGVu
dAoJIyBYYXcgaXMgZG14LSBhbmQgeG9yZ2NmZy1kZXBlbmRlbnQKCSMgWHBtIGlzIGRteC0gYW5k
IHhvcmdjZmctZGVwZW5kZW50LCBwdWxscyBpbiBYdAoJIyBYeGY4Nm1pc2MgYW5kIFh4Zjg2dm0g
YXJlIHhvcmdjZmctZGVwZW5kZW50CgkjIGxpYmxieHV0aWwgaXMgbGJ4LSBkZXBlbmRlbnQKREVQ
RU5EPSIke1JERVBFTkR9Cgl4MTEtcHJvdG8vcmFuZHJwcm90bwoJeDExLXByb3RvL3JlbmRlcnBy
b3RvCgk+PXgxMS1wcm90by9maXhlc3Byb3RvLTQKCXgxMS1wcm90by9kYW1hZ2Vwcm90bwoJeDEx
LXByb3RvL3hleHRwcm90bwoJeDExLXByb3RvL3hwcm90bwoJeDExLXByb3RvL3hmODZkZ2Fwcm90
bwoJeDExLXByb3RvL3hmODZtaXNjcHJvdG8KCXgxMS1wcm90by94Zjg2cnVzaHByb3RvCgl4MTEt
cHJvdG8veGY4NnZpZG1vZGVwcm90bwoJeDExLXByb3RvL3hmODZiaWdmb250cHJvdG8KCT49eDEx
LXByb3RvL2NvbXBvc2l0ZXByb3RvLTAuMwoJeDExLXByb3RvL3JlY29yZHByb3RvCgl4MTEtcHJv
dG8vcmVzb3VyY2Vwcm90bwoJeDExLXByb3RvL3ZpZGVvcHJvdG8KCXgxMS1wcm90by9zY3Juc2F2
ZXJwcm90bwoJeDExLXByb3RvL2V2aWVleHQKCXgxMS1wcm90by90cmFwcHJvdG8KCT49eDExLXBy
b3RvL3hpbmVyYW1hcHJvdG8tMS4xLXIxCgl4MTEtcHJvdG8vZm9udHNwcm90bwoJPj14MTEtcHJv
dG8va2Jwcm90by0xLjAtcjEKCXgxMS1wcm90by9pbnB1dHByb3RvCgl4MTEtcHJvdG8vYmlncmVx
c3Byb3RvCgl4MTEtcHJvdG8veGNtaXNjcHJvdG8KCT49eDExLXByb3RvL2dscHJvdG8tMS40LjFf
cHJlMjAwNTEwMTMKCSFtaW5pbWFsPyAoIHgxMS1wcm90by9kbXhwcm90byApCglkcmk/ICggeDEx
LXByb3RvL3hmODZkcmlwcm90bwoJCT49eDExLWxpYnMvbGliZHJtLTIgKQoJeHByaW50PyAoIHgx
MS1wcm90by9wcmludHByb3RvCgkJeDExLWFwcHMvbWtmb250ZGlyCgkJeDExLWFwcHMvbWtmb250
c2NhbGUgKSIKTElDRU5TRT0iJHtMSUNFTlNFfSBNSVQiCgpwa2dfc2V0dXAoKSB7CgkjIGxvY2Fs
c3RhdGVkaXIgaXMgdXNlZCBmb3IgdGhlIGxvZyBsb2NhdGlvbjsgd2UgbmVlZCB0byBvdmVycmlk
ZSB0aGUgZGVmYXVsdAoJIyBmcm9tIGVidWlsZC5zaAoJIyBzeXNjb25mZGlyIGlzIHVzZWQgZm9y
IHRoZSB4b3JnLmNvbmYgbG9jYXRpb247IHNhbWUgYXBwbGllcwoKCSMgLS1lbmFibGUteG9yZyBu
ZWVkZWQgYmVjYXVzZSBkYXJ3aW4gZGVmYXVsdHMgb2ZmCgkjIC0tZW5hYmxlLWluc3RhbGwtc2V0
dWlkIG5lZWRlZCBiZWNhdXNlIHNwYXJjcyBkZWZhdWx0IG9mZgoJQ09ORklHVVJFX09QVElPTlM9
IgoJCSQodXNlX2VuYWJsZSBpcHY2KQoJCSQodXNlX2VuYWJsZSAhbWluaW1hbCBkbXgpCgkJJCh1
c2VfZW5hYmxlICFtaW5pbWFsIHh2ZmIpCgkJJCh1c2VfZW5hYmxlICFtaW5pbWFsIHhuZXN0KQoJ
CSQodXNlX2VuYWJsZSBkcmkpCgkJJCh1c2VfZW5hYmxlIHhwcmludCkKCQktLXdpdGgtbWVzYS1z
b3VyY2U9JHtXT1JLRElSfS8ke01FU0FfUH0KCQktLWVuYWJsZS14b3JnCgkJLS1zeXNjb25mZGly
PS9ldGMvWDExCgkJLS1sb2NhbHN0YXRlZGlyPS92YXIKCQktLWVuYWJsZS1pbnN0YWxsLXNldHVp
ZAoJCS0td2l0aC1kZWZhdWx0LWZvbnQtcGF0aD0vdXNyL3NoYXJlL2ZvbnRzL21pc2MsL3Vzci9z
aGFyZS9mb250cy83NWRwaSwvdXNyL3NoYXJlL2ZvbnRzLzEwMGRwaSwvdXNyL3NoYXJlL2ZvbnRz
L1RURiwvdXNyL3NoYXJlL2ZvbnRzL1R5cGUxIgoKCSMgKCMxMjEzOTQpIENhdXNlcyB3aW5kb3cg
Y29ycnVwdGlvbgoJZmlsdGVyLWZsYWdzIC1md2ViCn0KCnNyY19pbnN0YWxsKCkgewoJeC1tb2R1
bGFyX3NyY19pbnN0YWxsCgoJZHluYW1pY19saWJnbF9pbnN0YWxsCgoJdXNlIHhwcmludCAmJiB4
cHJpbnRfc3JjX2luc3RhbGwKfQoKcGtnX3Bvc3RpbnN0KCkgewoJc3dpdGNoX29wZW5nbF9pbXBs
ZW0KfQoKcGtnX3Bvc3RybSgpIHsKCSMgR2V0IHJpZCBvZiBtb2R1bGUgZGlyIHRvIGVuc3VyZSBv
cGVuZ2wtdXBkYXRlIHdvcmtzIHByb3Blcmx5CglpZiAhIGhhc192ZXJzaW9uIHgxMS1iYXNlL3hv
cmctc2VydmVyOyB0aGVuCgkJaWYgWyAtZSAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpL3hvcmcv
bW9kdWxlcyBdOyB0aGVuCgkJCXJtIC1yZiAke1JPT1R9L3Vzci8kKGdldF9saWJkaXIpL3hvcmcv
bW9kdWxlcwoJCWZpCglmaQp9CgpkeW5hbWljX2xpYmdsX2luc3RhbGwoKSB7CgkjIG5leHQgc2Vj
dGlvbiBpcyB0byBzZXR1cCB0aGUgZHluYW1pYyBsaWJHTCBzdHVmZgoJZWJlZ2luICJNb3Zpbmcg
R0wgZmlsZXMgZm9yIGR5bmFtaWMgc3dpdGNoaW5nIgoJCWRvZGlyIC91c3IvJChnZXRfbGliZGly
KS9vcGVuZ2wvJHtPUEVOR0xfRElSfS9leHRlbnNpb25zCgkJbG9jYWwgeD0iIgoJCWZvciB4IGlu
ICR7RH0vdXNyLyQoZ2V0X2xpYmRpcikveG9yZy9tb2R1bGVzL2V4dGVuc2lvbnMvbGliZ2x4Kjsg
ZG8KCQkJaWYgWyAtZiAke3h9IC1vIC1MICR7eH0gXTsgdGhlbgoJCQkJbXYgLWYgJHt4fSAke0R9
L3Vzci8kKGdldF9saWJkaXIpL29wZW5nbC8ke09QRU5HTF9ESVJ9L2V4dGVuc2lvbnMKCQkJZmkK
CQlkb25lCgllZW5kIDAKfQoKc3dpdGNoX29wZW5nbF9pbXBsZW0oKSB7CgkJIyBTd2l0Y2ggdG8g
dGhlIHhvcmcgaW1wbGVtZW50YXRpb24uCgkJIyBVc2UgbmV3IG9wZW5nbC11cGRhdGUgdGhhdCB3
aWxsIG5vdCByZXNldCB1c2VyIHNlbGVjdGVkCgkJIyBPcGVuR0wgaW50ZXJmYWNlIC4uLgoJCWVj
aG8KCQllc2VsZWN0IG9wZW5nbCBzZXQgLS11c2Utb2xkICR7T1BFTkdMX0RJUn0KfQoKeHByaW50
X3NyY19pbnN0YWxsKCkgewoJIyBSSC1zdHlsZSBpbml0IHNjcmlwdCwgd2UgcHJvdmlkZSBhIHdy
YXBwZXIKCWV4ZWludG8gL3Vzci8kKGdldF9saWJkaXIpL21pc2MKCWRvZXhlICR7U30vWHByaW50
L2V0Yy9pbml0LmQveHByaW50CgkjIFBhdGNoIGluaXQgc2NyaXB0IGZvciBmb250cyBsb2NhdGlv
bgoJc2VkIC1lICdzOi9saWIvWDExL2ZvbnRzLzovc2hhcmUvZm9udHMvOmcnIFwKCQktaSAke0R9
L3Vzci8kKGdldF9saWJkaXIpL21pc2MveHByaW50CgkjIEluc3RhbGwgdGhlIHdyYXBwZXIKCW5l
d2luaXRkICR7RklMRVNESVJ9L3hwcmludC5pbml0IHhwcmludAoJIyBJbnN0YWxsIHByb2ZpbGUg
c2NyaXB0cwoJaW5zaW50byAvZXRjL3Byb2ZpbGUuZAoJZG9pbnMgJHtTfS9YcHJpbnQvZXRjL3By
b2ZpbGUuZC94cHJpbnQqCglpbnNpbnRvIC9ldGMvWDExL3hpbml0L3hpbml0cmMuZAoJbmV3aW5z
ICR7U30vWHByaW50L2V0Yy9Yc2Vzc2lvbi5kL2NkZV94c2Vzc2lvbmRfeHByaW50LnNoIFwKCQk5
MnhwcmludC14cHNlcnZlcmxpc3Quc2gKCSMgUGF0Y2ggcHJvZmlsZSBzY3JpcHRzCglzZWQgLWUg
InM6L2Jpbi9zaC4qZ2V0X3hwc2VydmVybGlzdDovdXNyLyQoZ2V0X2xpYmRpcikvbWlzYy94cHJp
bnQgXAoJCWdldF94cHNlcnZlcmxpc3Q6ZyIgLWkgJHtEfS9ldGMvcHJvZmlsZS5kL3hwcmludCog
XAoJCSR7RH0vZXRjL1gxMS94aW5pdC94aW5pdHJjLmQvOTJ4cHJpbnQteHBzZXJ2ZXJsaXN0LnNo
CgkjIE1vdmUgcHJvZmlsZSBzY3JpcHRzLCB3ZSBjYW4ndCB0b3VjaCAvZXRjL3Byb2ZpbGUuZC8g
aW4gR2VudG9vCglkb2RvYyAke0R9L2V0Yy9wcm9maWxlLmQveHByaW50KgoJcm0gLWYgJHtEfS9l
dGMvcHJvZmlsZS5kL3hwcmludCoKfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85328</attachid>
            <date>2006-04-23 23:30 0000</date>
            <desc>xorg-server-1.0.99.901-r2.ebuild</desc>
            <filename>xorg-server-1.0.99.901-r2.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA2IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L3gxMS1iYXNlL3hvcmctc2VydmVyL3hvcmctc2Vy
dmVyLTEuMC45OS45MDEtcjEuZWJ1aWxkLHYgMS4zIDIwMDYvMDQvMjMgMjI6NTc6MDEgc3B5ZGVy
b3VzIEV4cCAkCgojIE11c3QgYmUgYmVmb3JlIHgtbW9kdWxhciBlY2xhc3MgaXMgaW5oZXJpdGVk
CiMgSGFjayB0byBtYWtlIHN1cmUgYXV0b3JlY29uZiBnZXRzIHJ1bgpTTkFQU0hPVD0ieWVzIgoK
aW5oZXJpdCB4LW1vZHVsYXIgbXVsdGlsaWIKCk9QRU5HTF9ESVI9InhvcmcteDExIgoKTUVTQV9Q
Tj0iTWVzYSIKTUVTQV9QVj0iNi41IgpNRVNBX1A9IiR7TUVTQV9QTn0tJHtNRVNBX1BWfSIKTUVT
QV9TUkNfUD0iJHtNRVNBX1BOfUxpYi0ke01FU0FfUFZ9IgoKUEFUQ0hFUz0iJHtGSUxFU0RJUn0v
JHtQTn0tMS4wLjItU2J1cy5wYXRjaAoJJHtGSUxFU0RJUn0vQ1ZFLTIwMDYtMTUyNi14cmVuZGVy
LW1pdHJpLnBhdGNoCgkke0ZJTEVTRElSfS8ke1BOfS0xLjAuMi14cHJpbnQtaW5pdC5wYXRjaAoJ
JHtGSUxFU0RJUn0vJHtQVn0tWHByaW50LXhwcmludGRpci5wYXRjaAoJJHtGSUxFU0RJUn0vMS4w
LjItdHJ5LXRvLWZpeC14b3JnY2ZnLnBhdGNoCgkke0ZJTEVTRElSfS8xLjAuMi1maXgteG9yZ2Nv
bmZpZy1yZ2JwYXRoLWFuZC1tb3VzZS5wYXRjaAoJJHtGSUxFU0RJUn0vJHtQVn0tZml4LWtkcml2
ZS1idWlsZC5wYXRjaAoJJHtGSUxFU0RJUn0vJHtQVn0td3JhcC1zZGstaGVhZGVycy5wYXRjaCIK
ClNSQ19VUkk9IiR7U1JDX1VSSX0KCW1pcnJvcjovL3NvdXJjZWZvcmdlL21lc2EzZC8ke01FU0Ff
U1JDX1B9LnRhci5iejIKCWh0dHA6Ly94b3JnLmZyZWVkZXNrdG9wLm9yZy9zbmFwc2hvdHMvaW5k
aXZpZHVhbC94c2VydmVyLyR7UH0udGFyLmJ6MiIKREVTQ1JJUFRJT049IlguT3JnIFggc2VydmVy
cyIKS0VZV09SRFM9In5hbHBoYSB+YW1kNjQgfmFybSB+aHBwYSB+aWE2NCB+bWlwcyB+cHBjIH5w
cGM2NCB+c2ggfnNwYXJjIH54ODYgfng4Ni1mYnNkIgpJVVNFX1ZJREVPX0NBUkRTPSIKCXZpZGVv
X2NhcmRzX2NoaXBzCgl2aWRlb19jYXJkc19lcHNvbgoJdmlkZW9fY2FyZHNfZ2xpbnQKCXZpZGVv
X2NhcmRzX2k4MTAKCXZpZGVvX2NhcmRzX21hY2g2NAoJdmlkZW9fY2FyZHNfbWdhCgl2aWRlb19j
YXJkc19uZW9tYWdpYwoJdmlkZW9fY2FyZHNfbnYKCXZpZGVvX2NhcmRzX3IxMjgKCXZpZGVvX2Nh
cmRzX3JhZGVvbgoJdmlkZW9fY2FyZHNfc2lsaWNvbm1vdGlvbgoJdmlkZW9fY2FyZHNfdmlhIgpJ
VVNFPSIke0lVU0VfVklERU9fQ0FSRFN9CglkbXggZHJpIGlwdjYga2RyaXZlIG1pbmltYWwgbnB0
bCBzZGwgeG9yZyB4cHJpbnQiClJERVBFTkQ9IngxMS1saWJzL2xpYlhmb250Cgl4MTEtbGlicy94
dHJhbnMKCXgxMS1saWJzL2xpYlhhdQoJeDExLWxpYnMvbGliWGV4dAoJeDExLWxpYnMvbGliWDEx
Cgl4MTEtbGlicy9saWJ4a2JmaWxlCgl4MTEtbGlicy9saWJYZG1jcAoJeDExLWxpYnMvbGliWG11
Cgl4MTEtbGlicy9saWJYcmVuZGVyCgl4MTEtbGlicy9saWJYaQoJbWVkaWEtbGlicy9mcmVldHlw
ZQoJPj1tZWRpYS1saWJzL21lc2EtNi41LXIyCgltZWRpYS1mb250cy9mb250LWFkb2JlLTc1ZHBp
CgltZWRpYS1mb250cy9mb250LW1pc2MtbWlzYwoJbWVkaWEtZm9udHMvZm9udC1jdXJzb3ItbWlz
YwoJeDExLW1pc2MveGJpdG1hcHMKCXx8ICggeDExLW1pc2MveGtleWJvYXJkLWNvbmZpZyB4MTEt
bWlzYy94a2JkYXRhICkKCXgxMS1hcHBzL2ljZWF1dGgKCXgxMS1hcHBzL3JnYgoJeDExLWFwcHMv
eGF1dGgKCXgxMS1hcHBzL3hpbml0CglhcHAtYWRtaW4vZXNlbGVjdC1vcGVuZ2wKCXgxMS1saWJz
L2xpYlhhdwoJeDExLWxpYnMvbGliWHBtCgl4MTEtbGlicy9saWJYeGY4Nm1pc2MKCXgxMS1saWJz
L2xpYlh4Zjg2dm0KCSFtaW5pbWFsPyAoIHgxMS1saWJzL2xpYmRteAoJCXgxMS1saWJzL2xpYlh0
c3QKCQl4MTEtbGlicy9saWJYcmVzICkKCXgxMS1saWJzL2xpYnhrYnVpCgl4MTEtbGlicy9saWJs
Ynh1dGlsCglrZHJpdmU/ICggc2RsPyAoIG1lZGlhLWxpYnMvbGlic2RsICkgKSIKCSMgWHJlcyBp
cyBkbXgtZGVwZW5kZW50LCB4a2J1aSBpcyB4b3JnY2ZnLWRlcGVuZGVudAoJIyBYYXcgaXMgZG14
LSBhbmQgeG9yZ2NmZy1kZXBlbmRlbnQKCSMgWHBtIGlzIGRteC0gYW5kIHhvcmdjZmctZGVwZW5k
ZW50LCBwdWxscyBpbiBYdAoJIyBYeGY4Nm1pc2MgYW5kIFh4Zjg2dm0gYXJlIHhvcmdjZmctZGVw
ZW5kZW50CgkjIGxpYmxieHV0aWwgaXMgbGJ4LSBkZXBlbmRlbnQKREVQRU5EPSIke1JERVBFTkR9
Cgl4MTEtcHJvdG8vcmFuZHJwcm90bwoJeDExLXByb3RvL3JlbmRlcnByb3RvCgk+PXgxMS1wcm90
by9maXhlc3Byb3RvLTQKCXgxMS1wcm90by9kYW1hZ2Vwcm90bwoJeDExLXByb3RvL3hleHRwcm90
bwoJeDExLXByb3RvL3hwcm90bwoJeDExLXByb3RvL3hmODZkZ2Fwcm90bwoJeDExLXByb3RvL3hm
ODZtaXNjcHJvdG8KCXgxMS1wcm90by94Zjg2cnVzaHByb3RvCgl4MTEtcHJvdG8veGY4NnZpZG1v
ZGVwcm90bwoJeDExLXByb3RvL3hmODZiaWdmb250cHJvdG8KCT49eDExLXByb3RvL2NvbXBvc2l0
ZXByb3RvLTAuMwoJeDExLXByb3RvL3JlY29yZHByb3RvCgl4MTEtcHJvdG8vcmVzb3VyY2Vwcm90
bwoJeDExLXByb3RvL3ZpZGVvcHJvdG8KCT49eDExLXByb3RvL3Njcm5zYXZlcnByb3RvLTEuMS4w
Cgl4MTEtcHJvdG8vZXZpZWV4dAoJeDExLXByb3RvL3RyYXBwcm90bwoJPj14MTEtcHJvdG8veGlu
ZXJhbWFwcm90by0xLjEtcjEKCXgxMS1wcm90by9mb250c3Byb3RvCgk+PXgxMS1wcm90by9rYnBy
b3RvLTEuMC1yMQoJeDExLXByb3RvL2lucHV0cHJvdG8KCXgxMS1wcm90by9iaWdyZXFzcHJvdG8K
CXgxMS1wcm90by94Y21pc2Nwcm90bwoJPj14MTEtcHJvdG8vZ2xwcm90by0xLjQuNgoJIW1pbmlt
YWw/ICggeDExLXByb3RvL2RteHByb3RvICkKCWRyaT8gKCB4MTEtcHJvdG8veGY4NmRyaXByb3Rv
CgkJPj14MTEtbGlicy9saWJkcm0tMiApCgl4cHJpbnQ/ICggeDExLXByb3RvL3ByaW50cHJvdG8K
CQl4MTEtYXBwcy9ta2ZvbnRkaXIKCQl4MTEtYXBwcy9ta2ZvbnRzY2FsZSApIgpMSUNFTlNFPSIk
e0xJQ0VOU0V9IE1JVCIKCnBrZ19zZXR1cCgpIHsKCSMgbG9jYWxzdGF0ZWRpciBpcyB1c2VkIGZv
ciB0aGUgbG9nIGxvY2F0aW9uOyB3ZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0CgkjIGZy
b20gZWJ1aWxkLnNoCgkjIHN5c2NvbmZkaXIgaXMgdXNlZCBmb3IgdGhlIHhvcmcuY29uZiBsb2Nh
dGlvbjsgc2FtZSBhcHBsaWVzCgoJIyAtLWVuYWJsZS14b3JnIG5lZWRlZCBiZWNhdXNlIGRhcndp
biBkZWZhdWx0cyBvZmYKCSMgLS1lbmFibGUtaW5zdGFsbC1zZXR1aWQgbmVlZGVkIGJlY2F1c2Ug
c3BhcmNzIGRlZmF1bHQgb2ZmCgoJIyBTREwgb25seSBhdmFpbGFibGUgaW4ga2RyaXZlIGJ1aWxk
CglpZiB1c2Uga2RyaXZlICYmIHVzZSBzZGw7IHRoZW4KCQljb25mX29wdHM9IiR7Y29uZl9vcHRz
fSAtLWVuYWJsZS14c2RsIgoJZWxzZQoJCWNvbmZfb3B0cz0iJHtjb25mX29wdHN9IC0tZGlzYWJs
ZS14c2RsIgoJZmkKCgkjIE9ubHkgWG9yZyBhbmQgWGdsIHN1cHBvcnQgdGhpcywgYW5kIHdlIHdv
bid0IGJ1aWxkIFhnbAoJIyB1bnRpbCBpdCBtZXJnZXMgdG8gdHJ1bmsKCWlmIHVzZSB4b3JnOyB0
aGVuCgkJY29uZl9vcHRzPSIke2NvbmZfb3B0c30gLS13aXRoLW1lc2Etc291cmNlPSR7V09SS0RJ
Un0vJHtNRVNBX1B9IgoJZmkKCglDT05GSUdVUkVfT1BUSU9OUz0iCgkJJCh1c2VfZW5hYmxlIGlw
djYpCgkJJCh1c2VfZW5hYmxlIGRteCkKCQkkKHVzZV9lbmFibGUga2RyaXZlKQoJCSQodXNlX2Vu
YWJsZSAhbWluaW1hbCB4dmZiKQoJCSQodXNlX2VuYWJsZSAhbWluaW1hbCB4bmVzdCkKCQkkKHVz
ZV9lbmFibGUgZHJpKQoJCSQodXNlX2VuYWJsZSB4b3JnKQoJCSQodXNlX2VuYWJsZSB4cHJpbnQp
CgkJJCh1c2VfZW5hYmxlIG5wdGwgZ2x4LXRscykKCQktLXN5c2NvbmZkaXI9L2V0Yy9YMTEKCQkt
LWxvY2Fsc3RhdGVkaXI9L3ZhcgoJCS0tZW5hYmxlLWluc3RhbGwtc2V0dWlkCgkJLS13aXRoLWRl
ZmF1bHQtZm9udC1wYXRoPS91c3Ivc2hhcmUvZm9udHMvbWlzYywvdXNyL3NoYXJlL2ZvbnRzLzc1
ZHBpLC91c3Ivc2hhcmUvZm9udHMvMTAwZHBpLC91c3Ivc2hhcmUvZm9udHMvVFRGLC91c3Ivc2hh
cmUvZm9udHMvVHlwZTEKCQkke2NvbmZfb3B0c30iCgoJaWYgYnVpbHRfd2l0aF91c2UgbWVkaWEt
bGlicy9tZXNhIG5wdGw7IHRoZW4KCQlsb2NhbCBkaWVtc2c9IllvdSBtdXN0IGJ1aWxkIHhvcmct
c2VydmVyIGFuZCBtZXNhIHdpdGggdGhlIHNhbWUgbnB0bCBVU0Ugc2V0dGluZy4iCgkJdXNlIG5w
dGwgfHwgZGllICIke2RpZW1zZ30iCgllbHNlCgkJdXNlIG5wdGwgJiYgZGllICIke2RpZW1zZ30i
CglmaQoKCSMgKCMxMjEzOTQpIENhdXNlcyB3aW5kb3cgY29ycnVwdGlvbgoJZmlsdGVyLWZsYWdz
IC1md2ViCgoJIyBOb3RoaW5nIGVsc2UgcHJvdmlkZXMgbmV3IGVub3VnaCBnbHh0b2tlbnMuaAoJ
ZXdhcm4gIkZvcmNpbmcgb24geG9yZy14MTEgZm9yIG5ldyBlbm91Z2ggZ2x4dG9rZW5zLmguLi4i
CglPTERfSU1QTEVNPSIkKGVzZWxlY3Qgb3BlbmdsIHNob3cpIgoJZXNlbGVjdCBvcGVuZ2wgc2V0
IC0taW1wbC1oZWFkZXJzICR7T1BFTkdMX0RJUn0KfQoKc3JjX3VucGFjaygpIHsKCXgtbW9kdWxh
cl9zcGVjc19jaGVjawoJeC1tb2R1bGFyX2RyaV9jaGVjawoJeC1tb2R1bGFyX3VucGFja19zb3Vy
Y2UKCXgtbW9kdWxhcl9wYXRjaF9zb3VyY2UKCgkjIFNldCB1cCBrZHJpdmUgc2VydmVycyB0byBi
dWlsZAoJaWYgdXNlIGtkcml2ZTsgdGhlbgoJCWVpbmZvICJSZW1vdmluZyB1bnVzZWQga2RyaXZl
IGRyaXZlcnMgLi4uIgoJCWZvciBjYXJkIGluICR7SVVTRV9WSURFT19DQVJEU307IGRvCgkJCXJl
YWxfY2FyZD0ke2NhcmQjdmlkZW9fY2FyZHNffQoKCQkJIyBEaWZmZXJlbmNlcyBiZXR3ZWVuIFZJ
REVPX0NBUkRTIG5hbWUgYW5kIGtkcml2ZSBzZXJ2ZXIgbmFtZQoJCQlyZWFsX2NhcmQ9JHtyZWFs
X2NhcmQvZ2xpbnQvcG0yfQoJCQlyZWFsX2NhcmQ9JHtyZWFsX2NhcmQvcmFkZW9uL2F0aX0KCQkJ
cmVhbF9jYXJkPSR7cmVhbF9jYXJkL252L252aWRpYX0KCQkJcmVhbF9jYXJkPSR7cmVhbF9jYXJk
L3NpbGljb25tb3Rpb24vc21pfQoJCQlpZiAhIHVzZSAke2NhcmR9OyB0aGVuCgkJCQllYmVnaW4g
IiAgJHtyZWFsX2NhcmR9IgoJCQkJc2VkIC1pIFwKCQkJCQktZSAiczoke3JlYWxfY2FyZH06Omci
IFwKCQkJCQkke1N9L2h3L2tkcml2ZS9NYWtlZmlsZS5hbSBcCgkJCQkJfHwgZGllICJzZWQgb2Yg
JHtyZWFsX2NhcmR9IGZhaWxlZCIKCQkJCWVlbmQKCQkJZmkKCgkJZG9uZQoKCQkjIHNtaSBhbmQg
dmlhIGFyZSB0aGUgb25seSB0aGluZ3Mgb24gbGluZSAyLiBJZiBsaW5lIDIgZW5kcyB1cCBibGFu
aywKCQkjIHdlIG5lZWQgdG8gZ2V0IHJpZCBvZiB0aGUgYmFja3NsYXNoIGF0IHRoZSBlbmQgb2Yg
bGluZSAxLgoJCWlmICEgdXNlIHZpZGVvX2NhcmRzX3NpbGljb25tb3Rpb24gJiYgISB1c2Ugdmlk
ZW9fY2FyZHNfdmlhOyB0aGVuCgkJCXNlZCAtaSBcCgkJCQktZSAiczpeXChWRVNBX1NVQkRJUlMu
KlwpXFxcOlwxOmciIFwKCQkJCSR7U30vaHcva2RyaXZlL01ha2VmaWxlLmFtCgkJZmkKCgkJIyBP
bmx5IG5lZWQgdG8gcmVjb25mIGlmIHdlJ3JlIG1vZGlmeWluZyBrZHJpdmUncyBNYWtlZmlsZS5h
bQoJCXgtbW9kdWxhcl9yZWNvbmZfc291cmNlCglmaQp9CgpzcmNfaW5zdGFsbCgpIHsKCXgtbW9k
dWxhcl9zcmNfaW5zdGFsbAoKCWR5bmFtaWNfbGliZ2xfaW5zdGFsbAoKCXNlcnZlcl9iYXNlZF9p
bnN0YWxsCn0KCnBrZ19wb3N0aW5zdCgpIHsKCXN3aXRjaF9vcGVuZ2xfaW1wbGVtCn0KCnBrZ19w
b3N0cm0oKSB7CgkjIEdldCByaWQgb2YgbW9kdWxlIGRpciB0byBlbnN1cmUgb3BlbmdsLXVwZGF0
ZSB3b3JrcyBwcm9wZXJseQoJaWYgISBoYXNfdmVyc2lvbiB4MTEtYmFzZS94b3JnLXNlcnZlcjsg
dGhlbgoJCWlmIFsgLWUgJHtST09UfS91c3IvJChnZXRfbGliZGlyKS94b3JnL21vZHVsZXMgXTsg
dGhlbgoJCQlybSAtcmYgJHtST09UfS91c3IvJChnZXRfbGliZGlyKS94b3JnL21vZHVsZXMKCQlm
aQoJZmkKfQoKZHluYW1pY19saWJnbF9pbnN0YWxsKCkgewoJIyBuZXh0IHNlY3Rpb24gaXMgdG8g
c2V0dXAgdGhlIGR5bmFtaWMgbGliR0wgc3R1ZmYKCWViZWdpbiAiTW92aW5nIEdMIGZpbGVzIGZv
ciBkeW5hbWljIHN3aXRjaGluZyIKCQlkb2RpciAvdXNyLyQoZ2V0X2xpYmRpcikvb3BlbmdsLyR7
T1BFTkdMX0RJUn0vZXh0ZW5zaW9ucwoJCWxvY2FsIHg9IiIKCQlmb3IgeCBpbiAke0R9L3Vzci8k
KGdldF9saWJkaXIpL3hvcmcvbW9kdWxlcy9leHRlbnNpb25zL2xpYmdseCo7IGRvCgkJCWlmIFsg
LWYgJHt4fSAtbyAtTCAke3h9IF07IHRoZW4KCQkJCW12IC1mICR7eH0gJHtEfS91c3IvJChnZXRf
bGliZGlyKS9vcGVuZ2wvJHtPUEVOR0xfRElSfS9leHRlbnNpb25zCgkJCWZpCgkJZG9uZQoJZWVu
ZCAwCn0KCnNlcnZlcl9iYXNlZF9pbnN0YWxsKCkgewoJdXNlIHhwcmludCAmJiB4cHJpbnRfc3Jj
X2luc3RhbGwKCglpZiAhIHVzZSB4b3JnOyB0aGVuCgkJcm0gJHtEfS91c3Ivc2hhcmUvbWFuL21h
bjEvWHNlcnZlci4xeCBcCgkJCSR7RH0vdXNyLyQoZ2V0X2xpYmRpcikveHNlcnZlci9TZWN1cml0
eVBvbGljeSBcCgkJCSR7RH0vdXNyLyQoZ2V0X2xpYmRpcikvcGtnY29uZmlnL3hvcmctc2VydmVy
LnBjIFwKCQkJJHtEfS91c3Ivc2hhcmUvbWFuL21hbjEvWHNlcnZlci4xeAoJZmkKfQoKc3dpdGNo
X29wZW5nbF9pbXBsZW0oKSB7CgkJIyBTd2l0Y2ggdG8gdGhlIHhvcmcgaW1wbGVtZW50YXRpb24u
CgkJIyBVc2UgbmV3IG9wZW5nbC11cGRhdGUgdGhhdCB3aWxsIG5vdCByZXNldCB1c2VyIHNlbGVj
dGVkCgkJIyBPcGVuR0wgaW50ZXJmYWNlIC4uLgoJCWVjaG8KIwkJZXNlbGVjdCBvcGVuZ2wgc2V0
IC0tdXNlLW9sZCAke09QRU5HTF9ESVJ9CgkJZXNlbGVjdCBvcGVuZ2wgc2V0ICR7T0xEX0lNUExF
TX0KfQoKeHByaW50X3NyY19pbnN0YWxsKCkgewoJIyBSSC1zdHlsZSBpbml0IHNjcmlwdCwgd2Ug
cHJvdmlkZSBhIHdyYXBwZXIKCWV4ZWludG8gL3Vzci8kKGdldF9saWJkaXIpL21pc2MKCWRvZXhl
ICR7U30vWHByaW50L2V0Yy9pbml0LmQveHByaW50CgkjIFBhdGNoIGluaXQgc2NyaXB0IGZvciBm
b250cyBsb2NhdGlvbgoJc2VkIC1lICdzOi9saWIvWDExL2ZvbnRzLzovc2hhcmUvZm9udHMvOmcn
IFwKCQktaSAke0R9L3Vzci8kKGdldF9saWJkaXIpL21pc2MveHByaW50CgkjIEluc3RhbGwgdGhl
IHdyYXBwZXIKCW5ld2luaXRkICR7RklMRVNESVJ9L3hwcmludC5pbml0IHhwcmludAoJIyBJbnN0
YWxsIHByb2ZpbGUgc2NyaXB0cwoJaW5zaW50byAvZXRjL3Byb2ZpbGUuZAoJZG9pbnMgJHtTfS9Y
cHJpbnQvZXRjL3Byb2ZpbGUuZC94cHJpbnQqCglpbnNpbnRvIC9ldGMvWDExL3hpbml0L3hpbml0
cmMuZAoJbmV3aW5zICR7U30vWHByaW50L2V0Yy9Yc2Vzc2lvbi5kL2NkZV94c2Vzc2lvbmRfeHBy
aW50LnNoIFwKCQk5MnhwcmludC14cHNlcnZlcmxpc3Quc2gKCSMgUGF0Y2ggcHJvZmlsZSBzY3Jp
cHRzCglzZWQgLWUgInM6L2Jpbi9zaC4qZ2V0X3hwc2VydmVybGlzdDovdXNyLyQoZ2V0X2xpYmRp
cikvbWlzYy94cHJpbnQgXAoJCWdldF94cHNlcnZlcmxpc3Q6ZyIgLWkgJHtEfS9ldGMvcHJvZmls
ZS5kL3hwcmludCogXAoJCSR7RH0vZXRjL1gxMS94aW5pdC94aW5pdHJjLmQvOTJ4cHJpbnQteHBz
ZXJ2ZXJsaXN0LnNoCgkjIE1vdmUgcHJvZmlsZSBzY3JpcHRzLCB3ZSBjYW4ndCB0b3VjaCAvZXRj
L3Byb2ZpbGUuZC8gaW4gR2VudG9vCglkb2RvYyAke0R9L2V0Yy9wcm9maWxlLmQveHByaW50KgoJ
cm0gLWYgJHtEfS9ldGMvcHJvZmlsZS5kL3hwcmludCoKfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85366</attachid>
            <date>2006-04-24 09:06 0000</date>
            <desc>xcb-build.diff</desc>
            <filename>xcb-build.diff</filename>
            <type>text/plain</type>
            <data encoding="base64">IwojIFVwZGF0ZWQgYnV0IG5vdCBjaGVja2VkIGluOgojICAgKHdpbGwgY29tbWl0KQojCiMJbW9k
aWZpZWQ6IHhjYi1kZW1vL01ha2VmaWxlLmFtCiMJbW9kaWZpZWQ6IHhjYi11dGlsL2ltYWdlL01h
a2VmaWxlLmFtCiMJbW9kaWZpZWQ6IHhjYi11dGlsL2ltYWdlL3hjYi1pbWFnZS5wYy5pbgojCiMK
IyBVbnRyYWNrZWQgZmlsZXM6CiMgICAodXNlICJnaXQgYWRkIiB0byBhZGQgdG8gY29tbWl0KQoj
CiMJeGNiLWJ1aWxkLmRpZmYKZGlmZiAtLWdpdCBhL3hjYi1kZW1vL01ha2VmaWxlLmFtIGIveGNi
LWRlbW8vTWFrZWZpbGUuYW0KaW5kZXggMzIxMTI0Yi4uYzM1ZmFkMyAxMDA2NDQKLS0tIGEveGNi
LWRlbW8vTWFrZWZpbGUuYW0KKysrIGIveGNiLWRlbW8vTWFrZWZpbGUuYW0KQEAgLTIwLDEyICsy
MCwxMyBAQCB4Y2JfdGVzdF9DRkxBR1MgPSAkKFhDQkFVWF9DRkxBR1MpCiB4Y2JfdGVzdF9MREFE
RCA9ICQoTERBREQpICQoWENCQVVYX0xJQlMpIC1scHRocmVhZAogeGNiX3Rlc3RfU09VUkNFUyA9
IG1haW4uYyByZXBseV9mb3JtYXRzLmMKIAorZHBtc19MREFERCA9IC1sWENCZHBtcwogZHBtc19T
T1VSQ0VTID0gZHBtcy5jCiAKIHJlbmRlcnRlc3RfQ0ZMQUdTID0gJChYQ0JBVVhfQ0ZMQUdTKQot
cmVuZGVydGVzdF9MREFERCA9ICQoWENCQVVYX0xJQlMpCityZW5kZXJ0ZXN0X0xEQUREID0gJChY
Q0JBVVhfTElCUykgLWxYQ0JyZW5kZXIKIHJlbmRlcnRlc3RfU09VUkNFUyA9IHJlbmRlcnRlc3Qu
YwogCiB4Y2JyYW5kcl9DRkxBR1MgPSAkKFhDQkFVWF9DRkxBR1MpCi14Y2JyYW5kcl9MREFERCA9
ICQoWENCQVVYX0xJQlMpCit4Y2JyYW5kcl9MREFERCA9ICQoWENCQVVYX0xJQlMpIC1sWENCcmFu
ZHIKIHhjYnJhbmRyX1NPVVJDRVMgPSB4Y2JyYW5kci5jCmRpZmYgLS1naXQgYS94Y2ItdXRpbC9p
bWFnZS9NYWtlZmlsZS5hbSBiL3hjYi11dGlsL2ltYWdlL01ha2VmaWxlLmFtCmluZGV4IDUyMjEw
MmYuLjE4ZGE4N2EgMTAwNjQ0Ci0tLSBhL3hjYi11dGlsL2ltYWdlL01ha2VmaWxlLmFtCisrKyBi
L3hjYi11dGlsL2ltYWdlL01ha2VmaWxlLmFtCkBAIC03LDcgKzcsNyBAQCB4Y2JpbmNsdWRlX0hF
QURFUlMgPSB4Y2JfaW1hZ2UuaAogCiBBTV9DRkxBR1MgPSAtV2FsbAogSU5DTFVERVMgPSAkKFhD
Ql9DRkxBR1MpIC1JLi4vY29udmVuaWVudAotTERBREQgPSAkKFhDQl9MSUJTKSAtTC4uL2NvbnZl
bmllbnQgLWxYQ0JBdXgKK0xEQUREID0gJChYQ0JfTElCUykgLUwuLi9jb252ZW5pZW50IC1sWENC
QXV4IC1sWENCc2htCiAKIGxpYlhDQkltYWdlX2xhX1NPVVJDRVMgPSB4Y2JfaW1hZ2UuYwogCmRp
ZmYgLS1naXQgYS94Y2ItdXRpbC9pbWFnZS94Y2ItaW1hZ2UucGMuaW4gYi94Y2ItdXRpbC9pbWFn
ZS94Y2ItaW1hZ2UucGMuaW4KaW5kZXggOGY3NzcxYy4uYmU0NWI2ZCAxMDA2NDQKLS0tIGEveGNi
LXV0aWwvaW1hZ2UveGNiLWltYWdlLnBjLmluCisrKyBiL3hjYi11dGlsL2ltYWdlL3hjYi1pbWFn
ZS5wYy5pbgpAQCAtNyw1ICs3LDUgQEAgTmFtZTogWENCSW1hZ2UKIERlc2NyaXB0aW9uOiBYQ0Ig
aW1hZ2UgY29udmVuaWVuY2UgbGlicmFyeQogVmVyc2lvbjogQFBBQ0tBR0VfVkVSU0lPTkAKIFJl
cXVpcmVzOiB4Y2IKLUxpYnM6IC1MJHtsaWJkaXJ9IC1sWENCSW1hZ2UgQExJQlNACitMaWJzOiAt
TCR7bGliZGlyfSAtbFhDQkltYWdlIC1sWENCc2htIEBMSUJTQAogQ2ZsYWdzOiAtSSR7aW5jbHVk
ZWRpcn0K
</data>        

          </attachment>
    </bug>

</bugzilla>