<?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>203431</bug_id>
          
          <creation_ts>2019-10-25 13:00:15 -0700</creation_ts>
          <short_desc>REGRESSION (r250754): web page using IDBIndex doesn&apos;t load occasionally</short_desc>
          <delta_ts>2019-11-05 10:26:29 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1583976</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-10-25 13:00:15 -0700</bug_when>
    <thetext>Reproducible steps:
1. Open local test page in minibrowser: OpenSource/PerformanceTests/IndexedDB/basic/index-count-key.html
2. Nagivate to OpenSource/PerformanceTests/IndexedDB/basic/index-count.html (address bar)

Result: second page does not load</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583983</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-10-25 13:26:08 -0700</bug_when>
    <thetext>Adding shouldPreventEnteringBackForwardCache_DEPRECATED() to return true in IDBIndex fixes the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583985</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-25 13:28:42 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #1)
&gt; Adding shouldPreventEnteringBackForwardCache_DEPRECATED() to return true in
&gt; IDBIndex fixes the issue.

This would not the right fix though, just to be clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584125</commentid>
    <comment_count>3</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-10-25 18:30:11 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; (In reply to Sihui Liu from comment #1)
&gt; &gt; Adding shouldPreventEnteringBackForwardCache_DEPRECATED() to return true in
&gt; &gt; IDBIndex fixes the issue.
&gt; 
&gt; This would not the right fix though, just to be clear.

The cause is the IDBDatabase object is not destroyed and database connection stays open when user navigates to another page. When the second page tries to delete the database, it&apos;s blocked on the open connection.

We have to close database connections on navigation, and this would change the state of the IDB DOM objects (open connection -&gt; closed, ongoing transaction -&gt; aborted, etc). If the state change is acceptable for page cache, we probably stop()/close() the IDBDatabase in suspend().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584129</commentid>
    <comment_count>4</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-10-25 18:33:46 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #3)
&gt; (In reply to Chris Dumez from comment #2)
&gt; &gt; (In reply to Sihui Liu from comment #1)
&gt; &gt; &gt; Adding shouldPreventEnteringBackForwardCache_DEPRECATED() to return true in
&gt; &gt; &gt; IDBIndex fixes the issue.
&gt; &gt; 
&gt; &gt; This would not the right fix though, just to be clear.
&gt; 
&gt; The cause is the IDBDatabase object is not destroyed and database connection
&gt; stays open when user navigates to another page. When the second page tries
&gt; to delete the database, it&apos;s blocked on the open connection.
&gt; 
&gt; We have to close database connections on navigation, and this would change
&gt; the state of the IDB DOM objects (open connection -&gt; closed, ongoing
&gt; transaction -&gt; aborted, etc). If the state change is acceptable for page
&gt; cache, we probably stop()/close() the IDBDatabase in suspend().

Or maybe to invalidate the IDB objects when there are IDB changes from the new page, and discard page cache when there are invalidated IDB objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584136</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-25 18:45:45 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #4)
&gt; (In reply to Sihui Liu from comment #3)
&gt; &gt; (In reply to Chris Dumez from comment #2)
&gt; &gt; &gt; (In reply to Sihui Liu from comment #1)
&gt; &gt; &gt; &gt; Adding shouldPreventEnteringBackForwardCache_DEPRECATED() to return true in
&gt; &gt; &gt; &gt; IDBIndex fixes the issue.
&gt; &gt; &gt; 
&gt; &gt; &gt; This would not the right fix though, just to be clear.
&gt; &gt; 
&gt; &gt; The cause is the IDBDatabase object is not destroyed and database connection
&gt; &gt; stays open when user navigates to another page. When the second page tries
&gt; &gt; to delete the database, it&apos;s blocked on the open connection.
&gt; &gt; 
&gt; &gt; We have to close database connections on navigation, and this would change
&gt; &gt; the state of the IDB DOM objects (open connection -&gt; closed, ongoing
&gt; &gt; transaction -&gt; aborted, etc). If the state change is acceptable for page
&gt; &gt; cache, we probably stop()/close() the IDBDatabase in suspend().
&gt; 
&gt; Or maybe to invalidate the IDB objects when there are IDB changes from the
&gt; new page, and discard page cache when there are invalidated IDB objects

We need to be careful about Web compatibility.

I looked at the spec and found:
&quot;&quot;&quot;
A connection may be closed by a user agent in exceptional circumstances, for example due to loss of access to the file system, a permission change, or clearing of the origin’s storage. If this occurs the user agent must run close a database connection with the connection and with the forced flag set to true.
&quot;&quot;&quot;

It looks like &quot;close a database connection&quot; algorithm fires a &quot;close&quot; event so I guess the page would at least get notified on resume that the connection was closed and could re-open it itself.

Ideally though, the Web page would not have to do anything and things would recover nicely by themselves upon resuming. That said, I have no idea if it is feasible here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584541</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 12:35:33 -0700</bug_when>
    <thetext>Sihui, are you looking into fixing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586107</commentid>
    <comment_count>7</comment_count>
      <attachid>382510</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-10-31 15:37:58 -0700</bug_when>
    <thetext>Created attachment 382510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586117</commentid>
    <comment_count>8</comment_count>
      <attachid>382514</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-10-31 15:58:40 -0700</bug_when>
    <thetext>Created attachment 382514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586678</commentid>
    <comment_count>9</comment_count>
      <attachid>382659</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-11-01 17:15:39 -0700</bug_when>
    <thetext>Created attachment 382659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586755</commentid>
    <comment_count>10</comment_count>
      <attachid>382659</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-02 11:59:41 -0700</bug_when>
    <thetext>Comment on attachment 382659
Patch

r- due to EWS failures (crashes look related).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587053</commentid>
    <comment_count>11</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-11-04 10:46:42 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Comment on attachment 382659 [details]
&gt; Patch
&gt; 
&gt; r- due to EWS failures (crashes look related).

That crash is not caused by this patch: https://bugs.webkit.org/show_bug.cgi?id=201744. It&apos;s been around for a while and I&apos;ve not reproduced successfully on a local build yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587098</commentid>
    <comment_count>12</comment_count>
      <attachid>382659</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-04 12:55:14 -0800</bug_when>
    <thetext>Comment on attachment 382659
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:470
&gt; +    if (scriptExecutionContext()-&gt;isDocument()) {

If the global object that has the open database handle is a web worker (i.e. not a Document) then it will not do the right thing here.

IDB is frequently used by workers, so we definitely have to handle that case.

I wonder if Workers know if their owning document is in the page cache?
If not, I wonder how hard it would be to teach them?

Regardless, we need to solve that.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:88
&gt; +    void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&amp; requestIdentifier, bool connectionClosedOnBehalfOfServer);

Hard to read with trues and falses scattered about.
Let&apos;s make the bool be an enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587100</commentid>
    <comment_count>13</comment_count>
      <attachid>382659</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-04 12:58:27 -0800</bug_when>
    <thetext>Comment on attachment 382659
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:470
&gt;&gt; +    if (scriptExecutionContext()-&gt;isDocument()) {
&gt; 
&gt; If the global object that has the open database handle is a web worker (i.e. not a Document) then it will not do the right thing here.
&gt; 
&gt; IDB is frequently used by workers, so we definitely have to handle that case.
&gt; 
&gt; I wonder if Workers know if their owning document is in the page cache?
&gt; If not, I wonder how hard it would be to teach them?
&gt; 
&gt; Regardless, we need to solve that.

Workers do not know that their document is in the page cache. When their document is in the page cache, the worker thread is paused and therefore no code can run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587107</commentid>
    <comment_count>14</comment_count>
      <attachid>382659</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-04 13:07:02 -0800</bug_when>
    <thetext>Comment on attachment 382659
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:470
&gt;&gt;&gt; +    if (scriptExecutionContext()-&gt;isDocument()) {
&gt;&gt; 
&gt;&gt; If the global object that has the open database handle is a web worker (i.e. not a Document) then it will not do the right thing here.
&gt;&gt; 
&gt;&gt; IDB is frequently used by workers, so we definitely have to handle that case.
&gt;&gt; 
&gt;&gt; I wonder if Workers know if their owning document is in the page cache?
&gt;&gt; If not, I wonder how hard it would be to teach them?
&gt;&gt; 
&gt;&gt; Regardless, we need to solve that.
&gt; 
&gt; Workers do not know that their document is in the page cache. When their document is in the page cache, the worker thread is paused and therefore no code can run.

This means that if someones posts a task on the worker thread to run IDBDatabase::fireVersionChangeEvent(), that task won&apos;t be processed until *after* the document has been restored from the backforward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587117</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-11-04 13:21:09 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; Comment on attachment 382659 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382659&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabase.cpp:470
&gt; &gt;&gt;&gt; +    if (scriptExecutionContext()-&gt;isDocument()) {
&gt; &gt;&gt; 
&gt; &gt;&gt; If the global object that has the open database handle is a web worker (i.e. not a Document) then it will not do the right thing here.
&gt; &gt;&gt; 
&gt; &gt;&gt; IDB is frequently used by workers, so we definitely have to handle that case.
&gt; &gt;&gt; 
&gt; &gt;&gt; I wonder if Workers know if their owning document is in the page cache?
&gt; &gt;&gt; If not, I wonder how hard it would be to teach them?
&gt; &gt;&gt; 
&gt; &gt;&gt; Regardless, we need to solve that.
&gt; &gt; 
&gt; &gt; Workers do not know that their document is in the page cache. When their document is in the page cache, the worker thread is paused and therefore no code can run.
&gt; 
&gt; This means that if someones posts a task on the worker thread to run
&gt; IDBDatabase::fireVersionChangeEvent(), that task won&apos;t be processed until
&gt; *after* the document has been restored from the backforward cache.

Right - And that means the new page&apos;s IDB use would be blocked just like it is today.

Sihui and I figured a good fix for this case IRL. I think she&apos;s implementing it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587294</commentid>
    <comment_count>16</comment_count>
      <attachid>382804</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-11-04 20:21:05 -0800</bug_when>
    <thetext>Created attachment 382804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587296</commentid>
    <comment_count>17</comment_count>
      <attachid>382804</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-11-04 20:23:56 -0800</bug_when>
    <thetext>Comment on attachment 382804
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IndexedDB.h:127
&gt; +template&lt;&gt; struct EnumTraits&lt;WebCore::IndexedDB::ConnectionClosedOnBehalfOfServer&gt; {

If you use bool as the storage type for this enum class, then it will be smaller and this will be unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587436</commentid>
    <comment_count>18</comment_count>
      <attachid>382831</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-11-05 10:01:38 -0800</bug_when>
    <thetext>Created attachment 382831
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587446</commentid>
    <comment_count>19</comment_count>
      <attachid>382831</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-05 10:25:52 -0800</bug_when>
    <thetext>Comment on attachment 382831
Patch for landing

Clearing flags on attachment: 382831

Committed r252060: &lt;https://trac.webkit.org/changeset/252060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587447</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-05 10:25:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587450</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-05 10:26:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/56909138&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382510</attachid>
            <date>2019-10-31 15:37:58 -0700</date>
            <delta_ts>2019-10-31 15:58:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203431-20191031153758.patch</filename>
            <type>text/plain</type>
            <size>38485</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNiY2QzOWZlMTI3MGEx
ZDNiNjJmMzVhNmIzZjM4YTVlY2M3Y2Y3OS4uOTlhZGRkMWZhOGUxMzJkMDg1ZjQyOWUxOTYyNDQ5
OTliYmUyN2U1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTEwLTMxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTA3
NTQpOiB3ZWIgcGFnZSB1c2luZyBJREJJbmRleCBkb2Vzbid0IGxvYWQgb2NjYXNpb25hbGx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBub3cgYWxs
b3cgcGFnZSB0byBlbnRlciBjYWNoZSBldmVuIHdoZW4gdGhlcmUgYXJlIGFjdGl2ZSBJREIgb2Jq
ZWN0cy4gVGhlIG9wZW4gZGF0YWJhc2UgY29ubmVjdGlvbiBvbiAKKyAgICAgICAgc3VzcGVuZGVk
IHBhZ2VzIHdpbGwgc3RvcCBvdGhlciBhY3RpdmUgcGFnZXMgZnJvbSBkZWxldGVpbmcgb3Igb3Bl
bmluZyB0aGUgc2FtZSBkYXRhYmFzZSwgd2hpY2ggY2F1c2VzIGEgCisgICAgICAgIHJlZ3Jlc3Np
b24gb2YgcGFnZSBub3QgbG9hZGluZyBjb3JyZWN0bHkuIAorCisgICAgICAgIFRvIGZpeCB0aGlz
IGlzc3VlLCB3ZSBjbG9zZSB0aG9zZSBvcGVuIGNvbm5lY3Rpb25zIG9uIHN1c3BlbmRlZCBwYWdl
IHdoZW4gd2Uga25vdyBmcm9tIHRoZSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCAKKyAgICAgICAgdGhh
dCB0aGVyZSBpcyBvcGVuL2RlbGV0ZSByZXF1ZXN0IGJsb2NrZWQuIEluIHRoaXMgY2FzZSwgd2hl
biB0aGUgY2FjaGVkIHBhZ2UgcmVzdW1lcywgaXQgZ2V0IGEgY2xvc2UgZXZlbnQgb24gCisgICAg
ICAgIHRoZSBvcmlnaW5hbGx5IG9wZW4gZGF0YWJhc2UgY29ubmVjdGlvbi4KKworICAgICAgICBB
UEkgdGVzdDogSW5kZXhlZERCLkluZGV4ZWREQkluUGFnZUNhY2hlCisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246
OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAy
MDE5LTEwLTMxICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4gIGFuZCAgQ2hy
aXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgTW92ZSBJbWFnZUJ1ZmZlci1y
ZWxhdGVkIGZ1bmN0aW9uYWxpdHkgZnJvbSBIVE1MQ2FudmFzRWxlbWVudCB0byBDYW52YXNCYXNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDYyMGEzOTUwOTZmOGRlODU5Y2YxY2JjMzhlZjcyOGJkZDhiNTkzOWYuLjc2
MDM1NzBmMjRhZmYyNDRmMmZiOTFlMTQ5NWM4YjQ5NWVhMDgwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTktMTAtMzEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjI1MDc1NCk6IHdlYiBwYWdlIHVzaW5nIElEQkluZGV4IGRv
ZXNuJ3QgbG9hZCBvY2Nhc2lvbmFsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorCiAyMDE5LTEwLTMxICBU
cnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI1MTg1NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCBjNjYzZjg3YmI2NmEwZTM1ZWY3NjdkNjMxYjg3ZDZj
YTM1NmU5MmI1Li43Njk4NjcwN2UyMWE2MjJmNTA5OGJlZDNkYzVmOWQyMTE2ODNhNjA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBA
IC00NjMsMTAgKzQ2MywxOSBAQCB2b2lkIElEQkRhdGFiYXNlOjpmaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZQogICAgIEFTU0VSVCgm
b3JpZ2luVGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKIAogICAgIGlmICghc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIHx8IG1fY2xvc2VQZW5kaW5nKSB7Ci0gICAgICAgIGNvbm5lY3Rp
b25Qcm94eSgpLmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQobV9kYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgIGNvbm5lY3Rpb25Qcm94eSgp
LmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQobV9kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
LCByZXF1ZXN0SWRlbnRpZmllciwgZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAorICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSkgeworICAg
ICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICAgICAgaWYgKGRvY3VtZW50LmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgp
ID09IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpIHsKKyAgICAgICAgICAgIGNvbm5lY3Rp
b25Qcm94eSgpLmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQobV9kYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllciwgdHJ1ZSk7CisgICAgICAgICAgICBjb25uZWN0
aW9uVG9TZXJ2ZXJMb3N0KElEQkVycm9yIHsgVW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBvbiBj
YWNoZWQgcGFnZSBjbG9zZWQgdG8gdW5ibG9jayBvdGhlciA6d3Fjb25uZWN0aW9ucyJfc30pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCiAgICAgUmVmPEV2ZW50PiBl
dmVudCA9IElEQlZlcnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRlKHJlcXVlc3RJZGVudGlmaWVyLCBj
dXJyZW50VmVyc2lvbiwgcmVxdWVzdGVkVmVyc2lvbiwgbV9ldmVudE5hbWVzLnZlcnNpb25jaGFu
Z2VFdmVudCk7CiAgICAgZXZlbnQtPnNldFRhcmdldCh0aGlzKTsKICAgICBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmV2ZW50UXVldWUoKS5lbnF1ZXVlRXZlbnQoV1RGTW92ZShldmVudCkpOwpA
QCAtNDgyLDcgKzQ5MSw3IEBAIHZvaWQgSURCRGF0YWJhc2U6OmRpc3BhdGNoRXZlbnQoRXZlbnQm
IGV2ZW50KQogICAgIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGE6OmRpc3BhdGNoRXZlbnQoZXZl
bnQpOwogCiAgICAgaWYgKGV2ZW50LmlzVmVyc2lvbkNoYW5nZUV2ZW50KCkgJiYgZXZlbnQudHlw
ZSgpID09IG1fZXZlbnROYW1lcy52ZXJzaW9uY2hhbmdlRXZlbnQpCi0gICAgICAgIG1fY29ubmVj
dGlvblByb3h5LT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KG1fZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgZG93bmNhc3Q8SURCVmVyc2lvbkNoYW5nZUV2ZW50PihldmVudCkucmVxdWVz
dElkZW50aWZpZXIoKSk7CisgICAgICAgIG1fY29ubmVjdGlvblByb3h5LT5kaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KG1fZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgZG93bmNhc3Q8SURC
VmVyc2lvbkNoYW5nZUV2ZW50PihldmVudCkucmVxdWVzdElkZW50aWZpZXIoKSwgZmFsc2UpOwog
fQogCiB2b2lkIElEQkRhdGFiYXNlOjpkaWRDcmVhdGVJbmRleEluZm8oY29uc3QgSURCSW5kZXhJ
bmZvJiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAppbmRleCA0OTc3NzJkNzA2OWU3
NmMwMTQ1MjE0ODcwODVhOGRkYmE0NjAzMTFlLi45MTAwMzEzZjRmOTdjNjUzMjc0NWY2ZDA3M2Nl
ZmVlN2U3MWRhMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcApAQCAtMjcxLDkgKzI3
MSw5IEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50CiAgICAgZGF0YWJhc2UtPnBlcmZvcm1DYWxs
YmFja09uT3JpZ2luVGhyZWFkKCpkYXRhYmFzZSwgJklEQkRhdGFiYXNlOjpmaXJlVmVyc2lvbkNo
YW5nZUV2ZW50LCByZXF1ZXN0SWRlbnRpZmllciwgcmVxdWVzdGVkVmVyc2lvbik7CiB9CiAKLXZv
aWQgSURCQ29ubmVjdGlvblByb3h5OjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIpCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6ZGlkRmlyZVZl
cnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5l
Y3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQogewotICAgIGNhbGxDb25uZWN0aW9uT25NYWlu
VGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQs
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBj
YWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50LCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0
SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogfQogCiB2b2lk
IElEQkNvbm5lY3Rpb25Qcm94eTo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lv
biwgdWludDY0X3QgbmV3VmVyc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaAppbmRleCA5MWY5
M2M0NjcwNWJkNmY0OTY1MTY1NDQ3OWI2NTQ4OWVmYTBkMzBmLi40NmUwM2MzYzJmYWExYzIzN2Q3
NTlhMGFiZmUyOTM2ZjdlMWY5MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCkBAIC04NSw3
ICs4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbmFtZUluZGV4KFRyYW5zYWN0aW9uT3BlcmF0
aW9uJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVk
VmVyc2lvbik7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRh
dGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFs
Zk9mU2VydmVyKTsKIAogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVy
c2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbik7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2Vs
bGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCmluZGV4IGZjMGQ5YjA1NDRlODA3MzdiMGU2ZDJhNjEzNzZkMTZjOGQ5Njc5NmIuLmM0NDdm
ZjBmY2MwMjAwNjliYWE4ZjA2NWNiZWJkYjI2ZTI1ODJjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuY3BwCkBAIC00MTUsMTMgKzQxNSwxMyBAQCB2b2lkIElEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
b25JZAogICAgIG1fcHJveHktPmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIsIHJlcXVlc3RlZFZlcnNpb24pOwogfQog
Ci12b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKQordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
Ym9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikKIHsKICAgICBMT0coSW5kZXhl
ZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50Iik7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmIChtX3NlcnZlckNvbm5lY3Rp
b25Jc1ZhbGlkKQotICAgICAgICBtX2RlbGVnYXRlLT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAg
ICAgbV9kZWxlZ2F0ZS0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rp
b25JZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxm
T2ZTZXJ2ZXIpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkU3RhcnRUcmFu
c2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCRXJyb3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmlu
ZGV4IDQyNWU0NWFmN2Q5MmEwZDk4OGZlZDY1YzkzYzkwOTNkYmI0Y2VjMjQuLmY4NWRkZGNmOTdh
NjJiN2NhMGRlYTk0NGE5MGUzMmI1NTcxMmU0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmgKQEAgLTExNiw3ICsxMTYsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pOwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFu
Z2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25u
ZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxl
Z2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKaW5kZXggZGM4YTk5YmY3NTJlMTdhNWZiN2QzMWIzZmY0
MzMxYzZiOTgxNzQxOC4uODhjY2FlNjhhMGFiOTgzMTVlYmQ4NDc2MjVmYWQxNTJiNmZiMzBhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTgzLDcg
KzgzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25QZW5k
aW5nQ2xvc2UodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydE9wZW5BbmRV
cGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNl
bGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29uZmly
bURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
KSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKaW5kZXggYThlODU2NzAwODc4ODE3NmVmZWE5OWU1NjRjYTVkMGJl
ZGU5M2MzZS4uYTg2OWI2OGJhZmJkM2JjOWQ3YTc0ZDQ5NDViZWY2M2RmZmNlZDA5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKQEAgLTQzMCwxMiArNDMwLDEyIEBAIHZvaWQgSURCU2VydmVyOjphYm9ydE9wZW5BbmRV
cGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsCiAgICAg
ZGF0YWJhc2VDb25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudCgpOwogfQogCi12
b2lkIElEQlNlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyKQordm9pZCBJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQo
dWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhh
bGZPZlNlcnZlcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2VydmVyOjpkaWRGaXJlVmVy
c2lvbkNoYW5nZUV2ZW50Iik7CiAKICAgICBpZiAoYXV0byBkYXRhYmFzZUNvbm5lY3Rpb24gPSBt
X2RhdGFiYXNlQ29ubmVjdGlvbnMuZ2V0KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpKQot
ICAgICAgICBkYXRhYmFzZUNvbm5lY3Rpb24tPmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQocmVx
dWVzdElkZW50aWZpZXIpOworICAgICAgICBkYXRhYmFzZUNvbm5lY3Rpb24tPmRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQocmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFs
Zk9mU2VydmVyKTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDA3NTVlZDlmOWM3
MDg3MTc4OWJkOTgxOGJjNmM1Y2U4YjZjNTlhNDkuLjRkMmI4MDE4ZTA1ZWM1NTRjMWYwODk3NDlj
ZjU3OTkyZjhmMDAxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRl
ZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFs
Zk9mU2VydmVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxs
ZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbmZp
cm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDUyNWFkZTljYzAwZTBhZjIxYWZh
OTNiNGNmM2YzMGMwZDg4OGIzODAuLjEwZTE5NTEzNTI4ODMwMGJhYmY4YTRjODk2ZDUyMmU1ZTY5
NTc5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtNzUyLDcgKzc1MiwyNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlDdXJyZW50UmVxdWVzdENvbm5lY3Rpb25DbG9z
ZWRPckZpcmVkVmVyc2lvbkNoYW5nZQogICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPm1heWJl
Tm90aWZ5UmVxdWVzdEJsb2NrZWQobV9kYXRhYmFzZUluZm8tPnZlcnNpb24oKSk7CiB9CiAKLXZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURC
RGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJUcmFu
c2FjdGlvbnNPbkNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQoreworICAgIERlcXVlPFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPj4g
cGVuZGluZ1RyYW5zYWN0aW9uczsKKyAgICB3aGlsZSAoIW1fcGVuZGluZ1RyYW5zYWN0aW9ucy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGVuZGluZ1RyYW5zYWN0
aW9ucy50YWtlRmlyc3QoKTsKKyAgICAgICAgaWYgKCZ0cmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25u
ZWN0aW9uKCkgIT0gJmNvbm5lY3Rpb24pCisgICAgICAgICAgICBwZW5kaW5nVHJhbnNhY3Rpb25z
LmFwcGVuZChXVEZNb3ZlKHRyYW5zYWN0aW9uKSk7CisgICAgfQorICAgIGlmICghcGVuZGluZ1Ry
YW5zYWN0aW9ucy5pc0VtcHR5KCkpCisgICAgICAgIG1fcGVuZGluZ1RyYW5zYWN0aW9ucy5zd2Fw
KHBlbmRpbmdUcmFuc2FjdGlvbnMpOworCisgICAgRGVxdWU8UmVmUHRyPFVuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24+PiB0cmFuc2FjdGlvbnNUb0Fib3J0OworICAgIGZvciAoYXV0byYgdHJh
bnNhY3Rpb24gOiBtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMudmFsdWVzKCkpIHsKKyAgICAgICAg
aWYgKCZ0cmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pCisg
ICAgICAgICAgICB0cmFuc2FjdGlvbnNUb0Fib3J0LmFwcGVuZCh0cmFuc2FjdGlvbik7CisgICAg
fQorICAgIGZvciAoYXV0byYgdHJhbnNhY3Rpb24gOiB0cmFuc2FjdGlvbnNUb0Fib3J0KQorICAg
ICAgICB0cmFuc2FjdGlvbi0+YWJvcnRXaXRob3V0Q2FsbGJhY2soKTsKK30KKwordm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50Iik7CiAKQEAgLTc2MSw2ICs3ODEsMTMgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
IGMKIAogICAgIEFTU0VSVF9VTlVTRUQocmVxdWVzdElkZW50aWZpZXIsIG1fY3VycmVudE9wZW5E
QlJlcXVlc3QtPnJlcXVlc3REYXRhKCkucmVxdWVzdElkZW50aWZpZXIoKSA9PSByZXF1ZXN0SWRl
bnRpZmllcik7CiAKKyAgICBpZiAoY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpIHsK
KyAgICAgICAgaWYgKG1fb3BlbkRhdGFiYXNlQ29ubmVjdGlvbnMuY29udGFpbnMoJmNvbm5lY3Rp
b24pKSB7CisgICAgICAgICAgICBjbGVhclRyYW5zYWN0aW9uc09uQ29ubmVjdGlvbihjb25uZWN0
aW9uKTsKKyAgICAgICAgICAgIG1fb3BlbkRhdGFiYXNlQ29ubmVjdGlvbnMucmVtb3ZlKCZjb25u
ZWN0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIG5vdGlmeUN1cnJlbnRSZXF1ZXN0Q29u
bmVjdGlvbkNsb3NlZE9yRmlyZWRWZXJzaW9uQ2hhbmdlRXZlbnQoY29ubmVjdGlvbi5pZGVudGlm
aWVyKCkpOwogfQogCkBAIC0xODQ1LDI0ICsxODcyLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
JgogICAgICAgICBtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24gPSBudWxscHRyOwog
ICAgIH0KIAotICAgIERlcXVlPFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPj4g
cGVuZGluZ1RyYW5zYWN0aW9uczsKLSAgICB3aGlsZSAoIW1fcGVuZGluZ1RyYW5zYWN0aW9ucy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGVuZGluZ1RyYW5zYWN0
aW9ucy50YWtlRmlyc3QoKTsKLSAgICAgICAgaWYgKCZ0cmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25u
ZWN0aW9uKCkgIT0gJmNvbm5lY3Rpb24pCi0gICAgICAgICAgICBwZW5kaW5nVHJhbnNhY3Rpb25z
LmFwcGVuZChXVEZNb3ZlKHRyYW5zYWN0aW9uKSk7Ci0gICAgfQotCi0gICAgaWYgKCFwZW5kaW5n
VHJhbnNhY3Rpb25zLmlzRW1wdHkoKSkKLSAgICAgICAgbV9wZW5kaW5nVHJhbnNhY3Rpb25zLnN3
YXAocGVuZGluZ1RyYW5zYWN0aW9ucyk7Ci0KLSAgICBEZXF1ZTxSZWZQdHI8VW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbj4+IHRyYW5zYWN0aW9uc1RvQWJvcnQ7Ci0gICAgZm9yIChhdXRvJiB0
cmFuc2FjdGlvbiA6IG1faW5Qcm9ncmVzc1RyYW5zYWN0aW9ucy52YWx1ZXMoKSkgewotICAgICAg
ICBpZiAoJnRyYW5zYWN0aW9uLT5kYXRhYmFzZUNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbikK
LSAgICAgICAgICAgIHRyYW5zYWN0aW9uc1RvQWJvcnQuYXBwZW5kKHRyYW5zYWN0aW9uKTsKLSAg
ICB9Ci0KLSAgICBmb3IgKGF1dG8mIHRyYW5zYWN0aW9uIDogdHJhbnNhY3Rpb25zVG9BYm9ydCkK
LSAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0V2l0aG91dENhbGxiYWNrKCk7CisgICAgY2xlYXJU
cmFuc2FjdGlvbnNPbkNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAKICAgICBpZiAobV9jdXJyZW50
T3BlbkRCUmVxdWVzdCkKICAgICAgICAgbm90aWZ5Q3VycmVudFJlcXVlc3RDb25uZWN0aW9uQ2xv
c2VkT3JGaXJlZFZlcnNpb25DaGFuZ2VFdmVudChjb25uZWN0aW9uLmlkZW50aWZpZXIoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IGNhYzI3MDgxMTdhYzA4NGQ0MjA4ZDc5N2FjNzk3OWZm
OWJkYzIwNDEuLjU1NGI3MTJiY2RmZjU3MmE1ODVlMWU1ZDE1MjllYmUzYzI3Yjk5YjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZS5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIHZvaWQg
dHJhbnNhY3Rpb25EZXN0cm95ZWQoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYpOwogICAg
IHZvaWQgY29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uJik7CiAgICAgdm9pZCBjb25maXJtQ29ubmVjdGlvbkNsb3NlZE9uU2VydmVyKFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbiYpOwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVu
dChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNl
cnZlcik7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpOwogICAgIHZvaWQgY29uZmlybURpZENsb3Nl
RnJvbVNlcnZlcihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKIApAQCAtMjQ5LDYgKzI0
OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3YWl0Rm9yUmVxdWVzdFNwYWNlQ29tcGxldGlvbihV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJREJF
cnJvciYmKT4mJik7CiAgICAgdm9pZCBzdGFydFNwYWNlSW5jcmVhc2VUYXNrKHVpbnQ2NF90IGlk
ZW50aWZpZXIsIHVpbnQ2NF90IHRhc2tTaXplKTsKICAgICB2b2lkIGZpbmlzaFNwYWNlSW5jcmVh
c2VUYXNrKHVpbnQ2NF90IGlkZW50aWZpZXIsIGJvb2wgaXNUYXNrU3VjY2Vzc2Z1bCk7CisgICAg
CisgICAgdm9pZCBjbGVhclRyYW5zYWN0aW9uc09uQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24mKTsKIAogICAgIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVVuaXF1ZUNhbGxi
YWNrSWRlbnRpZmllcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b24uY3BwCmluZGV4IDdmZGRmMGZhMzQwMDY3MTY0MzEzNTA3YzA4MTZlZjdlMjBjZTBlZjguLmU3
MmMzYjkwOTliYThkMmNmOThiOWQ1OWY1N2Y4ZmRjZjNhNTExMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCkBAIC0xMDcsMTMgKzEwNywxMyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcigp
CiAgICAgICAgIG1fZGF0YWJhc2UtPmNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoKnRoaXMpOwog
fQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkRmlyZVZlcnNpb25DaGFu
Z2VFdmVudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKQor
dm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBj
b25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAi
VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50IC0g
JXMgLSAlIiBQUkl1NjQsIG1fb3BlblJlcXVlc3RJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCBpZGVudGlmaWVyKCkpOwogCiAgICAgQVNTRVJUKG1fZGF0YWJhc2UpOwog
ICAgIGlmIChtX2RhdGFiYXNlKQotICAgICAgICBtX2RhdGFiYXNlLT5kaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KCp0aGlzLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgIG1fZGF0YWJhc2Ut
PmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoKnRoaXMsIHJlcXVlc3RJZGVudGlmaWVyLCBjb25u
ZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmgKaW5kZXggY2NhNGY3NjExODM1Y2NlOTk4OWUzZjkyMWZl
YWUwYzlhYjIxMTkxMC4uMDc2MDkwY2VhZjFmMzQ3MjhiZWRmYmYyMTdkYmI2Y2Q1MDhkMGViYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaApAQCAtNzgsNyArNzgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDcmVhdGVJbmRleChjb25zdCBJREJSZXN1bHREYXRh
Jik7CiAgICAgdm9pZCBkaWREZWxldGVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJik7CiAgICAg
dm9pZCBkaWRSZW5hbWVJbmRleChjb25zdCBJREJSZXN1bHREYXRhJik7Ci0gICAgdm9pZCBkaWRG
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVz
dElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25D
bG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKICAgICB2b2lkIGRpZEZpbmlzaEhhbmRsaW5nVmVyc2lv
bkNoYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
cik7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vz
c0lEQlNlcnZlci5jcHAKaW5kZXggYWE0ODIzYzkzNGY2MTAxODdlN2NmNGQ4MWQ0MGVlZjI4Mjcx
NWUzNC4uYWEwNzA0ZTk4NmZjYzk0ZWZkMTFlOTJlMDI3N2ExOWY3NjA4MmNlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lu
UHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTQyNSwxMCArNDI1LDEwIEBAIHZvaWQgSW5Qcm9jZXNz
SURCU2VydmVyOjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvbklkCiAgICAgfSk7CiB9CiAKLXZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpCit2b2lkIElu
UHJvY2Vzc0lEQlNlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJl
cXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQog
ewotICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRl
bnRpZmllcl0gewotICAgICAgICBtX3NlcnZlci0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgUnVu
TG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBj
b25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcl0geworICAgICAgICBtX3NlcnZlci0+ZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1
ZXN0SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIH0p
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggY2FkYzgxMmEzOTljNjk4ZjkzN2U1
Yzk1YzA3N2ZjMGExYzE3YjZmMC4uZTYzMjlhZmZmYmU0Y2JhMDMzNWU1YjVmZjIwMGY0YTg5Zjll
NWM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xvc2UodWludDY0X3QgZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rp
b25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgZmluYWw7CiAg
ICAgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBkaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlv
bkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENh
bmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwogICAgIHZvaWQgY29uZmlybURp
ZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBm
aW5hbDsKICAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09y
aWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmNwcAppbmRleCAwYzgxMmRmMzJmNzg5NWVkNmY1NGIwMjUyYzlkYjZiZWJkMDQ2
OTI0Li4wMjMwY2VlYWYzODYxMjI3ZTBiMDdlZGNlM2YyZjNkOWI4ZmUzMjYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTMyNyw5ICszMjcsOSBAQCB2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lYwogICAgIGlkYlNlcnZlcigpLmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVk
ZWQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikK
IHsKLSAgICBpZGJTZXJ2ZXIoKS5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29u
bmVjdGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CisgICAgaWRiU2VydmVy
KCkuZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
LCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVy
KTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om9wZW5EQlJlcXVlc3RDYW5j
ZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQuaAppbmRleCBkZTY5NjMyMWVjNTlmNDU2ZjNjZWFjYzEzNjYyNThiNmU4
MGY1NTk0Li42YTdlMmI2YTk2NjBiMzc5YjM0OTJlZTJlNmM3YzdmMzFlMTI0ODJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2Vk
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgYWJvcnRP
cGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
Zmllcik7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VF
dmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxs
ZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKTsKICAgICB2b2lkIGNvbmZpcm1EaWRD
bG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgppbmRl
eCA4MDNiOTZkMjlhZmM3OWMyOTMxYzhhMTFlZmQ0NTNjNWFmMGYyYTRmLi4zNmMyNzI3MzNmMmFm
Y2Q0OGY2OWYzODA0NjE2NmVmYmU1YmMzNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCkBAIC00Nyw3ICs0Nyw3IEBAIG1lc3NhZ2VzIC0+
IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCB7CiAgICAgRGF0YWJhc2VDb25uZWN0aW9uUGVuZGlu
Z0Nsb3NlKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIERhdGFi
YXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKICAgICBBYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciB0cmFuc2FjdGlv
bklkZW50aWZpZXIpOwotICAgIERpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVy
IHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBEaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZP
ZlNlcnZlcik7CiAgICAgT3BlbkRCUmVxdWVzdENhbmNlbGxlZChXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSByZXF1ZXN0RGF0YSk7CiAgICAgQ29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggMzNlZWEyNGM4MWM1ODliMTY3YWUyY2E3
MWNjZDMyZTRmZDRhYWY1ZC4uM2ZmODE3ZDBmZWNhY2VjZjdkMDI5MGU4ZmEzNmZmNWM1NzFiNTlj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBA
IC0xOTgsOSArMTk4LDkgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmFib3J0T3Bl
bkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWMKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQo
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSk7CiB9
CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVu
dGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQogewotICAgIHNl
bmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6RGlkRmlyZVZlcnNpb25DaGFu
Z2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllcikp
OworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6RGlkRmlyZVZl
cnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRl
bnRpZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpKTsKIH0KIAogdm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaAppbmRleCBiMjUyNTlmMjI1MjM0OWIxODYxYmUxNzFlNWZjYWU0ZmE0MzA1
MGU3Li43MWFkOGNkOTMxMzUwMDdjODAzNzFmMjY1YTQyYWY4YjQ5MjQxOTQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtODAsNyArODAsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGF0YWJhc2VD
b25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZp
bmFsOwogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpIGZpbmFs
OworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVy
KSBmaW5hbDsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6
SURCUmVxdWVzdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2
ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgZmluYWw7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMmMwMTBjNzg0
MWYxZjNhMGNjMTRiMDY5N2ViZDk4M2ViYzEzZmE3Li5mZmM1NGU5NTQ2NjUyNjM2NmI0ZGFiYzNh
YjljOWZlZTI0Yzg5MjgyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMTAtMzEgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1MDc1NCk6IHdlYiBwYWdl
IHVzaW5nIElEQkluZGV4IGRvZXNuJ3QgbG9hZCBvY2Nhc2lvbmFsbHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMTAtMzEgIEFha2FzaCBK
YWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtld3MtYnVpbGRdIERpc3Bs
YXkgcHJlLWV4aXN0aW5nIEFQSSB0ZXN0IG5hbWVzIGluIHRoZSBidWlsZCBzdW1tYXJ5CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDdjMDkxODk2NmVhM2NiZDgzOGQ3ZWRmYTdiNTdkYjcyNmY4
ZTllMmYuLmNlNWU1NTAwOTQxNGE5NDAyZmU3ZTFkNDEwMDU5MmNkNTZkODQ2NWYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC03MjYsNiArNzI2LDkgQEAKIAkJOTM2OEEyNUYyMjlFRkI0NzAw
QTgyOUNBIC8qIGxvY2FsLXN0b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0yLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2OEEyNUMyMjlF
RkIzQTAwQTgyOUNBIC8qIGxvY2FsLXN0b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0yLmh0bWwgKi87
IH07CiAJCTkzNkY3MjgwMUNEN0Q5RUMwMDY4QTBGQiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlv
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM2RjcyN0UxQ0Q3RDlEMDAwNjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bCAqLzsgfTsKIAkJOTM2RjcyODExQ0Q3RDlFQzAwNjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdpdGgt
YXVkaW8ubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNkY3MjdGMUNEN0Q5RDAwMDY4QTBGQiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlv
Lm1wNCAqLzsgfTsKKwkJOTNBMzNDMDUyMzZCOEZBNzAwMjczODYxIC8qIEluZGV4ZWREQkluUGFn
ZUNhY2hlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNBMzNDMDQyMzZCOEY3OTAwMjczODYxIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1tICovOyB9
OworCQk5M0EzM0MwNjIzNkI4RkRCMDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0EzM0MwMzIzNkI4RjRDMDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbCAqLzsg
fTsKKwkJOTNBMzNDMDcyMzZCOEZEQjAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBMzNDMDIyMzZCOEY0QzAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0
bWwgKi87IH07CiAJCTkzQUY0RUNFMTUwNkYwNjQwMDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUY0RUNEMTUwNkYwNjQwMDdGRDU3RSAvKiBOZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxlLmNwcCAqLzsgfTsKIAkJ
OTNBRjRFRDExNTA2RjEzMDAwN0ZENTdFIC8qIGxvdHMtb2YtaW1hZ2VzLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBRjRFQ0YxNTA2
RjEyMzAwN0ZENTdFIC8qIGxvdHMtb2YtaW1hZ2VzLmh0bWwgKi87IH07CiAJCTkzQjYyMDU0MjM0
RUE2MkMwMEQ0OUI5NyAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjYyMDUzMjM0RUEzMkIwMEQ0OUI5NyAv
KiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcCAqLzsgfTsKQEAgLTEyODksOSArMTI5MiwxMSBAQAog
CQkJCTUxQTU4Nzg1MUQyNzM5RTMwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NL
aWxsLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDQUIwRkY1MjIyMzMyNDA3MDA2
Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUNBQjBGRjUzMjIzMzI0MDcwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS0yLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTNBMzNDMDYyMzZCOEZEQjAwMjczODYxIC8qIElu
ZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCQ0VF
NEUxQzg0RjUzQjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCQ0VFNEYxQzg0RjUzQjAwNDJDODJFIC8qIEluZGV4ZWRE
Qk11bHRpUHJvY2Vzcy0yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFBNTg3N0Qx
RDFCNDlDRDAwNEJBOUFGIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCisJCQkJOTNBMzNDMDcyMzZCOEZEQjAwMjczODYxIC8qIEluZGV4ZWREQk5v
dEluUGFnZUNhY2hlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCMUVFOTYxQzgw
RkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1MUIxRUU5NzFDODBGQUVGMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lz
dGVuY2UtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NTk5RTI3MUYwNzFBQTAw
MEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHku
c3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE0NTksNyArMTQ2NCw2IEBACiAJCQkJ
NTc3NDU0RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3
NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzk4MzM5MjIzNjhGQTM3MDA4
RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRh
Z3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKLQkJCQk1Nzk4MzM3QzIzNUVCNjg5MDA4RTU1
NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3Mu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RFQTIzNEVBNjZEMDBFODVFMDkg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNh
dGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjExNCw2ICsy
MTE4LDkgQEAKIAkJOTM5QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9y
T25CYWNrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGV2aWNl
U2NhbGVGYWN0b3JPbkJhY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUJG
RTM5MThFNTU0ODkwMDg4MzI3NSAvKiBTdHJpbmdUcnVuY2F0b3IubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTdHJpbmdUcnVuY2F0b3IubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQTI1ODk4MUY5MkZGMTUwMDNFNTEwQyAvKiBUZXh0Q29kZWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dENvZGVjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNBMzNDMDIyMzZCOEY0QzAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFn
ZUNhY2hlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJOb3RJblBh
Z2VDYWNoZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EzM0MwMzIzNkI4
RjRDMDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IEluZGV4ZWREQkluUGFnZUNhY2hlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzQTMzQzA0MjM2QjhGNzkwMDI3Mzg2MSAvKiBJbmRleGVkREJJblBhZ2VD
YWNoZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWRE
QkluUGFnZUNhY2hlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E0MjdBODE4
MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlZlB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQy
N0FBMTgwREEyNjQwMENEMjRENyAvKiBSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBNDI3
QUMxODBEQTYwRjAwQ0QyNEQ3IC8qIE1vdmVPbmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdmVPbmx5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODU4LDYgKzI4NjUsNyBAQAogCQkJ
CTUxMTBGQ0VGMUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAog
CQkJCTUxQTU4Nzg0MUQyNzJFRjMwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NL
aWxsLm1tICovLAogCQkJCUNBQjBGRjU0MjIzMzJDM0EwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxl
TmFtZS5tbSAqLywKKwkJCQk5M0EzM0MwNDIzNkI4Rjc5MDAyNzM4NjEgLyogSW5kZXhlZERCSW5Q
YWdlQ2FjaGUubW0gKi8sCiAJCQkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWRE
Qk11bHRpUHJvY2Vzcy5tbSAqLywKIAkJCQk1MUIxRUU4RDFDODBGNTg4MDA2NEZCOTggLyogSW5k
ZXhlZERCUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8q
IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLywKQEAg
LTMzMjYsOSArMzMzNCwxMSBAQAogCQkJCTUxQTU4NzgyMUQyNzJFQjUwMDRCQTlBRiAvKiBJbmRl
eGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCAqLywKIAkJCQlDQUIwRkY1MTIyMzMyM0Y2
MDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUtMS5odG1sICovLAogCQkJCUNBQjBGRjUwMjIz
MzIzRjYwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS0yLmh0bWwgKi8sCisJCQkJOTNBMzND
MDMyMzZCOEY0QzAwMjczODYxIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwgKi8sCiAJCQkJ
NTFCQ0VFNEMxQzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwg
Ki8sCiAJCQkJNTFCQ0VFNEQxQzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vz
cy0yLmh0bWwgKi8sCiAJCQkJNTFBNTg3N0MxRDFCM0Q4RDAwNEJBOUFGIC8qIEluZGV4ZWREQk11
bHRpUHJvY2Vzcy0zLmh0bWwgKi8sCisJCQkJOTNBMzNDMDIyMzZCOEY0QzAwMjczODYxIC8qIElu
ZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgKi8sCiAJCQkJNTFCMUVFOTQxQzgwRkFERDAwNjRG
Qjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCAqLywKIAkJCQk1MUIxRUU5NTFDODBG
QUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sICovLAogCQkJCTU3NTk5
RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMyAqLywKQEAgLTQ2MzUsNiArNDY0NSw3IEBACiAJCQkJNTExMEZD
RkExRTAxQ0RCODAwNkY4RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1MUE1ODc4NjFEMjczQUE5MDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9j
ZXNzS2lsbC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNBQjBGRjU1MjIzMzJDNTcwMDZDQTVCMCAv
KiBJbmRleGVkREJGaWxlTmFtZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzQTMzQzA1MjM2QjhG
QTcwMDI3Mzg2MSAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDODNFMEJFMUQwQTY1MTMwMEZFQkNGMyAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3QzgzRTBCRjFEMEE2NTIyMDBGRUJDRjMgLyogSW5kZXhlZERCUGVy
c2lzdGVuY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMg
LyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNv
dXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382514</attachid>
            <date>2019-10-31 15:58:40 -0700</date>
            <delta_ts>2019-11-01 17:15:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203431-20191031155840.patch</filename>
            <type>text/plain</type>
            <size>44704</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBiZDIxNGRkNzMyMDQ4
YTQ5MjA5ZDNkZjRlZmQ5MDEyYTFlZTlkNS4uZDQ1YjE4MjM0MTQ1ZTFiYjIxZTNhYzYwMzQwOWJk
ZGY5ZGZlMjFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTEwLTMxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTA3
NTQpOiB3ZWIgcGFnZSB1c2luZyBJREJJbmRleCBkb2Vzbid0IGxvYWQgb2NjYXNpb25hbGx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBub3cgYWxs
b3cgcGFnZSB0byBlbnRlciBjYWNoZSBldmVuIHdoZW4gdGhlcmUgYXJlIGFjdGl2ZSBJREIgb2Jq
ZWN0cy4gVGhlIG9wZW4gZGF0YWJhc2UgY29ubmVjdGlvbiBvbiAKKyAgICAgICAgc3VzcGVuZGVk
IHBhZ2VzIHdpbGwgc3RvcCBvdGhlciBhY3RpdmUgcGFnZXMgZnJvbSBkZWxldGVpbmcgb3Igb3Bl
bmluZyB0aGUgc2FtZSBkYXRhYmFzZSwgd2hpY2ggY2F1c2VzIGEgCisgICAgICAgIHJlZ3Jlc3Np
b24gb2YgcGFnZSBub3QgbG9hZGluZyBjb3JyZWN0bHkuIAorCisgICAgICAgIFRvIGZpeCB0aGlz
IGlzc3VlLCB3ZSBjbG9zZSB0aG9zZSBvcGVuIGNvbm5lY3Rpb25zIG9uIHN1c3BlbmRlZCBwYWdl
IHdoZW4gd2Uga25vdyBmcm9tIHRoZSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCAKKyAgICAgICAgdGhh
dCB0aGVyZSBpcyBvcGVuL2RlbGV0ZSByZXF1ZXN0IGJsb2NrZWQuIEluIHRoaXMgY2FzZSwgd2hl
biB0aGUgY2FjaGVkIHBhZ2UgcmVzdW1lcywgaXQgZ2V0IGEgY2xvc2UgZXZlbnQgb24gCisgICAg
ICAgIHRoZSBvcmlnaW5hbGx5IG9wZW4gZGF0YWJhc2UgY29ubmVjdGlvbi4KKworICAgICAgICBB
UEkgdGVzdDogSW5kZXhlZERCLkluZGV4ZWREQkluUGFnZUNhY2hlCisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246
OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAy
MDE5LTEwLTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBFbmFibGUgbW9yZSBmZWF0dXJlcyBpbiBNYWMgQ01ha2UgYnVpbGQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggYTgwMWE1NGZiYzA1ZDJkZmMyNGQ3MzRlMWY1Njg1YzkyNTAyOWU3MC4uN2ZlNTZjMzVkOTc2
NWFkZTUxYjRlYzRjZDMxY2M4OGZlZjA2ZTZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxOS0xMC0zMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBS
RUdSRVNTSU9OIChyMjUwNzU0KTogd2ViIHBhZ2UgdXNpbmcgSURCSW5kZXggZG9lc24ndCBsb2Fk
IG9jY2FzaW9uYWxseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVy
c2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisKIDIwMTktMTAtMzEgIERlYW4gSmFja3Nv
biAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTEyMTUpOiBNYWls
IGZhaWxlZCB0byBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuY3BwCmluZGV4IGM2NjNmODdiYjY2YTBlMzVlZjc2N2Q2MzFiODdkNmNhMzU2
ZTkyYjUuLjc2OTg2NzA3ZTIxYTYyMmY1MDk4YmVkM2RjNWY5ZDIxMTY4M2E2MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKQEAgLTQ2
MywxMCArNDYzLDE5IEBAIHZvaWQgSURCRGF0YWJhc2U6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlCiAgICAgQVNTRVJUKCZvcmln
aW5UaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogCiAgICAgaWYgKCFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkgfHwgbV9jbG9zZVBlbmRpbmcpIHsKLSAgICAgICAgY29ubmVjdGlvblBy
b3h5KCkuZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChtX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgY29ubmVjdGlvblByb3h5KCkuZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudChtX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJl
cXVlc3RJZGVudGlmaWVyLCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCisg
ICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpKSB7CisgICAgICAg
IGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOworICAgICAgICBpZiAoZG9jdW1lbnQuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0g
RG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZSkgeworICAgICAgICAgICAgY29ubmVjdGlvblBy
b3h5KCkuZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChtX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCB0cnVlKTsKKyAgICAgICAgICAgIGNvbm5lY3Rpb25U
b1NlcnZlckxvc3QoSURCRXJyb3IgeyBVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIG9uIGNhY2hl
ZCBwYWdlIGNsb3NlZCB0byB1bmJsb2NrIG90aGVyIDp3cWNvbm5lY3Rpb25zIl9zfSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICBSZWY8RXZlbnQ+IGV2ZW50
ID0gSURCVmVyc2lvbkNoYW5nZUV2ZW50OjpjcmVhdGUocmVxdWVzdElkZW50aWZpZXIsIGN1cnJl
bnRWZXJzaW9uLCByZXF1ZXN0ZWRWZXJzaW9uLCBtX2V2ZW50TmFtZXMudmVyc2lvbmNoYW5nZUV2
ZW50KTsKICAgICBldmVudC0+c2V0VGFyZ2V0KHRoaXMpOwogICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+ZXZlbnRRdWV1ZSgpLmVucXVldWVFdmVudChXVEZNb3ZlKGV2ZW50KSk7CkBAIC00
ODIsNyArNDkxLDcgQEAgdm9pZCBJREJEYXRhYmFzZTo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZl
bnQpCiAgICAgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6ZGlzcGF0Y2hFdmVudChldmVudCk7
CiAKICAgICBpZiAoZXZlbnQuaXNWZXJzaW9uQ2hhbmdlRXZlbnQoKSAmJiBldmVudC50eXBlKCkg
PT0gbV9ldmVudE5hbWVzLnZlcnNpb25jaGFuZ2VFdmVudCkKLSAgICAgICAgbV9jb25uZWN0aW9u
UHJveHktPmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQobV9kYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBkb3duY2FzdDxJREJWZXJzaW9uQ2hhbmdlRXZlbnQ+KGV2ZW50KS5yZXF1ZXN0SWRl
bnRpZmllcigpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uUHJveHktPmRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQobV9kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBkb3duY2FzdDxJREJWZXJz
aW9uQ2hhbmdlRXZlbnQ+KGV2ZW50KS5yZXF1ZXN0SWRlbnRpZmllcigpLCBmYWxzZSk7CiB9CiAK
IHZvaWQgSURCRGF0YWJhc2U6OmRpZENyZWF0ZUluZGV4SW5mbyhjb25zdCBJREJJbmRleEluZm8m
IGluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4IDQ5Nzc3MmQ3MDY5ZTc2YzAx
NDUyMTQ4NzA4NWE4ZGRiYTQ2MDMxMWUuLjkxMDAzMTNmNGY5N2M2NTMyNzQ1ZjZkMDczY2VmZWU3
ZTcxZGEyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC0yNzEsOSArMjcxLDkg
QEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnQKICAgICBkYXRhYmFzZS0+cGVyZm9ybUNhbGxiYWNr
T25PcmlnaW5UaHJlYWQoKmRhdGFiYXNlLCAmSURCRGF0YWJhc2U6OmZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQsIHJlcXVlc3RJZGVudGlmaWVyLCByZXF1ZXN0ZWRWZXJzaW9uKTsKIH0KIAotdm9pZCBJ
REJDb25uZWN0aW9uUHJveHk6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlv
bkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiB7Ci0gICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJl
YWQoJklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCwgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIpOworICAgIGNhbGxD
b25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQsIGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVu
dGlmaWVyLCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiB9CiAKIHZvaWQgSURC
Q29ubmVjdGlvblByb3h5Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1
aW50NjRfdCBuZXdWZXJzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCmluZGV4IDkxZjkzYzQ2
NzA1YmQ2ZjQ5NjUxNjU0NDc5YjY1NDg5ZWZhMGQzMGYuLjQ2ZTAzYzNjMmZhYTFjMjM3ZDc1OWEw
YWJmZTI5MzZmN2UxZjkwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKQEAgLTg1LDcgKzg1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVuYW1lSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRpb24m
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKIAogICAgIHZvaWQgZmlyZVZlcnNpb25DaGFuZ2VF
dmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJz
aW9uKTsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1
ZXN0SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZT
ZXJ2ZXIpOwogCiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9u
LCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
Y29uc3QgSURCUmVxdWVzdERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAK
aW5kZXggZmMwZDliMDU0NGU4MDczN2IwZTZkMmE2MTM3NmQxNmM4ZDk2Nzk2Yi4uYzQ0N2ZmMGZj
YzAyMDA2OWJhYThmMDY1Y2JlYmRiMjZlMjU4MmMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKQEAgLTQxNSwxMyArNDE1LDEzIEBAIHZvaWQgSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklk
CiAgICAgbV9wcm94eS0+ZmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllciwgcmVxdWVzdGVkVmVyc2lvbik7CiB9CiAKLXZv
aWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIpCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29s
IGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQogewogICAgIExPRyhJbmRleGVkREIs
ICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKG1fc2VydmVyQ29ubmVjdGlvbklz
VmFsaWQpCi0gICAgICAgIG1fZGVsZWdhdGUtPmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICBt
X2RlbGVnYXRlLT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNl
cnZlcik7CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRTdGFydFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXgg
NDI1ZTQ1YWY3ZDkyYTBkOTg4ZmVkNjVjOTNjOTA5M2RiYjRjZWMyNC4uZjg1ZGRkY2Y5N2E2MmI3
Y2EwZGVhOTQ0YTkwZTMyYjU1NzEyZTQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIu
aApAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRp
ZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlk
U3RhcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyRGVsZWdhdGUuaAppbmRleCBkYzhhOTliZjc1MmUxN2E1ZmI3ZDMxYjNmZjQzMzFj
NmI5ODE3NDE4Li44OGNjYWU2OGEwYWI5ODMxNWViZDg0NzYyNWZhZDE1MmI2ZmIzMGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaApAQCAtODMsNyArODMs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdD
bG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0T3BlbkFuZFVwZ3Jh
ZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVu
dGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQo
dWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhh
bGZPZlNlcnZlcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVk
KGNvbnN0IElEQlJlcXVlc3REYXRhJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb25maXJtRGlk
Q2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VydmVyLmNwcAppbmRleCBhOGU4NTY3MDA4Nzg4MTc2ZWZlYTk5ZTU2NGNhNWQwYmVkZTkz
YzNlLi5hODY5YjY4YmFmYmQzYmM5ZDdhNzRkNDk0NWJlZjYzZGZmY2VkMDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNw
cApAQCAtNDMwLDEyICs0MzAsMTIgQEAgdm9pZCBJREJTZXJ2ZXI6OmFib3J0T3BlbkFuZFVwZ3Jh
ZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwKICAgICBkYXRh
YmFzZUNvbm5lY3Rpb24tPmNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KCk7CiB9CiAKLXZvaWQg
SURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIpCit2b2lkIElEQlNlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50
NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQiKTsKIAogICAgIGlmIChhdXRvIGRhdGFiYXNlQ29ubmVjdGlvbiA9IG1fZGF0
YWJhc2VDb25uZWN0aW9ucy5nZXQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAg
ICAgIGRhdGFiYXNlQ29ubmVjdGlvbi0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChyZXF1ZXN0
SWRlbnRpZmllcik7CisgICAgICAgIGRhdGFiYXNlQ29ubmVjdGlvbi0+ZGlkRmlyZVZlcnNpb25D
aGFuZ2VFdmVudChyZXF1ZXN0SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZT
ZXJ2ZXIpOwogfQogCiB2b2lkIElEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggMDc1NWVkOWY5YzcwODcx
Nzg5YmQ5ODE4YmM2YzVjZThiNmM1OWE0OS4uNGQyYjgwMThlMDVlYzU1NGMxZjA4OTc0OWNmNTc5
OTJmOGYwMDFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xvc2UodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkYXRh
YmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZT
ZXJ2ZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29uZmlybURp
ZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggNTI1YWRlOWNjMDBlMGFmMjFhZmE5M2I0
Y2YzZjMwYzBkODg4YjM4MC4uMTBlMTk1MTM1Mjg4MzAwYmFiZjhhNGM4OTZkNTIyZTVlNjk1Nzk5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC03NTIsNyArNzUyLDI3IEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6Om5vdGlmeUN1cnJlbnRSZXF1ZXN0Q29ubmVjdGlvbkNsb3NlZE9y
RmlyZWRWZXJzaW9uQ2hhbmdlCiAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+bWF5YmVOb3Rp
ZnlSZXF1ZXN0QmxvY2tlZChtX2RhdGFiYXNlSW5mby0+dmVyc2lvbigpKTsKIH0KIAotdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhclRyYW5zYWN0
aW9uc09uQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24p
Cit7CisgICAgRGVxdWU8UmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiBwZW5k
aW5nVHJhbnNhY3Rpb25zOworICAgIHdoaWxlICghbV9wZW5kaW5nVHJhbnNhY3Rpb25zLmlzRW1w
dHkoKSkgeworICAgICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wZW5kaW5nVHJhbnNhY3Rpb25z
LnRha2VGaXJzdCgpOworICAgICAgICBpZiAoJnRyYW5zYWN0aW9uLT5kYXRhYmFzZUNvbm5lY3Rp
b24oKSAhPSAmY29ubmVjdGlvbikKKyAgICAgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbnMuYXBw
ZW5kKFdURk1vdmUodHJhbnNhY3Rpb24pKTsKKyAgICB9CisgICAgaWYgKCFwZW5kaW5nVHJhbnNh
Y3Rpb25zLmlzRW1wdHkoKSkKKyAgICAgICAgbV9wZW5kaW5nVHJhbnNhY3Rpb25zLnN3YXAocGVu
ZGluZ1RyYW5zYWN0aW9ucyk7CisKKyAgICBEZXF1ZTxSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbj4+IHRyYW5zYWN0aW9uc1RvQWJvcnQ7CisgICAgZm9yIChhdXRvJiB0cmFuc2Fj
dGlvbiA6IG1faW5Qcm9ncmVzc1RyYW5zYWN0aW9ucy52YWx1ZXMoKSkgeworICAgICAgICBpZiAo
JnRyYW5zYWN0aW9uLT5kYXRhYmFzZUNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbikKKyAgICAg
ICAgICAgIHRyYW5zYWN0aW9uc1RvQWJvcnQuYXBwZW5kKHRyYW5zYWN0aW9uKTsKKyAgICB9Cisg
ICAgZm9yIChhdXRvJiB0cmFuc2FjdGlvbiA6IHRyYW5zYWN0aW9uc1RvQWJvcnQpCisgICAgICAg
IHRyYW5zYWN0aW9uLT5hYm9ydFdpdGhvdXRDYWxsYmFjaygpOworfQorCit2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVuaXF1ZUlEQkRhdGFiYXNlQ29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikKIHsKICAg
ICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6OmRpZEZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQiKTsKIApAQCAtNzYxLDYgKzc4MSwxMyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpk
aWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgYwog
CiAgICAgQVNTRVJUX1VOVVNFRChyZXF1ZXN0SWRlbnRpZmllciwgbV9jdXJyZW50T3BlbkRCUmVx
dWVzdC0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0SWRlbnRpZmllcigpID09IHJlcXVlc3RJZGVudGlm
aWVyKTsKIAorICAgIGlmIChjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikgeworICAg
ICAgICBpZiAobV9vcGVuRGF0YWJhc2VDb25uZWN0aW9ucy5jb250YWlucygmY29ubmVjdGlvbikp
IHsKKyAgICAgICAgICAgIGNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9uKGNvbm5lY3Rpb24p
OworICAgICAgICAgICAgbV9vcGVuRGF0YWJhc2VDb25uZWN0aW9ucy5yZW1vdmUoJmNvbm5lY3Rp
b24pOworICAgICAgICB9CisgICAgfQorCiAgICAgbm90aWZ5Q3VycmVudFJlcXVlc3RDb25uZWN0
aW9uQ2xvc2VkT3JGaXJlZFZlcnNpb25DaGFuZ2VFdmVudChjb25uZWN0aW9uLmlkZW50aWZpZXIo
KSk7CiB9CiAKQEAgLTE4NDUsMjQgKzE4NzIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpj
b25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mCiAg
ICAgICAgIG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogCi0gICAgRGVxdWU8UmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiBwZW5k
aW5nVHJhbnNhY3Rpb25zOwotICAgIHdoaWxlICghbV9wZW5kaW5nVHJhbnNhY3Rpb25zLmlzRW1w
dHkoKSkgewotICAgICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wZW5kaW5nVHJhbnNhY3Rpb25z
LnRha2VGaXJzdCgpOwotICAgICAgICBpZiAoJnRyYW5zYWN0aW9uLT5kYXRhYmFzZUNvbm5lY3Rp
b24oKSAhPSAmY29ubmVjdGlvbikKLSAgICAgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbnMuYXBw
ZW5kKFdURk1vdmUodHJhbnNhY3Rpb24pKTsKLSAgICB9Ci0KLSAgICBpZiAoIXBlbmRpbmdUcmFu
c2FjdGlvbnMuaXNFbXB0eSgpKQotICAgICAgICBtX3BlbmRpbmdUcmFuc2FjdGlvbnMuc3dhcChw
ZW5kaW5nVHJhbnNhY3Rpb25zKTsKLQotICAgIERlcXVlPFJlZlB0cjxVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb25zVG9BYm9ydDsKLSAgICBmb3IgKGF1dG8mIHRyYW5z
YWN0aW9uIDogbV9pblByb2dyZXNzVHJhbnNhY3Rpb25zLnZhbHVlcygpKSB7Ci0gICAgICAgIGlm
ICgmdHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKQotICAg
ICAgICAgICAgdHJhbnNhY3Rpb25zVG9BYm9ydC5hcHBlbmQodHJhbnNhY3Rpb24pOwotICAgIH0K
LQotICAgIGZvciAoYXV0byYgdHJhbnNhY3Rpb24gOiB0cmFuc2FjdGlvbnNUb0Fib3J0KQotICAg
ICAgICB0cmFuc2FjdGlvbi0+YWJvcnRXaXRob3V0Q2FsbGJhY2soKTsKKyAgICBjbGVhclRyYW5z
YWN0aW9uc09uQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAogICAgIGlmIChtX2N1cnJlbnRPcGVu
REJSZXF1ZXN0KQogICAgICAgICBub3RpZnlDdXJyZW50UmVxdWVzdENvbm5lY3Rpb25DbG9zZWRP
ckZpcmVkVmVyc2lvbkNoYW5nZUV2ZW50KGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmgKaW5kZXggY2FjMjcwODExN2FjMDg0ZDQyMDhkNzk3YWM3OTc5ZmY5YmRj
MjA0MS4uNTU0YjcxMmJjZGZmNTcyYTU4NWUxZTVkMTUyOWViZTNjMjdiOTliMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFu
c2FjdGlvbkRlc3Ryb3llZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJik7CiAgICAgdm9p
ZCBjb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIGNvbmZpcm1Db25uZWN0aW9uQ2xvc2VkT25TZXJ2ZXIoVW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uJik7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVu
aXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVy
KTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9t
U2VydmVyKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogCkBAIC0yNDksNiArMjQ5LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHdhaXRGb3JSZXF1ZXN0U3BhY2VDb21wbGV0aW9uKFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElEQkVycm9y
JiYpPiYmKTsKICAgICB2b2lkIHN0YXJ0U3BhY2VJbmNyZWFzZVRhc2sodWludDY0X3QgaWRlbnRp
ZmllciwgdWludDY0X3QgdGFza1NpemUpOwogICAgIHZvaWQgZmluaXNoU3BhY2VJbmNyZWFzZVRh
c2sodWludDY0X3QgaWRlbnRpZmllciwgYm9vbCBpc1Rhc2tTdWNjZXNzZnVsKTsKKyAgICAKKyAg
ICB2b2lkIGNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29u
bmVjdGlvbiYpOwogCiAgICAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVW5pcXVlQ2FsbGJhY2tJ
ZGVudGlmaWVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5j
cHAKaW5kZXggN2ZkZGYwZmEzNDAwNjcxNjQzMTM1MDdjMDgxNmVmN2UyMGNlMGVmOC4uZTcyYzNi
OTA5OWJhOGQyY2Y5OGI5ZDU5ZjU3ZjhmZGNmM2E1MTExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKQEAgLTEwNywxMyArMTA3LDEzIEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKCkKICAg
ICAgICAgbV9kYXRhYmFzZS0+Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcigqdGhpcyk7CiB9CiAK
LXZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpCit2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5l
Y3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQogewogICAgIExPRyhJbmRleGVkREIsICJVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQgLSAlcyAt
ICUiIFBSSXU2NCwgbV9vcGVuUmVxdWVzdElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCksIGlkZW50aWZpZXIoKSk7CiAKICAgICBBU1NFUlQobV9kYXRhYmFzZSk7CiAgICAg
aWYgKG1fZGF0YWJhc2UpCi0gICAgICAgIG1fZGF0YWJhc2UtPmRpZEZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQoKnRoaXMsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgbV9kYXRhYmFzZS0+ZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCgqdGhpcywgcmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKIH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNv
bm5lY3Rpb246OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZShjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uaAppbmRleCBjY2E0Zjc2MTE4MzVjY2U5OTg5ZTNmOTIxZmVhZTBj
OWFiMjExOTEwLi4wNzYwOTBjZWFmMWYzNDcyOGJlZGZiZjIxN2RiYjZjZDUwOGQwZWJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCkBAIC03OCw3ICs3OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsK
ICAgICB2b2lkIGRpZERlbGV0ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lk
IGRpZFJlbmFtZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKLSAgICB2b2lkIGRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3Nl
ZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIHZvaWQgZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hh
bmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
ICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURC
U2VydmVyLmNwcAppbmRleCBhYTQ4MjNjOTM0ZjYxMDE4N2U3Y2Y0ZDgxZDQwZWVmMjgyNzE1ZTM0
Li5hYTA3MDRlOTg2ZmNjOTRlZmQxMWU5MmUwMjc3YTE5Zjc2MDgyY2U1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9j
ZXNzSURCU2VydmVyLmNwcApAQCAtNDI1LDEwICs0MjUsMTAgQEAgdm9pZCBJblByb2Nlc3NJREJT
ZXJ2ZXI6OmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWQKICAgICB9KTsKIH0KIAotdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgSW5Qcm9j
ZXNzSURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVz
dElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiB7Ci0g
ICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlm
aWVyXSB7Ci0gICAgICAgIG1fc2VydmVyLT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBSdW5Mb29w
OjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIsIGNvbm5l
Y3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyXSB7CisgICAgICAgIG1fc2VydmVyLT5kaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgfSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
blByb2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCBjYWRjODEyYTM5OWM2OThmOTM3ZTVjOTVj
MDc3ZmMwYTFjMTdiNmYwLi5lNjMyOWFmZmZiZTRjYmEwMzM1ZTViNWZmMjAwZjRhODlmOWU1Yzk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Q
cm9jZXNzSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNs
b3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2
b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xv
c2VkT25CZWhhbGZPZlNlcnZlcikgZmluYWw7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2Vs
bGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgZmluYWw7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xv
c2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2lu
LCB1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwCmluZGV4IDBjODEyZGYzMmY3ODk1ZWQ2ZjU0YjAyNTJjOWRiNmJlYmQwNDY5MjQu
LjAyMzBjZWVhZjM4NjEyMjdlMGIwN2VkY2UzZjJmM2Q5YjhmZTMyNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMzI3LDkgKzMyNyw5IEBAIHZvaWQgV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRh
dGFiYXNlQ29ubmVjCiAgICAgaWRiU2VydmVyKCkuYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZChk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogfQog
Ci12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVu
dCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQogewot
ICAgIGlkYlNlcnZlcigpLmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZGJTZXJ2ZXIoKS5k
aWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwog
fQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6b3BlbkRCUmVxdWVzdENhbmNlbGxl
ZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oCmluZGV4IGRlNjk2MzIxZWM1OWY0NTZmM2NlYWNjMTM2NjI1OGI2ZTgwZjU1
OTQuLjZhN2UyYjZhOTY2MGIzNzliMzQ5MmVlMmU2YzdjN2YzMWUxMjQ4MmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xvc2UodWludDY0X3QgZGF0YWJhc2VDb25u
ZWN0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBhYm9ydE9wZW5B
bmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
KTsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNs
b3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChj
b25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpOwogICAgIHZvaWQgY29uZmlybURpZENsb3Nl
RnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCmluZGV4IDgw
M2I5NmQyOWFmYzc5YzI5MzFjOGExMWVmZDQ1M2M1YWYwZjJhNGYuLjM2YzI3MjczM2YyYWZjZDQ4
ZjY5ZjM4MDQ2MTY2ZWZiZTViYzM1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQubWVzc2FnZXMuaW4KQEAgLTQ3LDcgKzQ3LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50IHsKICAgICBEYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xv
c2UodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgRGF0YWJhc2VD
b25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwog
ICAgIEFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHRyYW5zYWN0aW9uSWRl
bnRpZmllcik7Ci0gICAgRGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVx
dWVzdElkZW50aWZpZXIpOworICAgIERpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2Vy
dmVyKTsKICAgICBPcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
IHJlcXVlc3REYXRhKTsKICAgICBDb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRh
dGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCAzM2VlYTI0YzgxYzU4OWIxNjdhZTJjYTcxY2Nk
MzJlNGZkNGFhZjVkLi4zZmY4MTdkMGZlY2FjZWNmN2QwMjkwZThmYTM2ZmY1YzU3MWI1OWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTE5
OCw5ICsxOTgsOSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRPcGVuQW5k
VXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lYwogICAgIHNlbmQoTWVzc2FnZXM6
OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6QWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZChkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIpKTsKIH0KIAot
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQo
dWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiB7Ci0gICAgc2VuZChN
ZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpEaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKSk7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpEaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlm
aWVyLCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikpOwogfQogCiB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5oCmluZGV4IGIyNTI1OWYyMjUyMzQ5YjE4NjFiZTE3MWU1ZmNhZTRmYTQzMDUwZTcu
LjcxYWQ4Y2Q5MzEzNTAwN2M4MDM3MWYyNjVhNDJhZjhiNDkyNDE5NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xvc2UodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBkYXRhYmFzZUNvbm5l
Y3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgZmluYWw7
CiAgICAgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikgZmluYWw7Cisg
ICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpIGZp
bmFsOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJS
ZXF1ZXN0RGF0YSYpIGZpbmFsOwogICAgIHZvaWQgY29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRiZDMwMTQ0M2ViZGRh
NDY3NWY4ODljZmU0OWI5ZjE4Mzk3NWYxY2UuLjA1NmFkNjU5M2MzOWFiYmZkZjYyMGIwNTRlMzI3
MjRjOTJkMGE5Y2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMC0zMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjUwNzU0KTogd2ViIHBhZ2UgdXNp
bmcgSURCSW5kZXggZG9lc24ndCBsb2FkIG9jY2FzaW9uYWxseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNDMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0luZGV4ZWREQkluUGFnZUNhY2hlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUu
bW06IEFkZGVkLgorICAgICAgICAoLVtJbmRleGVkREJJblBhZ2VDYWNoZU1lc3NhZ2VIYW5kbGVy
IHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKyAgICAg
ICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5k
ZXhlZERCTm90SW5QYWdlQ2FjaGUuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMzEgIFRhZGV1IFph
Z2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkFzc2VtYmx5XSBDcmVh
dGUgYSBXYXNtIGludGVycHJldGVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdjMDkxODk2
NmVhM2NiZDgzOGQ3ZWRmYTdiNTdkYjcyNmY4ZTllMmYuLmNlNWU1NTAwOTQxNGE5NDAyZmU3ZTFk
NDEwMDU5MmNkNTZkODQ2NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MjYsNiArNzI2
LDkgQEAKIAkJOTM2OEEyNUYyMjlFRkI0NzAwQTgyOUNBIC8qIGxvY2FsLXN0b3JhZ2UtcHJvY2Vz
cy1zdXNwZW5kcy0yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM2OEEyNUMyMjlFRkIzQTAwQTgyOUNBIC8qIGxvY2FsLXN0b3JhZ2Ut
cHJvY2Vzcy1zdXNwZW5kcy0yLmh0bWwgKi87IH07CiAJCTkzNkY3MjgwMUNEN0Q5RUMwMDY4QTBG
QiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2RjcyN0UxQ0Q3RDlEMDAwNjhBMEZCIC8q
IGxhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKIAkJOTM2RjcyODExQ0Q3RDlFQzAw
NjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNkY3MjdGMUNEN0Q5RDAwMDY4QTBG
QiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCAqLzsgfTsKKwkJOTNBMzNDMDUyMzZCOEZB
NzAwMjczODYxIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMzNDMDQyMzZCOEY3OTAwMjczODYxIC8qIElu
ZGV4ZWREQkluUGFnZUNhY2hlLm1tICovOyB9OworCQk5M0EzM0MwNjIzNkI4RkRCMDAyNzM4NjEg
LyogSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EzM0MwMzIzNkI4RjRDMDAyNzM4NjEgLyogSW5k
ZXhlZERCSW5QYWdlQ2FjaGUuaHRtbCAqLzsgfTsKKwkJOTNBMzNDMDcyMzZCOEZEQjAwMjczODYx
IC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMzNDMDIyMzZCOEY0QzAwMjczODYxIC8q
IEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgKi87IH07CiAJCTkzQUY0RUNFMTUwNkYwNjQw
MDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUY0
RUNEMTUwNkYwNjQwMDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJ
bWFnZXNfQnVuZGxlLmNwcCAqLzsgfTsKIAkJOTNBRjRFRDExNTA2RjEzMDAwN0ZENTdFIC8qIGxv
dHMtb2YtaW1hZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBRjRFQ0YxNTA2RjEyMzAwN0ZENTdFIC8qIGxvdHMtb2YtaW1hZ2Vz
Lmh0bWwgKi87IH07CiAJCTkzQjYyMDU0MjM0RUE2MkMwMEQ0OUI5NyAvKiBTdG9yYWdlUXVvdGFN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQjYyMDUzMjM0RUEzMkIwMEQ0OUI5NyAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcCAqLzsg
fTsKQEAgLTEyODksOSArMTI5MiwxMSBAQAogCQkJCTUxQTU4Nzg1MUQyNzM5RTMwMDRCQTlBRiAv
KiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlDQUIwRkY1MjIyMzMyNDA3MDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUtMS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNBQjBGRjUzMjIzMzI0MDcwMDZDQTVCMCAv
KiBJbmRleGVkREJGaWxlTmFtZS0yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTNB
MzNDMDYyMzZCOEZEQjAwMjczODYxIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCQ0VFNEUxQzg0RjUzQjAwNDJDODJFIC8qIEluZGV4ZWRE
Qk11bHRpUHJvY2Vzcy0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCQ0VFNEYx
Qzg0RjUzQjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTFBNTg3N0QxRDFCNDlDRDAwNEJBOUFGIC8qIEluZGV4ZWREQk11
bHRpUHJvY2Vzcy0zLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTNBMzNDMDcyMzZC
OEZEQjAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJNTFCMUVFOTYxQzgwRkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNp
c3RlbmNlLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MUIxRUU5NzFDODBGQUVG
MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVk
Q2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLywK
QEAgLTE0NTksNyArMTQ2NCw2IEBACiAJCQkJNTc3NDU0RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVDMjM0RjFGOTMwMEU4NUUwOSAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1Nzk4MzM5MjIzNjhGQTM3MDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
LQkJCQk1Nzk4MzM3QzIzNUVCNjg5MDA4RTU1NDcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk1NzY2M0RFQTIzNEVBNjZEMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24tbmZjLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIw
MTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVk
ZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUw
MDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLApAQCAtMjExNCw2ICsyMTE4LDkgQEAKIAkJOTM5QkE5MTYxNDEwMzQxMjAw
MUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUJGRTM5MThFNTU0ODkwMDg4MzI3NSAvKiBTdHJpbmdU
cnVuY2F0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTdHJp
bmdUcnVuY2F0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTI1ODk4MUY5
MkZGMTUwMDNFNTEwQyAvKiBUZXh0Q29kZWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dENv
ZGVjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNBMzNDMDIyMzZCOEY0QzAw
MjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5M0EzM0MwMzIzNkI4RjRDMDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdl
Q2FjaGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEluZGV4ZWREQkluUGFnZUNh
Y2hlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQTMzQzA0MjM2QjhGNzkw
MDI3Mzg2MSAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQkluUGFnZUNhY2hlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcgLyogUmVmUHRyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZlB0ci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FBMTgwREEyNjQwMENEMjRENyAvKiBSZWYuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBNDI3QUMxODBEQTYwRjAwQ0QyNEQ3IC8qIE1vdmVPbmx5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vdmVPbmx5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yODU4LDYgKzI4NjUsNyBAQAogCQkJCTUxMTBGQ0VGMUUwMUNCQUEwMDZGOEQwQiAvKiBJ
REJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAogCQkJCTUxQTU4Nzg0MUQyNzJFRjMwMDRCQTlBRiAv
KiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tICovLAogCQkJCUNBQjBGRjU0MjIzMzJD
M0EwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS5tbSAqLywKKwkJCQk5M0EzM0MwNDIzNkI4
Rjc5MDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0gKi8sCiAJCQkJNTFCQ0VFNDkx
Qzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy5tbSAqLywKIAkJCQk1MUIx
RUU4RDFDODBGNTg4MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJ
NTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eS5tbSAqLywKQEAgLTMzMjYsOSArMzMzNCwxMSBAQAogCQkJCTUxQTU4
NzgyMUQyNzJFQjUwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRt
bCAqLywKIAkJCQlDQUIwRkY1MTIyMzMyM0Y2MDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUt
MS5odG1sICovLAogCQkJCUNBQjBGRjUwMjIzMzIzRjYwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxl
TmFtZS0yLmh0bWwgKi8sCisJCQkJOTNBMzNDMDMyMzZCOEY0QzAwMjczODYxIC8qIEluZGV4ZWRE
QkluUGFnZUNhY2hlLmh0bWwgKi8sCiAJCQkJNTFCQ0VFNEMxQzg0RjUyQzAwNDJDODJFIC8qIElu
ZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwgKi8sCiAJCQkJNTFCQ0VFNEQxQzg0RjUyQzAwNDJD
ODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgKi8sCiAJCQkJNTFBNTg3N0MxRDFC
M0Q4RDAwNEJBOUFGIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwgKi8sCisJCQkJOTNB
MzNDMDIyMzZCOEY0QzAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgKi8s
CiAJCQkJNTFCMUVFOTQxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTEu
aHRtbCAqLywKIAkJCQk1MUIxRUU5NTFDODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lz
dGVuY2UtMi5odG1sICovLAogCQkJCTU3NTk5RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVk
REJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyAqLywKQEAgLTQ2
MzUsNiArNDY0NSw3IEBACiAJCQkJNTExMEZDRkExRTAxQ0RCODAwNkY4RDBCIC8qIElEQkluZGV4
VXBncmFkZVRvVjIubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUE1ODc4NjFEMjczQUE5MDA0QkE5
QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUNBQjBGRjU1MjIzMzJDNTcwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTkzQTMzQzA1MjM2QjhGQTcwMDI3Mzg2MSAvKiBJbmRleGVkREJJblBhZ2VD
YWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEJFMUQwQTY1MTMwMEZFQkNGMyAvKiBJ
bmRleGVkREJNdWx0aVByb2Nlc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCRjFEMEE2
NTIyMDBGRUJDRjMgLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkluUGFnZUNh
Y2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNlYzViNWEyNDFiZjZhNDk3YWRkMmQxY2IzZDllNWQ4ZjM2
NWRmMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzY3JpcHQ+CisKK3ZhciBkYjsKK3ZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4
ZWREQi5vcGVuKCJUZXN0SW5kZXhlZERCIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9IChldmVudCkg
PT4geworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkYi5vbmNsb3NlID0gKGV2
ZW50KSA9PiB7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJEYXRhYmFzZSBDb25uZWN0aW9uIENsb3NlZCIpOworICAgIH0KKyAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgi
RGF0YWJhc2UgT3BlbmVkIik7Cit9CityZXF1ZXN0Lm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKKyAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgi
RGF0YWJhc2UgT3BlbiBGYWlsZWQiKTsKK30KKworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9JbmRleGVkREJJblBhZ2VDYWNoZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM5NWExYzhm
ZWI4YTFlZTdkNzkxOWNhOWFjNzVlMWZhMmY3MDA1ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0K
QEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorCisjaW1wb3J0IDxX
ZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250
ZW50Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tVc2VyU3R5bGVTaGVl
dC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg+
CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0
TWVzc2FnZTsKK3N0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVz
c2FnZTsKKworQGludGVyZmFjZSBJbmRleGVkREJJblBhZ2VDYWNoZU1lc3NhZ2VIYW5kbGVyIDog
TlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlv
biBJbmRleGVkREJJblBhZ2VDYWNoZU1lc3NhZ2VIYW5kbGVyCisKKy0gKHZvaWQpdXNlckNvbnRl
bnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJv
bGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQor
eworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgbGFzdFNjcmlwdE1lc3Nh
Z2UgPSBtZXNzYWdlOworfQorCitAZW5kCisKK1RFU1QoSW5kZXhlZERCLCBJbmRleGVkREJJblBh
Z2VDYWNoZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbSW5kZXhlZERCSW5QYWdl
Q2FjaGVNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
W1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisK
KyAgICAvLyBMb2FkIHBhZ2UgdGhhdCBob2xkcyBvcGVuIGRhdGFiYXNlIGNvbm5lY3Rpb24uCisg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhlZERCSW5QYWdlQ2Fj
aGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmlu
ZzEgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CisgICAgRVhQRUNUX1dL
X1NUUkVRKEAiRGF0YWJhc2UgT3BlbmVkIiwgc3RyaW5nMS5nZXQoKSk7CisKKyAgICAvLyBMb2Fk
IGFub3RoZXIgcGFnZSB0aGF0IGRlbGV0ZXMgZGF0YWJhc2UuCisgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0MiA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQk5vdEluUGFnZUNhY2hlIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07Cisg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdDJdOworCisgICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cmlwdE1lc3NhZ2UpOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nMiA9IChOU1N0cmlu
ZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJEYXRh
YmFzZSBEZWxldGVkIiwgc3RyaW5nMi5nZXQoKSk7CisKKyAgICBbd2ViVmlldyBnb0JhY2tdOwor
ICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+
IHN0cmluZzMgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CisgICAgRVhQ
RUNUX1dLX1NUUkVRKEAiRGF0YWJhc2UgQ29ubmVjdGlvbiBDbG9zZWQiLCBzdHJpbmczLmdldCgp
KTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SW5kZXhlZERCTm90SW5QYWdlQ2FjaGUuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvSW5kZXhlZERCTm90SW5QYWdlQ2FjaGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDEw
ZjgyZGZjZjk4MjBiZTAzYzJkOTY1ZDdjY2FhY2RhYmIxZGFhCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJOb3RJblBhZ2VD
YWNoZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KKwor
dmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJUZXN0SW5kZXhl
ZERCIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIkRhdGFiYXNl
IERlbGV0ZWQiKTsKK30KK3JlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgi
RGF0YWJhc2UgRGVsZXRpb24gQmxvY2tlZCIpOworfQorCis8L3NjcmlwdD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382659</attachid>
            <date>2019-11-01 17:15:39 -0700</date>
            <delta_ts>2019-11-04 20:21:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203431-20191101171538.patch</filename>
            <type>text/plain</type>
            <size>44776</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI2M2ZhOGMwMjA3ZjRl
OTI1YjE4NTc3NTI2M2MxYmIzMzk1Y2U3Ny4uMGYzY2RiYjJiYjFmMjlkNWEzZGZkMWM1MTY0MThh
OWYxMWZhYzQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTExLTAxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTA3
NTQpOiB3ZWIgcGFnZSB1c2luZyBJREJJbmRleCBkb2Vzbid0IGxvYWQgb2NjYXNpb25hbGx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBub3cgYWxs
b3cgcGFnZSB0byBlbnRlciBjYWNoZSBldmVuIHdoZW4gdGhlcmUgYXJlIGFjdGl2ZSBJREIgb2Jq
ZWN0cy4gVGhlIG9wZW4gZGF0YWJhc2UgY29ubmVjdGlvbiBvbiAKKyAgICAgICAgc3VzcGVuZGVk
IHBhZ2VzIHdpbGwgc3RvcCBvdGhlciBhY3RpdmUgcGFnZXMgZnJvbSBkZWxldGVpbmcgb3Igb3Bl
bmluZyB0aGUgc2FtZSBkYXRhYmFzZSwgd2hpY2ggY2F1c2VzIGEgCisgICAgICAgIHJlZ3Jlc3Np
b24gb2YgcGFnZSBub3QgbG9hZGluZyBjb3JyZWN0bHkuIAorCisgICAgICAgIFRvIGZpeCB0aGlz
IGlzc3VlLCB3ZSBjbG9zZSB0aG9zZSBvcGVuIGNvbm5lY3Rpb25zIG9uIHN1c3BlbmRlZCBwYWdl
IHdoZW4gd2Uga25vdyBmcm9tIHRoZSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCAKKyAgICAgICAgdGhh
dCB0aGVyZSBpcyBvcGVuL2RlbGV0ZSByZXF1ZXN0IGJsb2NrZWQuIEluIHRoaXMgY2FzZSwgd2hl
biB0aGUgY2FjaGVkIHBhZ2UgcmVzdW1lcywgaXQgZ2V0IGEgY2xvc2UgZXZlbnQgb24gCisgICAg
ICAgIHRoZSBvcmlnaW5hbGx5IG9wZW4gZGF0YWJhc2UgY29ubmVjdGlvbi4KKworICAgICAgICBB
UEkgdGVzdDogSW5kZXhlZERCLkluZGV4ZWREQkluUGFnZUNhY2hlCisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZTo6ZGlzcGF0Y2hFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6SURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246
OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAy
MDE5LTExLTAxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIElu
dGVncmF0ZSBtZWRpYSBxdWVyeSBldmFsdWF0aW9uIGludG8gSFRNTDUgZXZlbnQgbG9vcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBmMzQzMGY3ODRkOWI1NWE4MmM4YTZmYjg3Yzc5MTAwYzIxYzIzNWQ3Li5kNTAwZDg3
N2Q1ZWRkZjMzM2VmOWI5MjQ2NjRjZDExYzM3MTgzYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE5LTExLTAxICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT04gKHIyNTA3NTQpOiB3ZWIgcGFnZSB1c2luZyBJREJJbmRleCBkb2Vzbid0
IGxvYWQgb2NjYXNpb25hbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDM0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKwogMjAxOS0xMS0wMSAgUGVuZyBM
aXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gb24gdGhlIFBpY3R1cmUt
aW4tUGljdHVyZSBBUEkgZmVhdHVyZSBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggYzY2M2Y4N2JiNjZhMGUzNWVm
NzY3ZDYzMWI4N2Q2Y2EzNTZlOTJiNS4uYzdkNDIwZWZhYzY0OTlmOTllNGZiOTIxMGRiZjI3NTlj
MGE2M2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcApAQCAtNDYzLDEwICs0NjMsMTkgQEAgdm9pZCBJREJEYXRhYmFzZTo6ZmlyZVZl
cnNpb25DaGFuZ2VFdmVudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGUK
ICAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7CiAKICAg
ICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSB8fCBtX2Nsb3NlUGVuZGluZykgewotICAg
ICAgICBjb25uZWN0aW9uUHJveHkoKS5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KG1fZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICBjb25u
ZWN0aW9uUHJveHkoKS5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KG1fZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIsIGZhbHNlKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKKyAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3Vt
ZW50KCkpIHsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGlmIChkb2N1bWVudC5iYWNrRm9yd2Fy
ZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKSB7CisgICAgICAg
ICAgICBjb25uZWN0aW9uUHJveHkoKS5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KG1fZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIsIHRydWUpOworICAgICAg
ICAgICAgY29ubmVjdGlvblRvU2VydmVyTG9zdChJREJFcnJvciB7IFVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gb24gY2FjaGVkIHBhZ2UgY2xvc2VkIHRvIHVuYmxvY2sgb3RoZXIgY29ubmVjdGlv
bnMiX3N9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIFJl
ZjxFdmVudD4gZXZlbnQgPSBJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6OmNyZWF0ZShyZXF1ZXN0SWRl
bnRpZmllciwgY3VycmVudFZlcnNpb24sIHJlcXVlc3RlZFZlcnNpb24sIG1fZXZlbnROYW1lcy52
ZXJzaW9uY2hhbmdlRXZlbnQpOwogICAgIGV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CiAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5ldmVudFF1ZXVlKCkuZW5xdWV1ZUV2ZW50KFdURk1vdmUo
ZXZlbnQpKTsKQEAgLTQ4Miw3ICs0OTEsNyBAQCB2b2lkIElEQkRhdGFiYXNlOjpkaXNwYXRjaEV2
ZW50KEV2ZW50JiBldmVudCkKICAgICBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhOjpkaXNwYXRj
aEV2ZW50KGV2ZW50KTsKIAogICAgIGlmIChldmVudC5pc1ZlcnNpb25DaGFuZ2VFdmVudCgpICYm
IGV2ZW50LnR5cGUoKSA9PSBtX2V2ZW50TmFtZXMudmVyc2lvbmNoYW5nZUV2ZW50KQotICAgICAg
ICBtX2Nvbm5lY3Rpb25Qcm94eS0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChtX2RhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIGRvd25jYXN0PElEQlZlcnNpb25DaGFuZ2VFdmVudD4oZXZl
bnQpLnJlcXVlc3RJZGVudGlmaWVyKCkpOworICAgICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+ZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudChtX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGRv
d25jYXN0PElEQlZlcnNpb25DaGFuZ2VFdmVudD4oZXZlbnQpLnJlcXVlc3RJZGVudGlmaWVyKCks
IGZhbHNlKTsKIH0KIAogdm9pZCBJREJEYXRhYmFzZTo6ZGlkQ3JlYXRlSW5kZXhJbmZvKGNvbnN0
IElEQkluZGV4SW5mbyYgaW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKaW5kZXggNDk3
NzcyZDcwNjllNzZjMDE0NTIxNDg3MDg1YThkZGJhNDYwMzExZS4uOTEwMDMxM2Y0Zjk3YzY1MzI3
NDVmNmQwNzNjZWZlZTdlNzFkYTI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKQEAg
LTI3MSw5ICsyNzEsOSBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6ZmlyZVZlcnNpb25DaGFu
Z2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudAogICAgIGRhdGFiYXNlLT5w
ZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZCgqZGF0YWJhc2UsICZJREJEYXRhYmFzZTo6Zmly
ZVZlcnNpb25DaGFuZ2VFdmVudCwgcmVxdWVzdElkZW50aWZpZXIsIHJlcXVlc3RlZFZlcnNpb24p
OwogfQogCi12b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVu
dCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKQordm9pZCBJREJDb25uZWN0aW9uUHJveHk6
OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
Ym9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikKIHsKLSAgICBjYWxsQ29ubmVj
dGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50LCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmll
cik7CisgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCwgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
ciwgcmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsK
IH0KIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6Om5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2Vk
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90
IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgK
aW5kZXggOTFmOTNjNDY3MDViZDZmNDk2NTE2NTQ0NzliNjU0ODllZmEwZDMwZi4uNDZlMDNjM2My
ZmFhMWMyMzdkNzU5YTBhYmZlMjkzNmY3ZTFmOTBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHku
aApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW5hbWVJbmRleChUcmFuc2Fj
dGlvbk9wZXJhdGlvbiYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3Qg
aW5kZXhJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogCiAgICAgdm9pZCBmaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90
IHJlcXVlc3RlZFZlcnNpb24pOwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xv
c2VkT25CZWhhbGZPZlNlcnZlcik7CiAKICAgICB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9j
a2VkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2
NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZvaWQgb3BlbkRCUmVx
dWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcAppbmRleCBmYzBkOWIwNTQ0ZTgwNzM3YjBlNmQyYTYxMzc2ZDE2YzhkOTY3
OTZiLi5jNDQ3ZmYwZmNjMDIwMDY5YmFhOGYwNjVjYmViZGIyNmUyNTgyYzMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRv
U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtNDE1LDEzICs0MTUsMTMgQEAgdm9pZCBJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJh
c2VDb25uZWN0aW9uSWQKICAgICBtX3Byb3h5LT5maXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCByZXF1ZXN0ZWRWZXJz
aW9uKTsKIH0KIAotdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgSURCQ29ubmVjdGlv
blRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiB7CiAgICAg
TE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFu
Z2VFdmVudCIpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAobV9zZXJ2
ZXJDb25uZWN0aW9uSXNWYWxpZCkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkRmlyZVZlcnNpb25D
aGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmll
cik7CisgICAgICAgIG1fZGVsZWdhdGUtPmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9z
ZWRPbkJlaGFsZk9mU2VydmVyKTsKIH0KIAogdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRp
ZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuaAppbmRleCA0MjVlNDVhZjdkOTJhMGQ5ODhmZWQ2NWM5M2M5MDkzZGJiNGNlYzI0Li5m
ODVkZGRjZjk3YTYyYjdjYTBkZWE5NDRhOTBlMzJiNTU3MTJlNDk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKLSAgICB2b2lkIGRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgdm9p
ZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRv
U2VydmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCmluZGV4IGRjOGE5OWJmNzUyZTE3YTVm
YjdkMzFiM2ZmNDMzMWM2Yjk4MTc0MTguLjg4Y2NhZTY4YTBhYjk4MzE1ZWJkODQ3NjI1ZmFkMTUy
YjZmYjMwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5o
CkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25u
ZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWJv
cnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5EQlJl
cXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllcikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGE4ZTg1NjcwMDg3ODgxNzZlZmVhOTll
NTY0Y2E1ZDBiZWRlOTNjM2UuLmE4NjliNjhiYWZiZDNiYzlkN2E3NGQ0OTQ1YmVmNjNkZmZjZWQw
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCkBAIC00MzAsMTIgKzQzMCwxMiBAQCB2b2lkIElEQlNlcnZlcjo6YWJv
cnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLAogICAgIGRhdGFiYXNlQ29ubmVjdGlvbi0+Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQo
KTsKIH0KIAotdm9pZCBJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgSURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNs
b3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlNlcnZlcjo6
ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCIpOwogCiAgICAgaWYgKGF1dG8gZGF0YWJhc2VDb25u
ZWN0aW9uID0gbV9kYXRhYmFzZUNvbm5lY3Rpb25zLmdldChkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkKLSAgICAgICAgZGF0YWJhc2VDb25uZWN0aW9uLT5kaWRGaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgZGF0YWJhc2VDb25uZWN0aW9uLT5k
aWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHJlcXVlc3RJZGVudGlmaWVyLCBjb25uZWN0aW9uQ2xv
c2VkT25CZWhhbGZPZlNlcnZlcik7CiB9CiAKIHZvaWQgSURCU2VydmVyOjpvcGVuREJSZXF1ZXN0
Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCAw
NzU1ZWQ5ZjljNzA4NzE3ODliZDk4MThiYzZjNWNlOGI2YzU5YTQ5Li40ZDJiODAxOGUwNWVjNTU0
YzFmMDg5NzQ5Y2Y1Nzk5MmY4ZjAwMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC05MCw3ICs5MCw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9z
ZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0T3BlbkFuZFVw
Z3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xv
c2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBvcGVuREJSZXF1
ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA1MjVhZGU5Y2Mw
MGUwYWYyMWFmYTkzYjRjZjNmMzBjMGQ4ODhiMzgwLi4xMGUxOTUxMzUyODgzMDBiYWJmOGE0Yzg5
NmQ1MjJlNWU2OTU3OTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTc1Miw3ICs3
NTIsMjcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6bm90aWZ5Q3VycmVudFJlcXVlc3RDb25u
ZWN0aW9uQ2xvc2VkT3JGaXJlZFZlcnNpb25DaGFuZ2UKICAgICBtX2N1cnJlbnRPcGVuREJSZXF1
ZXN0LT5tYXliZU5vdGlmeVJlcXVlc3RCbG9ja2VkKG1fZGF0YWJhc2VJbmZvLT52ZXJzaW9uKCkp
OwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
biYgY29ubmVjdGlvbikKK3sKKyAgICBEZXF1ZTxSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbj4+IHBlbmRpbmdUcmFuc2FjdGlvbnM7CisgICAgd2hpbGUgKCFtX3BlbmRpbmdUcmFu
c2FjdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BlbmRp
bmdUcmFuc2FjdGlvbnMudGFrZUZpcnN0KCk7CisgICAgICAgIGlmICgmdHJhbnNhY3Rpb24tPmRh
dGFiYXNlQ29ubmVjdGlvbigpICE9ICZjb25uZWN0aW9uKQorICAgICAgICAgICAgcGVuZGluZ1Ry
YW5zYWN0aW9ucy5hcHBlbmQoV1RGTW92ZSh0cmFuc2FjdGlvbikpOworICAgIH0KKyAgICBpZiAo
IXBlbmRpbmdUcmFuc2FjdGlvbnMuaXNFbXB0eSgpKQorICAgICAgICBtX3BlbmRpbmdUcmFuc2Fj
dGlvbnMuc3dhcChwZW5kaW5nVHJhbnNhY3Rpb25zKTsKKworICAgIERlcXVlPFJlZlB0cjxVbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb25zVG9BYm9ydDsKKyAgICBmb3Ig
KGF1dG8mIHRyYW5zYWN0aW9uIDogbV9pblByb2dyZXNzVHJhbnNhY3Rpb25zLnZhbHVlcygpKSB7
CisgICAgICAgIGlmICgmdHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigpID09ICZjb25u
ZWN0aW9uKQorICAgICAgICAgICAgdHJhbnNhY3Rpb25zVG9BYm9ydC5hcHBlbmQodHJhbnNhY3Rp
b24pOworICAgIH0KKyAgICBmb3IgKGF1dG8mIHRyYW5zYWN0aW9uIDogdHJhbnNhY3Rpb25zVG9B
Ym9ydCkKKyAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0V2l0aG91dENhbGxiYWNrKCk7Cit9CisK
K3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29sIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKQogewogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRmly
ZVZlcnNpb25DaGFuZ2VFdmVudCIpOwogCkBAIC03NjEsNiArNzgxLDEzIEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uJiBjCiAKICAgICBBU1NFUlRfVU5VU0VEKHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1
cnJlbnRPcGVuREJSZXF1ZXN0LT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVyKCkgPT0g
cmVxdWVzdElkZW50aWZpZXIpOwogCisgICAgaWYgKGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKSB7CisgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZUNvbm5lY3Rpb25zLmNvbnRhaW5z
KCZjb25uZWN0aW9uKSkgeworICAgICAgICAgICAgY2xlYXJUcmFuc2FjdGlvbnNPbkNvbm5lY3Rp
b24oY29ubmVjdGlvbik7CisgICAgICAgICAgICBtX29wZW5EYXRhYmFzZUNvbm5lY3Rpb25zLnJl
bW92ZSgmY29ubmVjdGlvbik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBub3RpZnlDdXJyZW50
UmVxdWVzdENvbm5lY3Rpb25DbG9zZWRPckZpcmVkVmVyc2lvbkNoYW5nZUV2ZW50KGNvbm5lY3Rp
b24uaWRlbnRpZmllcigpKTsKIH0KIApAQCAtMTg0NSwyNCArMTg3Miw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KFVuaXF1ZUlEQkRhdGFiYXNl
Q29ubmVjdGlvbiYKICAgICAgICAgbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uID0g
bnVsbHB0cjsKICAgICB9CiAKLSAgICBEZXF1ZTxSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbj4+IHBlbmRpbmdUcmFuc2FjdGlvbnM7Ci0gICAgd2hpbGUgKCFtX3BlbmRpbmdUcmFu
c2FjdGlvbnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BlbmRp
bmdUcmFuc2FjdGlvbnMudGFrZUZpcnN0KCk7Ci0gICAgICAgIGlmICgmdHJhbnNhY3Rpb24tPmRh
dGFiYXNlQ29ubmVjdGlvbigpICE9ICZjb25uZWN0aW9uKQotICAgICAgICAgICAgcGVuZGluZ1Ry
YW5zYWN0aW9ucy5hcHBlbmQoV1RGTW92ZSh0cmFuc2FjdGlvbikpOwotICAgIH0KLQotICAgIGlm
ICghcGVuZGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkpCi0gICAgICAgIG1fcGVuZGluZ1RyYW5z
YWN0aW9ucy5zd2FwKHBlbmRpbmdUcmFuc2FjdGlvbnMpOwotCi0gICAgRGVxdWU8UmVmUHRyPFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiB0cmFuc2FjdGlvbnNUb0Fib3J0OwotICAgIGZv
ciAoYXV0byYgdHJhbnNhY3Rpb24gOiBtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMudmFsdWVzKCkp
IHsKLSAgICAgICAgaWYgKCZ0cmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0gJmNv
bm5lY3Rpb24pCi0gICAgICAgICAgICB0cmFuc2FjdGlvbnNUb0Fib3J0LmFwcGVuZCh0cmFuc2Fj
dGlvbik7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvJiB0cmFuc2FjdGlvbiA6IHRyYW5zYWN0aW9u
c1RvQWJvcnQpCi0gICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydFdpdGhvdXRDYWxsYmFjaygpOwor
ICAgIGNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCiAgICAgaWYg
KG1fY3VycmVudE9wZW5EQlJlcXVlc3QpCiAgICAgICAgIG5vdGlmeUN1cnJlbnRSZXF1ZXN0Q29u
bmVjdGlvbkNsb3NlZE9yRmlyZWRWZXJzaW9uQ2hhbmdlRXZlbnQoY29ubmVjdGlvbi5pZGVudGlm
aWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCBjYWMyNzA4MTE3YWMwODRkNDIwOGQ3
OTdhYzc5NzlmZjliZGMyMDQxLi41NTRiNzEyYmNkZmY1NzJhNTg1ZTFlNWQxNTI5ZWJlM2MyN2I5
OWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KFVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgY29uZmlybUNvbm5lY3Rpb25DbG9zZWRPblNlcnZl
cihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIpOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbmZp
cm1EaWRDbG9zZUZyb21TZXJ2ZXIoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAKQEAg
LTI0OSw2ICsyNDksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgd2FpdEZvclJlcXVlc3RTcGFjZUNv
bXBsZXRpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSURCRXJyb3ImJik+JiYpOwogICAgIHZvaWQgc3RhcnRTcGFjZUluY3JlYXNlVGFzayh1
aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrU2l6ZSk7CiAgICAgdm9pZCBmaW5pc2hT
cGFjZUluY3JlYXNlVGFzayh1aW50NjRfdCBpZGVudGlmaWVyLCBib29sIGlzVGFza1N1Y2Nlc3Nm
dWwpOworICAgIAorICAgIHZvaWQgY2xlYXJUcmFuc2FjdGlvbnNPbkNvbm5lY3Rpb24oVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAKICAgICBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVV
bmlxdWVDYWxsYmFja0lkZW50aWZpZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uLmNwcAppbmRleCA3ZmRkZjBmYTM0MDA2NzE2NDMxMzUwN2MwODE2ZWY3ZTIw
Y2UwZWY4Li5lNzJjM2I5MDk5YmE4ZDJjZjk4YjlkNTlmNTdmOGZkY2YzYTUxMTE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcApAQCAtMTA3LDEzICsxMDcs
MTMgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmNvbmZpcm1EaWRDbG9zZUZy
b21TZXJ2ZXIoKQogICAgICAgICBtX2RhdGFiYXNlLT5jb25maXJtRGlkQ2xvc2VGcm9tU2VydmVy
KCp0aGlzKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllcikKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiB7CiAgICAgTE9HKElu
ZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkRmlyZVZlcnNpb25DaGFu
Z2VFdmVudCAtICVzIC0gJSIgUFJJdTY0LCBtX29wZW5SZXF1ZXN0SWRlbnRpZmllci5sb2dnaW5n
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaWRlbnRpZmllcigpKTsKIAogICAgIEFTU0VSVChtX2Rh
dGFiYXNlKTsKICAgICBpZiAobV9kYXRhYmFzZSkKLSAgICAgICAgbV9kYXRhYmFzZS0+ZGlkRmly
ZVZlcnNpb25DaGFuZ2VFdmVudCgqdGhpcywgcmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICBt
X2RhdGFiYXNlLT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KCp0aGlzLCByZXF1ZXN0SWRlbnRp
ZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogfQogCiB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCmluZGV4IGNjYTRmNzYxMTgzNWNjZTk5
ODllM2Y5MjFmZWFlMGM5YWIyMTE5MTAuLjA3NjA5MGNlYWYxZjM0NzI4YmVkZmJmMjE3ZGJiNmNk
NTA4ZDBlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgKQEAg
LTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ3JlYXRlSW5kZXgoY29uc3QgSURC
UmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0
YSYpOwogICAgIHZvaWQgZGlkUmVuYW1lSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpOwotICAg
IHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBj
b25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgdm9pZCBkaWRGaW5pc2hIYW5k
bGluZ1ZlcnNpb25DaGFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIpOwogICAgIHZvaWQgY29uZmlybURpZENsb3NlRnJvbVNlcnZlcigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9j
ZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IGFhNDgyM2M5MzRmNjEwMTg3ZTdjZjRkODFk
NDBlZWYyODI3MTVlMzQuLmFhMDcwNGU5ODZmY2M5NGVmZDExZTkyZTAyNzdhMTlmNzYwODJjZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblBy
b2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC00MjUsMTAgKzQyNSwxMCBAQCB2b2lk
IEluUHJvY2Vzc0lEQlNlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZAogICAgIH0pOwogfQogCi12b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
KQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZP
ZlNlcnZlcikKIHsKLSAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
cmVxdWVzdElkZW50aWZpZXJdIHsKLSAgICAgICAgbV9zZXJ2ZXItPmRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIp
OworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRl
bnRpZmllciwgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXJdIHsKKyAgICAgICAgbV9z
ZXJ2ZXItPmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgcmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVy
KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCmluZGV4IGNhZGM4MTJhMzk5
YzY5OGY5MzdlNWM5NWMwNzdmYzBhMWMxN2I2ZjAuLmU2MzI5YWZmZmJlNGNiYTAzMzVlNWI1ZmYy
MDBmNGE4OWY5ZTVjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKQEAgLTkxLDcgKzkxLDcg
QEAgcHVibGljOgogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGF0YWJh
c2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIp
IGZpbmFsOwogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBib29s
IGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbDsKICAgICB2b2lkIG9wZW5E
QlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKSBmaW5hbDsKICAgICB2b2lk
IGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggMGM4MTJkZjMyZjc4OTVlZDZmNTRiMDI1MmM5
ZGI2YmViZDA0NjkyNC4uMDIzMGNlZWFmMzg2MTIyN2UwYjA3ZWRjZTNmMmYzZDliOGZlMzI2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0zMjcsOSArMzI3LDkg
QEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVk
ZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWMKICAgICBpZGJTZXJ2ZXIoKS5hYm9ydE9wZW5BbmRV
cGdyYWRlTmVlZGVkKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRl
bnRpZmllcik7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRGaXJlVmVy
c2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxm
T2ZTZXJ2ZXIpCiB7Ci0gICAgaWRiU2VydmVyKCkuZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAg
IGlkYlNlcnZlcigpLmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25uZWN0aW9uQ2xvc2VkT25CZWhh
bGZPZlNlcnZlcik7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpvcGVuREJS
ZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXggZGU2OTYzMjFlYzU5ZjQ1NmYzY2VhY2Mx
MzY2MjU4YjZlODBmNTU5NC4uNmE3ZTJiNmE5NjYwYjM3OWIzNDkyZWUyZTZjN2M3ZjMxZTEyNDgy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTk5LDcgKzk5LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZSh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVj
dGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICB2
b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50
NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9v
bCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgdm9pZCBvcGVuREJSZXF1
ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJik7CiAgICAgdm9pZCBj
b25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2Fn
ZXMuaW4KaW5kZXggODAzYjk2ZDI5YWZjNzljMjkzMWM4YTExZWZkNDUzYzVhZjBmMmE0Zi4uMzZj
MjcyNzMzZjJhZmNkNDhmNjlmMzgwNDYxNjZlZmJlNWJjMzVlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgpAQCAtNDcsNyArNDcsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQgewogICAgIERhdGFiYXNlQ29ubmVj
dGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
ICAgICBEYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllcik7CiAgICAgQWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIg
dHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKLSAgICBEaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgRGlkRmlyZVZlcnNpb25DaGFuZ2VF
dmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpJREJS
ZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIGJvb2wgY29ubmVjdGlvbkNsb3Nl
ZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6
SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEpOwogICAgIENvbmZpcm1EaWRDbG9zZUZyb21TZXJ2
ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDMzZWVhMjRjODFjNTg5
YjE2N2FlMmNhNzFjY2QzMmU0ZmQ0YWFmNWQuLjNmZjgxN2QwZmVjYWNlY2Y3ZDAyOTBlOGZhMzZm
ZjVjNTcxYjU5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcApAQCAtMTk4LDkgKzE5OCw5IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjCiAgICAg
c2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpBYm9ydE9wZW5BbmRVcGdy
YWRlTmVlZGVkKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRp
ZmllcikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKQordm9pZCBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikK
IHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkRpZEZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElk
ZW50aWZpZXIpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OkRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
cmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSk7CiB9
CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVk
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggYjI1MjU5ZjIyNTIzNDliMTg2MWJlMTcxZTVm
Y2FlNGZhNDMwNTBlNy4uNzFhZDhjZDkzMTM1MDA3YzgwMzcxZjI2NWE0MmFmOGI0OTI0MTk0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTgwLDcg
KzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9z
ZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lk
IGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgYm9vbCBjb25uZWN0aW9uQ2xvc2VkT25CZWhh
bGZPZlNlcnZlcikgZmluYWw7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0
IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJikgZmluYWw7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xv
c2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFs
OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
NWI1N2IyYjYzMTQwNjNmNTFmMzEyZDU4NzI0YjA0NTI1NDM2MmViNS4uMzlmNGZjMDRlMDBhNWUy
Y2FiYjc5ZTIxNTkwODRlNjlkODc2Mjg0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTExLTAxICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTA3NTQp
OiB3ZWIgcGFnZSB1c2luZyBJREJJbmRleCBkb2Vzbid0IGxvYWQgb2NjYXNpb25hbGx5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVk
REJJblBhZ2VDYWNoZS5tbTogQWRkZWQuCisgICAgICAgICgtW0luZGV4ZWREQkluUGFnZUNhY2hl
TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNz
YWdlOl0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sOiBBZGRlZC4KKwogMjAxOS0x
MS0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBU
ZXN0V2ViS2l0QVBJLkVkaXRvclN0YXRlVGVzdHMuVHlwaW5nQXR0cmlidXRlc1RleHRBbGlnbm1l
bnRTdGFydEVuZCBpcyBmbGFreSBpbiBpT1Mgc2ltdWxhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDdjMDkxODk2NmVhM2NiZDgzOGQ3ZWRmYTdiNTdkYjcyNmY4ZTllMmYuLmNlNWU1NTAw
OTQxNGE5NDAyZmU3ZTFkNDEwMDU5MmNkNTZkODQ2NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC03MjYsNiArNzI2LDkgQEAKIAkJOTM2OEEyNUYyMjlFRkI0NzAwQTgyOUNBIC8qIGxvY2Fs
LXN0b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2OEEyNUMyMjlFRkIzQTAwQTgyOUNBIC8q
IGxvY2FsLXN0b3JhZ2UtcHJvY2Vzcy1zdXNwZW5kcy0yLmh0bWwgKi87IH07CiAJCTkzNkY3Mjgw
MUNEN0Q5RUMwMDY4QTBGQiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM2RjcyN0UxQ0Q3
RDlEMDAwNjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKIAkJOTM2
RjcyODExQ0Q3RDlFQzAwNjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNkY3MjdG
MUNEN0Q5RDAwMDY4QTBGQiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCAqLzsgfTsKKwkJ
OTNBMzNDMDUyMzZCOEZBNzAwMjczODYxIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMzNDMDQyMzZCOEY3
OTAwMjczODYxIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1tICovOyB9OworCQk5M0EzM0MwNjIz
NkI4RkRCMDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EzM0MwMzIzNkI4RjRD
MDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbCAqLzsgfTsKKwkJOTNBMzNDMDcy
MzZCOEZEQjAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMzNDMDIyMzZC
OEY0QzAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgKi87IH07CiAJCTkz
QUY0RUNFMTUwNkYwNjQwMDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JJbWFnZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQUY0RUNEMTUwNkYwNjQwMDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JJbWFnZXNfQnVuZGxlLmNwcCAqLzsgfTsKIAkJOTNBRjRFRDExNTA2RjEz
MDAwN0ZENTdFIC8qIGxvdHMtb2YtaW1hZ2VzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBRjRFQ0YxNTA2RjEyMzAwN0ZENTdFIC8q
IGxvdHMtb2YtaW1hZ2VzLmh0bWwgKi87IH07CiAJCTkzQjYyMDU0MjM0RUE2MkMwMEQ0OUI5NyAv
KiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQjYyMDUzMjM0RUEzMkIwMEQ0OUI5NyAvKiBTdG9yYWdlUXVvdGFN
YW5hZ2VyLmNwcCAqLzsgfTsKQEAgLTEyODksOSArMTI5MiwxMSBAQAogCQkJCTUxQTU4Nzg1MUQy
NzM5RTMwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLTEuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlDQUIwRkY1MjIyMzMyNDA3MDA2Q0E1QjAgLyogSW5kZXhl
ZERCRmlsZU5hbWUtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNBQjBGRjUzMjIz
MzI0MDcwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS0yLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJOTNBMzNDMDYyMzZCOEZEQjAwMjczODYxIC8qIEluZGV4ZWREQkluUGFnZUNh
Y2hlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCQ0VFNEUxQzg0RjUzQjAwNDJD
ODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJNTFCQ0VFNEYxQzg0RjUzQjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0y
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFBNTg3N0QxRDFCNDlDRDAwNEJBOUFG
IC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJ
CQkJOTNBMzNDMDcyMzZCOEZEQjAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCMUVFOTYxQzgwRkFFRjAwNjRGQjk4IC8q
IEluZGV4ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1
MUIxRUU5NzFDODBGQUVGMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBDb3B5
IFJlc291cmNlcyAqLywKQEAgLTE0NTksNyArMTQ2NCw2IEBACiAJCQkJNTc3NDU0RDAyMzU5QjM3
ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVk
ZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREVDMjM0RjFGOTMw
MEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzk4MzM5MjIzNjhGQTM3MDA4RTU1NDcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKLQkJCQk1Nzk4MzM3QzIzNUVCNjg5MDA4RTU1NDcgLyogd2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRhZ3MuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQk1NzY2M0RFQTIzNEVBNjZEMDBFODVFMDkgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3
QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjExNCw2ICsyMTE4LDkgQEAKIAkJOTM5
QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGV2aWNlU2NhbGVGYWN0b3JPbkJh
Y2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUJGRTM5MThFNTU0ODkwMDg4
MzI3NSAvKiBTdHJpbmdUcnVuY2F0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTdHJpbmdUcnVuY2F0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQTI1ODk4MUY5MkZGMTUwMDNFNTEwQyAvKiBUZXh0Q29kZWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGV4dENvZGVjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNB
MzNDMDIyMzZCOEY0QzAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0EzM0MwMzIzNkI4RjRDMDAyNzM4NjEgLyog
SW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IElu
ZGV4ZWREQkluUGFnZUNhY2hlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
QTMzQzA0MjM2QjhGNzkwMDI3Mzg2MSAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4ZWREQkluUGFnZUNhY2hlLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E0MjdBODE4MEQ5QjA3MDBDRDI0RDcg
LyogUmVmUHRyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZlB0
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FBMTgwREEyNjQwMENE
MjRENyAvKiBSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVm
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBNDI3QUMxODBEQTYwRjAwQ0Qy
NEQ3IC8qIE1vdmVPbmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdmVPbmx5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yODU4LDYgKzI4NjUsNyBAQAogCQkJCTUxMTBGQ0VGMUUwMUNC
QUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAogCQkJCTUxQTU4Nzg0MUQy
NzJFRjMwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tICovLAogCQkJ
CUNBQjBGRjU0MjIzMzJDM0EwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxlTmFtZS5tbSAqLywKKwkJ
CQk5M0EzM0MwNDIzNkI4Rjc5MDAyNzM4NjEgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0gKi8s
CiAJCQkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy5t
bSAqLywKIAkJCQk1MUIxRUU4RDFDODBGNTg4MDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVu
Y2UubW0gKi8sCiAJCQkJNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLywKQEAgLTMzMjYsOSArMzMzNCwx
MSBAQAogCQkJCTUxQTU4NzgyMUQyNzJFQjUwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFzZVBy
b2Nlc3NLaWxsLTEuaHRtbCAqLywKIAkJCQlDQUIwRkY1MTIyMzMyM0Y2MDA2Q0E1QjAgLyogSW5k
ZXhlZERCRmlsZU5hbWUtMS5odG1sICovLAogCQkJCUNBQjBGRjUwMjIzMzIzRjYwMDZDQTVCMCAv
KiBJbmRleGVkREJGaWxlTmFtZS0yLmh0bWwgKi8sCisJCQkJOTNBMzNDMDMyMzZCOEY0QzAwMjcz
ODYxIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwgKi8sCiAJCQkJNTFCQ0VFNEMxQzg0RjUy
QzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0xLmh0bWwgKi8sCiAJCQkJNTFCQ0VF
NEQxQzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0yLmh0bWwgKi8sCiAJ
CQkJNTFBNTg3N0MxRDFCM0Q4RDAwNEJBOUFGIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0zLmh0
bWwgKi8sCisJCQkJOTNBMzNDMDIyMzZCOEY0QzAwMjczODYxIC8qIEluZGV4ZWREQk5vdEluUGFn
ZUNhY2hlLmh0bWwgKi8sCiAJCQkJNTFCMUVFOTQxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4ZWRE
QlBlcnNpc3RlbmNlLTEuaHRtbCAqLywKIAkJCQk1MUIxRUU5NTFDODBGQUREMDA2NEZCOTggLyog
SW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sICovLAogCQkJCTU3NTk5RTI0MUYwNzE5MkMwMEEz
RkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3Fs
aXRlMyAqLywKQEAgLTQ2MzUsNiArNDY0NSw3IEBACiAJCQkJNTExMEZDRkExRTAxQ0RCODAwNkY4
RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUE1ODc4
NjFEMjczQUE5MDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUNBQjBGRjU1MjIzMzJDNTcwMDZDQTVCMCAvKiBJbmRleGVkREJGaWxl
TmFtZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkzQTMzQzA1MjM2QjhGQTcwMDI3Mzg2MSAvKiBJ
bmRleGVkREJJblBhZ2VDYWNoZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEJFMUQwQTY1
MTMwMEZFQkNGMyAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTBCRjFEMEE2NTIyMDBGRUJDRjMgLyogSW5kZXhlZERCUGVyc2lzdGVuY2UubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQklu
UGFnZUNhY2hlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
ZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNlYzViNWEyNDFiZjZhNDk3YWRk
MmQxY2IzZDllNWQ4ZjM2NWRmMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbApAQCAtMCwwICsx
LDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQ+CisKK3ZhciBkYjsKK3ZhciByZXF1ZXN0
ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJUZXN0SW5kZXhlZERCIik7CityZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IChldmVudCkgPT4geworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBk
Yi5vbmNsb3NlID0gKGV2ZW50KSA9PiB7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJEYXRhYmFzZSBDb25uZWN0aW9uIENsb3Nl
ZCIpOworICAgIH0KKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgiRGF0YWJhc2UgT3BlbmVkIik7Cit9CityZXF1ZXN0Lm9uZXJyb3IgPSAo
ZXZlbnQpID0+IHsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgiRGF0YWJhc2UgT3BlbiBGYWlsZWQiKTsKK30KKworPC9zY3JpcHQ+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJJblBhZ2VDYWNoZS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWM5NWExYzhmZWI4YTFlZTdkNzkxOWNhOWFjNzVlMWZhMmY3MDA1ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
SW5QYWdlQ2FjaGUubW0KQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5o
IgorCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdl
YktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9f
V0tVc2VyU3R5bGVTaGVldC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRpYyBib29s
IHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKK3N0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdl
PiBsYXN0U2NyaXB0TWVzc2FnZTsKKworQGludGVyZmFjZSBJbmRleGVkREJJblBhZ2VDYWNoZU1l
c3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBJbmRleGVkREJJblBhZ2VDYWNoZU1lc3NhZ2VIYW5kbGVyCisKKy0g
KHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVz
ZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNz
YWdlICopbWVzc2FnZQoreworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAg
bGFzdFNjcmlwdE1lc3NhZ2UgPSBtZXNzYWdlOworfQorCitAZW5kCisKK1RFU1QoSW5kZXhlZERC
LCBJbmRleGVkREJJblBhZ2VDYWNoZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtb
SW5kZXhlZERCSW5QYWdlQ2FjaGVNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIGF1
dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRk
U2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpXSk7CisKKyAgICAvLyBMb2FkIHBhZ2UgdGhhdCBob2xkcyBvcGVuIGRhdGFiYXNl
IGNvbm5lY3Rpb24uCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5k
ZXhlZERCSW5QYWdlQ2FjaGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBSZXRhaW5QdHI8
TlNTdHJpbmc+IHN0cmluZzEgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07
CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiRGF0YWJhc2UgT3BlbmVkIiwgc3RyaW5nMS5nZXQoKSk7
CisKKyAgICAvLyBMb2FkIGFub3RoZXIgcGFnZSB0aGF0IGRlbGV0ZXMgZGF0YWJhc2UuCisgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0MiA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQk5vdEluUGFnZUNh
Y2hlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdDJdOworCisgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3Ry
aW5nMiA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJEYXRhYmFzZSBEZWxldGVkIiwgc3RyaW5nMi5nZXQoKSk7CisKKyAgICBbd2Vi
VmlldyBnb0JhY2tdOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBSZXRh
aW5QdHI8TlNTdHJpbmc+IHN0cmluZzMgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2Ug
Ym9keV07CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiRGF0YWJhc2UgQ29ubmVjdGlvbiBDbG9zZWQi
LCBzdHJpbmczLmdldCgpKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCTm90SW5QYWdlQ2FjaGUuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCTm90SW5QYWdlQ2FjaGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNDEwZjgyZGZjZjk4MjBiZTAzYzJkOTY1ZDdjY2FhY2RhYmIxZGFhCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRl
eGVkREJOb3RJblBhZ2VDYWNoZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHNjcmlwdD4KKwordmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKCJUZXN0SW5kZXhlZERCIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoIkRhdGFiYXNlIERlbGV0ZWQiKTsKK30KK3JlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgiRGF0YWJhc2UgRGVsZXRpb24gQmxvY2tlZCIpOworfQorCis8L3Njcmlw
dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382804</attachid>
            <date>2019-11-04 20:21:05 -0800</date>
            <delta_ts>2019-11-05 10:01:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203431-20191104202105.patch</filename>
            <type>text/plain</type>
            <size>55637</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE2MDE3ZTFjYWM2MWI0
NjBmZjAyNjA4OGJkNjFkZTNiNDU2ODQzZC4uNjBhNTRkZWNlZjBjNTY1OGQ3NDQ2MmRiOGE3ZDU2
OThkN2JjNzc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE5LTExLTA0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTA3
NTQpOiB3ZWIgcGFnZSB1c2luZyBJREJJbmRleCBkb2Vzbid0IGxvYWQgb2NjYXNpb25hbGx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBub3cgYWxs
b3cgcGFnZSB0byBlbnRlciBjYWNoZSBldmVuIHdoZW4gdGhlcmUgYXJlIGFjdGl2ZSBJREIgb2Jq
ZWN0cy4gVGhlIG9wZW4gZGF0YWJhc2UgY29ubmVjdGlvbiBvciBibG9ja2VkCisgICAgICAgIGRh
dGFiYXNlIHJlcXVlc3Qgb24gc3VzcGVuZGVkIHBhZ2VzIG1heSBzdG9wIG90aGVyIGFjdGl2ZSBw
YWdlcyBmcm9tIGRlbGV0ZWluZyBvciBvcGVuaW5nIHRoZSBzYW1lIGRhdGFiYXNlLgorCisgICAg
ICAgIFRvIGZpeCB0aGlzIGlzc3VlLCB3ZSBjbG9zZSB0aG9zZSBvcGVuIGNvbm5lY3Rpb25zIG9u
IHN1c3BlbmRlZCBwYWdlIHdoZW4gd2Uga25vdyBmcm9tIHRoZSB2ZXJzaW9uY2hhbmdlIGV2ZW50
LCAKKyAgICAgICAgdGhhdCB0aGVyZSBpcyBvcGVuL2RlbGV0ZSByZXF1ZXN0IGJsb2NrZWQuIEZv
ciBibG9ja2VkIHJlcXVlc3RzIG9uIHN1c3BlbmRlZCBwYWdlLCB3ZSBkaXNjYXJkIHRoZW4gYW5k
IHJldHVybiAKKyAgICAgICAgZXJyb3IuIFRoaXMgd2F5LCB3aGVuIHRoZSBzdXNwZW5kZWQgcGFn
ZSByZXN1bWVzLCBpdCB3aWxsIGdldCBjbG9zZSBldmVudCBmaXJlZCBvbiBwcmV2aW91c2x5IG9w
ZW5lZCBkYXRhYmFzZSAKKyAgICAgICAgY29ubmVjdGlvbnMsIGFuZCBhbiBlcnJvciBldmVudCBv
biBwcmV2aW91c2x5IGJsb2NrZWQgcmVxdWVzdC4KKworICAgICAgICBBUEkgdGVzdDogSW5kZXhl
ZERCLkluZGV4ZWREQkluUGFnZUNhY2hlCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0QmxvY2tl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpzZXRJc0NvbnRleHRTdXNw
ZW5kZWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVkREIuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Ojpjb21wbGV0ZU9wZW5EQlJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHk6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ2xpZW50OjpzZXRNYXRjaGluZ0l0ZW1zQ29udGV4dFN1c3BlbmRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6c2V0Q29udGV4dFN1
c3BlbmRlZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Qcm94eS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyVHJh
bnNhY3Rpb25zT25Db25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y29ubmVjdGlvbkNsb3NlZEZyb21D
bGllbnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJv
Y2Vzc0lEQlNlcnZlci5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckds
b2JhbFNjb3BlOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3Bl
OjpyZXN1bWUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWQ6OnN1c3BlbmQpOgorCiAyMDE5LTExLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWVkaWFLZXlTZXNzaW9uIC8gV2ViS2l0TWVkaWFLZXlTZXNzaW9u
IHNob3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDFiZTU3Mjk0OTBlZTdjNzUyNzZkNzY1NjBhMGYwMjUxNGM0MTNlYzguLmRkNjEzZjli
OTFiNzY5NDFjZDE2YmZmNThjYjc3OTkzMTBmYWM2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTktMTEtMDQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTiAocjI1MDc1NCk6IHdlYiBwYWdlIHVzaW5nIElEQkluZGV4IGRvZXNuJ3Qg
bG9hZCBvY2Nhc2lvbmFsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW46CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVu
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oOgorCiAyMDE5LTExLTAzICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBDdGFwQXV0aGVudGljYXRvcjo6dHJ5RG93
bmdyYWRlIHNob3VsZCBkaXN0aW5ndWlzaCByZXF1ZXN0RGF0YSgpLm9wdGlvbnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oCmluZGV4IGJmYTBmNGQ2
YzExMGE2ZmZjODBhNDQ0OTQ2M2ZlYzM4MzQ4MzVhMGEuLmI0NTA5MWJjZjIxMmMwZWNlYWMwZmQ1
MzhiMGVkYmI1MDMwYTRiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuaApAQCAtMTEwLDYgKzExMCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lkIHNldElzQ29udGV4
dFN1c3BlbmRlZChib29sIGlzQ29udGV4dFN1c3BlbmRlZCkgeyBtX2lzQ29udGV4dFN1c3BlbmRl
ZCA9IGlzQ29udGV4dFN1c3BlbmRlZDsgfQorICAgIGJvb2wgaXNDb250ZXh0U3VzcGVuZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9pc0NvbnRleHRTdXNwZW5kZWQ7IH0KKwogcHJpdmF0ZToKICAgICBJ
REJEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHkmLCBjb25zdCBJREJSZXN1bHREYXRhJik7CiAKQEAgLTEzMCw2ICsxMzMsOCBAQCBw
cml2YXRlOgogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURCVHJh
bnNhY3Rpb24+PiBtX2Fib3J0aW5nVHJhbnNhY3Rpb25zOwogICAgIAogICAgIGNvbnN0IEV2ZW50
TmFtZXMmIG1fZXZlbnROYW1lczsgLy8gTmVlZCB0byBjYWNoZSB0aGlzIHNvIHdlIGNhbiB1c2Ug
aXQgZnJvbSBHQyB0aHJlYWRzLgorCisgICAgYm9vbCBtX2lzQ29udGV4dFN1c3BlbmRlZCB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDllYWU4
ZDRiNTQ4NDJhYWU0YmVlYWVmODdlNWQxYjYwZWRhNTYxMDkuLjY3MzkzZDZkNjc0OWQ0NjY3OTc1
M2Y0ZTliNGU4ZmJhYzlhNTIwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0xOTAsNiArMTkwLDggQEAgdm9p
ZCBJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkKGNvbnN0IElEQlJlc3VsdERhdGEm
IGRhdGEpCiAKICAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQo
KSk7CiAKKyAgICBtX2lzQmxvY2tlZCA9IGZhbHNlOworCiAgICAgLy8gSWYgYW4gT3BlbiByZXF1
ZXN0IHdhcyBjb21wbGV0ZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIG5hdmlnYXRlZCwgbGVhdmluZyB0
aGlzIHJlcXVlc3QKICAgICAvLyB3aXRoIGEgc3RvcHBlZCBzY3JpcHQgZXhlY3V0aW9uIGNvbnRl
eHQsIHdlIG5lZWQgdG8gbWVzc2FnZSBiYWNrIHRvIHRoZSBzZXJ2ZXIgc28gaXQKICAgICAvLyBk
b2Vzbid0IGhhbmcgd2FpdGluZyBvbiBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gb3IgdHJhbnNhY3Rp
b24gdGhhdCB3aWxsIG5ldmVyIGV4aXN0LgpAQCAtMjI5LDExICsyMzEsMjggQEAgdm9pZCBJREJP
cGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkKGNvbnN0IElEQlJlc3VsdERhdGEmIGRhdGEp
CiB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6OnJlcXVlc3RCbG9ja2VkKHVpbnQ2NF90IG9sZFZlcnNp
b24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pCiB7CiAgICAgQVNTRVJUKCZvcmlnaW5UaHJlYWQoKSA9
PSAmVGhyZWFkOjpjdXJyZW50KCkpOworICAgIEFTU0VSVCghbV9pc0Jsb2NrZWQpOworCisgICAg
bV9pc0Jsb2NrZWQgPSB0cnVlOwogCiAgICAgTE9HKEluZGV4ZWREQiwgIklEQk9wZW5EQlJlcXVl
c3Q6OnJlcXVlc3RCbG9ja2VkIik7CiAgICAgZW5xdWV1ZUV2ZW50KElEQlZlcnNpb25DaGFuZ2VF
dmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIGV2ZW50TmFtZXMoKS5ibG9ja2Vk
RXZlbnQpKTsKIH0KIAordm9pZCBJREJPcGVuREJSZXF1ZXN0OjpzZXRJc0NvbnRleHRTdXNwZW5k
ZWQoYm9vbCBpc0NvbnRleHRTdXNwZW5kZWQpCit7CisgICAgbV9pc0NvbnRleHRTdXNwZW5kZWQg
PSBpc0NvbnRleHRTdXNwZW5kZWQ7CisgICAgCisgICAgLy8gSWYgdGhpcyByZXF1ZXN0IGlzIGJs
b2NrZWQsIGl0IG1lYW5zIHRoaXMgcmVxdWVzdCBpcyBiZWluZyBwcm9jZXNzZWQgb24gdGhlIHNl
cnZlci4KKyAgICAvLyBUaGUgY2xpZW50IG5lZWRzIHRvIGFjdGl2ZWx5IHN0b3AgdGhlIHJlcXVl
c3Qgc28gaXQgZG9lc24ndCBibG9ja3MgdGhlIHByb2Nlc3Npbmcgb2Ygc3Vic2VxdWVudCByZXF1
ZXN0cy4KKyAgICBpZiAobV9pc0Jsb2NrZWQpIHsKKyAgICAgICAgSURCUmVxdWVzdERhdGEgcmVx
dWVzdERhdGEoY29ubmVjdGlvblByb3h5KCksICp0aGlzKTsKKyAgICAgICAgY29ubmVjdGlvblBy
b3h5KCkub3BlbkRCUmVxdWVzdENhbmNlbGxlZChyZXF1ZXN0RGF0YSk7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6ZXJyb3IocmVxdWVzdERhdGEucmVxdWVzdElkZW50aWZp
ZXIoKSwgSURCRXJyb3IgeyBVbmtub3duRXJyb3IsICJCbG9ja2VkIG9wZW4gcmVxdWVzdCBvbiBj
YWNoZWQgcGFnZSBpcyBhYm9ydGVkIHRvIHVuYmxvY2sgb3RoZXIgcmVxdWVzdHMiX3MgfSk7Cisg
ICAgICAgIHJlcXVlc3RDb21wbGV0ZWQocmVzdWx0KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCmlu
ZGV4IDg3NDhlYjMzMzMwMjZhNWMwOGRiNWNkMTRjZmFjNjJlY2I5NDU0MmYuLjY0YTAxYmJkNjhl
MTQyOWJkN2ZhY2E3ZWRmYjE4NTY2YjdjNDY4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKQEAgLTUyLDYgKzUyLDkgQEAg
cHVibGljOgogICAgIHZvaWQgZmlyZVN1Y2Nlc3NBZnRlclZlcnNpb25DaGFuZ2VDb21taXQoKTsK
ICAgICB2b2lkIGZpcmVFcnJvckFmdGVyVmVyc2lvbkNoYW5nZUNvbXBsZXRpb24oKTsKIAorICAg
IHZvaWQgc2V0SXNDb250ZXh0U3VzcGVuZGVkKGJvb2wpOworICAgIGJvb2wgaXNDb250ZXh0U3Vz
cGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbnRleHRTdXNwZW5kZWQ7IH0KKwogcHJpdmF0
ZToKICAgICBJREJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYsIHVp
bnQ2NF90IHZlcnNpb24sIEluZGV4ZWREQjo6UmVxdWVzdFR5cGUpOwogCkBAIC02OCw2ICs3MSw5
IEBAIHByaXZhdGU6CiAKICAgICBJREJEYXRhYmFzZUlkZW50aWZpZXIgbV9kYXRhYmFzZUlkZW50
aWZpZXI7CiAgICAgdWludDY0X3QgbV92ZXJzaW9uIHsgMCB9OworCisgICAgYm9vbCBtX2lzQ29u
dGV4dFN1c3BlbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzQmxvY2tlZCB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JbmRleGVkREIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0luZGV4ZWREQi5oCmluZGV4IDZhZjkzYzRhOWYwZTc1MjM5NDAzZDhjNDMxNGJl
Zjg0MGZhMjg5OWEuLjI3YzU1ZWZhOWFmOWRiZmNhMmJjYjkzNTllZTMzNzYyOTZlMzNkOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oCkBAIC0xMDQs
NiArMTA0LDExIEBAIGVudW0gY2xhc3MgR2V0QWxsVHlwZSB7CiAgICAgVmFsdWVzLAogfTsKIAor
ZW51bSBjbGFzcyBDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlciB7CisgICAgTm8sCisg
ICAgWWVzLAorfTsKKwogfSAvLyBuYW1lc3BhY2UgSW5kZXhlZERCCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKQEAgLTExOSw2ICsxMjQsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZT4gewogICAgID47
CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkluZGV4ZWREQjo6
Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXI+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRP
bkJlaGFsZk9mU2VydmVyLAorICAgICAgICBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25D
bG9zZWRPbkJlaGFsZk9mU2VydmVyOjpObywKKyAgICAgICAgV2ViQ29yZTo6SW5kZXhlZERCOjpD
b25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcjo6WWVzCisgICAgPjsKK307CisKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRUQoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94
eS5jcHAKaW5kZXggNDk3NzcyZDcwNjllNzZjMDE0NTIxNDg3MDg1YThkZGJhNDYwMzExZS4uMzUy
ZjIyMThlNGI5MTgyNzUzZDlmOGYwZTFhODZkMzlmYTRiOTMxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Qcm94eS5jcHAKQEAgLTExNSw2ICsxMTUsMTkgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6
OmNvbXBsZXRlT3BlbkRCUmVxdWVzdChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQog
ICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHJlcXVlc3QtPmlz
Q29udGV4dFN1c3BlbmRlZCgpKSB7CisgICAgICAgIHN3aXRjaCAocmVzdWx0RGF0YS50eXBlKCkp
IHsKKyAgICAgICAgY2FzZSBJREJSZXN1bHRUeXBlOjpPcGVuRGF0YWJhc2VVcGdyYWRlTmVlZGVk
OiB7CisgICAgICAgICAgICBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHJlc3VsdERhdGEuZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcigpLCByZXN1bHREYXRhLnRyYW5zYWN0aW9uSW5mbygp
LmlkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERhdGE6
OmVycm9yKHJlc3VsdERhdGEucmVxdWVzdElkZW50aWZpZXIoKSwgSURCRXJyb3IgeyBVbmtub3du
RXJyb3IsICJWZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBvbiBjYWNoZWQgcGFnZSBpcyBhYm9y
dGVkIHRvIHVuYmxvY2sgb3RoZXIgY29ubmVjdGlvbnMiX3MgfSk7CisgICAgICAgICAgICByZXF1
ZXN0LT5wZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZCgqcmVxdWVzdCwgJklEQk9wZW5EQlJl
cXVlc3Q6OnJlcXVlc3RDb21wbGV0ZWQsIHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorCiAgICAgcmVxdWVzdC0+cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQoKnJl
cXVlc3QsICZJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkLCByZXN1bHREYXRhKTsK
IH0KIApAQCAtMjY4LDEyICsyODEsMTggQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnQKICAgICBp
ZiAoIWRhdGFiYXNlKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoZGF0YWJhc2UtPmlzQ29u
dGV4dFN1c3BlbmRlZCgpKSB7CisgICAgICAgIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4ZWREQjo6
Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXI6Olllcyk7CisgICAgICAgIGRhdGFiYXNl
LT5wZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZCgqZGF0YWJhc2UsICZJREJEYXRhYmFzZTo6
Y29ubmVjdGlvblRvU2VydmVyTG9zdCwgSURCRXJyb3IgeyBVbmtub3duRXJyb3IsICJDb25uZWN0
aW9uIG9uIGNhY2hlZCBwYWdlIGNsb3NlZCB0byB1bmJsb2NrIG90aGVyIGNvbm5lY3Rpb25zIl9z
fSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBkYXRhYmFzZS0+cGVyZm9ybUNhbGxi
YWNrT25PcmlnaW5UaHJlYWQoKmRhdGFiYXNlLCAmSURCRGF0YWJhc2U6OmZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQsIHJlcXVlc3RJZGVudGlmaWVyLCByZXF1ZXN0ZWRWZXJzaW9uKTsKIH0KIAotdm9p
ZCBJREJDb25uZWN0aW9uUHJveHk6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkaWRGaXJlVmVy
c2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4ZWREQjo6
Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3NlZCkKIHsKLSAg
ICBjYWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRG
aXJlVmVyc2lvbkNoYW5nZUV2ZW50LCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1
ZXN0SWRlbnRpZmllcik7CisgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCwgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWQpOwogfQog
CiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xk
VmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikKQEAgLTU0Miw2ICs1NjEsMjMgQEAgdm9pZCBy
ZW1vdmVJdGVtc01hdGNoaW5nQ3VycmVudFRocmVhZChIYXNoTWFwPEtleVR5cGUsIFZhbHVlVHlw
ZT4mIG1hcCkKICAgICAgICAgbWFwLnJlbW92ZShrZXkpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBLZXlUeXBlLCB0eXBlbmFtZSBWYWx1ZVR5cGU+Cit2b2lkIHNldE1hdGNoaW5nSXRlbXNDb250
ZXh0U3VzcGVuZGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGN1cnJlbnRDb250ZXh0LCBIYXNo
TWFwPEtleVR5cGUsIFZhbHVlVHlwZT4mIG1hcCwgYm9vbCBpc0NvbnRleHRTdXNwZW5kZWQpCit7
CisgICAgYXV0byYgY3VycmVudFRocmVhZCA9IFRocmVhZDo6Y3VycmVudCgpOworICAgIGZvciAo
YXV0byYgaXRlcmF0b3IgOiBtYXApIHsKKyAgICAgICAgaWYgKCZpdGVyYXRvci52YWx1ZS0+b3Jp
Z2luVGhyZWFkKCkgIT0gJmN1cnJlbnRUaHJlYWQpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBhdXRvKiBjb250ZXh0ID0gaXRlcmF0b3IudmFsdWUtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaWYgKGNvbnRleHQgPT0gJmN1cnJlbnRDb250ZXh0KQorICAgICAgICAgICAgaXRl
cmF0b3IudmFsdWUtPnNldElzQ29udGV4dFN1c3BlbmRlZChpc0NvbnRleHRTdXNwZW5kZWQpOwor
ICAgIH0KK30KKwogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2aXR5Rm9yQ3Vy
cmVudFRocmVhZCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CkBAIC01NjYsNiAr
NjAyLDE5IEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5Ojpmb3JnZXRBY3Rpdml0eUZvckN1cnJl
bnRUaHJlYWQoKQogICAgIH0KIH0KIAordm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnNldENvbnRl
eHRTdXNwZW5kZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY3VycmVudENvbnRleHQsIGJvb2wg
aXNDb250ZXh0U3VzcGVuZGVkKQoreworICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2so
bV9kYXRhYmFzZUNvbm5lY3Rpb25NYXBMb2NrKTsKKyAgICAgICAgc2V0TWF0Y2hpbmdJdGVtc0Nv
bnRleHRTdXNwZW5kZWQoY3VycmVudENvbnRleHQsIG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwLCBp
c0NvbnRleHRTdXNwZW5kZWQpOworICAgIH0KKworICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+
IGxvY2sobV9vcGVuREJSZXF1ZXN0TWFwTG9jayk7CisgICAgICAgIHNldE1hdGNoaW5nSXRlbXND
b250ZXh0U3VzcGVuZGVkKGN1cnJlbnRDb250ZXh0LCBtX29wZW5EQlJlcXVlc3RNYXAsIGlzQ29u
dGV4dFN1c3BlbmRlZCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzYXBjZSBJREJDbGllbnQKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCmluZGV4IDkxZjkz
YzQ2NzA1YmQ2ZjQ5NjUxNjU0NDc5YjY1NDg5ZWZhMGQzMGYuLjkyN2M4MzY2YjA0M2VkMzAwNzNh
MGYzN2ZhMzA1ZGM4ZDM2ZDRlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKQEAgLTg1LDcg
Kzg1LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVuYW1lSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRp
b24mLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKIAogICAgIHZvaWQgZmlyZVZlcnNpb25DaGFu
Z2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRW
ZXJzaW9uKTsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXF1ZXN0SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNs
b3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgPSBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFs
Zk9mU2VydmVyOjpObyk7CiAKICAgICB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9s
ZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENh
bmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpOwpAQCAtMTI0LDYgKzEyNCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGZvcmdldEFjdGl2ZU9wZXJhdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxU
cmFuc2FjdGlvbk9wZXJhdGlvbj4+Jik7CiAgICAgdm9pZCBmb3JnZXRUcmFuc2FjdGlvbihJREJU
cmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZm9yZ2V0QWN0aXZpdHlGb3JDdXJyZW50VGhyZWFkKCk7
CisgICAgdm9pZCBzZXRDb250ZXh0U3VzcGVuZGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGN1
cnJlbnRDb250ZXh0LCBib29sIGlzQ29udGV4dFN1c3BlbmRlZCk7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBjb21wbGV0ZU9wZW5EQlJlcXVlc3QoY29uc3QgSURCUmVzdWx0RGF0YSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBmYzBkOWIwNTQ0ZTgwNzM3YjBlNmQyYTYx
Mzc2ZDE2YzhkOTY3OTZiLi43NTcwNjE2ZDdlODQ3ZWZlZTA1MTI0ZDkzYWExMGQxZWM5MTU2OGM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtNDE1LDEzICs0MTUsMTMg
QEAgdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWQKICAgICBtX3Byb3h5LT5maXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBy
ZXF1ZXN0ZWRWZXJzaW9uKTsKIH0KIAotdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQg
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3NlZCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAi
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50Iik7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmIChtX3NlcnZlckNvbm5lY3Rpb25Jc1Zh
bGlkKQotICAgICAgICBtX2RlbGVnYXRlLT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgbV9k
ZWxlZ2F0ZS0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZCk7CiB9CiAKIHZvaWQg
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJy
b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNDI1ZTQ1YWY3ZDkyYTBkOTg4
ZmVkNjVjOTNjOTA5M2RiYjRjZWMyNC4uOGFhZTA5NWI5Mjk5NmQ5ODAxMjc5OWVhMzI4OTNmNmVj
MGMyYzlmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtMTE2LDcgKzExNiw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQkVycm9yJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVy
c2lvbik7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50
NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJl
aGFsZk9mU2VydmVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU3RhcnRUcmFuc2Fj
dGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCRXJyb3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVs
ZWdhdGUuaAppbmRleCBkYzhhOTliZjc1MmUxN2E1ZmI3ZDMxYjNmZjQzMzFjNmI5ODE3NDE4Li40
YTNhMmQ2YzMwMTA4ZDg2MmNmNDIxMDc0Njk4MDExZWM5MTgxYzUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3Qg
U2VjdXJpdHlPcmlnaW5EYXRhOwogCiBuYW1lc3BhY2UgSW5kZXhlZERCIHsKIGVudW0gY2xhc3Mg
T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOworZW51bSBjbGFzcyBDb25uZWN0aW9uQ2xvc2VkT25C
ZWhhbGZPZlNlcnZlcjsKIH0KIAogc3RydWN0IElEQktleVJhbmdlRGF0YTsKQEAgLTgzLDcgKzg0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5n
Q2xvc2UodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25u
ZWN0aW9uSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydE9wZW5BbmRVcGdy
YWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25u
ZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVjdGlv
bkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkRCUmVx
dWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggYThlODU2NzAwODc4ODE3NmVmZWE5OWU1
NjRjYTVkMGJlZGU5M2MzZS4uZTYxZGI4Yzk0MjhkOTg0ZGE2NDY5NmU3Yzg0Mjc4NzQyNjljMjdl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKQEAgLTQzMCwxMiArNDMwLDEyIEBAIHZvaWQgSURCU2VydmVyOjphYm9y
dE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZp
ZXIsCiAgICAgZGF0YWJhc2VDb25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudCgp
OwogfQogCi12b2lkIElEQlNlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKQordm9pZCBJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgSW5kZXhlZERCOjpDb25uZWN0
aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlciBjb25uZWN0aW9uQ2xvc2VkKQogewogICAgIExPRyhJ
bmRleGVkREIsICJJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKIAogICAg
IGlmIChhdXRvIGRhdGFiYXNlQ29ubmVjdGlvbiA9IG1fZGF0YWJhc2VDb25uZWN0aW9ucy5nZXQo
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGRhdGFiYXNlQ29ubmVjdGlv
bi0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChyZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAg
IGRhdGFiYXNlQ29ubmVjdGlvbi0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChyZXF1ZXN0SWRl
bnRpZmllciwgY29ubmVjdGlvbkNsb3NlZCk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjpvcGVuREJS
ZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApp
bmRleCAwNzU1ZWQ5ZjljNzA4NzE3ODliZDk4MThiYzZjNWNlOGI2YzU5YTQ5Li5kM2EyMjNkOTMy
ZDkxNTlkNTQ2NjYyOWY3MTdlZmZiNTc3NDEzY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC05MCw3ICs5MCw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvblBlbmRp
bmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0T3Bl
bkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgSW5kZXhlZERCOjpD
b25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRl
eCA1MjVhZGU5Y2MwMGUwYWYyMWFmYTkzYjRjZjNmMzBjMGQ4ODhiMzgwLi5mZGVkYTYzNWViN2Rj
MDVmN2ZmN2UwNTgyY2M0OTJmMGMyZDgzMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAK
QEAgLTc1Miw3ICs3NTIsMjkgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6bm90aWZ5Q3VycmVu
dFJlcXVlc3RDb25uZWN0aW9uQ2xvc2VkT3JGaXJlZFZlcnNpb25DaGFuZ2UKICAgICBtX2N1cnJl
bnRPcGVuREJSZXF1ZXN0LT5tYXliZU5vdGlmeVJlcXVlc3RCbG9ja2VkKG1fZGF0YWJhc2VJbmZv
LT52ZXJzaW9uKCkpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBEZXF1ZTxSZWZQdHI8VW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbj4+IHBlbmRpbmdUcmFuc2FjdGlvbnM7CisgICAgd2hpbGUgKCFt
X3BlbmRpbmdUcmFuc2FjdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gdHJhbnNhY3Rp
b24gPSBtX3BlbmRpbmdUcmFuc2FjdGlvbnMudGFrZUZpcnN0KCk7CisgICAgICAgIGlmICgmdHJh
bnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigpICE9ICZjb25uZWN0aW9uKQorICAgICAgICAg
ICAgcGVuZGluZ1RyYW5zYWN0aW9ucy5hcHBlbmQoV1RGTW92ZSh0cmFuc2FjdGlvbikpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBjb25uZWN0aW9uLmRlbGV0ZVRyYW5zYWN0aW9uKCp0cmFu
c2FjdGlvbik7CisgICAgfQorICAgIGlmICghcGVuZGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkp
CisgICAgICAgIG1fcGVuZGluZ1RyYW5zYWN0aW9ucy5zd2FwKHBlbmRpbmdUcmFuc2FjdGlvbnMp
OworCisgICAgRGVxdWU8UmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiB0cmFu
c2FjdGlvbnNUb0Fib3J0OworICAgIGZvciAoYXV0byYgdHJhbnNhY3Rpb24gOiBtX2luUHJvZ3Jl
c3NUcmFuc2FjdGlvbnMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKCZ0cmFuc2FjdGlvbi0+ZGF0
YWJhc2VDb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pCisgICAgICAgICAgICB0cmFuc2FjdGlv
bnNUb0Fib3J0LmFwcGVuZCh0cmFuc2FjdGlvbik7CisgICAgfQorICAgIGZvciAoYXV0byYgdHJh
bnNhY3Rpb24gOiB0cmFuc2FjdGlvbnNUb0Fib3J0KQorICAgICAgICB0cmFuc2FjdGlvbi0+YWJv
cnRXaXRob3V0Q2FsbGJhY2soKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRmly
ZVZlcnNpb25DaGFuZ2VFdmVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4
ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNl
OjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50Iik7CiAKQEAgLTc2MSw2ICs3ODMsMTMgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChVbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24mIGMKIAogICAgIEFTU0VSVF9VTlVTRUQocmVxdWVzdElkZW50aWZp
ZXIsIG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPnJlcXVlc3REYXRhKCkucmVxdWVzdElkZW50aWZp
ZXIoKSA9PSByZXF1ZXN0SWRlbnRpZmllcik7CiAKKyAgICBpZiAoY29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIgPT0gSW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNl
cnZlcjo6WWVzKSB7CisgICAgICAgIGlmIChtX29wZW5EYXRhYmFzZUNvbm5lY3Rpb25zLmNvbnRh
aW5zKCZjb25uZWN0aW9uKSkgeworICAgICAgICAgICAgY2xlYXJUcmFuc2FjdGlvbnNPbkNvbm5l
Y3Rpb24oY29ubmVjdGlvbik7CisgICAgICAgICAgICBtX29wZW5EYXRhYmFzZUNvbm5lY3Rpb25z
LnJlbW92ZSgmY29ubmVjdGlvbik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBub3RpZnlDdXJy
ZW50UmVxdWVzdENvbm5lY3Rpb25DbG9zZWRPckZpcmVkVmVyc2lvbkNoYW5nZUV2ZW50KGNvbm5l
Y3Rpb24uaWRlbnRpZmllcigpKTsKIH0KIApAQCAtMTg0NSwyNCArMTg3NCw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KFVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYKICAgICAgICAgbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9u
ID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBEZXF1ZTxSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbj4+IHBlbmRpbmdUcmFuc2FjdGlvbnM7Ci0gICAgd2hpbGUgKCFtX3BlbmRpbmdU
cmFuc2FjdGlvbnMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3Bl
bmRpbmdUcmFuc2FjdGlvbnMudGFrZUZpcnN0KCk7Ci0gICAgICAgIGlmICgmdHJhbnNhY3Rpb24t
PmRhdGFiYXNlQ29ubmVjdGlvbigpICE9ICZjb25uZWN0aW9uKQotICAgICAgICAgICAgcGVuZGlu
Z1RyYW5zYWN0aW9ucy5hcHBlbmQoV1RGTW92ZSh0cmFuc2FjdGlvbikpOwotICAgIH0KLQotICAg
IGlmICghcGVuZGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkpCi0gICAgICAgIG1fcGVuZGluZ1Ry
YW5zYWN0aW9ucy5zd2FwKHBlbmRpbmdUcmFuc2FjdGlvbnMpOwotCi0gICAgRGVxdWU8UmVmUHRy
PFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiB0cmFuc2FjdGlvbnNUb0Fib3J0OwotICAg
IGZvciAoYXV0byYgdHJhbnNhY3Rpb24gOiBtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMudmFsdWVz
KCkpIHsKLSAgICAgICAgaWYgKCZ0cmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0g
JmNvbm5lY3Rpb24pCi0gICAgICAgICAgICB0cmFuc2FjdGlvbnNUb0Fib3J0LmFwcGVuZCh0cmFu
c2FjdGlvbik7Ci0gICAgfQotCi0gICAgZm9yIChhdXRvJiB0cmFuc2FjdGlvbiA6IHRyYW5zYWN0
aW9uc1RvQWJvcnQpCi0gICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydFdpdGhvdXRDYWxsYmFjaygp
OworICAgIGNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCiAgICAg
aWYgKG1fY3VycmVudE9wZW5EQlJlcXVlc3QpCiAgICAgICAgIG5vdGlmeUN1cnJlbnRSZXF1ZXN0
Q29ubmVjdGlvbkNsb3NlZE9yRmlyZWRWZXJzaW9uQ2hhbmdlRXZlbnQoY29ubmVjdGlvbi5pZGVu
dGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRleCBjYWMyNzA4MTE3YWMwODRkNDIw
OGQ3OTdhYzc5NzlmZjliZGMyMDQxLi5lYzNmYzBjNzNlYTMwZTI0ZTdhMGNlZTU4ODlmMzk2MWYw
Y2M0YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KFVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgY29uZmlybUNvbm5lY3Rpb25DbG9zZWRPblNl
cnZlcihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIGRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaXJlVmVy
c2lvbkNoYW5nZUV2ZW50KFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4ZWREQjo6Q29ubmVjdGlv
bkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxl
ZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2
b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
Jik7CiAKQEAgLTI1MCw2ICsyNTAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRTcGFjZUlu
Y3JlYXNlVGFzayh1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCB0YXNrU2l6ZSk7CiAgICAg
dm9pZCBmaW5pc2hTcGFjZUluY3JlYXNlVGFzayh1aW50NjRfdCBpZGVudGlmaWVyLCBib29sIGlz
VGFza1N1Y2Nlc3NmdWwpOwogCisgICAgdm9pZCBjbGVhclRyYW5zYWN0aW9uc09uQ29ubmVjdGlv
bihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKKwogICAgIHN0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZVVuaXF1ZUNhbGxiYWNrSWRlbnRpZmllcigpOwogCiAgICAgUmVmPElEQlNlcnZlcj4g
bV9zZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDdmZGRmMGZhMzQwMDY3MTY0MzEzNTA3YzA4MTZlZjdlMjBjZTBlZjguLmZlOTEwZmFmOTg0
OWRjMmIwNDdlYmE5N2FlNTY2NTc5ZmQxM2QyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZUNvbm5lY3Rpb24uY3BwCkBAIC0xMDcsMTMgKzEwNywxMyBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbjo6Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcigpCiAgICAgICAg
IG1fZGF0YWJhc2UtPmNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoKnRoaXMpOwogfQogCi12b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKQordm9pZCBVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgSW5kZXhlZERCOjpDb25u
ZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlciBjb25uZWN0aW9uQ2xvc2VkKQogewogICAgIExP
RyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQgLSAlcyAtICUiIFBSSXU2NCwgbV9vcGVuUmVxdWVzdElkZW50aWZpZXIubG9n
Z2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGlkZW50aWZpZXIoKSk7CiAKICAgICBBU1NFUlQo
bV9kYXRhYmFzZSk7CiAgICAgaWYgKG1fZGF0YWJhc2UpCi0gICAgICAgIG1fZGF0YWJhc2UtPmRp
ZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoKnRoaXMsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAg
ICAgbV9kYXRhYmFzZS0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCgqdGhpcywgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWQpOwogfQogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
Q29ubmVjdGlvbjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbi5oCmluZGV4IGNjYTRmNzYxMTgzNWNjZTk5ODllM2Y5MjFmZWFl
MGM5YWIyMTE5MTAuLjdmMzk4NjQ3ODgyOGE5NzYyM2FlMTk4NmE2NjNiNWNkZTA1ZWE3ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgKQEAgLTc4LDcgKzc4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgZGlkQ3JlYXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYp
OwogICAgIHZvaWQgZGlkRGVsZXRlSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZv
aWQgZGlkUmVuYW1lSW5kZXgoY29uc3QgSURCUmVzdWx0RGF0YSYpOwotICAgIHZvaWQgZGlkRmly
ZVZlcnNpb25DaGFuZ2VFdmVudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgSW5kZXhlZERCOjpDb25uZWN0
aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgdm9pZCBkaWRGaW5pc2hIYW5kbGluZ1Zl
cnNpb25DaGFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIpOwogICAgIHZvaWQgY29uZmlybURpZENsb3NlRnJvbVNlcnZlcigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURC
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblBy
b2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IGFhNDgyM2M5MzRmNjEwMTg3ZTdjZjRkODFkNDBlZWYy
ODI3MTVlMzQuLjkxMTFmNTk3OGUzYjgwNjE4NTVjMjBmNWFmYWE1YjY1NWRjY2VhMjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJ
REJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC00MjUsMTAgKzQyNSwxMCBAQCB2b2lkIEluUHJv
Y2Vzc0lEQlNlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZAogICAgIH0pOwogfQogCi12b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKQordm9p
ZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgSW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25C
ZWhhbGZPZlNlcnZlciBjb25uZWN0aW9uQ2xvc2VkKQogewotICAgIFJ1bkxvb3A6OmN1cnJlbnQo
KS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllcl0gewotICAgICAgICBtX3Nl
cnZlci0+ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNo
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBjb25uZWN0aW9uQ2xvc2VkXSB7CisgICAg
ICAgIG1fc2VydmVyLT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBjb25uZWN0aW9uQ2xvc2VkKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCmluZGV4IGNhZGM4MTJhMzk5YzY5OGY5Mzdl
NWM5NWMwNzdmYzBhMWMxN2I2ZjAuLmM3YjUzMjFjYTM2MWM3NDFlNTJkNDVlYzE4YTgzMThmYWQw
ODI5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0
aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFsOwog
ICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBJbmRleGVk
REI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyID0gSW5kZXhlZERCOjpDb25uZWN0
aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcjo6Tm8pIGZpbmFsOwogICAgIHZvaWQgb3BlbkRCUmVx
dWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwogICAgIHZvaWQgY29u
ZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3Bl
bmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA0OWVjY2I4ZDNjMDIwMTFjNmVjN2U4MWJmZWM3MTc4ODMwYzJjYzkyLi4xZTA3
YzQ5MzlkZmRkZTQ0ZGUzMTViYzM1NTI1M2QyMDM0MGY4YzcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTUxNjEsMTAgKzUxNjEsMTkgQEAgdm9pZCBEb2N1bWVudDo6c2V0QmFja0Zvcndh
cmRDYWNoZVN0YXRlKEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBzdGF0ZSkKICAgICAgICAgbV9zdHls
ZVJlY2FsY1RpbWVyLnN0b3AoKTsKIAogICAgICAgICBjbGVhclNoYXJlZE9iamVjdFBvb2woKTsK
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICAgICBpZiAobV9pZGJDb25uZWN0
aW9uUHJveHkpCisgICAgICAgICAgICBtX2lkYkNvbm5lY3Rpb25Qcm94eS0+c2V0Q29udGV4dFN1
c3BlbmRlZCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0cnVlKTsKKyNlbmRpZgogICAgICAg
ICBicmVhazsKICAgICBjYXNlIE5vdEluQmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgaWYgKGNo
aWxkTmVlZHNTdHlsZVJlY2FsYygpKQogICAgICAgICAgICAgc2NoZWR1bGVTdHlsZVJlY2FsYygp
OworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgICAgICBpZiAobV9pZGJDb25uZWN0
aW9uUHJveHkpCisgICAgICAgICAgICBtX2lkYkNvbm5lY3Rpb25Qcm94eS0+c2V0Q29udGV4dFN1
c3BlbmRlZCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBmYWxzZSk7CisjZW5kaWYKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAK
aW5kZXggNThiZTUwNjA5ZTQyZmY4MDNmYzNjNjczZGI2OGEwZDVlN2ZjOTNhOS4uYWFkOTZkYWU3
ZWY5NDQ0OWQ0ZmMxM2I3MzlhY2UxM2Q2ZTllZDAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTIxMCw2ICsyMTAsMjIgQEAgdm9pZCBXb3Jr
ZXJHbG9iYWxTY29wZTo6c3RvcEluZGV4ZWREYXRhYmFzZSgpCiAjZW5kaWYKIH0KIAordm9pZCBX
b3JrZXJHbG9iYWxTY29wZTo6c3VzcGVuZCgpCit7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0VfSU5fV09SS0VSUykKKyAgICBpZiAobV9jb25uZWN0aW9uUHJveHkpCisgICAgICAgIG1fY29u
bmVjdGlvblByb3h5LT5zZXRDb250ZXh0U3VzcGVuZGVkKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHRydWUpOworI2VuZGlmCit9CisKK3ZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnJlc3VtZSgp
Cit7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykKKyAgICBpZiAobV9j
b25uZWN0aW9uUHJveHkpCisgICAgICAgIG1fY29ubmVjdGlvblByb3h5LT5zZXRDb250ZXh0U3Vz
cGVuZGVkKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGZhbHNlKTsKKyNlbmRpZgorfQorCiAj
ZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKIFdvcmtlckxvY2F0aW9uJiBXb3Jr
ZXJHbG9iYWxTY29wZTo6bG9jYXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDMwNDQ3MWFjMjhkMzgwODc0YzVhZjdjYjc0NDU1ZTVk
YWQ1Yjg3YjMuLjBkMTAyYWJkNmVlZGJkNTY1YmM2Zjk3YWNjZGYwMWUzMGU0YWYyMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTc1LDYgKzc1LDgg
QEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSURCQ2xpZW50
OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSgpIGZpbmFsOworICAgIHZv
aWQgc3VzcGVuZCgpOworICAgIHZvaWQgcmVzdW1lKCk7CiAjZW5kaWYKIAogICAgIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCAyNzViNWVlYTI3NjljYzhmZjhhNjkw
OTlhZmEzMGFiN2QzMTI1NGVjLi4zZDk2MWZiYjYyNGYwNzU0ODFhMDhiMTg5ZGI5ZDhkMWQ1OTRi
YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0yNjksNyAr
MjY5LDEzIEBAIHZvaWQgV29ya2VyVGhyZWFkOjpzdXNwZW5kKCkKIHsKICAgICBtX2lzU3VzcGVu
ZGVkID0gdHJ1ZTsKICAgICBydW5Mb29wKCkucG9zdFRhc2soWyZdKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3BlKQorICAgICAgICAgICAg
bV93b3JrZXJHbG9iYWxTY29wZS0+c3VzcGVuZCgpOworCiAgICAgICAgIG1fc3VzcGVuc2lvblNl
bWFwaG9yZS53YWl0KCk7CisgICAgICAgIAorICAgICAgICBpZiAobV93b3JrZXJHbG9iYWxTY29w
ZSkKKyAgICAgICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUtPnJlc3VtZSgpOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCAwYzgxMmRmMzJm
Nzg5NWVkNmY1NGIwMjUyYzlkYjZiZWJkMDQ2OTI0Li43OTFjNWRmNDQ1MDExMzA4ZjM1Nzg2YWU2
MzM5ZTlhNDBiNjExNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAK
QEAgLTMyNyw5ICszMjcsOSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6YWJvcnRP
cGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lYwogICAgIGlkYlNlcnZl
cigpLmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
ciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRmlyZVZlcnNpb25D
aGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgSW5kZXhlZERCOjpD
b25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlciBjb25uZWN0aW9uQ2xvc2VkKQogewotICAg
IGlkYlNlcnZlcigpLmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZGJTZXJ2ZXIoKS5kaWRG
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZCk7CiB9CiAKIHZvaWQgV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3RE
YXRhJiByZXF1ZXN0RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXgg
ZGU2OTYzMjFlYzU5ZjQ1NmYzY2VhY2MxMzY2MjU4YjZlODBmNTU5NC4uNmE2NzU3ZDlmYTMzODlk
MmU2NTQ3NzE3YzVkMmVkYjNiMjg3M2YxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmgKQEAgLTk5LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVj
dGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
ICAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkRmly
ZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2Vk
T25CZWhhbGZPZlNlcnZlcik7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0
IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJik7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9t
U2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4KaW5kZXggODAzYjk2
ZDI5YWZjNzljMjkzMWM4YTExZWZkNDUzYzVhZjBmMmE0Zi4uZjYwYzIwODZmOWE1ZWJlOTdlZjZj
OTE1NTYyZDAzZGY4ZTRiNzA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5tZXNzYWdlcy5pbgpAQCAtNDcsNyArNDcsNyBAQCBtZXNzYWdlcyAtPiBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQgewogICAgIERhdGFiYXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZSh1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBEYXRhYmFzZUNvbm5l
Y3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAg
QWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgdHJhbnNhY3Rpb25JZGVudGlm
aWVyKTsKLSAgICBEaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29u
bmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0
SWRlbnRpZmllcik7CisgICAgRGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIg
cmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIE9w
ZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEp
OwogICAgIENvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IDIxZGU2ODU2ZTA3OTQ0ZjhiMTc2ZWQ4YjdiOTM5NmM2NWMwMzZkYjYuLmFkZjBjNWMx
YjdlNWQ0YzAzYTFkNzZiM2U1ZDdkZDJlMDQ4NDE2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNTUwLDYgKzU1MCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90
eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6SGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9JbnNw
ZWN0b3JPdmVybGF5Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2ll
cyc6IFsnPFdlYkNvcmUvQ29va2llSmFyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpJbmRleGVk
REI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSc6IFsnPFdlYkNvcmUvSW5kZXhlZERCLmg+J10s
CisgICAgICAgICdXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyJzogWyc8V2ViQ29yZS9JbmRleGVkREIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Oklu
cHV0TW9kZSc6IFsnPFdlYkNvcmUvSW5wdXRNb2RlLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpL
ZXlmcmFtZVZhbHVlTGlzdCc6IFsnPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kJzogWyc8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+
J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRl
eCAzM2VlYTI0YzgxYzU4OWIxNjdhZTJjYTcxY2NkMzJlNGZkNGFhZjVkLi44YjVmMWYxMjc3ZTFh
OTVkMWIxOTlhOWEwZTQ2YzUzNGZkNmU4NjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTE5OCw5ICsxOTgsOSBAQCB2b2lkIFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lYwogICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
QWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0
cmFuc2FjdGlvbklkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
cikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVj
dGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3NlZCkKIHsKLSAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkRpZEZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50aWZpZXIpKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50
aWZpZXIsIGNvbm5lY3Rpb25DbG9zZWQpKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRl
eCBiMjUyNTlmMjI1MjM0OWIxODYxYmUxNzFlNWZjYWU0ZmE0MzA1MGU3Li45NTcwYzQwNTJiNjM1
YjhmOTA1ZTNhNjkwY2NiNDQ3ZTJmNGNlNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgYWJv
cnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgZGlkRmly
ZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2Vy
dmVyKSBmaW5hbDsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21T
ZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0ODExN2I1
YzBjN2I0Y2NkYjNjMjNhZWI5OTViYzg5MjZjMGVmNzAwLi5lNmYzYzExMWUxMTczMzZkMjM5MWM0
MzZlNmNmNGNhNzY4NjIzYWUwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMTEtMDQgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI1MDc1NCk6IHdlYiBw
YWdlIHVzaW5nIElEQkluZGV4IGRvZXNuJ3QgbG9hZCBvY2Nhc2lvbmFsbHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzQzMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMTEtMDQgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTE2MjMp
OiBXaGVuIGRvd25sb2FkaW5nIGEgUXVpY2tMb29rIGZpbGUsIHRoZSB3ZWIgdmlldyBuYXZpZ2F0
ZXMgdG8gYSAiVGhlIFVSTCBjYW4ndCBiZSBzaG93biIgZXJyb3IgcGFnZSBpbnN0ZWFkIG9mIHN0
YXlpbmcgb24gdGhlIGN1cnJlbnQgcGFnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZTQ5
YjVmZTUzODkwYmJmZTExYWIyN2JlNTlmN2JmOTg3NjJhZGNlLi4wOWM3MWQxYjY4NzgwYWRhYTA3
MjUyZmJiNTk3YmJkMTgxNTFkZmM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzI1LDYg
KzcyNSw5IEBACiAJCTkzNjhBMjVGMjI5RUZCNDcwMEE4MjlDQSAvKiBsb2NhbC1zdG9yYWdlLXBy
b2Nlc3Mtc3VzcGVuZHMtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNjhBMjVDMjI5RUZCM0EwMEE4MjlDQSAvKiBsb2NhbC1zdG9y
YWdlLXByb2Nlc3Mtc3VzcGVuZHMtMi5odG1sICovOyB9OwogCQk5MzZGNzI4MDFDRDdEOUVDMDA2
OEEwRkIgLyogbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNkY3MjdFMUNEN0Q5RDAwMDY4QTBG
QiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CiAJCTkzNkY3MjgxMUNEN0Q5
RUMwMDY4QTBGQiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzZGNzI3RjFDRDdEOUQwMDA2
OEEwRkIgLyogbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5tcDQgKi87IH07CisJCTkzOTlCQTA0MjM3
MTExNDAwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTlCQTAxMjM3MTEwQUUwMDgzOTJCRiAv
KiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSAqLzsgfTsKKwkJOTM5OUJBMDUyMzcxMTE0RjAwODM5
MkJGIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5OUJBMDIyMzcxMTBCRjAwODM5MkJGIC8q
IEluZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwgKi87IH07CisJCTkzOTlCQTA2MjM3MTExNEYwMDgz
OTJCRiAvKiBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTlCQTAzMjM3MTEwQkYwMDgzOTJC
RiAvKiBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sICovOyB9OwogCQk5M0FGNEVDRTE1MDZG
MDY0MDA3RkQ1N0UgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0FGNEVDRDE1MDZGMDY0MDA3RkQ1N0UgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgKi87IH07CiAJCTkzQUY0RUQxMTUwNkYxMzAwMDdGRDU3RSAv
KiBsb3RzLW9mLWltYWdlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQUY0RUNGMTUwNkYxMjMwMDdGRDU3RSAvKiBsb3RzLW9mLWlt
YWdlcy5odG1sICovOyB9OwogCQk5M0I2MjA1NDIzNEVBNjJDMDBENDlCOTcgLyogU3RvcmFnZVF1
b3RhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0I2MjA1MzIzNEVBMzJCMDBENDlCOTcgLyogU3RvcmFnZVF1b3RhTWFuYWdlci5jcHAg
Ki87IH07CkBAIC0xMjg4LDkgKzEyOTEsMTEgQEAKIAkJCQk1MUE1ODc4NTFEMjczOUUzMDA0QkE5
QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJQ0FCMEZGNTIyMjMzMjQwNzAwNkNBNUIwIC8qIEluZGV4ZWREQkZpbGVOYW1l
LTEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDQUIwRkY1MzIyMzMyNDA3MDA2Q0E1
QjAgLyogSW5kZXhlZERCRmlsZU5hbWUtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJ
CTkzOTlCQTA1MjM3MTExNEYwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxQkNFRTRFMUM4NEY1M0IwMDQyQzgyRSAvKiBJbmRl
eGVkREJNdWx0aVByb2Nlc3MtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxQkNF
RTRGMUM4NEY1M0IwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTUxQTU4NzdEMUQxQjQ5Q0QwMDRCQTlBRiAvKiBJbmRleGVk
REJNdWx0aVByb2Nlc3MtMy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTkzOTlCQTA2
MjM3MTExNEYwMDgzOTJCRiAvKiBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTUxQjFFRTk2MUM4MEZBRUYwMDY0RkI5OCAvKiBJbmRleGVkREJQ
ZXJzaXN0ZW5jZS0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCMUVFOTcxQzgw
RkFFRjAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1NzU5OUUyNzFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0
dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCkBAIC0yMTA4LDYgKzIxMTMsOSBAQAogCQk5MzY4QTI1RDIyOUVGQjNBMDBBODI5Q0EgLyog
bG9jYWwtc3RvcmFnZS1wcm9jZXNzLXN1c3BlbmRzLTEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJsb2NhbC1zdG9yYWdlLXByb2Nlc3Mtc3VzcGVuZHMtMS5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM2RjcyN0UxQ0Q3RDlEMDAwNjhBMEZCIC8qIGxhcmdl
LXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJn
ZS12aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzZGNzI3RjFDRDdEOUQwMDA2OEEwRkIgLyogbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5tcDQgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRo
ID0gImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM5OUJBMDEyMzcxMTBBRTAwODM5MkJGIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5kZXhlZERCSW5QYWdl
Q2FjaGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTlCQTAyMjM3MTEwQkYw
MDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gSW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM5OUJBMDMyMzcxMTBCRjAwODM5MkJGIC8qIEluZGV4ZWREQk5vdEluUGFnZUNh
Y2hlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJOb3RJblBhZ2VD
YWNoZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCQTkxNjE0MTAzNDEy
MDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QkZFMzkxOEU1NTQ4OTAwODgzMjc1IC8qIFN0cmlu
Z1RydW5jYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0
cmluZ1RydW5jYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMjU4OTgx
RjkyRkYxNTAwM0U1MTBDIC8qIFRleHRDb2RlYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0
Q29kZWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg1NSw2ICsyODYzLDcg
QEAKIAkJCQk1MTEwRkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5t
bSAqLywKIAkJCQk1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQ
cm9jZXNzS2lsbC5tbSAqLywKIAkJCQlDQUIwRkY1NDIyMzMyQzNBMDA2Q0E1QjAgLyogSW5kZXhl
ZERCRmlsZU5hbWUubW0gKi8sCisJCQkJOTM5OUJBMDEyMzcxMTBBRTAwODM5MkJGIC8qIEluZGV4
ZWREQkluUGFnZUNhY2hlLm1tICovLAogCQkJCTUxQkNFRTQ5MUM4NEY0QUYwMDQyQzgyRSAvKiBJ
bmRleGVkREJNdWx0aVByb2Nlc3MubW0gKi8sCiAJCQkJNTFCMUVFOEQxQzgwRjU4ODAwNjRGQjk4
IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tICovLAogCQkJCTU3NTk5RTIwMUYwNzE5MTcwMEEz
RkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0g
Ki8sCkBAIC0zMzIyLDkgKzMzMzEsMTEgQEAKIAkJCQk1MUE1ODc4MjFEMjcyRUI1MDA0QkE5QUYg
LyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgKi8sCiAJCQkJQ0FCMEZGNTEy
MjMzMjNGNjAwNkNBNUIwIC8qIEluZGV4ZWREQkZpbGVOYW1lLTEuaHRtbCAqLywKIAkJCQlDQUIw
RkY1MDIyMzMyM0Y2MDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUtMi5odG1sICovLAorCQkJ
CTkzOTlCQTAyMjM3MTEwQkYwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5odG1sICov
LAogCQkJCTUxQkNFRTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3Mt
MS5odG1sICovLAogCQkJCTUxQkNFRTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0
aVByb2Nlc3MtMi5odG1sICovLAogCQkJCTUxQTU4NzdDMUQxQjNEOEQwMDRCQTlBRiAvKiBJbmRl
eGVkREJNdWx0aVByb2Nlc3MtMy5odG1sICovLAorCQkJCTkzOTlCQTAzMjM3MTEwQkYwMDgzOTJC
RiAvKiBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sICovLAogCQkJCTUxQjFFRTk0MUM4MEZB
REQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwgKi8sCiAJCQkJNTFCMUVF
OTUxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCAqLywKIAkJ
CQk1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgKi8sCkBAIC00NjMxLDYgKzQ2NDIsNyBAQAogCQkJ
CTUxMTBGQ0ZBMUUwMUNEQjgwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFi
YXNlUHJvY2Vzc0tpbGwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDQUIwRkY1NTIyMzMyQzU3MDA2
Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUubW0gaW4gU291cmNlcyAqLywKKwkJCQk5Mzk5QkEw
NDIzNzExMTQwMDA4MzkyQkYgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3QzgzRTBCRTFEMEE2NTEzMDBGRUJDRjMgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNz
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQkYxRDBBNjUyMjAwRkVCQ0YzIC8qIEluZGV4
ZWREQlBlcnNpc3RlbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1OTlFMjExRjA3MTkxOTAw
QTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5t
bSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbmRleGVkREJJblBhZ2VDYWNoZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJJblBhZ2VDYWNoZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1OGI4MWE1MTE0ZTljZDEwMDc3MzM2NDU0MzdjMWFhM2VhZjlkOWEKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkluUGFn
ZUNhY2hlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0Pgor
Cit2YXIgZGI7Cit2YXIgb3BlbkVycm9yRmlyZWQgPSBmYWxzZTsKK3ZhciByZXF1ZXN0ID0gd2lu
ZG93LmluZGV4ZWREQi5vcGVuKCJUZXN0SW5kZXhlZERCIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9
IChldmVudCkgPT4geworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkYi5vbmNs
b3NlID0gKGV2ZW50KSA9PiB7CisgICAgICAgIGlmIChvcGVuRXJyb3JGaXJlZCkKKyAgICAgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCJGaXJzdCBEYXRhYmFzZSBDb25uZWN0aW9uIENsb3NlZCwgU2Vjb25kIERhdGFiYXNlIENvbm5l
Y3Rpb24gRmFpbGVkIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJGaXJzdCBEYXRhYmFzZSBD
b25uZWN0aW9uIENsb3NlZCwgU2Vjb25kIERhdGFiYXNlIENvbm5lY3Rpb24gTm90IEZhaWxlZCIp
OworICAgIH0KKworICAgIHZhciBzZWNvbmRPcGVuUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIu
b3BlbigiVGVzdEluZGV4ZWREQiIsIGRiLnZlcnNpb24gKyAxKTsKKyAgICBzZWNvbmRPcGVuUmVx
dWVzdC5vbmVycm9yID0gKGV2ZW50KSA9PiB7CisgICAgICAgIG9wZW5FcnJvckZpcmVkID0gdHJ1
ZTsKKyAgICB9CisKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgiRmlyc3QgRGF0YWJhc2UgQ29ubmVjdGlvbiBPcGVuZWQiKTsKK30KK3Jl
cXVlc3Qub25lcnJvciA9IChldmVudCkgPT4geworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJGaXJzdCBEYXRhYmFzZSBDb25uZWN0aW9u
IEZhaWxlZCIpOworfQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkluUGFnZUNhY2hlLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJhNjJlNzk3OTYyMDM3NDVkOGVlMTM3MDFlMzQyZjBkNmYwZjgwYjgKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWRE
QkluUGFnZUNhY2hlLm1tCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3Qu
aCIKKworI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNp
dGVEYXRhU3RvcmVQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0
IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLVXNlclN0eWxlU2hlZXQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitzdGF0aWMgYm9v
bCByZWNlaXZlZFNjcmlwdE1lc3NhZ2U7CitzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2Fn
ZT4gbGFzdFNjcmlwdE1lc3NhZ2U7CisKK0BpbnRlcmZhY2UgSW5kZXhlZERCSW5QYWdlQ2FjaGVN
ZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gSW5kZXhlZERCSW5QYWdlQ2FjaGVNZXNzYWdlSGFuZGxlcgorCist
ICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1
c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVz
c2FnZSAqKW1lc3NhZ2UKK3sKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOworICAg
IGxhc3RTY3JpcHRNZXNzYWdlID0gbWVzc2FnZTsKK30KKworQGVuZAorCitURVNUKEluZGV4ZWRE
QiwgSW5kZXhlZERCSW5QYWdlQ2FjaGUpCit7CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhb
W0luZGV4ZWREQkluUGFnZUNhY2hlTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFk
ZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07
CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOworCisgICAgLy8gTG9hZCBwYWdlIHRoYXQgaG9sZHMgb3BlbiBkYXRhYmFz
ZSBjb25uZWN0aW9uLgorICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIklu
ZGV4ZWREQkluUGFnZUNhY2hlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CisKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgUmV0YWluUHRy
PE5TU3RyaW5nPiBzdHJpbmcxID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
OworICAgIEVYUEVDVF9XS19TVFJFUShAIkZpcnN0IERhdGFiYXNlIENvbm5lY3Rpb24gT3BlbmVk
Iiwgc3RyaW5nMS5nZXQoKSk7CisKKyAgICAvLyBMb2FkIGFub3RoZXIgcGFnZSB0aGF0IGRlbGV0
ZXMgZGF0YWJhc2UuCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0MiA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIklu
ZGV4ZWREQk5vdEluUGFnZUNhY2hlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdDJdOworCisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFJldGFp
blB0cjxOU1N0cmluZz4gc3RyaW5nMiA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBi
b2R5XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJEYXRhYmFzZSBEZWxldGVkIiwgc3RyaW5nMi5n
ZXQoKSk7CisKKyAgICBbd2ViVmlldyBnb0JhY2tdOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlKTsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmluZzMgPSAoTlNTdHJpbmcgKilb
bGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiRmlyc3QgRGF0
YWJhc2UgQ29ubmVjdGlvbiBDbG9zZWQsIFNlY29uZCBEYXRhYmFzZSBDb25uZWN0aW9uIEZhaWxl
ZCIsIHN0cmluZzMuZ2V0KCkpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU2YWVjZDhiZDNkOTc0NWI3NTJhODU0MWMxNGU3NGU4OGYyMTM5ZTAKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
ZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0PgorCit2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoIlRlc3RJbmRleGVkREIiKTsKK3JlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgiRGF0YWJhc2UgRGVsZXRlZCIpOworfQorcmVxdWVzdC5vbmJsb2NrZWQgPSBmdW5j
dGlvbihldmVudCkgeworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJEYXRhYmFzZSBEZWxldGlvbiBCbG9ja2VkIik7Cit9CisKKzwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382831</attachid>
            <date>2019-11-05 10:01:38 -0800</date>
            <delta_ts>2019-11-05 10:25:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203431-20191105100138.patch</filename>
            <type>text/plain</type>
            <size>55164</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE2MDE3ZTFjYWM2MWI0
NjBmZjAyNjA4OGJkNjFkZTNiNDU2ODQzZC4uMjhlMWY2NzJjOTU0ZmM3OWUyMzZlYzA4YWI5ZWVl
OTFmZjIxZDA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE5LTExLTA1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTA3
NTQpOiB3ZWIgcGFnZSB1c2luZyBJREJJbmRleCBkb2Vzbid0IGxvYWQgb2NjYXNpb25hbGx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgV2Ugbm93IGFsbG93
IHBhZ2UgdG8gZW50ZXIgY2FjaGUgZXZlbiB3aGVuIHRoZXJlIGFyZSBhY3RpdmUgSURCIG9iamVj
dHMuIFRoZSBvcGVuIGRhdGFiYXNlIGNvbm5lY3Rpb24gb3IgYmxvY2tlZAorICAgICAgICBkYXRh
YmFzZSByZXF1ZXN0IG9uIHN1c3BlbmRlZCBwYWdlcyBtYXkgc3RvcCBvdGhlciBhY3RpdmUgcGFn
ZXMgZnJvbSBkZWxldGluZyBvciBvcGVuaW5nIHRoZSBzYW1lIGRhdGFiYXNlLgorCisgICAgICAg
IFRvIGZpeCB0aGlzIGlzc3VlLCB3ZSBjbG9zZSB0aG9zZSBvcGVuIGNvbm5lY3Rpb25zIG9uIHN1
c3BlbmRlZCBwYWdlIHdoZW4gd2Uga25vdyBmcm9tIHRoZSB2ZXJzaW9uY2hhbmdlIGV2ZW50LCAK
KyAgICAgICAgdGhhdCB0aGVyZSBpcyBvcGVuL2RlbGV0ZSByZXF1ZXN0IGJsb2NrZWQuIEZvciBi
bG9ja2VkIHJlcXVlc3RzIG9uIHN1c3BlbmRlZCBwYWdlLCB3ZSBhYm9ydCB0aGVtIGFuZCByZXR1
cm4gCisgICAgICAgIGVycm9yLiBUaGlzIHdheSwgd2hlbiB0aGUgc3VzcGVuZGVkIHBhZ2UgcmVz
dW1lcywgaXQgd2lsbCBnZXQgY2xvc2UgZXZlbnQgZmlyZWQgb24gcHJldmlvdXNseSBvcGVuZWQg
ZGF0YWJhc2UgCisgICAgICAgIGNvbm5lY3Rpb25zLCBhbmQgZXJyb3IgZXZlbnQgZmlyZWQgb24g
cHJldmlvdXNseSBibG9ja2VkIHJlcXVlc3RzLgorCisgICAgICAgIEFQSSB0ZXN0OiBJbmRleGVk
REIuSW5kZXhlZERCSW5QYWdlQ2FjaGUKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxl
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6OnJlcXVlc3RCbG9ja2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5EQlJlcXVlc3Q6OnNldElzQ29udGV4dFN1c3Bl
bmRlZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmNvbXBsZXRlT3BlbkRCUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Zmly
ZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJDbGllbnQ6OnNldE1hdGNoaW5nSXRlbXNDb250ZXh0U3VzcGVuZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpzZXRDb250ZXh0U3Vz
cGVuZGVkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blByb3h5Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJUcmFu
c2FjdGlvbnNPbkNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb25uZWN0aW9uQ2xvc2VkRnJvbUNs
aWVudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5o
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpkaWRGaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9j
ZXNzSURCU2VydmVyLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUpOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xv
YmFsU2NvcGU6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6
OnJlc3VtZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZDo6c3VzcGVuZCk6CisKIDIwMTktMTEtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBNZWRpYUtleVNlc3Npb24gLyBXZWJLaXRNZWRpYUtleVNlc3Npb24g
c2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMWJlNTcyOTQ5MGVlN2M3NTI3NmQ3NjU2MGEwZjAyNTE0YzQxM2VjOC4uN2YxMjU3OGVk
NjBlM2EyN2MxYjkyMTRhYWFiNjBiMTk4MWE2MmQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxOS0xMS0wNSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OIChyMjUwNzU0KTogd2ViIHBhZ2UgdXNpbmcgSURCSW5kZXggZG9lc24ndCBs
b2FkIG9jY2FzaW9uYWxseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzNDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRmly
ZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZl
cnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorCiAyMDE5LTExLTAzICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkF1dGhuXSBDdGFwQXV0aGVu
dGljYXRvcjo6dHJ5RG93bmdyYWRlIHNob3VsZCBkaXN0aW5ndWlzaCByZXF1ZXN0RGF0YSgpLm9w
dGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5o
CmluZGV4IGJmYTBmNGQ2YzExMGE2ZmZjODBhNDQ0OTQ2M2ZlYzM4MzQ4MzVhMGEuLmI0NTA5MWJj
ZjIxMmMwZWNlYWMwZmQ1MzhiMGVkYmI1MDMwYTRiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaApAQCAtMTEwLDYgKzExMCw5IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CiAKKyAgICB2
b2lkIHNldElzQ29udGV4dFN1c3BlbmRlZChib29sIGlzQ29udGV4dFN1c3BlbmRlZCkgeyBtX2lz
Q29udGV4dFN1c3BlbmRlZCA9IGlzQ29udGV4dFN1c3BlbmRlZDsgfQorICAgIGJvb2wgaXNDb250
ZXh0U3VzcGVuZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbnRleHRTdXNwZW5kZWQ7IH0KKwog
cHJpdmF0ZToKICAgICBJREJEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHkmLCBjb25zdCBJREJSZXN1bHREYXRhJik7CiAKQEAgLTEz
MCw2ICsxMzMsOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVy
LCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+PiBtX2Fib3J0aW5nVHJhbnNhY3Rpb25zOwogICAgIAog
ICAgIGNvbnN0IEV2ZW50TmFtZXMmIG1fZXZlbnROYW1lczsgLy8gTmVlZCB0byBjYWNoZSB0aGlz
IHNvIHdlIGNhbiB1c2UgaXQgZnJvbSBHQyB0aHJlYWRzLgorCisgICAgYm9vbCBtX2lzQ29udGV4
dFN1c3BlbmRlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
Y3BwCmluZGV4IDllYWU4ZDRiNTQ4NDJhYWU0YmVlYWVmODdlNWQxYjYwZWRhNTYxMDkuLmU1ODhm
YWU5ZGZjMTk1YTg3OTk3YWNjYjU4MjI4ZDI3Y2QwMjM3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC0xOTAs
NiArMTkwLDggQEAgdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkKGNvbnN0
IElEQlJlc3VsdERhdGEmIGRhdGEpCiAKICAgICBBU1NFUlQoJm9yaWdpblRocmVhZCgpID09ICZU
aHJlYWQ6OmN1cnJlbnQoKSk7CiAKKyAgICBtX2lzQmxvY2tlZCA9IGZhbHNlOworCiAgICAgLy8g
SWYgYW4gT3BlbiByZXF1ZXN0IHdhcyBjb21wbGV0ZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIG5hdmln
YXRlZCwgbGVhdmluZyB0aGlzIHJlcXVlc3QKICAgICAvLyB3aXRoIGEgc3RvcHBlZCBzY3JpcHQg
ZXhlY3V0aW9uIGNvbnRleHQsIHdlIG5lZWQgdG8gbWVzc2FnZSBiYWNrIHRvIHRoZSBzZXJ2ZXIg
c28gaXQKICAgICAvLyBkb2Vzbid0IGhhbmcgd2FpdGluZyBvbiBhIGRhdGFiYXNlIGNvbm5lY3Rp
b24gb3IgdHJhbnNhY3Rpb24gdGhhdCB3aWxsIG5ldmVyIGV4aXN0LgpAQCAtMjI5LDExICsyMzEs
MjggQEAgdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkKGNvbnN0IElEQlJl
c3VsdERhdGEmIGRhdGEpCiB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6OnJlcXVlc3RCbG9ja2VkKHVp
bnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pCiB7CiAgICAgQVNTRVJUKCZv
cmlnaW5UaHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOworICAgIEFTU0VSVCghbV9pc0Js
b2NrZWQpOworCisgICAgbV9pc0Jsb2NrZWQgPSB0cnVlOwogCiAgICAgTE9HKEluZGV4ZWREQiwg
IklEQk9wZW5EQlJlcXVlc3Q6OnJlcXVlc3RCbG9ja2VkIik7CiAgICAgZW5xdWV1ZUV2ZW50KElE
QlZlcnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIGV2ZW50
TmFtZXMoKS5ibG9ja2VkRXZlbnQpKTsKIH0KIAordm9pZCBJREJPcGVuREJSZXF1ZXN0OjpzZXRJ
c0NvbnRleHRTdXNwZW5kZWQoYm9vbCBpc0NvbnRleHRTdXNwZW5kZWQpCit7CisgICAgbV9pc0Nv
bnRleHRTdXNwZW5kZWQgPSBpc0NvbnRleHRTdXNwZW5kZWQ7CisKKyAgICAvLyBJZiB0aGlzIHJl
cXVlc3QgaXMgYmxvY2tlZCwgaXQgbWVhbnMgdGhpcyByZXF1ZXN0IGlzIGJlaW5nIHByb2Nlc3Nl
ZCBvbiB0aGUgc2VydmVyLgorICAgIC8vIFRoZSBjbGllbnQgbmVlZHMgdG8gYWN0aXZlbHkgc3Rv
cCB0aGUgcmVxdWVzdCBzbyBpdCBkb2Vzbid0IGJsb2NrcyB0aGUgcHJvY2Vzc2luZyBvZiBzdWJz
ZXF1ZW50IHJlcXVlc3RzLgorICAgIGlmIChtX2lzQmxvY2tlZCkgeworICAgICAgICBJREJSZXF1
ZXN0RGF0YSByZXF1ZXN0RGF0YShjb25uZWN0aW9uUHJveHkoKSwgKnRoaXMpOworICAgICAgICBj
b25uZWN0aW9uUHJveHkoKS5vcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKHJlcXVlc3REYXRhKTsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSBJREJSZXN1bHREYXRhOjplcnJvcihyZXF1ZXN0RGF0YS5yZXF1
ZXN0SWRlbnRpZmllcigpLCBJREJFcnJvciB7IFVua25vd25FcnJvciwgIkJsb2NrZWQgb3BlbiBy
ZXF1ZXN0IG9uIGNhY2hlZCBwYWdlIGlzIGFib3J0ZWQgdG8gdW5ibG9jayBvdGhlciByZXF1ZXN0
cyJfcyB9KTsKKyAgICAgICAgcmVxdWVzdENvbXBsZXRlZChyZXN1bHQpOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmgKaW5kZXggODc0OGViMzMzMzAyNmE1YzA4ZGI1Y2QxNGNmYWM2MmVjYjk0NTQyZi4u
NjRhMDFiYmQ2OGUxNDI5YmQ3ZmFjYTdlZGZiMTg1NjZiN2M0Njg2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuaApAQCAtNTIs
NiArNTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlU3VjY2Vzc0FmdGVyVmVyc2lvbkNoYW5n
ZUNvbW1pdCgpOwogICAgIHZvaWQgZmlyZUVycm9yQWZ0ZXJWZXJzaW9uQ2hhbmdlQ29tcGxldGlv
bigpOwogCisgICAgdm9pZCBzZXRJc0NvbnRleHRTdXNwZW5kZWQoYm9vbCk7CisgICAgYm9vbCBp
c0NvbnRleHRTdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ29udGV4dFN1c3BlbmRlZDsg
fQorCiBwcml2YXRlOgogICAgIElEQk9wZW5EQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiwgY29uc3QgSURCRGF0YWJhc2VJZGVu
dGlmaWVyJiwgdWludDY0X3QgdmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSk7CiAKQEAg
LTY4LDYgKzcxLDkgQEAgcHJpdmF0ZToKIAogICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBtX2Rh
dGFiYXNlSWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBtX3ZlcnNpb24geyAwIH07CisKKyAgICBi
b29sIG1faXNDb250ZXh0U3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNCbG9ja2Vk
IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0luZGV4ZWREQi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERCLmgKaW5kZXggNmFmOTNjNGE5ZjBlNzUyMzk0
MDNkOGM0MzE0YmVmODQwZmEyODk5YS4uNTA5YmJmMjc4YjNmOWYzNzU3ZjZmMWI1MDQwZWM3NmQ1
ZDJjOWEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5k
ZXhlZERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSW5kZXhlZERC
LmgKQEAgLTEwNCw2ICsxMDQsOCBAQCBlbnVtIGNsYXNzIEdldEFsbFR5cGUgewogICAgIFZhbHVl
cywKIH07CiAKK2VudW0gY2xhc3MgQ29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgOiBi
b29sIHsgTm8sIFllcyB9OworCiB9IC8vIG5hbWVzcGFjZSBJbmRleGVkREIKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAppbmRleCA0OTc3NzJkNzA2
OWU3NmMwMTQ1MjE0ODcwODVhOGRkYmE0NjAzMTFlLi5jNjBlMDEyOTc3YmUzNzc2MTRmZDY3N2Zj
ZjNiMjFjMzc4ZjI4NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcApAQCAtMTE1LDYg
KzExNSwxOSBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Y29tcGxldGVPcGVuREJSZXF1ZXN0
KGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiAgICAgaWYgKCFyZXF1ZXN0KQogICAg
ICAgICByZXR1cm47CiAKKyAgICBpZiAocmVxdWVzdC0+aXNDb250ZXh0U3VzcGVuZGVkKCkpIHsK
KyAgICAgICAgc3dpdGNoIChyZXN1bHREYXRhLnR5cGUoKSkgeworICAgICAgICBjYXNlIElEQlJl
c3VsdFR5cGU6Ok9wZW5EYXRhYmFzZVVwZ3JhZGVOZWVkZWQ6IHsKKyAgICAgICAgICAgIGFib3J0
T3BlbkFuZFVwZ3JhZGVOZWVkZWQocmVzdWx0RGF0YS5kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyKCksIHJlc3VsdERhdGEudHJhbnNhY3Rpb25JbmZvKCkuaWRlbnRpZmllcigpKTsKKyAgICAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6ZXJyb3IocmVzdWx0RGF0YS5yZXF1
ZXN0SWRlbnRpZmllcigpLCBJREJFcnJvciB7IFVua25vd25FcnJvciwgIlZlcnNpb24gY2hhbmdl
IHRyYW5zYWN0aW9uIG9uIGNhY2hlZCBwYWdlIGlzIGFib3J0ZWQgdG8gdW5ibG9jayBvdGhlciBj
b25uZWN0aW9ucyJfcyB9KTsKKyAgICAgICAgICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09u
T3JpZ2luVGhyZWFkKCpyZXF1ZXN0LCAmSURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRl
ZCwgcmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKICAgICByZXF1ZXN0
LT5wZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZCgqcmVxdWVzdCwgJklEQk9wZW5EQlJlcXVl
c3Q6OnJlcXVlc3RDb21wbGV0ZWQsIHJlc3VsdERhdGEpOwogfQogCkBAIC0yNjgsMTIgKzI4MSwx
OCBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50
NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudAogICAgIGlmICghZGF0YWJhc2UpCiAgICAgICAg
IHJldHVybjsKIAorICAgIGlmIChkYXRhYmFzZS0+aXNDb250ZXh0U3VzcGVuZGVkKCkpIHsKKyAg
ICAgICAgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCByZXF1ZXN0SWRlbnRpZmllciwgSW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhh
bGZPZlNlcnZlcjo6WWVzKTsKKyAgICAgICAgZGF0YWJhc2UtPnBlcmZvcm1DYWxsYmFja09uT3Jp
Z2luVGhyZWFkKCpkYXRhYmFzZSwgJklEQkRhdGFiYXNlOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0
LCBJREJFcnJvciB7IFVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gb24gY2FjaGVkIHBhZ2UgY2xv
c2VkIHRvIHVuYmxvY2sgb3RoZXIgY29ubmVjdGlvbnMiX3N9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIGRhdGFiYXNlLT5wZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZCgqZGF0
YWJhc2UsICZJREJEYXRhYmFzZTo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCwgcmVxdWVzdElkZW50
aWZpZXIsIHJlcXVlc3RlZFZlcnNpb24pOwogfQogCi12b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6
ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKQor
dm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllciwgSW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhh
bGZPZlNlcnZlciBjb25uZWN0aW9uQ2xvc2VkKQogewotICAgIGNhbGxDb25uZWN0aW9uT25NYWlu
VGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQs
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBj
YWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50LCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0
SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZCk7CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblBy
b3h5Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdW
ZXJzaW9uKQpAQCAtNTQyLDYgKzU2MSwyMyBAQCB2b2lkIHJlbW92ZUl0ZW1zTWF0Y2hpbmdDdXJy
ZW50VGhyZWFkKEhhc2hNYXA8S2V5VHlwZSwgVmFsdWVUeXBlPiYgbWFwKQogICAgICAgICBtYXAu
cmVtb3ZlKGtleSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEtleVR5cGUsIHR5cGVuYW1lIFZh
bHVlVHlwZT4KK3ZvaWQgc2V0TWF0Y2hpbmdJdGVtc0NvbnRleHRTdXNwZW5kZWQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY3VycmVudENvbnRleHQsIEhhc2hNYXA8S2V5VHlwZSwgVmFsdWVUeXBl
PiYgbWFwLCBib29sIGlzQ29udGV4dFN1c3BlbmRlZCkKK3sKKyAgICBhdXRvJiBjdXJyZW50VGhy
ZWFkID0gVGhyZWFkOjpjdXJyZW50KCk7CisgICAgZm9yIChhdXRvJiBpdGVyYXRvciA6IG1hcCkg
eworICAgICAgICBpZiAoJml0ZXJhdG9yLnZhbHVlLT5vcmlnaW5UaHJlYWQoKSAhPSAmY3VycmVu
dFRocmVhZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8qIGNvbnRleHQg
PSBpdGVyYXRvci52YWx1ZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBpZiAo
IWNvbnRleHQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoY29udGV4dCA9
PSAmY3VycmVudENvbnRleHQpCisgICAgICAgICAgICBpdGVyYXRvci52YWx1ZS0+c2V0SXNDb250
ZXh0U3VzcGVuZGVkKGlzQ29udGV4dFN1c3BlbmRlZCk7CisgICAgfQorfQorCiB2b2lkIElEQkNv
bm5lY3Rpb25Qcm94eTo6Zm9yZ2V0QWN0aXZpdHlGb3JDdXJyZW50VGhyZWFkKCkKIHsKICAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKQEAgLTU2Niw2ICs2MDIsMTggQEAgdm9pZCBJREJDb25u
ZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2aXR5Rm9yQ3VycmVudFRocmVhZCgpCiAgICAgfQogfQog
Cit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6c2V0Q29udGV4dFN1c3BlbmRlZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjdXJyZW50Q29udGV4dCwgYm9vbCBpc0NvbnRleHRTdXNwZW5kZWQpCit7
CisgICAgeworICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX2RhdGFiYXNlQ29ubmVjdGlvbk1h
cExvY2spOworICAgICAgICBzZXRNYXRjaGluZ0l0ZW1zQ29udGV4dFN1c3BlbmRlZChjdXJyZW50
Q29udGV4dCwgbV9kYXRhYmFzZUNvbm5lY3Rpb25NYXAsIGlzQ29udGV4dFN1c3BlbmRlZCk7Cisg
ICAgfQorICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2sobV9vcGVuREJSZXF1ZXN0TWFw
TG9jayk7CisgICAgICAgIHNldE1hdGNoaW5nSXRlbXNDb250ZXh0U3VzcGVuZGVkKGN1cnJlbnRD
b250ZXh0LCBtX29wZW5EQlJlcXVlc3RNYXAsIGlzQ29udGV4dFN1c3BlbmRlZCk7CisgICAgfQor
fQorCiB9IC8vIG5hbWVzYXBjZSBJREJDbGllbnQKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Qcm94eS5oCmluZGV4IDkxZjkzYzQ2NzA1YmQ2ZjQ5NjUxNjU0NDc5YjY1
NDg5ZWZhMGQzMGYuLjkyN2M4MzY2YjA0M2VkMzAwNzNhMGYzN2ZhMzA1ZGM4ZDM2ZDRlNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblByb3h5LmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVuYW1lSW5kZXgoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdO
YW1lKTsKIAogICAgIHZvaWQgZmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKLSAgICB2b2lkIGRpZEZp
cmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
dm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgPSBJ
bmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyOjpObyk7CiAKICAgICB2
b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1Zl
cnNpb24pOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0
RGF0YSYpOwpAQCAtMTI0LDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcmdldEFjdGl2
ZU9wZXJhdGlvbnMoY29uc3QgVmVjdG9yPFJlZlB0cjxUcmFuc2FjdGlvbk9wZXJhdGlvbj4+Jik7
CiAgICAgdm9pZCBmb3JnZXRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQg
Zm9yZ2V0QWN0aXZpdHlGb3JDdXJyZW50VGhyZWFkKCk7CisgICAgdm9pZCBzZXRDb250ZXh0U3Vz
cGVuZGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGN1cnJlbnRDb250ZXh0LCBib29sIGlzQ29u
dGV4dFN1c3BlbmRlZCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb21wbGV0ZU9wZW5EQlJlcXVl
c3QoY29uc3QgSURCUmVzdWx0RGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cAppbmRleCBmYzBkOWIwNTQ0ZTgwNzM3YjBlNmQyYTYxMzc2ZDE2YzhkOTY3OTZiLi43NTcwNjE2
ZDdlODQ3ZWZlZTA1MTI0ZDkzYWExMGQxZWM5MTU2OGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcApAQCAtNDE1LDEzICs0MTUsMTMgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWQKICAgICBtX3Byb3h5LT5maXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCByZXF1ZXN0ZWRWZXJzaW9uKTsKIH0KIAot
dm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgY29ubmVjdGlv
bkNsb3NlZCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50Iik7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IAogICAgIGlmIChtX3NlcnZlckNvbm5lY3Rpb25Jc1ZhbGlkKQotICAgICAgICBtX2RlbGVnYXRl
LT5kaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkRmlyZVZlcnNpb25D
aGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmll
ciwgY29ubmVjdGlvbkNsb3NlZCk7CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRv
U2VydmVyLmgKaW5kZXggNDI1ZTQ1YWY3ZDkyYTBkOTg4ZmVkNjVjOTNjOTA5M2RiYjRjZWMyNC4u
OGFhZTA5NWI5Mjk5NmQ5ODAxMjc5OWVhMzI4OTNmNmVjMGMyYzlmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaApAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7Ci0gICAgdm9pZCBkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpOworICAgIHZv
aWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGlkU3RhcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaAppbmRleCBkYzhhOTliZjc1
MmUxN2E1ZmI3ZDMxYjNmZjQzMzFjNmI5ODE3NDE4Li45YThjMTJlMGI1YjU2MjE3Yjk3NzA2NTA1
MGFjZWRkYTI4MzIyMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVs
ZWdhdGUuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogCiBu
YW1lc3BhY2UgSW5kZXhlZERCIHsKIGVudW0gY2xhc3MgT2JqZWN0U3RvcmVPdmVyd3JpdGVNb2Rl
OworZW51bSBjbGFzcyBDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlciA6IGJvb2w7CiB9
CiAKIHN0cnVjdCBJREJLZXlSYW5nZURhdGE7CkBAIC04Myw3ICs4NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90IGRh
dGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJh
c2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29u
c3QgSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbmZpcm1EaWRDbG9z
ZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCmluZGV4IGE4ZTg1NjcwMDg3ODgxNzZlZmVhOTllNTY0Y2E1ZDBiZWRlOTNjM2Uu
LmU2MWRiOGM5NDI4ZDk4NGRhNjQ2OTZlN2M4NDI3ODc0MjY5YzI3ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBA
IC00MzAsMTIgKzQzMCwxMiBAQCB2b2lkIElEQlNlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5l
ZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLAogICAgIGRhdGFiYXNl
Q29ubmVjdGlvbi0+Y29ubmVjdGlvbkNsb3NlZEZyb21DbGllbnQoKTsKIH0KIAotdm9pZCBJREJT
ZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRp
ZmllcikKK3ZvaWQgSURCU2VydmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxm
T2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3NlZCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2Vy
dmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50Iik7CiAKICAgICBpZiAoYXV0byBkYXRhYmFz
ZUNvbm5lY3Rpb24gPSBtX2RhdGFiYXNlQ29ubmVjdGlvbnMuZ2V0KGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIpKQotICAgICAgICBkYXRhYmFzZUNvbm5lY3Rpb24tPmRpZEZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQocmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICBkYXRhYmFzZUNvbm5lY3Rp
b24tPmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQocmVxdWVzdElkZW50aWZpZXIsIGNvbm5lY3Rp
b25DbG9zZWQpOwogfQogCiB2b2lkIElEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggMDc1NWVkOWY5Yzcw
ODcxNzg5YmQ5ODE4YmM2YzVjZThiNmM1OWE0OS4uZDNhMjIzZDkzMmQ5MTU5ZDU0NjY2MjlmNzE3
ZWZmYjU3NzQxM2NhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25QZW5kaW5nQ2xvc2UodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
YXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
Zmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVk
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
cik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgb3BlbkRCUmVxdWVzdENh
bmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggNTI1YWRlOWNjMDBlMGFm
MjFhZmE5M2I0Y2YzZjMwYzBkODg4YjM4MC4uZmRlZGE2MzVlYjdkYzA1ZjdmZjdlMDU4MmNjNDky
ZjBjMmQ4MzJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC03NTIsNyArNzUyLDI5
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om5vdGlmeUN1cnJlbnRSZXF1ZXN0Q29ubmVjdGlv
bkNsb3NlZE9yRmlyZWRWZXJzaW9uQ2hhbmdlCiAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+
bWF5YmVOb3RpZnlSZXF1ZXN0QmxvY2tlZChtX2RhdGFiYXNlSW5mby0+dmVyc2lvbigpKTsKIH0K
IAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVh
clRyYW5zYWN0aW9uc09uQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCit7CisgICAgRGVxdWU8UmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24+PiBwZW5kaW5nVHJhbnNhY3Rpb25zOworICAgIHdoaWxlICghbV9wZW5kaW5nVHJhbnNhY3Rp
b25zLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wZW5kaW5nVHJh
bnNhY3Rpb25zLnRha2VGaXJzdCgpOworICAgICAgICBpZiAoJnRyYW5zYWN0aW9uLT5kYXRhYmFz
ZUNvbm5lY3Rpb24oKSAhPSAmY29ubmVjdGlvbikKKyAgICAgICAgICAgIHBlbmRpbmdUcmFuc2Fj
dGlvbnMuYXBwZW5kKFdURk1vdmUodHJhbnNhY3Rpb24pKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgY29ubmVjdGlvbi5kZWxldGVUcmFuc2FjdGlvbigqdHJhbnNhY3Rpb24pOworICAgIH0K
KyAgICBpZiAoIXBlbmRpbmdUcmFuc2FjdGlvbnMuaXNFbXB0eSgpKQorICAgICAgICBtX3BlbmRp
bmdUcmFuc2FjdGlvbnMuc3dhcChwZW5kaW5nVHJhbnNhY3Rpb25zKTsKKworICAgIERlcXVlPFJl
ZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb25zVG9BYm9ydDsK
KyAgICBmb3IgKGF1dG8mIHRyYW5zYWN0aW9uIDogbV9pblByb2dyZXNzVHJhbnNhY3Rpb25zLnZh
bHVlcygpKSB7CisgICAgICAgIGlmICgmdHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigp
ID09ICZjb25uZWN0aW9uKQorICAgICAgICAgICAgdHJhbnNhY3Rpb25zVG9BYm9ydC5hcHBlbmQo
dHJhbnNhY3Rpb24pOworICAgIH0KKyAgICBmb3IgKGF1dG8mIHRyYW5zYWN0aW9uIDogdHJhbnNh
Y3Rpb25zVG9BYm9ydCkKKyAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0V2l0aG91dENhbGxiYWNr
KCk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBJbmRleGVkREI6OkNvbm5lY3Rpb25D
bG9zZWRPbkJlaGFsZk9mU2VydmVyIGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQog
ewogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRmlyZVZlcnNpb25D
aGFuZ2VFdmVudCIpOwogCkBAIC03NjEsNiArNzgzLDEzIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
JiBjCiAKICAgICBBU1NFUlRfVU5VU0VEKHJlcXVlc3RJZGVudGlmaWVyLCBtX2N1cnJlbnRPcGVu
REJSZXF1ZXN0LT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVyKCkgPT0gcmVxdWVzdElk
ZW50aWZpZXIpOwogCisgICAgaWYgKGNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyID09
IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXI6OlllcykgeworICAg
ICAgICBpZiAobV9vcGVuRGF0YWJhc2VDb25uZWN0aW9ucy5jb250YWlucygmY29ubmVjdGlvbikp
IHsKKyAgICAgICAgICAgIGNsZWFyVHJhbnNhY3Rpb25zT25Db25uZWN0aW9uKGNvbm5lY3Rpb24p
OworICAgICAgICAgICAgbV9vcGVuRGF0YWJhc2VDb25uZWN0aW9ucy5yZW1vdmUoJmNvbm5lY3Rp
b24pOworICAgICAgICB9CisgICAgfQorCiAgICAgbm90aWZ5Q3VycmVudFJlcXVlc3RDb25uZWN0
aW9uQ2xvc2VkT3JGaXJlZFZlcnNpb25DaGFuZ2VFdmVudChjb25uZWN0aW9uLmlkZW50aWZpZXIo
KSk7CiB9CiAKQEAgLTE4NDUsMjQgKzE4NzQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpj
b25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mCiAg
ICAgICAgIG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAg
fQogCi0gICAgRGVxdWU8UmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiBwZW5k
aW5nVHJhbnNhY3Rpb25zOwotICAgIHdoaWxlICghbV9wZW5kaW5nVHJhbnNhY3Rpb25zLmlzRW1w
dHkoKSkgewotICAgICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wZW5kaW5nVHJhbnNhY3Rpb25z
LnRha2VGaXJzdCgpOwotICAgICAgICBpZiAoJnRyYW5zYWN0aW9uLT5kYXRhYmFzZUNvbm5lY3Rp
b24oKSAhPSAmY29ubmVjdGlvbikKLSAgICAgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbnMuYXBw
ZW5kKFdURk1vdmUodHJhbnNhY3Rpb24pKTsKLSAgICB9Ci0KLSAgICBpZiAoIXBlbmRpbmdUcmFu
c2FjdGlvbnMuaXNFbXB0eSgpKQotICAgICAgICBtX3BlbmRpbmdUcmFuc2FjdGlvbnMuc3dhcChw
ZW5kaW5nVHJhbnNhY3Rpb25zKTsKLQotICAgIERlcXVlPFJlZlB0cjxVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uPj4gdHJhbnNhY3Rpb25zVG9BYm9ydDsKLSAgICBmb3IgKGF1dG8mIHRyYW5z
YWN0aW9uIDogbV9pblByb2dyZXNzVHJhbnNhY3Rpb25zLnZhbHVlcygpKSB7Ci0gICAgICAgIGlm
ICgmdHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKQotICAg
ICAgICAgICAgdHJhbnNhY3Rpb25zVG9BYm9ydC5hcHBlbmQodHJhbnNhY3Rpb24pOwotICAgIH0K
LQotICAgIGZvciAoYXV0byYgdHJhbnNhY3Rpb24gOiB0cmFuc2FjdGlvbnNUb0Fib3J0KQotICAg
ICAgICB0cmFuc2FjdGlvbi0+YWJvcnRXaXRob3V0Q2FsbGJhY2soKTsKKyAgICBjbGVhclRyYW5z
YWN0aW9uc09uQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKIAogICAgIGlmIChtX2N1cnJlbnRPcGVu
REJSZXF1ZXN0KQogICAgICAgICBub3RpZnlDdXJyZW50UmVxdWVzdENvbm5lY3Rpb25DbG9zZWRP
ckZpcmVkVmVyc2lvbkNoYW5nZUV2ZW50KGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmgKaW5kZXggY2FjMjcwODExN2FjMDg0ZDQyMDhkNzk3YWM3OTc5ZmY5YmRj
MjA0MS4uZWMzZmMwYzczZWEzMGUyNGU3YTBjZWU1ODg5ZjM5NjFmMGNjNGMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFu
c2FjdGlvbkRlc3Ryb3llZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJik7CiAgICAgdm9p
ZCBjb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIGNvbmZpcm1Db25uZWN0aW9uQ2xvc2VkT25TZXJ2ZXIoVW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uJik7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVu
aXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xv
c2VGcm9tU2VydmVyKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogCkBAIC0yNTAsNiAr
MjUwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0U3BhY2VJbmNyZWFzZVRhc2sodWludDY0
X3QgaWRlbnRpZmllciwgdWludDY0X3QgdGFza1NpemUpOwogICAgIHZvaWQgZmluaXNoU3BhY2VJ
bmNyZWFzZVRhc2sodWludDY0X3QgaWRlbnRpZmllciwgYm9vbCBpc1Rhc2tTdWNjZXNzZnVsKTsK
IAorICAgIHZvaWQgY2xlYXJUcmFuc2FjdGlvbnNPbkNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uJik7CisKICAgICBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVVbmlxdWVDYWxs
YmFja0lkZW50aWZpZXIoKTsKIAogICAgIFJlZjxJREJTZXJ2ZXI+IG1fc2VydmVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAppbmRleCA3ZmRkZjBmYTM0MDA2
NzE2NDMxMzUwN2MwODE2ZWY3ZTIwY2UwZWY4Li5mZTkxMGZhZjk4NDlkYzJiMDQ3ZWJhOTdhZTU2
NjU3OWZkMTNkMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
LmNwcApAQCAtMTA3LDEzICsxMDcsMTMgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b246OmNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoKQogICAgICAgICBtX2RhdGFiYXNlLT5jb25m
aXJtRGlkQ2xvc2VGcm9tU2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb246OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VDb25u
ZWN0aW9uOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVo
YWxmT2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3NlZCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50IC0gJXMg
LSAlIiBQUkl1NjQsIG1fb3BlblJlcXVlc3RJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBpZGVudGlmaWVyKCkpOwogCiAgICAgQVNTRVJUKG1fZGF0YWJhc2UpOwogICAg
IGlmIChtX2RhdGFiYXNlKQotICAgICAgICBtX2RhdGFiYXNlLT5kaWRGaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KCp0aGlzLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgIG1fZGF0YWJhc2UtPmRp
ZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoKnRoaXMsIHJlcXVlc3RJZGVudGlmaWVyLCBjb25uZWN0
aW9uQ2xvc2VkKTsKIH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmRpZEZp
bmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b24uaAppbmRleCBjY2E0Zjc2MTE4MzVjY2U5OTg5ZTNmOTIxZmVhZTBjOWFiMjExOTEwLi43ZjM5
ODY0Nzg4MjhhOTc2MjNhZTE5ODZhNjYzYjVjZGUwNWVhN2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZERl
bGV0ZUluZGV4KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZFJlbmFtZUluZGV4
KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKLSAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
dm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIsIEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxm
T2ZTZXJ2ZXIpOwogICAgIHZvaWQgZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICB2b2lk
IGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNw
cAppbmRleCBhYTQ4MjNjOTM0ZjYxMDE4N2U3Y2Y0ZDgxZDQwZWVmMjgyNzE1ZTM0Li45MTExZjU5
NzhlM2I4MDYxODU1YzIwZjVhZmFhNWI2NTVkY2NlYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2Vy
dmVyLmNwcApAQCAtNDI1LDEwICs0MjUsMTAgQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmFi
b3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWQKICAg
ICB9KTsKIH0KIAotdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdl
RXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcikKK3ZvaWQgSW5Qcm9jZXNzSURCU2Vy
dmVyOjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgY29u
bmVjdGlvbkNsb3NlZCkKIHsKLSAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgcmVxdWVzdElkZW50aWZpZXJdIHsKLSAgICAgICAgbV9zZXJ2ZXItPmRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgcmVxdWVzdElkZW50
aWZpZXIpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1
ZXN0SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZF0geworICAgICAgICBtX3NlcnZlci0+ZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXF1
ZXN0SWRlbnRpZmllciwgY29ubmVjdGlvbkNsb3NlZCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJT
ZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nl
c3NJREJTZXJ2ZXIuaAppbmRleCBjYWRjODEyYTM5OWM2OThmOTM3ZTVjOTVjMDc3ZmMwYTFjMTdi
NmYwLi5jN2I1MzIxY2EzNjFjNzQxZTUyZDQ1ZWMxOGE4MzE4ZmFkMDgyOWMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2Vy
dmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJv
Y2Vzc0lEQlNlcnZlci5oCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRhdGFi
YXNlQ29ubmVjdGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGFib3J0T3Bl
bkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZpbmFs
OwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgSW5kZXhlZERCOjpDb25uZWN0aW9uQ2xv
c2VkT25CZWhhbGZPZlNlcnZlciA9IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxm
T2ZTZXJ2ZXI6Ok5vKSBmaW5hbDsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29u
c3QgSURCUmVxdWVzdERhdGEmKSBmaW5hbDsKICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21T
ZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgZmluYWw7CiAgICAg
dm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZy
YW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2
NF90IGNhbGxiYWNrSUQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDllY2Ni
OGQzYzAyMDExYzZlYzdlODFiZmVjNzE3ODgzMGMyY2M5Mi4uMWUwN2M0OTM5ZGZkZGU0NGRlMzE1
YmMzNTUyNTNkMjAzNDBmOGM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MTYxLDEw
ICs1MTYxLDE5IEBAIHZvaWQgRG9jdW1lbnQ6OnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNr
Rm9yd2FyZENhY2hlU3RhdGUgc3RhdGUpCiAgICAgICAgIG1fc3R5bGVSZWNhbGNUaW1lci5zdG9w
KCk7CiAKICAgICAgICAgY2xlYXJTaGFyZWRPYmplY3RQb29sKCk7CisKKyNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKKyAgICAgICAgaWYgKG1faWRiQ29ubmVjdGlvblByb3h5KQorICAgICAg
ICAgICAgbV9pZGJDb25uZWN0aW9uUHJveHktPnNldENvbnRleHRTdXNwZW5kZWQoKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgdHJ1ZSk7CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKSkKICAgICAgICAgICAgIHNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKKyNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKKyAgICAgICAgaWYgKG1faWRiQ29ubmVjdGlvblByb3h5KQorICAgICAg
ICAgICAgbV9pZGJDb25uZWN0aW9uUHJveHktPnNldENvbnRleHRTdXNwZW5kZWQoKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgZmFsc2UpOworI2VuZGlmCiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQWJvdXRUb0VudGVyQmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDU4YmU1MDYwOWU0
MmZmODAzZmMzYzY3M2RiNjhhMGQ1ZTdmYzkzYTkuLmFhZDk2ZGFlN2VmOTQ0NDlkNGZjMTNiNzM5
YWNlMTNkNmU5ZWQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuY3BwCkBAIC0yMTAsNiArMjEwLDIyIEBAIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnN0
b3BJbmRleGVkRGF0YWJhc2UoKQogI2VuZGlmCiB9CiAKK3ZvaWQgV29ya2VyR2xvYmFsU2NvcGU6
OnN1c3BlbmQoKQoreworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCisg
ICAgaWYgKG1fY29ubmVjdGlvblByb3h5KQorICAgICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+c2V0
Q29udGV4dFN1c3BlbmRlZCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0cnVlKTsKKyNlbmRp
ZgorfQorCit2b2lkIFdvcmtlckdsb2JhbFNjb3BlOjpyZXN1bWUoKQoreworI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCisgICAgaWYgKG1fY29ubmVjdGlvblByb3h5KQor
ICAgICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+c2V0Q29udGV4dFN1c3BlbmRlZCgqc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBmYWxzZSk7CisjZW5kaWYKK30KKwogI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogCiBXb3JrZXJMb2NhdGlvbiYgV29ya2VyR2xvYmFsU2NvcGU6Omxv
Y2F0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aAppbmRleCAzMDQ0NzFhYzI4ZDM4MDg3NGM1YWY3Y2I3NDQ1NWU1ZGFkNWI4N2IzLi4wZDEwMmFi
ZDZlZWRiZDU2NWJjNmY5N2FjY2RmMDFlMzBlNGFmMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC03NSw2ICs3NSw4IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5KiBpZGJDb25uZWN0aW9uUHJveHkoKSBmaW5hbDsKKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAg
ICB2b2lkIHJlc3VtZSgpOwogI2VuZGlmCiAKICAgICBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKaW5kZXggMjc1YjVlZWEyNzY5Y2M4ZmY4YTY5MDk5YWZhMzBhYjdkMzEyNTRl
Yy4uZjhlMzZkZTI4NDBhOWNjYzZlZTlkOWVmNzA4ZWNjYzkxOTY4YTY2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMjY5LDcgKzI2OSwxMyBAQCB2b2lkIFdv
cmtlclRocmVhZDo6c3VzcGVuZCgpCiB7CiAgICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7CiAgICAg
cnVuTG9vcCgpLnBvc3RUYXNrKFsmXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgICAg
ICBpZiAobV93b3JrZXJHbG9iYWxTY29wZSkKKyAgICAgICAgICAgIG1fd29ya2VyR2xvYmFsU2Nv
cGUtPnN1c3BlbmQoKTsKKwogICAgICAgICBtX3N1c3BlbnNpb25TZW1hcGhvcmUud2FpdCgpOwor
CisgICAgICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3BlKQorICAgICAgICAgICAgbV93b3JrZXJH
bG9iYWxTY29wZS0+cmVzdW1lKCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuY3BwCmluZGV4IDBjODEyZGYzMmY3ODk1ZWQ2ZjU0YjAyNTJjOWRiNmJlYmQw
NDY5MjQuLjc5MWM1ZGY0NDUwMTEzMDhmMzU3ODZhZTYzMzllOWE0MGI2MTE3M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMzI3LDkgKzMyNyw5IEBAIHZvaWQg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjCiAgICAgaWRiU2VydmVyKCkuYWJvcnRPcGVuQW5kVXBncmFkZU5l
ZWRlZChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIp
OwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRmlyZVZlcnNpb25DaGFu
Z2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyIGNvbm5lY3Rpb25DbG9zZWQpCiB7Ci0gICAgaWRiU2VydmVyKCkuZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCB0cmFuc2FjdGlvbklk
ZW50aWZpZXIpOworICAgIGlkYlNlcnZlcigpLmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25uZWN0
aW9uQ2xvc2VkKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om9wZW5EQlJl
cXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCBkZTY5NjMyMWVjNTlmNDU2ZjNjZWFjYzEz
NjYyNThiNmU4MGY1NTk0Li42YTY3NTdkOWZhMzM4OWQyZTY1NDc3MTdjNWQyZWRiM2IyODczZjFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtOTksNyArOTksNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0
aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZv
aWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllcik7Ci0gICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBXZWJD
b3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKICAgICB2
b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEm
KTsKICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5tZXNzYWdlcy5pbgppbmRleCA4MDNiOTZkMjlhZmM3OWMyOTMxYzhhMTFlZmQ0NTNj
NWFmMGYyYTRmLi5mNjBjMjA4NmY5YTVlYmU5N2VmNmM5MTU1NjJkMDNkZjhlNGI3MDU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCkBAIC00
Nyw3ICs0Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCB7CiAgICAg
RGF0YWJhc2VDb25uZWN0aW9uUGVuZGluZ0Nsb3NlKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIpOwogICAgIERhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBBYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVk
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwotICAgIERpZEZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBEaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29y
ZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlciBjb25uZWN0aW9u
Q2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgT3BlbkRCUmVxdWVzdENhbmNlbGxlZChXZWJD
b3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSk7CiAgICAgQ29uZmlybURpZENsb3NlRnJv
bVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggMzNlZWEyNGM4
MWM1ODliMTY3YWUyY2E3MWNjZDMyZTRmZDRhYWY1ZC4uOGI1ZjFmMTI3N2UxYTk1ZDFiMTk5YTlh
MGU0NmM1MzRmZDZlODY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIuY3BwCkBAIC0xOTgsOSArMTk4LDkgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWMK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkFib3J0T3BlbkFu
ZFVwZ3JhZGVOZWVkZWQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpCit2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRP
bkJlaGFsZk9mU2VydmVyIGNvbm5lY3Rpb25DbG9zZWQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpEaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyKSk7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpEaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBjb25u
ZWN0aW9uQ2xvc2VkKSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpvcGVu
REJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggYjI1MjU5ZjIy
NTIzNDliMTg2MWJlMTcxZTVmY2FlNGZhNDMwNTBlNy4uOTU3MGM0MDUyYjYzNWI4ZjkwNWUzYTY5
MGNjYjQ0N2UyZjRjZTYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRhdGFiYXNlQ29u
bmVjdGlvblBlbmRpbmdDbG9zZSh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
KSBmaW5hbDsKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGFib3J0T3BlbkFuZFVw
Z3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZp
bmFsOwotICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hh
bmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikgZmluYWw7
CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVl
c3REYXRhJikgZmluYWw7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDgxMTdiNWMwYzdiNGNjZGIz
YzIzYWViOTk1YmM4OTI2YzBlZjcwMC4uYzcxYzA0YTI5YjgzZjY2YWNmMjU2YTdiMWFjOWE0ZjFm
MzU5MGYwYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTExLTA1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNTA3NTQpOiB3ZWIgcGFnZSB1c2luZyBJ
REJJbmRleCBkb2Vzbid0IGxvYWQgb2NjYXNpb25hbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBC
cmFkeSBFaWRzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0luZGV4ZWREQkluUGFnZUNhY2hlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUubW06IEFk
ZGVkLgorICAgICAgICAoLVtJbmRleGVkREJJblBhZ2VDYWNoZU1lc3NhZ2VIYW5kbGVyIHVzZXJD
b250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKyAgICAgICAgKFRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
Tm90SW5QYWdlQ2FjaGUuaHRtbDogQWRkZWQuCisKIDIwMTktMTEtMDQgIEFuZHkgRXN0ZXMgIDxh
ZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTE2MjMpOiBXaGVuIGRv
d25sb2FkaW5nIGEgUXVpY2tMb29rIGZpbGUsIHRoZSB3ZWIgdmlldyBuYXZpZ2F0ZXMgdG8gYSAi
VGhlIFVSTCBjYW4ndCBiZSBzaG93biIgZXJyb3IgcGFnZSBpbnN0ZWFkIG9mIHN0YXlpbmcgb24g
dGhlIGN1cnJlbnQgcGFnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZTQ5YjVmZTUzODkw
YmJmZTExYWIyN2JlNTlmN2JmOTg3NjJhZGNlLi4wOWM3MWQxYjY4NzgwYWRhYTA3MjUyZmJiNTk3
YmJkMTgxNTFkZmM0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzI1LDYgKzcyNSw5IEBA
CiAJCTkzNjhBMjVGMjI5RUZCNDcwMEE4MjlDQSAvKiBsb2NhbC1zdG9yYWdlLXByb2Nlc3Mtc3Vz
cGVuZHMtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNjhBMjVDMjI5RUZCM0EwMEE4MjlDQSAvKiBsb2NhbC1zdG9yYWdlLXByb2Nl
c3Mtc3VzcGVuZHMtMi5odG1sICovOyB9OwogCQk5MzZGNzI4MDFDRDdEOUVDMDA2OEEwRkIgLyog
bGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNkY3MjdFMUNEN0Q5RDAwMDY4QTBGQiAvKiBsYXJn
ZS12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CiAJCTkzNkY3MjgxMUNEN0Q5RUMwMDY4QTBG
QiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzZGNzI3RjFDRDdEOUQwMDA2OEEwRkIgLyog
bGFyZ2UtdmlkZW8td2l0aC1hdWRpby5tcDQgKi87IH07CisJCTkzOTlCQTA0MjM3MTExNDAwMDgz
OTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTlCQTAxMjM3MTEwQUUwMDgzOTJCRiAvKiBJbmRleGVk
REJJblBhZ2VDYWNoZS5tbSAqLzsgfTsKKwkJOTM5OUJBMDUyMzcxMTE0RjAwODM5MkJGIC8qIElu
ZGV4ZWREQkluUGFnZUNhY2hlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5OUJBMDIyMzcxMTBCRjAwODM5MkJGIC8qIEluZGV4ZWRE
QkluUGFnZUNhY2hlLmh0bWwgKi87IH07CisJCTkzOTlCQTA2MjM3MTExNEYwMDgzOTJCRiAvKiBJ
bmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTlCQTAzMjM3MTEwQkYwMDgzOTJCRiAvKiBJbmRl
eGVkREJOb3RJblBhZ2VDYWNoZS5odG1sICovOyB9OwogCQk5M0FGNEVDRTE1MDZGMDY0MDA3RkQ1
N0UgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FGNEVDRDE1
MDZGMDY0MDA3RkQ1N0UgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2Vz
X0J1bmRsZS5jcHAgKi87IH07CiAJCTkzQUY0RUQxMTUwNkYxMzAwMDdGRDU3RSAvKiBsb3RzLW9m
LWltYWdlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzQUY0RUNGMTUwNkYxMjMwMDdGRDU3RSAvKiBsb3RzLW9mLWltYWdlcy5odG1s
ICovOyB9OwogCQk5M0I2MjA1NDIzNEVBNjJDMDBENDlCOTcgLyogU3RvcmFnZVF1b3RhTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0I2
MjA1MzIzNEVBMzJCMDBENDlCOTcgLyogU3RvcmFnZVF1b3RhTWFuYWdlci5jcHAgKi87IH07CkBA
IC0xMjg4LDkgKzEyOTEsMTEgQEAKIAkJCQk1MUE1ODc4NTFEMjczOUUzMDA0QkE5QUYgLyogSW5k
ZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJQ0FCMEZGNTIyMjMzMjQwNzAwNkNBNUIwIC8qIEluZGV4ZWREQkZpbGVOYW1lLTEuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDQUIwRkY1MzIyMzMyNDA3MDA2Q0E1QjAgLyogSW5k
ZXhlZERCRmlsZU5hbWUtMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTkzOTlCQTA1
MjM3MTExNEYwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTUxQkNFRTRFMUM4NEY1M0IwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0
aVByb2Nlc3MtMS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxQkNFRTRGMUM4NEY1
M0IwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTUxQTU4NzdEMUQxQjQ5Q0QwMDRCQTlBRiAvKiBJbmRleGVkREJNdWx0aVBy
b2Nlc3MtMy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTkzOTlCQTA2MjM3MTExNEYw
MDgzOTJCRiAvKiBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCTUxQjFFRTk2MUM4MEZBRUYwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5j
ZS0xLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFCMUVFOTcxQzgwRkFFRjAwNjRG
Qjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1NzU5OUUyNzFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0y
MTA4LDYgKzIxMTMsOSBAQAogCQk5MzY4QTI1RDIyOUVGQjNBMDBBODI5Q0EgLyogbG9jYWwtc3Rv
cmFnZS1wcm9jZXNzLXN1c3BlbmRzLTEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJsb2NhbC1zdG9yYWdlLXByb2Nlc3Mtc3VzcGVuZHMtMS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM2RjcyN0UxQ0Q3RDlEMDAwNjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby13
aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzZGNzI3RjFD
RDdEOUQwMDA2OEEwRkIgLyogbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5tcDQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gImxhcmdl
LXZpZGVvLXdpdGgtYXVkaW8ubXA0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5
OUJBMDEyMzcxMTBBRTAwODM5MkJGIC8qIEluZGV4ZWREQkluUGFnZUNhY2hlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5kZXhlZERCSW5QYWdlQ2FjaGUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTlCQTAyMjM3MTEwQkYwMDgzOTJCRiAv
KiBJbmRleGVkREJJblBhZ2VDYWNoZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
SW5kZXhlZERCSW5QYWdlQ2FjaGUuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM5OUJBMDMyMzcxMTBCRjAwODM5MkJGIC8qIEluZGV4ZWREQk5vdEluUGFnZUNhY2hlLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJOb3RJblBhZ2VDYWNoZS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCQTkxNjE0MTAzNDEyMDAxQTAxQkQg
LyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBEZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM5QkZFMzkxOEU1NTQ4OTAwODgzMjc1IC8qIFN0cmluZ1RydW5jYXRv
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0cmluZ1RydW5j
YXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMjU4OTgxRjkyRkYxNTAw
M0U1MTBDIC8qIFRleHRDb2RlYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg1NSw2ICsyODYzLDcgQEAKIAkJCQk1
MTEwRkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5tbSAqLywKIAkJ
CQk1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2ls
bC5tbSAqLywKIAkJCQlDQUIwRkY1NDIyMzMyQzNBMDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5h
bWUubW0gKi8sCisJCQkJOTM5OUJBMDEyMzcxMTBBRTAwODM5MkJGIC8qIEluZGV4ZWREQkluUGFn
ZUNhY2hlLm1tICovLAogCQkJCTUxQkNFRTQ5MUM4NEY0QUYwMDQyQzgyRSAvKiBJbmRleGVkREJN
dWx0aVByb2Nlc3MubW0gKi8sCiAJCQkJNTFCMUVFOEQxQzgwRjU4ODAwNjRGQjk4IC8qIEluZGV4
ZWREQlBlcnNpc3RlbmNlLm1tICovLAogCQkJCTU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJ
bmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gKi8sCkBAIC0z
MzIyLDkgKzMzMzEsMTEgQEAKIAkJCQk1MUE1ODc4MjFEMjcyRUI1MDA0QkE5QUYgLyogSW5kZXhl
ZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgKi8sCiAJCQkJQ0FCMEZGNTEyMjMzMjNGNjAw
NkNBNUIwIC8qIEluZGV4ZWREQkZpbGVOYW1lLTEuaHRtbCAqLywKIAkJCQlDQUIwRkY1MDIyMzMy
M0Y2MDA2Q0E1QjAgLyogSW5kZXhlZERCRmlsZU5hbWUtMi5odG1sICovLAorCQkJCTkzOTlCQTAy
MjM3MTEwQkYwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5odG1sICovLAogCQkJCTUx
QkNFRTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sICov
LAogCQkJCTUxQkNFRTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3Mt
Mi5odG1sICovLAogCQkJCTUxQTU4NzdDMUQxQjNEOEQwMDRCQTlBRiAvKiBJbmRleGVkREJNdWx0
aVByb2Nlc3MtMy5odG1sICovLAorCQkJCTkzOTlCQTAzMjM3MTEwQkYwMDgzOTJCRiAvKiBJbmRl
eGVkREJOb3RJblBhZ2VDYWNoZS5odG1sICovLAogCQkJCTUxQjFFRTk0MUM4MEZBREQwMDY0RkI5
OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwgKi8sCiAJCQkJNTFCMUVFOTUxQzgwRkFE
RDAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCAqLywKIAkJCQk1NzU5OUUy
NDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMgKi8sCkBAIC00NjMxLDYgKzQ2NDIsNyBAQAogCQkJCTUxMTBGQ0ZB
MUUwMUNEQjgwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFBNTg3ODYxRDI3M0FBOTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vz
c0tpbGwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDQUIwRkY1NTIyMzMyQzU3MDA2Q0E1QjAgLyog
SW5kZXhlZERCRmlsZU5hbWUubW0gaW4gU291cmNlcyAqLywKKwkJCQk5Mzk5QkEwNDIzNzExMTQw
MDA4MzkyQkYgLyogSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
QzgzRTBCRTFEMEE2NTEzMDBGRUJDRjMgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0UwQkYxRDBBNjUyMjAwRkVCQ0YzIC8qIEluZGV4ZWREQlBlcnNp
c3RlbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhDIC8q
IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9JbmRleGVkREJJblBhZ2VDYWNoZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbmRleGVkREJJblBhZ2VDYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzNzgyNTc4
NmE0YzU5ZTIzNmFkNDc4Yjk1MDA3MmExZGM5YmYxOWQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkluUGFnZUNhY2hlLmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgorCit2YXIgZGI7
Cit2YXIgb3BlbkVycm9yRmlyZWQgPSBmYWxzZTsKK3ZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4
ZWREQi5vcGVuKCJUZXN0SW5kZXhlZERCIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9IChldmVudCkg
PT4geworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkYi5vbmNsb3NlID0gKGV2
ZW50KSA9PiB7CisgICAgICAgIGlmIChvcGVuRXJyb3JGaXJlZCkgeworICAgICAgICAgICAgdmFy
IHRoaXJkT3BlblJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIlRlc3RJbmRleGVkREIi
KTsKKyAgICAgICAgICAgIHRoaXJkT3BlblJlcXVlc3Qub25zdWNjZXNzID0gKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoIkZpcnN0IERhdGFiYXNlIENvbm5lY3Rpb24gQ2xvc2VkLCBTZWNvbmQg
RGF0YWJhc2UgQ29ubmVjdGlvbiBOb3QgRmFpbGVkLCBUaGlyZCBEYXRhYmFzZSBDb25uZWN0aW9u
IE9wZW5lZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcmRPcGVuUmVxdWVzdC5v
bmJsb2NrID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlRoaXJkIERhdGFiYXNlIENvbm5l
Y3Rpb24gQmxvY2tlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcmRPcGVuUmVx
dWVzdC5vbmVycm9yID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlRoaXJkIERhdGFiYXNl
IENvbm5lY3Rpb24gRmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgiU2Vjb25kIERhdGFiYXNlIENvbm5lY3Rpb24gTm90IEZhaWxlZCIpOworICAgICAg
ICB9CisgICAgfQorCisgICAgdmFyIHNlY29uZE9wZW5SZXF1ZXN0ID0gd2luZG93LmluZGV4ZWRE
Qi5vcGVuKCJUZXN0SW5kZXhlZERCIiwgZGIudmVyc2lvbiArIDEpOworICAgIHNlY29uZE9wZW5S
ZXF1ZXN0Lm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKKyAgICAgICAgb3BlbkVycm9yRmlyZWQgPSB0
cnVlOworICAgIH0KKworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJGaXJzdCBEYXRhYmFzZSBDb25uZWN0aW9uIE9wZW5lZCIpOworfQor
cmVxdWVzdC5vbmVycm9yID0gKGV2ZW50KSA9PiB7CisgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIkZpcnN0IERhdGFiYXNlIENvbm5lY3Rp
b24gRmFpbGVkIik7Cit9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJJblBhZ2VDYWNoZS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCSW5QYWdlQ2FjaGUubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjRhOTgzOGMzMzYzZTA3YjQzMThkMWY3MmEzNGNhNTQ4OThhMDRkNAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhl
ZERCSW5QYWdlQ2FjaGUubW0KQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dC5oIgorCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPFdlYktp
dC9fV0tVc2VyU3R5bGVTaGVldC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRpYyBi
b29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKK3N0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNz
YWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKKworQGludGVyZmFjZSBJbmRleGVkREJJblBhZ2VDYWNo
ZU1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBJbmRleGVkREJJblBhZ2VDYWNoZU1lc3NhZ2VIYW5kbGVyCisK
Ky0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAq
KXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRN
ZXNzYWdlICopbWVzc2FnZQoreworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7Cisg
ICAgbGFzdFNjcmlwdE1lc3NhZ2UgPSBtZXNzYWdlOworfQorCitAZW5kCisKK1RFU1QoSW5kZXhl
ZERCLCBJbmRleGVkREJJblBhZ2VDYWNoZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbSW5kZXhlZERCSW5QYWdlQ2FjaGVNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0g
YWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIi
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CisKKyAgICAvLyBMb2FkIHBhZ2UgdGhhdCBob2xkcyBvcGVuIGRhdGFi
YXNlIGNvbm5lY3Rpb24uCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
SW5kZXhlZERCSW5QYWdlQ2FjaGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKKworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBSZXRhaW5Q
dHI8TlNTdHJpbmc+IHN0cmluZzEgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9k
eV07CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiRmlyc3QgRGF0YWJhc2UgQ29ubmVjdGlvbiBPcGVu
ZWQiLCBzdHJpbmcxLmdldCgpKTsKKworICAgIC8vIExvYWQgYW5vdGhlciBwYWdlIHRoYXQgZGVs
ZXRlcyBkYXRhYmFzZS4KKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QyID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
SW5kZXhlZERCTm90SW5QYWdlQ2FjaGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0Ml07CisKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgUmV0
YWluUHRyPE5TU3RyaW5nPiBzdHJpbmcyID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdl
IGJvZHldOworICAgIEVYUEVDVF9XS19TVFJFUShAIkRhdGFiYXNlIERlbGV0ZWQiLCBzdHJpbmcy
LmdldCgpKTsKKworICAgIFt3ZWJWaWV3IGdvQmFja107CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOworICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nMyA9IChOU1N0cmluZyAq
KVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJGaXJzdCBE
YXRhYmFzZSBDb25uZWN0aW9uIENsb3NlZCwgU2Vjb25kIERhdGFiYXNlIENvbm5lY3Rpb24gTm90
IEZhaWxlZCwgVGhpcmQgRGF0YWJhc2UgQ29ubmVjdGlvbiBPcGVuZWQiLCBzdHJpbmczLmdldCgp
KTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SW5kZXhlZERCTm90SW5QYWdlQ2FjaGUuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvSW5kZXhlZERCTm90SW5QYWdlQ2FjaGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NmFl
Y2Q4YmQzZDk3NDViNzUyYTg1NDFjMTRlNzRlODhmMjEzOWUwCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJOb3RJblBhZ2VD
YWNoZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KKwor
dmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJUZXN0SW5kZXhl
ZERCIik7CityZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIkRhdGFiYXNl
IERlbGV0ZWQiKTsKK30KK3JlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgi
RGF0YWJhc2UgRGVsZXRpb24gQmxvY2tlZCIpOworfQorCis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>