<?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>54514</bug_id>
          
          <creation_ts>2011-02-15 17:39:18 -0800</creation_ts>
          <short_desc>Need API to view origins which have items in the Application Cache and delete items for those origins</short_desc>
          <delta_ts>2011-02-22 16:15:30 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>buildbot</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351766</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-15 17:39:18 -0800</bug_when>
    <thetext>Need API to view origins which have items in the Application Cache and delete items for those origins

In radar as &lt;rdar://problem/8762042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355406</commentid>
    <comment_count>1</comment_count>
      <attachid>83344</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 11:00:20 -0800</bug_when>
    <thetext>Created attachment 83344
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355409</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 11:01:22 -0800</bug_when>
    <thetext>Stubbing the WebCore methods for now - just want to get all the huge API gloop in place first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355411</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 11:03:50 -0800</bug_when>
    <thetext>Attachment 83344 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h:54:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355414</commentid>
    <comment_count>4</comment_count>
      <attachid>83344</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-22 11:12:18 -0800</bug_when>
    <thetext>Comment on attachment 83344
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=83344&amp;action=review

Make sure that at least the code that calls into WebCore is guarded with #if ENABLE(OFFLINE_WEB_APPLICATIONS), I don&apos;t think all of this code needs to be guarded, as I don&apos;t think it hurts to expose the API either way, but another reviewer might want to weigh in on it.

Patch looks really good overall, I really like the generic callback function you added.

&gt; Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:1293
&gt; +    // FIXME &lt;rdar://problem/8762042&gt; and https://bugs.webkit.org/show_bug.cgi?id=54514 - Implement.

Nit: Our style has FIXME: ...

&gt; Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:1299
&gt; +    // FIXME &lt;rdar://problem/8762042&gt; and https://bugs.webkit.org/show_bug.cgi?id=54514 - Implement.

Ditto about FIXME:

&gt; Source/WebKit2/ChangeLog:9
&gt; +        it&apos;s sorting was wrong due to a last minute name change.

Thanks!

&gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:41
&gt; +    toImpl(ApplicationCacheManagerRef)-&gt;getApplicationCacheOrigins(ArrayCallback::create(context, callback));

The variable name should be applicationCacheManagerRef (or just applicationCacheManager, like your header file).

&gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:46
&gt; +    toImpl(ApplicationCacheManagerRef)-&gt;deleteEntriesForOrigin(toImpl(originRef));

Ditto.

&gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:51
&gt; +    toImpl(ApplicationCacheManagerRef)-&gt;deleteAllEntries();

Ditto.

&gt; Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:93
&gt; +    cacheStorage().vacuumDatabaseFile();

Should these two function calls be their own function? (Like ApplicationCache::deleteAllEntries)? Seems strange for WebKit to know about vacuuming database files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355416</commentid>
    <comment_count>5</comment_count>
      <attachid>83346</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 11:13:01 -0800</bug_when>
    <thetext>Created attachment 83346
Patch v2 (With critical ENABLE(OFFLINE_WEB_APPLICATIONS) protectors in places that might break the build for some platforms)

Brian reminded me we need #if ENABLE(OFFLINE_WEB_APPLICATIONS) flags here.

I don&apos;t know how feasible it is to properly #if ENABLE(OFFLINE_WEB_APPLICATIONS) everything added here, especially with regards to API and *messages.in files.

This patch adds critical #if ENABLE(OFFLINE_WEB_APPLICATIONS) guards to the WebCore callsites that will at least keep everyone building, and will behave as if the app cache is there, but is just always empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355419</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 11:15:38 -0800</bug_when>
    <thetext>Attachment 83346 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h:54:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355422</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 11:17:29 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 83344 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83344&amp;action=review
&gt; 
&gt; Make sure that at least the code that calls into WebCore is guarded with #if ENABLE(OFFLINE_WEB_APPLICATIONS), I don&apos;t think all of this code needs to be guarded, as I don&apos;t think it hurts to expose the API either way, but another reviewer might want to weigh in on it.
&gt; 
&gt; Patch looks really good overall, I really like the generic callback function you added.
&gt; 
&gt; &gt; Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:1293
&gt; &gt; +    // FIXME &lt;rdar://problem/8762042&gt; and https://bugs.webkit.org/show_bug.cgi?id=54514 - Implement.
&gt; 
&gt; Nit: Our style has FIXME: ...
&gt; 
&gt; &gt; Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:1299
&gt; &gt; +    // FIXME &lt;rdar://problem/8762042&gt; and https://bugs.webkit.org/show_bug.cgi?id=54514 - Implement.
&gt; 
&gt; Ditto about FIXME:

Done.

&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:9
&gt; &gt; +        it&apos;s sorting was wrong due to a last minute name change.
&gt; 
&gt; Thanks!

YVW

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:41
&gt; &gt; +    toImpl(ApplicationCacheManagerRef)-&gt;getApplicationCacheOrigins(ArrayCallback::create(context, callback));
&gt; 
&gt; The variable name should be applicationCacheManagerRef (or just applicationCacheManager, like your header file).
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:46
&gt; &gt; +    toImpl(ApplicationCacheManagerRef)-&gt;deleteEntriesForOrigin(toImpl(originRef));
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:51
&gt; &gt; +    toImpl(ApplicationCacheManagerRef)-&gt;deleteAllEntries();
&gt; 
&gt; Ditto.

Actually, what I&apos;ve done follows the same idiom we follow in a vast majority of our WK* api implementations.  :)

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:93
&gt; &gt; +    cacheStorage().vacuumDatabaseFile();
&gt; 
&gt; Should these two function calls be their own function? (Like ApplicationCache::deleteAllEntries)? Seems strange for WebKit to know about vacuuming database files.

Fair enough.  WebKit1 knows about it, but it shouldn&apos;t either.

I&apos;m gonna do the WebCore patch, that includes that change, and a WebKit1 change to use it, then I&apos;ll come back to the WK2 patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355429</commentid>
    <comment_count>8</comment_count>
      <attachid>83348</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 11:25:27 -0800</bug_when>
    <thetext>Created attachment 83348
WebCore-only patch (with WK1 change)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355440</commentid>
    <comment_count>9</comment_count>
      <attachid>83348</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-22 11:34:19 -0800</bug_when>
    <thetext>Comment on attachment 83348
WebCore-only patch (with WK1 change)

This looks good. Unofficial r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355446</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 11:38:37 -0800</bug_when>
    <thetext>Landed the WebCore/WK1 patch in 79344

New WK2 patch coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355447</commentid>
    <comment_count>11</comment_count>
      <attachid>83354</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 11:40:15 -0800</bug_when>
    <thetext>Created attachment 83354
Patch v3 (no more pending WebCore changes, addresses all of Brian&apos;s v1 comments)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355451</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 11:42:33 -0800</bug_when>
    <thetext>Attachment 83354 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355452</commentid>
    <comment_count>13</comment_count>
      <attachid>83354</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-22 11:48:04 -0800</bug_when>
    <thetext>Comment on attachment 83354
Patch v3 (no more pending WebCore changes, addresses all of Brian&apos;s v1 comments)

View in context: https://bugs.webkit.org/attachment.cgi?id=83354&amp;action=review

Make sure to add your new directory to WebKit2Common.vsprops, and to add WKApplicationCacheManager.h to WebKit2Generated.make (in Source/WebKit2/win).

Looks good!

&gt; Source/WebKit2/ChangeLog:8
&gt; +        I couldn&apos;t help myself - I also re-alphabatized WebResourceCacheManager in many places where

I think it&apos;s re-alphabetized.

&gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:39
&gt; +void WKApplicationCacheManagerGetApplicationCacheOrigins(WKApplicationCacheManagerRef ApplicationCacheManagerRef, void* context, WKApplicationCacheManagerGetApplicationCacheOriginsFunction callback)

Variable name (ApplicationCacheManagerRef) should be lower case here.

&gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:44
&gt; +void WKApplicationCacheManagerDeleteEntriesForOrigin(WKApplicationCacheManagerRef ApplicationCacheManagerRef, WKSecurityOriginRef originRef)

Ditto.

&gt; Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp:49
&gt; +void WKApplicationCacheManagerDeleteAllEntries(WKApplicationCacheManagerRef ApplicationCacheManagerRef)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355454</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-22 11:50:05 -0800</bug_when>
    <thetext>Attachment 83346 did not build on win:
Build output: http://queues.webkit.org/results/7946319</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355467</commentid>
    <comment_count>15</comment_count>
      <attachid>83356</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 12:03:09 -0800</bug_when>
    <thetext>Created attachment 83356
Patch v4 - With Brian&apos;s latest feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355473</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 12:07:03 -0800</bug_when>
    <thetext>Attachment 83356 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 29 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355477</commentid>
    <comment_count>17</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-22 12:10:36 -0800</bug_when>
    <thetext>Attachment 83354 did not build on win:
Build output: http://queues.webkit.org/results/7944354</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355505</commentid>
    <comment_count>18</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-22 12:36:52 -0800</bug_when>
    <thetext>Attachment 83356 did not build on win:
Build output: http://queues.webkit.org/results/7949187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355521</commentid>
    <comment_count>19</comment_count>
      <attachid>83368</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 12:53:14 -0800</bug_when>
    <thetext>Created attachment 83368
Patch v5 - Fix Windows build - that header isn&apos;t needed here anymore, anyways!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355525</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 12:56:51 -0800</bug_when>
    <thetext>Attachment 83368 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 29 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355632</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 14:54:26 -0800</bug_when>
    <thetext>Landed in r79364

Now to implement the new functionality in WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355648</commentid>
    <comment_count>22</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-22 15:22:29 -0800</bug_when>
    <thetext>Committed r79366: &lt;http://trac.webkit.org/changeset/79366&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355675</commentid>
    <comment_count>23</comment_count>
      <attachid>83407</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 16:05:49 -0800</bug_when>
    <thetext>Created attachment 83407
Final patch v1 - Implement the WebCore stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355677</commentid>
    <comment_count>24</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-22 16:11:23 -0800</bug_when>
    <thetext>Fixed in r79368</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355678</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-22 16:15:30 -0800</bug_when>
    <thetext>Qt buildfix landed in http://trac.webkit.org/changeset/79370</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83344</attachid>
            <date>2011-02-22 11:00:20 -0800</date>
            <delta_ts>2011-02-22 11:13:01 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>77152</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzM5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYyMDQyPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE0CisgICAgICAgIEFQSSB0byB2aWV3
IGFuZCBkZWxldGUgQXBwbGljYXRpb24gQ2FjaGUgZGF0YSBieSBvcmlnaW4uCisKKyAgICAgICAg
U3R1YiB0aGVzZSBvdXQgZm9yIG5vdzoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmdldE9yaWdpbnNXaXRoQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oOgorCisgICAgICAgIEV4cG9y
dCB0aGUgbmV3IHN5bWJvbHM6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKIDIwMTEtMDIt
MjIgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lv
biA3OTMzOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzQ4LDcgKzE3NDgsOSBAQCBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTR1CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTZzdG9yZUNvcHlP
ZkNhY2hlRVJLTjNXVEY2U3RyaW5nRVBOU18yMEFwcGxpY2F0aW9uQ2FjaGVIb3N0RQogX19aTjdX
ZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE3c2V0Q2FjaGVEaXJlY3RvcnlFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTh2YWN1dW1E
YXRhYmFzZUZpbGVFdgorX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE5Z2V0
T3JpZ2luc1dpdGhDYWNoZUVSTjNXVEY3SGFzaFNldElOUzFfNlJlZlB0cklOU18xNFNlY3VyaXR5
T3JpZ2luRUVFTlNfMThTZWN1cml0eU9yaWdpbkhhc2hFTlMxXzEwSGFzaFRyYWl0c0lTNV9FRUVF
CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMjFzZXREZWZhdWx0T3JpZ2lu
UXVvdGFFeAorX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTIyZGVsZXRlRW50
cmllc0Zvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKIF9fWk43V2ViQ29yZTIzQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UyNnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luRVBLTlNfMTRTZWN1
cml0eU9yaWdpbkV4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMzZyZW1h
aW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGVFUEtOU18xNFNlY3VyaXR5T3JpZ2luRVBO
U18xNkFwcGxpY2F0aW9uQ2FjaGVFUngKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U1ZW1wdHlFdgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCShyZXZpc2lvbiA3OTMzOSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRlVHJhbnNhY3Rp
b24uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtMTI4Nyw2ICsxMjg4LDE4IEBA
IHZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNoZWNrRm9yTWEKICAgICAgICAgbV9pc01h
eGltdW1TaXplUmVhY2hlZCA9IHRydWU7CiB9CiAKK3ZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmdldE9yaWdpbnNXaXRoQ2FjaGUoSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBT
ZWN1cml0eU9yaWdpbkhhc2g+JikKK3sKKyAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODc2
MjA0Mj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxNCAt
IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKikKK3sK
KyAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODc2MjA0Mj4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxNCAtIEltcGxlbWVudC4KKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6QXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UoKSAKICAgICA6IG1fbWF4aW11bVNpemUoQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
Om5vUXVvdGEoKSkKICAgICAsIG1faXNNYXhpbXVtU2l6ZVJlYWNoZWQoZmFsc2UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaAkocmV2aXNpb24gNzkzMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksOCArMjksMTAgQEAKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkhhc2guaCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
Q291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05Miw2ICs5NCw5IEBA
IHB1YmxpYzoKICAgICBib29sIGRlbGV0ZUNhY2hlR3JvdXAoY29uc3QgU3RyaW5nJiBtYW5pZmVz
dFVSTCk7CiAgICAgdm9pZCB2YWN1dW1EYXRhYmFzZUZpbGUoKTsKIAorICAgIHZvaWQgZ2V0T3Jp
Z2luc1dpdGhDYWNoZShIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3Jp
Z2luSGFzaD4mKTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oU2VjdXJpdHlPcmln
aW4qKTsKKwogICAgIHN0YXRpYyBpbnQ2NF90IHVua25vd25RdW90YSgpIHsgcmV0dXJuIC0xOyB9
CiAgICAgc3RhdGljIGludDY0X3Qgbm9RdW90YSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50NjRfdD46Om1heCgpOyB9CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24g
NzkzMzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw5MSBAQAorMjAxMS0wMi0yMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg3NjIwNDI+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ1MTQKKyAgICAgICAgQVBJIHRvIHZpZXcgYW5kIGRlbGV0ZSBBcHBsaWNhdGlvbiBD
YWNoZSBkYXRhIGJ5IG9yaWdpbi4KKworICAgICAgICBJIGNvdWxkbid0IGhlbHAgbXlzZWxmIC0g
SSBhbHNvIHJlLWFscGhhYmF0aXplZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciBpbiBtYW55IHBs
YWNlcyB3aGVyZQorICAgICAgICBpdCdzIHNvcnRpbmcgd2FzIHdyb25nIGR1ZSB0byBhIGxhc3Qg
bWludXRlIG5hbWUgY2hhbmdlLgorCisgICAgICAgIFByb2plY3QgZmlsZSBjaGFuZ2VzOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKKyAgICAgICAgV0syIGJ1aWxkLXN5c3RlbSBhbmQgQVBJIHBhcGVyd29yazoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZUlELmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0Lmg6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIHRvIHBlcmZvcm0gYW4gQXJyYXlDYWxsYmFj
ayB3aXRoIGEgVmVjdG9yIG9mIFNlY3VyaXR5T3JpZ2luRGF0YXM6CisgICAgICAgICogU2hhcmVk
L1NlY3VyaXR5T3JpZ2luRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBlcmZvcm1BUElDYWxs
YmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3IpOgorICAgICAgICAqIFNoYXJlZC9TZWN1
cml0eU9yaWdpbkRhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRpZEdldENhY2hlT3JpZ2lucyk6IFVzZSBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2Vj
dXJpdHlPcmlnaW5EYXRhVmVjdG9yIGhlcmUuCisKKyAgICAgICAgQWRkIGFuIEFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkgdG8gdGhlIGNvbnRleHQgYW5kIGludmFsaWRhdGUgaXQgYXQgdGhl
IGFwcHJvcHJpYXRlIHRpbWVzOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOiBSb3V0ZSBtZXNzYWdlcyB0byB0aGUgcmlnaHQgcHJveHkuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6
YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHQ6OnJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpOgorCisgICAgICAgIEFkZCBBUEkgdG8gZ2V0
IHRoZSBBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciBmb3IgYSBjb250ZXh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0R2V0QXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIpOgorICAgICAgICAoV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1h
bmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKworICAgICAg
ICBSb3V0ZSBtZXNzYWdlcyB0byB0aGUgcmlnaHQgcGxhY2U6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKworICAg
ICAgICBBZGQgdGhlIEFQSSBvYmplY3QsIHdoaWNoIHdyYXBzIHRvIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJHZXRUeXBlSUQpOgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJE
ZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oOiBBZGRlZC4KKworICAgICAgICBUaGUgVUlQcm9jZXNzIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBtYW5hZ2VyIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIFdlYlByb2Nl
c3MgYW5kIHBpcGUgYSBjYWxsYmFjayBiYWNrIHVwIHRvIHRoZSBjbGllbnQ6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6V2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk6On5XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkaWRHZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2lucyk6IFVzZSBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRh
VmVjdG9yIGhlcmUuCisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y2xlYXJDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6dHlw
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIGltcGxlbWVudGF0
aW9uIHRvIHJlc3BvbnNlIHRvIFVJUHJvY2VzcyBtZXNzYWdlcyBhbmQgYWN0dWFsbHkgZG8gdGhl
IGRpcnR5LXdvcmsgaW4gV2ViQ29yZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGU6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXI6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTEtMDItMjIgIEJhbGF6cyBL
ZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVy
cyBDYXJsc3Nvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24g
NzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0yMyw2ICsyMyw3IEBACiBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1BsdWdpblBy
b2Nlc3MgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMgXAorICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXApAQCAtNDUsNiArNDYsOCBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBQbHVnaW5Qcm9j
ZXNzUHJveHkgXAogICAgIFBsdWdpblByb3h5IFwKKyAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlciBcCisgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViQ29u
dGV4dCBcCiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eSBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzkzMzMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QCBsaWJXZWJLaXQyX2xhX0hFQURFUlMgPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0Mv
Z3RrL1dLVmlldy5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmggXAog
CSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIFwKKwkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBcCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBcCkBAIC0yODMs
NiArMjg0LDggQEAgbGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XZWJLaXQyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgXApAQCAtMzg1
LDYgKzM4OCw4IEBAIGxpYldlYktpdDJfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVRpbGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcCBcCkBAIC00NDksNiArNDU0LDggQEAgbGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRG93bmxvYWRzL2N1cmwvRG93bmxvYWRDdXJsLmNwcCBcCkBAIC02NTEsNiArNjU4
LDcgQEAgbGliV2ViS2l0Ml9sYV9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvZ3RrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRz
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwK
QEAgLTgwMSw2ICs4MDksMTAgQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdl
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtODQzLDExICs4NTUsMTMg
QEAgdnBhdGggJS5tZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MgXAog
CSQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzIFwKKwkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAkkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0dlb2xvY2F0aW9uIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZXNv
dXJjZUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MgXAorCSQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAJJChXZWJLaXQy
KS9XZWJQcm9jZXNzL1BsdWdpbnMgXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDc5MzMz
KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTMyLDgg
KzMyLDggQEAgV0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAog
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJveHlNZXNzYWdlcy5o
IFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmgg
XAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViQ29udGV4dE1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09V
UkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXApA
QCAtNDUsNyArNDUsOSBAQCBXRUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUHJvY2Vzc01l
c3NhZ2VzLmggXAotICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgKIAogV0VCS0lUMl9HRU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVNfRElSL0F1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XApAQCAtNTQsOCArNTYsOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vz
c1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAotICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC02Nyw3ICs2OSw5
IEBAIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdF
QktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
KyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogCiBI
RUFERVJTICs9IFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oIFwKQEAg
LTE1Nyw3ICsxNjEsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXIu
aCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oIFwKICAgICBVSVByb2Nl
c3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKLSAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3Mv
V2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250
ZXh0TWVudVByb3h5LmggXApAQCAtMTc4LDE4ICsxODIsMjAgQEAgSEVBREVSUyArPSBcCiAgICAg
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJMb2FkZXJD
bGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmggXAotICAgIFVJUHJv
Y2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0
TWVudUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nl
c3NNYW5hZ2VyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBcCisgICAgVUlQ
cm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZENsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBcCiAg
ICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKKyAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmggXApAQCAtMzI4LDkgKzMzNCw5IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9SZXNw
b25zaXZlbmVzc1RpbWVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94
eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCisgICAgVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
IFwKLSAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIFwKICAgICBVSVBy
b2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eS5jcHAgXApAQCAtMzQ5LDE0ICszNTUsMTUgQEAgU09VUkNFUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkxv
YWRlckNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5jcHAgXAot
ICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9X
ZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3Vw
LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9X
ZWJQb2xpY3lDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIFwK
ICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L0NodW5rZWRV
cGRhdGVEcmF3aW5nQXJlYVByb3h5UXQuY3BwIFwKQEAgLTM2OSw2ICszNzYsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nl
c3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQcmVm
ZXJlbmNlc1F0LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAg
XApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCShy
ZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE4ICszOSwxOSBAQCBlbnVtIE1lc3NhZ2VDbGFz
cyB7CiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWEsCiAgICAgTWVzc2FnZUNsYXNzRHJhd2lu
Z0FyZWFMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzSW5qZWN0ZWRCdW5kbGUsCi0gICAgTWVzc2Fn
ZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIsCisgICAgTWVzc2FnZUNsYXNzV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyLAog
ICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VD
bGFzc1dlYkluc3BlY3RvciwKICAgICBNZXNzYWdlQ2xhc3NXZWJQYWdlLAogICAgIE1lc3NhZ2VD
bGFzc1dlYlByb2Nlc3MsCisgICAgTWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIs
CiAKICAgICAvLyBNZXNzYWdlcyBzZW50IGJ5IHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgVUkgcHJv
Y2Vzcy4KICAgICBNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0Ry
YXdpbmdBcmVhUHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxlZ2FjeSwK
LSAgICBNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3Nh
Z2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNz
V2ViQ29udGV4dCwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LAogICAgIE1lc3Nh
Z2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LApAQCAtNTksNiArNjAsNyBAQCBlbnVtIE1l
c3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5LAogICAgIE1lc3NhZ2VD
bGFzc1dlYlByb2Nlc3NQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHlMZWdh
Y3ksCisgICAgTWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSwKIAogICAg
IC8vIE1lc3NhZ2VzIHNlbnQgYnkgdGhlIFVJIHByb2Nlc3MgdG8gdGhlIHBsdWctaW4gcHJvY2Vz
cy4KICAgICBNZXNzYWdlQ2xhc3NQbHVnaW5Qcm9jZXNzLApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAgICAg
ICBUeXBlVUludDY0LAogICAgICAgICAKICAgICAgICAgLy8gVUlQcm9jZXNzIHR5cGVzCisgICAg
ICAgIFR5cGVBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUJhY2tGb3J3YXJk
TGlzdCwKICAgICAgICAgVHlwZUJhY2tGb3J3YXJkTGlzdEl0ZW0sCiAgICAgICAgIFR5cGVDYWNo
ZU1hbmFnZXIsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRh
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJp
dHlPcmlnaW5EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsMTAgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKIAorI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQyLDQgKzQ1LDI2IEBAIGJvb2wgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpkZWNvZGUoQ29yZUlQQzoKICAgICByZXR1cm4gZGVjb2Rlci0+ZGVj
b2RlKENvcmVJUEM6Ok91dChzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wsIHNlY3VyaXR5T3Jp
Z2luRGF0YS5ob3N0LCBzZWN1cml0eU9yaWdpbkRhdGEucG9ydCkpOwogfQogCit2b2lkIHBlcmZv
cm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3IoY29uc3QgVmVjdG9yPFNl
Y3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCBBcnJheUNhbGxiYWNrKiBjYWxsYmFjaykK
K3sKKyAgICBpZiAoIWNhbGxiYWNrKSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3Ig
YXNzZXJ0LgorICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHNpemVfdCBvcmlnaW5E
YXRhQ291bnQgPSBvcmlnaW5EYXRhcy5zaXplKCk7CisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmpl
Y3Q+ID4gc2VjdXJpdHlPcmlnaW5zOworICAgIHNlY3VyaXR5T3JpZ2lucy5yZXNlcnZlQ2FwYWNp
dHkob3JpZ2luRGF0YUNvdW50KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3JpZ2lu
RGF0YUNvdW50OyArK2kpIHsKKyAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEg
PSBvcmlnaW5EYXRhc1tpXTsKKyAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gb3JpZ2luID0gV2Vi
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhv
c3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgICAgIGlmICghb3JpZ2luKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIHNlY3VyaXR5T3JpZ2lucy51bmNoZWNrZWRBcHBlbmQob3JpZ2lu
KTsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVl
KEltbXV0YWJsZUFycmF5OjphZG9wdChzZWN1cml0eU9yaWdpbnMpLmdldCgpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlP
cmlnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5
T3JpZ2luRGF0YS5oCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
ZWN1cml0eU9yaWdpbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2lm
bmRlZiBTZWN1cml0eU9yaWdpbkRhdGFfaAogI2RlZmluZSBTZWN1cml0eU9yaWdpbkRhdGFfaAog
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAg
LTM1LDYgKzM3LDggQEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKKwog
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YSB7CiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIFNlY3VyaXR5T3JpZ2luRGF0YSYpOwpAQCAtNDcsNiArNTEsOCBAQCBz
dHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhIHsKICAgICBpbnQgcG9ydDsKIH07CiAKK3ZvaWQgcGVy
Zm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3Rvcihjb25zdCBWZWN0b3I8
U2VjdXJpdHlPcmlnaW5EYXRhPiYsIEFycmF5Q2FsbGJhY2sqKTsKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBTZWN1cml0eU9yaWdpbkRhdGFfaApJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDcgQEAg
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2VyQ29udGVudAogCiAvKiBXZWJLaXQyIG1h
aW4gQVBJIHR5cGVzICovCiAKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIqIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKiBXS0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3QqIFdLQmFja0Zv
cndhcmRMaXN0UmVmOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2lu
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk+IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZShX
ZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4
dCogY29udGV4dCkKKyAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQoreworfQorCitXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Ojp+V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eSgpCit7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSgpCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOwor
fQorCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRp
ZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNh
bGxiYWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBwcnBDYWxsYmFjazsKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNz
KCkpIHsKKyAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNr
SUQoKTsKKyAgICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxl
YXNlKCkpOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6R2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY2FsbGJh
Y2tJRCksIDApOworfQorICAgIAordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
OjpkaWRHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmln
aW5EYXRhPiYgb3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRy
PEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50YWtlKGNhbGxiYWNr
SUQpOworICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3Io
b3JpZ2luRGF0YXMsIGNhbGxiYWNrLmdldCgpKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdlYlNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4pCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3Jp
Z2luRGF0YTsKKyAgICBzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3Rv
Y29sKCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAg
ICBzZWN1cml0eU9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgbV93ZWJD
b250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyOjpEZWxldGVFbnRyaWVzRm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luRGF0YSksIDApOworfQor
Cit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMo
KQoreworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6RGVsZXRlQWxsRW50cmllcygpLCAwKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRl
ICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1l
bnREZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlEOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK2Ns
YXNzIFdlYkNvbnRleHQ7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKKwordHlwZWRlZiBHZW5l
cmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKKworY2xhc3MgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQXBwbGljYXRpb25DYWNoZU1hbmFnZXI7
CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJD
b250ZXh0KCkgeyBtX3dlYkNvbnRleHQgPSAwOyB9CisgICAgCisgICAgdm9pZCBnZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRl
bGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRlbGV0
ZUFsbEVudHJpZXMoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisKK3ByaXZhdGU6CisgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eShXZWJDb250
ZXh0Kik7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7
IH0KKworICAgIHZvaWQgZGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9y
PFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICAKKyAgICB2
b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKworICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKKyAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4g
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5JZGVu
dGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBA
QAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
cm94eS5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtOTcsMTAgKzk4LDExIEBAIFdlYkNvbnRl
eHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2MKICAgICAsIG1fY2xlYXJBcHBsaWNhdGlv
bkNhY2hlRm9yTmV3V2ViUHJvY2VzcyhmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxlckVuYWJs
ZWQoZmFsc2UpCiAgICAgLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCi0gICAgLCBt
X3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6
Y3JlYXRlKHRoaXMpKQorICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fZGF0YWJh
c2VNYW5hZ2VyUHJveHkoV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAg
ICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6
OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlcjo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9yZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5KFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgLCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHModHJ1ZSkKICNl
bmRpZgpAQCAtMTE4LDggKzEyMCw4IEBAIFdlYkNvbnRleHQ6On5XZWJDb250ZXh0KCkKIAogICAg
IFdlYlByb2Nlc3NNYW5hZ2VyOjpzaGFyZWQoKS5jb250ZXh0V2FzRGVzdHJveWVkKHRoaXMpOwog
Ci0gICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9y
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKKyAgICBtX2FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2FwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOwogCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmNs
ZWFyQ29udGV4dCgpOwpAQCAtMTMwLDYgKzEzMiw5IEBAIFdlYkNvbnRleHQ6On5XZWJDb250ZXh0
KCkKICAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+aW52YWxpZGF0ZSgpOwogICAgIG1fcGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLT5jbGVhckNvbnRleHQoKTsKIAorICAgIG1fcmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eS0+Y2xlYXJDb250ZXh0KCk7CisKICNpZm5kZWYgTkRFQlVHCiAgICAgd2ViQ29udGV4dENv
dW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKQEAgLTI1NSw2ICsyNjAsNyBAQCB2b2lkIFdlYkNv
bnRleHQ6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jCiAKICAgICBtX2Rvd25sb2Fkcy5jbGVhcigp
OwogCisgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAg
ICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRp
b25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHktPmludmFsaWRhdGUoKTsKQEAgLTUyMiw4ICs1MjgsOCBAQCB2b2lkIFdlYkNvbnRleHQ6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5kaWRS
ZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBtX2Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTM3
LDYgKzU0MywxMSBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgbV9y
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYkNvbnRleHRM
ZWdhY3lNZXNzYWdlOjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1l
c3NhZ2U6OlBvc3RNZXNzYWdlOiB7CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDc5MzMzKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDUsMTEgKzQ1LDEyIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQ
cm94eTsKLWNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk7
CiBjbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsK
IGNsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7
CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgV2ViQ29udGV4
dCA6IHB1YmxpYyBBUElPYmplY3QgewpAQCAtMTMwLDEwICsxMzEsMTEgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IHBkZkFuZFBvc3RTY3Jp
cHRNSU1FVHlwZXMoKTsKIAotICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkqIHJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkuZ2V0KCk7IH0KKyAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KiBh
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkq
IGRhdGFiYXNlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1hbmFnZXJQ
cm94eS5nZXQoKTsgfQogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
Z2V0KCk7IH0KICAgICBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIHBsdWdpblNpdGVEYXRhTWFu
YWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmdldCgpOyB9Cisg
ICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSogcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5nZXQoKTsgfQog
CiAgICAgc3RydWN0IFN0YXRpc3RpY3MgewogICAgICAgICB1bnNpZ25lZCB3a1ZpZXdDb3VudDsK
QEAgLTIxMiwxMCArMjE0LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21lbW9yeVNhbXBsZXJF
bmFibGVkOwogICAgIGRvdWJsZSBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbDsKIAotICAgIFJlZlB0
cjxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PiBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHk7CisgICAgUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk+IG1fYXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHk+IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJQbHVn
aW5TaXRlRGF0YU1hbmFnZXI+IG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyOworICAgIFJlZlB0cjxX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PiBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7
CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgYm9vbCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJv
bHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMwLDkgKzIzMCwxMCBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5PigpCiAgICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpCi0gICAgICAgIHx8
IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKQotICAgICAg
ICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk+KCkpIHsKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7
CiAgICAgICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5LmNwcAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDI0ICs3
MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2EKIHZvaWQgV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewog
ICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFja3MudGFr
ZShjYWxsYmFja0lEKTsKLSAgICBpZiAoIWNhbGxiYWNrKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBM
b2cgZXJyb3Igb3IgYXNzZXJ0LgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc2l6ZV90
IG9yaWdpbklkZW50aWZpZXJzQ291bnQgPSBvcmlnaW5zLnNpemUoKTsKLSAgICBWZWN0b3I8UmVm
UHRyPEFQSU9iamVjdD4gPiBzZWN1cml0eU9yaWdpbnM7Ci0gICAgc2VjdXJpdHlPcmlnaW5zLnJl
c2VydmVDYXBhY2l0eShvcmlnaW5JZGVudGlmaWVyc0NvdW50KTsKLQotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgb3JpZ2luSWRlbnRpZmllcnNDb3VudDsgKytpKSB7Ci0gICAgICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhID0gb3JpZ2luc1tpXTsKLSAgICAgICAgUmVmUHRyPEFQ
SU9iamVjdD4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnBy
b3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7Ci0gICAgICAgIGlmICgh
b3JpZ2luKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHNlY3VyaXR5T3JpZ2lucy51
bmNoZWNrZWRBcHBlbmQob3JpZ2luKTsKLSAgICB9Ci0KLSAgICBjYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKEltbXV0YWJsZUFycmF5OjphZG9wdChzZWN1cml0eU9yaWdp
bnMpLmdldCgpKTsKKyAgICBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRh
VmVjdG9yKG9yaWdpbnMsIGNhbGxiYWNrLmdldCgpKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5OjpjbGVhckNhY2hlRm9yT3JpZ2luKFdlYlNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4pCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5OwogY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVy
OwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RQcm94eTsKK2NsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBX
ZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3Mg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKQEAgLTY2LDYgKzY3LDcgQEAgY2xhc3MgV2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyOwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7CiBjbGFzcyBXZWJQ
cm90ZWN0aW9uU3BhY2U7CiAKK1dLX0FERF9BUElfTUFQUElORyhXS0FwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUmVmLCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYsIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXJSZWYsIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcikKIFdLX0FERF9BUElfTUFQ
UElORyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0pCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVm
IEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykK
K3sKKyAgICB0b0ltcGwoQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYpLT5nZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2lucyhBcnJheUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsK
K30KKwordm9pZCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdp
bihXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVm
LCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJlZikKK3sKKyAgICB0b0ltcGwoQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJSZWYpLT5kZWxldGVFbnRyaWVzRm9yT3JpZ2luKHRvSW1wbChvcmlnaW5S
ZWYpKTsKK30KKwordm9pZCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsRW50cmll
cyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVm
KQoreworICAgIHRvSW1wbChBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiktPmRlbGV0ZUFsbEVu
dHJpZXMoKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJfaAorI2RlZmluZSBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYs
IFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UmVmIGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnNGdW5jdGlvbiBmdW5jdGlvbik7
CisKK1dLX0VYUE9SVCB2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1h
bmFnZXIsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkocmV2aXNp
b24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDkgKzE1OCw5IEBAIHZvaWQgV0tDb250ZXh0Q2xlYXJB
cHBsaWNhdGlvbkNhY2hlKFdLQ28KICAgICB0b0ltcGwoY29udGV4dFJlZiktPmNsZWFyQXBwbGlj
YXRpb25DYWNoZSgpOwogfQogCi1XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQorV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihX
S0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKLSAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRl
eHRSZWYpLT5yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KCkpOworICAgIHJldHVybiB0b0FQSSh0
b0ltcGwoY29udGV4dFJlZiktPmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoKSk7CiB9CiAK
IFdLRGF0YWJhc2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRl
eHRSZWYgY29udGV4dFJlZikKQEAgLTE3OCw2ICsxNzgsMTEgQEAgV0tQbHVnaW5TaXRlRGF0YU1h
bmFnZXJSZWYgV0tDb250ZXh0R2V0UAogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJl
ZiktPnBsdWdpblNpdGVEYXRhTWFuYWdlcigpKTsKIH0KIAorV0tSZXNvdXJjZUNhY2hlTWFuYWdl
clJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4
dFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5yZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5KCkpOworfQorCiB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxl
cihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpCiB7CiAgICAg
dG9JbXBsKGNvbnRleHRSZWYpLT5zdGFydE1lbW9yeVNhbXBsZXIodG9JbXBsKGludGVydmFsKS0+
dmFsdWUoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDEwICsxMjMsMTEgQEAgV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0Q2xlYXJBcHBsaWNhdGlvbgogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0
U3RhcnRNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0RvdWJsZVJlZiBpbnRl
cnZhbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTdG9wTWVtb3J5U2FtcGxlcihXS0NvbnRl
eHRSZWYgY29udGV4dCk7CiAKLVdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdL
Q29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dL
X0VYUE9SVCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldEFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0RhdGFi
YXNlTWFuYWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwogV0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdl
b2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMjY2LDYgKzI2NiwxOCBAQAogCQk1MTI5MzVEODEyODhEMTk0MDBBNEI2OTUgLyogV2Vi
Q29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmgg
Ki87IH07CiAJCTUxMjkzNUUzMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VD
b250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
Q29udGV4dE1lbnVDbGllbnQuY3BwICovOyB9OwogCQk1MTI5MzVFNDEyODhEOTc4MDBBNEI2OTUg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovOyB9OworCQk1MTJFMzRF
NDEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBMzNCMzEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgKi87IH07CisJCTUxMkUz
NEU1MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBMzNCNDEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNTEyRTM1MjQxMzBCNTUwNjAwQUJEMTlB
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1MjAxMzBCNTUwMTAwQUJEMTlBIC8q
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk1MTJFMzUyNTEz
MEI1NTA2MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1MjExMzBCNTUw
MTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJ
NTEyRTM1MkUxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkUzNTJC
MTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgKi87IH07
CisJCTUxMkUzNTJGMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1
MkMxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi87IH07
CisJCTUxMkUzNTMwMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEyRTM1MkQxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLm1lc3NhZ2VzLmluICovOyB9OworCQk1MTJFMzU2QTEzMEI1N0YwMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1NjgxMzBCNTdGMDAwQUJEMTlB
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
KwkJNTEyRTM1NkIxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMkUzNTY5MTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CisJCTUxMkUzNUYxMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzVGMDEzMEI2MzhDMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNTEyRTM1
RjgxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEyRTM1RjYxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTJFMzVGOTEzMEI2NDJFMDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzVGNzEzMEI2NDJF
MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87
IH07CiAJCTUxMkY1ODhBMTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4
ODcxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CiAJ
CTUxMkY1ODhCMTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODg4MTJBODgz
NjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKIAkJNTEyRjU4OEMx
MkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4ODkxMkE4
ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLzsgfTsK
QEAgLTEwNjAsNiArMTA3MiwxNiBAQAogCQk1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2Vi
Q29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEy
ODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
Q29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5
MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
Q29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1
MjAxMzBCNTUwMTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNTIx
MTMwQjU1MDEwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1MkIxMzBCNTVBRjAw
QUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcDsgcGF0
aCA9IEFwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzUyQzEzMEI1NUFGMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGUv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTEyRTM1MkQxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTEyRTM1NjgxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1NjkxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTJFMzVGMDEzMEI2MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTJFMzVGNjEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1RjcxMzBCNjQy
RTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4ODcx
MkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4ODEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJG
NTg4OTEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODUsNiArMTEwNyw4IEBACiAJCTUx
NTM1NjlCMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNTc4QjgyMTIwOUVDRUYwMEEzN0M0QSAv
KiBXZWJEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2QTRBNUIxMjBBMkNDRDAwQzA1QjdGIC8q
IFdlYkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVycm9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0EzM0IzMTMwQjMwOEMwMEY4MENCNSAv
KiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTdBMzNCNDEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcx
QjU5MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVu
dS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyog
V0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDc4LDYgKzIxMDIsMTYgQEAKIAkJCW5hbWUgPSBjZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNh
Y2hlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTJF
MzUyQjEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwICov
LAorCQkJCTUxMkUzNTJDMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5oICovLAorCQkJCTUxMkUzNTJEMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gQXBwbGljYXRp
b25DYWNoZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMkY1ODg2MTJB
ODgzNDcwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTE2LDYgKzIxNTAsNyBAQAogCQlCQzAzMkQ1QzEwRjQz
NkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9u
Q2FjaGUgKi8sCiAJCQkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9u
ICovLAogCQkJCTFBNjE2MTRDMTI3Nzk4QjUwMDNBQ0Q4NiAvKiBEb3dubG9hZHMgKi8sCiAJCQkJ
QkMwRTVGQ0IxMkQ2OTZERDAwMTJBNzJBIC8qIEdlb2xvY2F0aW9uICovLApAQCAtMjI1MCw2ICsy
Mjg1LDkgQEAKIAkJCQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAq
LywKIAkJCQkxQTBGMjlFMTEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92aWRlci5j
cHAgKi8sCiAJCQkJMUEwRjI5RTIxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlk
ZXIuaCAqLywKKwkJCQk1MTJFMzUyMDEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJNTEyRTM1MjExMzBCNTUwMTAwQUJEMTlBIC8q
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk1MTJFMzVGMDEzMEI2
MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biAqLywKIAkJCQlCQzcyQkExQjExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0
LmNwcCAqLywKIAkJCQlCQzcyQkExQzExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRM
aXN0LmggKi8sCiAJCQkJQkNCOUUyNDIxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuY3Bw
ICovLApAQCAtMjM0Miw2ICsyMzgwLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDQjYzNDc3
MTE2QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyLmggKi8sCiAJCQkJQkNEREIzMkMxMjRFQzJFMTAw
NDhEMTNDIC8qIFdLQVBJQ2FzdC5oICovLAorCQkJCTUxN0EzM0IzMTMwQjMwOEMwMEY4MENCNSAv
KiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLywKKwkJCQk1MTdBMzNCNDEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovLAogCQkJCTUxMkY1OEVE
MTJBODhBNTQwMDYyOTUzMCAvKiBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmNwcCAqLywKIAkJ
CQk1MTJGNThFRTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5o
ICovLAogCQkJCTUxMkY1OEVGMTJBODhBNTQwMDYyOTUzMCAvKiBXS0F1dGhlbnRpY2F0aW9uRGVj
aXNpb25MaXN0ZW5lci5jcHAgKi8sCkBAIC0yODM3LDYgKzI4NzcsMTAgQEAKIAkJCQkxQTA0M0I1
QzEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJ
CQkxQThFRkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3Nh
Z2VzLmggKi8sCisJCQkJNTEyRTM1NjgxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTJFMzU2OTEzMEI1N0Yw
MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CTUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTJFMzVGNzEzMEI2NDJFMDBBQkQxOUEg
LyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQkNF
RTdEMEIxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCUJDRUU3RDBDMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZXMuaCAq
LywKIAkJCQlGNjJBNzZCMjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTMyNTIsNiArMzI5NiwxMSBAQAogCQkJCUJDQTU2QTFD
MTJGOTAyOEUwMEM1NjZDNyAvKiBXZWJHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQTU2QTY1MTJGOUM4RjkwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNBNTZBNjkxMkY5QzlBRDAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250
ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkUzNEU1MTMwQjREMDUwMEFCRDE5QSAvKiBX
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFMzUyNTEz
MEI1NTA2MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTEyRTM1MkYxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFMzU2QjEzMEI1N0YwMDBBQkQx
OUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTEyRTM1RjkxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NTQyMzQxMzBDNUYzRjAw
NzNFMUMxIC8qIFRleHRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUM4NkZGNDEzMEI0NkQz
MDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQzg3MDJEMTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMzM2Nyw2ICszNDE2LDggQEAKIAkJCWZpbGVzID0gKAogCQkJCThE
QzJFRjUzMDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvUGxpc3Quc3RyaW5ncyBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJNTEyRjU4OEMxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJNTEyRTM1MzAxMzBCNTVBRjAwQUJE
MTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNl
cyAqLywKKwkJCQk1MTJFMzVGMTEzMEI2MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNzM4LDYgKzM3
ODksMTEgQEAKIAkJCQlCQ0E1NkE2NjEyRjlDOEY5MDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBNTZBNkExMkY5QzlBRDAwQzU2NkM3IC8qIFdL
R3JhcGhpY3NDb250ZXh0Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU5QzU1MUUxMzAwMDY0
MTAwMjVDMEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk1MTJFMzRFNDEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTJFMzUyNDEzMEI1NTA2MDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MTJFMzUyRTEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyRTM1NkExMzBCNTdGMDAwQUJEMTlBIC8q
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxMkUzNUY4MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDU0
MjM1MTMwQzVGM0YwMDczRTFDMSAvKiBUZXh0SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QUM4NkZGMzEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUFDODcwMkUxMzBCNDlBMjAwMkMxMjU3IC8qIFdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSAi
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgpA
QCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRm9udC5oPgpAQCAtNTIzLDggKzUyNCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI+KCkpIHsK
LSAgICAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyPigpKSB7
CisgICAgICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTUzOCw2ICs1MzksMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcj4oKSkg
eworICAgICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NJbmpl
Y3RlZEJ1bmRsZT4oKSkgewogICAgICAgICBpZiAoIW1faW5qZWN0ZWRCdW5kbGUpCiAgICAgICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Fw
cGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJNZXNzYWdl
SUQuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXImIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKQoreworICAgIHN0
YXRpYyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYgc2hhcmVkID0gKm5ldyBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlcjsKKyAgICByZXR1cm4gc2hhcmVkOworfQorCitXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlcjo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIoKQoreworfQorCit2b2lk
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD4gb3JpZ2luczsKKyAgICBjYWNo
ZVN0b3JhZ2UoKS5nZXRPcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMpOworCisgICAgVmVjdG9yPFNl
Y3VyaXR5T3JpZ2luRGF0YT4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMucmVzZXJ2ZUNh
cGFjaXR5KG9yaWdpbnMuc2l6ZSgpKTsKKworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiwgU2VjdXJpdHlPcmlnaW5IYXNoPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsK
KyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD46
Oml0ZXJhdG9yIGkgPSBvcmlnaW5zLmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kp
IHsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKyAgICAgICAg
CisgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhOworICAgICAgICBvcmlnaW5E
YXRhLnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgICAgICBvcmlnaW5EYXRhLmhv
c3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAgICAgICAgb3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5w
b3J0KCk7CisKKyAgICAgICAgaWRlbnRpZmllcnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbkRhdGEp
OworICAgIH0KKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6RGlkR2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpbnMoaWRlbnRpZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbkRhdGEpCit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2ws
IG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsKKyAgICBpZiAoIW9yaWdpbikKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIGNhY2hlU3RvcmFnZSgpLmRlbGV0ZUVudHJpZXNGb3JP
cmlnaW4ob3JpZ2luLmdldCgpKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
cjo6ZGVsZXRlQWxsRW50cmllcygpCit7CisgICAgY2FjaGVTdG9yYWdlKCkuZW1wdHkoKTsKKyAg
ICBjYWNoZVN0b3JhZ2UoKS52YWN1dW1EYXRhYmFzZUZpbGUoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRp
b25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
cl9oCisjZGVmaW5lIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOworICAgIGNsYXNzIENv
bm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlEOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgU2VjdXJpdHlPcmlnaW5EYXRhOworCitjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIpOworCitwdWJsaWM6CisgICAgc3RhdGljIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
JiBzaGFyZWQoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisK
K3ByaXZhdGU6CisgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIoKTsKKyAgICAKKyAgICB2
b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAg
IHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbik7CisgICAgdm9pZCBkZWxldGVBbGxFbnRyaWVzKCk7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIgeworICAgIHZvaWQgR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJh
Y2tJRCkKKyAgICB2b2lkIERlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViS2l0OjpTZWN1cml0eU9y
aWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXMoKQor
fQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzkzMzMpCisrKyBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMTgs
NiArMTMxOCwyMiBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJQcm9jZXNz
TWFpbi5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWx0ZXIKKyAgICAgICAg
ICAgICAgICBOYW1lPSJBcHBsaWNhdGlvbkNhY2hlIgorICAgICAgICAgICAgICAgID4KKyAgICAg
ICAgICAgICAgICA8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQXBwbGlj
YXRpb25DYWNoZVxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEFwcGxp
Y2F0aW9uQ2FjaGVcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQXBwbGlj
YXRpb25DYWNoZVxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKyAgICAgICAgICAgIDwvRmlsdGVyPgogCQkJPEZpbHRlcgogCQkJCU5h
bWU9IkF1dGhlbnRpY2F0aW9uIgogCQkJCT4KQEAgLTIyOTAsNiArMjMwNiwxOCBAQAogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFZpc2l0ZWRMaW5rUHJvdmlkZXIuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXFdlYkJhY2tGb3J3YXJkTGlzdC5jcHAiCiAJCQkJPgpAQCAtMjU4
MCw2ICsyNjA4LDE0IEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xX
S0FQSUNhc3QuaCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICA8
RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQogCQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAi
CiAJCQkJCQk+CkBAIC0zMzcxLDYgKzM0MDcsMjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAgICAg
ICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cg==
</data>
<flag name="commit-queue"
          id="75138"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83346</attachid>
            <date>2011-02-22 11:13:01 -0800</date>
            <delta_ts>2011-02-22 11:40:15 -0800</delta_ts>
            <desc>Patch v2 (With critical ENABLE(OFFLINE_WEB_APPLICATIONS) protectors in places that might break the build for some platforms)</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>77293</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzM5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYyMDQyPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE0CisgICAgICAgIEFQSSB0byB2aWV3
IGFuZCBkZWxldGUgQXBwbGljYXRpb24gQ2FjaGUgZGF0YSBieSBvcmlnaW4uCisKKyAgICAgICAg
U3R1YiB0aGVzZSBvdXQgZm9yIG5vdzoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmdldE9yaWdpbnNXaXRoQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oOgorCisgICAgICAgIEV4cG9y
dCB0aGUgbmV3IHN5bWJvbHM6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKIDIwMTEtMDIt
MjIgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lv
biA3OTMzOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzQ4LDcgKzE3NDgsOSBAQCBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlMTR1CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTZzdG9yZUNvcHlP
ZkNhY2hlRVJLTjNXVEY2U3RyaW5nRVBOU18yMEFwcGxpY2F0aW9uQ2FjaGVIb3N0RQogX19aTjdX
ZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE3c2V0Q2FjaGVEaXJlY3RvcnlFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTh2YWN1dW1E
YXRhYmFzZUZpbGVFdgorX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE5Z2V0
T3JpZ2luc1dpdGhDYWNoZUVSTjNXVEY3SGFzaFNldElOUzFfNlJlZlB0cklOU18xNFNlY3VyaXR5
T3JpZ2luRUVFTlNfMThTZWN1cml0eU9yaWdpbkhhc2hFTlMxXzEwSGFzaFRyYWl0c0lTNV9FRUVF
CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMjFzZXREZWZhdWx0T3JpZ2lu
UXVvdGFFeAorX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTIyZGVsZXRlRW50
cmllc0Zvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKIF9fWk43V2ViQ29yZTIzQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UyNnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luRVBLTlNfMTRTZWN1
cml0eU9yaWdpbkV4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMzZyZW1h
aW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGVFUEtOU18xNFNlY3VyaXR5T3JpZ2luRVBO
U18xNkFwcGxpY2F0aW9uQ2FjaGVFUngKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U1ZW1wdHlFdgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCShyZXZpc2lvbiA3OTMzOSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRlVHJhbnNhY3Rp
b24uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtMTI4Nyw2ICsxMjg4LDE4IEBA
IHZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNoZWNrRm9yTWEKICAgICAgICAgbV9pc01h
eGltdW1TaXplUmVhY2hlZCA9IHRydWU7CiB9CiAKK3ZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmdldE9yaWdpbnNXaXRoQ2FjaGUoSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBT
ZWN1cml0eU9yaWdpbkhhc2g+JikKK3sKKyAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODc2
MjA0Mj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxNCAt
IEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKikKK3sK
KyAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODc2MjA0Mj4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxNCAtIEltcGxlbWVudC4KKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6QXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UoKSAKICAgICA6IG1fbWF4aW11bVNpemUoQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
Om5vUXVvdGEoKSkKICAgICAsIG1faXNNYXhpbXVtU2l6ZVJlYWNoZWQoZmFsc2UpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaAkocmV2aXNpb24gNzkzMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksOCArMjksMTAgQEAKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkhhc2guaCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
Q291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05Miw2ICs5NCw5IEBA
IHB1YmxpYzoKICAgICBib29sIGRlbGV0ZUNhY2hlR3JvdXAoY29uc3QgU3RyaW5nJiBtYW5pZmVz
dFVSTCk7CiAgICAgdm9pZCB2YWN1dW1EYXRhYmFzZUZpbGUoKTsKIAorICAgIHZvaWQgZ2V0T3Jp
Z2luc1dpdGhDYWNoZShIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3Jp
Z2luSGFzaD4mKTsKKyAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oU2VjdXJpdHlPcmln
aW4qKTsKKwogICAgIHN0YXRpYyBpbnQ2NF90IHVua25vd25RdW90YSgpIHsgcmV0dXJuIC0xOyB9
CiAgICAgc3RhdGljIGludDY0X3Qgbm9RdW90YSgpIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50NjRfdD46Om1heCgpOyB9CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24g
NzkzMzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSw5MSBAQAorMjAxMS0wMi0yMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg3NjIwNDI+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ1MTQKKyAgICAgICAgQVBJIHRvIHZpZXcgYW5kIGRlbGV0ZSBBcHBsaWNhdGlvbiBD
YWNoZSBkYXRhIGJ5IG9yaWdpbi4KKworICAgICAgICBJIGNvdWxkbid0IGhlbHAgbXlzZWxmIC0g
SSBhbHNvIHJlLWFscGhhYmF0aXplZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciBpbiBtYW55IHBs
YWNlcyB3aGVyZQorICAgICAgICBpdCdzIHNvcnRpbmcgd2FzIHdyb25nIGR1ZSB0byBhIGxhc3Qg
bWludXRlIG5hbWUgY2hhbmdlLgorCisgICAgICAgIFByb2plY3QgZmlsZSBjaGFuZ2VzOgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJLaXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKKyAgICAgICAgV0syIGJ1aWxkLXN5c3RlbSBhbmQgQVBJIHBhcGVyd29yazoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZUlELmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0Lmg6CisKKyAgICAgICAgQWRkIGEgaGVscGVyIHRvIHBlcmZvcm0gYW4gQXJyYXlDYWxsYmFj
ayB3aXRoIGEgVmVjdG9yIG9mIFNlY3VyaXR5T3JpZ2luRGF0YXM6CisgICAgICAgICogU2hhcmVk
L1NlY3VyaXR5T3JpZ2luRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnBlcmZvcm1BUElDYWxs
YmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3IpOgorICAgICAgICAqIFNoYXJlZC9TZWN1
cml0eU9yaWdpbkRhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRpZEdldENhY2hlT3JpZ2lucyk6IFVzZSBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2Vj
dXJpdHlPcmlnaW5EYXRhVmVjdG9yIGhlcmUuCisKKyAgICAgICAgQWRkIGFuIEFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkgdG8gdGhlIGNvbnRleHQgYW5kIGludmFsaWRhdGUgaXQgYXQgdGhl
IGFwcHJvcHJpYXRlIHRpbWVzOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6V2ViQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6cHJvY2Vzc0RpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOiBSb3V0ZSBtZXNzYWdlcyB0byB0aGUgcmlnaHQgcHJveHkuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6
YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRl
eHQ6OnJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpOgorCisgICAgICAgIEFkZCBBUEkgdG8gZ2V0
IHRoZSBBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciBmb3IgYSBjb250ZXh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0R2V0QXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIpOgorICAgICAgICAoV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1h
bmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKworICAgICAg
ICBSb3V0ZSBtZXNzYWdlcyB0byB0aGUgcmlnaHQgcGxhY2U6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKworICAg
ICAgICBBZGQgdGhlIEFQSSBvYmplY3QsIHdoaWNoIHdyYXBzIHRvIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJHZXRUeXBlSUQpOgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJE
ZWxldGVFbnRyaWVzRm9yT3JpZ2luKToKKyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oOiBBZGRlZC4KKworICAgICAgICBUaGUgVUlQcm9jZXNzIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBtYW5hZ2VyIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIFdlYlByb2Nl
c3MgYW5kIHBpcGUgYSBjYWxsYmFjayBiYWNrIHVwIHRvIHRoZSBjbGllbnQ6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6V2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk6On5XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkaWRHZXRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2lucyk6IFVzZSBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRh
VmVjdG9yIGhlcmUuCisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y2xlYXJDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6dHlw
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIGltcGxlbWVudGF0
aW9uIHRvIHJlc3BvbnNlIHRvIFVJUHJvY2VzcyBtZXNzYWdlcyBhbmQgYWN0dWFsbHkgZG8gdGhl
IGRpcnR5LXdvcmsgaW4gV2ViQ29yZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGU6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXI6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTEtMDItMjIgIEJhbGF6cyBL
ZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVy
cyBDYXJsc3Nvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24g
NzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0yMyw2ICsyMyw3IEBACiBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1BsdWdpblBy
b2Nlc3MgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMgXAorICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBc
CiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXApAQCAtNDUsNiArNDYsOCBAQCBN
RVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBQbHVnaW5Qcm9j
ZXNzUHJveHkgXAogICAgIFBsdWdpblByb3h5IFwKKyAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlciBcCisgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViQ29u
dGV4dCBcCiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eSBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzkzMzMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBA
QCBsaWJXZWJLaXQyX2xhX0hFQURFUlMgPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0Mv
Z3RrL1dLVmlldy5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmggXAog
CSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIFwKKwkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBcCiAJJChXZWJLaXQy
KS9VSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBcCkBAIC0yODMs
NiArMjg0LDggQEAgbGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XZWJLaXQyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgXApAQCAtMzg1
LDYgKzM4OCw4IEBAIGxpYldlYktpdDJfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVRpbGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcCBcCkBAIC00NDksNiArNDU0LDggQEAgbGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0g
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRG93bmxvYWRzL2N1cmwvRG93bmxvYWRDdXJsLmNwcCBcCkBAIC02NTEsNiArNjU4
LDcgQEAgbGliV2ViS2l0Ml9sYV9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvZ3RrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRz
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwK
QEAgLTgwMSw2ICs4MDksMTAgQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdl
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtODQzLDExICs4NTUsMTMg
QEAgdnBhdGggJS5tZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1BsdWdpblByb2Nlc3MgXAog
CSQoV2ViS2l0MikvU2hhcmVkL1BsdWdpbnMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzIFwKKwkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAkkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0dlb2xvY2F0aW9uIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9QbHVnaW5zIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9SZXNv
dXJjZUNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MgXAorCSQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0aGVudGlj
YXRpb24gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAJJChXZWJLaXQy
KS9XZWJQcm9jZXNzL1BsdWdpbnMgXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDc5MzMz
KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTMyLDgg
KzMyLDggQEAgV0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAog
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJveHlNZXNzYWdlcy5o
IFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmgg
XAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViQ29udGV4dE1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09V
UkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXApA
QCAtNDUsNyArNDUsOSBAQCBXRUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUHJvY2Vzc01l
c3NhZ2VzLmggXAotICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2Vi
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgKIAogV0VCS0lUMl9HRU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVNfRElSL0F1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XApAQCAtNTQsOCArNTYsOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vz
c1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAotICAgICQkV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dl
YkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC02Nyw3ICs2OSw5
IEBAIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdF
QktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJl
Y2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
KyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogCiBI
RUFERVJTICs9IFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50RGVjb2Rlci5oIFwKQEAg
LTE1Nyw3ICsxNjEsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXIu
aCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oIFwKICAgICBVSVByb2Nl
c3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKLSAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3Mv
V2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250
ZXh0TWVudVByb3h5LmggXApAQCAtMTc4LDE4ICsxODIsMjAgQEAgSEVBREVSUyArPSBcCiAgICAg
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJMb2FkZXJD
bGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmggXAotICAgIFVJUHJv
Y2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0
TWVudUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nl
c3NNYW5hZ2VyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBcCisgICAgVUlQ
cm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZENsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBcCiAg
ICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKKyAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuaCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmggXApAQCAtMzI4LDkgKzMzNCw5IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9SZXNw
b25zaXZlbmVzc1RpbWVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94
eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCisgICAgVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
IFwKLSAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIFwKICAgICBVSVBy
b2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eS5jcHAgXApAQCAtMzQ5LDE0ICszNTUsMTUgQEAgU09VUkNFUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkxv
YWRlckNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uRGF0YS5jcHAgXAot
ICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9X
ZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3Vw
LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9X
ZWJQb2xpY3lDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIFwK
ICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L0NodW5rZWRV
cGRhdGVEcmF3aW5nQXJlYVByb3h5UXQuY3BwIFwKQEAgLTM2OSw2ICszNzYsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nl
c3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQcmVm
ZXJlbmNlc1F0LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAg
XApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCShy
ZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE4ICszOSwxOSBAQCBlbnVtIE1lc3NhZ2VDbGFz
cyB7CiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWEsCiAgICAgTWVzc2FnZUNsYXNzRHJhd2lu
Z0FyZWFMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzSW5qZWN0ZWRCdW5kbGUsCi0gICAgTWVzc2Fn
ZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIsCisgICAgTWVzc2FnZUNsYXNzV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyLAog
ICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VD
bGFzc1dlYkluc3BlY3RvciwKICAgICBNZXNzYWdlQ2xhc3NXZWJQYWdlLAogICAgIE1lc3NhZ2VD
bGFzc1dlYlByb2Nlc3MsCisgICAgTWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIs
CiAKICAgICAvLyBNZXNzYWdlcyBzZW50IGJ5IHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgVUkgcHJv
Y2Vzcy4KICAgICBNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0Ry
YXdpbmdBcmVhUHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxlZ2FjeSwK
LSAgICBNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3Nh
Z2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNz
V2ViQ29udGV4dCwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LAogICAgIE1lc3Nh
Z2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LApAQCAtNTksNiArNjAsNyBAQCBlbnVtIE1l
c3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzV2ViUGFnZVByb3h5LAogICAgIE1lc3NhZ2VD
bGFzc1dlYlByb2Nlc3NQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHlMZWdh
Y3ksCisgICAgTWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSwKIAogICAg
IC8vIE1lc3NhZ2VzIHNlbnQgYnkgdGhlIFVJIHByb2Nlc3MgdG8gdGhlIHBsdWctaW4gcHJvY2Vz
cy4KICAgICBNZXNzYWdlQ2xhc3NQbHVnaW5Qcm9jZXNzLApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogICAgICAg
ICBUeXBlVUludDY0LAogICAgICAgICAKICAgICAgICAgLy8gVUlQcm9jZXNzIHR5cGVzCisgICAg
ICAgIFR5cGVBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUJhY2tGb3J3YXJk
TGlzdCwKICAgICAgICAgVHlwZUJhY2tGb3J3YXJkTGlzdEl0ZW0sCiAgICAgICAgIFR5cGVDYWNo
ZU1hbmFnZXIsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRh
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJp
dHlPcmlnaW5EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsMTAgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKIAorI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQyLDQgKzQ1LDI2IEBAIGJvb2wgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpkZWNvZGUoQ29yZUlQQzoKICAgICByZXR1cm4gZGVjb2Rlci0+ZGVj
b2RlKENvcmVJUEM6Ok91dChzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wsIHNlY3VyaXR5T3Jp
Z2luRGF0YS5ob3N0LCBzZWN1cml0eU9yaWdpbkRhdGEucG9ydCkpOwogfQogCit2b2lkIHBlcmZv
cm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3IoY29uc3QgVmVjdG9yPFNl
Y3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCBBcnJheUNhbGxiYWNrKiBjYWxsYmFjaykK
K3sKKyAgICBpZiAoIWNhbGxiYWNrKSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3Ig
YXNzZXJ0LgorICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHNpemVfdCBvcmlnaW5E
YXRhQ291bnQgPSBvcmlnaW5EYXRhcy5zaXplKCk7CisgICAgVmVjdG9yPFJlZlB0cjxBUElPYmpl
Y3Q+ID4gc2VjdXJpdHlPcmlnaW5zOworICAgIHNlY3VyaXR5T3JpZ2lucy5yZXNlcnZlQ2FwYWNp
dHkob3JpZ2luRGF0YUNvdW50KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3JpZ2lu
RGF0YUNvdW50OyArK2kpIHsKKyAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEg
PSBvcmlnaW5EYXRhc1tpXTsKKyAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gb3JpZ2luID0gV2Vi
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhv
c3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgICAgIGlmICghb3JpZ2luKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIHNlY3VyaXR5T3JpZ2lucy51bmNoZWNrZWRBcHBlbmQob3JpZ2lu
KTsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVl
KEltbXV0YWJsZUFycmF5OjphZG9wdChzZWN1cml0eU9yaWdpbnMpLmdldCgpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlP
cmlnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5
T3JpZ2luRGF0YS5oCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
ZWN1cml0eU9yaWdpbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2lm
bmRlZiBTZWN1cml0eU9yaWdpbkRhdGFfaAogI2RlZmluZSBTZWN1cml0eU9yaWdpbkRhdGFfaAog
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKQEAg
LTM1LDYgKzM3LDggQEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKKwog
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YSB7CiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIFNlY3VyaXR5T3JpZ2luRGF0YSYpOwpAQCAtNDcsNiArNTEsOCBAQCBz
dHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhIHsKICAgICBpbnQgcG9ydDsKIH07CiAKK3ZvaWQgcGVy
Zm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3Rvcihjb25zdCBWZWN0b3I8
U2VjdXJpdHlPcmlnaW5EYXRhPiYsIEFycmF5Q2FsbGJhY2sqKTsKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBTZWN1cml0eU9yaWdpbkRhdGFfaApJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDcgQEAg
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVc2VyQ29udGVudAogCiAvKiBXZWJLaXQyIG1h
aW4gQVBJIHR5cGVzICovCiAKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIqIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKiBXS0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVm
OwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3QqIFdLQmFja0Zv
cndhcmRMaXN0UmVmOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2lu
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk+IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZShX
ZWJDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eShjb250ZXh0KSk7Cit9CisKK1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4
dCogY29udGV4dCkKKyAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0KQoreworfQorCitXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Ojp+V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eSgpCit7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSgpCit7CisgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOwor
fQorCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBt
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRp
ZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eTo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNh
bGxiYWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBwcnBDYWxsYmFjazsKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNz
KCkpIHsKKyAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNr
SUQoKTsKKyAgICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxl
YXNlKCkpOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6R2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY2FsbGJh
Y2tJRCksIDApOworfQorICAgIAordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
OjpkaWRHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmln
aW5EYXRhPiYgb3JpZ2luRGF0YXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRy
PEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50YWtlKGNhbGxiYWNr
SUQpOworICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3Io
b3JpZ2luRGF0YXMsIGNhbGxiYWNrLmdldCgpKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdlYlNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4pCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3Jp
Z2luRGF0YTsKKyAgICBzZWN1cml0eU9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3Rv
Y29sKCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsKKyAg
ICBzZWN1cml0eU9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgbV93ZWJD
b250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyOjpEZWxldGVFbnRyaWVzRm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luRGF0YSksIDApOworfQor
Cit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMo
KQoreworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6RGVsZXRlQWxsRW50cmllcygpLCAwKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRl
ICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1l
bnREZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlEOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK2Ns
YXNzIFdlYkNvbnRleHQ7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKKwordHlwZWRlZiBHZW5l
cmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKKworY2xhc3MgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAg
IHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQXBwbGljYXRpb25DYWNoZU1hbmFnZXI7
CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJD
b250ZXh0KCkgeyBtX3dlYkNvbnRleHQgPSAwOyB9CisgICAgCisgICAgdm9pZCBnZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRl
bGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRlbGV0
ZUFsbEVudHJpZXMoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisKK3ByaXZhdGU6CisgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eShXZWJDb250
ZXh0Kik7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7
IH0KKworICAgIHZvaWQgZGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9y
PFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICAKKyAgICB2
b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqKTsKKworICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKKyAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5X2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4g
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnMoVmVjdG9yPFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5JZGVu
dGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBA
QAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
cm94eS5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgog
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtOTcsMTAgKzk4LDExIEBAIFdlYkNvbnRl
eHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2MKICAgICAsIG1fY2xlYXJBcHBsaWNhdGlv
bkNhY2hlRm9yTmV3V2ViUHJvY2VzcyhmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxlckVuYWJs
ZWQoZmFsc2UpCiAgICAgLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCi0gICAgLCBt
X3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6
Y3JlYXRlKHRoaXMpKQorICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fZGF0YWJh
c2VNYW5hZ2VyUHJveHkoV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAg
ICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6
OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlcjo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9yZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5KFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgLCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHModHJ1ZSkKICNl
bmRpZgpAQCAtMTE4LDggKzEyMCw4IEBAIFdlYkNvbnRleHQ6On5XZWJDb250ZXh0KCkKIAogICAg
IFdlYlByb2Nlc3NNYW5hZ2VyOjpzaGFyZWQoKS5jb250ZXh0V2FzRGVzdHJveWVkKHRoaXMpOwog
Ci0gICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9y
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKKyAgICBtX2FwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2FwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOwogCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmNs
ZWFyQ29udGV4dCgpOwpAQCAtMTMwLDYgKzEzMiw5IEBAIFdlYkNvbnRleHQ6On5XZWJDb250ZXh0
KCkKICAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+aW52YWxpZGF0ZSgpOwogICAgIG1fcGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLT5jbGVhckNvbnRleHQoKTsKIAorICAgIG1fcmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eS0+Y2xlYXJDb250ZXh0KCk7CisKICNpZm5kZWYgTkRFQlVHCiAgICAgd2ViQ29udGV4dENv
dW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKQEAgLTI1NSw2ICsyNjAsNyBAQCB2b2lkIFdlYkNv
bnRleHQ6OnByb2Nlc3NEaWRDbG9zZShXZWJQcm9jCiAKICAgICBtX2Rvd25sb2Fkcy5jbGVhcigp
OwogCisgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAg
ICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRp
b25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHktPmludmFsaWRhdGUoKTsKQEAgLTUyMiw4ICs1MjgsOCBAQCB2b2lkIFdlYkNvbnRleHQ6
OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
ZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHk+KCkpIHsKLSAgICAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5kaWRS
ZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBtX2Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTM3
LDYgKzU0MywxMSBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgbV9y
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PFdlYkNvbnRleHRM
ZWdhY3lNZXNzYWdlOjpLaW5kPigpKSB7CiAgICAgICAgIGNhc2UgV2ViQ29udGV4dExlZ2FjeU1l
c3NhZ2U6OlBvc3RNZXNzYWdlOiB7CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWU7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDc5MzMzKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDUsMTEgKzQ1LDEyIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQ
cm94eTsKLWNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk7
CiBjbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsK
IGNsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7
CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIAogY2xhc3MgV2ViQ29udGV4
dCA6IHB1YmxpYyBBUElPYmplY3QgewpAQCAtMTMwLDEwICsxMzEsMTEgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IHBkZkFuZFBvc3RTY3Jp
cHRNSU1FVHlwZXMoKTsKIAotICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkqIHJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkuZ2V0KCk7IH0KKyAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KiBh
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkq
IGRhdGFiYXNlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1hbmFnZXJQ
cm94eS5nZXQoKTsgfQogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
Z2V0KCk7IH0KICAgICBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIHBsdWdpblNpdGVEYXRhTWFu
YWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmdldCgpOyB9Cisg
ICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSogcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5nZXQoKTsgfQog
CiAgICAgc3RydWN0IFN0YXRpc3RpY3MgewogICAgICAgICB1bnNpZ25lZCB3a1ZpZXdDb3VudDsK
QEAgLTIxMiwxMCArMjE0LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21lbW9yeVNhbXBsZXJF
bmFibGVkOwogICAgIGRvdWJsZSBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbDsKIAotICAgIFJlZlB0
cjxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PiBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHk7CisgICAgUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk+IG1fYXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHk+IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYkdlb2xvY2F0aW9uTWFu
YWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJQbHVn
aW5TaXRlRGF0YU1hbmFnZXI+IG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyOworICAgIFJlZlB0cjxX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PiBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7
CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgYm9vbCBtX3Nob3VsZFBhaW50TmF0aXZlQ29udHJv
bHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMwLDkgKzIzMCwxMCBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3Jl
SVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5PigpCiAgICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpCi0gICAgICAgIHx8
IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKQotICAgICAg
ICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk+KCkpIHsKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7
CiAgICAgICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5LmNwcAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDI0ICs3
MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2EKIHZvaWQgV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewog
ICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFja3MudGFr
ZShjYWxsYmFja0lEKTsKLSAgICBpZiAoIWNhbGxiYWNrKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBM
b2cgZXJyb3Igb3IgYXNzZXJ0LgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc2l6ZV90
IG9yaWdpbklkZW50aWZpZXJzQ291bnQgPSBvcmlnaW5zLnNpemUoKTsKLSAgICBWZWN0b3I8UmVm
UHRyPEFQSU9iamVjdD4gPiBzZWN1cml0eU9yaWdpbnM7Ci0gICAgc2VjdXJpdHlPcmlnaW5zLnJl
c2VydmVDYXBhY2l0eShvcmlnaW5JZGVudGlmaWVyc0NvdW50KTsKLQotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgb3JpZ2luSWRlbnRpZmllcnNDb3VudDsgKytpKSB7Ci0gICAgICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhID0gb3JpZ2luc1tpXTsKLSAgICAgICAgUmVmUHRyPEFQ
SU9iamVjdD4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnBy
b3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7Ci0gICAgICAgIGlmICgh
b3JpZ2luKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHNlY3VyaXR5T3JpZ2lucy51
bmNoZWNrZWRBcHBlbmQob3JpZ2luKTsKLSAgICB9Ci0KLSAgICBjYWxsYmFjay0+cGVyZm9ybUNh
bGxiYWNrV2l0aFJldHVyblZhbHVlKEltbXV0YWJsZUFycmF5OjphZG9wdChzZWN1cml0eU9yaWdp
bnMpLmdldCgpKTsKKyAgICBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRh
VmVjdG9yKG9yaWdpbnMsIGNhbGxiYWNrLmdldCgpKTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5OjpjbGVhckNhY2hlRm9yT3JpZ2luKFdlYlNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4pCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5o
CShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5OwogY2xhc3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVy
OwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RQcm94eTsKK2NsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBX
ZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3Mg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKQEAgLTY2LDYgKzY3LDcgQEAgY2xhc3MgV2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyOwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7CiBjbGFzcyBXZWJQ
cm90ZWN0aW9uU3BhY2U7CiAKK1dLX0FERF9BUElfTUFQUElORyhXS0FwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUmVmLCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYsIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXJSZWYsIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcikKIFdLX0FERF9BUElfTUFQ
UElORyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0pCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVm
IEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykK
K3sKKyAgICB0b0ltcGwoQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYpLT5nZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2lucyhBcnJheUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsK
K30KKwordm9pZCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdp
bihXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVm
LCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJlZikKK3sKKyAgICB0b0ltcGwoQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJSZWYpLT5kZWxldGVFbnRyaWVzRm9yT3JpZ2luKHRvSW1wbChvcmlnaW5S
ZWYpKTsKK30KKwordm9pZCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsRW50cmll
cyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVm
KQoreworICAgIHRvSW1wbChBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiktPmRlbGV0ZUFsbEVu
dHJpZXMoKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJfaAorI2RlZmluZSBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYs
IFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UmVmIGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnNGdW5jdGlvbiBmdW5jdGlvbik7
CisKK1dLX0VYUE9SVCB2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1h
bmFnZXIsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkocmV2aXNp
b24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDkgKzE1OCw5IEBAIHZvaWQgV0tDb250ZXh0Q2xlYXJB
cHBsaWNhdGlvbkNhY2hlKFdLQ28KICAgICB0b0ltcGwoY29udGV4dFJlZiktPmNsZWFyQXBwbGlj
YXRpb25DYWNoZSgpOwogfQogCi1XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQorV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihX
S0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKLSAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRl
eHRSZWYpLT5yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KCkpOworICAgIHJldHVybiB0b0FQSSh0
b0ltcGwoY29udGV4dFJlZiktPmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoKSk7CiB9CiAK
IFdLRGF0YWJhc2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRl
eHRSZWYgY29udGV4dFJlZikKQEAgLTE3OCw2ICsxNzgsMTEgQEAgV0tQbHVnaW5TaXRlRGF0YU1h
bmFnZXJSZWYgV0tDb250ZXh0R2V0UAogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJl
ZiktPnBsdWdpblNpdGVEYXRhTWFuYWdlcigpKTsKIH0KIAorV0tSZXNvdXJjZUNhY2hlTWFuYWdl
clJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4
dFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5yZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5KCkpOworfQorCiB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxl
cihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpCiB7CiAgICAg
dG9JbXBsKGNvbnRleHRSZWYpLT5zdGFydE1lbW9yeVNhbXBsZXIodG9JbXBsKGludGVydmFsKS0+
dmFsdWUoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDEwICsxMjMsMTEgQEAgV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0Q2xlYXJBcHBsaWNhdGlvbgogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0
U3RhcnRNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0RvdWJsZVJlZiBpbnRl
cnZhbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTdG9wTWVtb3J5U2FtcGxlcihXS0NvbnRl
eHRSZWYgY29udGV4dCk7CiAKLVdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdL
Q29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKK1dL
X0VYUE9SVCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldEFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0RhdGFi
YXNlTWFuYWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwogV0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdl
b2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0KTsKK1dLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMjY2LDYgKzI2NiwxOCBAQAogCQk1MTI5MzVEODEyODhEMTk0MDBBNEI2OTUgLyogV2Vi
Q29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmgg
Ki87IH07CiAJCTUxMjkzNUUzMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VD
b250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
Q29udGV4dE1lbnVDbGllbnQuY3BwICovOyB9OwogCQk1MTI5MzVFNDEyODhEOTc4MDBBNEI2OTUg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovOyB9OworCQk1MTJFMzRF
NDEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBMzNCMzEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgKi87IH07CisJCTUxMkUz
NEU1MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBMzNCNDEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNTEyRTM1MjQxMzBCNTUwNjAwQUJEMTlB
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1MjAxMzBCNTUwMTAwQUJEMTlBIC8q
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQk1MTJFMzUyNTEz
MEI1NTA2MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1MjExMzBCNTUw
MTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJ
NTEyRTM1MkUxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkUzNTJC
MTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgKi87IH07
CisJCTUxMkUzNTJGMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1
MkMxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi87IH07
CisJCTUxMkUzNTMwMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEyRTM1MkQxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLm1lc3NhZ2VzLmluICovOyB9OworCQk1MTJFMzU2QTEzMEI1N0YwMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1NjgxMzBCNTdGMDAwQUJEMTlB
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
KwkJNTEyRTM1NkIxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMkUzNTY5MTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CisJCTUxMkUzNUYxMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzVGMDEzMEI2MzhDMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNTEyRTM1
RjgxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEyRTM1RjYxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTJFMzVGOTEzMEI2NDJFMDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzVGNzEzMEI2NDJF
MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87
IH07CiAJCTUxMkY1ODhBMTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4
ODcxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgKi87IH07CiAJ
CTUxMkY1ODhCMTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODg4MTJBODgz
NjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCAqLzsgfTsKIAkJNTEyRjU4OEMx
MkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4ODkxMkE4
ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLzsgfTsK
QEAgLTEwNjAsNiArMTA3MiwxNiBAQAogCQk1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2Vi
Q29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVFMTEy
ODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
Q29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5
MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
Q29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1
MjAxMzBCNTUwMTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNTIx
MTMwQjU1MDEwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1MkIxMzBCNTVBRjAw
QUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcDsgcGF0
aCA9IEFwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzUyQzEzMEI1NUFGMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGUv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTEyRTM1MkQxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTEyRTM1NjgxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1NjkxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTJFMzVGMDEzMEI2MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTJFMzVGNjEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1RjcxMzBCNjQy
RTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4ODcx
MkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4ODEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dGhlbnRpY2F0aW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJG
NTg4OTEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODUsNiArMTEwNyw4IEBACiAJCTUx
NTM1NjlCMTI5MUIxRDIwMDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNTc4QjgyMTIwOUVDRUYwMEEzN0M0QSAv
KiBXZWJEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2QTRBNUIxMjBBMkNDRDAwQzA1QjdGIC8q
IFdlYkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVycm9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0EzM0IzMTMwQjMwOEMwMEY4MENCNSAv
KiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTdBMzNCNDEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODcx
QjU5MTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVudS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxODcxQjVBMTI3Q0I4OUQwMEY3NjIzMiAvKiBXZWJDb250ZXh0TWVu
dS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyog
V0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDc4LDYgKzIxMDIsMTYgQEAKIAkJCW5hbWUgPSBjZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTUxMkUzNTJBMTMwQjU1OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNh
Y2hlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTJF
MzUyQjEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwICov
LAorCQkJCTUxMkUzNTJDMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5oICovLAorCQkJCTUxMkUzNTJEMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gQXBwbGljYXRp
b25DYWNoZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMkY1ODg2MTJB
ODgzNDcwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMTE2LDYgKzIxNTAsNyBAQAogCQlCQzAzMkQ1QzEwRjQz
NkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9u
Q2FjaGUgKi8sCiAJCQkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9u
ICovLAogCQkJCTFBNjE2MTRDMTI3Nzk4QjUwMDNBQ0Q4NiAvKiBEb3dubG9hZHMgKi8sCiAJCQkJ
QkMwRTVGQ0IxMkQ2OTZERDAwMTJBNzJBIC8qIEdlb2xvY2F0aW9uICovLApAQCAtMjI1MCw2ICsy
Mjg1LDkgQEAKIAkJCQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAq
LywKIAkJCQkxQTBGMjlFMTEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92aWRlci5j
cHAgKi8sCiAJCQkJMUEwRjI5RTIxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlk
ZXIuaCAqLywKKwkJCQk1MTJFMzUyMDEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJNTEyRTM1MjExMzBCNTUwMTAwQUJEMTlBIC8q
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk1MTJFMzVGMDEzMEI2
MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biAqLywKIAkJCQlCQzcyQkExQjExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0
LmNwcCAqLywKIAkJCQlCQzcyQkExQzExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRM
aXN0LmggKi8sCiAJCQkJQkNCOUUyNDIxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuY3Bw
ICovLApAQCAtMjM0Miw2ICsyMzgwLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDQjYzNDc3
MTE2QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyLmggKi8sCiAJCQkJQkNEREIzMkMxMjRFQzJFMTAw
NDhEMTNDIC8qIFdLQVBJQ2FzdC5oICovLAorCQkJCTUxN0EzM0IzMTMwQjMwOEMwMEY4MENCNSAv
KiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLywKKwkJCQk1MTdBMzNCNDEzMEIzMDhD
MDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovLAogCQkJCTUxMkY1OEVE
MTJBODhBNTQwMDYyOTUzMCAvKiBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmNwcCAqLywKIAkJ
CQk1MTJGNThFRTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5o
ICovLAogCQkJCTUxMkY1OEVGMTJBODhBNTQwMDYyOTUzMCAvKiBXS0F1dGhlbnRpY2F0aW9uRGVj
aXNpb25MaXN0ZW5lci5jcHAgKi8sCkBAIC0yODM3LDYgKzI4NzcsMTAgQEAKIAkJCQkxQTA0M0I1
QzEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJ
CQkxQThFRkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3Nh
Z2VzLmggKi8sCisJCQkJNTEyRTM1NjgxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTJFMzU2OTEzMEI1N0Yw
MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJ
CTUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTJFMzVGNzEzMEI2NDJFMDBBQkQxOUEg
LyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJQkNF
RTdEMEIxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCUJDRUU3RDBDMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZXMuaCAq
LywKIAkJCQlGNjJBNzZCMjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTMyNTIsNiArMzI5NiwxMSBAQAogCQkJCUJDQTU2QTFD
MTJGOTAyOEUwMEM1NjZDNyAvKiBXZWJHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQTU2QTY1MTJGOUM4RjkwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNBNTZBNjkxMkY5QzlBRDAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250
ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkUzNEU1MTMwQjREMDUwMEFCRDE5QSAvKiBX
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFMzUyNTEz
MEI1NTA2MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTEyRTM1MkYxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFMzU2QjEzMEI1N0YwMDBBQkQx
OUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTEyRTM1RjkxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NTQyMzQxMzBDNUYzRjAw
NzNFMUMxIC8qIFRleHRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUM4NkZGNDEzMEI0NkQz
MDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBQzg3MDJEMTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMzM2Nyw2ICszNDE2LDggQEAKIAkJCWZpbGVzID0gKAogCQkJCThE
QzJFRjUzMDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvUGxpc3Quc3RyaW5ncyBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJNTEyRjU4OEMxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdl
ci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJNTEyRTM1MzAxMzBCNTVBRjAwQUJE
MTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNl
cyAqLywKKwkJCQk1MTJFMzVGMTEzMEI2MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNzM4LDYgKzM3
ODksMTEgQEAKIAkJCQlCQ0E1NkE2NjEyRjlDOEY5MDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBNTZBNkExMkY5QzlBRDAwQzU2NkM3IC8qIFdL
R3JhcGhpY3NDb250ZXh0Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU5QzU1MUUxMzAwMDY0
MTAwMjVDMEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk1MTJFMzRFNDEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTJFMzUyNDEzMEI1NTA2MDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MTJFMzUyRTEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyRTM1NkExMzBCNTdGMDAwQUJEMTlBIC8q
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUxMkUzNUY4MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDU0
MjM1MTMwQzVGM0YwMDczRTFDMSAvKiBUZXh0SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QUM4NkZGMzEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUFDODcwMkUxMzBCNDlBMjAwMkMxMjU3IC8qIFdlYlBsdWdpblNp
dGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSAi
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgpA
QCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRm9udC5oPgpAQCAtNTIzLDggKzUyNCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI+KCkpIHsK
LSAgICAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyPigpKSB7
CisgICAgICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTUzOCw2ICs1MzksMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcj4oKSkg
eworICAgICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NJbmpl
Y3RlZEJ1bmRsZT4oKSkgewogICAgICAgICBpZiAoIW1faW5qZWN0ZWRCdW5kbGUpCiAgICAgICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Fw
cGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiTWVzc2Fn
ZUlELmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyJiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkKK3sKKyAgICBz
dGF0aWMgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXImIHNoYXJlZCA9ICpuZXcgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXI7CisgICAgcmV0dXJuIHNoYXJlZDsKK30KKworV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXI6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKCkKK3sKK30KKwordm9p
ZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgSGFzaFNldDxSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+IG9yaWdpbnM7CisKKyNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGNhY2hlU3RvcmFnZSgpLmdldE9y
aWdpbnNXaXRoQ2FjaGUob3JpZ2lucyk7CisjZW5kaWYKKworICAgIFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdGE+IGlkZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShv
cmlnaW5zLnNpemUoKSk7CisKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNl
Y3VyaXR5T3JpZ2luSGFzaD46Oml0ZXJhdG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7CisgICAgSGFz
aFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+OjppdGVyYXRv
ciBpID0gb3JpZ2lucy5iZWdpbigpOworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKSB7CisgICAg
ICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gKmk7CisgICAgICAgIAorICAgICAg
ICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YTsKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90
b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3Jp
Z2luLT5ob3N0KCk7CisgICAgICAgIG9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOwor
CisgICAgICAgIGlkZW50aWZpZXJzLnVuY2hlY2tlZEFwcGVuZChvcmlnaW5EYXRhKTsKKyAgICB9
CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OkRpZEdldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5zKGlkZW50aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBvcmlnaW5EYXRhKQoreworI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0
YS5wb3J0KTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGNh
Y2hlU3RvcmFnZSgpLmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4ob3JpZ2luLmdldCgpKTsKKyNlbmRp
ZgorfQorCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVz
KCkKK3sKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGNhY2hlU3Rv
cmFnZSgpLmVtcHR5KCk7CisgICAgY2FjaGVTdG9yYWdlKCkudmFjdXVtRGF0YWJhc2VGaWxlKCk7
CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJn
dW1lbnREZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlE
OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2VjdXJpdHlPcmlnaW5EYXRhOwor
CitjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIpOworCitwdWJsaWM6CisgICAgc3RhdGlj
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyJiBzaGFyZWQoKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIoKTsKKyAgICAKKyAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5z
KHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbik7CisgICAgdm9pZCBkZWxldGVBbGxFbnRy
aWVzKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNz
YWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMg
LT4gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgeworICAgIHZvaWQgR2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUVudHJpZXNG
b3JPcmlnaW4oV2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luSWRlbnRpZmllcikKKyAg
ICB2b2lkIERlbGV0ZUFsbEVudHJpZXMoKQorfQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZj
cHJvagkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMTgsNiArMTMxOCwyMiBAQAogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cV2ViUHJvY2Vzc1xXZWJQcm9jZXNzTWFpbi5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAg
ICAgICAgICAgIDxGaWx0ZXIKKyAgICAgICAgICAgICAgICBOYW1lPSJBcHBsaWNhdGlvbkNhY2hl
IgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICA8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZVxXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGVcV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZVxXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5tZXNzYWdlcy5pbiIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKyAgICAgICAgICAgIDwv
RmlsdGVyPgogCQkJPEZpbHRlcgogCQkJCU5hbWU9IkF1dGhlbnRpY2F0aW9uIgogCQkJCT4KQEAg
LTIyOTAsNiArMjMwNiwxOCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFZpc2l0
ZWRMaW5rUHJvdmlkZXIuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKKwkJCQk+CisJCQk8L0Zp
bGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkJhY2tGb3J3
YXJkTGlzdC5jcHAiCiAJCQkJPgpAQCAtMjU4MCw2ICsyNjA4LDE0IEBACiAJCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0FQSUNhc3QuaCIKIAkJCQkJCT4KIAkJCQkJPC9G
aWxlPgorICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxV
SVByb2Nlc3NcQVBJXENcV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAiCisJCQkJCQk+CisJ
CQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XEFQSVxDXFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgogCQkJCQk8RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAiCiAJCQkJCQk+CkBAIC0zMzcxLDYgKzM0MDcsMjIg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83348</attachid>
            <date>2011-02-22 11:25:27 -0800</date>
            <delta_ts>2011-02-22 11:40:15 -0800</delta_ts>
            <desc>WebCore-only patch (with WK1 change)</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6722</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzQxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBhcnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzg3NjIwNDI+IGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1MTQKKyAgICAgICAgQVBJ
IHRvIHZpZXcgYW5kIGRlbGV0ZSBBcHBsaWNhdGlvbiBDYWNoZSBkYXRhIGJ5IG9yaWdpbi4KKwor
ICAgICAgICBTdHViIHRoZXNlIG91dCBmb3Igbm93OgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6ZGVsZXRlQWxsRW50cmllcyk6
IE1vdmVkIGltcGxlbWVudGF0aW9uIGhlcmUgZnJvbSBXZWJLaXQvTWFjCisgICAgICAgICogbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg6CisKKyAgICAgICAgRXhwb3J0
IHRoZSBuZXcgc3ltYm9sczoKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKwogMjAxMS0wMi0y
MiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9u
IDc5MzM5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTE3NDUsMTAgKzE3NDUsMTMgQEAgX19aTks3V2ViQ29yZTROb2RlMTZ0cmF2ZXJzZU5leHRO
b2RlRVBLUwogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE0cXVvdGFGb3JP
cmlnaW5FUEtOU18xNFNlY3VyaXR5T3JpZ2luRVJ4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlMTRzZXRNYXhpbXVtU2l6ZUV4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlMTR1c2FnZUZvck9yaWdpbkVQS05TXzE0U2VjdXJpdHlPcmlnaW5FUngKK19f
Wk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxNmRlbGV0ZUFsbEVudHJpZXNFdgog
X19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE2c3RvcmVDb3B5T2ZDYWNoZUVS
S04zV1RGNlN0cmluZ0VQTlNfMjBBcHBsaWNhdGlvbkNhY2hlSG9zdEUKIF9fWk43V2ViQ29yZTIz
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxN3NldENhY2hlRGlyZWN0b3J5RVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE4dmFjdXVtRGF0YWJhc2VG
aWxlRXYKK19fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxOWdldE9yaWdpbnNX
aXRoQ2FjaGVFUk4zV1RGN0hhc2hTZXRJTlMxXzZSZWZQdHJJTlNfMTRTZWN1cml0eU9yaWdpbkVF
RU5TXzE4U2VjdXJpdHlPcmlnaW5IYXNoRU5TMV8xMEhhc2hUcmFpdHNJUzVfRUVFRQogX19aTjdX
ZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTIxc2V0RGVmYXVsdE9yaWdpblF1b3RhRXgK
K19fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UyMmRlbGV0ZUVudHJpZXNGb3JP
cmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlMjZzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbkVQS05TXzE0U2VjdXJpdHlPcmln
aW5FeAogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTM2cmVtYWluaW5nU2l6
ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlRVBLTlNfMTRTZWN1cml0eU9yaWdpbkVQTlNfMTZBcHBs
aWNhdGlvbkNhY2hlRVJ4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlNWVt
cHR5RXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAkocmV2aXNpb24gNzkzMzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5o
IgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIlNRTGl0ZVN0YXRlbWVudC5oIgogI2luY2x1ZGUgIlNRTGl0ZVRyYW5zYWN0aW9uLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTEyODcsNiArMTI4OCwyNCBAQCB2b2lkIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjaGVja0Zvck1hCiAgICAgICAgIG1faXNNYXhpbXVtU2l6
ZVJlYWNoZWQgPSB0cnVlOwogfQogCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpnZXRP
cmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlP
cmlnaW5IYXNoPiYpCit7CisgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS84NzYyMDQyPiBh
bmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE0IC0gSW1wbGVt
ZW50LgorICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKQoreworICAgIC8v
IEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vODc2MjA0Mj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxNCAtIEltcGxlbWVudC4KKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpkZWxldGVBbGxFbnRyaWVz
KCkKK3sKKyAgICBlbXB0eSgpOworICAgIHZhY3V1bURhdGFiYXNlRmlsZSgpOworfQorCiBBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKSAKICAgICA6IG1f
bWF4aW11bVNpemUoQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKSkKICAgICAsIG1f
aXNNYXhpbXVtU2l6ZVJlYWNoZWQoZmFsc2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAkocmV2aXNp
b24gNzkzMzkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA4LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksOCArMjksMTAgQEAK
ICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNsdWRlICJT
UUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05Miw2ICs5NCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBk
ZWxldGVDYWNoZUdyb3VwKGNvbnN0IFN0cmluZyYgbWFuaWZlc3RVUkwpOwogICAgIHZvaWQgdmFj
dXVtRGF0YWJhc2VGaWxlKCk7CiAKKyAgICB2b2lkIGdldE9yaWdpbnNXaXRoQ2FjaGUoSGFzaFNl
dDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+Jik7CisgICAgdm9p
ZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7CisgICAgdm9pZCBkZWxl
dGVBbGxFbnRyaWVzKCk7CisKICAgICBzdGF0aWMgaW50NjRfdCB1bmtub3duUXVvdGEoKSB7IHJl
dHVybiAtMTsgfQogICAgIHN0YXRpYyBpbnQ2NF90IG5vUXVvdGEoKSB7IHJldHVybiBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKTsgfQogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDc5MzQxKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBhcnQgb2YgPHJkYXI6Ly9wcm9ibGVtLzg3NjIwNDI+IGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1MTQKKyAgICAgICAgQVBJIHRvIHZp
ZXcgYW5kIGRlbGV0ZSBBcHBsaWNhdGlvbiBDYWNoZSBkYXRhIGJ5IG9yaWdpbi4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW06CisgICAgICAgICgrW1dl
YkFwcGxpY2F0aW9uQ2FjaGUgZGVsZXRlQWxsQXBwbGljYXRpb25DYWNoZXNdKTogTW92ZSB0aGlz
IGltcGxlbWVudGF0aW9uIGludG8gV2ViQ29yZSBpdHNlbGYuCisKIDIwMTEtMDItMTcgIFJ5b3N1
a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBU
YW11cmEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNh
dGlvbkNhY2hlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0JKHJldmlzaW9uIDc5MzI3KQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExIEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNTUsOCArNTUsNyBAQCArICh2b2lkKXNldERlZmF1bHRPcmlnaW5RdW90YToobG9uZyBs
b25nCiAKICsgKHZvaWQpZGVsZXRlQWxsQXBwbGljYXRpb25DYWNoZXMKIHsKLSAgICBjYWNoZVN0
b3JhZ2UoKS5lbXB0eSgpOwotICAgIGNhY2hlU3RvcmFnZSgpLnZhY3V1bURhdGFiYXNlRmlsZSgp
OworICAgIGNhY2hlU3RvcmFnZSgpLmRlbGV0ZUFsbEVudHJpZXMoKTsKIH0KIAogQGVuZAo=
</data>
<flag name="review"
          id="75145"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="75146"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83354</attachid>
            <date>2011-02-22 11:40:15 -0800</date>
            <delta_ts>2011-02-22 12:03:09 -0800</delta_ts>
            <desc>Patch v3 (no more pending WebCore changes, addresses all of Brian&apos;s v1 comments)</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>72549</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzM2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYyMDQyPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE0CisgICAgICAgIEFQSSB0byB2aWV3
IGFuZCBkZWxldGUgQXBwbGljYXRpb24gQ2FjaGUgZGF0YSBieSBvcmlnaW4uCisKKyAgICAgICAg
SSBjb3VsZG4ndCBoZWxwIG15c2VsZiAtIEkgYWxzbyByZS1hbHBoYWJhdGl6ZWQgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIgaW4gbWFueSBwbGFjZXMgd2hlcmUKKyAgICAgICAgaXQncyBzb3J0aW5n
IHdhcyB3cm9uZyBkdWUgdG8gYSBsYXN0IG1pbnV0ZSBuYW1lIGNoYW5nZS4KKworICAgICAgICBQ
cm9qZWN0IGZpbGUgY2hhbmdlczoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogV2ViS2l0Mi5wcm86CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgIFdLMiBidWlsZC1z
eXN0ZW0gYW5kIEFQSSBwYXBlcndvcms6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorCisgICAgICAgIEFkZCBhIGhlbHBlciB0
byBwZXJmb3JtIGFuIEFycmF5Q2FsbGJhY2sgd2l0aCBhIFZlY3RvciBvZiBTZWN1cml0eU9yaWdp
bkRhdGFzOgorICAgICAgICAqIFNoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9y
KToKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRHZXRDYWNoZU9yaWdpbnMpOiBVc2Ug
cGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvciBoZXJlLgorCisg
ICAgICAgIEFkZCBhbiBBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IHRvIHRoZSBjb250ZXh0
IGFuZCBpbnZhbGlkYXRlIGl0IGF0IHRoZSBhcHByb3ByaWF0ZSB0aW1lczoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6Oldl
YkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnByb2Nlc3NEaWRDbG9zZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKTogUm91dGUgbWVzc2FnZXMgdG8g
dGhlIHJpZ2h0IHByb3h5LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpyZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KToK
KworICAgICAgICBBZGQgQVBJIHRvIGdldCB0aGUgQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgZm9y
IGEgY29udGV4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdLQ29udGV4dEdldEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKToKKyAgICAgICAgKFdL
Q29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0Lmg6CisKKyAgICAgICAgUm91dGUgbWVzc2FnZXMgdG8gdGhlIHJpZ2h0IHBs
YWNlOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpk
aWRSZWNlaXZlTWVzc2FnZSk6CisKKyAgICAgICAgQWRkIHRoZSBBUEkgb2JqZWN0LCB3aGljaCB3
cmFwcyB0byBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgIChX
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAg
IChXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDogQWRkZWQuCisKKyAg
ICAgICAgVGhlIFVJUHJvY2VzcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbWFuYWdlciB0byBzZW5k
IG1lc3NhZ2VzIHRvIHRoZSBXZWJQcm9jZXNzIGFuZCBwaXBlIGEgY2FsbGJhY2sgYmFjayB1cCB0
byB0aGUgY2xpZW50OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHk6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Ojp+V2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eTo6ZGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMpOiBVc2UgcGVyZm9ybUFQSUNhbGxi
YWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvciBoZXJlLgorICAgICAgICAoV2ViS2l0OjpX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRl
QWxsRW50cmllcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKworICAgICAgICBU
aGUgV2ViUHJvY2VzcyBpbXBsZW1lbnRhdGlvbiB0byByZXNwb25zZSB0byBVSVByb2Nlc3MgbWVz
c2FnZXMgYW5kIGFjdHVhbGx5IGRvIHRoZSBkaXJ0eS13b3JrIGluIFdlYkNvcmU6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OnNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUFs
bEVudHJpZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVk
LgorCiAyMDExLTAyLTIyICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2
ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogVlBBVEggPSBc
CiAgICAgJChXZWJLaXQyKS9QbHVnaW5Qcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9Q
bHVnaW5zIFwKKyAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVn
aW5zIFwKQEAgLTQ1LDYgKzQ2LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2lu
UHJvY2VzcyBcCiAgICAgUGx1Z2luUHJvY2Vzc1Byb3h5IFwKICAgICBQbHVnaW5Qcm94eSBcCisg
ICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgXAorICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHkgXAogICAgIFdlYkNvbnRleHQgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBc
CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXApJbmRleDogU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0J
KHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAgbGliV2ViS2l0Ml9sYV9IRUFERVJTID0gXAogCSQo
V2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuaCBcCiAJJChXZWJLaXQyKS9VSVBy
b2Nlc3MvQVBJL0MvV2ViS2l0Mi5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaCBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFj
a0ZvcndhcmRMaXN0LmggXApAQCAtMjgzLDYgKzI4NCw4IEBAIGxpYldlYktpdDJfbGFfU09VUkNF
UyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Mi5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lz
aW9uTGlzdGVuZXIuY3BwIFwKQEAgLTM4NSw2ICszODgsOCBAQCBsaWJXZWJLaXQyX2xhX1NPVVJD
RVMgPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFUaWxlLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCBcCisJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCisJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHku
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXApAQCAtNDQ5LDYgKzQ1NCw4IEBA
IGxpYldlYktpdDJfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKKwlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNh
Y2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2Fkcy9jdXJsL0Rvd25sb2Fk
Q3VybC5jcHAgXApAQCAtNjUxLDYgKzY1OCw3IEBAIGxpYldlYktpdDJfbGFfQ1BQRkxBR1MgPSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMgXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL2d0ayBcCiAJLUkkKHNyY2Rp
cikvU291cmNlL1dlYktpdDIvV2ViUHJvY2VzcyBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Rvd25sb2FkcyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCkBAIC04MDEsNiArODA5LDEwIEBAIHdlYmtpdDJfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsdWdpblByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9QbHVnaW5Qcm94eU1lc3Nh
Z2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVy
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb250ZXh0TWVzc2FnZXMuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIFwKQEAgLTg0MywxMSArODU1LDEzIEBAIHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChX
ZWJLaXQyKS9QbHVnaW5Qcm9jZXNzIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKIAkk
KFdlYktpdDIpL1VJUHJvY2VzcyBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3MvQXBwbGljYXRpb25D
YWNoZSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvRG93bmxvYWRzIFwKIAkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9HZW9sb2NhdGlvbiBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lucyBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAJJChXZWJL
aXQyKS9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9QbHVnaW5zIFwKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIucHJvCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJv
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw4IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURF
UlMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNz
TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Q
cm9jZXNzUHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNf
RElSL1BsdWdpblByb3h5TWVzc2FnZXMuaCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggXAotICAgICQkV0VCS0lU
Ml9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKICAgICAk
JFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKICAg
ICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3Nh
Z2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKQEAgLTQ1LDcgKzQ1LDkgQEAgV0VCS0lUMl9HRU5FUkFU
RURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlBh
Z2VQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1dlYlByb2Nlc3NNZXNzYWdlcy5oIFwKLSAgICAkJFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgKKyAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAorICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNz
YWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAKIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMg
PSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9BdXRoZW50aWNhdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTU0LDggKzU2LDggQEAgV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1Bs
dWdpblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ29udGV4
dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgXApAQCAtNjcsNyArNjksOSBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0g
XAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUGFnZVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgXAotICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKIAogSEVBREVSUyArPSBcCiAgICAgUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudERlY29kZXIuaCBcCkBAIC0xNTcsNyArMTYxLDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgVUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAogICAgIFVJUHJvY2Vzcy9UaWxlZERyYXdpbmdB
cmVhUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCBcCi0gICAg
VUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9jZXNz
L1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNv
bnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5o
IFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oIFwKQEAgLTE3OCwxOCArMTgy
LDIwIEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJOYXZp
Z2F0aW9uRGF0YS5oIFwKLSAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50Lmgg
XAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggXAorICAg
IFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dl
YlBhZ2VHcm91cC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJQb2xpY3lDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgg
XAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggXAorICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuaCBcCiAgICAgVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVudVBy
b3h5UXQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuaCBcCisgICAg
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgg
XAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgg
XAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmggXAogICAgIFdlYlByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIFwKQEAgLTMyOCw5ICszMzQsOSBAQCBTT1VSQ0VT
ICs9IFwKICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExp
bmtQcm92aWRlci5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBcCi0gICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwIFwK
ICAgICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIFwKQEAgLTM0OSwxNCAr
MzU1LDE1IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5j
cHAgXAogICAgIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
V2ViTmF2aWdhdGlvbkRhdGEuY3BwIFwKLSAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJv
eHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcCBcCiAgICAgVUlQcm9j
ZXNzL1dlYlByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NNYW5hZ2Vy
LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vz
cy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlJl
c291cmNlTG9hZENsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9xdC9DaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFQcm94eVF0LmNwcCBcCkBA
IC0zNjksNiArMzc2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBhZ2VQ
cm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuY3BwIFwK
ICAgICBVSVByb2Nlc3MvcXQvV2ViUHJlZmVyZW5jZXNRdC5jcHAgXAorICAgIFdlYlByb2Nlc3Mv
QXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgXAogICAgIFdl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBcCiAgICAg
V2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZUlELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlSUQuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxOCAr
MzksMTkgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVh
LAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhTGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc0lu
amVjdGVkQnVuZGxlLAotICAgIE1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLAor
ICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLAogICAgIE1lc3NhZ2VD
bGFzc1dlYkRhdGFiYXNlTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3IsCiAgICAgTWVzc2FnZUNs
YXNzV2ViUGFnZSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzLAorICAgIE1lc3NhZ2VDbGFz
c1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLAogCiAgICAgLy8gTWVzc2FnZXMgc2VudCBieSB0aGUg
d2ViIHByb2Nlc3MgdG8gdGhlIFVJIHByb2Nlc3MuCiAgICAgTWVzc2FnZUNsYXNzRG93bmxvYWRQ
cm94eSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5LAogICAgIE1lc3NhZ2VDbGFz
c0RyYXdpbmdBcmVhUHJveHlMZWdhY3ksCi0gICAgTWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2Vi
Q29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwK
QEAgLTU5LDYgKzYwLDcgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dl
YlBhZ2VQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJQcm9jZXNzUHJveHksCiAgICAgTWVzc2Fn
ZUNsYXNzV2ViUHJvY2Vzc1Byb3h5TGVnYWN5LAorICAgIE1lc3NhZ2VDbGFzc1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHksCiAKICAgICAvLyBNZXNzYWdlcyBzZW50IGJ5IHRoZSBVSSBwcm9j
ZXNzIHRvIHRoZSBwbHVnLWluIHByb2Nlc3MuCiAgICAgTWVzc2FnZUNsYXNzUGx1Z2luUHJvY2Vz
cywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHJldmlzaW9uIDc5MzMzKQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2
ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZVVJbnQ2NCwKICAgICAgICAgCiAgICAgICAg
IC8vIFVJUHJvY2VzcyB0eXBlcworICAgICAgICBUeXBlQXBwbGljYXRpb25DYWNoZU1hbmFnZXIs
CiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExpc3QsCiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExp
c3RJdGVtLAogICAgICAgICBUeXBlQ2FjaGVNYW5hZ2VyLApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAJKHJldmlzaW9uIDc5MzMzKQorKysgU291
cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDcgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW5EYXRhLmgiCiAKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJJbW11
dGFibGVBcnJheS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1
ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBA
IC00Miw0ICs0NSwyNiBAQCBib29sIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZGVjb2RlKENvcmVJUEM6
CiAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoc2VjdXJpdHlPcmlnaW5E
YXRhLnByb3RvY29sLCBzZWN1cml0eU9yaWdpbkRhdGEuaG9zdCwgc2VjdXJpdHlPcmlnaW5EYXRh
LnBvcnQpKTsKIH0KIAordm9pZCBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRoU2VjdXJpdHlPcmlnaW5E
YXRhVmVjdG9yKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywg
QXJyYXlDYWxsYmFjayogY2FsbGJhY2spCit7CisgICAgaWYgKCFjYWxsYmFjaykgeworICAgICAg
ICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAKKyAgICBzaXplX3Qgb3JpZ2luRGF0YUNvdW50ID0gb3JpZ2luRGF0YXMuc2l6ZSgpOwor
ICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHNlY3VyaXR5T3JpZ2luczsKKyAgICBzZWN1
cml0eU9yaWdpbnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbkRhdGFDb3VudCk7CisKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG9yaWdpbkRhdGFDb3VudDsgKytpKSB7CisgICAgICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhID0gb3JpZ2luRGF0YXNbaV07CisgICAgICAgIFJlZlB0
cjxBUElPYmplY3Q+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luRGF0
YS5wcm90b2NvbCwgb3JpZ2luRGF0YS5ob3N0LCBvcmlnaW5EYXRhLnBvcnQpOworICAgICAgICBp
ZiAoIW9yaWdpbikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzZWN1cml0eU9yaWdp
bnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbik7CisgICAgfQorCisgICAgY2FsbGJhY2stPnBlcmZv
cm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShJbW11dGFibGVBcnJheTo6YWRvcHQoc2VjdXJpdHlP
cmlnaW5zKS5nZXQoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuaAkocmV2aXNpb24gNzkzMzMpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgU2VjdXJpdHlPcmlnaW5EYXRhX2gKICNkZWZp
bmUgU2VjdXJpdHlPcmlnaW5EYXRhX2gKIAorI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CkBAIC0zNSw2ICszNyw4IEBAIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJy
YXlSZWY+IEFycmF5Q2FsbGJhY2s7CisKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGEgewogICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OwogICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTZWN1cml0eU9yaWdpbkRh
dGEmKTsKQEAgLTQ3LDYgKzUxLDggQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YSB7CiAgICAg
aW50IHBvcnQ7CiB9OwogCit2b2lkIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdp
bkRhdGFWZWN0b3IoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mLCBBcnJheUNhbGxi
YWNrKik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gU2VjdXJpdHlPcmln
aW5EYXRhX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHJldmlzaW9u
IDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Nyw2ICs2Nyw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVXNl
ckNvbnRlbnQKIAogLyogV2ViS2l0MiBtYWluIEFQSSB0eXBlcyAqLwogCit0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKiBXS0FwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSogV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKiBXS0F1dGhlbnRp
Y2F0aW9uRGVjaXNpb25MaXN0ZW5lclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
QmFja0ZvcndhcmRMaXN0KiBXS0JhY2tGb3J3YXJkTGlzdFJlZjsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAiV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNp
bmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFz
c1JlZlB0cjxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5PiBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoY29udGV4dCkp
OworfQorCitXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQo
Y29udGV4dCkKK3sKK30KKworV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6fldlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIGludmFsaWRhdGVDYWxsYmFj
a01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2
b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmdldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgUmVm
UHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7CisgICAgaWYgKCFtX3dl
YkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKSB7CisgICAgICAgIGNhbGxiYWNrLT5pbnZhbGlk
YXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQo
Y2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nl
c3MoKS0+c2VuZChNZXNzYWdlczo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OkdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKGNhbGxiYWNrSUQpLCAwKTsKK30KKyAgICAKK3ZvaWQgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMo
Y29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbkRhdGFzLCB1aW50NjRfdCBj
YWxsYmFja0lEKQoreworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJy
YXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBwZXJmb3JtQVBJQ2FsbGJhY2tXaXRo
U2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKG9yaWdpbkRhdGFzLCBjYWxsYmFjay5nZXQoKSk7Cit9
CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlRW50cmllc0Zv
ck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGlmICghbV93ZWJDb250
ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGE7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRh
LnByb3RvY29sID0gb3JpZ2luLT5wcm90b2NvbCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5o
b3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAgc2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQgPSBvcmln
aW4tPnBvcnQoKTsKKworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6RGVsZXRlRW50cmllc0Zvck9yaWdpbihzZWN1
cml0eU9yaWdpbkRhdGEpLCAwKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5OjpkZWxldGVBbGxFbnRyaWVzKCkKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFz
VmFsaWRQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nl
c3MoKS0+c2VuZChNZXNzYWdlczo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OkRlbGV0ZUFs
bEVudHJpZXMoKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eV9oCisjZGVmaW5lIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSAi
SW1tdXRhYmxlQXJyYXkuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIENv
cmVJUEMgeworICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9u
OworICAgIGNsYXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CitjbGFzcyBXZWJDb250ZXh0OworY2xhc3MgV2ViU2VjdXJp
dHlPcmlnaW47CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2Fs
bGJhY2s7CisKK2NsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkgOiBwdWJsaWMg
QVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlw
ZUFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0
dWFsIH5XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGludmFs
aWRhdGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV93ZWJDb250ZXh0ID0gMDsgfQor
ICAgIAorICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJh
eUNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdlYlNlY3VyaXR5
T3JpZ2luKik7CisgICAgdm9pZCBkZWxldGVBbGxFbnRyaWVzKCk7CisKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICB2b2lkIGRpZEdldEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCk7CisgICAgCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3Nh
Z2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKKyAgICBXZWJDb250ZXh0KiBtX3dl
YkNvbnRleHQ7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+ID4g
bV9hcnJheUNhbGxiYWNrczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkg
eworICAgIERpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKFZlY3RvcjxXZWJLaXQ6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4gb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwor
fQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24g
NzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVz
c2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KQEAg
LTk3LDEwICs5OCwxMSBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nlc3NNb2RlbCBwcm9j
CiAgICAgLCBtX2NsZWFyQXBwbGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3MoZmFsc2UpCiAg
ICAgLCBtX21lbW9yeVNhbXBsZXJFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVy
SW50ZXJ2YWwoMTQwMC4wKQotICAgICwgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fYXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eShXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpjcmVh
dGUodGhpcykpCiAgICAgLCBtX2RhdGFiYXNlTWFuYWdlclByb3h5KFdlYkRhdGFiYXNlTWFuYWdl
clByb3h5OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdl
Ykdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3BsdWdpblNp
dGVEYXRhTWFuYWdlcihXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI6OmNyZWF0ZSh0aGlzKSkKKyAg
ICAsIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eShXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5OjpjcmVhdGUodGhpcykpCiAjaWYgUExBVEZPUk0oV0lOKQogICAgICwgbV9zaG91bGRQYWlu
dE5hdGl2ZUNvbnRyb2xzKHRydWUpCiAjZW5kaWYKQEAgLTExOCw4ICsxMjAsOCBAQCBXZWJDb250
ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBXZWJQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkuY29u
dGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsKIAotICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS0+aW52YWxpZGF0ZSgpOwotICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+Y2xlYXJD
b250ZXh0KCk7CisgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRl
KCk7CisgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsK
IAogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX2dl
b2xvY2F0aW9uTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKQEAgLTEzMCw2ICsxMzIsOSBA
QCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAgICAgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIt
PmludmFsaWRhdGUoKTsKICAgICBtX3BsdWdpblNpdGVEYXRhTWFuYWdlci0+Y2xlYXJDb250ZXh0
KCk7CiAKKyAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAg
ICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOworCiAjaWZuZGVm
IE5ERUJVRwogICAgIHdlYkNvbnRleHRDb3VudGVyLmRlY3JlbWVudCgpOwogI2VuZGlmCkBAIC0y
NTUsNiArMjYwLDcgQEAgdm9pZCBXZWJDb250ZXh0Ojpwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvYwog
CiAgICAgbV9kb3dubG9hZHMuY2xlYXIoKTsKIAorICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHktPmludmFs
aWRhdGUoKTsKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAg
ICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CkBAIC01MjIsOCAr
NTI4LDggQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7Ci0gICAgICAgIG1fcmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICBpZiAobWVz
c2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHk+KCkpIHsKKyAgICAgICAgbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LT5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTUzNyw2ICs1NDMsMTEgQEAgdm9pZCBXZWJDb250ZXh0Ojpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYg
KG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5PigpKSB7CisgICAgICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVj
ZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHN3aXRjaCAo
bWVzc2FnZUlELmdldDxXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6S2luZD4oKSkgewogICAgICAg
ICBjYXNlIFdlYkNvbnRleHRMZWdhY3lNZXNzYWdlOjpQb3N0TWVzc2FnZTogewogICAgICAgICAg
ICAgU3RyaW5nIG1lc3NhZ2VOYW1lOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDExICs0NSwxMiBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIERvd25sb2FkUHJveHk7Ci1jbGFzcyBXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5OworY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNz
IFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Owogc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM7CiAKIGNsYXNzIFdlYkNvbnRleHQgOiBwdWJsaWMgQVBJT2JqZWN0IHsKQEAgLTEzMCwx
MCArMTMxLDExIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZywgQ2FzZUZv
bGRpbmdIYXNoPiBwZGZBbmRQb3N0U2NyaXB0TUlNRVR5cGVzKCk7CiAKLSAgICBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5KiByZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmdldCgpOyB9CisgICAgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eSogYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5nZXQoKTsgfQogICAg
IFdlYkRhdGFiYXNlTWFuYWdlclByb3h5KiBkYXRhYmFzZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBt
X2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyKiBwbHVnaW5TaXRlRGF0YU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpblNp
dGVEYXRhTWFuYWdlci5nZXQoKTsgfQorICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkq
IHJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KIAogICAgIHN0cnVjdCBTdGF0aXN0aWNzIHsKICAgICAg
ICAgdW5zaWduZWQgd2tWaWV3Q291bnQ7CkBAIC0yMTIsMTAgKzIxNCwxMSBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9tZW1vcnlTYW1wbGVyRW5hYmxlZDsKICAgICBkb3VibGUgbV9tZW1vcnlTYW1w
bGVySW50ZXJ2YWw7CiAKLSAgICBSZWZQdHI8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4g
bV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OworICAgIFJlZlB0cjxXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5PiBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiAgICAgUmVm
UHRyPFdlYkRhdGFiYXNlTWFuYWdlclByb3h5PiBtX2RhdGFiYXNlTWFuYWdlclByb3h5OwogICAg
IFJlZlB0cjxXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eTsKICAgICBSZWZQdHI8V2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyPiBtX3BsdWdpblNpdGVE
YXRhTWFuYWdlcjsKKyAgICBSZWZQdHI8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4gbV9y
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIGJvb2wg
bV9zaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
MCw5ICsyMzAsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKAog
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKQog
ICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExl
Z2FjeT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93
bmxvYWRQcm94eT4oKQotICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNs
YXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKQorICAgICAgICB8fCBtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4o
KQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJh
c2VNYW5hZ2VyUHJveHk+KCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4o
KQorICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDc5MzMzKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MSwyNCArNzEsNyBAQCB2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHk6OmdldENhCiB2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdl
dENhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywg
dWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJh
Y2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Ci0gICAgaWYgKCFjYWxsYmFj
aykgewotICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIHNpemVfdCBvcmlnaW5JZGVudGlmaWVyc0NvdW50ID0gb3JpZ2lu
cy5zaXplKCk7Ci0gICAgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4gc2VjdXJpdHlPcmlnaW5z
OwotICAgIHNlY3VyaXR5T3JpZ2lucy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2luSWRlbnRpZmllcnND
b3VudCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9yaWdpbklkZW50aWZpZXJzQ291
bnQ7ICsraSkgewotICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSA9IG9yaWdp
bnNbaV07Ci0gICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUob3JpZ2luRGF0YS5wcm90b2NvbCwgb3JpZ2luRGF0YS5ob3N0LCBvcmlnaW5E
YXRhLnBvcnQpOwotICAgICAgICBpZiAoIW9yaWdpbikKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICBzZWN1cml0eU9yaWdpbnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbik7Ci0gICAgfQot
Ci0gICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShJbW11dGFibGVB
cnJheTo6YWRvcHQoc2VjdXJpdHlPcmlnaW5zKS5nZXQoKSk7CisgICAgcGVyZm9ybUFQSUNhbGxi
YWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvcihvcmlnaW5zLCBjYWxsYmFjay5nZXQoKSk7
CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Y2xlYXJDYWNoZUZvck9y
aWdpbihXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYg
KzQ1LDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKIGNsYXNzIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CkBA
IC02Niw2ICs2Nyw3IEBAIGNsYXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKIGNsYXNzIFdl
YlByZWZlcmVuY2VzOwogY2xhc3MgV2ViUHJvdGVjdGlvblNwYWNlOwogCitXS19BRERfQVBJX01B
UFBJTkcoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiwgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UmVmLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVmLCBBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlw
ZUlEIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0
b0FQSShXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpBUElUeXBlKTsKK30KKwordm9p
ZCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiwgdm9p
ZCogY29udGV4dCwgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5zRnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKEFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUmVmKS0+Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoQXJyYXlDYWxsYmFjazo6Y3Jl
YXRlKGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYp
Cit7CisgICAgdG9JbXBsKEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmKS0+ZGVsZXRlRW50cmll
c0Zvck9yaWdpbih0b0ltcGwob3JpZ2luUmVmKSk7Cit9CisKK3ZvaWQgV0tBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZikKK3sKKyAgICB0b0ltcGwoQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxFbnRyaWVzKCk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyX2gKKyNkZWZpbmUg
V0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKCk7CisKK3R5cGVk
ZWYgdm9pZCAoKldLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBPUlQg
dm9pZCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMo
V0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBhcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgdm9p
ZCogY29udGV4dCwgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5zRnVuY3Rpb24gZnVuY3Rpb24pOworCitXS19FWFBPUlQgdm9pZCBXS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbihXS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUmVmIGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdp
bik7CitXS19FWFBPUlQgdm9pZCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsRW50
cmllcyhXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHAJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw5ICsxNTgs
OSBAQCB2b2lkIFdLQ29udGV4dENsZWFyQXBwbGljYXRpb25DYWNoZShXS0NvCiAgICAgdG9JbXBs
KGNvbnRleHRSZWYpLT5jbGVhckFwcGxpY2F0aW9uQ2FjaGUoKTsKIH0KIAotV0tSZXNvdXJjZUNh
Y2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dFJlZikKK1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7Ci0gICAg
cmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+cmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eSgpKTsKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5hcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5KCkpOwogfQogCiBXS0RhdGFiYXNlTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCkBAIC0xNzgsNiArMTc4
LDExIEBAIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFAKICAgICByZXR1
cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5wbHVnaW5TaXRlRGF0YU1hbmFnZXIoKSk7CiB9
CiAKK1dLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1h
bmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1w
bChjb250ZXh0UmVmKS0+cmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSgpKTsKK30KKwogdm9pZCBX
S0NvbnRleHRTdGFydE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLRG91
YmxlUmVmIGludGVydmFsKQogewogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c3RhcnRNZW1vcnlT
YW1wbGVyKHRvSW1wbChpbnRlcnZhbCktPnZhbHVlKCkpOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEy
MywxMCArMTIzLDExIEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENsZWFyQXBwbGljYXRpb24K
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYg
Y29udGV4dCwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0
U3RvcE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCi1XS19FWFBPUlQgV0tS
ZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihX
S0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clJlZiBXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29u
dGV4dCk7CiBXS19FWFBPUlQgV0tEYXRhYmFzZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0RGF0YWJh
c2VNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0dlb2xvY2F0aW9u
TWFuYWdlclJlZiBXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CitXS19FWFBPUlQg
V0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdl
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI2Niw2ICsyNjYsMTggQEAKIAkJNTEyOTM1
RDgxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1
IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovOyB9OwogCQk1MTI5MzVFMzEyODhEOTc4MDBBNEI2
OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTExMjg4RDk3ODAwQTRC
Njk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLzsgfTsKIAkJ
NTEyOTM1RTQxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTI5MzVFMjEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVD
bGllbnQuaCAqLzsgfTsKKwkJNTEyRTM0RTQxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3QTMzQjMxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwICovOyB9OworCQk1MTJFMzRFNTEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3QTMzQjQxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJ
CTUxMkUzNTI0MTMwQjU1MDYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MkUzNTIwMTMwQjU1MDEwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmNwcCAqLzsgfTsKKwkJNTEyRTM1MjUxMzBCNTUwNjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMkUzNTIxMTMwQjU1MDEwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LmggKi87IH07CisJCTUxMkUzNTJFMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzUyQjEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuY3BwICovOyB9OworCQk1MTJFMzUyRjEzMEI1NUFGMDBBQkQxOUEgLyog
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkUzNTJDMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oICovOyB9OworCQk1MTJFMzUzMDEzMEI1NUFGMDBBQkQxOUEgLyog
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkUzNTJEMTMwQjU1QUYwMEFCRDE5QSAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiAqLzsgfTsKKwkJNTEyRTM1
NkExMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMkUzNTY4MTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMkUzNTZCMTMwQjU3RjAwMEFCRDE5QSAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzU2OTEzMEI1N0YwMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk1MTJFMzVGMTEzMEI2
MzhDMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1
RjAxMzBCNjM4QzAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gKi87IH07CisJCTUxMkUzNUY4MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5QSAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKKwkJNTEyRTM1RjkxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTEyRTM1RjcxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OwogCQk1MTJGNTg4QTEyQTg4MzY2MDA2Mjk1MzAg
LyogQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkY1ODg3MTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwICovOyB9OwogCQk1MTJGNTg4QjEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTJGNTg4ODEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5h
Z2VyLmggKi87IH07CiAJCTUxMkY1ODhDMTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlv
bk1hbmFnZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMkY1ODg5MTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1h
bmFnZXIubWVzc2FnZXMuaW4gKi87IH07CkBAIC0xMDYwLDYgKzEwNzIsMTYgQEAKIAkJNTEyOTM1
RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxl
UGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVk
QnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNTIwMTMwQjU1MDEwMEFCRDE5QSAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTJFMzUyMTEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxMkUzNTJCMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5jcHA7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1
MkMxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmg7
IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNTJEMTMwQjU1QUYwMEFCRDE5QSAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9IEFwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNTY4MTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNTY5MTMwQjU3
RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1RjAxMzBCNjM4QzAw
QUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1RjYxMzBCNjQyRTAw
QUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxMkUzNUY3MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMkY1ODg3MTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4
ODgxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbk1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyRjU4ODkxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRp
Y2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdXRoZW50
aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDg1LDYgKzExMDcsOCBAQAogCQk1MTUzNTY5QjEyOTFCMUQyMDAwNzQ5REMgLyogV2ViUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTU3OEI4MjEyMDlFQ0VGMDBBMzdDNEEgLyogV2ViRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
NkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTdBMzNCMzEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0FwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QTMzQjQxMzBCMzA4
QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1OTEyN0NCODlEMDBGNzYyMzIgLyogV2ViQ29udGV4
dE1lbnUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4
dE1lbnUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg3MUI1QTEyN0NCODlE
MDBGNzYyMzIgLyogV2ViQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4
QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3OCw2ICsyMTAyLDE2IEBACiAJCQluYW1lID0g
Y2Y7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTJFMzUyQTEzMEI1NTk5
MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJNTEyRTM1MkIxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLywKKwkJCQk1MTJFMzUyQzEzMEI1NUFGMDBBQkQxOUEg
LyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLywKKwkJCQk1MTJFMzUyRDEzMEI1NUFG
MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJ
CQkpOworCQkJbmFtZSA9IEFwcGxpY2F0aW9uQ2FjaGU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb24g
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjExNiw2ICsy
MTUwLDcgQEAKIAkJQkMwMzJENUMxMEY0MzZENTAwNThDMTVBIC8qIFdlYlByb2Nlc3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUxMkUzNTJBMTMwQjU1
OTkwMEFCRDE5QSAvKiBBcHBsaWNhdGlvbkNhY2hlICovLAogCQkJCTUxMkY1ODg2MTJBODgzNDcw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLywKIAkJCQkxQTYxNjE0QzEyNzc5OEI1MDAzQUNE
ODYgLyogRG93bmxvYWRzICovLAogCQkJCUJDMEU1RkNCMTJENjk2REQwMDEyQTcyQSAvKiBHZW9s
b2NhdGlvbiAqLywKQEAgLTIyNTAsNiArMjI4NSw5IEBACiAJCQkJMUFBNDE3QzkxMkMwMENDQTAw
MkJFNjdCIC8qIFRleHRDaGVja2VyLmggKi8sCiAJCQkJMUEwRjI5RTExMjBCNDQ0MjAwNTNEMUI5
IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwICovLAogCQkJCTFBMEYyOUUyMTIwQjQ0NDIwMDUz
RDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmggKi8sCisJCQkJNTEyRTM1MjAxMzBCNTUwMTAw
QUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTUx
MkUzNTIxMTMwQjU1MDEwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmggKi8sCisJCQkJNTEyRTM1RjAxMzBCNjM4QzAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkM3MkJBMUIxMUU2NDkwNzAwMUVC
NEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdC5jcHAgKi8sCiAJCQkJQkM3MkJBMUMxMUU2NDkwNzAw
MUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCUJDQjlFMjQyMTEyMERBQ0Ew
MEExMzdFMCAvKiBXZWJDb250ZXh0LmNwcCAqLywKQEAgLTIzNDIsNiArMjM4MCw4IEBACiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQlCQ0I2MzQ3NzExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Mi5oICov
LAogCQkJCUJDRERCMzJDMTI0RUMyRTEwMDQ4RDEzQyAvKiBXS0FQSUNhc3QuaCAqLywKKwkJCQk1
MTdBMzNCMzEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAg
Ki8sCisJCQkJNTE3QTMzQjQxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaCAqLywKIAkJCQk1MTJGNThFRDEyQTg4QTU0MDA2Mjk1MzAgLyogV0tBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZS5jcHAgKi8sCiAJCQkJNTEyRjU4RUUxMkE4OEE1NDAwNjI5NTMwIC8qIFdL
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLywKIAkJCQk1MTJGNThFRjEyQTg4QTU0MDA2Mjk1
MzAgLyogV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwICovLApAQCAtMjgzNyw2
ICsyODc3LDEwIEBACiAJCQkJMUEwNDNCNUMxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nl
c3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZBNkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBs
dWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQThFRkE2RjEyNTJCODQxMDBG
NzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICovLAorCQkJCTUxMkUzNTY4MTMwQjU3RjAw
MEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCisJCQkJNTEyRTM1NjkxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk1MTJFMzVGNjEzMEI2NDJFMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJ
NTEyRTM1RjcxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oICovLAogCQkJCUJDRUU3RDBCMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250
ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlCQ0VFN0QwQzEyODQ2RjY5MDA5ODI3REEg
LyogV2ViQ29udGV4dE1lc3NhZ2VzLmggKi8sCiAJCQkJRjYyQTc2QjIxMkIxQjI1RjAwMDVGMUI2
IC8qIFdlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0zMjUyLDYg
KzMyOTYsMTEgQEAKIAkJCQlCQ0E1NkExQzEyRjkwMjhFMDBDNTY2QzcgLyogV2ViR3JhcGhpY3ND
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NkE2NTEyRjlDOEY5MDBDNTY2QzcgLyog
V0tHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTU2QTY5MTJGOUM5QUQw
MEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJF
MzRFNTEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTEyRTM1MjUxMzBCNTUwNjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkUzNTJGMTMwQjU1QUYw
MEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTEyRTM1NkIxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkUzNUY5MTMwQjY0MkUwMEFCRDE5QSAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNDU0MjM0MTMwQzVGM0YwMDczRTFDMSAvKiBUZXh0SW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUFDODZGRjQxMzBCNDZEMzAwMkMxMjU3IC8qIFdLUGx1Z2luU2l0ZURhdGFNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUM4NzAyRDEzMEI0OUEyMDAyQzEyNTcgLyogV2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMzNjcsNiArMzQxNiw4
IEBACiAJCQlmaWxlcyA9ICgKIAkJCQk4REMyRUY1MzA0ODZBNjk0MDA5OEIyMTYgLyogSW5mb1Bs
aXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTUxMkY1ODhDMTJBODgzNjYwMDYyOTUz
MCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovLAor
CQkJCTUxMkUzNTMwMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5tZXNzYWdlcy5pbiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJNTEyRTM1RjExMzBCNjM4QzAwQUJE
MTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gUmVz
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMzczOCw2ICszNzg5LDExIEBACiAJCQkJQkNBNTZBNjYxMkY5QzhGOTAw
QzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTU2
QTZBMTJGOUM5QUQwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dENHLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTY1OUM1NTFFMTMwMDA2NDEwMDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VS
ZXNvdXJjZUxvYWRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyRTM0RTQxMzBCNEQw
NTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNTEyRTM1MjQxMzBCNTUwNjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyRTM1MkUxMzBCNTVBRjAwQUJEMTlB
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUx
MkUzNTZBMTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTJFMzVGODEzMEI2NDJFMDBBQkQx
OUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzQ1NDIzNTEzMEM1RjNGMDA3M0UxQzEgLyogVGV4dEluZm8u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDODZGRjMxMzBCNDZEMzAwMkMxMjU3IC8qIFdLUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzg3MDJFMTMwQjQ5
QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9u
IDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNl
ck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJEYXRhYmFzZU1hbmFnZXIuaCIKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnQuaD4KQEAgLTUyMyw4ICs1MjQsOCBAQCB2
b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyPigpKSB7Ci0gICAgICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
OjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlcj4oKSkgeworICAgICAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MzgsNiArNTM5LDExIEBA
IHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXI+KCkpIHsKKyAgICAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzSW5qZWN0ZWRCdW5kbGU+KCkpIHsKICAgICAgICAgaWYgKCFt
X2luamVjdGVkQnVuZGxlKQogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9u
Q2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIuaCIKKworI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAiV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkhhc2guaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXI6OnNoYXJlZCgpCit7CisgICAgc3RhdGljIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
JiBzaGFyZWQgPSAqbmV3IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOworICAgIHJldHVybiBz
aGFyZWQ7Cit9CisKK1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlcigpCit7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQoreworICAgIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFj
a0lEKQoreworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmln
aW5IYXNoPiBvcmlnaW5zOworCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
KyAgICBjYWNoZVN0b3JhZ2UoKS5nZXRPcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMpOworI2VuZGlm
CisKKyAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBpZGVudGlmaWVyczsKKyAgICBpZGVu
dGlmaWVycy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOworCisgICAgSGFzaFNldDxS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+OjppdGVyYXRvciBlbmQg
PSBvcmlnaW5zLmVuZCgpOworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2Vj
dXJpdHlPcmlnaW5IYXNoPjo6aXRlcmF0b3IgaSA9IG9yaWdpbnMuYmVnaW4oKTsKKyAgICBmb3Ig
KDsgaSAhPSBlbmQ7ICsraSkgeworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdp
biA9ICppOworICAgICAgICAKKyAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGE7
CisgICAgICAgIG9yaWdpbkRhdGEucHJvdG9jb2wgPSBvcmlnaW4tPnByb3RvY29sKCk7CisgICAg
ICAgIG9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOworICAgICAgICBvcmlnaW5EYXRh
LnBvcnQgPSBvcmlnaW4tPnBvcnQoKTsKKworICAgICAgICBpZGVudGlmaWVycy51bmNoZWNrZWRB
cHBlbmQob3JpZ2luRGF0YSk7CisgICAgfQorCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
OjpEaWRHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCks
IDApOworfQorCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luRGF0YSkKK3sKKyNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29sLCBv
cmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgaWYgKCFvcmlnaW4pCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBjYWNoZVN0b3JhZ2UoKS5kZWxldGVFbnRyaWVzRm9yT3Jp
Z2luKG9yaWdpbi5nZXQoKSk7CisjZW5kaWYKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcygpCit7CisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKKyAgICBjYWNoZVN0b3JhZ2UoKS5kZWxldGVBbGxFbnRyaWVzKCk7CisjZW5k
aWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQXJndW1lbnRE
ZWNvZGVyOworICAgIGNsYXNzIENvbm5lY3Rpb247CisgICAgY2xhc3MgTWVzc2FnZUlEOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2VjdXJpdHlPcmlnaW5EYXRhOworCitjbGFz
cyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIpOworCitwdWJsaWM6CisgICAgc3RhdGljIFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyJiBzaGFyZWQoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIoKTsKKyAgICAKKyAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKHVpbnQ2
NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmKTsKKyAgICB2b2lkIGRlbGV0ZUFsbEVudHJpZXMoKTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlciB7CisgICAgdm9pZCBHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1
aW50NjRfdCBjYWxsYmFja0lEKQorICAgIHZvaWQgRGVsZXRlRW50cmllc0Zvck9yaWdpbihXZWJL
aXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5JZGVudGlmaWVyKQorICAgIHZvaWQgRGVsZXRl
QWxsRW50cmllcygpCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lv
biA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTMxOCw2ICsxMzE4LDIyIEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9j
ZXNzXFdlYlByb2Nlc3NNYWluLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZp
bHRlcgorICAgICAgICAgICAgICAgIE5hbWU9IkFwcGxpY2F0aW9uQ2FjaGUiCisgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2Vi
UHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdl
YlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZVxXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgor
CQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2Vi
UHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3Nh
Z2VzLmluIgorCQkJCQk+CisJCQkJPC9GaWxlPgorICAgICAgICAgICAgPC9GaWx0ZXI+CiAJCQk8
RmlsdGVyCiAJCQkJTmFtZT0iQXV0aGVudGljYXRpb24iCiAJCQkJPgpAQCAtMjI5MCw2ICsyMzA2
LDE4IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcVmlzaXRlZExpbmtQcm92aWRl
ci5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQmFja0ZvcndhcmRMaXN0LmNwcCIK
IAkJCQk+CkBAIC0yNTgwLDYgKzI2MDgsMTQgQEAKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLQVBJQ2FzdC5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CisgICAgICAg
ICAgICAgICAgICAgIDxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElc
Q1xXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgor
CQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxl
CiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmNwcCIKIAkJCQkJCT4KQEAgLTMzNzEsNiArMzQwNywyMiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KICAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ck1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgor
ICAgICAgICAgICAgPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4K
</data>
<flag name="commit-queue"
          id="75154"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83356</attachid>
            <date>2011-02-22 12:03:09 -0800</date>
            <delta_ts>2011-02-22 12:53:14 -0800</delta_ts>
            <desc>Patch v4 - With Brian&apos;s latest feedback</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>80743</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzQ0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTMgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYyMDQyPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE0CisgICAgICAgIEFQSSB0byB2aWV3
IGFuZCBkZWxldGUgQXBwbGljYXRpb24gQ2FjaGUgZGF0YSBieSBvcmlnaW4uCisKKyAgICAgICAg
SSBjb3VsZG4ndCBoZWxwIG15c2VsZiAtIEkgYWxzbyByZS1hbHBoYWJldGl6ZWQgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIgaW4gbWFueSBwbGFjZXMgd2hlcmUKKyAgICAgICAgaXQncyBzb3J0aW5n
IHdhcyB3cm9uZyBkdWUgdG8gYSBsYXN0IG1pbnV0ZSBuYW1lIGNoYW5nZS4KKworICAgICAgICBQ
cm9qZWN0IGZpbGUgY2hhbmdlczoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2luL1dlYktpdDJDb21tb24udnNwcm9w
czoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOgorICAgICAgICAqIFdlYktp
dDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwor
ICAgICAgICBXSzIgYnVpbGQtc3lzdGVtIGFuZCBBUEkgcGFwZXJ3b3JrOgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQu
aDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQ
SU9iamVjdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKworICAg
ICAgICBBZGQgYSBoZWxwZXIgdG8gcGVyZm9ybSBhbiBBcnJheUNhbGxiYWNrIHdpdGggYSBWZWN0
b3Igb2YgU2VjdXJpdHlPcmlnaW5EYXRhczoKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmln
aW5EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3Vy
aXR5T3JpZ2luRGF0YVZlY3Rvcik6CisgICAgICAgICogU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0
YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0
Q2FjaGVPcmlnaW5zKTogVXNlIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRh
dGFWZWN0b3IgaGVyZS4KKworICAgICAgICBBZGQgYW4gQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eSB0byB0aGUgY29udGV4dCBhbmQgaW52YWxpZGF0ZSBpdCBhdCB0aGUgYXBwcm9wcmlhdGUg
dGltZXM6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6fldlYkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpwcm9jZXNzRGlk
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6
IFJvdXRlIG1lc3NhZ2VzIHRvIHRoZSByaWdodCBwcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjphcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eSk6CisKKyAgICAgICAgQWRkIEFQSSB0byBnZXQgdGhlIEFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyIGZvciBhIGNvbnRleHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcik6CisgICAgICAgIChXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorCisgICAgICAgIFJvdXRlIG1lc3Nh
Z2VzIHRvIHRoZSByaWdodCBwbGFjZToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorCisgICAgICAgIEFkZCB0aGUg
QVBJIG9iamVjdCwgd2hpY2ggd3JhcHMgdG8gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldFR5cGVJRCk6
CisgICAgICAgIChXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpbnMpOgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4pOgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckRlbGV0ZUFsbEVu
dHJpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmg6IEFkZGVkLgorCisgICAgICAgIFRoZSBVSVByb2Nlc3MgaW1wbGVtZW50YXRpb24gb2Yg
dGhlIG1hbmFnZXIgdG8gc2VuZCBtZXNzYWdlcyB0byB0aGUgV2ViUHJvY2VzcyBhbmQgcGlwZSBh
IGNhbGxiYWNrIGJhY2sgdXAgdG8gdGhlIGNsaWVudDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eTo6fldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
OjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKTog
VXNlIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3IgaGVyZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRl
RW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjog
QWRkZWQuCisKKyAgICAgICAgVGhlIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRpb24gdG8gcmVzcG9u
c2UgdG8gVUlQcm9jZXNzIG1lc3NhZ2VzIGFuZCBhY3R1YWxseSBkbyB0aGUgZGlydHktd29yayBp
biBXZWJDb3JlOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyOjpzaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlcjo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVs
ZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKwogMjAxMS0wMi0yMiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFs
YXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJ
bmRleDogU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA3OTMzMykKKysrIFNv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYg
KzIzLDcgQEAKIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAg
JChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Fw
cGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
biBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCkBAIC00NSw2ICs0Niw4IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAg
ICAgUGx1Z2luUHJveHkgXAorICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIFwKKyAgICBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJDb250ZXh0IFwKICAgICBX
ZWJEYXRhYmFzZU1hbmFnZXIgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5IFwKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIGxpYldlYktpdDJf
bGFfSEVBREVSUyA9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3Lmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9D
L1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIFwKIAkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdC5oIFwKQEAgLTI4Myw2ICsyODQsOCBAQCBs
aWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2d0ay9XS1ZpZXcuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCBcCkBAIC0zODUsNiArMzg4LDggQEAg
bGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxl
ZERyYXdpbmdBcmVhVGlsZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExp
bmtQcm92aWRlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIFwK
QEAgLTQ0OSw2ICs0NTQsOCBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZENsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNh
Y2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3du
bG9hZHMvY3VybC9Eb3dubG9hZEN1cmwuY3BwIFwKQEAgLTY1MSw2ICs2NTgsNyBAQCBsaWJXZWJL
aXQyX2xhX0NQUEZMQUdTID0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MgXAorCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXApAQCAtODAxLDYgKzgw
OSwxMCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29u
dGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29u
dGV4dE1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGF0YWJhc2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC04NDMsMTEgKzg1NSwxMyBAQCB2cGF0aCAlLm1l
c3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAJJChXZWJLaXQyKS9T
aGFyZWQvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MgXAorCSQoV2ViS2l0MikvVUlQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0Rvd25sb2Fk
cyBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvR2VvbG9jYXRpb24gXAogCSQoV2ViS2l0MikvVUlQ
cm9jZXNzL1BsdWdpbnMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAog
CSQoV2ViS2l0MikvV2ViUHJvY2VzcyBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAJJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
UGx1Z2lucyBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOCBAQCBXRUJL
SVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmggXAotICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdl
cy5oIFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCisgICAgJCRXRUJL
SVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250
ZXh0TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJE
YXRhYmFzZU1hbmFnZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCkBAIC00NSw3ICs0NSw5
IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJQYWdlUHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzTWVzc2FnZXMuaCBcCi0g
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaAogCiBXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC01NCw4ICs1
Niw4IEBAIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdp
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAotICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAg
ICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NP
VVJDRVNfRElSL1dlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY3LDcgKzY5LDkgQEAgV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
ICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nl
c3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lU
Ml9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAKIEhFQURFUlMgKz0gXAog
ICAgIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmggXApAQCAtMTU3LDcgKzE2MSw3
IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKICAgICBVSVBy
b2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlu
a1Byb3ZpZGVyLmggXAotICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LmggXAorICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHku
aCBcCkBAIC0xNzgsMTggKzE4MiwyMCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuaCBcCi0gICAgVUlQcm9jZXNzL1dlYlBhZ2VD
b250ZXh0TWVudUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50Lmgg
XAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmggXAogICAgIFVJUHJvY2Vz
cy9XZWJQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1l
bnVQcm94eVF0LmggXAorICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5o
IFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCkBAIC0zMjgs
OSArMzM0LDkgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcCBcCiAgICAg
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAotICAgIFVJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250
ZXh0TWVudVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5
LmNwcCBcCkBAIC0zNDksMTQgKzM1NSwxNSBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNw
cCBcCiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmNwcCBcCi0gICAgVUlQcm9jZXNz
L1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0
TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwIFwKICAgICBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVu
dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdB
cmVhUHJveHlRdC5jcHAgXApAQCAtMzY5LDYgKzM3Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1
cE1lbnVQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlByZWZlcmVuY2VzUXQuY3Bw
IFwKKyAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgJKHJldmlzaW9uIDc5MzMz
KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksMTggKzM5LDE5IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNz
YWdlQ2xhc3NEcmF3aW5nQXJlYSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYUxlZ2FjeSwK
ICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKLSAgICBNZXNzYWdlQ2xhc3NXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlciwKKyAgICBNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNs
YXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVj
dG9yLAogICAgIE1lc3NhZ2VDbGFzc1dlYlBhZ2UsCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2Vz
cywKKyAgICBNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciwKIAogICAgIC8vIE1l
c3NhZ2VzIHNlbnQgYnkgdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgogICAgIE1l
c3NhZ2VDbGFzc0Rvd25sb2FkUHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94
eSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5TGVnYWN5LAotICAgIE1lc3NhZ2VD
bGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHksCisgICAgTWVzc2FnZUNsYXNzV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0LAog
ICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHksCkBAIC01OSw2ICs2MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsK
ICAgICBNZXNzYWdlQ2xhc3NXZWJQYWdlUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2Vz
c1Byb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eUxlZ2FjeSwKKyAgICBNZXNz
YWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAogCiAgICAgLy8gTWVzc2FnZXMg
c2VudCBieSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgcGx1Zy1pbiBwcm9jZXNzLgogICAgIE1lc3Nh
Z2VDbGFzc1BsdWdpblByb2Nlc3MsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShy
ZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVVSW50NjQs
CiAgICAgICAgIAogICAgICAgICAvLyBVSVByb2Nlc3MgdHlwZXMKKyAgICAgICAgVHlwZUFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLAogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0LAogICAgICAg
ICBUeXBlQmFja0ZvcndhcmRMaXN0SXRlbSwKICAgICAgICAgVHlwZUNhY2hlTWFuYWdlciwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCShyZXZp
c2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogCisjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtNDIsNCArNDUsMjYgQEAgYm9vbCBTZWN1cml0eU9yaWdpbkRh
dGE6OmRlY29kZShDb3JlSVBDOgogICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6
T3V0KHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCwgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3Qs
IHNlY3VyaXR5T3JpZ2luRGF0YS5wb3J0KSk7CiB9CiAKK3ZvaWQgcGVyZm9ybUFQSUNhbGxiYWNr
V2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3Rvcihjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiYgb3JpZ2luRGF0YXMsIEFycmF5Q2FsbGJhY2sqIGNhbGxiYWNrKQoreworICAgIGlmICgh
Y2FsbGJhY2spIHsKKyAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQuCisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgc2l6ZV90IG9yaWdpbkRhdGFDb3VudCA9IG9y
aWdpbkRhdGFzLnNpemUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiBzZWN1cml0
eU9yaWdpbnM7CisgICAgc2VjdXJpdHlPcmlnaW5zLnJlc2VydmVDYXBhY2l0eShvcmlnaW5EYXRh
Q291bnQpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmlnaW5EYXRhQ291bnQ7ICsr
aSkgeworICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSA9IG9yaWdpbkRhdGFz
W2ldOworICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0
YS5wb3J0KTsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgc2VjdXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVuZChvcmlnaW4pOworICAgIH0KKwor
ICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoSW1tdXRhYmxlQXJy
YXk6OmFkb3B0KHNlY3VyaXR5T3JpZ2lucykuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmgJ
KHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIFNlY3VyaXR5
T3JpZ2luRGF0YV9oCiAjZGVmaW5lIFNlY3VyaXR5T3JpZ2luRGF0YV9oCiAKKyNpbmNsdWRlICJB
UElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewpAQCAtMzUsNiArMzcsOCBA
QCBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit0eXBlZGVmIEdl
bmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOworCiBzdHJ1Y3QgU2VjdXJp
dHlPcmlnaW5EYXRhIHsKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgU2VjdXJpdHlPcmlnaW5EYXRhJik7CkBAIC00Nyw2ICs1MSw4IEBAIHN0cnVjdCBTZWN1cml0
eU9yaWdpbkRhdGEgewogICAgIGludCBwb3J0OwogfTsKIAordm9pZCBwZXJmb3JtQVBJQ2FsbGJh
Y2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdGE+JiwgQXJyYXlDYWxsYmFjayopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIFNlY3VyaXR5T3JpZ2luRGF0YV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLQmFzZS5oCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsNyBAQCB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1VzZXJDb250ZW50CiAKIC8qIFdlYktpdDIgbWFpbiBBUEkgdHlwZXMg
Ki8KIAordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ciogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UqIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lciogV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXJSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdCogV0tCYWNrRm9yd2FyZExpc3RSZWY7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgiCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgor
I2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eT4gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNv
bnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eTo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBjb250ZXh0KQor
ICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCit7Cit9CisKK1dlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6On5XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KCkKK3sKK30KKwor
dm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAg
ICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcyk7Cit9CisKK3ZvaWQgV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwg
YXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Ojpn
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENh
bGxiYWNrKQoreworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxi
YWNrOworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkgeworICAgICAg
ICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAor
ICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1f
YXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CisgICAg
bV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyOjpHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhjYWxsYmFja0lEKSwgMCk7Cit9
CisgICAgCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmln
aW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFj
az4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgcGVy
Zm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3RvcihvcmlnaW5EYXRhcywg
Y2FsbGJhY2suZ2V0KCkpOworfQorCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sK
KyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhOworICAg
IHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICBz
ZWN1cml0eU9yaWdpbkRhdGEuaG9zdCA9IG9yaWdpbi0+aG9zdCgpOworICAgIHNlY3VyaXR5T3Jp
Z2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nl
c3MoKS0+c2VuZChNZXNzYWdlczo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OkRlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4oc2VjdXJpdHlPcmlnaW5EYXRhKSwgMCk7Cit9CisKK3ZvaWQgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsRW50cmllcygpCit7CisgICAgaWYg
KCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisgICAg
bV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyOjpEZWxldGVBbGxFbnRyaWVzKCksIDApOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxs
YmFjay5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7Cisg
ICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOworY2xhc3MgV2ViQ29udGV4
dDsKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxX
S0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOworCitjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0
IFR5cGUgQVBJVHlwZSA9IFR5cGVBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjsKKworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJD
b250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgp
OworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1f
d2ViQ29udGV4dCA9IDA7IH0KKyAgICAKKyAgICB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4pOworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zv
ck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOworICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcygp
OworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworcHJpdmF0ZToK
KyAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKKworICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgdm9p
ZCBkaWRHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmln
aW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCisg
ICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlfaApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5IHsKKyAgICBEaWRHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhW
ZWN0b3I8V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbklkZW50aWZpZXJzLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAi
V0tDb250ZXh0UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5j
bHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRVc2Vy
TWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAt
NDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5j
bHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CkBAIC05NywxMCArOTgsMTEgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4
dChQcm9jZXNzTW9kZWwgcHJvYwogICAgICwgbV9jbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JOZXdX
ZWJQcm9jZXNzKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVyRW5hYmxlZChmYWxzZSkKICAg
ICAsIG1fbWVtb3J5U2FtcGxlckludGVydmFsKDE0MDAuMCkKLSAgICAsIG1fcmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eShXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykp
CisgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9kYXRhYmFzZU1hbmFnZXJQcm94
eShXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9nZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMp
KQogICAgICwgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIoV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
OjpjcmVhdGUodGhpcykpCisgICAgLCBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogI2lmIFBMQVRGT1JNKFdJTikK
ICAgICAsIG1fc2hvdWxkUGFpbnROYXRpdmVDb250cm9scyh0cnVlKQogI2VuZGlmCkBAIC0xMTgs
OCArMTIwLDggQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogCiAgICAgV2ViUHJvY2Vzc01h
bmFnZXI6OnNoYXJlZCgpLmNvbnRleHRXYXNEZXN0cm95ZWQodGhpcyk7CiAKLSAgICBtX3Jlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKLSAgICBtX3Jlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOworICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS0+Y2xlYXJDb250ZXh0KCk7CiAKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5pbnZh
bGlkYXRlKCk7CiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7
CkBAIC0xMzAsNiArMTMyLDkgQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogICAgIG1fcGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLT5pbnZhbGlkYXRlKCk7CiAgICAgbV9wbHVnaW5TaXRlRGF0YU1h
bmFnZXItPmNsZWFyQ29udGV4dCgpOwogCisgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LT5pbnZhbGlkYXRlKCk7CisgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNv
bnRleHQoKTsKKwogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJDb250ZXh0Q291bnRlci5kZWNyZW1l
bnQoKTsKICNlbmRpZgpAQCAtMjU1LDYgKzI2MCw3IEBAIHZvaWQgV2ViQ29udGV4dDo6cHJvY2Vz
c0RpZENsb3NlKFdlYlByb2MKIAogICAgIG1fZG93bmxvYWRzLmNsZWFyKCk7CiAKKyAgICBtX2Fw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX2RhdGFiYXNl
TWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94
eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+aW52YWxp
ZGF0ZSgpOwpAQCAtNTIyLDggKzUyOCw4IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkg
ewotICAgICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIG1fYXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MzcsNiArNTQzLDExIEBA
IHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBtX3Jlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6
OktpbmQ+KCkpIHsKICAgICAgICAgY2FzZSBXZWJDb250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdE1l
c3NhZ2U6IHsKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMSArNDUs
MTIgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OwotY2xhc3Mg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKK2NsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFn
ZVByb3h5OworY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKIHN0cnVjdCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBXZWJDb250ZXh0IDogcHVibGljIEFQ
SU9iamVjdCB7CkBAIC0xMzAsMTAgKzEzMSwxMSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSGFz
aFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gcGRmQW5kUG9zdFNjcmlwdE1JTUVUeXBlcygp
OwogCi0gICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSogcmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5nZXQo
KTsgfQorICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkqIGFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkuZ2V0KCk7IH0KICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSogZGF0YWJhc2VNYW5h
Z2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlTWFuYWdlclByb3h5LmdldCgpOyB9
CiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlclByb3h5
KCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5nZXQoKTsgfQogICAg
IFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciogcGx1Z2luU2l0ZURhdGFNYW5hZ2VyKCkgY29uc3Qg
eyByZXR1cm4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXIuZ2V0KCk7IH0KKyAgICBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5KiByZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmdldCgpOyB9CiAKICAgICBzdHJ1Y3Qg
U3RhdGlzdGljcyB7CiAgICAgICAgIHVuc2lnbmVkIHdrVmlld0NvdW50OwpAQCAtMjEyLDEwICsy
MTQsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWVtb3J5U2FtcGxlckVuYWJsZWQ7CiAgICAg
ZG91YmxlIG1fbWVtb3J5U2FtcGxlckludGVydmFsOwogCi0gICAgUmVmUHRyPFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHk+IG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKKyAgICBSZWZQ
dHI8V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4gbV9hcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4gbV9kYXRhYmFz
ZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IG1f
Z2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFu
YWdlcj4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXI7CisgICAgUmVmUHRyPFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHk+IG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKIAogI2lmIFBMQVRG
T1JNKFdJTikKICAgICBib29sIG1fc2hvdWxkUGFpbnROYXRpdmVDb250cm9sczsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiA3
OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMzAsOSArMjMwLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZSgKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYkNvbnRleHQ+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkNvbnRleHRMZWdhY3k+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+KCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkKKyAg
ICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5PigpCi0gICAgICAgIHx8IG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkg
eworICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHk+KCkKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKICAgICAgICAgbV9j
b250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZp
c2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsMjQgKzcxLDcgQEAgdm9pZCBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpnZXRDYQogdm9pZCBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5OjpkaWRHZXRDYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPEFy
cmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQp
OwotICAgIGlmICghY2FsbGJhY2spIHsKLSAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBh
c3NlcnQuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzaXplX3Qgb3JpZ2luSWRlbnRp
ZmllcnNDb3VudCA9IG9yaWdpbnMuc2l6ZSgpOwotICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0
PiA+IHNlY3VyaXR5T3JpZ2luczsKLSAgICBzZWN1cml0eU9yaWdpbnMucmVzZXJ2ZUNhcGFjaXR5
KG9yaWdpbklkZW50aWZpZXJzQ291bnQpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBv
cmlnaW5JZGVudGlmaWVyc0NvdW50OyArK2kpIHsKLSAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG9yaWdpbkRhdGEgPSBvcmlnaW5zW2ldOwotICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBvcmln
aW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdp
bkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsKLSAgICAgICAgaWYgKCFvcmlnaW4pCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgc2VjdXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVu
ZChvcmlnaW4pOwotICAgIH0KLQotICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0
dXJuVmFsdWUoSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHNlY3VyaXR5T3JpZ2lucykuZ2V0KCkpOwor
ICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3Iob3JpZ2lu
cywgY2FsbGJhY2suZ2V0KCkpOwogfQogCiB2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHk6OmNsZWFyQ2FjaGVGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDc5
MzMzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHk7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3du
bG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OworY2xh
c3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJk
TGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5OwpAQCAtNjYsNiArNjcsNyBAQCBjbGFzcyBXZWJQbHVnaW5TaXRlRGF0
YU1hbmFnZXI7CiBjbGFzcyBXZWJQcmVmZXJlbmNlczsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFj
ZTsKIAorV0tfQUREX0FQSV9NQVBQSU5HKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYsIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSkKIFdL
X0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lclJlZiwgQXV0
aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0Zv
cndhcmRMaXN0SXRlbVJlZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0VHlwZUlE
KCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6
QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5zKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25D
YWNoZU1hbmFnZXJSZWYsIHZvaWQqIGNvbnRleHQsIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJH
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1w
bChhcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiktPmdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5z
KEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjaykpOworfQorCit2b2lkIFdL
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYsIFdLU2VjdXJpdHlP
cmlnaW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRvSW1wbChhcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clJlZiktPmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4odG9JbXBsKG9yaWdpblJlZikpOworfQorCit2
b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYpCit7CisgICAgdG9J
bXBsKGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsRW50cmllcygpOworfQpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlcl9oCisjZGVmaW5lIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJfaAorCisjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK
KyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdl
dFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpbnNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwg
dm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5zKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRp
b25DYWNoZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJH
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JU
IHZvaWQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBhcHBsaWNhdGlvbkNhY2hlTWFuYWdlciwgV0tTZWN1
cml0eU9yaWdpblJlZiBvcmlnaW4pOworV0tfRVhQT1JUIHZvaWQgV0tBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBhcHBs
aWNhdGlvbkNhY2hlTWFuYWdlcik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisK
KyNlbmRpZiAvLyBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiA3OTMzMykKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTgsOSArMTU4LDkgQEAgdm9pZCBXS0NvbnRleHRDbGVhckFwcGxpY2F0aW9uQ2Fj
aGUoV0tDbwogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKCk7
CiB9CiAKLVdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNo
ZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCitXS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUmVmIFdLQ29udGV4dEdldEFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmKQogewotICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKSk7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0
UmVmKS0+YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpKTsKIH0KIAogV0tEYXRhYmFzZU1h
bmFnZXJSZWYgV0tDb250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmKQpAQCAtMTc4LDYgKzE3OCwxMSBAQCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0Nv
bnRleHRHZXRQCiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+cGx1Z2luU2l0
ZURhdGFNYW5hZ2VyKCkpOwogfQogCitXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4
dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAg
IHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkoKSk7Cit9CisKIHZvaWQgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmLCBXS0RvdWJsZVJlZiBpbnRlcnZhbCkKIHsKICAgICB0b0ltcGwoY29udGV4
dFJlZiktPnN0YXJ0TWVtb3J5U2FtcGxlcih0b0ltcGwoaW50ZXJ2YWwpLT52YWx1ZSgpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHJldmlzaW9u
IDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjMsMTAgKzEyMywxMSBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRDbGVhckFwcGxpY2F0aW9uCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTdGFydE1lbW9yeVNh
bXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLRG91YmxlUmVmIGludGVydmFsKTsKIFdLX0VY
UE9SVCB2b2lkIFdLQ29udGV4dFN0b3BNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0
KTsKIAotV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVz
b3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0QXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLRGF0YWJhc2VNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19F
WFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5h
Z2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRlRGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNv
bnRleHQpOworV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0
UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCiAjaWZkZWYgX19j
cGx1c3BsdXMKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiAr
MjY2LDE4IEBACiAJCTUxMjkzNUQ4MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0
ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkz
NUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLzsgfTsKIAkJNTEy
OTM1RTMxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHAgKi87IH07CiAJCTUxMjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CisJCTUxMkUzNEU0MTMwQjREMDUwMEFC
RDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0IzMTMwQjMwOEMwMEY4MENCNSAvKiBX
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNTEyRTM0RTUxMzBCNEQwNTAw
QUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBX
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHVibGljLCApOyB9OyB9OworCQk1MTJFMzUyNDEzMEI1NTA2MDBBQkQxOUEgLyogV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzUyMDEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTUxMkUzNTI1MTMwQjU1MDYwMEFCRDE5
QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzUyMTEzMEI1NTAxMDBBQkQxOUEgLyog
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oICovOyB9OworCQk1MTJFMzUyRTEzMEI1
NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1MkIxMzBCNTVBRjAwQUJE
MTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNTEyRTM1MkYx
MzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzUyQzEzMEI1NUFGMDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLzsgfTsKKwkJNTEyRTM1MzAx
MzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmlu
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzUy
RDEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMu
aW4gKi87IH07CisJCTUxMkUzNTZBMTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzU2ODEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk1MTJFMzU2QjEz
MEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRTM1NjkxMzBC
NTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsg
fTsKKwkJNTEyRTM1RjExMzBCNjM4QzAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovOyB9OworCQk1MTJFMzVGODEzMEI2NDJFMDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzVG
NjEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMkUzNUY5MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkUzNUY3MTMwQjY0MkUwMEFCRDE5QSAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTEyRjU4
OEExMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJGNTg4NzEyQTg4MzY2MDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCAqLzsgfTsKIAkJNTEyRjU4OEIxMkE4
ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyRjU4ODgxMkE4ODM2NjAwNjI5NTMwIC8q
IEF1dGhlbnRpY2F0aW9uTWFuYWdlci5oICovOyB9OwogCQk1MTJGNTg4QzEyQTg4MzY2MDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJGNTg4OTEyQTg4MzY2MDA2Mjk1MzAg
LyogQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovOyB9OwpAQCAtMTA2MCw2ICsx
MDcyLDE2IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5
NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5Nzgw
MEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzUyMDEzMEI1NTAxMDBB
QkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyRTM1MjExMzBCNTUwMTAwQUJE
MTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzUyQjEzMEI1NUFGMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOyBwYXRoID0gQXBwbGljYXRp
b25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxMkUzNTJDMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzUyRDEz
MEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2Fn
ZXMuaW47IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzU2ODEzMEI1
N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTJFMzU2OTEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzVGNzEzMEI2NDJFMDBBQkQxOUEgLyog
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJGNTg4NzEyQTg4MzY2MDA2Mjk1
MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMkY1ODg4MTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25N
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODg5MTJBODgzNjYw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTA4NSw2ICsxMTA3LDggQEAKIAkJNTE1MzU2OUIxMjkxQjFE
MjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE1NzhCODIxMjA5RUNFRjAwQTM3QzRBIC8qIFdlYkRhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QTMzQjMxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5RDAw
Rjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxOEFDQUU5MTJBRUU2QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25T
cGFjZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJvdGVjdGlv
blNwYWNlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNzgsNiArMjEw
MiwxNiBAQAogCQkJbmFtZSA9IGNmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsK
KwkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8qIEFwcGxpY2F0aW9uQ2FjaGUgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUxMkUzNTJCMTMwQjU1QUYw
MEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgKi8sCisJCQkJNTEyRTM1
MkMxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8sCisJ
CQkJNTEyRTM1MkQxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCW5hbWUgPSBBcHBsaWNhdGlvbkNhY2hlOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5NTMw
IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTIxMTYsNiArMjE1MCw3IEBACiAJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAv
KiBXZWJQcm9jZXNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEgLyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJ
CQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb24gKi8sCiAJCQkJMUE2
MTYxNEMxMjc3OThCNTAwM0FDRDg2IC8qIERvd25sb2FkcyAqLywKIAkJCQlCQzBFNUZDQjEyRDY5
NkREMDAxMkE3MkEgLyogR2VvbG9jYXRpb24gKi8sCkBAIC0yMjUwLDYgKzIyODUsOSBAQAogCQkJ
CTFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlci5oICovLAogCQkJCTFBMEYy
OUUxMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCAqLywKIAkJCQkx
QTBGMjlFMjEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92aWRlci5oICovLAorCQkJ
CTUxMkUzNTIwMTMwQjU1MDEwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5LmNwcCAqLywKKwkJCQk1MTJFMzUyMTEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5oICovLAorCQkJCTUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJD
NzJCQTFCMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuY3BwICovLAogCQkJ
CUJDNzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKIAkJ
CQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8sCkBAIC0yMzQy
LDYgKzIzODAsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQkNCNjM0NzcxMTZCRjEwNjAwNjAz
MjE1IC8qIFdlYktpdDIuaCAqLywKIAkJCQlCQ0REQjMyQzEyNEVDMkUxMDA0OEQxM0MgLyogV0tB
UElDYXN0LmggKi8sCisJCQkJNTE3QTMzQjMxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuY3BwICovLAorCQkJCTUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBX
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8sCiAJCQkJNTEyRjU4RUQxMkE4OEE1NDAwNjI5
NTMwIC8qIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuY3BwICovLAogCQkJCTUxMkY1OEVFMTJB
ODhBNTQwMDYyOTUzMCAvKiBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8sCiAJCQkJNTEy
RjU4RUYxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVy
LmNwcCAqLywKQEAgLTI4MzcsNiArMjg3NywxMCBAQAogCQkJCTFBMDQzQjVDMTI0RDVFOUQwMEZG
QkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBOEVGQTZFMTI1
MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
MUE4RUZBNkYxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZXMuaCAqLywKKwkJ
CQk1MTJFMzU2ODEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMkUzNTY5MTMwQjU3RjAwMEFCRDE5QSAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJNTEyRTM1RjYxMzBC
NjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCTUxMkUzNUY3MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlCQ0VFN0QwQjEyODQ2RjY5
MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJQkNFRTdE
MEMxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlcy5oICovLAogCQkJCUY2MkE3
NkIyMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLApAQCAtMzI1Miw2ICszMjk2LDExIEBACiAJCQkJQkNBNTZBMUMxMkY5MDI4RTAwQzU2
NkM3IC8qIFdlYkdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBNTZBNjUx
MkY5QzhGOTAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0E1NkE2OTEyRjlDOUFEMDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRleHRDRy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkUzNTI1MTMwQjU1MDYwMEFCRDE5
QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MTJFMzUyRjEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkUzNTZCMTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFMzVG
OTEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ1NDIzNDEzMEM1RjNGMDA3M0UxQzEgLyogVGV4
dEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzg2RkY0MTMwQjQ2RDMwMDJDMTI1NyAvKiBX
S1BsdWdpblNpdGVEYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDODcwMkQxMzBC
NDlBMjAwMkMxMjU3IC8qIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMzY3LDYgKzM0MTYsOCBAQAogCQkJZmlsZXMgPSAoCiAJCQkJOERDMkVGNTMwNDg2QTY5
NDAwOThCMjE2IC8qIEluZm9QbGlzdC5zdHJpbmdzIGluIFJlc291cmNlcyAqLywKIAkJCQk1MTJG
NTg4QzEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmlu
IGluIFJlc291cmNlcyAqLywKKwkJCQk1MTJFMzUzMDEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gaW4gUmVzb3VyY2VzICovLAorCQkJCTUx
MkUzNUYxMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM3MzgsNiArMzc4OSwxMSBAQAogCQkJ
CUJDQTU2QTY2MTJGOUM4RjkwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0E1NkE2QTEyRjlDOUFEMDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRl
eHRDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTUxMkUzNEU0MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMkUzNTI0MTMwQjU1MDYwMEFCRDE5QSAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMkUz
NTJFMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk1MTJFMzU2QTEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEy
RTM1RjgxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0NTQyMzUxMzBDNUYzRjAw
NzNFMUMxIC8qIFRleHRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzg2RkYzMTMwQjQ2
RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUM4NzAyRTEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5o
IgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyLmgiCkBAIC00Nyw2ICs0Nyw3
IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09y
aWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+CkBA
IC01MjMsOCArNTI0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcj4oKSkgewotICAgICAgICBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI+KCkpIHsKKyAgICAgICAgV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNTM4LDYgKzUzOSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyPigpKSB7CisgICAgICAgIFdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlPigp
KSB7CiAgICAgICAgIGlmICghbV9pbmplY3RlZEJ1bmRsZSkKICAgICAgICAgICAgIHJldHVybjsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgor
I2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXImIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKQoreworICAgIHN0YXRpYyBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlciYgc2hhcmVkID0gKm5ldyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcjsKKyAgICByZXR1cm4gc2hhcmVkOworfQorCitXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
cjo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIoKQoreworfQorCit2b2lkIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBj
b25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwor
dm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbGljYXRpb25DYWNoZU9yaWdp
bnModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD4gb3JpZ2luczsKKworI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCisgICAgY2FjaGVTdG9yYWdlKCkuZ2V0T3JpZ2luc1dpdGhDYWNo
ZShvcmlnaW5zKTsKKyNlbmRpZgorCisgICAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gaWRl
bnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbnMuc2l6ZSgp
KTsKKworICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5I
YXNoPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsKKyAgICBIYXNoU2V0PFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD46Oml0ZXJhdG9yIGkgPSBvcmlnaW5z
LmJlZ2luKCk7CisgICAgZm9yICg7IGkgIT0gZW5kOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBvcmlnaW4gPSAqaTsKKyAgICAgICAgCisgICAgICAgIFNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW5EYXRhOworICAgICAgICBvcmlnaW5EYXRhLnByb3RvY29sID0gb3JpZ2lu
LT5wcm90b2NvbCgpOworICAgICAgICBvcmlnaW5EYXRhLmhvc3QgPSBvcmlnaW4tPmhvc3QoKTsK
KyAgICAgICAgb3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7CisKKyAgICAgICAgaWRl
bnRpZmllcnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbkRhdGEpOworICAgIH0KKworICAgIFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eTo6RGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoaWRlbnRp
ZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9y
aWdpbkRhdGEpCit7CisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICBS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3Jp
Z2luRGF0YS5wcm90b2NvbCwgb3JpZ2luRGF0YS5ob3N0LCBvcmlnaW5EYXRhLnBvcnQpOworICAg
IGlmICghb3JpZ2luKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY2FjaGVTdG9yYWdlKCku
ZGVsZXRlRW50cmllc0Zvck9yaWdpbihvcmlnaW4uZ2V0KCkpOworI2VuZGlmCit9CisKK3ZvaWQg
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMoKQoreworI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgY2FjaGVTdG9yYWdlKCkuZGVsZXRl
QWxsRW50cmllcygpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
cHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJfaAorI2RlZmluZSBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgewor
ICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKKyAgICBjbGFzcyBDb25uZWN0aW9uOworICAgIGNs
YXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNlY3VyaXR5
T3JpZ2luRGF0YTsKKworY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgeworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKTsKKworcHVibGlj
OgorICAgIHN0YXRpYyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlciYgc2hhcmVkKCk7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKCk7CisgICAgCisgICAgdm9pZCBnZXRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGRlbGV0ZUVudHJp
ZXNGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAgdm9pZCBkZWxldGVB
bGxFbnRyaWVzKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Fw
cGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVz
c2FnZXMgLT4gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIgeworICAgIHZvaWQgR2V0QXBwbGlj
YXRpb25DYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICB2b2lkIERlbGV0ZUVu
dHJpZXNGb3JPcmlnaW4oV2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luSWRlbnRpZmll
cikKKyAgICB2b2lkIERlbGV0ZUFsbEVudHJpZXMoKQorfQpJbmRleDogU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLnZjcHJvagkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzMTgsNiArMTMxOCwyMiBAQAogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJQcm9jZXNzTWFpbi5oIgogCQkJCT4KIAkJCTwvRmls
ZT4KKyAgICAgICAgICAgIDxGaWx0ZXIKKyAgICAgICAgICAgICAgICBOYW1lPSJBcHBsaWNhdGlv
bkNhY2hlIgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICA8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZVxXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGVcV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZVxXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKyAgICAgICAg
ICAgIDwvRmlsdGVyPgogCQkJPEZpbHRlcgogCQkJCU5hbWU9IkF1dGhlbnRpY2F0aW9uIgogCQkJ
CT4KQEAgLTIyOTAsNiArMjMwNiwxOCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XFZpc2l0ZWRMaW5rUHJvdmlkZXIuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICA8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3NcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKKwkJCQk+CisJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkJh
Y2tGb3J3YXJkTGlzdC5jcHAiCiAJCQkJPgpAQCAtMjU4MCw2ICsyNjA4LDE0IEBACiAJCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0FQSUNhc3QuaCIKIAkJCQkJCT4KIAkJ
CQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcQVBJXENcV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAiCisJCQkJ
CQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJ
PC9GaWxlPgogCQkJCQk8RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJ
XENcV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAiCiAJCQkJCQk+CkBAIC0zMzcxLDYgKzM0
MDcsMjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMJKHJl
dmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9w
cwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1
Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hh
cmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xO
ZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xB
UElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXERvd25sb2Fkc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
R2VvbG9jYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291
cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1
cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9y
d2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVc
V2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJl
Y3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNc
Y2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVu
Y2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBh
Z2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5k
bGVcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVk
QnVuZGxlXERPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0
ZWRCdW5kbGVcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVn
aW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNj
YXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZh
dGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVv
dDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZh
U2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZh
U2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2
YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJ
bmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKIAkJUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JLX05B
TUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJ
CVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0MlByZWZpeC5oIgpJbmRleDogU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCShyZXZpc2lvbiA3OTMzMykKKysrIFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDExICszNywxMSBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xX
S1VSTFJlc3BvbnNlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIi
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1VzZXJDb250ZW50VVJMUGF0dGVy
bi5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5
IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV2ViS2l0Mi5oIiAiJUNvbmZpZ3VyYXRpb25CdWls
ZERpciVcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJ
XGNcV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVc
aW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVk
ZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1
ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0Zv
cndhcmRMaXN0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAg
ICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0u
aCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKLSAgICB4Y29weSAv
eSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIgIiVDb25m
aWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5c
VUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250
ZXh0UHJpdmF0ZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgog
ICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDcmVkZW50aWFsLmgiICIlQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCkBAIC02Nyw2ICs2Nyw3IEBAIGFs
bDoKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLUHJlZmVyZW5jZXNQcml2
YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNv
cHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS1Byb3RlY3Rpb25TcGFjZS5oIiAiJUNvbmZp
Z3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxV
SVByb2Nlc3NcQVBJXENcV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIiAiJUNvbmZpZ3VyYXRpb25C
dWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3Nc
QVBJXENcV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVc
aW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcd2lu
XFdLQ29udGV4dFByaXZhdGVXaW4uaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVc
V2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXHdpblxXS1ZpZXcu
aCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAv
eSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXHdpblxXS1ZpZXdQcml2YXRlLmgiICIlQ29uZmlndXJh
dGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCg==
</data>
<flag name="commit-queue"
          id="75158"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83368</attachid>
            <date>2011-02-22 12:53:14 -0800</date>
            <delta_ts>2011-02-22 16:05:49 -0800</delta_ts>
            <desc>Patch v5 - Fix Windows build - that header isn&apos;t needed here anymore, anyways!</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>80684</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzQ0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTMgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYyMDQyPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE0CisgICAgICAgIEFQSSB0byB2aWV3
IGFuZCBkZWxldGUgQXBwbGljYXRpb24gQ2FjaGUgZGF0YSBieSBvcmlnaW4uCisKKyAgICAgICAg
SSBjb3VsZG4ndCBoZWxwIG15c2VsZiAtIEkgYWxzbyByZS1hbHBoYWJldGl6ZWQgV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIgaW4gbWFueSBwbGFjZXMgd2hlcmUKKyAgICAgICAgaXQncyBzb3J0aW5n
IHdhcyB3cm9uZyBkdWUgdG8gYSBsYXN0IG1pbnV0ZSBuYW1lIGNoYW5nZS4KKworICAgICAgICBQ
cm9qZWN0IGZpbGUgY2hhbmdlczoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2luL1dlYktpdDJDb21tb24udnNwcm9w
czoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOgorICAgICAgICAqIFdlYktp
dDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwor
ICAgICAgICBXSzIgYnVpbGQtc3lzdGVtIGFuZCBBUEkgcGFwZXJ3b3JrOgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQu
aDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQ
SU9iamVjdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKworICAg
ICAgICBBZGQgYSBoZWxwZXIgdG8gcGVyZm9ybSBhbiBBcnJheUNhbGxiYWNrIHdpdGggYSBWZWN0
b3Igb2YgU2VjdXJpdHlPcmlnaW5EYXRhczoKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmln
aW5EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6cGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3Vy
aXR5T3JpZ2luRGF0YVZlY3Rvcik6CisgICAgICAgICogU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0
YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0
Q2FjaGVPcmlnaW5zKTogVXNlIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRh
dGFWZWN0b3IgaGVyZS4KKworICAgICAgICBBZGQgYW4gQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eSB0byB0aGUgY29udGV4dCBhbmQgaW52YWxpZGF0ZSBpdCBhdCB0aGUgYXBwcm9wcmlhdGUg
dGltZXM6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6fldlYkNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpwcm9jZXNzRGlk
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6
IFJvdXRlIG1lc3NhZ2VzIHRvIHRoZSByaWdodCBwcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjphcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eSk6CisKKyAgICAgICAgQWRkIEFQSSB0byBnZXQgdGhlIEFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyIGZvciBhIGNvbnRleHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRHZXRBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlcik6CisgICAgICAgIChXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcik6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oOgorCisgICAgICAgIFJvdXRlIG1lc3Nh
Z2VzIHRvIHRoZSByaWdodCBwbGFjZToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorCisgICAgICAgIEFkZCB0aGUg
QVBJIG9iamVjdCwgd2hpY2ggd3JhcHMgdG8gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldFR5cGVJRCk6
CisgICAgICAgIChXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpbnMpOgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckRlbGV0ZUVudHJpZXNG
b3JPcmlnaW4pOgorICAgICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckRlbGV0ZUFsbEVu
dHJpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmg6IEFkZGVkLgorCisgICAgICAgIFRoZSBVSVByb2Nlc3MgaW1wbGVtZW50YXRpb24gb2Yg
dGhlIG1hbmFnZXIgdG8gc2VuZCBtZXNzYWdlcyB0byB0aGUgV2ViUHJvY2VzcyBhbmQgcGlwZSBh
IGNhbGxiYWNrIGJhY2sgdXAgdG8gdGhlIGNsaWVudDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eTo6fldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
OjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKTog
VXNlIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1cml0eU9yaWdpbkRhdGFWZWN0b3IgaGVyZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRl
RW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHk6OmRlbGV0ZUFsbEVudHJpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjog
QWRkZWQuCisKKyAgICAgICAgVGhlIFdlYlByb2Nlc3MgaW1wbGVtZW50YXRpb24gdG8gcmVzcG9u
c2UgdG8gVUlQcm9jZXNzIG1lc3NhZ2VzIGFuZCBhY3R1YWxseSBkbyB0aGUgZGlydHktd29yayBp
biBXZWJDb3JlOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZTogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyOjpzaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlcjo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbGljYXRpb25DYWNoZU9y
aWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVs
ZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxp
Y2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKwogMjAxMS0wMi0yMiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFs
YXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJ
bmRleDogU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA3OTMzMykKKysrIFNv
dXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYg
KzIzLDcgQEAKIFZQQVRIID0gXAogICAgICQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAgICAg
JChXZWJLaXQyKS9TaGFyZWQvUGx1Z2lucyBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0Fw
cGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
biBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICAkKFdlYktp
dDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCkBAIC00NSw2ICs0Niw4IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIFBsdWdpblByb2Nlc3MgXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAg
ICAgUGx1Z2luUHJveHkgXAorICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIFwKKyAgICBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJDb250ZXh0IFwKICAgICBX
ZWJEYXRhYmFzZU1hbmFnZXIgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5IFwKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIGxpYldlYktpdDJf
bGFfSEVBREVSUyA9IFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3Lmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaCBcCiAJJChXZWJLaXQyKS9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9D
L1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJ
L0MvV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIFwKIAkkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdC5oIFwKQEAgLTI4Myw2ICsyODQsOCBAQCBs
aWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2d0ay9XS1ZpZXcuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDIu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIFwK
KwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCBcCkBAIC0zODUsNiArMzg4LDggQEAg
bGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxl
ZERyYXdpbmdBcmVhVGlsZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExp
bmtQcm92aWRlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkTGlzdC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIFwK
QEAgLTQ0OSw2ICs0NTQsOCBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZENsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNh
Y2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3du
bG9hZHMvY3VybC9Eb3dubG9hZEN1cmwuY3BwIFwKQEAgLTY1MSw2ICs2NTgsNyBAQCBsaWJXZWJL
aXQyX2xhX0NQUEZMQUdTID0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9ndGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MgXAorCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXApAQCAtODAxLDYgKzgw
OSwxMCBAQCB3ZWJraXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUGx1Z2luUHJveHlNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggXAorCURlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29u
dGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29u
dGV4dE1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGF0YWJhc2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC04NDMsMTEgKzg1NSwxMyBAQCB2cGF0aCAlLm1l
c3NhZ2VzLmluID0gXAogCSQoV2ViS2l0MikvUGx1Z2luUHJvY2VzcyBcCiAJJChXZWJLaXQyKS9T
aGFyZWQvUGx1Z2lucyBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MgXAorCSQoV2ViS2l0MikvVUlQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0Rvd25sb2Fk
cyBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvR2VvbG9jYXRpb24gXAogCSQoV2ViS2l0MikvVUlQ
cm9jZXNzL1BsdWdpbnMgXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAog
CSQoV2ViS2l0MikvV2ViUHJvY2VzcyBcCisJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAJJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
UGx1Z2lucyBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gNzkzMzMpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOCBAQCBXRUJL
SVQyX0dFTkVSQVRFRF9IRUFERVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmggXAotICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdl
cy5oIFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCisgICAgJCRXRUJL
SVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250
ZXh0TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJE
YXRhYmFzZU1hbmFnZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCkBAIC00NSw3ICs0NSw5
IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJQYWdlUHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzTWVzc2FnZXMuaCBcCi0g
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzUHJveHlNZXNzYWdl
cy5oCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaAogCiBXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC01NCw4ICs1
Niw4IEBAIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdp
blByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCi0gICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAotICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAg
ICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NP
VVJDRVNfRElSL1dlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTY3LDcgKzY5LDkgQEAgV0VCS0lUMl9H
RU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
ICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKLSAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlByb2Nl
c3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lU
Ml9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAKIEhFQURFUlMgKz0gXAog
ICAgIFBsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnREZWNvZGVyLmggXApAQCAtMTU3LDcgKzE2MSw3
IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKICAgICBVSVBy
b2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlu
a1Byb3ZpZGVyLmggXAotICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LmggXAorICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHku
aCBcCkBAIC0xNzgsMTggKzE4MiwyMCBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oIFwKICAg
ICBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvbkRhdGEuaCBcCi0gICAgVUlQcm9jZXNzL1dlYlBhZ2VD
b250ZXh0TWVudUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50Lmgg
XAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmggXAogICAgIFVJUHJvY2Vz
cy9XZWJQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc01hbmFnZXIuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
Q2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1l
bnVQcm94eVF0LmggXAorICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5o
IFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCkBAIC0zMjgs
OSArMzM0LDkgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmNwcCBcCiAgICAg
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAotICAgIFVJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250
ZXh0TWVudVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5
LmNwcCBcCkBAIC0zNDksMTQgKzM1NSwxNSBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNw
cCBcCiAgICAgVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25EYXRhLmNwcCBcCi0gICAgVUlQcm9jZXNz
L1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0
TWVudUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwIFwKICAgICBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVu
dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzTWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvQ2h1bmtlZFVwZGF0ZURyYXdpbmdB
cmVhUHJveHlRdC5jcHAgXApAQCAtMzY5LDYgKzM3Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1
cE1lbnVQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlByZWZlcmVuY2VzUXQuY3Bw
IFwKKyAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBcCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgJKHJldmlzaW9uIDc5MzMz
KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksMTggKzM5LDE5IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNz
YWdlQ2xhc3NEcmF3aW5nQXJlYSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYUxlZ2FjeSwK
ICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKLSAgICBNZXNzYWdlQ2xhc3NXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlciwKKyAgICBNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNs
YXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViSW5zcGVj
dG9yLAogICAgIE1lc3NhZ2VDbGFzc1dlYlBhZ2UsCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2Vz
cywKKyAgICBNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciwKIAogICAgIC8vIE1l
c3NhZ2VzIHNlbnQgYnkgdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgogICAgIE1l
c3NhZ2VDbGFzc0Rvd25sb2FkUHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94
eSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5TGVnYWN5LAotICAgIE1lc3NhZ2VD
bGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHksCisgICAgTWVzc2FnZUNsYXNzV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0LAog
ICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHksCkBAIC01OSw2ICs2MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsK
ICAgICBNZXNzYWdlQ2xhc3NXZWJQYWdlUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViUHJvY2Vz
c1Byb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eUxlZ2FjeSwKKyAgICBNZXNz
YWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAogCiAgICAgLy8gTWVzc2FnZXMg
c2VudCBieSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgcGx1Zy1pbiBwcm9jZXNzLgogICAgIE1lc3Nh
Z2VDbGFzc1BsdWdpblByb2Nlc3MsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShy
ZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVVSW50NjQs
CiAgICAgICAgIAogICAgICAgICAvLyBVSVByb2Nlc3MgdHlwZXMKKyAgICAgICAgVHlwZUFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLAogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0LAogICAgICAg
ICBUeXBlQmFja0ZvcndhcmRMaXN0SXRlbSwKICAgICAgICAgVHlwZUNhY2hlTWFuYWdlciwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCShyZXZp
c2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogCisjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtNDIsNCArNDUsMjYgQEAgYm9vbCBTZWN1cml0eU9yaWdpbkRh
dGE6OmRlY29kZShDb3JlSVBDOgogICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6
T3V0KHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCwgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3Qs
IHNlY3VyaXR5T3JpZ2luRGF0YS5wb3J0KSk7CiB9CiAKK3ZvaWQgcGVyZm9ybUFQSUNhbGxiYWNr
V2l0aFNlY3VyaXR5T3JpZ2luRGF0YVZlY3Rvcihjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiYgb3JpZ2luRGF0YXMsIEFycmF5Q2FsbGJhY2sqIGNhbGxiYWNrKQoreworICAgIGlmICgh
Y2FsbGJhY2spIHsKKyAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQuCisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgc2l6ZV90IG9yaWdpbkRhdGFDb3VudCA9IG9y
aWdpbkRhdGFzLnNpemUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVjdD4gPiBzZWN1cml0
eU9yaWdpbnM7CisgICAgc2VjdXJpdHlPcmlnaW5zLnJlc2VydmVDYXBhY2l0eShvcmlnaW5EYXRh
Q291bnQpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmlnaW5EYXRhQ291bnQ7ICsr
aSkgeworICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSA9IG9yaWdpbkRhdGFz
W2ldOworICAgICAgICBSZWZQdHI8QVBJT2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0
YS5wb3J0KTsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgc2VjdXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVuZChvcmlnaW4pOworICAgIH0KKwor
ICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoSW1tdXRhYmxlQXJy
YXk6OmFkb3B0KHNlY3VyaXR5T3JpZ2lucykuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmgJ
KHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIFNlY3VyaXR5
T3JpZ2luRGF0YV9oCiAjZGVmaW5lIFNlY3VyaXR5T3JpZ2luRGF0YV9oCiAKKyNpbmNsdWRlICJB
UElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJUEMgewpAQCAtMzUsNiArMzcsOCBA
QCBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit0eXBlZGVmIEdl
bmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOworCiBzdHJ1Y3QgU2VjdXJp
dHlPcmlnaW5EYXRhIHsKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgU2VjdXJpdHlPcmlnaW5EYXRhJik7CkBAIC00Nyw2ICs1MSw4IEBAIHN0cnVjdCBTZWN1cml0
eU9yaWdpbkRhdGEgewogICAgIGludCBwb3J0OwogfTsKIAordm9pZCBwZXJmb3JtQVBJQ2FsbGJh
Y2tXaXRoU2VjdXJpdHlPcmlnaW5EYXRhVmVjdG9yKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdGE+JiwgQXJyYXlDYWxsYmFjayopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIFNlY3VyaXR5T3JpZ2luRGF0YV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLQmFzZS5oCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsNyBAQCB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1VzZXJDb250ZW50CiAKIC8qIFdlYktpdDIgbWFpbiBBUEkgdHlwZXMg
Ki8KIAordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ciogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UqIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lciogV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXJSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdCogV0tCYWNrRm9yd2FyZExpc3RSZWY7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2Vi
U2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eT4gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eShXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV93ZWJDb250ZXh0KGNvbnRleHQpCit7
Cit9CisKK1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6On5XZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlclByb3h5KCkKK3sKK30KKwordm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJh
eUNhbGxiYWNrcyk7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQ
Qzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVu
dHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhQYXNz
UmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIFJlZlB0cjxBcnJheUNh
bGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworICAgIGlmICghbV93ZWJDb250ZXh0LT5o
YXNWYWxpZFByb2Nlc3MoKSkgeworICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxs
YmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQs
IGNhbGxiYWNrLnJlbGVhc2UoKSk7CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpHZXRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2lucyhjYWxsYmFja0lEKSwgMCk7Cit9CisgICAgCit2b2lkIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk6OmRpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywgdWludDY0X3QgY2FsbGJhY2tJRCkK
K3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tz
LnRha2UoY2FsbGJhY2tJRCk7CisgICAgcGVyZm9ybUFQSUNhbGxiYWNrV2l0aFNlY3VyaXR5T3Jp
Z2luRGF0YVZlY3RvcihvcmlnaW5EYXRhcywgY2FsbGJhY2suZ2V0KCkpOworfQorCit2b2lkIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV2Vi
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFs
aWRQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBTZWN1cml0eU9yaWdpbkRh
dGEgc2VjdXJpdHlPcmlnaW5EYXRhOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCA9
IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICBzZWN1cml0eU9yaWdpbkRhdGEuaG9zdCA9IG9yaWdp
bi0+aG9zdCgpOworICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wb3J0ID0gb3JpZ2luLT5wb3J0KCk7
CisKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXI6OkRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oc2VjdXJpdHlPcmlnaW5E
YXRhKSwgMCk7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6ZGVs
ZXRlQWxsRW50cmllcygpCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2Vz
cygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpEZWxldGVBbGxFbnRyaWVzKCks
IDApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHku
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlfaAorI2RlZmlu
ZSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgIkltbXV0YWJsZUFy
cmF5LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAg
ICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFz
cyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU2VjdXJpdHlP
cmlnaW5EYXRhOworY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwor
Cit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBBcnJheUNhbGxiYWNrOworCitj
bGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7
CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7Cisg
ICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fd2ViQ29udGV4dCA9IDA7IH0KKyAgICAKKyAgICB2
b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4p
OworICAgIHZvaWQgZGVsZXRlRW50cmllc0Zvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOwor
ICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcygpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKworcHJpdmF0ZToKKyAgICBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5KFdlYkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gQVBJVHlwZTsgfQorCisgICAgdm9pZCBkaWRHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
cyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0Owor
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxs
YmFja3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CittZXNzYWdlcyAtPiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5IHsKKyAgICBEaWRH
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyhWZWN0b3I8V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRh
dGE+IG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKK30KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDc5MzMzKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUg
IlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgotI2luY2x1ZGUg
IldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5o
IgogI2luY2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYlBy
b2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC05NywxMCArOTgs
MTEgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvYwogICAgICwgbV9j
bGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JOZXdXZWJQcm9jZXNzKGZhbHNlKQogICAgICwgbV9tZW1v
cnlTYW1wbGVyRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxlckludGVydmFsKDE0
MDAuMCkKLSAgICAsIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eShXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCisgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkoV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQog
ICAgICwgbV9kYXRhYmFzZU1hbmFnZXJQcm94eShXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6Y3Jl
YXRlKHRoaXMpKQogICAgICwgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eShXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9wbHVnaW5TaXRlRGF0YU1hbmFn
ZXIoV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOjpjcmVhdGUodGhpcykpCisgICAgLCBtX3Jlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkoV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRl
KHRoaXMpKQogI2lmIFBMQVRGT1JNKFdJTikKICAgICAsIG1fc2hvdWxkUGFpbnROYXRpdmVDb250
cm9scyh0cnVlKQogI2VuZGlmCkBAIC0xMTgsOCArMTIwLDggQEAgV2ViQ29udGV4dDo6fldlYkNv
bnRleHQoKQogCiAgICAgV2ViUHJvY2Vzc01hbmFnZXI6OnNoYXJlZCgpLmNvbnRleHRXYXNEZXN0
cm95ZWQodGhpcyk7CiAKLSAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRh
dGUoKTsKLSAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOwor
ICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1f
YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CiAKICAgICBtX2dl
b2xvY2F0aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9nZW9sb2NhdGlvbk1h
bmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CkBAIC0xMzAsNiArMTMyLDkgQEAgV2ViQ29udGV4
dDo6fldlYkNvbnRleHQoKQogICAgIG1fcGx1Z2luU2l0ZURhdGFNYW5hZ2VyLT5pbnZhbGlkYXRl
KCk7CiAgICAgbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXItPmNsZWFyQ29udGV4dCgpOwogCisgICAg
bV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9yZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKKwogI2lmbmRlZiBOREVCVUcKICAg
ICB3ZWJDb250ZXh0Q291bnRlci5kZWNyZW1lbnQoKTsKICNlbmRpZgpAQCAtMjU1LDYgKzI2MCw3
IEBAIHZvaWQgV2ViQ29udGV4dDo6cHJvY2Vzc0RpZENsb3NlKFdlYlByb2MKIAogICAgIG1fZG93
bmxvYWRzLmNsZWFyKCk7CiAKKyAgICBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHktPmlu
dmFsaWRhdGUoKTsKICAgICBtX2RhdGFiYXNlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAg
ICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwogICAgIG1fcmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOwpAQCAtNTIyLDggKzUyOCw4IEBAIHZv
aWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewotICAgICAgICBtX3Jlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgaWYgKG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5PigpKSB7
CisgICAgICAgIG1fYXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC01MzcsNiArNTQzLDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkg
eworICAgICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5n
ZXQ8V2ViQ29udGV4dExlZ2FjeU1lc3NhZ2U6OktpbmQ+KCkpIHsKICAgICAgICAgY2FzZSBXZWJD
b250ZXh0TGVnYWN5TWVzc2FnZTo6UG9zdE1lc3NhZ2U6IHsKICAgICAgICAgICAgIFN0cmluZyBt
ZXNzYWdlTmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2
aXNpb24gNzkzMzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NSwxMSArNDUsMTIgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBEb3dubG9hZFByb3h5OwotY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsK
K2NsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3Mg
V2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OworY2xhc3MgV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eTsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogCiBj
bGFzcyBXZWJDb250ZXh0IDogcHVibGljIEFQSU9iamVjdCB7CkBAIC0xMzAsMTAgKzEzMSwxMSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4g
cGRmQW5kUG9zdFNjcmlwdE1JTUVUeXBlcygpOwogCi0gICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eSogcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eS5nZXQoKTsgfQorICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyUHJveHkqIGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVy
biBtX2FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eSogZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGFiYXNlTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkqIGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5nZXQoKTsgfQogICAgIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciogcGx1
Z2luU2l0ZURhdGFNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5TaXRlRGF0YU1hbmFn
ZXIuZ2V0KCk7IH0KKyAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KiByZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5LmdldCgpOyB9CiAKICAgICBzdHJ1Y3QgU3RhdGlzdGljcyB7CiAgICAgICAgIHVuc2lnbmVk
IHdrVmlld0NvdW50OwpAQCAtMjEyLDEwICsyMTQsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
bWVtb3J5U2FtcGxlckVuYWJsZWQ7CiAgICAgZG91YmxlIG1fbWVtb3J5U2FtcGxlckludGVydmFs
OwogCi0gICAgUmVmUHRyPFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+IG1fcmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eTsKKyAgICBSZWZQdHI8V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eT4gbV9hcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eT4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiAgICAg
UmVmUHRyPFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcj4gbV9wbHVnaW5TaXRlRGF0YU1hbmFnZXI7
CisgICAgUmVmUHRyPFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+IG1fcmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eTsKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBib29sIG1fc2hvdWxkUGFp
bnROYXRpdmVDb250cm9sczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsOSArMjMwLDEw
IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSgKICAgICBpZiAobWVz
c2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHQ+KCkKICAgICAgICAgfHwg
bWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3k+KCkKICAg
ICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+
KCkKLSAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHk+KCkKKyAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHk+KCkKICAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5PigpCi0gICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+KCkKKyAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHk+KCkpIHsKICAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzEsMjQgKzcxLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Ojpn
ZXRDYQogdm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRHZXRDYWNoZU9yaWdp
bnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJh
eUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOwotICAgIGlmICghY2FsbGJhY2spIHsKLSAgICAg
ICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQuCi0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBzaXplX3Qgb3JpZ2luSWRlbnRpZmllcnNDb3VudCA9IG9yaWdpbnMuc2l6ZSgpOwot
ICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHNlY3VyaXR5T3JpZ2luczsKLSAgICBzZWN1
cml0eU9yaWdpbnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbklkZW50aWZpZXJzQ291bnQpOwotCi0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmlnaW5JZGVudGlmaWVyc0NvdW50OyArK2kpIHsK
LSAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEgPSBvcmlnaW5zW2ldOwotICAg
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsK
LSAgICAgICAgaWYgKCFvcmlnaW4pCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgc2Vj
dXJpdHlPcmlnaW5zLnVuY2hlY2tlZEFwcGVuZChvcmlnaW4pOwotICAgIH0KLQotICAgIGNhbGxi
YWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoSW1tdXRhYmxlQXJyYXk6OmFkb3B0
KHNlY3VyaXR5T3JpZ2lucykuZ2V0KCkpOworICAgIHBlcmZvcm1BUElDYWxsYmFja1dpdGhTZWN1
cml0eU9yaWdpbkRhdGFWZWN0b3Iob3JpZ2lucywgY2FsbGJhY2suZ2V0KCkpOwogfQogCiB2b2lk
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNsZWFyQ2FjaGVGb3JPcmlnaW4oV2ViU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbikKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIGNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OworY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07CiBjbGFzcyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwpAQCAtNjYsNiArNjcs
NyBAQCBjbGFzcyBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXI7CiBjbGFzcyBXZWJQcmVmZXJlbmNl
czsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFjZTsKIAorV0tfQUREX0FQSV9NQVBQSU5HKFdLQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJSZWYsIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0
aW9uRGVjaXNpb25MaXN0ZW5lclJlZiwgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgorCisj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKFdLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYsIHZvaWQqIGNvbnRleHQs
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0Z1bmN0
aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChhcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZikt
PmdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0
LCBjYWxsYmFjaykpOworfQorCit2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVF
bnRyaWVzRm9yT3JpZ2luKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25D
YWNoZU1hbmFnZXJSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRv
SW1wbChhcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiktPmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4o
dG9JbXBsKG9yaWdpblJlZikpOworfQorCit2b2lkIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJE
ZWxldGVBbGxFbnRyaWVzKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25D
YWNoZU1hbmFnZXJSZWYpCit7CisgICAgdG9JbXBsKGFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVm
KS0+ZGVsZXRlQWxsRW50cmllcygpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpX
S0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnNGdW5jdGlv
bikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlckdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJSZWYgYXBwbGljYXRpb25DYWNoZU1hbmFnZXIsIHZvaWQqIGNvbnRleHQs
IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJHZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luc0Z1bmN0
aW9uIGZ1bmN0aW9uKTsKKworV0tfRVhQT1JUIHZvaWQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclJlZiBhcHBs
aWNhdGlvbkNhY2hlTWFuYWdlciwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pOworV0tfRVhQ
T1JUIHZvaWQgV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlclJlZiBhcHBsaWNhdGlvbkNhY2hlTWFuYWdlcik7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS0FwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCShyZXZpc2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsOSArMTU4LDkgQEAgdm9pZCBX
S0NvbnRleHRDbGVhckFwcGxpY2F0aW9uQ2FjaGUoV0tDbwogICAgIHRvSW1wbChjb250ZXh0UmVm
KS0+Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKCk7CiB9CiAKLVdLUmVzb3VyY2VDYWNoZU1hbmFnZXJS
ZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRS
ZWYpCitXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldEFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewotICAgIHJldHVybiB0b0FQ
SSh0b0ltcGwoY29udGV4dFJlZiktPnJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKSk7CisgICAg
cmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+YXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eSgpKTsKIH0KIAogV0tEYXRhYmFzZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0RGF0YWJhc2VN
YW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQpAQCAtMTc4LDYgKzE3OCwxMSBAQCBXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQCiAgICAgcmV0dXJuIHRvQVBJKHRv
SW1wbChjb250ZXh0UmVmKS0+cGx1Z2luU2l0ZURhdGFNYW5hZ2VyKCkpOwogfQogCitXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJl
ZiktPnJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKSk7Cit9CisKIHZvaWQgV0tDb250ZXh0U3Rh
cnRNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0RvdWJsZVJlZiBpbnRl
cnZhbCkKIHsKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnN0YXJ0TWVtb3J5U2FtcGxlcih0b0lt
cGwoaW50ZXJ2YWwpLT52YWx1ZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmgJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsMTAgKzEyMywx
MSBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhckFwcGxpY2F0aW9uCiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTdGFydE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdL
RG91YmxlUmVmIGludGVydmFsKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0b3BNZW1vcnlT
YW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAotV0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNo
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOworV0tfRVhQT1JUIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJSZWYgV0tDb250
ZXh0R2V0QXBwbGljYXRpb25DYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tf
RVhQT1JUIFdLRGF0YWJhc2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihX
S0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYg
V0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdL
X0VYUE9SVCBXS1BsdWdpblNpdGVEYXRhTWFuYWdlclJlZiBXS0NvbnRleHRHZXRQbHVnaW5TaXRl
RGF0YU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOworV0tfRVhQT1JUIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VDYWNoZU1hbmFnZXIoV0tDb250ZXh0
UmVmIGNvbnRleHQpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc5
MzMzKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiArMjY2LDE4IEBACiAJCTUxMjkzNUQ4MTI4OEQxOTQw
MEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250
ZXh0TWVudUl0ZW0uaCAqLzsgfTsKIAkJNTEyOTM1RTMxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi87IH07CiAJCTUxMjkzNUU0MTI4
OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTIxMjg4
RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi87
IH07CisJCTUxMkUzNEU0MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
N0EzM0IzMTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCAq
LzsgfTsKKwkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
N0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQk1MTJFMzUyNDEz
MEI1NTA2MDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzUyMDEzMEI1
NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgKi87IH07
CisJCTUxMkUzNTI1MTMwQjU1MDYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTJFMzUyMTEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eS5oICovOyB9OworCQk1MTJFMzUyRTEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEyRTM1MkIxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLmNwcCAqLzsgfTsKKwkJNTEyRTM1MkYxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTJFMzUyQzEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaCAqLzsgfTsKKwkJNTEyRTM1MzAxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzUyRDEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gKi87IH07CisJCTUxMkUzNTZBMTMwQjU3RjAw
MEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzU2ODEz
MEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OworCQk1MTJFMzU2QjEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEyRTM1NjkxMzBCNTdGMDAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJNTEyRTM1RjExMzBCNjM4QzAwQUJEMTlB
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkUzNUYwMTMwQjYzOEMw
MEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICov
OyB9OworCQk1MTJFMzVGODEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJFMzVGNjEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxMkUz
NUY5MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MkUzNUY3MTMwQjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZXMuaCAqLzsgfTsKIAkJNTEyRjU4OEExMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRp
Y2F0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTJGNTg4NzEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmNwcCAqLzsgfTsKIAkJNTEyRjU4OEIxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9u
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEyRjU4ODgxMkE4ODM2NjAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5oICovOyB9
OwogCQk1MTJGNTg4QzEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTJGNTg4OTEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3Nh
Z2VzLmluICovOyB9OwpAQCAtMTA2MCw2ICsxMDcyLDE2IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQw
MEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0
TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VD
b250ZXh0TWVudUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTJFMzUyMDEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTEyRTM1MjExMzBCNTUwMTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJF
MzUyQjEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuY3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNTJDMTMwQjU1QUYw
MEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oOyBwYXRoID0gQXBw
bGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTJFMzUyRDEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hl
L1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTJFMzU2ODEzMEI1N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTJFMzU2OTEzMEI1N0YwMDBBQkQxOUEg
LyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMkUzNUY2MTMwQjY0MkUwMEFCRDE5QSAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTJFMzVGNzEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTJGNTg4NzEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkY1ODg4MTJBODgzNjYw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMkY1ODg5MTJBODgzNjYwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXV0aGVudGljYXRpb25NYW5h
Z2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4NSw2ICsx
MTA3LDggQEAKIAkJNTE1MzU2OUIxMjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVu
dUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlQ29udGV4
dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE1NzhCODIxMjA5
RUNFRjAwQTM3QzRBIC8qIFdlYkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTZBNEE1QjEyMEEy
Q0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QTMzQjMxMzBC
MzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxN0EzM0I0MTMwQjMwOEMwMEY4MENCNSAv
KiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE4NzFCNTkxMjdDQjg5RDAwRjc2MjMyIC8qIFdlYkNvbnRleHRNZW51LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4NzFCNUExMjdDQjg5RDAwRjc2MjMyIC8q
IFdlYkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxOEFDQUU5MTJBRUU2
QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwNzgsNiArMjEwMiwxNiBAQAogCQkJbmFtZSA9IGNmOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTEyRTM1MkExMzBCNTU5OTAwQUJEMTlBIC8q
IEFwcGxpY2F0aW9uQ2FjaGUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTUxMkUzNTJCMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAgKi8sCisJCQkJNTEyRTM1MkMxMzBCNTVBRjAwQUJEMTlBIC8qIFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8sCisJCQkJNTEyRTM1MkQxMzBCNTVBRjAwQUJEMTlBIC8q
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCW5h
bWUgPSBBcHBsaWNhdGlvbkNhY2hlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTIxMTYsNiArMjE1MCw3IEBACiAJ
CUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTJFMzUyQTEzMEI1NTk5MDBBQkQxOUEg
LyogQXBwbGljYXRpb25DYWNoZSAqLywKIAkJCQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAgLyog
QXV0aGVudGljYXRpb24gKi8sCiAJCQkJMUE2MTYxNEMxMjc3OThCNTAwM0FDRDg2IC8qIERvd25s
b2FkcyAqLywKIAkJCQlCQzBFNUZDQjEyRDY5NkREMDAxMkE3MkEgLyogR2VvbG9jYXRpb24gKi8s
CkBAIC0yMjUwLDYgKzIyODUsOSBAQAogCQkJCTFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBU
ZXh0Q2hlY2tlci5oICovLAogCQkJCTFBMEYyOUUxMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVk
TGlua1Byb3ZpZGVyLmNwcCAqLywKIAkJCQkxQTBGMjlFMjEyMEI0NDQyMDA1M0QxQjkgLyogVmlz
aXRlZExpbmtQcm92aWRlci5oICovLAorCQkJCTUxMkUzNTIwMTMwQjU1MDEwMEFCRDE5QSAvKiBX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQk1MTJFMzUyMTEzMEI1
NTAxMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oICovLAorCQkJ
CTUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDNzJCQTFCMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJC
YWNrRm9yd2FyZExpc3QuY3BwICovLAogCQkJCUJDNzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAvKiBX
ZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKIAkJCQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyog
V2ViQ29udGV4dC5jcHAgKi8sCkBAIC0yMzQyLDYgKzIzODAsOCBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQkNCNjM0NzcxMTZCRjEwNjAwNjAzMjE1IC8qIFdlYktpdDIuaCAqLywKIAkJCQlCQ0RE
QjMyQzEyNEVDMkUxMDA0OEQxM0MgLyogV0tBUElDYXN0LmggKi8sCisJCQkJNTE3QTMzQjMxMzBC
MzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwICovLAorCQkJCTUx
N0EzM0I0MTMwQjMwOEMwMEY4MENCNSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggKi8s
CiAJCQkJNTEyRjU4RUQxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuY3BwICovLAogCQkJCTUxMkY1OEVFMTJBODhBNTQwMDYyOTUzMCAvKiBXS0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLmggKi8sCiAJCQkJNTEyRjU4RUYxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQXV0
aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCAqLywKQEAgLTI4MzcsNiArMjg3NywxMCBA
QAogCQkJCTFBMDQzQjVDMTI0RDVFOUQwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNz
YWdlcy5oICovLAogCQkJCTFBOEVGQTZFMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUE4RUZBNkYxMjUyQjg0MTAwRjcwNjdGIC8qIFBs
dWdpblByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQk1MTJFMzU2ODEzMEI1N0YwMDBBQkQxOUEgLyog
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUx
MkUzNTY5MTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3Nh
Z2VzLmggKi8sCisJCQkJNTEyRTM1RjYxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTUxMkUzNUY3MTMw
QjY0MkUwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCAqLywKIAkJCQlCQ0VFN0QwQjEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCiAJCQkJQkNFRTdEMEMxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRl
eHRNZXNzYWdlcy5oICovLAogCQkJCUY2MkE3NkIyMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRh
YmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMzI1Miw2ICszMjk2LDExIEBA
CiAJCQkJQkNBNTZBMUMxMkY5MDI4RTAwQzU2NkM3IC8qIFdlYkdyYXBoaWNzQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNBNTZBNjUxMkY5QzhGOTAwQzU2NkM3IC8qIFdLR3JhcGhpY3ND
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NkE2OTEyRjlDOUFEMDBDNTY2QzcgLyog
V0tHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEyRTM0RTUxMzBCNEQw
NTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUxMkUzNTI1MTMwQjU1MDYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJFMzUyRjEzMEI1NUFGMDBBQkQxOUEgLyog
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMkUzNTZC
MTMwQjU3RjAwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTJFMzVGOTEzMEI2NDJFMDBBQkQxOUEgLyogV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQ1
NDIzNDEzMEM1RjNGMDA3M0UxQzEgLyogVGV4dEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
Qzg2RkY0MTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFDODcwMkQxMzBCNDlBMjAwMkMxMjU3IC8qIFdlYlBsdWdpblNpdGVE
YXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzY3LDYgKzM0MTYsOCBAQAogCQkJZmls
ZXMgPSAoCiAJCQkJOERDMkVGNTMwNDg2QTY5NDAwOThCMjE2IC8qIEluZm9QbGlzdC5zdHJpbmdz
IGluIFJlc291cmNlcyAqLywKIAkJCQk1MTJGNTg4QzEyQTg4MzY2MDA2Mjk1MzAgLyogQXV0aGVu
dGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLywKKwkJCQk1MTJFMzUz
MDEzMEI1NUFGMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMu
aW4gaW4gUmVzb3VyY2VzICovLAorCQkJCTUxMkUzNUYxMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGluIFJlc291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTM3MzgsNiArMzc4OSwxMSBAQAogCQkJCUJDQTU2QTY2MTJGOUM4RjkwMEM1NjZDNyAvKiBX
S0dyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E1NkE2QTEyRjlDOUFE
MDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRleHRDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2Fk
Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMkUzNEU0MTMwQjREMDUwMEFCRDE5QSAv
KiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMkUz
NTI0MTMwQjU1MDYwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTUxMkUzNTJFMTMwQjU1QUYwMEFCRDE5QSAvKiBXZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTJFMzU2QTEzMEI1
N0YwMDBBQkQxOUEgLyogV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyRTM1RjgxMzBCNjQyRTAwQUJEMTlBIC8qIFdlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM0NTQyMzUxMzBDNUYzRjAwNzNFMUMxIC8qIFRleHRJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQzg2RkYzMTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRh
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUM4NzAyRTEzMEI0OUEyMDAyQzEyNTcg
LyogV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3OTMzMykKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29k
ZXJzLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKLSNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJh
c2VNYW5hZ2VyLmgiCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+CkBAIC01MjMsOCArNTI0LDggQEAgdm9pZCBXZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlcj4oKSkgewotICAgICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXI+KCkpIHsKKyAgICAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OnNoYXJl
ZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTM4LDYgKzUzOSwxMSBAQCB2b2lkIFdlYlBy
b2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyPigpKSB7CisgICAgICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpzaGFyZWQo
KS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlPigpKSB7CiAgICAgICAgIGlmICghbV9pbmplY3RlZEJ1
bmRsZSkKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCisKKyNp
bmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNp
bmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luSGFzaC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyJiBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkKK3sKKyAgICBzdGF0aWMgV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXImIHNoYXJlZCA9ICpuZXcgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXI7CisgICAgcmV0dXJuIHNoYXJlZDsKK30KKworV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6
OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyKCkKK3sKK30KKwordm9pZCBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3Zv
aWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5z
KHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmln
aW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+IG9yaWdpbnM7CisKKyNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQorICAgIGNhY2hlU3RvcmFnZSgpLmdldE9yaWdpbnNXaXRoQ2FjaGUo
b3JpZ2lucyk7CisjZW5kaWYKKworICAgIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50
aWZpZXJzOworICAgIGlkZW50aWZpZXJzLnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7
CisKKyAgICBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFz
aD46Oml0ZXJhdG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7CisgICAgSGFzaFNldDxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+OjppdGVyYXRvciBpID0gb3JpZ2lucy5i
ZWdpbigpOworICAgIGZvciAoOyBpICE9IGVuZDsgKytpKSB7CisgICAgICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gb3JpZ2luID0gKmk7CisgICAgICAgIAorICAgICAgICBTZWN1cml0eU9yaWdp
bkRhdGEgb3JpZ2luRGF0YTsKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+
cHJvdG9jb2woKTsKKyAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7Cisg
ICAgICAgIG9yaWdpbkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgICAgIGlkZW50
aWZpZXJzLnVuY2hlY2tlZEFwcGVuZChvcmlnaW5EYXRhKTsKKyAgICB9CisKKyAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyUHJveHk6OkRpZEdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKGlkZW50aWZp
ZXJzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW5EYXRhKQoreworI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdp
bkRhdGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsKKyAgICBp
ZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGNhY2hlU3RvcmFnZSgpLmRl
bGV0ZUVudHJpZXNGb3JPcmlnaW4ob3JpZ2luLmdldCgpKTsKKyNlbmRpZgorfQorCit2b2lkIFdl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVBbGxFbnRyaWVzKCkKK3sKKyNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGNhY2hlU3RvcmFnZSgpLmRlbGV0ZUFs
bEVudHJpZXMoKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBw
bGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyX2gKKyNkZWZpbmUgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKyAg
ICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQ29ubmVjdGlvbjsKKyAgICBjbGFz
cyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTZWN1cml0eU9y
aWdpbkRhdGE7CisKK2NsYXNzIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcik7CisKK3B1YmxpYzoK
KyAgICBzdGF0aWMgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXImIHNoYXJlZCgpOworCisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVz
c2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworcHJpdmF0ZToKKyAgICBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcigpOworICAgIAorICAgIHZvaWQgZ2V0QXBwbGljYXRpb25D
YWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBkZWxldGVFbnRyaWVz
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOworICAgIHZvaWQgZGVsZXRlQWxs
RW50cmllcygpOworCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIu
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDI3IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3Nh
Z2VzIC0+IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyIHsKKyAgICB2b2lkIEdldEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVFbnRy
aWVzRm9yT3JpZ2luKFdlYktpdDo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbklkZW50aWZpZXIp
CisgICAgdm9pZCBEZWxldGVBbGxFbnRyaWVzKCkKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oJKHJldmlzaW9uIDc5MzMzKQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzE4LDYgKzEzMTgsMjIgQEAKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViUHJvY2Vzc01haW4uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CisgICAgICAgICAgICA8RmlsdGVyCisgICAgICAgICAgICAgICAgTmFtZT0iQXBwbGljYXRpb25D
YWNoZSIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGVcV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlXFdlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9uQ2FjaGVcV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIubWVzc2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisgICAgICAgICAg
ICA8L0ZpbHRlcj4KIAkJCTxGaWx0ZXIKIAkJCQlOYW1lPSJBdXRoZW50aWNhdGlvbiIKIAkJCQk+
CkBAIC0yMjkwLDYgKzIzMDYsMTggQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xW
aXNpdGVkTGlua1Byb3ZpZGVyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJPgorCQkJ
PC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJCYWNr
Rm9yd2FyZExpc3QuY3BwIgogCQkJCT4KQEAgLTI1ODAsNiArMjYwOCwxNCBAQAogCQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tBUElDYXN0LmgiCiAJCQkJCQk+CiAJCQkJ
CTwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAgPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXEFQSVxDXFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIgorCQkJCQkJ
PgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCisJCQkJCQk+CisJCQkJCTwv
RmlsZT4KIAkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxD
XFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuY3BwIgogCQkJCQkJPgpAQCAtMzM3MSw2ICszNDA3
LDIyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgogCQkJPC9G
aWxlPgpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCShyZXZp
c2lvbiA3OTMzMykKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMJ
KHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJv
amVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdp
blByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJl
ZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0
c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJ
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdl
b2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJj
ZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIp
XEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJp
dmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndh
cmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdl
YkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNm
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNo
ZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
V2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdl
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5k
bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVk
QnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lu
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2Fw
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
SW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5j
bHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCiAJCVByZXBy
b2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1dFQktJVF9FWFBPUlRTO0ZSQU1FV09SS19OQU1F
PVdlYktpdDtCVUlMRElOR19XRUJLSVQiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQ
cmVjb21waWxlZEhlYWRlclRocm91Z2g9IldlYktpdDJQcmVmaXguaCIKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQkocmV2aXNpb24gNzkzMzMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0z
NywxMSArMzcsMTEgQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tV
UkxSZXNwb25zZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgog
ICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tVc2VyQ29udGVudFVSTFBhdHRlcm4u
aCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAv
eSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdlYktpdDIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGRE
aXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxj
XFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVc
V2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQXV0aGVudGlj
YXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRl
XFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3
YXJkTGlzdC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAg
IHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgi
ICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCi0gICAgeGNvcHkgL3kg
L2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmgiICIlQ29uZmln
dXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJ
UHJvY2Vzc1xBUElcQ1xXS0NvbnRleHQuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1
ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4
dFByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAg
ICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ3JlZGVudGlhbC5oIiAiJUNvbmZp
Z3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgpAQCAtNjcsNiArNjcsNyBAQCBhbGw6
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5
IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tQcm90ZWN0aW9uU3BhY2UuaCIgIiVDb25maWd1
cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCIgIiVDb25maWd1cmF0aW9uQnVp
bGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXHdpblxX
S0NvbnRleHRQcml2YXRlV2luLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdl
YktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1x3aW5cV0tWaWV3Lmgi
ICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kg
L2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1x3aW5cV0tWaWV3UHJpdmF0ZS5oIiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgo=
</data>
<flag name="review"
          id="75174"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="75175"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83407</attachid>
            <date>2011-02-22 16:05:49 -0800</date>
            <delta_ts>2011-02-22 16:07:16 -0800</delta_ts>
            <desc>Final patch v1 - Implement the WebCore stubs</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3038</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MzY3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMjIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYyMDQyPiBhbmQgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE0CisgICAgICAgIEFQSSB0byB2aWV3
IGFuZCBkZWxldGUgQXBwbGljYXRpb24gQ2FjaGUgZGF0YSBieSBvcmlnaW4uCisKKyAgICAgICAg
SW1wbGVtZW50IHRoZXNlIHRvIGJlIHVzZWQgYnkgV0syIEFQSToKKyAgICAgICAgKiBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmdldE9yaWdpbnNXaXRoQ2FjaGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4p
OgorCiAyMDExLTAyLTIyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAJ
KHJldmlzaW9uIDc5MzY0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4OCwxNiArMTI4OCwz
OSBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjaGVja0Zvck1hCiAgICAgICAgIG1f
aXNNYXhpbXVtU2l6ZVJlYWNoZWQgPSB0cnVlOwogfQogCi12b2lkIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpnZXRPcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2VjdXJpdHlPcmlnaW5IYXNoPiYpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpn
ZXRPcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJp
dHlPcmlnaW5IYXNoPiYgb3JpZ2lucykKIHsKLSAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVt
Lzg3NjIwNDI+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1
MTQgLSBJbXBsZW1lbnQuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBWZWN0b3I8S1VSTD4g
dXJsczsKKyAgICBpZiAoIW1hbmlmZXN0VVJMcygmdXJscykpIHsKKyAgICAgICAgTE9HX0VSUk9S
KCJGYWlsZWQgdG8gcmV0cmlldmUgQXBwbGljYXRpb25DYWNoZSBtYW5pZmVzdCBVUkxzIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBNdWx0aXBsZSBtYW5pZmVzdCBVUkxzIG1p
Z2h0IHNoYXJlIHRoZSBzYW1lIFNlY3VyaXR5T3JpZ2luLCBzbyB3ZSBtaWdodCBiZSBjcmVhdGlu
ZyBleHRyYSwgd2FzdGVkIG9yaWdpbnMgaGVyZS4KKyAgICAvLyBUaGUgY3VycmVudCBzY2hlbWEg
ZG9lc24ndCBhbGxvdyBmb3IgYSBtb3JlIGVmZmljaWVudCB3YXkgb2YgYnVpbGRpbmcgdGhpcyBs
aXN0LgorICAgIHNpemVfdCBjb3VudCA9IHVybHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9y
aWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsc1tpXSk7CisgICAgICAgIG9yaWdpbnMu
YWRkKG9yaWdpbik7CisgICAgfQogfQogCi12b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpk
ZWxldGVFbnRyaWVzRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKikKK3ZvaWQgQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdp
bikKIHsKLSAgICAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzg3NjIwNDI+IGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1MTQgLSBJbXBsZW1lbnQuCi0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBWZWN0b3I8S1VSTD4gdXJsczsKKyAgICBpZiAoIW1hbmlm
ZXN0VVJMcygmdXJscykpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gcmV0cmlldmUg
QXBwbGljYXRpb25DYWNoZSBtYW5pZmVzdCBVUkxzIik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICAvLyBNdWx0aXBsZSBtYW5pZmVzdCBVUkxzIG1pZ2h0IHNoYXJlIHRoZSBzYW1lIFNl
Y3VyaXR5T3JpZ2luLCBzbyB3ZSBtaWdodCBiZSBjcmVhdGluZyBleHRyYSwgd2FzdGVkIG9yaWdp
bnMgaGVyZS4KKyAgICAvLyBUaGUgY3VycmVudCBzY2hlbWEgZG9lc24ndCBhbGxvdyBmb3IgYSBt
b3JlIGVmZmljaWVudCB3YXkgb2YgZGVsZXRpbmcgYnkgb3JpZ2luLgorICAgIHNpemVfdCBjb3Vu
dCA9IHVybHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkg
eworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1hbmlmZXN0T3JpZ2luID0gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZSh1cmxzW2ldKTsKKyAgICAgICAgaWYgKG1hbmlmZXN0T3JpZ2luLT5p
c1NhbWVTY2hlbWVIb3N0UG9ydChvcmlnaW4pKQorICAgICAgICAgICAgZGVsZXRlQ2FjaGVHcm91
cCh1cmxzW2ldKTsKKyAgICB9CiB9CiAKIHZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmRl
bGV0ZUFsbEVudHJpZXMoKQo=
</data>
<flag name="review"
          id="75224"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="75225"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>