<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>72538</bug_id>
          
          <creation_ts>2011-11-16 13:11:40 -0800</creation_ts>
          <short_desc>WebWorker threads can outlive the QApplication instance</short_desc>
          <delta_ts>2011-12-01 14:35:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrew Wason">rectalogic</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>dimich</cc>
    
    <cc>hausmann</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504173</commentid>
    <comment_count>0</comment_count>
      <attachid>115429</attachid>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-11-16 13:11:40 -0800</bug_when>
    <thetext>Created attachment 115429
sample code

Currently when a QWebPage that has WebWorkers is destroyed, or when close() is called from the worker JS, the WorkerThread is quit (WebCore::Document::detach calls WebCore::ScriptExecutionContext::stopActiveDOMObjects which calls WebCore::Worker::stop) but not waited for. So there is a race condition, if the QApplication event loop quits and QApplication is destroyed, the WorkerThreads may still be running and may access internal Qt state and crash.

See bug 72155 for some discussion of this.

The attached sample code demonstrates this. It loads a page that spawns WebWorkers, then waits and quits QApplication. Setting a breakpoint in QCoreApplication::~QCoreApplication you can see a number of WorkerThreads are still active and have not finished shutting down.

Somewhere we should wait for the WorkerThreads to finish.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504176</commentid>
    <comment_count>1</comment_count>
      <attachid>115431</attachid>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-11-16 13:12:22 -0800</bug_when>
    <thetext>Created attachment 115431
gdb backtrace showing running WorkerThreads during QApplication destruction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505244</commentid>
    <comment_count>2</comment_count>
      <attachid>115691</attachid>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-11-17 14:48:07 -0800</bug_when>
    <thetext>Created attachment 115691
wait for WorkerThread to terminate in stop()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506770</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-21 00:33:07 -0800</bug_when>
    <thetext>How do the other ports handle this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506953</commentid>
    <comment_count>4</comment_count>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-11-21 07:38:26 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; How do the other ports handle this?

It looks to me like they don&apos;t, they have the same problem. This patch is not port-specific so should fix it for all of them.

I just checked with the gtk port, spawned a bunch of workers and put a breakpoint in _exit and when I quit GtkLauncher many WorkerThreads were still active.

But I think not waiting for WorkerThreads is a bigger problem for the Qt port since the threads seem to be using some Qt objects after QApplication is destroyed leading to periodic crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507244</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-21 14:59:17 -0800</bug_when>
    <thetext>Making thread stopping slow and synchronous does not seem so great. IIRC the design is that even though the thread continues to run for a short while, it should not cause any problems as communication is cut off.

Dave, Dmitry, could you please comment?

As a separate question, why does QApplication ever need to be destroyed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507259</commentid>
    <comment_count>6</comment_count>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-11-21 15:08:41 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt;
&gt; As a separate question, why does QApplication ever need to be destroyed?

In Qt applications it&apos;s typically destroyed when main() returns. I guess it could be allocated on the heap and leaked, but even then there is global static internal Qt state that is destroyed as part of application shutdown and this can cause a crash when lingering WorkerThreads threads indirectly access it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507281</commentid>
    <comment_count>7</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-11-21 15:37:57 -0800</bug_when>
    <thetext>I agree with Alexey here. There is all kinds of confirmations going between ScriptExecutionContext of the page and WorkerContext about shutdowns and terminations (not of the actual OS thread but of a message queue-based &apos;worker thread&apos;). It should be enough to deallocate any resources allocated by port&apos;s implementation. &quot;workerContextDestroyed&quot; callback is the one I would probably look at.

We should not assume there is always going to be 1:1 correspondence between workers and OS threads. At least this is going to be port-specific. For example, Chromium can run workers in separate process and might need to manage threads/resources/shutdown sequence in a specific way there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508130</commentid>
    <comment_count>8</comment_count>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-11-23 07:34:36 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; It should be enough to deallocate any resources allocated by port&apos;s implementation.

The platform specific resource is the QThread itself, and the only time it is destroyed is when the thread exits. Bug 72155 helps somewhat with this by dropping QThread in favor of native threads, but native threads become QAdoptedThreads when WTF::scheduleDispatchFunctionsOnMainThread is called from them to postMessage from the WebWorker - so we have a similar problem.

Perhaps Qt&apos;s WTF::scheduleDispatchFunctionsOnMainThread could be changed to connect QCoreApplication::aboutToQuit to a slot that does QThread::wait, and connect QThread::finished to a slot that disconnects that. So this way when QApplication is finished, it will wait for all outstanding worker QThreads to finish. I&apos;ll look into this.

Currently my workaround for this bug in my application is to install a signal handler for SIGSEGV when QApplication::exec returns, and in the handler just _exit(0). This is nasty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508539</commentid>
    <comment_count>9</comment_count>
      <attachid>116462</attachid>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-11-23 18:12:43 -0800</bug_when>
    <thetext>Created attachment 116462
wait for WorkerThread only for Qt platform

I&apos;ve tried a number of approaches but can&apos;t see how to do this safely with Qt. Part of the problem is knowing when the application is shutting down in order to safely wait for the workers - connecting to QCoreApplication::aboutToQuit is too early because any QWebPages may not be destroyed yet, so they won&apos;t have told their workers to quit. Connecting to QCoreApplication::destroyed is too late because some workers may still be starting up and crash because QCoreApplication::instance() is now NULL.

Attached patch makes waiting for WorkerThreads in stop() conditional on PLATFORM(QT)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508611</commentid>
    <comment_count>10</comment_count>
      <attachid>116462</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-23 21:19:07 -0800</bug_when>
    <thetext>Comment on attachment 116462
wait for WorkerThread only for Qt platform

This puts a burden on whoever need to modify this code next. They would have to understand both regular code path and what QT does, which is not so easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508737</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-24 05:52:29 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; We should not assume there is always going to be 1:1 correspondence between workers and OS threads. At least this is going to be port-specific. For example, Chromium can run workers in separate process and might need to manage threads/resources/shutdown sequence in a specific way there.

That&apos;s a good point, but even if workers are implemented as processes, don&apos;t you want those to terminate in a &quot;controlled&quot; way?

How does chromium enforce the termination of shared workers if for example I close the last window?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508738</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-24 05:56:01 -0800</bug_when>
    <thetext>Nevermind my previous comment, I see now how this is kind of a Qt specific race condition. Hmmmm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512941</commentid>
    <comment_count>13</comment_count>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-12-01 11:33:57 -0800</bug_when>
    <thetext>This bug was made irrelevant by bug 72155 - now that we don&apos;t use Qt objects in worker threads, it&apos;s safe to let them outlive QApplication.

For future reference, if we ever do need to wait for threads when QApplication is being destroyed - it looks like a Qt qAddPostRoutine() is the best place to do it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>115429</attachid>
            <date>2011-11-16 13:11:40 -0800</date>
            <delta_ts>2011-11-16 13:11:40 -0800</delta_ts>
            <desc>sample code</desc>
            <filename>worker.zip</filename>
            <type>application/zip</type>
            <size>1376</size>
            <attacher name="Andrew Wason">rectalogic</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAEd4cD8AAAAAAAAAAAAAAAAHABAAd29ya2VyL1VYDABBIcROxhbETtMH9QFQSwME
FAAIAAgAR3hwPwAAAAAAAAAAAAAAAA8AEAB3b3JrZXIvbWFpbi5jcHBVWAwAMRrETsYWxE7TB/UB
ZVDBTgIxEL3vVzSQkNaQDV4XQ0JiMCREJKAejIduGdlqt11np2Bi/Hfb3RVBe2hn3kzfezN9bZXx
W2BXq2lVGa0kaWcnSf8Xv9Z4lt+jOcs3uoTzjkfIHzQcJkmiLbFSastjIHGnhkwVEtlFiPdPzyL5
TFg4p9pMVhVvW2OTGCdtS0fKDu07btAuSY2TWx6dZdkLunLhlDQzbYBH91mmPCJY4iKVee2MJ4jF
O0kF7x0cvgGmBZWmJ8RRrpmKUbxbqSZMa6C5JcC9NPxyNBqJP8W1tjsD68IRJ/TQlVfL/BUUBSPO
2hDwQfNhyNbzm9vpgsfM+eBPDNkgzB8Ki+WGv3sdsaOnfyzd+EeeuIaZtrouYMtz50xD+KMVKWuS
eMqJQB6bnafwAYoH/Cv5BlBLBwhaqrhBLQEAABUCAABQSwMEFAAIAAgAOXZwPwAAAAAAAAAAAAAA
ABIAEAB3b3JrZXIvd29ya2VyLmh0bWxVWAwAMRrETt4TxE7TB/UBVVCxEoIwDN37FblOeHqis8jm
prNzpVGr0HJtRDmPfzelMJjlJS8veZcUd2rqUhR3VJohVN60BNS3uJeEH8ofqlOJlaW4Og9ZpzwY
2MNmx1DANuJyuYCvAI7YfTv/RM8Si284j0UmE7l+BLnYjcqJUFofOrR0NIHQRmWDIagbyhVcX7Yi
42yGUTFbxKicDa7Gde1u82qY5sBjZXhAz0bDv2HrAp2SNOPOIIo8Hcj359MfLk73peA6JcyPb/oB
UEsHCK/7mJi9AAAALgEAAFBLAwQUAAgACAAQZ3A/AAAAAAAAAAAAAAAAEAAQAHdvcmtlci93b3Jr
ZXIuanNVWAwA/RvETlD5w07TB/UBK8gvLvFNLS5OTE/VUKiuVdC05tLXV3DJz1MvUUhOzMlRSM7J
L07V0OQCAFBLBwiqrFA/KwAAACkAAABQSwMEFAAIAAgAbGhwPwAAAAAAAAAAAAAAABEAEAB3b3Jr
ZXIvd29ya2VyLnByb1VYDAAxGsRO7PrDTtMH9QELcfUN8HEMcVWwVUgsKODicvb3c/N0V9C2VUhJ
TSpNj0/MS4kvSs1JTSxO5cpNTLaCyuuClccnleal5KRyBYaANJSnJmVnlnAF+4cGObsGg0RyEzPz
9JKBxgIAUEsHCKkcKHVbAAAAZgAAAFBLAQIVAwoAAAAAAEd4cD8AAAAAAAAAAAAAAAAHAAwAAAAA
AAAAAEDtQQAAAAB3b3JrZXIvVVgIAEEhxE7GFsROUEsBAhUDFAAIAAgAR3hwP1qquEEtAQAAFQIA
AA8ADAAAAAAAAAAAQKSBNQAAAHdvcmtlci9tYWluLmNwcFVYCAAxGsROxhbETlBLAQIVAxQACAAI
ADl2cD+v+5iYvQAAAC4BAAASAAwAAAAAAAAAAECkga8BAAB3b3JrZXIvd29ya2VyLmh0bWxVWAgA
MRrETt4TxE5QSwECFQMUAAgACAAQZ3A/qqxQPysAAAApAAAAEAAMAAAAAAAAAABApIG8AgAAd29y
a2VyL3dvcmtlci5qc1VYCAD9G8ROUPnDTlBLAQIVAxQACAAIAGxocD+pHCh1WwAAAGYAAAARAAwA
AAAAAAAAAECkgTUDAAB3b3JrZXIvd29ya2VyLnByb1VYCAAxGsRO7PrDTlBLBQYAAAAABQAFAGsB
AADfAwAAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>115431</attachid>
            <date>2011-11-16 13:12:22 -0800</date>
            <delta_ts>2011-11-16 13:12:22 -0800</delta_ts>
            <desc>gdb backtrace showing running WorkerThreads during QApplication destruction</desc>
            <filename>workers.log</filename>
            <type>text/plain</type>
            <size>62539</size>
            <attacher name="Andrew Wason">rectalogic</attacher>
            
              <data encoding="base64">ClRocmVhZCAyMyAoVGhyZWFkIDB4N2ZmZjhiN2ZlNzAwIChMV1AgMTI1MDcpKToKIzAgIDB4MDAw
MDdmZmZmMzVkNmJjOSBpbiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0QEBHTElCQ18yLjMuMiAoKQog
ICBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiMxICAweDAwMDA3ZmZmZjM4OTNhOTUgaW4gUVdh
aXRDb25kaXRpb25Qcml2YXRlOjp3YWl0ICh0aGlzPTB4N2M0ZWIwLCAKICAgIHRpbWU9MTAwMCkg
YXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9uX3VuaXguY3BwOjg0CiMyICAweDAwMDA3ZmZmZjM4OTM4
NTkgaW4gUVdhaXRDb25kaXRpb246OndhaXQgKHRoaXM9MHg3YzRlOTAsIG11dGV4PTB4N2M0ZTQw
LCAKICAgIHRpbWU9MTAwMCkgYXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9uX3VuaXguY3BwOjE1OAoj
MyAgMHgwMDAwN2ZmZmY2NGEyYzMxIGluIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQg
KHRoaXM9MHg3YzJlMjgsIAogICAgbXV0ZXg9Li4uLCBhYnNvbHV0ZVRpbWU9MTMyMTQ3NjI0Ni4z
MDEyMTU5KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9U
aHJlYWRpbmdRdC5jcHA6Mjc4CiM0ICAweDAwMDA3ZmZmZjY1NDNmZmEgaW4gSlNDOjpIZWFwOjp3
YWl0Rm9yUmVsYXRpdmVUaW1lV2hpbGVIb2xkaW5nTG9jayAodGhpcz0KICAgIDB4N2MyYjA4LCBy
ZWxhdGl2ZT0xKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHA6MzkxCiM1ICAweDAwMDA3ZmZmZjY1NDQwM2YgaW4gSlNDOjpIZWFwOjp3YWl0Rm9y
UmVsYXRpdmVUaW1lICh0aGlzPTB4N2MyYjA4LCAKICAgIHJlbGF0aXZlPTEpIGF0IC4uLy4uLy4u
Ly4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwOjQwMQojNiAgMHgwMDAwN2Zm
ZmY2NTQ0MGJjIGluIEpTQzo6SGVhcDo6YmxvY2tGcmVlaW5nVGhyZWFkTWFpbiAodGhpcz0weDdj
MmIwOCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwOjQxNQojNyAgMHgwMDAwN2ZmZmY2NTQ0MDhjIGluIEpTQzo6SGVhcDo6YmxvY2tGcmVlaW5n
VGhyZWFkU3RhcnRGdW5jIChoZWFwPQogICAgMHg3YzJiMDgpIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwOjQwNgojOCAgMHgwMDAwN2ZmZmY2NGE5NGQ1
IGluIFdURjo6dGhyZWFkRW50cnlQb2ludCAoY29udGV4dERhdGE9MHg3ZmZmOGMwMDczODApCiAg
ICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZy5jcHA6
NjcKIzkgIDB4MDAwMDdmZmZmNjRhMjA1MSBpbiBXVEY6OlRocmVhZFByaXZhdGU6OnJ1biAodGhp
cz0weDdmZmY4YzAwNzU4MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjY3CiMxMCAweDAwMDA3ZmZmZjM4OTIyZjkgaW4gUVRo
cmVhZFByaXZhdGU6OnN0YXJ0IChhcmc9MHg3ZmZmOGMwMDc1ODApCiAgICBhdCB0aHJlYWQvcXRo
cmVhZF91bml4LmNwcDoyOTgKIzExIDB4MDAwMDdmZmZmMzVkMTljYSBpbiBzdGFydF90aHJlYWQg
KCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojMTIgMHgwMDAwN2ZmZmYyYjgwNzBkIGluIGNs
b25lICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzEzIDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAo
KQoKVGhyZWFkIDIyIChUaHJlYWQgMHg3ZmZmOGJmZmY3MDAgKExXUCAxMjUwNikpOgojMCAgMHgw
MDAwN2ZmZmYyYjcyNGEwIGluIHJlYWQgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMSAgMHgwMDAw
N2ZmZmYyYjdlOTRjIGluID8/ICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzIgIDB4MDAwMDdmZmZm
MmI3ZWI4YyBpbiBnZXRfbnByb2NzICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzMgIDB4MDAwMDdm
ZmZmMmI0NjA4NSBpbiBzeXNjb25mICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzQgIDB4MDAwMDdm
ZmZmMzg5MjUzMyBpbiBRVGhyZWFkOjppZGVhbFRocmVhZENvdW50ICgpCiAgICBhdCB0aHJlYWQv
cXRocmVhZF91bml4LmNwcDo0MTEKIzUgIDB4MDAwMDdmZmZmMzg4YjI2ZiBpbiBRTXV0ZXg6Omxv
Y2tJbnRlcm5hbCAodGhpcz0weDY4ZjY5MCkKICAgIGF0IHRocmVhZC9xbXV0ZXguY3BwOjQzNAoj
NiAgMHgwMDAwN2ZmZmYzODhhZjA0IGluIFFNdXRleDo6bG9jayAodGhpcz0weDY4ZjY5MCkgYXQg
dGhyZWFkL3FtdXRleC5jcHA6MTc3CiM3ICAweDAwMDA3ZmZmZjY0YTI5YjUgaW4gV1RGOjpNdXRl
eDo6bG9jayAodGhpcz0weDdmZmZmN2RkYzYwOCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjIzNQojOCAgMHgwMDAwN2ZmZmY1
MzAxYTBlIGluIFdURjo6TG9ja2VyPFdURjo6TXV0ZXg+OjpMb2NrZXIgKHRoaXM9CiAgICAweDdm
ZmY4YmZmZTg1MCwgbG9ja2FibGU9Li4uKQogICAgYXQgLi4vLi4vLi4vU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9Mb2NrZXIuaDozOAojOSAgMHgwMDAwN2ZmZmY2NGEyMWM4IGluIFdURjo6aWRl
bnRpZmllckJ5UXRocmVhZEhhbmRsZSAodGhyZWFkPQogICAgQDB4N2ZmZjhiZmZlOGIwKQogICAg
YXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5j
cHA6MTAyCiMxMCAweDAwMDA3ZmZmZjY0YTI4NTMgaW4gV1RGOjpjdXJyZW50VGhyZWFkICgpCiAg
ICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0
LmNwcDoyMTMKIzExIDB4MDAwMDdmZmZmNWI2YmUzOSBpbiBXZWJDb3JlOjpUaW1lckJhc2U6OnN0
b3AgKHRoaXM9MHg3ZmZmOTQwMzI3ZDgpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaW1lci5jcHA6MjE5CiMxMiAweDAwMDA3ZmZmZjViNmJjMmUgaW4gV2ViQ29y
ZTo6VGltZXJCYXNlOjp+VGltZXJCYXNlICh0aGlzPTB4N2ZmZjk0MDMyN2Q4LCAKICAgIF9faW5f
Y2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UaW1lci5jcHA6MjA1CiMxMyAweDAwMDA3ZmZmZjU0NzY2ZDIgaW4gV2ViQ29yZTo6
VGltZXI8V2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI+Ojp+VGltZXIgKAogICAgdGhpcz0weDdm
ZmY5NDAzMjdkOCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmg6OTIKIzE0IDB4MDAwMDdmZmZmNTQ3Njhi
MSBpbiBXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6flNjcmlwdERlYnVnU2VydmVyICh0aGlz
PQogICAgMHg3ZmZmOTQwMzI3MzgsIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAu
Li8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5j
cHA6NjgKIzE1IDB4MDAwMDdmZmZmNTk3MGIxMiBpbiBXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcjo6fldvcmtlclNjcmlwdERlYnVnU2VydmVyICh0aGlzPTB4N2ZmZjk0MDMyNzM4LCBf
X2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaDo0NgojMTYgMHgwMDAwN2Zm
ZmY1OTcwZGM5IGluIFdlYkNvcmU6OldvcmtlckRlYnVnZ2VyQWdlbnQ6On5Xb3JrZXJEZWJ1Z2dl
ckFnZW50ICgKICAgIHRoaXM9MHg3ZmZmOTQwMzI2ODAsIF9faW5fY2hyZz08b3B0aW1pemVkIG91
dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVi
dWdnZXJBZ2VudC5jcHA6NTUKIzE3IDB4MDAwMDdmZmZmNThmNGI2YyBpbiBXVEY6OmRlbGV0ZU93
bmVkUHRyPFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+CiAgICAocHRyPTB4N2ZmZjk0
MDMyNjgwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25Q
dHJDb21tb24uaDo1MwojMTggMHgwMDAwN2ZmZmY1OGYzNzQ1IGluIFdURjo6T3duUHRyPFdlYkNv
cmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+Ojp+T3duUHRyCiAgICAodGhpcz0weDdmZmY5NDAz
MWM3OCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyLmg6NTQKIzE5IDB4MDAwMDdmZmZmNTk3MTg0NSBp
biBXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjp+V29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlciAodGhpcz0weDdmZmY5NDAzMWM1MCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikK
ICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmNwcDoxMzQKIzIwIDB4MDAwMDdmZmZmNWUyOTk2MSBpbiBXVEY6OmRlbGV0
ZU93bmVkUHRyPFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI+IChwdHI9MHg3ZmZm
OTQwMzFjNTApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093
blB0ckNvbW1vbi5oOjUzCiMyMSAweDAwMDA3ZmZmZjVlMjk0ODAgaW4gV1RGOjpPd25QdHI8V2Vi
Q29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcj46OmNsZWFyICh0aGlzPTB4N2MxMTg4KSBh
dCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093blB0ci5oOjk5CiMyMiAw
eDAwMDA3ZmZmZjVlMjdlYjggaW4gV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6Y2xlYXJJbnNwZWN0
b3IgKHRoaXM9CiAgICAweDdjMTAwMCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoyMzcKIzIzIDB4MDAwMDdmZmZmNWUzNTM5YSBpbiBXZWJD
b3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6OnBlcmZvcm1UYXNrCiAgICAodGhp
cz0weDYyYzhiMCwgY29udGV4dD0weDdjMTAwMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoxODUKIzI0IDB4MDAwMDdmZmZmNWUzMjA4
OCBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayAodGhpcz0KICAg
IDB4NzQ5MTEwLCBjb250ZXh0PTB4N2MxMDAwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoyMDAKIzI1IDB4MDAwMDdmZmZmNWUzMWQ0
NyBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUgKHRoaXM9CiAgICAweDdmZmZh
NDA2MDk3MCwgY29udGV4dD0weDdjMTAwMCwgcHJlZGljYXRlPS4uLikKICAgIGF0IC4uLy4uLy4u
Ly4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6MTY0CiMyNiAweDAw
MDA3ZmZmZjVlMzFhM2YgaW4gV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cnVuICh0aGlzPTB4N2Zm
ZmE0MDYwOTcwLCAKICAgIGNvbnRleHQ9MHg3YzEwMDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOjEzNQojMjcgMHgwMDAwN2ZmZmY1
ZTM1MmE1IGluIFdlYkNvcmU6OldvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wICh0aGlzPQogICAg
MHg3ZmZmYTQwNjA5NDApIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcDoxNzAKIzI4IDB4MDAwMDdmZmZmNWUyNGY3NyBpbiBXZWJDb3JlOjpEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCAodGhpcz0KICAgIDB4N2ZmZmE0MDYwOTQw
KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQuY3BwOjY2CiMyOSAweDAwMDA3ZmZmZjVlMzUxOWYgaW4gV2ViQ29yZTo6V29ya2Vy
VGhyZWFkOjp3b3JrZXJUaHJlYWQgKHRoaXM9CiAgICAweDdmZmZhNDA2MDk0MCkgYXQgLi4vLi4v
Li4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE0OAojMzAgMHgw
MDAwN2ZmZmY1ZTM0ZjUyIGluIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3Rh
cnQgKHRocmVhZD0KICAgIDB4N2ZmZmE0MDYwOTQwKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6MTI0CiMzMSAweDAwMDA3ZmZmZjY0YTk0ZDUg
aW4gV1RGOjp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDdmZmZhNDA2MGU2MCkKICAg
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2
NwojMzIgMHgwMDAwN2ZmZmY2NGEyMDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlz
PTB4N2ZmZmE0MDYwZWUwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6NjcKIzMzIDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhy
ZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0weDdmZmZhNDA2MGVlMCkKICAgIGF0IHRocmVhZC9xdGhy
ZWFkX3VuaXguY3BwOjI5OAojMzQgMHgwMDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3RocmVhZCAo
KSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiMzNSAweDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xv
bmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMzYgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgp
CgpUaHJlYWQgMjEgKFRocmVhZCAweDdmZmY5MTNmYTcwMCAoTFdQIDEyNTA1KSk6CiMwICAweDAw
MDA3ZmZmZjM1ZDZiYzkgaW4gcHRocmVhZF9jb25kX3RpbWVkd2FpdEBAR0xJQkNfMi4zLjIgKCkK
ICAgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojMSAgMHgwMDAwN2ZmZmYzODkzYTk1IGluIFFX
YWl0Q29uZGl0aW9uUHJpdmF0ZTo6d2FpdCAodGhpcz0weDc2MjlhMCwgdGltZT05OTkpCiAgICBh
dCB0aHJlYWQvcXdhaXRjb25kaXRpb25fdW5peC5jcHA6ODQKIzIgIDB4MDAwMDdmZmZmMzg5Mzg1
OSBpbiBRV2FpdENvbmRpdGlvbjo6d2FpdCAodGhpcz0weDc2MmIwMCwgbXV0ZXg9MHg3NjJhODAs
IAogICAgdGltZT05OTkpIGF0IHRocmVhZC9xd2FpdGNvbmRpdGlvbl91bml4LmNwcDoxNTgKIzMg
IDB4MDAwMDdmZmZmNjRhMmMzMSBpbiBXVEY6OlRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0ICh0
aGlzPTB4N2IzOTg4LCAKICAgIG11dGV4PS4uLiwgYWJzb2x1dGVUaW1lPTEzMjE0NzYyNDYuMjgx
NzkzMSkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhy
ZWFkaW5nUXQuY3BwOjI3OAojNCAgMHgwMDAwN2ZmZmY2NTQzZmZhIGluIEpTQzo6SGVhcDo6d2Fp
dEZvclJlbGF0aXZlVGltZVdoaWxlSG9sZGluZ0xvY2sgKHRoaXM9CiAgICAweDdiMzY2OCwgcmVs
YXRpdmU9MSkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuY3BwOjM5MQojNSAgMHgwMDAwN2ZmZmY2NTQ0MDNmIGluIEpTQzo6SGVhcDo6d2FpdEZvclJl
bGF0aXZlVGltZSAodGhpcz0weDdiMzY2OCwgCiAgICByZWxhdGl2ZT0xKSBhdCAuLi8uLi8uLi8u
Li9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDo0MDEKIzYgIDB4MDAwMDdmZmZm
NjU0NDBiYyBpbiBKU0M6OkhlYXA6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4gKHRoaXM9MHg3YjM2
NjgpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cDo0MTUKIzcgIDB4MDAwMDdmZmZmNjU0NDA4YyBpbiBKU0M6OkhlYXA6OmJsb2NrRnJlZWluZ1Ro
cmVhZFN0YXJ0RnVuYyAoaGVhcD0KICAgIDB4N2IzNjY4KSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDo0MDYKIzggIDB4MDAwMDdmZmZmNjRhOTRkNSBp
biBXVEY6OnRocmVhZEVudHJ5UG9pbnQgKGNvbnRleHREYXRhPTB4NzYzNzUwKQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuY3BwOjY3CiM5ICAw
eDAwMDA3ZmZmZjY0YTIwNTEgaW4gV1RGOjpUaHJlYWRQcml2YXRlOjpydW4gKHRoaXM9MHg3NjM3
ZDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVh
ZGluZ1F0LmNwcDo2NwojMTAgMHgwMDAwN2ZmZmYzODkyMmY5IGluIFFUaHJlYWRQcml2YXRlOjpz
dGFydCAoYXJnPTB4NzYzN2QwKQogICAgYXQgdGhyZWFkL3F0aHJlYWRfdW5peC5jcHA6Mjk4CiMx
MSAweDAwMDA3ZmZmZjM1ZDE5Y2EgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi9saWJwdGhy
ZWFkLnNvLjAKIzEyIDB4MDAwMDdmZmZmMmI4MDcwZCBpbiBjbG9uZSAoKSBmcm9tIC9saWIvbGli
Yy5zby42CiMxMyAweDAwMDAwMDAwMDAwMDAwMDAgaW4gPz8gKCkKClRocmVhZCAyMCAoVGhyZWFk
IDB4N2ZmZjkyN2ZjNzAwIChMV1AgMTI1MDMpKToKIzAgIDB4MDAwMDdmZmZmMzVkNmJjOSBpbiBw
dGhyZWFkX2NvbmRfdGltZWR3YWl0QEBHTElCQ18yLjMuMiAoKQogICBmcm9tIC9saWIvbGlicHRo
cmVhZC5zby4wCiMxICAweDAwMDA3ZmZmZjM4OTNhOTUgaW4gUVdhaXRDb25kaXRpb25Qcml2YXRl
Ojp3YWl0ICh0aGlzPTB4N2ZmZjk0MDFmZjAwLCAKICAgIHRpbWU9MTAwMCkgYXQgdGhyZWFkL3F3
YWl0Y29uZGl0aW9uX3VuaXguY3BwOjg0CiMyICAweDAwMDA3ZmZmZjM4OTM4NTkgaW4gUVdhaXRD
b25kaXRpb246OndhaXQgKHRoaXM9MHg3ZmZmOTQwMGRiZTAsIG11dGV4PQogICAgMHg3ZmZmOTQw
MGQxYTAsIHRpbWU9MTAwMCkgYXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9uX3VuaXguY3BwOjE1OAoj
MyAgMHgwMDAwN2ZmZmY2NGEyYzMxIGluIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQg
KHRoaXM9MHg3YWMyMjgsIAogICAgbXV0ZXg9Li4uLCBhYnNvbHV0ZVRpbWU9MTMyMTQ3NjI0Ni4y
NjkwNTIpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1Ro
cmVhZGluZ1F0LmNwcDoyNzgKIzQgIDB4MDAwMDdmZmZmNjU0M2ZmYSBpbiBKU0M6OkhlYXA6Ondh
aXRGb3JSZWxhdGl2ZVRpbWVXaGlsZUhvbGRpbmdMb2NrICh0aGlzPQogICAgMHg3YWJmMDgsIHJl
bGF0aXZlPTEpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcDozOTEKIzUgIDB4MDAwMDdmZmZmNjU0NDAzZiBpbiBKU0M6OkhlYXA6OndhaXRGb3JS
ZWxhdGl2ZVRpbWUgKHRoaXM9MHg3YWJmMDgsIAogICAgcmVsYXRpdmU9MSkgYXQgLi4vLi4vLi4v
Li4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDAxCiM2ICAweDAwMDA3ZmZm
ZjY1NDQwYmMgaW4gSlNDOjpIZWFwOjpibG9ja0ZyZWVpbmdUaHJlYWRNYWluICh0aGlzPTB4N2Fi
ZjA4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHA6NDE1CiM3ICAweDAwMDA3ZmZmZjY1NDQwOGMgaW4gSlNDOjpIZWFwOjpibG9ja0ZyZWVpbmdU
aHJlYWRTdGFydEZ1bmMgKGhlYXA9CiAgICAweDdhYmYwOCkgYXQgLi4vLi4vLi4vLi4vU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDA2CiM4ICAweDAwMDA3ZmZmZjY0YTk0ZDUg
aW4gV1RGOjp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDdmZmY5NDAyMjQxMCkKICAg
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2
NwojOSAgMHgwMDAwN2ZmZmY2NGEyMDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlz
PTB4N2ZmZjk0MDIyNDkwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6NjcKIzEwIDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhy
ZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0weDdmZmY5NDAyMjQ5MCkKICAgIGF0IHRocmVhZC9xdGhy
ZWFkX3VuaXguY3BwOjI5OAojMTEgMHgwMDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3RocmVhZCAo
KSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiMxMiAweDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xv
bmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMTMgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgp
CgpUaHJlYWQgMTkgKFRocmVhZCAweDdmZmY5MWZmYjcwMCAoTFdQIDEyNTA0KSk6CiMwICAweDAw
MDA3ZmZmZjJiNzI0YTAgaW4gcmVhZCAoKSBmcm9tIC9saWIvbGliYy5zby42CiMxICAweDAwMDA3
ZmZmZjJiN2U5NGMgaW4gPz8gKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMiAgMHgwMDAwN2ZmZmYy
YjdlYjhjIGluIGdldF9ucHJvY3MgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMyAgMHgwMDAwN2Zm
ZmYyYjQ2MDg1IGluIHN5c2NvbmYgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojNCAgMHgwMDAwN2Zm
ZmYzODkyNTMzIGluIFFUaHJlYWQ6OmlkZWFsVGhyZWFkQ291bnQgKCkKICAgIGF0IHRocmVhZC9x
dGhyZWFkX3VuaXguY3BwOjQxMQojNSAgMHgwMDAwN2ZmZmYzODhiMjZmIGluIFFNdXRleDo6bG9j
a0ludGVybmFsICh0aGlzPTB4NjhmNjkwKQogICAgYXQgdGhyZWFkL3FtdXRleC5jcHA6NDM0CiM2
ICAweDAwMDA3ZmZmZjM4OGFmMDQgaW4gUU11dGV4Ojpsb2NrICh0aGlzPTB4NjhmNjkwKSBhdCB0
aHJlYWQvcW11dGV4LmNwcDoxNzcKIzcgIDB4MDAwMDdmZmZmNjRhMjliNSBpbiBXVEY6Ok11dGV4
Ojpsb2NrICh0aGlzPTB4N2ZmZmY3ZGRjNjA4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6MjM1CiM4ICAweDAwMDA3ZmZmZjUz
MDFhMGUgaW4gV1RGOjpMb2NrZXI8V1RGOjpNdXRleD46OkxvY2tlciAodGhpcz0KICAgIDB4N2Zm
ZjkxZmZhNmIwLCBsb2NrYWJsZT0uLi4pCiAgICBhdCAuLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0xvY2tlci5oOjM4CiM5ICAweDAwMDA3ZmZmZjY0YTIxYzggaW4gV1RGOjppZGVu
dGlmaWVyQnlRdGhyZWFkSGFuZGxlICh0aHJlYWQ9CiAgICBAMHg3ZmZmOTFmZmE3MTApCiAgICBh
dCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNw
cDoxMDIKIzEwIDB4MDAwMDdmZmZmNjRhMjg1MyBpbiBXVEY6OmN1cnJlbnRUaHJlYWQgKCkKICAg
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQu
Y3BwOjIxMwojMTEgMHgwMDAwN2ZmZmY1MmY0NzJlIGluIFdURjo6VGhyZWFkUmVzdHJpY3Rpb25W
ZXJpZmllcjo6aXNTYWZlVG9Vc2UgKHRoaXM9CiAgICAweDdiMWM1OCkKICAgIGF0IC4uLy4uLy4u
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5oOjEy
OAojMTIgMHgwMDAwN2ZmZmY1MmY0OWM4IGluIFdURjo6UmVmQ291bnRlZEJhc2U6OmRlcmVmQmFz
ZSAodGhpcz0weDdiMWM1MCkKICAgIGF0IC4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUmVmQ291bnRlZC5oOjEyMgojMTMgMHgwMDAwN2ZmZmY1ZTFiNzc2IGluIFdURjo6UmVmQ291
bnRlZDxXZWJDb3JlOjpXb3JrZXJDb250ZXh0Pjo6ZGVyZWYgKHRoaXM9CiAgICAweDdiMWM1MCkg
YXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9SZWZDb3VudGVkLmg6MTgy
CiMxNCAweDAwMDA3ZmZmZjVlMWI4NDYgaW4gV1RGOjpkZXJlZklmTm90TnVsbDxXZWJDb3JlOjpX
b3JrZXJDb250ZXh0PiAocHRyPQogICAgMHg3YjFiNjApIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGFzc1JlZlB0ci5oOjU5CiMxNSAweDAwMDA3ZmZmZjVlMWI3ZjEg
aW4gV1RGOjpSZWZQdHI8V2ViQ29yZTo6V29ya2VyQ29udGV4dD46On5SZWZQdHIgKHRoaXM9CiAg
ICAweDdmZmY5MDdlM2YyOCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC4uLy4u
Ly4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUmVmUHRyLmg6NTgKIzE2IDB4MDAwMDdm
ZmZmNWUxYjQzNyBpbiBXZWJDb3JlOjpKU1dvcmtlckNvbnRleHRCYXNlOjp+SlNXb3JrZXJDb250
ZXh0QmFzZSAoCiAgICB0aGlzPTB4N2ZmZjkwN2UzY2EwLCBfX2luX2Nocmc9PG9wdGltaXplZCBv
dXQ+KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0QmFzZS5jcHA6NjUKIzE3IDB4MDAwMDdmZmZmNjJiOTk4MCBpbiBXZWJDb3JlOjpK
U1dvcmtlckNvbnRleHQ6On5KU1dvcmtlckNvbnRleHQgKHRoaXM9CiAgICAweDdmZmY5MDdlM2Nh
MCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IGdlbmVyYXRlZC9KU1dvcmtlckNv
bnRleHQuaDozMwojMTggMHgwMDAwN2ZmZmY2MmJhNTBjIGluIFdlYkNvcmU6OkpTRGVkaWNhdGVk
V29ya2VyQ29udGV4dDo6fkpTRGVkaWNhdGVkV29ya2VyQ29udGV4dCAodGhpcz0weDdmZmY5MDdl
M2NhMCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IGdlbmVyYXRlZC9KU0RlZGlj
YXRlZFdvcmtlckNvbnRleHQuaDozNAojMTkgMHgwMDAwN2ZmZmY2NTUxODU3IGluIEpTQzo6TWFy
a2VkQmxvY2s6OmNhbGxEZXN0cnVjdG9yKEpTQzo6SlNDZWxsKiwgdm9pZCopCiAgICAoKSBmcm9t
IC9ob21lL2F3L1Byb2plY3RzL2ZvdW5kYXRpb24vcXQ0ODAtbm9kYnVzL2xpYi9saWJRdFdlYktp
dC5zby40CiMyMCAweDAwMDA3ZmZmZjY1NTFhYzMgaW4gSlNDOjpNYXJrZWRCbG9jazo6RnJlZUNl
bGwqIEpTQzo6TWFya2VkQmxvY2s6OnNwZWNpYWxpemVkU3dlZXA8KEpTQzo6TWFya2VkQmxvY2s6
OkJsb2NrU3RhdGUpMywgKEpTQzo6TWFya2VkQmxvY2s6OlN3ZWVwTW9kZSkwPigpICgpCiAgIGZy
b20gL2hvbWUvYXcvUHJvamVjdHMvZm91bmRhdGlvbi9xdDQ4MC1ub2RidXMvbGliL2xpYlF0V2Vi
S2l0LnNvLjQKIzIxIDB4MDAwMDdmZmZmNjU1MTczZiBpbiBKU0M6Ok1hcmtlZEJsb2NrOjpzd2Vl
cCAodGhpcz0weDdmZmY5MDdlMDAwMCwgCiAgICBzd2VlcE1vZGU9SlNDOjpNYXJrZWRCbG9jazo6
U3dlZXBPbmx5KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya2VkQmxvY2suY3BwOjEyOQojMjIgMHgwMDAwN2ZmZmY2NTNjMDVmIGluIEpTQzo6QWxsb2Nh
dGlvblNwYWNlOjpmcmVlQmxvY2tzICh0aGlzPTB4N2IzNjg4LCAKICAgIGhlYWQ9MHg3ZmZmYTgy
YzAwMDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxv
Y2F0aW9uU3BhY2UuY3BwOjEyNQojMjMgMHgwMDAwN2ZmZmY2NTNjMTQ4IGluIEpTQzo6QWxsb2Nh
dGlvblNwYWNlOjpzaHJpbmsgKHRoaXM9MHg3YjM2ODgpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0aW9uU3BhY2UuY3BwOjE2OAojMjQgMHgwMDAw
N2ZmZmY2NTQ1Mzg2IGluIEpTQzo6SGVhcDo6c2hyaW5rICh0aGlzPTB4N2IzNjY4KQogICAgYXQg
Li4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6ODYzCiMyNSAw
eDAwMDA3ZmZmZjY1NDNlZTUgaW4gSlNDOjpIZWFwOjpkZXN0cm95ICh0aGlzPTB4N2IzNjY4KQog
ICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6Mzc0
CiMyNiAweDAwMDA3ZmZmZjVlMWNmMWQgaW4gV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIgKHRoaXM9MHg3NjQyYjAsIF9faW5fY2hyZz08b3B0
aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDo2OQojMjcgMHgwMDAwN2ZmZmY1ZTI5NzNmIGlu
IFdURjo6ZGVsZXRlT3duZWRQdHI8V2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcj4KICAg
IChwdHI9MHg3NjQyYjApIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
T3duUHRyQ29tbW9uLmg6NTMKIzI4IDB4MDAwMDdmZmZmNWUzNTdjMiBpbiBXVEY6Ok93blB0cjxX
ZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyPjo6Y2xlYXIgKAogICAgdGhpcz0weDdiMWNj
OCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Pd25QdHIuaDo5OQoj
MjkgMHgwMDAwN2ZmZmY1ZTM0NGQwIGluIFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmNsZWFyU2Ny
aXB0ICh0aGlzPTB4N2IxYjYwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0Lmg6ODQKIzMwIDB4MDAwMDdmZmZmNWUzNTNhNiBpbiBXZWJDb3Jl
OjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6OnBlcmZvcm1UYXNrCiAgICAodGhpcz0w
eDdmZmY4YzAxMDcxMCwgY29udGV4dD0weDdiMWI2MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoxODgKIzMxIDB4MDAwMDdmZmZmNWUz
MjA4OCBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzayAodGhpcz0K
ICAgIDB4N2ZmZjhjMDBjODEwLCBjb250ZXh0PTB4N2IxYjYwKQogICAgYXQgLi4vLi4vLi4vLi4v
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoyMDAKIzMyIDB4MDAwMDdm
ZmZmNWUzMWQ0NyBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpydW5Jbk1vZGUgKHRoaXM9MHg3
NWY3ZjAsIAogICAgY29udGV4dD0weDdiMWI2MCwgcHJlZGljYXRlPS4uLikKICAgIGF0IC4uLy4u
Ly4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6MTY0CiMzMyAw
eDAwMDA3ZmZmZjVlMzFhM2YgaW4gV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cnVuICh0aGlzPTB4
NzVmN2YwLCBjb250ZXh0PQogICAgMHg3YjFiNjApIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6MTM1CiMzNCAweDAwMDA3ZmZmZjVlMzUyYTUg
aW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AgKHRoaXM9MHg3NWY3YzApCiAg
ICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6
MTcwCiMzNSAweDAwMDA3ZmZmZjVlMjRmNzcgaW4gV2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyVGhy
ZWFkOjpydW5FdmVudExvb3AgKHRoaXM9CiAgICAweDc1ZjdjMCkKICAgIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcDo2NgojMzYg
MHgwMDAwN2ZmZmY1ZTM1MTlmIGluIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFk
ICh0aGlzPTB4NzVmN2MwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwOjE0OAojMzcgMHgwMDAwN2ZmZmY1ZTM0ZjUyIGluIFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3RhcnQgKHRocmVhZD0KICAgIDB4NzVmN2MwKSBh
dCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6MTI0
CiMzOCAweDAwMDA3ZmZmZjY0YTk0ZDUgaW4gV1RGOjp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0
RGF0YT0weDc1ZWFmMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvVGhyZWFkaW5nLmNwcDo2NwojMzkgMHgwMDAwN2ZmZmY2NGEyMDUxIGluIFdURjo6VGhyZWFk
UHJpdmF0ZTo6cnVuICh0aGlzPTB4NzVmMTkwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6NjcKIzQwIDB4MDAwMDdmZmZmMzg5
MjJmOSBpbiBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0weDc1ZjE5MCkKICAgIGF0IHRocmVh
ZC9xdGhyZWFkX3VuaXguY3BwOjI5OAojNDEgMHgwMDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3Ro
cmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiM0MiAweDAwMDA3ZmZmZjJiODA3MGQg
aW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojNDMgMHgwMDAwMDAwMDAwMDAwMDAwIGlu
ID8/ICgpCgpUaHJlYWQgMTggKFRocmVhZCAweDdmZmY5MzdmZTcwMCAoTFdQIDEyNTAxKSk6CiMw
ICAweDAwMDA3ZmZmZjM1ZDZiYzkgaW4gcHRocmVhZF9jb25kX3RpbWVkd2FpdEBAR0xJQkNfMi4z
LjIgKCkKICAgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojMSAgMHgwMDAwN2ZmZmYzODkzYTk1
IGluIFFXYWl0Q29uZGl0aW9uUHJpdmF0ZTo6d2FpdCAodGhpcz0weDdmZmY5YzAyOWUzMCwgCiAg
ICB0aW1lPTEwMDApIGF0IHRocmVhZC9xd2FpdGNvbmRpdGlvbl91bml4LmNwcDo4NAojMiAgMHgw
MDAwN2ZmZmYzODkzODU5IGluIFFXYWl0Q29uZGl0aW9uOjp3YWl0ICh0aGlzPTB4N2ZmZjljMDI5
ZTEwLCBtdXRleD0KICAgIDB4N2ZmZjljMDI5ZGMwLCB0aW1lPTEwMDApIGF0IHRocmVhZC9xd2Fp
dGNvbmRpdGlvbl91bml4LmNwcDoxNTgKIzMgIDB4MDAwMDdmZmZmNjRhMmMzMSBpbiBXVEY6OlRo
cmVhZENvbmRpdGlvbjo6dGltZWRXYWl0ICh0aGlzPTB4N2E1MzI4LCAKICAgIG11dGV4PS4uLiwg
YWJzb2x1dGVUaW1lPTEzMjE0NzYyNDYuMjQ4ODE5MSkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjI3OAojNCAgMHgwMDAwN2Zm
ZmY2NTQzZmZhIGluIEpTQzo6SGVhcDo6d2FpdEZvclJlbGF0aXZlVGltZVdoaWxlSG9sZGluZ0xv
Y2sgKHRoaXM9CiAgICAweDdhNTAwOCwgcmVsYXRpdmU9MSkKICAgIGF0IC4uLy4uLy4uLy4uL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwOjM5MQojNSAgMHgwMDAwN2ZmZmY2NTQ0
MDNmIGluIEpTQzo6SGVhcDo6d2FpdEZvclJlbGF0aXZlVGltZSAodGhpcz0weDdhNTAwOCwgCiAg
ICByZWxhdGl2ZT0xKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcDo0MDEKIzYgIDB4MDAwMDdmZmZmNjU0NDBiYyBpbiBKU0M6OkhlYXA6OmJsb2NrRnJl
ZWluZ1RocmVhZE1haW4gKHRoaXM9MHg3YTUwMDgpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDo0MTUKIzcgIDB4MDAwMDdmZmZmNjU0NDA4YyBp
biBKU0M6OkhlYXA6OmJsb2NrRnJlZWluZ1RocmVhZFN0YXJ0RnVuYyAoaGVhcD0KICAgIDB4N2E1
MDA4KSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDo0
MDYKIzggIDB4MDAwMDdmZmZmNjRhOTRkNSBpbiBXVEY6OnRocmVhZEVudHJ5UG9pbnQgKGNvbnRl
eHREYXRhPTB4N2ZmZjljMDJlZGIwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9UaHJlYWRpbmcuY3BwOjY3CiM5ICAweDAwMDA3ZmZmZjY0YTIwNTEgaW4gV1RG
OjpUaHJlYWRQcml2YXRlOjpydW4gKHRoaXM9MHg3ZmZmOWMwMmVlMzApCiAgICBhdCAuLi8uLi8u
Li8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcDo2NwojMTAg
MHgwMDAwN2ZmZmYzODkyMmY5IGluIFFUaHJlYWRQcml2YXRlOjpzdGFydCAoYXJnPTB4N2ZmZjlj
MDJlZTMwKQogICAgYXQgdGhyZWFkL3F0aHJlYWRfdW5peC5jcHA6Mjk4CiMxMSAweDAwMDA3ZmZm
ZjM1ZDE5Y2EgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi9saWJwdGhyZWFkLnNvLjAKIzEy
IDB4MDAwMDdmZmZmMmI4MDcwZCBpbiBjbG9uZSAoKSBmcm9tIC9saWIvbGliYy5zby42CiMxMyAw
eDAwMDAwMDAwMDAwMDAwMDAgaW4gPz8gKCkKClRocmVhZCAxNyAoVGhyZWFkIDB4N2ZmZjkyZmZk
NzAwIChMV1AgMTI1MDIpKToKIzAgIDB4MDAwMDdmZmZmMmI3MjRhMCBpbiByZWFkICgpIGZyb20g
L2xpYi9saWJjLnNvLjYKIzEgIDB4MDAwMDdmZmZmMmI3ZTk0YyBpbiA/PyAoKSBmcm9tIC9saWIv
bGliYy5zby42CiMyICAweDAwMDA3ZmZmZjJiN2ViOGMgaW4gZ2V0X25wcm9jcyAoKSBmcm9tIC9s
aWIvbGliYy5zby42CiMzICAweDAwMDA3ZmZmZjJiNDYwODUgaW4gc3lzY29uZiAoKSBmcm9tIC9s
aWIvbGliYy5zby42CiM0ICAweDAwMDA3ZmZmZjM4OTI1MzMgaW4gUVRocmVhZDo6aWRlYWxUaHJl
YWRDb3VudCAoKQogICAgYXQgdGhyZWFkL3F0aHJlYWRfdW5peC5jcHA6NDExCiM1ICAweDAwMDA3
ZmZmZjM4OGIyNmYgaW4gUU11dGV4Ojpsb2NrSW50ZXJuYWwgKHRoaXM9MHg2OGY2OTApCiAgICBh
dCB0aHJlYWQvcW11dGV4LmNwcDo0MzQKIzYgIDB4MDAwMDdmZmZmMzg4YWYwNCBpbiBRTXV0ZXg6
OmxvY2sgKHRoaXM9MHg2OGY2OTApIGF0IHRocmVhZC9xbXV0ZXguY3BwOjE3NwojNyAgMHgwMDAw
N2ZmZmY2NGEyOWI1IGluIFdURjo6TXV0ZXg6OmxvY2sgKHRoaXM9MHg3ZmZmZjdkZGM2MDgpCiAg
ICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0
LmNwcDoyMzUKIzggIDB4MDAwMDdmZmZmNTMwMWEwZSBpbiBXVEY6OkxvY2tlcjxXVEY6Ok11dGV4
Pjo6TG9ja2VyICh0aGlzPQogICAgMHg3ZmZmOTJmZmNhOTAsIGxvY2thYmxlPS4uLikKICAgIGF0
IC4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTG9ja2VyLmg6MzgKIzkgIDB4MDAw
MDdmZmZmNjRhMjFjOCBpbiBXVEY6OmlkZW50aWZpZXJCeVF0aHJlYWRIYW5kbGUgKHRocmVhZD0K
ICAgIEAweDdmZmY5MmZmY2FmMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjEwMgojMTAgMHgwMDAwN2ZmZmY2NGEyODUzIGlu
IFdURjo6Y3VycmVudFRocmVhZCAoKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6MjEzCiMxMSAweDAwMDA3ZmZmZjVlMzFjMWIg
aW4gV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlICh0aGlzPTB4NzU5MTIwLCAKICAg
IGNvbnRleHQ9MHg3YWE0MDAsIHByZWRpY2F0ZT0uLi4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOjE1MQojMTIgMHgwMDAwN2ZmZmY1
ZTMxYTNmIGluIFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnJ1biAodGhpcz0weDc1OTEyMCwgY29u
dGV4dD0KICAgIDB4N2FhNDAwKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclJ1bkxvb3AuY3BwOjEzNQojMTMgMHgwMDAwN2ZmZmY1ZTM1MmE1IGluIFdlYkNvcmU6
OldvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wICh0aGlzPTB4NzU5MGYwKQogICAgYXQgLi4vLi4v
Li4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE3MAojMTQgMHgw
MDAwN2ZmZmY1ZTI0Zjc3IGluIFdlYkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6cnVuRXZl
bnRMb29wICh0aGlzPQogICAgMHg3NTkwZjApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHA6NjYKIzE1IDB4MDAwMDdmZmZm
NWUzNTE5ZiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCAodGhpcz0weDc1
OTBmMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcDoxNDgKIzE2IDB4MDAwMDdmZmZmNWUzNGY1MiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZFN0YXJ0ICh0aHJlYWQ9CiAgICAweDc1OTBmMCkgYXQgLi4vLi4vLi4v
Li4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjEyNAojMTcgMHgwMDAw
N2ZmZmY2NGE5NGQ1IGluIFdURjo6dGhyZWFkRW50cnlQb2ludCAoY29udGV4dERhdGE9MHg3NTdk
MTApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGlu
Zy5jcHA6NjcKIzE4IDB4MDAwMDdmZmZmNjRhMjA1MSBpbiBXVEY6OlRocmVhZFByaXZhdGU6OnJ1
biAodGhpcz0weDc1N2Q5MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjY3CiMxOSAweDAwMDA3ZmZmZjM4OTIyZjkgaW4gUVRo
cmVhZFByaXZhdGU6OnN0YXJ0IChhcmc9MHg3NTdkOTApCiAgICBhdCB0aHJlYWQvcXRocmVhZF91
bml4LmNwcDoyOTgKIzIwIDB4MDAwMDdmZmZmMzVkMTljYSBpbiBzdGFydF90aHJlYWQgKCkgZnJv
bSAvbGliL2xpYnB0aHJlYWQuc28uMAojMjEgMHgwMDAwN2ZmZmYyYjgwNzBkIGluIGNsb25lICgp
IGZyb20gL2xpYi9saWJjLnNvLjYKIzIyIDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQoKVGhy
ZWFkIDE2IChUaHJlYWQgMHg3ZmZmOTNmZmY3MDAgKExXUCAxMjUwMCkpOgojMCAgMHgwMDAwN2Zm
ZmYzNWQ2ODVjIGluIHB0aHJlYWRfY29uZF93YWl0QEBHTElCQ18yLjMuMiAoKQogICBmcm9tIC9s
aWIvbGlicHRocmVhZC5zby4wCiMxICAweDAwMDA3ZmZmZjM4OTNhYjEgaW4gUVdhaXRDb25kaXRp
b25Qcml2YXRlOjp3YWl0ICh0aGlzPTB4N2ZmZjljMDJlZjYwLCAKICAgIHRpbWU9MTg0NDY3NDQw
NzM3MDk1NTE2MTUpIGF0IHRocmVhZC9xd2FpdGNvbmRpdGlvbl91bml4LmNwcDo4NgojMiAgMHgw
MDAwN2ZmZmYzODkzODU5IGluIFFXYWl0Q29uZGl0aW9uOjp3YWl0ICh0aGlzPTB4N2ZmZjljMDJl
ZjEwLCBtdXRleD0KICAgIDB4N2ZmZjljMDJlZWU4LCB0aW1lPTE4NDQ2NzQ0MDczNzA5NTUxNjE1
KQogICAgYXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9uX3VuaXguY3BwOjE1OAojMyAgMHgwMDAwN2Zm
ZmYzODkzMDEzIGluIFFUaHJlYWQ6OndhaXQgKHRoaXM9MHg3ZmZmOWMwMmVlMzAsIAogICAgdGlt
ZT0xODQ0Njc0NDA3MzcwOTU1MTYxNSkgYXQgdGhyZWFkL3F0aHJlYWRfdW5peC5jcHA6NjUxCiM0
ICAweDAwMDA3ZmZmZjY0YTI3YjAgaW4gV1RGOjp3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbiAodGhy
ZWFkSUQ9MTYsIHJlc3VsdD0KICAgIDB4MCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6MTk1CiM1ICAweDAwMDA3ZmZmZjY1NDNhN2Qg
aW4gSlNDOjpIZWFwOjp+SGVhcCAodGhpcz0weDdhNTAwOCwgCiAgICBfX2luX2Nocmc9PG9wdGlt
aXplZCBvdXQ+KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHA6MzQyCiM2ICAweDAwMDA3ZmZmZjY2YzU0ZDcgaW4gSlNDOjpKU0dsb2JhbERhdGE6
On5KU0dsb2JhbERhdGEgKHRoaXM9MHg3YTM3MjAsIAogICAgX19pbl9jaHJnPTxvcHRpbWl6ZWQg
b3V0PikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsRGF0YS5jcHA6MzU5CiM3ICAweDAwMDA3ZmZmZjU0MGUzMjcgaW4gV1RGOjpSZWZDb3Vu
dGVkPEpTQzo6SlNHbG9iYWxEYXRhPjo6ZGVyZWYgKHRoaXM9CiAgICAweDdhMzcyMCkgYXQgLi4v
Li4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9SZWZDb3VudGVkLmg6MTgzCiM4ICAw
eDAwMDA3ZmZmZjU0MGQ3MGYgaW4gV1RGOjpkZXJlZklmTm90TnVsbDxKU0M6OkpTR2xvYmFsRGF0
YT4gKHB0cj0weDdhMzcyMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUGFzc1JlZlB0ci5oOjU5CiM5ICAweDAwMDA3ZmZmZjU0MGM5NDEgaW4gV1RGOjpSZWZQ
dHI8SlNDOjpKU0dsb2JhbERhdGE+Ojp+UmVmUHRyICh0aGlzPQogICAgMHg3NTdhYjAsIF9faW5f
Y2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL1JlZlB0ci5oOjU4CiMxMCAweDAwMDA3ZmZmZjVlMWNmNTggaW4gV2ViQ29yZTo6
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIgKHRoaXM9MHg3
NTdhYjAsIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDo3MAojMTEg
MHgwMDAwN2ZmZmY1ZTI5NzNmIGluIFdURjo6ZGVsZXRlT3duZWRQdHI8V2ViQ29yZTo6V29ya2Vy
U2NyaXB0Q29udHJvbGxlcj4KICAgIChwdHI9MHg3NTdhYjApIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyQ29tbW9uLmg6NTMKIzEyIDB4MDAwMDdmZmZmNWUz
NTdjMiBpbiBXVEY6Ok93blB0cjxXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyPjo6Y2xl
YXIgKAogICAgdGhpcz0weDdhMzY2OCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9Pd25QdHIuaDo5OQojMTMgMHgwMDAwN2ZmZmY1ZTM0NGQwIGluIFdlYkNvcmU6Oldv
cmtlckNvbnRleHQ6OmNsZWFyU2NyaXB0ICh0aGlzPTB4N2EzNTAwKQogICAgYXQgLi4vLi4vLi4v
Li4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6ODQKIzE0IDB4MDAwMDdm
ZmZmNWUzNTNhNiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6OnBl
cmZvcm1UYXNrCiAgICAodGhpcz0weDdmZmY5YzA0YmQwMCwgY29udGV4dD0weDdhMzUwMCkKICAg
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDox
ODgKIzE1IDB4MDAwMDdmZmZmNWUzMjA4OCBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpUYXNr
OjpwZXJmb3JtVGFzayAodGhpcz0KICAgIDB4N2ZmZjljMDNkMGUwLCBjb250ZXh0PTB4N2EzNTAw
KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29w
LmNwcDoyMDAKIzE2IDB4MDAwMDdmZmZmNWUzMWQ0NyBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29w
OjpydW5Jbk1vZGUgKHRoaXM9MHg3OWNkZjAsIAogICAgY29udGV4dD0weDdhMzUwMCwgcHJlZGlj
YXRlPS4uLikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
UnVuTG9vcC5jcHA6MTY0CiMxNyAweDAwMDA3ZmZmZjVlMzFhM2YgaW4gV2ViQ29yZTo6V29ya2Vy
UnVuTG9vcDo6cnVuICh0aGlzPTB4NzljZGYwLCBjb250ZXh0PQogICAgMHg3YTM1MDApIGF0IC4u
Ly4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6MTM1CiMx
OCAweDAwMDA3ZmZmZjVlMzUyYTUgaW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpydW5FdmVudExv
b3AgKHRoaXM9MHg3OWNkYzApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6MTcwCiMxOSAweDAwMDA3ZmZmZjVlMjRmNzcgaW4gV2ViQ29y
ZTo6RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AgKHRoaXM9CiAgICAweDc5Y2Rj
MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyVGhyZWFkLmNwcDo2NgojMjAgMHgwMDAwN2ZmZmY1ZTM1MTlmIGluIFdlYkNvcmU6Oldvcmtl
clRocmVhZDo6d29ya2VyVGhyZWFkICh0aGlzPTB4NzljZGMwKQogICAgYXQgLi4vLi4vLi4vLi4v
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE0OAojMjEgMHgwMDAwN2Zm
ZmY1ZTM0ZjUyIGluIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3RhcnQgKHRo
cmVhZD0KICAgIDB4NzljZGMwKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHA6MTI0CiMyMiAweDAwMDA3ZmZmZjY0YTk0ZDUgaW4gV1RGOjp0aHJl
YWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDc1ODE4MCkKICAgIGF0IC4uLy4uLy4uLy4uL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2NwojMjMgMHgwMDAwN2ZmZmY2
NGEyMDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlzPTB4NzU4MjAwKQogICAgYXQg
Li4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6
NjcKIzI0IDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0w
eDc1ODIwMCkKICAgIGF0IHRocmVhZC9xdGhyZWFkX3VuaXguY3BwOjI5OAojMjUgMHgwMDAwN2Zm
ZmYzNWQxOWNhIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiMy
NiAweDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMjcg
MHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCgpUaHJlYWQgMTUgKFRocmVhZCAweDdmZmY5OTNi
MTcwMCAoTFdQIDEyNDk5KSk6CiMwICBRTWV0YU9iamVjdDo6YWN0aXZhdGUgKHNlbmRlcj0weDdm
ZmY5NDAxNGE3MCwgbT0weDdmZmY5NDAxMjc0MCwgCiAgICBsb2NhbF9zaWduYWxfaW5kZXg9MzI3
NjcsIGFyZ3Y9MHg3ZmZmOTQwMTk1MzApIGF0IGtlcm5lbC9xb2JqZWN0LmNwcDozNDQ4CiMxICAw
eDAwMDA3ZmZmZjNhNjk5ZTEgaW4gUVRocmVhZDo6ZmluaXNoZWQgKHRoaXM9MHg3ZmZmOTQwMTk1
YjApCiAgICBhdCAubW9jL2RlYnVnLXNoYXJlZC9tb2NfcXRocmVhZC5jcHA6MTE5CiMyICAweDAw
MDA3ZmZmZjM4OTIzZTkgaW4gUVRocmVhZFByaXZhdGU6OmZpbmlzaCAoYXJnPTB4N2ZmZjk0MDE5
NWIwKQogICAgYXQgdGhyZWFkL3F0aHJlYWRfdW5peC5jcHA6MzE5CiMzICAweDAwMDA3ZmZmZjM4
OTMzNjUgaW4gX19wdGhyZWFkX2NsZWFudXBfY2xhc3M6On5fX3B0aHJlYWRfY2xlYW51cF9jbGFz
cyAoCiAgICB0aGlzPTB4N2ZmZjk5M2IwZGMwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQog
ICAgYXQgL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDo1MzUKIzQgIDB4MDAwMDdmZmZmMzg5MjMxNiBp
biBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0weDdmZmY5NDAxOTViMCkKICAgIGF0IHRocmVh
ZC9xdGhyZWFkX3VuaXguY3BwOjMwMAojNSAgMHgwMDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3Ro
cmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiM2ICAweDAwMDA3ZmZmZjJiODA3MGQg
aW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojNyAgMHgwMDAwMDAwMDAwMDAwMDAwIGlu
ID8/ICgpCgpUaHJlYWQgMTQgKFRocmVhZCAweDdmZmY5YTdjYTcwMCAoTFdQIDEyNDk3KSk6CiMw
ICAweDAwMDA3ZmZmZjM1ZDZiYzkgaW4gcHRocmVhZF9jb25kX3RpbWVkd2FpdEBAR0xJQkNfMi4z
LjIgKCkKICAgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojMSAgMHgwMDAwN2ZmZmYzODkzYTk1
IGluIFFXYWl0Q29uZGl0aW9uUHJpdmF0ZTo6d2FpdCAodGhpcz0weDdmZmY5NDAwYWY3MCwgCiAg
ICB0aW1lPTk5OSkgYXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9uX3VuaXguY3BwOjg0CiMyICAweDAw
MDA3ZmZmZjM4OTM4NTkgaW4gUVdhaXRDb25kaXRpb246OndhaXQgKHRoaXM9MHg3ZmZmOTQwMDRi
YzAsIG11dGV4PQogICAgMHg3ZmZmOTQwMGI1MzAsIHRpbWU9OTk5KSBhdCB0aHJlYWQvcXdhaXRj
b25kaXRpb25fdW5peC5jcHA6MTU4CiMzICAweDAwMDA3ZmZmZjY0YTJjMzEgaW4gV1RGOjpUaHJl
YWRDb25kaXRpb246OnRpbWVkV2FpdCAodGhpcz0weDc5MzQyOCwgCiAgICBtdXRleD0uLi4sIGFi
c29sdXRlVGltZT0xMzIxNDc2MjQ2LjIwNzAxMjkpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcDoyNzgKIzQgIDB4MDAwMDdmZmZm
NjU0M2ZmYSBpbiBKU0M6OkhlYXA6OndhaXRGb3JSZWxhdGl2ZVRpbWVXaGlsZUhvbGRpbmdMb2Nr
ICh0aGlzPQogICAgMHg3OTMxMDgsIHJlbGF0aXZlPTEpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDozOTEKIzUgIDB4MDAwMDdmZmZmNjU0NDAz
ZiBpbiBKU0M6OkhlYXA6OndhaXRGb3JSZWxhdGl2ZVRpbWUgKHRoaXM9MHg3OTMxMDgsIAogICAg
cmVsYXRpdmU9MSkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHA6NDAxCiM2ICAweDAwMDA3ZmZmZjY1NDQwYmMgaW4gSlNDOjpIZWFwOjpibG9ja0ZyZWVp
bmdUaHJlYWRNYWluICh0aGlzPTB4NzkzMTA4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDE1CiM3ICAweDAwMDA3ZmZmZjY1NDQwOGMgaW4g
SlNDOjpIZWFwOjpibG9ja0ZyZWVpbmdUaHJlYWRTdGFydEZ1bmMgKGhlYXA9CiAgICAweDc5MzEw
OCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDA2
CiM4ICAweDAwMDA3ZmZmZjY0YTk0ZDUgaW4gV1RGOjp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0
RGF0YT0weDdmZmY5NDAwZmYxMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2NwojOSAgMHgwMDAwN2ZmZmY2NGEyMDUxIGluIFdURjo6
VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlzPTB4N2ZmZjk0MDBmZjkwKQogICAgYXQgLi4vLi4vLi4v
Li4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6NjcKIzEwIDB4
MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0weDdmZmY5NDAw
ZmY5MCkKICAgIGF0IHRocmVhZC9xdGhyZWFkX3VuaXguY3BwOjI5OAojMTEgMHgwMDAwN2ZmZmYz
NWQxOWNhIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiMxMiAw
eDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMTMgMHgw
MDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCgpUaHJlYWQgMTMgKFRocmVhZCAweDdmZmY5OWZjOTcw
MCAoTFdQIDEyNDk4KSk6CiMwICAweDAwMDA3ZmZmZjM1ZDY4NWMgaW4gcHRocmVhZF9jb25kX3dh
aXRAQEdMSUJDXzIuMy4yICgpCiAgIGZyb20gL2xpYi9saWJwdGhyZWFkLnNvLjAKIzEgIDB4MDAw
MDdmZmZmMzg5M2FiMSBpbiBRV2FpdENvbmRpdGlvblByaXZhdGU6OndhaXQgKHRoaXM9MHg3ZmZm
OTQwMTk2ZTAsIAogICAgdGltZT0xODQ0Njc0NDA3MzcwOTU1MTYxNSkgYXQgdGhyZWFkL3F3YWl0
Y29uZGl0aW9uX3VuaXguY3BwOjg2CiMyICAweDAwMDA3ZmZmZjM4OTM4NTkgaW4gUVdhaXRDb25k
aXRpb246OndhaXQgKHRoaXM9MHg3ZmZmOTQwMTk2OTAsIG11dGV4PQogICAgMHg3ZmZmOTQwMTk2
NjgsIHRpbWU9MTg0NDY3NDQwNzM3MDk1NTE2MTUpCiAgICBhdCB0aHJlYWQvcXdhaXRjb25kaXRp
b25fdW5peC5jcHA6MTU4CiMzICAweDAwMDA3ZmZmZjM4OTMwMTMgaW4gUVRocmVhZDo6d2FpdCAo
dGhpcz0weDdmZmY5NDAxOTViMCwgCiAgICB0aW1lPTE4NDQ2NzQ0MDczNzA5NTUxNjE1KSBhdCB0
aHJlYWQvcXRocmVhZF91bml4LmNwcDo2NTEKIzQgIDB4MDAwMDdmZmZmNjRhMjdiMCBpbiBXVEY6
OndhaXRGb3JUaHJlYWRDb21wbGV0aW9uICh0aHJlYWRJRD0xNCwgcmVzdWx0PQogICAgMHgwKSBh
dCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNw
cDoxOTUKIzUgIDB4MDAwMDdmZmZmNjU0M2E3ZCBpbiBKU0M6OkhlYXA6On5IZWFwICh0aGlzPTB4
N2ZmZjk0MDEyNDI4LCAKICAgIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8u
Li8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDozNDIKIzYgIDB4MDAw
MDdmZmZmNjZjNTRkNyBpbiBKU0M6OkpTR2xvYmFsRGF0YTo6fkpTR2xvYmFsRGF0YSAodGhpcz0K
ICAgIDB4N2ZmZjk0MDEwYjQwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoz
NTkKIzcgIDB4MDAwMDdmZmZmNTQwZTMyNyBpbiBXVEY6OlJlZkNvdW50ZWQ8SlNDOjpKU0dsb2Jh
bERhdGE+OjpkZXJlZiAodGhpcz0KICAgIDB4N2ZmZjk0MDEwYjQwKSBhdCAuLi8uLi8uLi8uLi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1JlZkNvdW50ZWQuaDoxODMKIzggIDB4MDAwMDdmZmZm
NTQwZDcwZiBpbiBXVEY6OmRlcmVmSWZOb3ROdWxsPEpTQzo6SlNHbG9iYWxEYXRhPiAocHRyPQog
ICAgMHg3ZmZmOTQwMTBiNDApIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvUGFzc1JlZlB0ci5oOjU5CiM5ICAweDAwMDA3ZmZmZjU0MGM5NDEgaW4gV1RGOjpSZWZQdHI8
SlNDOjpKU0dsb2JhbERhdGE+Ojp+UmVmUHRyICh0aGlzPQogICAgMHg3NWEwYjAsIF9faW5fY2hy
Zz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL1JlZlB0ci5oOjU4CiMxMCAweDAwMDA3ZmZmZjVlMWNmNTggaW4gV2ViQ29yZTo6V29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIgKHRoaXM9MHg3NWEw
YjAsIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDo3MAojMTEgMHgw
MDAwN2ZmZmY1ZTI5NzNmIGluIFdURjo6ZGVsZXRlT3duZWRQdHI8V2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcj4KICAgIChwdHI9MHg3NWEwYjApIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvT3duUHRyQ29tbW9uLmg6NTMKIzEyIDB4MDAwMDdmZmZmNWUzNTdj
MiBpbiBXVEY6Ok93blB0cjxXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyPjo6Y2xlYXIg
KAogICAgdGhpcz0weDc4ZDI2OCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9Pd25QdHIuaDo5OQojMTMgMHgwMDAwN2ZmZmY1ZTM0NGQwIGluIFdlYkNvcmU6Oldvcmtl
ckNvbnRleHQ6OmNsZWFyU2NyaXB0ICh0aGlzPTB4NzhkMTAwKQogICAgYXQgLi4vLi4vLi4vLi4v
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6ODQKIzE0IDB4MDAwMDdmZmZm
NWUzNTNhNiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6OnBlcmZv
cm1UYXNrCiAgICAodGhpcz0weDdmZmY5NDAwYTQ2MCwgY29udGV4dD0weDc4ZDEwMCkKICAgIGF0
IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoxODgK
IzE1IDB4MDAwMDdmZmZmNWUzMjA4OCBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpUYXNrOjpw
ZXJmb3JtVGFzayAodGhpcz0KICAgIDB4N2ZmZjk0MDA5NzYwLCBjb250ZXh0PTB4NzhkMTAwKQog
ICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNw
cDoyMDAKIzE2IDB4MDAwMDdmZmZmNWUzMWQ0NyBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpy
dW5Jbk1vZGUgKHRoaXM9MHg3NTQ4MTAsIAogICAgY29udGV4dD0weDc4ZDEwMCwgcHJlZGljYXRl
PS4uLikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVu
TG9vcC5jcHA6MTY0CiMxNyAweDAwMDA3ZmZmZjVlMzFhM2YgaW4gV2ViQ29yZTo6V29ya2VyUnVu
TG9vcDo6cnVuICh0aGlzPTB4NzU0ODEwLCBjb250ZXh0PQogICAgMHg3OGQxMDApIGF0IC4uLy4u
Ly4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6MTM1CiMxOCAw
eDAwMDA3ZmZmZjVlMzUyYTUgaW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpydW5FdmVudExvb3Ag
KHRoaXM9MHg3NTQ3ZTApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHA6MTcwCiMxOSAweDAwMDA3ZmZmZjVlMjRmNzcgaW4gV2ViQ29yZTo6
RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AgKHRoaXM9CiAgICAweDc1NDdlMCkK
ICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
VGhyZWFkLmNwcDo2NgojMjAgMHgwMDAwN2ZmZmY1ZTM1MTlmIGluIFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6d29ya2VyVGhyZWFkICh0aGlzPTB4NzU0N2UwKQogICAgYXQgLi4vLi4vLi4vLi4vU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE0OAojMjEgMHgwMDAwN2ZmZmY1
ZTM0ZjUyIGluIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3RhcnQgKHRocmVh
ZD0KICAgIDB4NzU0N2UwKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHA6MTI0CiMyMiAweDAwMDA3ZmZmZjY0YTk0ZDUgaW4gV1RGOjp0aHJlYWRF
bnRyeVBvaW50IChjb250ZXh0RGF0YT0weDc1NGE3MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2NwojMjMgMHgwMDAwN2ZmZmY2NGEy
MDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlzPTB4NzU2YWMwKQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6NjcK
IzI0IDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0weDc1
NmFjMCkKICAgIGF0IHRocmVhZC9xdGhyZWFkX3VuaXguY3BwOjI5OAojMjUgMHgwMDAwN2ZmZmYz
NWQxOWNhIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiMyNiAw
eDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMjcgMHgw
MDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCgpUaHJlYWQgMTIgKFRocmVhZCAweDdmZmY5YWZkNDcw
MCAoTFdQIDEyNDk2KSk6CiMwICAweDAwMDA3ZmZmZjM1ZGExMWQgaW4gbmFub3NsZWVwICgpIGZy
b20gL2xpYi9saWJwdGhyZWFkLnNvLjAKIzEgIDB4MDAwMDdmZmZmNjQ5OThhNiBpbiBUQ01hbGxv
Y19TbG93TG9jayAobG9ja3dvcmQ9MHg2YTJjZjApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1RDU3BpbkxvY2suaDoxOTMKIzIgIDB4MDAwMDdmZmZmNjQ5YmJi
YSBpbiBUQ01hbGxvY19TcGluTG9jazo6TG9jayAodGhpcz0weDZhMmNmMCkKICAgIGF0IC4uLy4u
Ly4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVENTcGluTG9jay5oOjkxCiMzICAweDAw
MDA3ZmZmZjY0OWJjMGYgaW4gVENNYWxsb2NfU3BpbkxvY2tIb2xkZXI6OlRDTWFsbG9jX1NwaW5M
b2NrSG9sZGVyICgKICAgIHRoaXM9MHg3ZmZmOWFmZDM3YjAsIGw9MHg2YTJjZjApCiAgICBhdCAu
Li8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RDU3BpbkxvY2suaDoyNzYKIzQg
IDB4MDAwMDdmZmZmNjQ5OWM0NCBpbiBXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGU6On5NZXRhQWxs
b2NhdG9ySGFuZGxlICh0aGlzPQogICAgMHg3ZmZmYTQwNGUxMzAsIF9faW5fY2hyZz08b3B0aW1p
emVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01l
dGFBbGxvY2F0b3IuY3BwOjUwCiM1ICAweDAwMDA3ZmZmZjY0ZjQ2MjMgaW4gV1RGOjpSZWZDb3Vu
dGVkPFdURjo6TWV0YUFsbG9jYXRvckhhbmRsZT46OmRlcmVmKCkgKCkKICAgZnJvbSAvaG9tZS9h
dy9Qcm9qZWN0cy9mb3VuZGF0aW9uL3F0NDgwLW5vZGJ1cy9saWIvbGliUXRXZWJLaXQuc28uNAoj
NiAgMHgwMDAwN2ZmZmY2NGVlMGJlIGluIHZvaWQgV1RGOjpkZXJlZklmTm90TnVsbDxXVEY6Ok1l
dGFBbGxvY2F0b3JIYW5kbGU+KFdURjo6TWV0YUFsbG9jYXRvckhhbmRsZSopICgpCiAgIGZyb20g
L2hvbWUvYXcvUHJvamVjdHMvZm91bmRhdGlvbi9xdDQ4MC1ub2RidXMvbGliL2xpYlF0V2ViS2l0
LnNvLjQKIzcgIDB4MDAwMDdmZmZmNjRlYWFiMSBpbiBXVEY6OlJlZlB0cjxXVEY6Ok1ldGFBbGxv
Y2F0b3JIYW5kbGU+Ojp+UmVmUHRyKCkgKCkKICAgZnJvbSAvaG9tZS9hdy9Qcm9qZWN0cy9mb3Vu
ZGF0aW9uL3F0NDgwLW5vZGJ1cy9saWIvbGliUXRXZWJLaXQuc28uNAojOCAgMHgwMDAwN2ZmZmY2
NGU4YjIyIGluIEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjp+TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmKCkKICAgICgpIGZyb20gL2hvbWUvYXcvUHJvamVjdHMvZm91bmRhdGlvbi9xdDQ4MC1ub2Ri
dXMvbGliL2xpYlF0V2ViS2l0LnNvLjQKIzkgIDB4MDAwMDdmZmZmNjZhNjNhMiBpbiBKU0M6OkpJ
VENvZGU6OmNsZWFyKCkgKCkKICAgZnJvbSAvaG9tZS9hdy9Qcm9qZWN0cy9mb3VuZGF0aW9uL3F0
NDgwLW5vZGJ1cy9saWIvbGliUXRXZWJLaXQuc28uNAojMTAgMHgwMDAwN2ZmZmY2NmEwZGEyIGlu
IEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNsZWFyQ29kZVZpcnR1YWwgKHRoaXM9CiAgICAweDdmZmY5
ODdhN2YyMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuY3BwOjQ5CiMxMSAweDAwMDA3ZmZmZjY2YTNhMDEgaW4gSlNDOjpQcm9ncmFt
RXhlY3V0YWJsZTo6Y2xlYXJDb2RlVmlydHVhbCAodGhpcz0KICAgIDB4N2ZmZjk4N2E3ZjIwKQog
ICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5jcHA6Mzg4CiMxMiAweDAwMDA3ZmZmZjY2YTBkODMgaW4gSlNDOjpFeGVjdXRhYmxlQmFzZTo6
Y2xlYXJDb2RlIChjZWxsPTB4N2ZmZjk4N2E3ZjIwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHA6NDMKIzEzIDB4MDAwMDdmZmZm
NjU0NTU1ZiBpbiBKU0M6OkhlYXA6OkZpbmFsaXplck93bmVyOjpmaW5hbGl6ZSAodGhpcz0weDc5
MzdhMCwgCiAgICBoYW5kbGU9Li4uLCBjb250ZXh0PTB4N2ZmZmY2NmEwZDYwKQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6ODk4CiMxNCAweDAw
MDA3ZmZmZjY1NDBlNjcgaW4gSlNDOjpIYW5kbGVIZWFwOjpmaW5hbGl6ZVdlYWtIYW5kbGVzICh0
aGlzPTB4NzkzNWU4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGFuZGxlSGVhcC5jcHA6MTE2CiMxNSAweDAwMDA3ZmZmZjY1NDNlYzAgaW4gSlNDOjpIZWFw
OjpkZXN0cm95ICh0aGlzPTB4NzkzMTA4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6MzcyCiMxNiAweDAwMDA3ZmZmZjVlMWNmMWQgaW4gV2Vi
Q29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIgKHRo
aXM9MHg3NTM3ZjAsIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8u
Li9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDo2
OQojMTcgMHgwMDAwN2ZmZmY1ZTI5NzNmIGluIFdURjo6ZGVsZXRlT3duZWRQdHI8V2ViQ29yZTo6
V29ya2VyU2NyaXB0Q29udHJvbGxlcj4KICAgIChwdHI9MHg3NTM3ZjApIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyQ29tbW9uLmg6NTMKIzE4IDB4MDAwMDdm
ZmZmNWUzNTdjMiBpbiBXVEY6Ok93blB0cjxXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVy
Pjo6Y2xlYXIgKAogICAgdGhpcz0weDc5MTc2OCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9Pd25QdHIuaDo5OQojMTkgMHgwMDAwN2ZmZmY1ZTM0NGQwIGluIFdlYkNv
cmU6OldvcmtlckNvbnRleHQ6OmNsZWFyU2NyaXB0ICh0aGlzPTB4NzkxNjAwKQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6ODQKIzIwIDB4
MDAwMDdmZmZmNWUzNTNhNiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRh
c2s6OnBlcmZvcm1UYXNrCiAgICAodGhpcz0weDdmZmZhNDAxMzFmMCwgY29udGV4dD0weDc5MTYw
MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcDoxODgKIzIxIDB4MDAwMDdmZmZmNWUzMjA4OCBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29w
OjpUYXNrOjpwZXJmb3JtVGFzayAodGhpcz0KICAgIDB4N2ZmZmE0MDEyMjMwLCBjb250ZXh0PTB4
NzkxNjAwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJS
dW5Mb29wLmNwcDoyMDAKIzIyIDB4MDAwMDdmZmZmNWUzMWQ0NyBpbiBXZWJDb3JlOjpXb3JrZXJS
dW5Mb29wOjpydW5Jbk1vZGUgKHRoaXM9CiAgICAweDdmZmY5NDAwOTg5MCwgY29udGV4dD0weDc5
MTYwMCwgcHJlZGljYXRlPS4uLikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6MTY0CiMyMyAweDAwMDA3ZmZmZjVlMzFhM2YgaW4gV2Vi
Q29yZTo6V29ya2VyUnVuTG9vcDo6cnVuICh0aGlzPTB4N2ZmZjk0MDA5ODkwLCAKICAgIGNvbnRl
eHQ9MHg3OTE2MDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclJ1bkxvb3AuY3BwOjEzNQojMjQgMHgwMDAwN2ZmZmY1ZTM1MmE1IGluIFdlYkNvcmU6Oldv
cmtlclRocmVhZDo6cnVuRXZlbnRMb29wICh0aGlzPQogICAgMHg3ZmZmOTQwMDk4NjApIGF0IC4u
Ly4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoxNzAKIzI1
IDB4MDAwMDdmZmZmNWUyNGY3NyBpbiBXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OnJ1
bkV2ZW50TG9vcCAodGhpcz0KICAgIDB4N2ZmZjk0MDA5ODYwKQogICAgYXQgLi4vLi4vLi4vLi4v
U291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwOjY2CiMyNiAw
eDAwMDA3ZmZmZjVlMzUxOWYgaW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQg
KHRoaXM9CiAgICAweDdmZmY5NDAwOTg2MCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE0OAojMjcgMHgwMDAwN2ZmZmY1ZTM0ZjUyIGluIFdl
YkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3RhcnQgKHRocmVhZD0KICAgIDB4N2Zm
Zjk0MDA5ODYwKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHA6MTI0CiMyOCAweDAwMDA3ZmZmZjY0YTk0ZDUgaW4gV1RGOjp0aHJlYWRFbnRyeVBv
aW50IChjb250ZXh0RGF0YT0weDdmZmY5NDAwOTRhMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2NwojMjkgMHgwMDAwN2ZmZmY2NGEy
MDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlzPTB4N2ZmZjk0MDA5ZDYwKQogICAg
YXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5j
cHA6NjcKIzMwIDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQgKGFy
Zz0weDdmZmY5NDAwOWQ2MCkKICAgIGF0IHRocmVhZC9xdGhyZWFkX3VuaXguY3BwOjI5OAojMzEg
MHgwMDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVh
ZC5zby4wCiMzMiAweDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMu
c28uNgojMzMgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCgpUaHJlYWQgMTEgKFRocmVhZCAw
eDdmZmY5YmZmZjcwMCAoTFdQIDEyNDk1KSk6CiMwICAweDAwMDA3ZmZmZjM1ZDA5ZTAgaW4gX19u
cHRsX2RlYXRoX2V2ZW50ICgpIGZyb20gL2xpYi9saWJwdGhyZWFkLnNvLjAKIzEgIDB4MDAwMDdm
ZmZmMzVkMWNjMCBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAoj
MiAgMHgwMDAwN2ZmZmYyYjgwNzBkIGluIGNsb25lICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzMg
IDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQoKVGhyZWFkIDEwIChUaHJlYWQgMHg3ZmZmYTBi
Zjk3MDAgKExXUCAxMjQ5NCkpOgojMCAgMHgwMDAwN2ZmZmYyYjcyNGEwIGluIHJlYWQgKCkgZnJv
bSAvbGliL2xpYmMuc28uNgojMSAgMHgwMDAwN2ZmZmYyYjdlOTRjIGluID8/ICgpIGZyb20gL2xp
Yi9saWJjLnNvLjYKIzIgIDB4MDAwMDdmZmZmMmI3ZWI4YyBpbiBnZXRfbnByb2NzICgpIGZyb20g
L2xpYi9saWJjLnNvLjYKIzMgIDB4MDAwMDdmZmZmMmI0NjA4NSBpbiBzeXNjb25mICgpIGZyb20g
L2xpYi9saWJjLnNvLjYKIzQgIDB4MDAwMDdmZmZmMzg5MjUzMyBpbiBRVGhyZWFkOjppZGVhbFRo
cmVhZENvdW50ICgpCiAgICBhdCB0aHJlYWQvcXRocmVhZF91bml4LmNwcDo0MTEKIzUgIDB4MDAw
MDdmZmZmMzg4YjI2ZiBpbiBRTXV0ZXg6OmxvY2tJbnRlcm5hbCAodGhpcz0weDY4ZjY5MCkKICAg
IGF0IHRocmVhZC9xbXV0ZXguY3BwOjQzNAojNiAgMHgwMDAwN2ZmZmYzODhhZjA0IGluIFFNdXRl
eDo6bG9jayAodGhpcz0weDY4ZjY5MCkgYXQgdGhyZWFkL3FtdXRleC5jcHA6MTc3CiM3ICAweDAw
MDA3ZmZmZjY0YTI5YjUgaW4gV1RGOjpNdXRleDo6bG9jayAodGhpcz0weDdmZmZmN2RkYzYwOCkK
ICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5n
UXQuY3BwOjIzNQojOCAgMHgwMDAwN2ZmZmY1MzAxYTBlIGluIFdURjo6TG9ja2VyPFdURjo6TXV0
ZXg+OjpMb2NrZXIgKHRoaXM9CiAgICAweDdmZmZhMGJmODhjMCwgbG9ja2FibGU9Li4uKQogICAg
YXQgLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Mb2NrZXIuaDozOAojOSAgMHgw
MDAwN2ZmZmY2NGEyM2VmIGluIFdURjo6Y2xlYXJUaHJlYWRGb3JJZGVudGlmaWVyIChpZD0xMCkK
ICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5n
UXQuY3BwOjEyOAojMTAgMHgwMDAwN2ZmZmY2NGEyN2JkIGluIFdURjo6d2FpdEZvclRocmVhZENv
bXBsZXRpb24gKHRocmVhZElEPTEwLCByZXN1bHQ9CiAgICAweDApIGF0IC4uLy4uLy4uLy4uL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjE5NwojMTEgMHgwMDAw
N2ZmZmY2NTQzYTdkIGluIEpTQzo6SGVhcDo6fkhlYXAgKHRoaXM9MHg3ODk1ZTgsIAogICAgX19p
bl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwOjM0MgojMTIgMHgwMDAwN2ZmZmY2NmM1NGQ3IGluIEpTQzo6
SlNHbG9iYWxEYXRhOjp+SlNHbG9iYWxEYXRhICh0aGlzPTB4Nzg3ZDAwLCAKICAgIF9faW5fY2hy
Zz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOjM1OQojMTMgMHgwMDAwN2ZmZmY1NDBlMzI3IGlu
IFdURjo6UmVmQ291bnRlZDxKU0M6OkpTR2xvYmFsRGF0YT46OmRlcmVmICh0aGlzPQogICAgMHg3
ODdkMDApIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUmVmQ291bnRl
ZC5oOjE4MwojMTQgMHgwMDAwN2ZmZmY1NDBkNzBmIGluIFdURjo6ZGVyZWZJZk5vdE51bGw8SlND
OjpKU0dsb2JhbERhdGE+IChwdHI9MHg3ODdkMDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1Bhc3NSZWZQdHIuaDo1OQojMTUgMHgwMDAwN2ZmZmY1NDBjOTQx
IGluIFdURjo6UmVmUHRyPEpTQzo6SlNHbG9iYWxEYXRhPjo6flJlZlB0ciAodGhpcz0KICAgIDB4
NzcwZGMwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgLi4vLi4vLi4vLi4vU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9SZWZQdHIuaDo1OAojMTYgMHgwMDAwN2ZmZmY1ZTFjZjU4
IGluIFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6On5Xb3JrZXJTY3JpcHRDb250cm9s
bGVyICh0aGlzPTB4NzcwZGMwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHA6NzAKIzE3IDB4MDAwMDdmZmZmNWUyOTczZiBpbiBXVEY6OmRlbGV0ZU93bmVkUHRyPFdl
YkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI+CiAgICAocHRyPTB4NzcwZGMwKSBhdCAuLi8u
Li8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093blB0ckNvbW1vbi5oOjUzCiMxOCAw
eDAwMDA3ZmZmZjVlMzU3YzIgaW4gV1RGOjpPd25QdHI8V2ViQ29yZTo6V29ya2VyU2NyaXB0Q29u
dHJvbGxlcj46OmNsZWFyICgKICAgIHRoaXM9MHg3NzBjNjgpIGF0IC4uLy4uLy4uLy4uL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyLmg6OTkKIzE5IDB4MDAwMDdmZmZmNWUzNDRkMCBp
biBXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpjbGVhclNjcmlwdCAodGhpcz0weDc3MGIwMCkKICAg
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oOjg0
CiMyMCAweDAwMDA3ZmZmZjVlMzUzYTYgaW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkU2h1dGRvd25G
aW5pc2hUYXNrOjpwZXJmb3JtVGFzawogICAgKHRoaXM9MHg2ZGU1ZDAsIGNvbnRleHQ9MHg3NzBi
MDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6MTg4CiMyMSAweDAwMDA3ZmZmZjVlMzIwODggaW4gV2ViQ29yZTo6V29ya2VyUnVuTG9v
cDo6VGFzazo6cGVyZm9ybVRhc2sgKHRoaXM9CiAgICAweDZhZGUyMCwgY29udGV4dD0weDc3MGIw
MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9v
cC5jcHA6MjAwCiMyMiAweDAwMDA3ZmZmZjVlMzFkNDcgaW4gV2ViQ29yZTo6V29ya2VyUnVuTG9v
cDo6cnVuSW5Nb2RlICh0aGlzPTB4NzRjYWYwLCAKICAgIGNvbnRleHQ9MHg3NzBiMDAsIHByZWRp
Y2F0ZT0uLi4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clJ1bkxvb3AuY3BwOjE2NAojMjMgMHgwMDAwN2ZmZmY1ZTMxYTNmIGluIFdlYkNvcmU6Oldvcmtl
clJ1bkxvb3A6OnJ1biAodGhpcz0weDc0Y2FmMCwgY29udGV4dD0KICAgIDB4NzcwYjAwKSBhdCAu
Li8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOjEzNQoj
MjQgMHgwMDAwN2ZmZmY1ZTM1MmE1IGluIFdlYkNvcmU6OldvcmtlclRocmVhZDo6cnVuRXZlbnRM
b29wICh0aGlzPTB4NzRjYWMwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE3MAojMjUgMHgwMDAwN2ZmZmY1ZTI0Zjc3IGluIFdlYkNv
cmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wICh0aGlzPQogICAgMHg3NGNh
YzApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdv
cmtlclRocmVhZC5jcHA6NjYKIzI2IDB4MDAwMDdmZmZmNWUzNTE5ZiBpbiBXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWQ6OndvcmtlclRocmVhZCAodGhpcz0weDc0Y2FjMCkKICAgIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoxNDgKIzI3IDB4MDAwMDdm
ZmZmNWUzNGY1MiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0ICh0
aHJlYWQ9CiAgICAweDc0Y2FjMCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwOjEyNAojMjggMHgwMDAwN2ZmZmY2NGE5NGQ1IGluIFdURjo6dGhy
ZWFkRW50cnlQb2ludCAoY29udGV4dERhdGE9MHg3NGNmYzApCiAgICBhdCAuLi8uLi8uLi8uLi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZy5jcHA6NjcKIzI5IDB4MDAwMDdmZmZm
NjRhMjA1MSBpbiBXVEY6OlRocmVhZFByaXZhdGU6OnJ1biAodGhpcz0weDc4MmI0MCkKICAgIGF0
IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3Bw
OjY3CiMzMCAweDAwMDA3ZmZmZjM4OTIyZjkgaW4gUVRocmVhZFByaXZhdGU6OnN0YXJ0IChhcmc9
MHg3ODJiNDApCiAgICBhdCB0aHJlYWQvcXRocmVhZF91bml4LmNwcDoyOTgKIzMxIDB4MDAwMDdm
ZmZmMzVkMTljYSBpbiBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAoj
MzIgMHgwMDAwN2ZmZmYyYjgwNzBkIGluIGNsb25lICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzMz
IDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/PyAoKQoKVGhyZWFkIDkgKFRocmVhZCAweDdmZmZhMTdm
YTcwMCAoTFdQIDEyNDkzKSk6CiMwICAweDAwMDA3ZmZmZjM1ZDZiYzkgaW4gcHRocmVhZF9jb25k
X3RpbWVkd2FpdEBAR0xJQkNfMi4zLjIgKCkKICAgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAoj
MSAgMHgwMDAwN2ZmZmYzODkzYTk1IGluIFFXYWl0Q29uZGl0aW9uUHJpdmF0ZTo6d2FpdCAodGhp
cz0weDdmZmZhNDAxY2Q2MCwgCiAgICB0aW1lPTk5OSkgYXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9u
X3VuaXguY3BwOjg0CiMyICAweDAwMDA3ZmZmZjM4OTM4NTkgaW4gUVdhaXRDb25kaXRpb246Ondh
aXQgKHRoaXM9MHg3ZmZmYTQwMWNkNDAsIG11dGV4PQogICAgMHg3ZmZmYTQwMWI1ZTAsIHRpbWU9
OTk5KSBhdCB0aHJlYWQvcXdhaXRjb25kaXRpb25fdW5peC5jcHA6MTU4CiMzICAweDAwMDA3ZmZm
ZjY0YTJjMzEgaW4gV1RGOjpUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdCAodGhpcz0weDc3YThk
OCwgCiAgICBtdXRleD0uLi4sIGFic29sdXRlVGltZT0xMzIxNDc2MjQ2LjE3MzU0OCkKICAgIGF0
IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3Bw
OjI3OAojNCAgMHgwMDAwN2ZmZmY2NTQzZmZhIGluIEpTQzo6SGVhcDo6d2FpdEZvclJlbGF0aXZl
VGltZVdoaWxlSG9sZGluZ0xvY2sgKHRoaXM9CiAgICAweDc3YTViOCwgcmVsYXRpdmU9MSkKICAg
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwOjM5MQoj
NSAgMHgwMDAwN2ZmZmY2NTQ0MDNmIGluIEpTQzo6SGVhcDo6d2FpdEZvclJlbGF0aXZlVGltZSAo
dGhpcz0weDc3YTViOCwgCiAgICByZWxhdGl2ZT0xKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDo0MDEKIzYgIDB4MDAwMDdmZmZmNjU0NDBiYyBpbiBK
U0M6OkhlYXA6OmJsb2NrRnJlZWluZ1RocmVhZE1haW4gKHRoaXM9MHg3N2E1YjgpCiAgICBhdCAu
Li8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDo0MTUKIzcgIDB4
MDAwMDdmZmZmNjU0NDA4YyBpbiBKU0M6OkhlYXA6OmJsb2NrRnJlZWluZ1RocmVhZFN0YXJ0RnVu
YyAoaGVhcD0KICAgIDB4NzdhNWI4KSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcDo0MDYKIzggIDB4MDAwMDdmZmZmNjRhOTRkNSBpbiBXVEY6OnRocmVh
ZEVudHJ5UG9pbnQgKGNvbnRleHREYXRhPTB4N2ZmZmE0MDIxZGQwKQogICAgYXQgLi4vLi4vLi4v
Li4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuY3BwOjY3CiM5ICAweDAwMDA3
ZmZmZjY0YTIwNTEgaW4gV1RGOjpUaHJlYWRQcml2YXRlOjpydW4gKHRoaXM9MHg3ZmZmYTQwMjFl
NTApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVh
ZGluZ1F0LmNwcDo2NwojMTAgMHgwMDAwN2ZmZmYzODkyMmY5IGluIFFUaHJlYWRQcml2YXRlOjpz
dGFydCAoYXJnPTB4N2ZmZmE0MDIxZTUwKQogICAgYXQgdGhyZWFkL3F0aHJlYWRfdW5peC5jcHA6
Mjk4CiMxMSAweDAwMDA3ZmZmZjM1ZDE5Y2EgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20gL2xpYi9s
aWJwdGhyZWFkLnNvLjAKIzEyIDB4MDAwMDdmZmZmMmI4MDcwZCBpbiBjbG9uZSAoKSBmcm9tIC9s
aWIvbGliYy5zby42CiMxMyAweDAwMDAwMDAwMDAwMDAwMDAgaW4gPz8gKCkKClRocmVhZCA4IChU
aHJlYWQgMHg3ZmZmYTFmZmI3MDAgKExXUCAxMjQ5MikpOgojMCAgMHgwMDAwN2ZmZmYzNWQ2YmM5
IGluIHB0aHJlYWRfY29uZF90aW1lZHdhaXRAQEdMSUJDXzIuMy4yICgpCiAgIGZyb20gL2xpYi9s
aWJwdGhyZWFkLnNvLjAKIzEgIDB4MDAwMDdmZmZmMzg5M2E5NSBpbiBRV2FpdENvbmRpdGlvblBy
aXZhdGU6OndhaXQgKHRoaXM9MHg3ZmZmYTQwMTE5YTAsIAogICAgdGltZT05OTkpIGF0IHRocmVh
ZC9xd2FpdGNvbmRpdGlvbl91bml4LmNwcDo4NAojMiAgMHgwMDAwN2ZmZmYzODkzODU5IGluIFFX
YWl0Q29uZGl0aW9uOjp3YWl0ICh0aGlzPTB4N2ZmZmE0MDExYzAwLCBtdXRleD0KICAgIDB4N2Zm
ZmE0MDExODQwLCB0aW1lPTk5OSkgYXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9uX3VuaXguY3BwOjE1
OAojMyAgMHgwMDAwN2ZmZmY2NGEyYzMxIGluIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdh
aXQgKHRoaXM9MHg3NzYwMjgsIAogICAgbXV0ZXg9Li4uLCBhYnNvbHV0ZVRpbWU9MTMyMTQ3NjI0
Ni4xNTI1OTYpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0
L1RocmVhZGluZ1F0LmNwcDoyNzgKIzQgIDB4MDAwMDdmZmZmNjU0M2ZmYSBpbiBKU0M6OkhlYXA6
OndhaXRGb3JSZWxhdGl2ZVRpbWVXaGlsZUhvbGRpbmdMb2NrICh0aGlzPQogICAgMHg3NzVkMDgs
IHJlbGF0aXZlPTEpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcDozOTEKIzUgIDB4MDAwMDdmZmZmNjU0NDAzZiBpbiBKU0M6OkhlYXA6OndhaXRG
b3JSZWxhdGl2ZVRpbWUgKHRoaXM9MHg3NzVkMDgsIAogICAgcmVsYXRpdmU9MSkgYXQgLi4vLi4v
Li4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDAxCiM2ICAweDAwMDA3
ZmZmZjY1NDQwYmMgaW4gSlNDOjpIZWFwOjpibG9ja0ZyZWVpbmdUaHJlYWRNYWluICh0aGlzPTB4
Nzc1ZDA4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHA6NDE1CiM3ICAweDAwMDA3ZmZmZjY1NDQwOGMgaW4gSlNDOjpIZWFwOjpibG9ja0ZyZWVp
bmdUaHJlYWRTdGFydEZ1bmMgKGhlYXA9CiAgICAweDc3NWQwOCkgYXQgLi4vLi4vLi4vLi4vU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDA2CiM4ICAweDAwMDA3ZmZmZjY0YTk0
ZDUgaW4gV1RGOjp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDdmZmZhNDAxYTY3MCkK
ICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNw
cDo2NwojOSAgMHgwMDAwN2ZmZmY2NGEyMDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0
aGlzPTB4N2ZmZmE0MDFhNmYwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6NjcKIzEwIDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBR
VGhyZWFkUHJpdmF0ZTo6c3RhcnQgKGFyZz0weDdmZmZhNDAxYTZmMCkKICAgIGF0IHRocmVhZC9x
dGhyZWFkX3VuaXguY3BwOjI5OAojMTEgMHgwMDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3RocmVh
ZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5zby4wCiMxMiAweDAwMDA3ZmZmZjJiODA3MGQgaW4g
Y2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMTMgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/
ICgpCgpUaHJlYWQgNyAoVGhyZWFkIDB4N2ZmZmEyN2ZjNzAwIChMV1AgMTI0OTEpKToKIzAgIDB4
MDAwMDdmZmZmMmI3MjRhMCBpbiByZWFkICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzEgIDB4MDAw
MDdmZmZmMmI3ZTk0YyBpbiA/PyAoKSBmcm9tIC9saWIvbGliYy5zby42CiMyICAweDAwMDA3ZmZm
ZjJiN2ViOGMgaW4gZ2V0X25wcm9jcyAoKSBmcm9tIC9saWIvbGliYy5zby42CiMzICAweDAwMDA3
ZmZmZjJiNDYwODUgaW4gc3lzY29uZiAoKSBmcm9tIC9saWIvbGliYy5zby42CiM0ICAweDAwMDA3
ZmZmZjM4OTI1MzMgaW4gUVRocmVhZDo6aWRlYWxUaHJlYWRDb3VudCAoKQogICAgYXQgdGhyZWFk
L3F0aHJlYWRfdW5peC5jcHA6NDExCiM1ICAweDAwMDA3ZmZmZjM4OGIyNmYgaW4gUU11dGV4Ojps
b2NrSW50ZXJuYWwgKHRoaXM9MHg2OGY2OTApCiAgICBhdCB0aHJlYWQvcW11dGV4LmNwcDo0MzQK
IzYgIDB4MDAwMDdmZmZmMzg4YWYwNCBpbiBRTXV0ZXg6OmxvY2sgKHRoaXM9MHg2OGY2OTApIGF0
IHRocmVhZC9xbXV0ZXguY3BwOjE3NwojNyAgMHgwMDAwN2ZmZmY2NGEyOWI1IGluIFdURjo6TXV0
ZXg6OmxvY2sgKHRoaXM9MHg3ZmZmZjdkZGM2MDgpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0LmNwcDoyMzUKIzggIDB4MDAwMDdmZmZm
NTMwMWEwZSBpbiBXVEY6OkxvY2tlcjxXVEY6Ok11dGV4Pjo6TG9ja2VyICh0aGlzPQogICAgMHg3
ZmZmYTI3ZmI2YjAsIGxvY2thYmxlPS4uLikKICAgIGF0IC4uLy4uLy4uL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTG9ja2VyLmg6MzgKIzkgIDB4MDAwMDdmZmZmNjRhMjFjOCBpbiBXVEY6Omlk
ZW50aWZpZXJCeVF0aHJlYWRIYW5kbGUgKHRocmVhZD0KICAgIEAweDdmZmZhMjdmYjcxMCkKICAg
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQu
Y3BwOjEwMgojMTAgMHgwMDAwN2ZmZmY2NGEyODUzIGluIFdURjo6Y3VycmVudFRocmVhZCAoKQog
ICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdR
dC5jcHA6MjEzCiMxMSAweDAwMDA3ZmZmZjUyZjQ3MmUgaW4gV1RGOjpUaHJlYWRSZXN0cmljdGlv
blZlcmlmaWVyOjppc1NhZmVUb1VzZSAodGhpcz0KICAgIDB4Nzc4YmE4KQogICAgYXQgLi4vLi4v
Li4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyLmg6
MTI4CiMxMiAweDAwMDA3ZmZmZjUyZjQ5YzggaW4gV1RGOjpSZWZDb3VudGVkQmFzZTo6ZGVyZWZC
YXNlICh0aGlzPTB4Nzc4YmEwKQogICAgYXQgLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9SZWZDb3VudGVkLmg6MTIyCiMxMyAweDAwMDA3ZmZmZjVlMWI3NzYgaW4gV1RGOjpSZWZD
b3VudGVkPFdlYkNvcmU6OldvcmtlckNvbnRleHQ+OjpkZXJlZiAodGhpcz0KICAgIDB4Nzc4YmEw
KSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1JlZkNvdW50ZWQuaDox
ODIKIzE0IDB4MDAwMDdmZmZmNWUxYjg0NiBpbiBXVEY6OmRlcmVmSWZOb3ROdWxsPFdlYkNvcmU6
OldvcmtlckNvbnRleHQ+IChwdHI9CiAgICAweDc3OGFiMCkgYXQgLi4vLi4vLi4vLi4vU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9QYXNzUmVmUHRyLmg6NTkKIzE1IDB4MDAwMDdmZmZmNWUxYjdm
MSBpbiBXVEY6OlJlZlB0cjxXZWJDb3JlOjpXb3JrZXJDb250ZXh0Pjo6flJlZlB0ciAodGhpcz0K
ICAgIDB4N2ZmZjlhZmRiZjI4LCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9SZWZQdHIuaDo1OAojMTYgMHgwMDAw
N2ZmZmY1ZTFiNDM3IGluIFdlYkNvcmU6OkpTV29ya2VyQ29udGV4dEJhc2U6On5KU1dvcmtlckNv
bnRleHRCYXNlICgKICAgIHRoaXM9MHg3ZmZmOWFmZGJjYTAsIF9faW5fY2hyZz08b3B0aW1pemVk
IG91dD4pCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRCYXNlLmNwcDo2NQojMTcgMHgwMDAwN2ZmZmY2MmI5OTgwIGluIFdlYkNvcmU6
OkpTV29ya2VyQ29udGV4dDo6fkpTV29ya2VyQ29udGV4dCAodGhpcz0KICAgIDB4N2ZmZjlhZmRi
Y2EwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgZ2VuZXJhdGVkL0pTV29ya2Vy
Q29udGV4dC5oOjMzCiMxOCAweDAwMDA3ZmZmZjYyYmE1MGMgaW4gV2ViQ29yZTo6SlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0Ojp+SlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0ICh0aGlzPTB4N2ZmZjlh
ZmRiY2EwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgZ2VuZXJhdGVkL0pTRGVk
aWNhdGVkV29ya2VyQ29udGV4dC5oOjM0CiMxOSAweDAwMDA3ZmZmZjY1NTE4NTcgaW4gSlNDOjpN
YXJrZWRCbG9jazo6Y2FsbERlc3RydWN0b3IoSlNDOjpKU0NlbGwqLCB2b2lkKikKICAgICgpIGZy
b20gL2hvbWUvYXcvUHJvamVjdHMvZm91bmRhdGlvbi9xdDQ4MC1ub2RidXMvbGliL2xpYlF0V2Vi
S2l0LnNvLjQKIzIwIDB4MDAwMDdmZmZmNjU1MWFjMyBpbiBKU0M6Ok1hcmtlZEJsb2NrOjpGcmVl
Q2VsbCogSlNDOjpNYXJrZWRCbG9jazo6c3BlY2lhbGl6ZWRTd2VlcDwoSlNDOjpNYXJrZWRCbG9j
azo6QmxvY2tTdGF0ZSkzLCAoSlNDOjpNYXJrZWRCbG9jazo6U3dlZXBNb2RlKTA+KCkgKCkKICAg
ZnJvbSAvaG9tZS9hdy9Qcm9qZWN0cy9mb3VuZGF0aW9uL3F0NDgwLW5vZGJ1cy9saWIvbGliUXRX
ZWJLaXQuc28uNAojMjEgMHgwMDAwN2ZmZmY2NTUxNzNmIGluIEpTQzo6TWFya2VkQmxvY2s6OnN3
ZWVwICh0aGlzPTB4N2ZmZjlhZmQ4MDAwLCAKICAgIHN3ZWVwTW9kZT1KU0M6Ok1hcmtlZEJsb2Nr
OjpTd2VlcE9ubHkpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrZWRCbG9jay5jcHA6MTI5CiMyMiAweDAwMDA3ZmZmZjY1M2MwNWYgaW4gSlNDOjpBbGxv
Y2F0aW9uU3BhY2U6OmZyZWVCbG9ja3MgKHRoaXM9MHg3N2E1ZDgsIAogICAgaGVhZD0weDdmZmZl
YjdjNDAwMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Fs
bG9jYXRpb25TcGFjZS5jcHA6MTI1CiMyMyAweDAwMDA3ZmZmZjY1M2MxNDggaW4gSlNDOjpBbGxv
Y2F0aW9uU3BhY2U6OnNocmluayAodGhpcz0weDc3YTVkOCkKICAgIGF0IC4uLy4uLy4uLy4uL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsbG9jYXRpb25TcGFjZS5jcHA6MTY4CiMyNCAweDAw
MDA3ZmZmZjY1NDUzODYgaW4gSlNDOjpIZWFwOjpzaHJpbmsgKHRoaXM9MHg3N2E1YjgpCiAgICBh
dCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDo4NjMKIzI1
IDB4MDAwMDdmZmZmNjU0M2VlNSBpbiBKU0M6OkhlYXA6OmRlc3Ryb3kgKHRoaXM9MHg3N2E1Yjgp
CiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcDoz
NzQKIzI2IDB4MDAwMDdmZmZmNWUxY2YxZCBpbiBXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjp+V29ya2VyU2NyaXB0Q29udHJvbGxlciAodGhpcz0weDc0OTI3MCwgX19pbl9jaHJnPTxv
cHRpbWl6ZWQgb3V0PikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOjY5CiMyNyAweDAwMDA3ZmZmZjVlMjk3M2Yg
aW4gV1RGOjpkZWxldGVPd25lZFB0cjxXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyPgog
ICAgKHB0cj0weDc0OTI3MCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9Pd25QdHJDb21tb24uaDo1MwojMjggMHgwMDAwN2ZmZmY1ZTM1N2MyIGluIFdURjo6T3duUHRy
PFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI+OjpjbGVhciAoCiAgICB0aGlzPTB4Nzc4
YzE4KSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL093blB0ci5oOjk5
CiMyOSAweDAwMDA3ZmZmZjVlMzQ0ZDAgaW4gV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6Y2xlYXJT
Y3JpcHQgKHRoaXM9MHg3NzhhYjApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuaDo4NAojMzAgMHgwMDAwN2ZmZmY1ZTM1M2E2IGluIFdlYkNv
cmU6OldvcmtlclRocmVhZFNodXRkb3duRmluaXNoVGFzazo6cGVyZm9ybVRhc2sKICAgICh0aGlz
PTB4N2ZmZjljMDRlOWIwLCBjb250ZXh0PTB4Nzc4YWIwKQogICAgYXQgLi4vLi4vLi4vLi4vU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE4OAojMzEgMHgwMDAwN2ZmZmY1
ZTMyMDg4IGluIFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZvcm1UYXNrICh0aGlz
PQogICAgMHg3ZmZmOWMwNDAxMzAsIGNvbnRleHQ9MHg3NzhhYjApCiAgICBhdCAuLi8uLi8uLi8u
Li9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOjIwMAojMzIgMHgwMDAw
N2ZmZmY1ZTMxZDQ3IGluIFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnJ1bkluTW9kZSAodGhpcz0K
ICAgIDB4N2ZmZmE0MDE3NDAwLCBjb250ZXh0PTB4Nzc4YWIwLCBwcmVkaWNhdGU9Li4uKQogICAg
YXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDox
NjQKIzMzIDB4MDAwMDdmZmZmNWUzMWEzZiBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpydW4g
KHRoaXM9MHg3ZmZmYTQwMTc0MDAsIAogICAgY29udGV4dD0weDc3OGFiMCkKICAgIGF0IC4uLy4u
Ly4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6MTM1CiMzNCAw
eDAwMDA3ZmZmZjVlMzUyYTUgaW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpydW5FdmVudExvb3Ag
KHRoaXM9CiAgICAweDdmZmZhNDAxNzNkMCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE3MAojMzUgMHgwMDAwN2ZmZmY1ZTI0Zjc3IGluIFdl
YkNvcmU6OkRlZGljYXRlZFdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wICh0aGlzPQogICAgMHg3
ZmZmYTQwMTczZDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlclRocmVhZC5jcHA6NjYKIzM2IDB4MDAwMDdmZmZmNWUzNTE5ZiBpbiBXZWJD
b3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCAodGhpcz0KICAgIDB4N2ZmZmE0MDE3M2Qw
KSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6
MTQ4CiMzNyAweDAwMDA3ZmZmZjVlMzRmNTIgaW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3b3Jr
ZXJUaHJlYWRTdGFydCAodGhyZWFkPQogICAgMHg3ZmZmYTQwMTczZDApIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoxMjQKIzM4IDB4MDAwMDdm
ZmZmNjRhOTRkNSBpbiBXVEY6OnRocmVhZEVudHJ5UG9pbnQgKGNvbnRleHREYXRhPTB4NzQ5MjQw
KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcu
Y3BwOjY3CiMzOSAweDAwMDA3ZmZmZjY0YTIwNTEgaW4gV1RGOjpUaHJlYWRQcml2YXRlOjpydW4g
KHRoaXM9MHg3NDkyYTApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3F0L1RocmVhZGluZ1F0LmNwcDo2NwojNDAgMHgwMDAwN2ZmZmYzODkyMmY5IGluIFFUaHJl
YWRQcml2YXRlOjpzdGFydCAoYXJnPTB4NzQ5MmEwKQogICAgYXQgdGhyZWFkL3F0aHJlYWRfdW5p
eC5jcHA6Mjk4CiM0MSAweDAwMDA3ZmZmZjM1ZDE5Y2EgaW4gc3RhcnRfdGhyZWFkICgpIGZyb20g
L2xpYi9saWJwdGhyZWFkLnNvLjAKIzQyIDB4MDAwMDdmZmZmMmI4MDcwZCBpbiBjbG9uZSAoKSBm
cm9tIC9saWIvbGliYy5zby42CiM0MyAweDAwMDAwMDAwMDAwMDAwMDAgaW4gPz8gKCkKClRocmVh
ZCA2IChUaHJlYWQgMHg3ZmZmYTJmZmQ3MDAgKExXUCAxMjQ5MCkpOgojMCAgMHgwMDAwN2ZmZmYz
NWQ2YmM5IGluIHB0aHJlYWRfY29uZF90aW1lZHdhaXRAQEdMSUJDXzIuMy4yICgpCiAgIGZyb20g
L2xpYi9saWJwdGhyZWFkLnNvLjAKIzEgIDB4MDAwMDdmZmZmMzg5M2E5NSBpbiBRV2FpdENvbmRp
dGlvblByaXZhdGU6OndhaXQgKHRoaXM9MHg3MzhlNDAsIAogICAgdGltZT0xMDAwKSBhdCB0aHJl
YWQvcXdhaXRjb25kaXRpb25fdW5peC5jcHA6ODQKIzIgIDB4MDAwMDdmZmZmMzg5Mzg1OSBpbiBR
V2FpdENvbmRpdGlvbjo6d2FpdCAodGhpcz0weDczOTE5MCwgbXV0ZXg9MHg3MzkxMTAsIAogICAg
dGltZT0xMDAwKSBhdCB0aHJlYWQvcXdhaXRjb25kaXRpb25fdW5peC5jcHA6MTU4CiMzICAweDAw
MDA3ZmZmZjY0YTJjMzEgaW4gV1RGOjpUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdCAodGhpcz0w
eDc2ZWZmOCwgCiAgICBtdXRleD0uLi4sIGFic29sdXRlVGltZT0xMzIxNDc2MjQ2LjEyMTA3NzEp
CiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGlu
Z1F0LmNwcDoyNzgKIzQgIDB4MDAwMDdmZmZmNjU0M2ZmYSBpbiBKU0M6OkhlYXA6OndhaXRGb3JS
ZWxhdGl2ZVRpbWVXaGlsZUhvbGRpbmdMb2NrICh0aGlzPQogICAgMHg3NmVjZDgsIHJlbGF0aXZl
PTEpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cDozOTEKIzUgIDB4MDAwMDdmZmZmNjU0NDAzZiBpbiBKU0M6OkhlYXA6OndhaXRGb3JSZWxhdGl2
ZVRpbWUgKHRoaXM9MHg3NmVjZDgsIAogICAgcmVsYXRpdmU9MSkgYXQgLi4vLi4vLi4vLi4vU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDAxCiM2ICAweDAwMDA3ZmZmZjY1NDQw
YmMgaW4gSlNDOjpIZWFwOjpibG9ja0ZyZWVpbmdUaHJlYWRNYWluICh0aGlzPTB4NzZlY2Q4KQog
ICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDE1
CiM3ICAweDAwMDA3ZmZmZjY1NDQwOGMgaW4gSlNDOjpIZWFwOjpibG9ja0ZyZWVpbmdUaHJlYWRT
dGFydEZ1bmMgKGhlYXA9CiAgICAweDc2ZWNkOCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6NDA2CiM4ICAweDAwMDA3ZmZmZjY0YTk0ZDUgaW4gV1RG
Ojp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDczYTFhMCkKICAgIGF0IC4uLy4uLy4u
Ly4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2NwojOSAgMHgwMDAw
N2ZmZmY2NGEyMDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlzPTB4NzNhMjIwKQog
ICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdR
dC5jcHA6NjcKIzEwIDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQg
KGFyZz0weDczYTIyMCkKICAgIGF0IHRocmVhZC9xdGhyZWFkX3VuaXguY3BwOjI5OAojMTEgMHgw
MDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5z
by4wCiMxMiAweDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28u
NgojMTMgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCgpUaHJlYWQgNSAoVGhyZWFkIDB4N2Zm
ZmEzN2ZlNzAwIChMV1AgMTI0ODkpKToKIzAgIDB4MDAwMDdmZmZmMmI3MjRhMCBpbiByZWFkICgp
IGZyb20gL2xpYi9saWJjLnNvLjYKIzEgIDB4MDAwMDdmZmZmMmI3ZTk0YyBpbiA/PyAoKSBmcm9t
IC9saWIvbGliYy5zby42CiMyICAweDAwMDA3ZmZmZjJiN2ViOGMgaW4gZ2V0X25wcm9jcyAoKSBm
cm9tIC9saWIvbGliYy5zby42CiMzICAweDAwMDA3ZmZmZjJiNDYwODUgaW4gc3lzY29uZiAoKSBm
cm9tIC9saWIvbGliYy5zby42CiM0ICAweDAwMDA3ZmZmZjM4OTI1MzMgaW4gUVRocmVhZDo6aWRl
YWxUaHJlYWRDb3VudCAoKQogICAgYXQgdGhyZWFkL3F0aHJlYWRfdW5peC5jcHA6NDExCiM1ICAw
eDAwMDA3ZmZmZjM4OGIyNmYgaW4gUU11dGV4Ojpsb2NrSW50ZXJuYWwgKHRoaXM9MHg2OGY2OTAp
CiAgICBhdCB0aHJlYWQvcW11dGV4LmNwcDo0MzQKIzYgIDB4MDAwMDdmZmZmMzg4YWYwNCBpbiBR
TXV0ZXg6OmxvY2sgKHRoaXM9MHg2OGY2OTApIGF0IHRocmVhZC9xbXV0ZXguY3BwOjE3NwojNyAg
MHgwMDAwN2ZmZmY2NGEyOWI1IGluIFdURjo6TXV0ZXg6OmxvY2sgKHRoaXM9MHg3ZmZmZjdkZGM2
MDgpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVh
ZGluZ1F0LmNwcDoyMzUKIzggIDB4MDAwMDdmZmZmNTMwMWEwZSBpbiBXVEY6OkxvY2tlcjxXVEY6
Ok11dGV4Pjo6TG9ja2VyICh0aGlzPQogICAgMHg3ZmZmYTM3ZmRhOTAsIGxvY2thYmxlPS4uLikK
ICAgIGF0IC4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTG9ja2VyLmg6MzgKIzkg
IDB4MDAwMDdmZmZmNjRhMjFjOCBpbiBXVEY6OmlkZW50aWZpZXJCeVF0aHJlYWRIYW5kbGUgKHRo
cmVhZD0KICAgIEAweDdmZmZhMzdmZGFmMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjEwMgojMTAgMHgwMDAwN2ZmZmY2NGEy
ODUzIGluIFdURjo6Y3VycmVudFRocmVhZCAoKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6MjEzCiMxMSAweDAwMDA3ZmZmZjVl
MzFjMWIgaW4gV2ViQ29yZTo6V29ya2VyUnVuTG9vcDo6cnVuSW5Nb2RlICh0aGlzPQogICAgMHg3
ZmZmYTQwMGYzNjAsIGNvbnRleHQ9MHg3NzQyMDAsIHByZWRpY2F0ZT0uLi4pCiAgICBhdCAuLi8u
Li8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOjE1MQojMTIg
MHgwMDAwN2ZmZmY1ZTMxYTNmIGluIFdlYkNvcmU6OldvcmtlclJ1bkxvb3A6OnJ1biAodGhpcz0w
eDdmZmZhNDAwZjM2MCwgCiAgICBjb250ZXh0PTB4Nzc0MjAwKQogICAgYXQgLi4vLi4vLi4vLi4v
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcDoxMzUKIzEzIDB4MDAwMDdm
ZmZmNWUzNTJhNSBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCAodGhpcz0K
ICAgIDB4N2ZmZmE0MDBmMzMwKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHA6MTcwCiMxNCAweDAwMDA3ZmZmZjVlMjRmNzcgaW4gV2ViQ29yZTo6
RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AgKHRoaXM9CiAgICAweDdmZmZhNDAw
ZjMzMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmNwcDo2NgojMTUgMHgwMDAwN2ZmZmY1ZTM1MTlmIGluIFdlYkNvcmU6Oldv
cmtlclRocmVhZDo6d29ya2VyVGhyZWFkICh0aGlzPQogICAgMHg3ZmZmYTQwMGYzMzApIGF0IC4u
Ly4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoxNDgKIzE2
IDB4MDAwMDdmZmZmNWUzNGY1MiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVh
ZFN0YXJ0ICh0aHJlYWQ9CiAgICAweDdmZmZhNDAwZjMzMCkgYXQgLi4vLi4vLi4vLi4vU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjEyNAojMTcgMHgwMDAwN2ZmZmY2NGE5
NGQ1IGluIFdURjo6dGhyZWFkRW50cnlQb2ludCAoY29udGV4dERhdGE9MHg3ZmZmYTQwMGY3OTAp
CiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZy5j
cHA6NjcKIzE4IDB4MDAwMDdmZmZmNjRhMjA1MSBpbiBXVEY6OlRocmVhZFByaXZhdGU6OnJ1biAo
dGhpcz0weDdmZmZhNDAwZjgxMCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjY3CiMxOSAweDAwMDA3ZmZmZjM4OTIyZjkgaW4g
UVRocmVhZFByaXZhdGU6OnN0YXJ0IChhcmc9MHg3ZmZmYTQwMGY4MTApCiAgICBhdCB0aHJlYWQv
cXRocmVhZF91bml4LmNwcDoyOTgKIzIwIDB4MDAwMDdmZmZmMzVkMTljYSBpbiBzdGFydF90aHJl
YWQgKCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojMjEgMHgwMDAwN2ZmZmYyYjgwNzBkIGlu
IGNsb25lICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzIyIDB4MDAwMDAwMDAwMDAwMDAwMCBpbiA/
PyAoKQoKVGhyZWFkIDQgKFRocmVhZCAweDdmZmZhM2ZmZjcwMCAoTFdQIDEyNDg4KSk6CiMwICAw
eDAwMDA3ZmZmZjJiNzI0YTAgaW4gcmVhZCAoKSBmcm9tIC9saWIvbGliYy5zby42CiMxICAweDAw
MDA3ZmZmZjJiN2U5NGMgaW4gPz8gKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMiAgMHgwMDAwN2Zm
ZmYyYjdlYjhjIGluIGdldF9ucHJvY3MgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojMyAgMHgwMDAw
N2ZmZmYyYjQ2MDg1IGluIHN5c2NvbmYgKCkgZnJvbSAvbGliL2xpYmMuc28uNgojNCAgMHgwMDAw
N2ZmZmYzODkyNTMzIGluIFFUaHJlYWQ6OmlkZWFsVGhyZWFkQ291bnQgKCkKICAgIGF0IHRocmVh
ZC9xdGhyZWFkX3VuaXguY3BwOjQxMQojNSAgMHgwMDAwN2ZmZmYzODhiMjZmIGluIFFNdXRleDo6
bG9ja0ludGVybmFsICh0aGlzPTB4NjhmNjkwKQogICAgYXQgdGhyZWFkL3FtdXRleC5jcHA6NDM0
CiM2ICAweDAwMDA3ZmZmZjM4OGFmMDQgaW4gUU11dGV4Ojpsb2NrICh0aGlzPTB4NjhmNjkwKSBh
dCB0aHJlYWQvcW11dGV4LmNwcDoxNzcKIzcgIDB4MDAwMDdmZmZmNjRhMjliNSBpbiBXVEY6Ok11
dGV4Ojpsb2NrICh0aGlzPTB4N2ZmZmY3ZGRjNjA4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6MjM1CiM4ICAweDAwMDA3ZmZm
ZjUzMDFhMGUgaW4gV1RGOjpMb2NrZXI8V1RGOjpNdXRleD46OkxvY2tlciAodGhpcz0KICAgIDB4
N2ZmZmEzZmZlNjgwLCBsb2NrYWJsZT0uLi4pCiAgICBhdCAuLi8uLi8uLi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL0xvY2tlci5oOjM4CiM5ICAweDAwMDA3ZmZmZjY0YTIxYzggaW4gV1RGOjpp
ZGVudGlmaWVyQnlRdGhyZWFkSGFuZGxlICh0aHJlYWQ9CiAgICBAMHg3ZmZmYTNmZmU2ZTApCiAg
ICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3F0L1RocmVhZGluZ1F0
LmNwcDoxMDIKIzEwIDB4MDAwMDdmZmZmNjRhMjg1MyBpbiBXVEY6OmN1cnJlbnRUaHJlYWQgKCkK
ICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5n
UXQuY3BwOjIxMwojMTEgMHgwMDAwN2ZmZmY1MmY0NzJlIGluIFdURjo6VGhyZWFkUmVzdHJpY3Rp
b25WZXJpZmllcjo6aXNTYWZlVG9Vc2UgKHRoaXM9CiAgICAweDc0OGYwOCkKICAgIGF0IC4uLy4u
Ly4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllci5o
OjEyOAojMTIgMHgwMDAwN2ZmZmY1MmY0OWM4IGluIFdURjo6UmVmQ291bnRlZEJhc2U6OmRlcmVm
QmFzZSAodGhpcz0weDc0OGYwMCkKICAgIGF0IC4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvUmVmQ291bnRlZC5oOjEyMgojMTMgMHgwMDAwN2ZmZmY1MzA0Zjg2IGluIFdURjo6UmVm
Q291bnRlZDxXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ+OjpkZXJlZiAoCiAgICB0aGlzPTB4NzQ4
ZjAwKSBhdCAuLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1JlZkNvdW50ZWQuaDox
ODIKIzE0IDB4MDAwMDdmZmZmNTMwM2QzYyBpbiBXVEY6OmRlcmVmSWZOb3ROdWxsPFdlYkNvcmU6
OkRPTVdyYXBwZXJXb3JsZD4gKHB0cj0KICAgIDB4NzQ4ZjAwKSBhdCAuLi8uLi8uLi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1Bhc3NSZWZQdHIuaDo1OQojMTUgMHgwMDAwN2ZmZmY1MzAyYTUx
IGluIFdURjo6UmVmUHRyPFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZD46On5SZWZQdHIgKHRoaXM9
CiAgICAweDdmZmZlYjdlZmYxOCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC4u
Ly4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUmVmUHRyLmg6NTgKIzE2IDB4MDAwMDdm
ZmZmNTQwYmI4OSBpbiBXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6fkpTRE9NR2xvYmFsT2Jq
ZWN0ICh0aGlzPQogICAgMHg3ZmZmZWI3ZWZjYTAsIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4p
CiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5jcHA6NTQKIzE3IDB4MDAwMDdmZmZmNWUxYjQ0MyBpbiBXZWJDb3JlOjpKU1dvcmtl
ckNvbnRleHRCYXNlOjp+SlNXb3JrZXJDb250ZXh0QmFzZSAoCiAgICB0aGlzPTB4N2ZmZmViN2Vm
Y2EwLCBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHA6NjUKIzE4IDB4MDAw
MDdmZmZmNjJiOTk4MCBpbiBXZWJDb3JlOjpKU1dvcmtlckNvbnRleHQ6On5KU1dvcmtlckNvbnRl
eHQgKHRoaXM9CiAgICAweDdmZmZlYjdlZmNhMCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikK
ICAgIGF0IGdlbmVyYXRlZC9KU1dvcmtlckNvbnRleHQuaDozMwojMTkgMHgwMDAwN2ZmZmY2MmJh
NTBjIGluIFdlYkNvcmU6OkpTRGVkaWNhdGVkV29ya2VyQ29udGV4dDo6fkpTRGVkaWNhdGVkV29y
a2VyQ29udGV4dCAodGhpcz0weDdmZmZlYjdlZmNhMCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0
PikKICAgIGF0IGdlbmVyYXRlZC9KU0RlZGljYXRlZFdvcmtlckNvbnRleHQuaDozNAojMjAgMHgw
MDAwN2ZmZmY2NTUxODU3IGluIEpTQzo6TWFya2VkQmxvY2s6OmNhbGxEZXN0cnVjdG9yKEpTQzo6
SlNDZWxsKiwgdm9pZCopCiAgICAoKSBmcm9tIC9ob21lL2F3L1Byb2plY3RzL2ZvdW5kYXRpb24v
cXQ0ODAtbm9kYnVzL2xpYi9saWJRdFdlYktpdC5zby40CiMyMSAweDAwMDA3ZmZmZjY1NTFhYzMg
aW4gSlNDOjpNYXJrZWRCbG9jazo6RnJlZUNlbGwqIEpTQzo6TWFya2VkQmxvY2s6OnNwZWNpYWxp
emVkU3dlZXA8KEpTQzo6TWFya2VkQmxvY2s6OkJsb2NrU3RhdGUpMywgKEpTQzo6TWFya2VkQmxv
Y2s6OlN3ZWVwTW9kZSkwPigpICgpCiAgIGZyb20gL2hvbWUvYXcvUHJvamVjdHMvZm91bmRhdGlv
bi9xdDQ4MC1ub2RidXMvbGliL2xpYlF0V2ViS2l0LnNvLjQKIzIyIDB4MDAwMDdmZmZmNjU1MTcz
ZiBpbiBKU0M6Ok1hcmtlZEJsb2NrOjpzd2VlcCAodGhpcz0weDdmZmZlYjdlYzAwMCwgCiAgICBz
d2VlcE1vZGU9SlNDOjpNYXJrZWRCbG9jazo6U3dlZXBPbmx5KQogICAgYXQgLi4vLi4vLi4vLi4v
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwOjEyOQojMjMgMHgwMDAw
N2ZmZmY2NTNjMDVmIGluIEpTQzo6QWxsb2NhdGlvblNwYWNlOjpmcmVlQmxvY2tzICh0aGlzPTB4
NzZlY2Y4LCAKICAgIGhlYWQ9MHg3ZmZmYTgzMDAwMDApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0aW9uU3BhY2UuY3BwOjEyNQojMjQgMHgwMDAw
N2ZmZmY2NTNjMTQ4IGluIEpTQzo6QWxsb2NhdGlvblNwYWNlOjpzaHJpbmsgKHRoaXM9MHg3NmVj
ZjgpCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0
aW9uU3BhY2UuY3BwOjE2OAojMjUgMHgwMDAwN2ZmZmY2NTQ1Mzg2IGluIEpTQzo6SGVhcDo6c2hy
aW5rICh0aGlzPTB4NzZlY2Q4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHA6ODYzCiMyNiAweDAwMDA3ZmZmZjY1NDNlZTUgaW4gSlNDOjpIZWFw
OjpkZXN0cm95ICh0aGlzPTB4NzZlY2Q4KQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6Mzc0CiMyNyAweDAwMDA3ZmZmZjVlMWNmMWQgaW4gV2Vi
Q29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6fldvcmtlclNjcmlwdENvbnRyb2xsZXIgKHRo
aXM9MHg3Mzg1NTAsIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCiAgICBhdCAuLi8uLi8uLi8u
Li9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDo2
OQojMjggMHgwMDAwN2ZmZmY1ZTI5NzNmIGluIFdURjo6ZGVsZXRlT3duZWRQdHI8V2ViQ29yZTo6
V29ya2VyU2NyaXB0Q29udHJvbGxlcj4KICAgIChwdHI9MHg3Mzg1NTApIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvT3duUHRyQ29tbW9uLmg6NTMKIzI5IDB4MDAwMDdm
ZmZmNWUzNTdjMiBpbiBXVEY6Ok93blB0cjxXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVy
Pjo6Y2xlYXIgKAogICAgdGhpcz0weDZjMWY2OCkgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9Pd25QdHIuaDo5OQojMzAgMHgwMDAwN2ZmZmY1ZTM0NGQwIGluIFdlYkNv
cmU6OldvcmtlckNvbnRleHQ6OmNsZWFyU2NyaXB0ICh0aGlzPTB4NmMxZTAwKQogICAgYXQgLi4v
Li4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6ODQKIzMxIDB4
MDAwMDdmZmZmNWUzNTNhNiBpbiBXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRh
c2s6OnBlcmZvcm1UYXNrCiAgICAodGhpcz0weDdmZmY5YzAyYzU2MCwgY29udGV4dD0weDZjMWUw
MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcDoxODgKIzMyIDB4MDAwMDdmZmZmNWUzMjA4OCBpbiBXZWJDb3JlOjpXb3JrZXJSdW5Mb29w
OjpUYXNrOjpwZXJmb3JtVGFzayAodGhpcz0KICAgIDB4N2ZmZjljMDJjNTEwLCBjb250ZXh0PTB4
NmMxZTAwKQogICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJS
dW5Mb29wLmNwcDoyMDAKIzMzIDB4MDAwMDdmZmZmNWUzMWQ0NyBpbiBXZWJDb3JlOjpXb3JrZXJS
dW5Mb29wOjpydW5Jbk1vZGUgKHRoaXM9MHg2ZTFkYzAsIAogICAgY29udGV4dD0weDZjMWUwMCwg
cHJlZGljYXRlPS4uLikKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyUnVuTG9vcC5jcHA6MTY0CiMzNCAweDAwMDA3ZmZmZjVlMzFhM2YgaW4gV2ViQ29yZTo6
V29ya2VyUnVuTG9vcDo6cnVuICh0aGlzPTB4NmUxZGMwLCBjb250ZXh0PQogICAgMHg2YzFlMDAp
IGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHA6
MTM1CiMzNSAweDAwMDA3ZmZmZjVlMzUyYTUgaW4gV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpydW5F
dmVudExvb3AgKHRoaXM9MHg2ZTFkOTApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6MTcwCiMzNiAweDAwMDA3ZmZmZjVlMjRmNzcgaW4g
V2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AgKHRoaXM9CiAgICAw
eDZlMWQ5MCkKICAgIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNh
dGVkV29ya2VyVGhyZWFkLmNwcDo2NgojMzcgMHgwMDAwN2ZmZmY1ZTM1MTlmIGluIFdlYkNvcmU6
OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkICh0aGlzPTB4NmUxZDkwKQogICAgYXQgLi4vLi4v
Li4vLi4vU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOjE0OAojMzggMHgw
MDAwN2ZmZmY1ZTM0ZjUyIGluIFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3Rh
cnQgKHRocmVhZD0KICAgIDB4NmUxZDkwKSBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6MTI0CiMzOSAweDAwMDA3ZmZmZjY0YTk0ZDUgaW4gV1RG
Ojp0aHJlYWRFbnRyeVBvaW50IChjb250ZXh0RGF0YT0weDcwZGFhMCkKICAgIGF0IC4uLy4uLy4u
Ly4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmNwcDo2NwojNDAgMHgwMDAw
N2ZmZmY2NGEyMDUxIGluIFdURjo6VGhyZWFkUHJpdmF0ZTo6cnVuICh0aGlzPTB4NmVjYjIwKQog
ICAgYXQgLi4vLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdR
dC5jcHA6NjcKIzQxIDB4MDAwMDdmZmZmMzg5MjJmOSBpbiBRVGhyZWFkUHJpdmF0ZTo6c3RhcnQg
KGFyZz0weDZlY2IyMCkKICAgIGF0IHRocmVhZC9xdGhyZWFkX3VuaXguY3BwOjI5OAojNDIgMHgw
MDAwN2ZmZmYzNWQxOWNhIGluIHN0YXJ0X3RocmVhZCAoKSBmcm9tIC9saWIvbGlicHRocmVhZC5z
by4wCiM0MyAweDAwMDA3ZmZmZjJiODA3MGQgaW4gY2xvbmUgKCkgZnJvbSAvbGliL2xpYmMuc28u
NgojNDQgMHgwMDAwMDAwMDAwMDAwMDAwIGluID8/ICgpCgpUaHJlYWQgMyAoVGhyZWFkIDB4N2Zm
ZmE5MzA1NzAwIChMV1AgMTI0ODcpKToKIzAgIDB4MDAwMDdmZmZmMzVkNmJjOSBpbiBwdGhyZWFk
X2NvbmRfdGltZWR3YWl0QEBHTElCQ18yLjMuMiAoKQogICBmcm9tIC9saWIvbGlicHRocmVhZC5z
by4wCiMxICAweDAwMDA3ZmZmZjM4OTNhOTUgaW4gUVdhaXRDb25kaXRpb25Qcml2YXRlOjp3YWl0
ICh0aGlzPTB4NmRmMzEwLCAKICAgIHRpbWU9MTAwMCkgYXQgdGhyZWFkL3F3YWl0Y29uZGl0aW9u
X3VuaXguY3BwOjg0CiMyICAweDAwMDA3ZmZmZjM4OTM4NTkgaW4gUVdhaXRDb25kaXRpb246Ondh
aXQgKHRoaXM9MHg2ZDY5ZjAsIG11dGV4PTB4NmUyYWEwLCAKICAgIHRpbWU9MTAwMCkgYXQgdGhy
ZWFkL3F3YWl0Y29uZGl0aW9uX3VuaXguY3BwOjE1OAojMyAgMHgwMDAwN2ZmZmY2NGEyYzMxIGlu
IFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQgKHRoaXM9MHg2ZGExMzgsIAogICAgbXV0
ZXg9Li4uLCBhYnNvbHV0ZVRpbWU9MTMyMTQ3NjI0Ny4wNzY0MjUxKQogICAgYXQgLi4vLi4vLi4v
Li4vU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9xdC9UaHJlYWRpbmdRdC5jcHA6Mjc4CiM0ICAw
eDAwMDA3ZmZmZjY1NDNmZmEgaW4gSlNDOjpIZWFwOjp3YWl0Rm9yUmVsYXRpdmVUaW1lV2hpbGVI
b2xkaW5nTG9jayAodGhpcz0KICAgIDB4NmQ5ZTE4LCByZWxhdGl2ZT0xKQogICAgYXQgLi4vLi4v
Li4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHA6MzkxCiM1ICAweDAwMDA3
ZmZmZjY1NDQwM2YgaW4gSlNDOjpIZWFwOjp3YWl0Rm9yUmVsYXRpdmVUaW1lICh0aGlzPTB4NmQ5
ZTE4LCAKICAgIHJlbGF0aXZlPTEpIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwOjQwMQojNiAgMHgwMDAwN2ZmZmY2NTQ0MGJjIGluIEpTQzo6SGVhcDo6
YmxvY2tGcmVlaW5nVGhyZWFkTWFpbiAodGhpcz0weDZkOWUxOCkKICAgIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwOjQxNQojNyAgMHgwMDAwN2ZmZmY2
NTQ0MDhjIGluIEpTQzo6SGVhcDo6YmxvY2tGcmVlaW5nVGhyZWFkU3RhcnRGdW5jIChoZWFwPQog
ICAgMHg2ZDllMTgpIGF0IC4uLy4uLy4uLy4uL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuY3BwOjQwNgojOCAgMHgwMDAwN2ZmZmY2NGE5NGQ1IGluIFdURjo6dGhyZWFkRW50cnlQb2lu
dCAoY29udGV4dERhdGE9MHg2ZDU4NzApCiAgICBhdCAuLi8uLi8uLi8uLi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1RocmVhZGluZy5jcHA6NjcKIzkgIDB4MDAwMDdmZmZmNjRhMjA1MSBpbiBX
VEY6OlRocmVhZFByaXZhdGU6OnJ1biAodGhpcz0weDZkNThkMCkKICAgIGF0IC4uLy4uLy4uLy4u
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvcXQvVGhyZWFkaW5nUXQuY3BwOjY3CiMxMCAweDAw
MDA3ZmZmZjM4OTIyZjkgaW4gUVRocmVhZFByaXZhdGU6OnN0YXJ0IChhcmc9MHg2ZDU4ZDApCiAg
ICBhdCB0aHJlYWQvcXRocmVhZF91bml4LmNwcDoyOTgKIzExIDB4MDAwMDdmZmZmMzVkMTljYSBp
biBzdGFydF90aHJlYWQgKCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMAojMTIgMHgwMDAwN2Zm
ZmYyYjgwNzBkIGluIGNsb25lICgpIGZyb20gL2xpYi9saWJjLnNvLjYKIzEzIDB4MDAwMDAwMDAw
MDAwMDAwMCBpbiA/PyAoKQoKVGhyZWFkIDEgKFRocmVhZCAweDdmZmZmN2ZjZjdhMCAoTFdQIDEy
NDg1KSk6CiMwICBRQ29yZUFwcGxpY2F0aW9uOjp+UUNvcmVBcHBsaWNhdGlvbiAodGhpcz0weDdm
ZmZmZmZmZTM1MCwgCiAgICBfX2luX2Nocmc9PG9wdGltaXplZCBvdXQ+KSBhdCBrZXJuZWwvcWNv
cmVhcHBsaWNhdGlvbi5jcHA6NzYwCiMxICAweDAwMDA3ZmZmZjNmZjEyM2IgaW4gUUFwcGxpY2F0
aW9uOjp+UUFwcGxpY2F0aW9uICh0aGlzPTB4N2ZmZmZmZmZlMzUwLCAKICAgIF9faW5fY2hyZz08
b3B0aW1pemVkIG91dD4pIGF0IGtlcm5lbC9xYXBwbGljYXRpb24uY3BwOjEyMTQKIzIgIDB4MDAw
MDAwMDAwMDQwMTE1YSBpbiBtYWluIChhcmdjPTEsIGFyZ3Y9MHg3ZmZmZmZmZmU0OTgpIGF0IG1h
aW4uY3BwOjIxCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115691</attachid>
            <date>2011-11-17 14:48:07 -0800</date>
            <delta_ts>2011-11-23 18:12:43 -0800</delta_ts>
            <desc>wait for WorkerThread to terminate in stop()</desc>
            <filename>worker-wait.diff</filename>
            <type>text/plain</type>
            <size>2356</size>
            <attacher name="Andrew Wason">rectalogic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyOTFkOGFhLi5jODdhOTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMTEtMTcgIEFuZHJldyBXYXNvbiAgPHJlY3RhbG9naWNAcmVjdGFsb2dpYy5jb20+
CisKKyAgICAgICAgV2ViV29ya2VyIHRocmVhZHMgY2FuIG91dGxpdmUgdGhlIFFBcHBsaWNhdGlv
biBpbnN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzI1MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIFdvcmtlclRocmVhZDo6c3RvcCgpIHdhaXQgb3IgdGhyZWFkIGNvbXBsZXRpb24uCisg
ICAgICAgIFNvIG5vIGxvbmdlciBuZWVkIHRvIGRldGFjaFRocmVhZCgpIGluIFdvcmtlclRocmVh
ZDo6d29ya2VyVGhyZWFkKCkKKworICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclRocmVhZDo6c3RvcCk6CisKIDIwMTEtMTEtMTcgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi83MjY0Nj4g
RGlzYWJsZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBhcm91bmQgY29kZSB3aGVyZSB3ZSBjYW5ub3Qg
ZWFzaWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggOTI3NmMy
Ny4uMTVhM2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAt
MTQ5LDggKzE0OSw2IEBAIHZvaWQqIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkKIAogICAg
IHJ1bkV2ZW50TG9vcCgpOwogCi0gICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJRCA9IG1fdGhy
ZWFkSUQ7Ci0KICAgICBBU1NFUlQobV93b3JrZXJDb250ZXh0LT5oYXNPbmVSZWYoKSk7CiAKICAg
ICAvLyBUaGUgYmVsb3cgYXNzaWdubWVudCB3aWxsIGRlc3Ryb3kgdGhlIGNvbnRleHQsIHdoaWNo
IHdpbGwgaW4gdHVybiBub3RpZnkgbWVzc2FnaW5nIHByb3h5LgpAQCAtMTYwLDkgKzE1OCw2IEBA
IHZvaWQqIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKCkKICAgICAvLyBDbGVhbiB1cCBXZWJD
b3JlOjpUaHJlYWRHbG9iYWxEYXRhIGJlZm9yZSBXVEY6OldURlRocmVhZERhdGEgZ29lcyBhd2F5
IQogICAgIHRocmVhZEdsb2JhbERhdGEoKS5kZXN0cm95KCk7CiAKLSAgICAvLyBUaGUgdGhyZWFk
IG9iamVjdCBtYXkgYmUgYWxyZWFkeSBkZXN0cm95ZWQgZnJvbSBub3RpZmljYXRpb24gbm93LCBk
b24ndCB0cnkgdG8gYWNjZXNzICJ0aGlzIi4KLSAgICBkZXRhY2hUaHJlYWQodGhyZWFkSUQpOwot
CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTIzOCw2ICsyMzMsOCBAQCB2b2lkIFdvcmtlclRocmVh
ZDo6c3RvcCgpCiAgICAgLy8gTXV0ZXggcHJvdGVjdGlvbiBpcyBuZWNlc3NhcnkgYmVjYXVzZSBz
dG9wKCkgY2FuIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGNvbnRleHQgaXMgZnVsbHkgY3JlYXRlZC4K
ICAgICBNdXRleExvY2tlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7CiAKKyAgICBUaHJl
YWRJZGVudGlmaWVyIHRocmVhZElEID0gbV90aHJlYWRJRDsKKwogICAgIC8vIEVuc3VyZSB0aGF0
IHRhc2tzIGFyZSBiZWluZyBoYW5kbGVkIGJ5IHRocmVhZCBldmVudCBsb29wLiBJZiBzY3JpcHQg
ZXhlY3V0aW9uIHdlcmVuJ3QgZm9yYmlkZGVuLCBhIHdoaWxlKDEpIGxvb3AgaW4gSlMgY291bGQg
a2VlcCB0aGUgdGhyZWFkIGFsaXZlIGZvcmV2ZXIuCiAgICAgaWYgKG1fd29ya2VyQ29udGV4dCkg
ewogICAgICAgICBtX3dvcmtlckNvbnRleHQtPnNjcmlwdCgpLT5zY2hlZHVsZUV4ZWN1dGlvblRl
cm1pbmF0aW9uKCk7CkBAIC0yNTIsNiArMjQ5LDggQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnN0b3Ao
KQogICAgICAgICBtX3J1bkxvb3AucG9zdFRhc2soV29ya2VyVGhyZWFkU2h1dGRvd25TdGFydFRh
c2s6OmNyZWF0ZSgpKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9ydW5Mb29wLnRlcm1pbmF0ZSgp
OworCisgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkSUQsIDApOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116462</attachid>
            <date>2011-11-23 18:12:43 -0800</date>
            <delta_ts>2011-12-01 14:35:21 -0800</delta_ts>
            <desc>wait for WorkerThread only for Qt platform</desc>
            <filename>worker-wait-qt.diff</filename>
            <type>text/plain</type>
            <size>2389</size>
            <attacher name="Andrew Wason">rectalogic</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NWUxNTYwLi4yZjhhZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMTEtMjMgIEFuZHJldyBXYXNvbiAgPHJlY3RhbG9naWNAcmVjdGFsb2dpYy5jb20+
CisKKyAgICAgICAgV2ViV29ya2VyIHRocmVhZHMgY2FuIG91dGxpdmUgdGhlIFFBcHBsaWNhdGlv
biBpbnN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzI1MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIFdvcmtlclRocmVhZDo6c3RvcCgpIHdhaXQgb3IgdGhyZWFkIGNvbXBsZXRpb24gZm9y
IFF0IHBsYXRmb3JtLgorICAgICAgICBTbyBubyBsb25nZXIgbmVlZCB0byBkZXRhY2hUaHJlYWQo
KSBpbiBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCisKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclRo
cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0b3ApOgorCiAyMDExLTEx
LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFw
cGVhcmFuY2Ugb2YgY29tcG91bmQgdHJhbnNmb3JtIGFuaW1hdGlvbnMgdW5kZXIgYXBwcyBsaW5r
ZWQgb24gU25vd0xlb3BhcmQgaXMgaW5jb3JyZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKaW5kZXggOTI3NmMyNy4uZjJkNDVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTQ5LDcgKzE0OSw5IEBAIHZvaWQqIFdvcmtlclRocmVh
ZDo6d29ya2VyVGhyZWFkKCkKIAogICAgIHJ1bkV2ZW50TG9vcCgpOwogCisjaWYgIVBMQVRGT1JN
KFFUKQogICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBtX3RocmVhZElEOworI2VuZGlm
CiAKICAgICBBU1NFUlQobV93b3JrZXJDb250ZXh0LT5oYXNPbmVSZWYoKSk7CiAKQEAgLTE2MCw4
ICsxNjIsMTAgQEAgdm9pZCogV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWQoKQogICAgIC8vIENs
ZWFuIHVwIFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGEgYmVmb3JlIFdURjo6V1RGVGhyZWFkRGF0
YSBnb2VzIGF3YXkhCiAgICAgdGhyZWFkR2xvYmFsRGF0YSgpLmRlc3Ryb3koKTsKIAorI2lmICFQ
TEFURk9STShRVCkKICAgICAvLyBUaGUgdGhyZWFkIG9iamVjdCBtYXkgYmUgYWxyZWFkeSBkZXN0
cm95ZWQgZnJvbSBub3RpZmljYXRpb24gbm93LCBkb24ndCB0cnkgdG8gYWNjZXNzICJ0aGlzIi4K
ICAgICBkZXRhY2hUaHJlYWQodGhyZWFkSUQpOworI2VuZGlmCiAKICAgICByZXR1cm4gMDsKIH0K
QEAgLTIzOCw2ICsyNDIsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OnN0b3AoKQogICAgIC8vIE11
dGV4IHByb3RlY3Rpb24gaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugc3RvcCgpIGNhbiBiZSBjYWxsZWQg
YmVmb3JlIHRoZSBjb250ZXh0IGlzIGZ1bGx5IGNyZWF0ZWQuCiAgICAgTXV0ZXhMb2NrZXIgbG9j
ayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwogCisjaWYgUExBVEZPUk0oUVQpCisgICAgVGhyZWFk
SWRlbnRpZmllciB0aHJlYWRJRCA9IG1fdGhyZWFkSUQ7CisjZW5kaWYKKwogICAgIC8vIEVuc3Vy
ZSB0aGF0IHRhc2tzIGFyZSBiZWluZyBoYW5kbGVkIGJ5IHRocmVhZCBldmVudCBsb29wLiBJZiBz
Y3JpcHQgZXhlY3V0aW9uIHdlcmVuJ3QgZm9yYmlkZGVuLCBhIHdoaWxlKDEpIGxvb3AgaW4gSlMg
Y291bGQga2VlcCB0aGUgdGhyZWFkIGFsaXZlIGZvcmV2ZXIuCiAgICAgaWYgKG1fd29ya2VyQ29u
dGV4dCkgewogICAgICAgICBtX3dvcmtlckNvbnRleHQtPnNjcmlwdCgpLT5zY2hlZHVsZUV4ZWN1
dGlvblRlcm1pbmF0aW9uKCk7CkBAIC0yNTIsNiArMjYwLDEwIEBAIHZvaWQgV29ya2VyVGhyZWFk
OjpzdG9wKCkKICAgICAgICAgbV9ydW5Mb29wLnBvc3RUYXNrKFdvcmtlclRocmVhZFNodXRkb3du
U3RhcnRUYXNrOjpjcmVhdGUoKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fcnVuTG9vcC50ZXJt
aW5hdGUoKTsKKworI2lmIFBMQVRGT1JNKFFUKQorICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9u
KHRocmVhZElELCAwKTsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>