<?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>232605</bug_id>
          
          <creation_ts>2021-11-01 22:22:14 -0700</creation_ts>
          <short_desc>FileSystemSyncAccessHandle should be invalidated when network process crashes</short_desc>
          <delta_ts>2021-12-01 22:28:00 -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>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811032</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-01 22:22:14 -0700</bug_when>
    <thetext>The newly launched network process will not know about pre-existing FileSystemSyncAccessHandle.
Either FileSystemSyncAccessHandle needs to register to new network process, or FileSystemSyncAccessHandle should be invalidated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812982</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-08 21:23:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/85187706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818068</commentid>
    <comment_count>2</comment_count>
      <attachid>445236</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-28 00:03:51 -0800</bug_when>
    <thetext>Created attachment 445236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818146</commentid>
    <comment_count>3</comment_count>
      <attachid>445236</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-11-29 01:01:06 -0800</bug_when>
    <thetext>Comment on attachment 445236
Patch

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

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:75
&gt; +    void invalidateAccessHandle(FileSystemSyncAccessHandleIdentifier) final;

I would tend to have a Worker specific method, like registerAccessHandle(FileSystemSyncAccessHandle), and WorkerFileSystemStorageConnection could store a WeakHashSet&lt;FileSystemSyncAccessHandle&gt;.
Then what would be needed is for some code to call WorkerFileSystemStorageConnection::connectionClosed() when the network process connection gets closed.
For instance by adding a DedicatedWorkerGlobalScope::forEach(Function&lt;void(WorkerGlobalScope&amp;)&gt;&amp;&amp;).

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:93
&gt; +    HashMap&lt;WebCore::FileSystemSyncAccessHandleIdentifier, Function&lt;void()&gt;&gt; m_accessHandleInvalidationHandlers;

If we go with registerInvalidationHandler/unregisterInvalidationHandler at connection level, a Vector seems enough here.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.messages.in:24
&gt; +    InvalidateAccessHandle(WebCore::FileSystemSyncAccessHandleIdentifier identifier)

Why do we need that message, it seems the IPC connection being closed should be enough?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818266</commentid>
    <comment_count>4</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-29 10:03:13 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 445236 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=445236&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:75
&gt; &gt; +    void invalidateAccessHandle(FileSystemSyncAccessHandleIdentifier) final;
&gt; 
&gt; I would tend to have a Worker specific method, like
&gt; registerAccessHandle(FileSystemSyncAccessHandle), and
&gt; WorkerFileSystemStorageConnection could store a
&gt; WeakHashSet&lt;FileSystemSyncAccessHandle&gt;.
&gt; Then what would be needed is for some code to call
&gt; WorkerFileSystemStorageConnection::connectionClosed() when the network
&gt; process connection gets closed.
&gt; For instance by adding a
&gt; DedicatedWorkerGlobalScope::forEach(Function&lt;void(WorkerGlobalScope&amp;)&gt;&amp;&amp;).
&gt; 
Do you mean to dispatch a task to each worker thread to invalidate all its sync access handles? That sounds reasonable if we want to invalidate all access handles. Here we may want to invalidate some handle for the data removal case, so I store handler for each handle (see below).

&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:93
&gt; &gt; +    HashMap&lt;WebCore::FileSystemSyncAccessHandleIdentifier, Function&lt;void()&gt;&gt; m_accessHandleInvalidationHandlers;
&gt; 
&gt; If we go with registerInvalidationHandler/unregisterInvalidationHandler at
&gt; connection level, a Vector seems enough here.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.messages.in:24
&gt; &gt; +    InvalidateAccessHandle(WebCore::FileSystemSyncAccessHandleIdentifier identifier)
&gt; 
&gt; Why do we need that message, it seems the IPC connection being closed should
&gt; be enough?

As mentioned in the changelog, the invalidation handler will be used in two cases:
1. connection to backend (network process) is lost
2. access handle is invalidated on network process&apos;s request (when website data is deleted)
The message is needed for the second case (I will use it in  https://bugs.webkit.org/show_bug.cgi?id=233567)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818638</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-11-30 00:53:34 -0800</bug_when>
    <thetext>&gt; &gt; Why do we need that message, it seems the IPC connection being closed should
&gt; &gt; be enough?
&gt; 
&gt; As mentioned in the changelog, the invalidation handler will be used in two
&gt; cases:
&gt; 1. connection to backend (network process) is lost
&gt; 2. access handle is invalidated on network process&apos;s request (when website
&gt; data is deleted)
&gt; The message is needed for the second case (I will use it in 
&gt; https://bugs.webkit.org/show_bug.cgi?id=233567)

Understood, let&apos;s add the IPC message in the patch that needs it then, here it does not seem used at all.

Also, it seems we could manage a map &lt;FileSystemSyncAccessHandleIdentifier, pair&lt; ScriptExecutionContextIdentifier , FileSystemHandleIdentifier&gt;&gt; in WebFileSystemStorageConnection and use it for this purpose as well as future purposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818956</commentid>
    <comment_count>6</comment_count>
      <attachid>445471</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-30 14:43:06 -0800</bug_when>
    <thetext>Created attachment 445471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818981</commentid>
    <comment_count>7</comment_count>
      <attachid>445482</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-30 15:49:41 -0800</bug_when>
    <thetext>Created attachment 445482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818997</commentid>
    <comment_count>8</comment_count>
      <attachid>445486</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-30 16:24:05 -0800</bug_when>
    <thetext>Created attachment 445486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819043</commentid>
    <comment_count>9</comment_count>
      <attachid>445499</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-30 18:15:40 -0800</bug_when>
    <thetext>Created attachment 445499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819080</commentid>
    <comment_count>10</comment_count>
      <attachid>445516</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-30 21:16:07 -0800</bug_when>
    <thetext>Created attachment 445516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819117</commentid>
    <comment_count>11</comment_count>
      <attachid>445529</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-30 23:24:34 -0800</bug_when>
    <thetext>Created attachment 445529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819317</commentid>
    <comment_count>12</comment_count>
      <attachid>445529</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-01 10:58:45 -0800</bug_when>
    <thetext>Comment on attachment 445529
Patch

WinCairo issue is legit, probably a missing include.

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

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp:100
&gt; +void FileSystemFileHandle::registerSyncAccessHandle(FileSystemSyncAccessHandleIdentifier identifier, FileSystemSyncAccessHandle* handle)

FileSystemSyncAccessHandle&amp; would be better.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:52
&gt; +    m_source-&gt;registerSyncAccessHandle(m_identifier, this);

*this would be better.

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:319
&gt; +        handle-&gt;invalidate();

if (auto handle...)

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:73
&gt; +    void registerSyncAccessHandle(FileSystemSyncAccessHandleIdentifier, ScriptExecutionContextIdentifier, FileSystemSyncAccessHandle*) final;

FileSystemSyncAccessHandle&amp; is better.
I would tend to make this registerSyncAccessHandle not virtual but specific to WorkerFileSystemStorageConnection.
To call it, handle would need to do something like downcast&lt;WorkerGlobalScope&gt;(context).fileSystemStorageConnection().registerSyncAccessHandle(...).
We could then take a reference instead of a pointer.

FileSystemStorageConnection could have a registerSyncAccessHandle(FileSystemSyncAccessHandleIdentifier, ScriptExecutionContextIdentifier) that would do nothing in WorkerFileSystemStorageConnection.
Or we could somehow introduce a MainThreadFileSystemStorageConnection.

&gt; Source/WebCore/workers/WorkerGlobalScope.h:96
&gt; +    WEBCORE_EXPORT WorkerFileSystemStorageConnection* fileSystemStorageConnection();

Can we return a reference here?

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:215
&gt; +            if (FileSystemStorageConnection* connection = downcast&lt;WebCore::WorkerGlobalScope&gt;(context).fileSystemStorageConnection())

auto*. Would be good to be able to use a ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819373</commentid>
    <comment_count>13</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-01 12:58:45 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #12)
&gt; Comment on attachment 445529 [details]
&gt; Patch
&gt; 
&gt; WinCairo issue is legit, probably a missing include.

Thanks for the review. Will make sure bots are green before landing.

&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=445529&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/FileSystemFileHandle.cpp:100
&gt; &gt; +void FileSystemFileHandle::registerSyncAccessHandle(FileSystemSyncAccessHandleIdentifier identifier, FileSystemSyncAccessHandle* handle)
&gt; 
&gt; FileSystemSyncAccessHandle&amp; would be better.

Will change.

&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:52
&gt; &gt; +    m_source-&gt;registerSyncAccessHandle(m_identifier, this);
&gt; 
&gt; *this would be better.

Will change.

&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:319
&gt; &gt; +        handle-&gt;invalidate();
&gt; 
&gt; if (auto handle...)

Sure.

&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:73
&gt; &gt; +    void registerSyncAccessHandle(FileSystemSyncAccessHandleIdentifier, ScriptExecutionContextIdentifier, FileSystemSyncAccessHandle*) final;
&gt; 
&gt; FileSystemSyncAccessHandle&amp; is better.
&gt; I would tend to make this registerSyncAccessHandle not virtual but specific
&gt; to WorkerFileSystemStorageConnection.
&gt; To call it, handle would need to do something like
&gt; downcast&lt;WorkerGlobalScope&gt;(context).fileSystemStorageConnection().
&gt; registerSyncAccessHandle(...).
&gt; We could then take a reference instead of a pointer.
&gt; 
&gt; FileSystemStorageConnection could have a
&gt; registerSyncAccessHandle(FileSystemSyncAccessHandleIdentifier,
&gt; ScriptExecutionContextIdentifier) that would do nothing in
&gt; WorkerFileSystemStorageConnection.
&gt; Or we could somehow introduce a MainThreadFileSystemStorageConnection.

Sure, will make registerSyncAccessHandle non-virtual.

&gt; 
&gt; &gt; Source/WebCore/workers/WorkerGlobalScope.h:96
&gt; &gt; +    WEBCORE_EXPORT WorkerFileSystemStorageConnection* fileSystemStorageConnection();
&gt; 
&gt; Can we return a reference here?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:215
&gt; &gt; +            if (FileSystemStorageConnection* connection = downcast&lt;WebCore::WorkerGlobalScope&gt;(context).fileSystemStorageConnection())
&gt; 
&gt; auto*. Would be good to be able to use a ref.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819397</commentid>
    <comment_count>14</comment_count>
      <attachid>445611</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-01 13:45:58 -0800</bug_when>
    <thetext>Created attachment 445611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819423</commentid>
    <comment_count>15</comment_count>
      <attachid>445618</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-01 14:42:29 -0800</bug_when>
    <thetext>Created attachment 445618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819499</commentid>
    <comment_count>16</comment_count>
      <attachid>445640</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-01 17:15:32 -0800</bug_when>
    <thetext>Created attachment 445640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819574</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-01 22:27:55 -0800</bug_when>
    <thetext>Committed r286414 (244760@main): &lt;https://commits.webkit.org/244760@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445640.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445236</attachid>
            <date>2021-11-28 00:03:51 -0800</date>
            <delta_ts>2021-11-30 14:43:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211128000350.patch</filename>
            <type>text/plain</type>
            <size>39522</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIyNjY3NzkxNzkyNDJi
YzVlNTVhNjlkMzAxYWE0YzQ1NjU5ZjA0Yy4uMzc2MjQzNGRkMDQ5ZWY3YjA5YzMxNjRhMWQwNDNm
OTM1ZmEwNWFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTExLTI3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24gaG9sZCBpbnZhbGlkYXRpb24gaGFuZGxlciBmb3IgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuIFdoZW4gY29ubmVjdGlvbiBpcworICAgICAgICBjbG9zZWQsIG9yIGFjY2VzcyBoYW5k
bGUgaXMgZXhwbGljaXRseSBpbnZhbGlkYXRlZCAoZm9yIGV4YW1wbGUsIGR1ZSB0byBmaWxlIGRl
bGV0aW9uIGluIHRoZSBiYWNrZW5kKSwgCisgICAgICAgIGludmFsaWRhdGlvbiBoYW5kbGVyIHdp
bGwgYmUgaW52b2tlZCBhbmQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgd2lsbCBiZSBjbG9z
ZWQuCisKKyAgICAgICAgTm9ybWFsbHksIHRvIGNsb3NlIGEgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUgKGNsb3NlKCkgb3IgY29udGV4dCBzdG9wcyksIHdlIG5lZWQgdG86IAorICAgICAgICAx
LiBjbG9zZSBmaWxlIGRlc2NyaXB0b3IgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9z
ZUZpbGUpCisgICAgICAgIDIuIG5vdGlmeSBiYWNrZW5kIGFib3V0IGNsb3NlIChGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VCYWNrZW5kKQorICAgICAgICAzLiBnZXQgY2xvc2UgcmVz
dWx0IGFuZCBjb21wbGV0ZSBjYWxsYmFja3MgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpk
aWRDbG9zZUJhY2tlbmQpCisgICAgICAgIEZvciBpbnZhbGlkYXRpb24gY2FzZSwgd2Ugb25seSBu
ZWVkIHRvIHBlcmZvcm0gc3RlcCAxIGFuZCAzIGJlY2F1c2UgY29ubmVjdGlvbiB0byBiYWNrZW5k
IGlzIGxvc3Qgb3IgYmFja2VuZAorICAgICAgICBpbml0aWF0ZXMgdGhlIGNsb3NlLgorCisgICAg
ICAgIEFQSSB0ZXN0OiBGaWxlU3lzdGVtQWNjZXNzLk5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdX
cml0ZQorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpyZWdp
c3RlckludmFsaWRhdGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZp
bGVIYW5kbGU6OnVucmVnaXN0ZXJJbnZhbGlkYXRpb25IYW5kbGVyKToKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlRmls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VC
YWNrZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpk
aWRDbG9zZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmRpZENsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVj
dGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OnJlZ2lzdGVySW52YWxpZGF0aW9uSGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJJbnZhbGlkYXRp
b25IYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIx
LTExLTI3ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtH
UFUgUHJvY2Vzc10gSW1wbGVtZW50IEZpbHRlckVmZmVjdCBDb3JlSW1hZ2UgYXBwbGllcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYWQ4ZTY4ODBmMDU1OTgxNmE0NzBkNzU1MDViMTg5ZWYxOTJhNjg1NC4uMWZlZDRm
ZDJiNzFhZGY2MDliZjZhMmZmNzM1ZDA4ZjdjZTQwYTBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NiBAQAorMjAyMS0xMS0yNyAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAg
ICAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgd2hl
biBuZXR3b3JrIHByb2Nlc3MgY3Jhc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNjA1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTE4Nzcw
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVySW52YWxpZGF0
aW9uSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6dW5yZWdpc3RlckludmFsaWRhdGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW46IEFkZGVkLgorCiAyMDIxLTExLTI2
ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNXUEUuY21ha2UgYW5kIE5FV1MgZm9yIHRoZSAyLjM1
LjEgcmVsZWFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggYWYxZDJlOWM5
YThkODVjOTNmNjI0MjY1NzY0NjI2OWIxNTFhNWNhYS4uNmZlYTVkZmEzYzE2NDExZDU3OGU3YTUx
MTBiYTAyMjJhN2Q5NWZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC05
Nyw1ICs5NywyMSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZAogICAgIGNvbm5lY3Rpb24oKS5j
bG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6cmVnaXN0ZXJJ
bnZhbGlkYXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgaGFuZGxlcikKK3sKKyAg
ICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29ubmVjdGlvbigpLnJl
Z2lzdGVySW52YWxpZGF0aW9uSGFuZGxlcihhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3Zl
KGhhbmRsZXIpKTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dW5yZWdpc3Rlcklu
dmFsaWRhdGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGNvbm5lY3Rpb24oKS51bnJlZ2lzdGVySW52YWxpZGF0aW9uSGFuZGxlcihh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDhjZWUxMmNiZGZiZjQwMDkyZjdhMDQyMGFk
OTFjNzFhODJhYzI4YjEuLjJhOThmNDkwYjI1OWUwNzJiZDA1ZDVkOTkzYjJiMmI1Zjc5YTVhY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7CiAgICAgdm9pZCBjbG9z
ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHZvaWQgcmVnaXN0ZXJJbnZhbGlk
YXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRnVuY3Rp
b248dm9pZCgpPiYmKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJJbnZhbGlkYXRpb25IYW5kbGVyKEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgRmls
ZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmLCBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggYTdhM2Nm
YmM0ZmE1MzA5Mzg4YmQwMTk2MTUwNWJiNmE4YThlN2U3Mi4uNzhjMWQ0NGIyZTVkODFlZGE2Y2Nj
ZTkwODdhZjc2ZWEzZGQ2NDNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaApAQCAtNjAsNiArNjAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEZp
bGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZ0NhbGxiYWNrJiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckludmFsaWRhdGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdp
c3RlckludmFsaWRhdGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRIYW5k
bGVOYW1lc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZVdpdGhU
eXBlQ2FsbGJhY2smJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCmluZGV4IDNjODhlOTc5NTQ5M2Q0YTQ3MTkwZjg1MDgyYmRhZGIzZjVkMjdkY2Mu
LjE1ZTFhMmUwZWRjZGJjMjAxM2E2NmVlNWRiYTNkMWVhZjg1MTdiYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtNDcsMTEgKzQ3LDIyIEBAIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjCiB7CiAgICAgQVNTRVJUKG1fZmlsZSAhPSBGaWxlU3lzdGVtOjpp
bnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKKworICAg
IG1fc291cmNlLT5yZWdpc3RlckludmFsaWRhdGlvbkhhbmRsZXIobV9pZGVudGlmaWVyLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjbG9zZUZpbGUoKTsK
KyAgICAgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7CisgICAgfSk7CiB9CiAKIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogewogICAgIEFT
U0VSVChpc0Nsb3NpbmdPckNsb3NlZCgpKTsKKworICAgIG1fc291cmNlLT51bnJlZ2lzdGVySW52
YWxpZGF0aW9uSGFuZGxlcihtX2lkZW50aWZpZXIpOworCiAgICAgaWYgKG1fY2xvc2VSZXN1bHQp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMTQyLDM1ICsxNTMsNTIgQEAgdm9pZCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYgY2FsbGJhY2sp
CiAgICAgaWYgKGlzQ2xvc2luZykKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKG1fZmls
ZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBjbG9zZUZp
bGUoKTsKK30KKwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VGaWxlKCkK
K3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGUpCisgICAgICAgIHJldHVybjsKKwogICAgIGF1dG8qIHNjb3BlID0gZG93bmNhc3Q8V29ya2Vy
R2xvYmFsU2NvcGU+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKHNjb3Bl
KTsKIAotICAgIEFTU0VSVChtX2ZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSk7CiAgICAgV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RGaWxlU3lzdGVtU3RvcmFnZVRh
c2soW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGZpbGUgPSBzdGQ6OmV4Y2hhbmdlKG1f
ZmlsZSwgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSksIHdvcmtlclRocmVh
ZCA9IFJlZiB7IHNjb3BlLT50aHJlYWQoKSB9XSgpIG11dGFibGUgewogICAgICAgICBGaWxlU3lz
dGVtOjpjbG9zZUZpbGUoZmlsZSk7CiAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBv
c3RUYXNrKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXShhdXRvJikgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgd2Vha1RoaXMtPmNsb3Nl
QmFja2VuZChDbG9zZU1vZGU6OkFzeW5jKTsKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlk
Q2xvc2VGaWxlKCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUZpbGUoKQoreworICAgIGNsb3NlQmFja2VuZChDbG9z
ZU1vZGU6OkFzeW5jKTsKK30KKwogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xv
c2VCYWNrZW5kKENsb3NlTW9kZSBtb2RlKQogeworICAgIGlmIChtX2Nsb3NlUmVzdWx0KQorICAg
ICAgICByZXR1cm47CisKICAgICBpZiAobW9kZSA9PSBDbG9zZU1vZGU6OkFzeW5jKSB7CiAgICAg
ICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICAgICAgZGlkQ2xv
c2UoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIGRpZENsb3NlQmFja2VuZChXVEZNb3Zl
KHJlc3VsdCkpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1f
c291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFtdKGF1dG8pIHsgfSk7Ci0gICAgZGlkQ2xvc2Uo
eyB9KTsKKyAgICBkaWRDbG9zZUJhY2tlbmQoeyB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCit2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tlbmQoRXhjZXB0aW9uT3I8
dm9pZD4mJiByZXN1bHQpCiB7Ci0gICAgQVNTRVJUKCFtX2Nsb3NlUmVzdWx0KTsKKyAgICBpZiAo
bV9jbG9zZVJlc3VsdCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jbG9zZVJlc3VsdCA9IFdU
Rk1vdmUocmVzdWx0KTsKICAgICBhdXRvIGNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV9jbG9z
ZUNhbGxiYWNrcywgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgK
aW5kZXggMThiNGFlZDVkNmU5NzE0ZDAwZDk1NjgxM2FjN2YyOTcxZjhhODNkZi4uY2MyN2NmMGI4
ODc0MTMwY2M1ODIyYjQ3ZDhlNGUyY2EwMjIyMzJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmgKQEAgLTUyLDcgKzUyLDYgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0
U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CiAgICAgdm9p
ZCBmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBjbG9zZShET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7Ci0gICAgdm9pZCBkaWRDbG9zZShFeGNlcHRpb25Pcjx2
b2lkPiYmKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJlYWQoQnVmZmVy
U291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKICAgICBFeGNlcHRpb25Pcjx1
bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdy
aXRlT3B0aW9ucyk7CiAgICAgdXNpbmcgUmVzdWx0ID0gc3RkOjp2YXJpYW50PEV4Y2VwdGlvbk9y
PHZvaWQ+LCBFeGNlcHRpb25Pcjx1aW50NjRfdD4+OwpAQCAtNjMsOCArNjIsMTEgQEAgcHJpdmF0
ZToKICAgICBib29sIGlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3Q7CiAgICAgdXNpbmcgQ2xvc2VD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+Owog
ICAgIHZvaWQgY2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYpOworICAgIHZvaWQgY2xvc2VG
aWxlKCk7CisgICAgdm9pZCBkaWRDbG9zZUZpbGUoKTsKICAgICBlbnVtIGNsYXNzIENsb3NlTW9k
ZSA6IGJvb2wgeyBBc3luYywgU3luYyB9OwogICAgIHZvaWQgY2xvc2VCYWNrZW5kKENsb3NlTW9k
ZSk7CisgICAgdm9pZCBkaWRDbG9zZUJhY2tlbmQoRXhjZXB0aW9uT3I8dm9pZD4mJik7CiAKICAg
ICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFhMGE0M2JlNDZhYzg0NWYzNGQ2MDIxYTA5OTU2YjBjNzY2
YWNhYjQuLjZjNWYyNjlhMWM3NWU0ZGM5ODdmNGU1MDExYTE3OTJkMWQ0MDBiMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC01
Miw2ICs1Miw5IEBAIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6fldvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpCiAKIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKCkKIHsKKyAgICBmb3IgKGF1dG8mIGhhbmRs
ZXIgOiBtX2FjY2Vzc0hhbmRsZUludmFsaWRhdGlvbkhhbmRsZXJzLnZhbHVlcygpKQorICAgICAg
ICBoYW5kbGVyKCk7CisKICAgICBzY29wZUNsb3NlZCgpOwogfQogCkBAIC0yODcsNiArMjkwLDM3
IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZWdpc3RlckludmFsaWRhdGlvbkhhbmRsZXIoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZv
aWQoKT4mJiBoYW5kbGVyKQoreworICAgIG1fYWNjZXNzSGFuZGxlSW52YWxpZGF0aW9uSGFuZGxl
cnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoaGFuZGxlcikpOworCisgICAgY2FsbE9uTWFpblRo
cmVhZChbaWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkg
fSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFi
bGUgeworICAgICAgICBhdXRvIG1haW50aHJlYWRIYW5kbGVyID0gW2lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbaWRlbnRpZmllcl0oYXV0
byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24g
PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5pbnZhbGlkYXRlQWNj
ZXNzSGFuZGxlKGlkZW50aWZpZXIpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVm
YXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24t
PnJlZ2lzdGVySW52YWxpZGF0aW9uSGFuZGxlcihpZGVudGlmaWVyLCBXVEZNb3ZlKG1haW50aHJl
YWRIYW5kbGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjp1bnJlZ2lzdGVySW52YWxpZGF0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX2FjY2Vzc0hhbmRsZUlu
dmFsaWRhdGlvbkhhbmRsZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKKworICAgIGNhbGxPbk1haW5U
aHJlYWQoW2lkZW50aWZpZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29u
bmVjdGlvbl0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnVucmVn
aXN0ZXJJbnZhbGlkYXRpb25IYW5kbGVyKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKK3sKKyAgICBpZiAoYXV0byBpdGVyYXRvciA9IG1fYWNjZXNzSGFuZGxlSW52YWxpZGF0aW9u
SGFuZGxlcnMuZmluZChpZGVudGlmaWVyKTsgaXRlcmF0b3IgIT0gbV9hY2Nlc3NIYW5kbGVJbnZh
bGlkYXRpb25IYW5kbGVycy5lbmQoKSkKKyAgICAgICAgaXRlcmF0b3ItPnZhbHVlKCk7Cit9CisK
IHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRIYW5kbGVOYW1lcyhG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBHZXRIYW5kbGVOYW1lc0NhbGxi
YWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDBiNzdkYzcwMDM0YjQ0ZjQ3
NzM3ZGQ4MTU1MjE3NDUyZGYxNjlhNWMuLjE1YmU2Mzg5M2FlOWYwNzk2N2E3ZTA0MTE2OWUzNDc5
NTM2ZTg3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKQEAgLTcwLDYgKzcwLDkgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lk
IGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNr
JiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJJbnZhbGlkYXRpb25IYW5kbGVyKEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsK
KyAgICB2b2lkIHVucmVnaXN0ZXJJbnZhbGlkYXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CiAKICAgICBX
ZWFrUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3Njb3BlOwogICAgIFJlZlB0cjxGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24+IG1fbWFpblRocmVhZENvbm5lY3Rpb247CkBAIC04MSw2ICs4NCw3
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlTmFtZXNDYWxsYmFjaz4gbV9nZXRIYW5kbGVOYW1l
c0NhbGxiYWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrPiBtX2dldEhhbmRsZVdp
dGhUeXBlQ2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlN0cmluZ0NhbGxiYWNrPiBtX3N0cmluZ0NhbGxiYWNrczsK
KyAgICBIYXNoTWFwPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRnVuY3Rp
b248dm9pZCgpPj4gbV9hY2Nlc3NIYW5kbGVJbnZhbGlkYXRpb25IYW5kbGVyczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGMzMjk3NGE4NGIyYTY2
OTQwNzM4ZjBkNGYzYzJiZjllNjEwYmMwMmIuLmZmZThiMmRjMTU0OGM3NTA3MTVjNDVmMjM0NDEy
Y2Q2NzExODFkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMzA1LDYgKzMwNSw3IEBAIHNldChX
ZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlcgogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uCiAKICAgICBXZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCA3OTlhZDc1YjJhMWFiMjEwZDA4MWQ1OWZkNWI0YjAyZDhiNmRhZWI0Li5i
OTM4NjIwMGVjMWQ1YzVkZTlhMTE4NmVlODM1MDJiM2M3YWZkMjdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yMTgsNiArMjE4LDcgQEAg
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IubWVzc2FnZXMKICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvVGV4dENoZWNraW5nQ29udHJvbGxlclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IGE2NWZjMzYxODRjZmY4Zjc3NTJkNjg1Mjc5ODYxNTRiNmFmODAx
YzQuLjQ4OWQwMDVhNmNjNjM0M2Y3MTllNzMxMGE0YmYyM2NhNDk4N2ZhYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNDg3LDYgKzQ4
Nyw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZGRlNWM2M2ZlM2Y0YjMxNTI5N2Ri
NGI2ODQ4OWMyOWRlNWJiYTQ1Yy4uNzY4ZDJjMzVjYmU2NDFlNzg3NmQzMGE4YWEwNmQyNjU3YTA3
M2ViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjE5LDYgKzIxOSw3IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVz
b2x2ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5IFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIgXAorCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCiAJV2ViUHJvY2Vzcy9TcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciBcCiAJV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY1MmMyYmUzYjhiZjBkNmFjZmRlNzhlYjBj
OTAxNTUwYjU5YWQxNGYuLjQ5ZTg0ODMwNzYyNWNiNzVmOTAyYTk5ZWEwYmE4NDBlOGUwYzA1ODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQxMiw2ICsxNDEyLDkgQEAKIAkJOTE5Nzk0MDgyM0RCQzRDQjAwMjU3ODkyIC8qIFdlYlBh
Z2VJbnNwZWN0b3JBZ2VudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkxOTc5NDA3MjNEQkM0Q0EwMDI1Nzg5MiAvKiBXZWJQYWdlSW5zcGVjdG9y
QWdlbnRCYXNlLmggKi87IH07CiAJCTkxOTc5NDBBMjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNw
ZWN0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkxOTc5NDA5MjNEQkM0RTAwMDI1Nzg5MiAvKiBBUElJbnNwZWN0b3JDbGllbnQuaCAqLzsg
fTsKIAkJOTE5Nzk0MEMyM0RCQzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTk3OTQwQjIz
REJDNTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzA1QTI2RjI3NDc4RUY5MDBGQjIw
NkEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDVBMjZDMjc0NzhFRjgwMEZC
MjA2QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9Owor
CQk5MzA1QTI3MDI3NDc4RUY5MDBGQjIwNkEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzA1QTI2RDI3NDc4RUY4MDBGQjIwNkEgLyogV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTkzMDVBMjczMjc1MkQ0RDMw
MEZCMjA2QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNUEy
NzIyNzUyRDREMzAwRkIyMDZBIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzMDg1REJGMjZFMTkyRjkwMDBFQzZBNyAvKiBXZWJT
dG9yYWdlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDg1REJBMjZFMTUyQzIwMDBFQzZBNyAvKiBXZWJTdG9yYWdlUHJvdmlkZXIuaCAq
LzsgfTsKIAkJOTMwODVEQzAyNkUxOTMxMzAwMEVDNkE3IC8qIFdlYlN0b3JhZ2VDb25uZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURC
QjI2RTE3MkY5MDAwRUM2QTcgLyogV2ViU3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTMw
ODVEQ0EyNkUyOTc3NTAwMEVDNkE3IC8qIE9yaWdpblN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNjI2RTFDNkNGMDAw
RUM2QTcgLyogT3JpZ2luU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKQEAgLTUwMzIsNiArNTAzNSw5
IEBACiAJCTkxOTc5NDA3MjNEQkM0Q0EwMDI1Nzg5MiAvKiBXZWJQYWdlSW5zcGVjdG9yQWdlbnRC
YXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBhZ2VJbnNwZWN0b3JB
Z2VudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTE5Nzk0MDkyM0RCQzRF
MDAwMjU3ODkyIC8qIEFQSUluc3BlY3RvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBUElJbnNwZWN0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTE5Nzk0MEIyM0RCQzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckRlbGVnYXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzMDVBMjZDMjc0NzhFRjgwMEZCMjA2QSAv
KiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdl
cy5oOyBwYXRoID0gLi4vLi4vLi4vUmVsZWFzZS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzMDVBMjZEMjc0NzhFRjgwMEZCMjA2QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHBh
dGggPSAuLi8uLi8uLi9SZWxlYXNlL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzMDVBMjcyMjc1MkQ0RDMwMEZCMjA2QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQkEyNkUxNTJDMjAwMEVD
NkE3IC8qIFdlYlN0b3JhZ2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTdG9yYWdlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTMwODVEQkIyNkUxNzJGOTAwMEVDNkE3IC8qIFdlYlN0b3JhZ2VDb25uZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlN0b3JhZ2VDb25uZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDg1REJDMjZFMTc0RUQwMDBFQzZBNyAvKiBXZWJT
dG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01MTUyLDYgKzUxNTgsNyBAQAogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0
VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0
UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0Qjcw
MDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZp
Z3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNG
RDlERUQyNzQ2RTlFMjAwMzQ5RkUzIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYy
ODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBp
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1MEYyODdGMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIubW07IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNl
cnZpY2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFT
ZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0MDYsNiArMTA0
MTMsNyBAQAogCQkJCUJDMDMyRDY4MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJFZGl0b3JDbGllbnQu
aCAqLywKIAkJCQk5MzU0MjQyQjI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk5MzU0MjQyQTI3MDNCRENCMDA1Q0E3MkMgLyogV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8sCisJCQkJOTNGRDlERUQyNzQ2RTlFMjAw
MzQ5RkUzIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywK
IAkJCQlCQzExMUE1ODExMkY0RkJCMDAzMzdCQUIgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
ICovLAogCQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVu
dC5oICovLAogCQkJCUJDMUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNs
aWVudC5jcHAgKi8sCkBAIC0xMTgwOCw2ICsxMTgxNiw5IEBACiAJCQkJRTM4NjZCMDcyMzk5OTc5
RDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5o
ICovLAogCQkJCUUzODY2QjA0MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUUzODY2QjA1
MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHlNZXNzYWdlcy5oICovLAorCQkJCTkzMDVBMjcyMjc1MkQ0RDMwMEZCMjA2QSAvKiBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTkzMDVB
MjZDMjc0NzhFRjgwMEZCMjA2QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNz
YWdlcy5oICovLAorCQkJCTkzMDVBMjZEMjc0NzhFRjgwMEZCMjA2QSAvKiBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQlDRDczQkE0ODEzMUFD
RDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCUNENzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1l
c3NhZ2VzLmggKi8sCiAJCQkJQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTMwNTEsNiArMTMwNjIs
OCBAQAogCQkJCUJDMDMyREJCMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTExQjVEMTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVu
dEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTQyNDJDMjcwM0JEQ0IwMDVDQTcyQyAv
KiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
MDVBMjZGMjc0NzhFRjkwMEZCMjA2QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25N
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMwNUEyNzAyNzQ3OEVGOTAwRkIyMDZBIC8q
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0NEQ0IC8qIFdlYkZpbmRPcHRpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTYxMjE0RTZDQjAwMEI5OEVCIC8qIFdl
YkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTA4NSw2
ICsxNTA5OCw3IEBACiAJCQkJRTM4NjZBRTUyMzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUzODY2
QjA5MjM5OUEyRDUwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODkyMTJC
NkFCMTAwRjQ5M0ZEIC8qIFdlYkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzMDVBMjcz
Mjc1MkQ0RDMwMEZCMjA2QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMEU2MDYxMTJENkJB
OTEwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA0N2I5MWNlODdkMzYx
M2UzNWQ1Nzk0MDc5N2FkZjBiMWRkMDBhNDhiLi45NGQ5ZDJjYzNlYjI4ODBjZGNmMjJjMDcyYTM5
YTk4OTU1ZmQ0NDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTM3LDYgKzM3LDgg
QEAKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYkNv
b2tpZUphci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUg
IldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNp
bmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlcy5oIgpAQCAtMTE5LDYgKzEyMSwxMCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUAogICAgICAgICAgICAgc3RvcmFnZUFyZWFNYXAtPmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAKICNpZiBVU0UoTElCV0VCUlRDKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6V2ViUlRDTW9uaXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4
IDBlZjQxOWYyZDcxMjgzYWI2N2MzNjUxODMzNTZkY2VmYzc5NDQ4NjIuLjk1MTA5ZGZkNWQ2MGM3
MTg4ZWFlMzMxMzQyYjlkNDY4ZmExM2UxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC00Niw2ICs0Niw5IEBAIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbiYKIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9u
Q2xvc2VkKCkKIHsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworCisgICAgZm9yIChhdXRv
JiBoYW5kbGVyIDogbV9hY2Nlc3NIYW5kbGVJbnZhbGlkYXRpb25IYW5kbGVycy52YWx1ZXMoKSkK
KyAgICAgICAgaGFuZGxlcigpOwogfQogCiB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y2xvc2VIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKQEAgLTE5Myw0ICsxOTYsMjAgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246Om1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWQKICAg
ICB9KTsKIH0KIAordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVy
SW52YWxpZGF0aW9uSGFuZGxlcihXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgRnVuY3Rpb248dm9pZCgpPiYmIGhhbmRsZXIpCit7CisgICAg
bV9hY2Nlc3NIYW5kbGVJbnZhbGlkYXRpb25IYW5kbGVycy5hZGQoaWRlbnRpZmllciwgV1RGTW92
ZShoYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp1
bnJlZ2lzdGVySW52YWxpZGF0aW9uSGFuZGxlcihXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX2FjY2Vzc0hhbmRsZUludmFs
aWRhdGlvbkhhbmRsZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8gaXRlcmF0b3IgPSBtX2FjY2Vzc0hhbmRsZUludmFsaWRhdGlvbkhhbmRsZXJzLmZpbmQo
aWRlbnRpZmllcik7IGl0ZXJhdG9yICE9IG1fYWNjZXNzSGFuZGxlSW52YWxpZGF0aW9uSGFuZGxl
cnMuZW5kKCkpCisgICAgICAgIGl0ZXJhdG9yLT52YWx1ZSgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApp
bmRleCBlZTVjNmZlMTljNzgwMmRhMmE3ZWExNTQzNjE2MDUxN2Q2Y2Q1YzJiLi42ZjllYjBhYmE2
NzdhY2YyMmJjNDFmMWE5OWY0NmEyMmI0YzJiMWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC02Nyw2ICs2Nyw3IEBAIGNsYXNzIFdlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVt
U3RvcmFnZUNvCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25D
bG9zZWQoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKQEAgLTg1LDcgKzg2LDExIEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVySW52YWxpZGF0aW9uSGFu
ZGxlcihXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZ1bmN0
aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVySW52YWxpZGF0aW9uSGFu
ZGxlcihXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFs
OworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogCisgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoKT4+IG1fYWNjZXNz
SGFuZGxlSW52YWxpZGF0aW9uSGFuZGxlcnM7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJlY2RjZjdkOWQ1MTU3
Y2Y4M2JiYjI0MzM0MGVhZThmMzU3Y2I3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24gTm90UmVmQ291bnRlZCB7CisgICAgSW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlNjRhZjI0OTli
YmIxMzYzYzNmZmEzY2RkZjk4MmMzYjA5YmQ3ZjM0Li5kMGI2NDY4OTEyMzNkNjc4ZTkzNmY5NjM0
MTA5ZWQ2ODNhNTdiY2M3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMjcgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgc2hv
dWxkIGJlIGludmFsaWRhdGVkIHdoZW4gbmV0d29yayBwcm9jZXNzIGNyYXNoZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwNQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODUxODc3MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVT
eXN0ZW1BY2Nlc3MubW06CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGtlZXBBY2Nlc3NIYW5k
bGVBY3RpdmUpOgorCiAyMDIxLTExLTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVthMTF5XSBTaWduYWwgc3RhdGUtY2hhbmdlZDpz
ZWxlY3RlZCBpcyBub3QgZW1pdHRlZCBmb3IgbGlzdGJveCBlbGVtZW50cyB3aGVuIGJ1aWxkaW5n
IHdpdGggQVRTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQppbmRleCA1MmFiOWNlMjhiNzU2MGRhOTBlYTEz
ZTg5Mjg4ZDE3MjlhNDEwZWJlLi43YmJlM2M5ZjYyYzFkOTdjMzE5NTUyYTE5MDNkOTE1YWQ1Zjdh
MjFhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Zp
bGVTeXN0ZW1BY2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCkBAIC01OSwxNSArNTksMzAgQEAgc3RhdGljIE5TU3Ry
aW5nICptYWluRnJhbWVTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKICAgICA8L3NjcmlwdD4iOwogCiBz
dGF0aWMgY29uc3QgY2hhciogd29ya2VyQnl0ZXMgPSBSIlRFU1RSRVNPVVJDRSgKK3ZhciBwb3Np
dGlvbiA9IDA7Cit2YXIgYWNjZXNzSGFuZGxlOwogYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB7CiAg
ICAgdHJ5IHsKICAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFn
ZS5nZXREaXJlY3RvcnkoKTsKICAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFu
ZGxlLmdldEZpbGVIYW5kbGUoJ2ZpbGUtc3lzdGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUnIDog
dHJ1ZSB9KTsKLSAgICAgICAgdmFyIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICAgICAgdmFyIGJ1ZmZlciA9IG5l
dyBBcnJheUJ1ZmZlcigxMCk7CiAgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUu
d3JpdGUoYnVmZmVyLCB7ICJhdCIgOiAwIH0pOwogICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdz
dWNjZXNzOiB3cml0ZSAnICsgd3JpdGVTaXplICsgJyBieXRlcycpOworICAgICAgICBrZWVwQWNj
ZXNzSGFuZGxlQWN0aXZlKCk7CisgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAgc2VsZi5wb3N0
TWVzc2FnZSgnZXJyb3I6ICcgKyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOworICAg
ICAgICBjbG9zZSgpOworICAgIH0KK30KK2Z1bmN0aW9uIGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUo
KQoreworICAgIHRyeSB7CisgICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMSk7
CisgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJh
dCIgOiBwb3NpdGlvbiB9KTsKKyAgICAgICAgcG9zaXRpb24gKz0gd3JpdGVTaXplOworICAgICAg
ICBzZXRUaW1lb3V0KGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUsIDEwMCk7CiAgICAgfSBjYXRjaCAo
ZXJyKSB7CiAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUgKyAn
IC0gJyArIGVyci5tZXNzYWdlKTsKICAgICAgICAgY2xvc2UoKTsKQEAgLTc2LDcgKzkxLDcgQEAg
YXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB0ZXN0KCk7CiApVEVTVFJFU09VUkNFIjsKIAotVEVTVChG
aWxlU3lzdGVtQWNjZXNzLCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK1RFU1QoRmlsZVN5c3Rl
bUFjY2VzcywgV2ViUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiB7CiAgICAgYXV0byBoYW5kbGVy
ID0gYWRvcHROUyhbW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OwogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CkBAIC0xMzAsNiArMTQ1LDUzIEBAIFRFU1QoRmlsZVN5c3RlbUFj
Y2VzcywgUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAic3Vj
Y2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogfQogCitU
RVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIE5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sK
KyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5k
bGVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdl
dCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NF
bmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVT
OworICAgIHByZWZlcmVuY2VzLl9zdG9yYWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNj
aGVtZUhhbmRsZXIgPSBhZG9wdE5TKFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRd
KTsKKyAgICBbc2NoZW1lSGFuZGxlciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tX
ZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5QdHI8
TlNEYXRhPiBkYXRhOworICAgICAgICBOU1VSTCAqcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdC5V
Ukw7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSgid2Via2l0Oi8vd2Via2l0Lm9yZy93b3JrZXIu
anMiLCByZXF1ZXN0VVJMLmFic29sdXRlU3RyaW5nKTsKKyAgICAgICAgYXV0byByZXNwb25zZSA9
IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJMIE1J
TUVUeXBlOkAidGV4dC9qYXZhc2NyaXB0IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5j
b2RpbmdOYW1lOm5pbF0pOworICAgICAgICBkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndv
cmtlckJ5dGVzIGxlbmd0aDpzdHJsZW4od29ya2VyQnl0ZXMpXTsKKyAgICAgICAgW3Rhc2sgZGlk
UmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2
ZURhdGE6ZGF0YS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgfV07Cisg
ICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgp
IGZvclVSTFNjaGVtZTpAIndlYmtpdCJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2Fk
SFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
IndlYmtpdDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OworICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNz
YWdlIGJvZHldKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCki
IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OworICAgIEVYUEVDVF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEtpbGwgbmV0d29yayBwcm9jZXNzLgorICAg
IFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfdGVybWluYXRlTmV0d29ya1Byb2Nl
c3NdOworCisgICAgLy8gT3BlbiBhY2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiBu
ZXR3b3JrIHByb2Nlc3MgY3Jhc2hlcy4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7
CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiZXJyb3I6IEludmFsaWRTdGF0ZUVycm9yIC0gQWNjZXNz
SGFuZGxlIGlzIGNsb3Npbmcgb3IgY2xvc2VkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsK
KworICAgIC8vIEFjY2VzcyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgbmV0d29yayBwcm9j
ZXNzIGlzIHJlbGF1bmNoZWQuCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3Rh
cnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vz
czogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCiBzdGF0
aWMgTlNTdHJpbmcgKmJhc2ljU3RyaW5nID0gQCI8c2NyaXB0PiBcCiAgICAgYXN5bmMgZnVuY3Rp
b24gb3BlbigpIFwKICAgICB7IFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445471</attachid>
            <date>2021-11-30 14:43:06 -0800</date>
            <delta_ts>2021-11-30 15:49:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211130144306.patch</filename>
            <type>text/plain</type>
            <size>34007</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMmY4YzJhZWJlZTk0YzFmN2U4MjI5YzQwNDkwNWQ5
YTM1MzY4Y2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uIGtlZXAgdHJhY2sgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIFdoZW4gY29u
bmVjdGlvbiBpcyBjbG9zZWQsIG9yIGFjY2VzcyAKKyAgICAgICAgaGFuZGxlIGlzIGV4cGxpY2l0
bHkgaW52YWxpZGF0ZWQgKGZvciBleGFtcGxlLCBkdWUgdG8gZmlsZSBkZWxldGlvbiBpbiB0aGUg
YmFja2VuZCksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgICAgICB3aWxsIGludmFs
aWRhdGUgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKKyAgICAgICAgTm9ybWFsbHksIHRv
IGNsb3NlIGEgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgKHdoZW4gY2xvc2UoKSBpcyBjYWxs
ZWQgb3IgY29udGV4dCBzdG9wcyksIHdlIG5lZWQgdG86IAorICAgICAgICAxLiBjbG9zZSBmaWxl
IGRlc2NyaXB0b3IgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUpCisgICAg
ICAgIDIuIG5vdGlmeSBiYWNrZW5kIGFib3V0IGNsb3NlIChGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2VCYWNrZW5kKQorICAgICAgICAzLiBnZXQgY2xvc2UgcmVzdWx0IGFuZCBjb21w
bGV0ZSBjYWxsYmFja3MgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tl
bmQpCisgICAgICAgIEZvciBpbnZhbGlkYXRpb24gY2FzZSwgd2Ugb25seSBuZWVkIHRvIHBlcmZv
cm0gc3RlcCAxIGFuZCAzIGJlY2F1c2UgY29ubmVjdGlvbiB0byBiYWNrZW5kIGlzIGxvc3Qgb3Ig
YmFja2VuZAorICAgICAgICBpbml0aWF0ZXMgdGhlIGNsb3NlLgorCisgICAgICAgIEFQSSB0ZXN0
OiBGaWxlU3lzdGVtQWNjZXNzLk5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZQorCisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlk
Q2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlk
YXRlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRv
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2
NDUyMjRlNTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi5iZTRhNDBmYzA0OTk0NTAwOTVkY2Zi
ZTJkNTM5NTFiNTJmYzk2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTExLTMw
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2Vz
cyBjcmFzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgc29tZSBXZWJTV0NsaWVudENvbm5lY3Rpb24gbWVz
c2FnZXMgdG8gYXN5bmMgcmVwbGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5k
ZXggMGVhZDQwMzkyODk4YzFjZGU2NjgwMTViYzM4MTFhZjMyZDM2N2ZkYS4uYTE3NDk1ZDc2NTk2
NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNo
ZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJXb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXgg
YWYxZDJlOWM5YThkODVjOTNmNjI0MjY1NzY0NjI2OWIxNTFhNWNhYS4uYjkzZWY2Zjc3ZGU4NTJh
YTM2NGM2MTQ5Y2ExZDE4NWYzNjU0YzM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCkBAIC05Nyw1ICs5NywyNSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZAogICAgIGNvbm5l
Y3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSogaGFuZGxlKQorewor
ICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29ubmVjdGlvbigpLnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVu
dGlmaWVyLCBjb250ZXh0LT5pZGVudGlmaWVyKCksIGhhbmRsZSk7Cit9CisKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChpc0Nsb3NlZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25uZWN0aW9uKCkudW5yZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaAppbmRleCA4Y2VlMTJjYmRmYmY0MDA5MmY3YTA0MjBhZDkx
YzcxYTgyYWMyOGIxLi45N2Q1NGY2Yjg3MDkyZmZjNzc5ODUxYjhlYjQ4ODgwNjZjYTg2OGZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwogICAgIHZvaWQgY2xvc2Uo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKik7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGE3YTNj
ZmJjNGZhNTMwOTM4OGJkMDE5NjE1MDViYjZhOGE4ZTdlNzIuLmQ5NDk3NThmN2NlZWM3ZGUwYzU5
ZjIyYWU2NzlkMjM3NTNjNzg3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtMzUsNiArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKK2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCiBjbGFz
cyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiB7CkBAIC02MCw2ICs2Miw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U3RyaW5nQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFj
ayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBH
ZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRs
ZVdpdGhUeXBlQ2FsbGJhY2smJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwCmluZGV4IDNjODhlOTc5NTQ5M2Q0YTQ3MTkwZjg1MDgyYmRhZGIzZjVk
MjdkY2MuLmE1OGZhZmFkMmRlMzhhNDA2YmZjNGVjM2MwNDExYTI5NzdkZjM5ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00NywxMSArNDgsMTYgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGMKIHsKICAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgbV9zb3VyY2UtPnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsIHRoaXMpOwogfQogCiBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIHsKICAgICBB
U1NFUlQoaXNDbG9zaW5nT3JDbG9zZWQoKSk7CisKKyAgICBtX3NvdXJjZS0+dW5yZWdpc3RlclN5
bmNBY2Nlc3NIYW5kbGUobV9pZGVudGlmaWVyKTsKKwogICAgIGlmIChtX2Nsb3NlUmVzdWx0KQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE0MiwzNSArMTQ4LDUyIEBAIHZvaWQgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmIGNhbGxiYWNrKQog
ICAgIGlmIChpc0Nsb3NpbmcpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChtX2ZpbGUg
IT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgY2xvc2VGaWxl
KCk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSgpCit7
CisgICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvKiBzY29wZSA9IGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFTU0VSVChzY29wZSk7
CiAKLSAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUpOwogICAgIFdvcmtlckdsb2JhbFNjb3BlOjpwb3N0RmlsZVN5c3RlbVN0b3JhZ2VUYXNr
KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBmaWxlID0gc3RkOjpleGNoYW5nZShtX2Zp
bGUsIEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpLCB3b3JrZXJUaHJlYWQg
PSBSZWYgeyBzY29wZS0+dGhyZWFkKCkgfV0oKSBtdXRhYmxlIHsKICAgICAgICAgRmlsZVN5c3Rl
bTo6Y2xvc2VGaWxlKGZpbGUpOwogICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFzayhbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0oYXV0byYpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jbG9zZUJh
Y2tlbmQoQ2xvc2VNb2RlOjpBc3luYyk7CisgICAgICAgICAgICAgICAgd2Vha1RoaXMtPmRpZENs
b3NlRmlsZSgpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAordm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKCkKK3sKKyAgICBjbG9zZUJhY2tlbmQoQ2xvc2VN
b2RlOjpBc3luYyk7Cit9CisKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZChDbG9zZU1vZGUgbW9kZSkKIHsKKyAgICBpZiAobV9jbG9zZVJlc3VsdCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKG1vZGUgPT0gQ2xvc2VNb2RlOjpBc3luYykgewogICAgICAg
ICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpZENsb3Nl
KFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICBkaWRDbG9zZUJhY2tlbmQoV1RGTW92ZShy
ZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX3Nv
dXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbXShhdXRvKSB7IH0pOwotICAgIGRpZENsb3NlKHsg
fSk7CisgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmRpZENsb3NlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KQordm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VCYWNrZW5kKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KQogewotICAgIEFTU0VSVCghbV9jbG9zZVJlc3VsdCk7CisgICAgaWYgKG1f
Y2xvc2VSZXN1bHQpCisgICAgICAgIHJldHVybjsKIAogICAgIG1fY2xvc2VSZXN1bHQgPSBXVEZN
b3ZlKHJlc3VsdCk7CiAgICAgYXV0byBjYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1fY2xvc2VD
YWxsYmFja3MsIHsgfSk7CkBAIC0yNDcsNCArMjcwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OnN0b3AoKQogICAgIGNsb3NlSW50ZXJuYWwoW10oYXV0bykgeyB9KTsKIH0K
IAordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxpZGF0ZSgpCit7CisgICAg
Y2xvc2VGaWxlKCk7CisKKyAgICAvLyBJbnZhbGlkYXRpb24gaXMgaW5pdGlhdGVkIGJ5IGJhY2tl
bmQuCisgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMThiNGFlZDVk
NmU5NzE0ZDAwZDk1NjgxM2FjN2YyOTcxZjhhODNkZi4uYjA3Yjk0MDMwMDJkN2QxZGU5YWQ4YTA0
MDViZDhhOWI2NjRmYzE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmgKQEAgLTUyLDE5ICs1MiwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRTaXplKERPTVByb21p
c2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKICAgICB2b2lkIGZsdXNoKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKLSAgICB2b2lkIGRpZENsb3NlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpOwogICAg
IEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gcmVhZChCdWZmZXJTb3VyY2UmJiwgRmls
ZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gd3JpdGUoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsK
ICAgICB1c2luZyBSZXN1bHQgPSBzdGQ6OnZhcmlhbnQ8RXhjZXB0aW9uT3I8dm9pZD4sIEV4Y2Vw
dGlvbk9yPHVpbnQ2NF90Pj47CiAgICAgdm9pZCBjb21wbGV0ZVByb21pc2UoUmVzdWx0JiYpOwor
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiBwcml2YXRlOgogICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlKTsKICAgICBib29sIGlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3Q7CiAgICAg
dXNpbmcgQ2xvc2VDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+OwogICAgIHZvaWQgY2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYpOworICAg
IHZvaWQgY2xvc2VGaWxlKCk7CisgICAgdm9pZCBkaWRDbG9zZUZpbGUoKTsKICAgICBlbnVtIGNs
YXNzIENsb3NlTW9kZSA6IGJvb2wgeyBBc3luYywgU3luYyB9OwogICAgIHZvaWQgY2xvc2VCYWNr
ZW5kKENsb3NlTW9kZSk7CisgICAgdm9pZCBkaWRDbG9zZUJhY2tlbmQoRXhjZXB0aW9uT3I8dm9p
ZD4mJik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFhMGE0M2JlNDZhYzg0NWYzNGQ2MDIx
YTA5OTU2YjBjNzY2YWNhYjQuLmE5ZjgzZTliNzZiMTEyZWE3YjU5YTA5NTYzOTYyYjY1ZGU3ZTlm
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC01Miw2ICs1Miw5IEBAIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6fldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpCiAKIHZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKCkKIHsKKyAgICBmb3Ig
KGF1dG8gaGFuZGxlIDogbV9zeW5jQWNjZXNzSGFuZGxlcy52YWx1ZXMoKSkKKyAgICAgICAgaGFu
ZGxlLT5pbnZhbGlkYXRlKCk7CisKICAgICBzY29wZUNsb3NlZCgpOwogfQogCkBAIC0yODcsNiAr
MjkwLDM1IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSogaGFuZGxlKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgQVNTRVJUKG1fc2NvcGUtPmlkZW50aWZpZXIoKSA9PSBjb250ZXh0SWRlbnRp
Zmllcik7CisgICAgQVNTRVJUKGhhbmRsZSk7CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQo
aWRlbnRpZmllciwgV2Vha1B0ciB7ICpoYW5kbGUgfSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBtYWluVGhyZWFkQ29u
bmVjdGlvbi0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGNvbnRleHRJZGVu
dGlmaWVyLCBudWxscHRyKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc3luY0FjY2Vzc0hh
bmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZp
ZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbl0oKSBtdXRh
YmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnVucmVnaXN0ZXJTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGhh
bmRsZSA9IG1fc3luY0FjY2Vzc0hhbmRsZXMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmIChoYW5k
bGUpCisgICAgICAgIGhhbmRsZS0+aW52YWxpZGF0ZSgpOworfQorCiB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlTmFtZXMoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmIGNhbGxiYWNrKQog
ewogICAgIGlmICghbV9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAppbmRleCAwYjc3ZGM3MDAzNGI0NGY0NzczN2RkODE1NTIxNzQ1MmRm
MTY5YTVjLi5jZGNlNDExNTViN2ZhZjA5ZmRlMjFiOWY3NDUyYzU1NDIwNjJjOGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03MCw2
ICs3MCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSopIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5k
bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lk
IGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSBmaW5hbDsKIAogICAgIFdlYWtQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fc2NvcGU7CiAg
ICAgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbjsKQEAgLTgxLDYgKzg0LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPENhbGxiYWNrSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxi
YWNrPiBtX2dldEhhbmRsZU5hbWVzQ2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZVdpdGhUeXBlQ2Fs
bGJhY2s+IG1fZ2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFj
a0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U3RyaW5nQ2FsbGJhY2s+
IG1fc3RyaW5nQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2FjY2Vzc0hhbmRsZUludmFsaWRhdGlv
bkhhbmRsZXJzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4gbV9zeW5jQWNjZXNzSGFu
ZGxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ci5jcHAKaW5kZXggNDY1ZTcwYzdiMzNlNmY3Y2ExYzdlZDg3NTMyMTM5OGM3ODk1NDM1YS4uYmYz
Mjc0MTIyZjgxOTFjYTFhZTQ1ZmViODRmYmIwNWVkZjUzNzBmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbS5o
IgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiV3Jp
dGFibGVTdHJlYW0uaCIKICNpbmNsdWRlICJXcml0YWJsZVN0cmVhbVNpbmsuaCIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYw
ZTQyODgzOTc1NjhkNDUwZDEyZjE4NWI4ZjZmZWE2MDY2NGUxNzguLjYxNTFlNGQ4OGUzOGFjOWUy
NjFjODJiZTI0ZjVjZTA5YmFlYTViMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NTksNyArMjY1OSw3IEBACiAJCTgzOEY4
NkRCMUY1MDlFN0IwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAw
RThDRkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1
MEI2M0UwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmls
ZVN5c3RlbS5oICovOyB9OwogCQk4Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxl
U3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07Ci0JCTgz
OUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1
QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICov
OyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4MzlBMkYyRTFFMjA0QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQw
MDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1M
V0JSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QUFGRUIxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJ
CTgzOUJFNkQ1MjRGNTg3NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAv
KiBJSVJGaWx0ZXIuaCAqLzsgfTsKQEAgLTI2ODcsNyArMjY4Nyw3IEBACiAJCTgzRDM1QUVDMUM3
MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBE
NUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4
RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBE
NUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUw
QzFDQkYwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVs
bEZJRk8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0
MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9Owor
CQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0
MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzREI5RTBGMjREQTE5
NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAq
LzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlBMDFC
QjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcAppbmRleCA3NGFjZTNlYTljZWU4MzY2MjdkMzkzZDBj
Y2U5MzU5YTFjZDM0ZDI2Li42MzI5ZGVhNTdhMTg3ZmYyNTk3NzcwZjhlNGNhYTY1YmU5NDVkNWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGQx
YmU2MzZmMTJhOWEwYjg3MGIzM2JjYTE2NDZmNGFlMDI0MTdjMTEuLjE4NzZkMTU3NzA4ZTcxMTRi
ZThjN2FhNGIyMTIyYTNiNDgzNWZhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01MCwxNiArNTAsMjAgQEAKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIldvcmtlckZvbnRMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIldvcmtl
ckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9jYXRpb24uaCIKKyNpbmNsdWRlICJX
b3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtlck1lc3Nh
Z2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJSZXBvcnRpbmdQcm94
eS5oIgogI2luY2x1ZGUgIldvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldv
cmtlclNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2Ny
aXB0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNr
Lmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCAzNWQ3M2FjY2VlMzI3ZWI4OWRmOTNhM2Zi
NGNmOTA1MzE5OGE3Nzc4Li5lN2JlNGZkMGFhN2RhOTFlZjc0ZDAzMDQyYjY3MTM1NjA2YzAyNDNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0yOSwx
NSArMjksMTIgQEAKICNpbmNsdWRlICJCYXNlNjRVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKLSNpbmNsdWRl
ICJTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIldpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKLSNp
bmNsdWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiV29ya2Vy
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
KyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
QEAgLTU0LDE0ICs1MSwyMCBAQCBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnM7CiBjbGFzcyBDcnlwdG87CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247
CiBjbGFzcyBGb250RmFjZVNldDsKK2NsYXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwog
Y2xhc3MgUGVyZm9ybWFuY2U7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CitjbGFzcyBTY3JpcHRC
dWZmZXI7CitjbGFzcyBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlcjsKK2NsYXNzIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb247CiBjbGFzcyBXb3JrZXJMb2NhdGlvbjsKK2NsYXNzIFdvcmtlck1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOwogY2xhc3MgV29ya2VyTmF2aWdhdG9yOwogY2xhc3MgV29ya2VyU1dDbGll
bnRDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXb3Jr
ZXJTdG9yYWdlQ29ubmVjdGlvbjsKK2NsYXNzIFdvcmtlclRocmVhZDsKIHN0cnVjdCBXb3JrZXJQ
YXJhbWV0ZXJzOwogCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKQEAgLTkwLDcgKzkzLDcgQEAgcHVi
bGljOgogICAgIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uJiBzdG9yYWdlQ29ubmVjdGlvbigpOwog
ICAgIHN0YXRpYyB2b2lkIHBvc3RGaWxlU3lzdGVtU3RvcmFnZVRhc2soRnVuY3Rpb248dm9pZCgp
PiYmKTsKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGdldEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbihSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsK
LSAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24qIGZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbiogZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbiYgY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogICAgIE1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBtZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigpOwogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMGVmNDE5ZjJkNzEyODNhYjY3YzM2NTE4MzM1NmRjZWZj
Nzk0NDg2Mi4uNDI2ODAxNzM0MGIxOGIwZTc3ZGVlOWQ5MTQ2YTk0NDlmNTk2YjM5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTMwLDYg
KzMwLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJHbG9iYWxTY29wZS5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDYsNiArNDgsOSBAQCBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihJUEM6OkNv
bm5lY3Rpb24mCiB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlv
bkNsb3NlZCgpCiB7CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKworICAgIGZvciAoYXV0
byBpZGVudGlmaWVyIDogbV9zeW5jQWNjZXNzSGFuZGxlcy5rZXlzKCkpCisgICAgICAgIGludmFs
aWRhdGVBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTkzLDQgKzE5OCwyNCBAQCB2b2lkIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6bW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZAogICAgIH0pOwogfQogCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUqKQoreworICAgIG1fc3luY0FjY2Vzc0hhbmRsZXMuYWRkKGlkZW50aWZpZXIs
IGNvbnRleHRJZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc3luY0FjY2Vzc0hh
bmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBjb250
ZXh0SWRlbnRpZmllciA9IG1fc3luY0FjY2Vzc0hhbmRsZXMuZ2V0KGlkZW50aWZpZXIpKSB7Cisg
ICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oY29udGV4dElkZW50aWZp
ZXIsIFtpZGVudGlmaWVyXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlm
IChGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXZWJD
b3JlOjpXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uKCkpCisgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+aW52YWxpZGF0ZUFjY2Vzc0hhbmRs
ZShpZGVudGlmaWVyKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRl
eCBlZTVjNmZlMTljNzgwMmRhMmE3ZWExNTQzNjE2MDUxN2Q2Y2Q1YzJiLi4zZjgxYjRhZmY3ZGNm
NWRjNzIwZDYxNDU1YzUwYjcyYWEyZjY1MTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC02Nyw2ICs2Nyw3IEBAIGNsYXNzIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpGaWxlU3lzdGVtU3Rv
cmFnZUNvCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9z
ZWQoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKQEAgLTg1LDcgKzg2LDExIEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSopIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKIAorICAgIEhhc2hNYXA8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gbV9zeW5jQWNjZXNzSGFuZGxlczsKICAgICBSZWZQdHI8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcyYWQ2YjY4YzI3ZTU5NmI5MThmOTNjZTM1MDRm
OWE3ODc3Zjc5Ny4uZThlOWY4NjZjOTViODJhNTFiMTU3MzA1YTRlMjM5NGNhNDhiY2VjZCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIxLTExLTMwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3
aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3
NzA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgIChrZWVwQWNjZXNzSGFuZGxlQWN0aXZlKToKKwogMjAyMS0x
MS0zMCAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBS
ZWR1Y2UgcmVwZXRpdGlvbiBpbiByZXRyaWV2aW5nIHR5cGVkIGF0dHJpYnV0ZSB2YWx1ZXMgaW4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCmluZGV4IDUyYWI5Y2Uy
OGI3NTYwZGE5MGVhMTNlODkyODhkMTcyOWE0MTBlYmUuLjdiYmUzYzlmNjJjMWQ5N2MzMTk1NTJh
MTkwM2Q5MTVhZDVmN2EyMWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KQEAgLTU5LDE1ICs1OSwzMCBA
QCBzdGF0aWMgTlNTdHJpbmcgKm1haW5GcmFtZVN0cmluZyA9IEAiPHNjcmlwdD4gXAogICAgIDwv
c2NyaXB0PiI7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiB3b3JrZXJCeXRlcyA9IFIiVEVTVFJFU09V
UkNFKAordmFyIHBvc2l0aW9uID0gMDsKK3ZhciBhY2Nlc3NIYW5kbGU7CiBhc3luYyBmdW5jdGlv
biB0ZXN0KCkKIHsKICAgICB0cnkgewogICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5h
dmlnYXRvci5zdG9yYWdlLmdldERpcmVjdG9yeSgpOwogICAgICAgICB2YXIgZmlsZUhhbmRsZSA9
IGF3YWl0IHJvb3RIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnZmlsZS1zeXN0ZW0tYWNjZXNzLnR4dCcs
IHsgJ2NyZWF0ZScgOiB0cnVlIH0pOwotICAgICAgICB2YXIgYWNjZXNzSGFuZGxlID0gYXdhaXQg
ZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAgICAgIGFjY2Vzc0hhbmRs
ZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwogICAgICAgICB2
YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKICAgICAgICAgdmFyIHdyaXRlU2l6ZSA9
IGFjY2Vzc0hhbmRsZS53cml0ZShidWZmZXIsIHsgImF0IiA6IDAgfSk7CiAgICAgICAgIHNlbGYu
cG9zdE1lc3NhZ2UoJ3N1Y2Nlc3M6IHdyaXRlICcgKyB3cml0ZVNpemUgKyAnIGJ5dGVzJyk7Cisg
ICAgICAgIGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUoKTsKKyAgICB9IGNhdGNoKGVycikgeworICAg
ICAgICBzZWxmLnBvc3RNZXNzYWdlKCdlcnJvcjogJyArIGVyci5uYW1lICsgJyAtICcgKyBlcnIu
bWVzc2FnZSk7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorfQorZnVuY3Rpb24ga2VlcEFjY2Vz
c0hhbmRsZUFjdGl2ZSgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBB
cnJheUJ1ZmZlcigxKTsKKyAgICAgICAgdmFyIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0
ZShidWZmZXIsIHsgImF0IiA6IHBvc2l0aW9uIH0pOworICAgICAgICBwb3NpdGlvbiArPSB3cml0
ZVNpemU7CisgICAgICAgIHNldFRpbWVvdXQoa2VlcEFjY2Vzc0hhbmRsZUFjdGl2ZSwgMTAwKTsK
ICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnZXJyb3I6ICcg
KyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOwogICAgICAgICBjbG9zZSgpOwpAQCAt
NzYsNyArOTEsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkKIHRlc3QoKTsKIClURVNUUkVTT1VS
Q0UiOwogCi1URVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIFByb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQor
VEVTVChGaWxlU3lzdGVtQWNjZXNzLCBXZWJQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKIHsKICAg
ICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTEzMCw2ICsxNDUsNTMgQEAgVEVT
VChGaWxlU3lzdGVtQWNjZXNzLCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBi
b2R5XSk7CiB9CiAKK1RFU1QoRmlsZVN5c3RlbUFjY2VzcywgTmV0d29ya1Byb2Nlc3NDcmFzaER1
cmluZ1dyaXRlKQoreworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tGaWxlU3lzdGVtQWNj
ZXNzTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgYXV0byBwcmVmZXJl
bmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5fZmls
ZVN5c3RlbUFjY2Vzc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2FjY2Vzc0hhbmRs
ZUVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX3N0b3JhZ2VBUElFbmFibGVkID0gWUVT
OworICAgIGF1dG8gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxl
ciBhbGxvY10gaW5pdF0pOworICAgIFtzY2hlbWVIYW5kbGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFz
a0hhbmRsZXI6XihXS1dlYlZpZXcgKiwgaWQ8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAg
ICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGE7CisgICAgICAgIE5TVVJMICpyZXF1ZXN0VVJMID0g
dGFzay5yZXF1ZXN0LlVSTDsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3ZWJraXQ6Ly93ZWJr
aXQub3JnL3dvcmtlci5qcyIsIHJlcXVlc3RVUkwuYWJzb2x1dGVTdHJpbmcpOworICAgICAgICBh
dXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
OnJlcXVlc3RVUkwgTUlNRVR5cGU6QCJ0ZXh0L2phdmFzY3JpcHQiIGV4cGVjdGVkQ29udGVudExl
bmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CisgICAgICAgIGRhdGEgPSBbTlNEYXRhIGRh
dGFXaXRoQnl0ZXM6d29ya2VyQnl0ZXMgbGVuZ3RoOnN0cmxlbih3b3JrZXJCeXRlcyldOworICAg
ICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOworICAgICAgICBb
dGFzayBkaWRSZWNlaXZlRGF0YTpkYXRhLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkRmluaXNo
XTsKKyAgICB9XTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOnNjaGVt
ZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAid2Via2l0Il07CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAg
IFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0cmluZyBiYXNlVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAid2Via2l0Oi8vd2Via2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicGFnZSBpcyBsb2FkZWQiLCBb
bGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAic3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAg
Ynl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgLy8gS2lsbCBuZXR3b3Jr
IHByb2Nlc3MuCisgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF90ZXJtaW5h
dGVOZXR3b3JrUHJvY2Vzc107CisKKyAgICAvLyBPcGVuIGFjY2VzcyBoYW5kbGUgc2hvdWxkIGJl
IGNsb3NlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFzaGVzLgorICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1l
c3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJlcnJvcjogSW52YWxpZFN0YXRl
RXJyb3IgLSBBY2Nlc3NIYW5kbGUgaXMgY2xvc2luZyBvciBjbG9zZWQiLCBbbGFzdFNjcmlwdE1l
c3NhZ2UgYm9keV0pOworCisgICAgLy8gQWNjZXNzIGhhbmRsZSBjYW4gYmUgY3JlYXRlZCBhZnRl
ciBuZXR3b3JrIHByb2Nlc3MgaXMgcmVsYXVuY2hlZC4KKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5
XSk7Cit9CisKIHN0YXRpYyBOU1N0cmluZyAqYmFzaWNTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKICAg
ICBhc3luYyBmdW5jdGlvbiBvcGVuKCkgXAogICAgIHsgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445482</attachid>
            <date>2021-11-30 15:49:41 -0800</date>
            <delta_ts>2021-11-30 16:28:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211130154940.patch</filename>
            <type>text/plain</type>
            <size>34639</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMmY4YzJhZWJlZTk0YzFmN2U4MjI5YzQwNDkwNWQ5
YTM1MzY4Y2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uIGtlZXAgdHJhY2sgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIFdoZW4gY29u
bmVjdGlvbiBpcyBjbG9zZWQsIG9yIGFjY2VzcyAKKyAgICAgICAgaGFuZGxlIGlzIGV4cGxpY2l0
bHkgaW52YWxpZGF0ZWQgKGZvciBleGFtcGxlLCBkdWUgdG8gZmlsZSBkZWxldGlvbiBpbiB0aGUg
YmFja2VuZCksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgICAgICB3aWxsIGludmFs
aWRhdGUgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKKyAgICAgICAgTm9ybWFsbHksIHRv
IGNsb3NlIGEgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgKHdoZW4gY2xvc2UoKSBpcyBjYWxs
ZWQgb3IgY29udGV4dCBzdG9wcyksIHdlIG5lZWQgdG86IAorICAgICAgICAxLiBjbG9zZSBmaWxl
IGRlc2NyaXB0b3IgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUpCisgICAg
ICAgIDIuIG5vdGlmeSBiYWNrZW5kIGFib3V0IGNsb3NlIChGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2VCYWNrZW5kKQorICAgICAgICAzLiBnZXQgY2xvc2UgcmVzdWx0IGFuZCBjb21w
bGV0ZSBjYWxsYmFja3MgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tl
bmQpCisgICAgICAgIEZvciBpbnZhbGlkYXRpb24gY2FzZSwgd2Ugb25seSBuZWVkIHRvIHBlcmZv
cm0gc3RlcCAxIGFuZCAzIGJlY2F1c2UgY29ubmVjdGlvbiB0byBiYWNrZW5kIGlzIGxvc3Qgb3Ig
YmFja2VuZAorICAgICAgICBpbml0aWF0ZXMgdGhlIGNsb3NlLgorCisgICAgICAgIEFQSSB0ZXN0
OiBGaWxlU3lzdGVtQWNjZXNzLk5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZQorCisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlk
Q2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlk
YXRlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRv
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2
NDUyMjRlNTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi5iZTRhNDBmYzA0OTk0NTAwOTVkY2Zi
ZTJkNTM5NTFiNTJmYzk2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTExLTMw
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2Vz
cyBjcmFzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgc29tZSBXZWJTV0NsaWVudENvbm5lY3Rpb24gbWVz
c2FnZXMgdG8gYXN5bmMgcmVwbGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5k
ZXggMGVhZDQwMzkyODk4YzFjZGU2NjgwMTViYzM4MTFhZjMyZDM2N2ZkYS4uYTE3NDk1ZDc2NTk2
NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNo
ZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJXb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXgg
YWYxZDJlOWM5YThkODVjOTNmNjI0MjY1NzY0NjI2OWIxNTFhNWNhYS4uYjkzZWY2Zjc3ZGU4NTJh
YTM2NGM2MTQ5Y2ExZDE4NWYzNjU0YzM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCkBAIC05Nyw1ICs5NywyNSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZAogICAgIGNvbm5l
Y3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSogaGFuZGxlKQorewor
ICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29ubmVjdGlvbigpLnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVu
dGlmaWVyLCBjb250ZXh0LT5pZGVudGlmaWVyKCksIGhhbmRsZSk7Cit9CisKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChpc0Nsb3NlZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25uZWN0aW9uKCkudW5yZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaAppbmRleCA4Y2VlMTJjYmRmYmY0MDA5MmY3YTA0MjBhZDkx
YzcxYTgyYWMyOGIxLi45N2Q1NGY2Yjg3MDkyZmZjNzc5ODUxYjhlYjQ4ODgwNjZjYTg2OGZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwogICAgIHZvaWQgY2xvc2Uo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKik7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGE3YTNj
ZmJjNGZhNTMwOTM4OGJkMDE5NjE1MDViYjZhOGE4ZTdlNzIuLmQ5NDk3NThmN2NlZWM3ZGUwYzU5
ZjIyYWU2NzlkMjM3NTNjNzg3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtMzUsNiArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKK2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCiBjbGFz
cyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiB7CkBAIC02MCw2ICs2Miw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U3RyaW5nQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFj
ayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBH
ZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRs
ZVdpdGhUeXBlQ2FsbGJhY2smJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwCmluZGV4IDNjODhlOTc5NTQ5M2Q0YTQ3MTkwZjg1MDgyYmRhZGIzZjVk
MjdkY2MuLmE1OGZhZmFkMmRlMzhhNDA2YmZjNGVjM2MwNDExYTI5NzdkZjM5ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00NywxMSArNDgsMTYgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGMKIHsKICAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgbV9zb3VyY2UtPnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsIHRoaXMpOwogfQogCiBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIHsKICAgICBB
U1NFUlQoaXNDbG9zaW5nT3JDbG9zZWQoKSk7CisKKyAgICBtX3NvdXJjZS0+dW5yZWdpc3RlclN5
bmNBY2Nlc3NIYW5kbGUobV9pZGVudGlmaWVyKTsKKwogICAgIGlmIChtX2Nsb3NlUmVzdWx0KQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE0MiwzNSArMTQ4LDUyIEBAIHZvaWQgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmIGNhbGxiYWNrKQog
ICAgIGlmIChpc0Nsb3NpbmcpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChtX2ZpbGUg
IT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgY2xvc2VGaWxl
KCk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSgpCit7
CisgICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvKiBzY29wZSA9IGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFTU0VSVChzY29wZSk7
CiAKLSAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUpOwogICAgIFdvcmtlckdsb2JhbFNjb3BlOjpwb3N0RmlsZVN5c3RlbVN0b3JhZ2VUYXNr
KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBmaWxlID0gc3RkOjpleGNoYW5nZShtX2Zp
bGUsIEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpLCB3b3JrZXJUaHJlYWQg
PSBSZWYgeyBzY29wZS0+dGhyZWFkKCkgfV0oKSBtdXRhYmxlIHsKICAgICAgICAgRmlsZVN5c3Rl
bTo6Y2xvc2VGaWxlKGZpbGUpOwogICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFzayhbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0oYXV0byYpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jbG9zZUJh
Y2tlbmQoQ2xvc2VNb2RlOjpBc3luYyk7CisgICAgICAgICAgICAgICAgd2Vha1RoaXMtPmRpZENs
b3NlRmlsZSgpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAordm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKCkKK3sKKyAgICBjbG9zZUJhY2tlbmQoQ2xvc2VN
b2RlOjpBc3luYyk7Cit9CisKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZChDbG9zZU1vZGUgbW9kZSkKIHsKKyAgICBpZiAobV9jbG9zZVJlc3VsdCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKG1vZGUgPT0gQ2xvc2VNb2RlOjpBc3luYykgewogICAgICAg
ICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpZENsb3Nl
KFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICBkaWRDbG9zZUJhY2tlbmQoV1RGTW92ZShy
ZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX3Nv
dXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbXShhdXRvKSB7IH0pOwotICAgIGRpZENsb3NlKHsg
fSk7CisgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmRpZENsb3NlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KQordm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VCYWNrZW5kKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KQogewotICAgIEFTU0VSVCghbV9jbG9zZVJlc3VsdCk7CisgICAgaWYgKG1f
Y2xvc2VSZXN1bHQpCisgICAgICAgIHJldHVybjsKIAogICAgIG1fY2xvc2VSZXN1bHQgPSBXVEZN
b3ZlKHJlc3VsdCk7CiAgICAgYXV0byBjYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1fY2xvc2VD
YWxsYmFja3MsIHsgfSk7CkBAIC0yNDcsNCArMjcwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OnN0b3AoKQogICAgIGNsb3NlSW50ZXJuYWwoW10oYXV0bykgeyB9KTsKIH0K
IAordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxpZGF0ZSgpCit7CisgICAg
Y2xvc2VGaWxlKCk7CisKKyAgICAvLyBJbnZhbGlkYXRpb24gaXMgaW5pdGlhdGVkIGJ5IGJhY2tl
bmQuCisgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMThiNGFlZDVk
NmU5NzE0ZDAwZDk1NjgxM2FjN2YyOTcxZjhhODNkZi4uYjA3Yjk0MDMwMDJkN2QxZGU5YWQ4YTA0
MDViZDhhOWI2NjRmYzE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmgKQEAgLTUyLDE5ICs1MiwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRTaXplKERPTVByb21p
c2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKICAgICB2b2lkIGZsdXNoKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKLSAgICB2b2lkIGRpZENsb3NlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpOwogICAg
IEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gcmVhZChCdWZmZXJTb3VyY2UmJiwgRmls
ZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gd3JpdGUoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsK
ICAgICB1c2luZyBSZXN1bHQgPSBzdGQ6OnZhcmlhbnQ8RXhjZXB0aW9uT3I8dm9pZD4sIEV4Y2Vw
dGlvbk9yPHVpbnQ2NF90Pj47CiAgICAgdm9pZCBjb21wbGV0ZVByb21pc2UoUmVzdWx0JiYpOwor
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiBwcml2YXRlOgogICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlKTsKICAgICBib29sIGlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3Q7CiAgICAg
dXNpbmcgQ2xvc2VDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+OwogICAgIHZvaWQgY2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYpOworICAg
IHZvaWQgY2xvc2VGaWxlKCk7CisgICAgdm9pZCBkaWRDbG9zZUZpbGUoKTsKICAgICBlbnVtIGNs
YXNzIENsb3NlTW9kZSA6IGJvb2wgeyBBc3luYywgU3luYyB9OwogICAgIHZvaWQgY2xvc2VCYWNr
ZW5kKENsb3NlTW9kZSk7CisgICAgdm9pZCBkaWRDbG9zZUJhY2tlbmQoRXhjZXB0aW9uT3I8dm9p
ZD4mJik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFhMGE0M2JlNDZhYzg0NWYzNGQ2MDIx
YTA5OTU2YjBjNzY2YWNhYjQuLmE5ZjgzZTliNzZiMTEyZWE3YjU5YTA5NTYzOTYyYjY1ZGU3ZTlm
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC01Miw2ICs1Miw5IEBAIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6fldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpCiAKIHZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKCkKIHsKKyAgICBmb3Ig
KGF1dG8gaGFuZGxlIDogbV9zeW5jQWNjZXNzSGFuZGxlcy52YWx1ZXMoKSkKKyAgICAgICAgaGFu
ZGxlLT5pbnZhbGlkYXRlKCk7CisKICAgICBzY29wZUNsb3NlZCgpOwogfQogCkBAIC0yODcsNiAr
MjkwLDM1IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSogaGFuZGxlKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgQVNTRVJUKG1fc2NvcGUtPmlkZW50aWZpZXIoKSA9PSBjb250ZXh0SWRlbnRp
Zmllcik7CisgICAgQVNTRVJUKGhhbmRsZSk7CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQo
aWRlbnRpZmllciwgV2Vha1B0ciB7ICpoYW5kbGUgfSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBtYWluVGhyZWFkQ29u
bmVjdGlvbi0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGNvbnRleHRJZGVu
dGlmaWVyLCBudWxscHRyKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc3luY0FjY2Vzc0hh
bmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZp
ZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbl0oKSBtdXRh
YmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnVucmVnaXN0ZXJTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGhh
bmRsZSA9IG1fc3luY0FjY2Vzc0hhbmRsZXMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmIChoYW5k
bGUpCisgICAgICAgIGhhbmRsZS0+aW52YWxpZGF0ZSgpOworfQorCiB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlTmFtZXMoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmIGNhbGxiYWNrKQog
ewogICAgIGlmICghbV9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAppbmRleCAwYjc3ZGM3MDAzNGI0NGY0NzczN2RkODE1NTIxNzQ1MmRm
MTY5YTVjLi5jZGNlNDExNTViN2ZhZjA5ZmRlMjFiOWY3NDUyYzU1NDIwNjJjOGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03MCw2
ICs3MCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSopIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5k
bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lk
IGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSBmaW5hbDsKIAogICAgIFdlYWtQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fc2NvcGU7CiAg
ICAgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbjsKQEAgLTgxLDYgKzg0LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPENhbGxiYWNrSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxi
YWNrPiBtX2dldEhhbmRsZU5hbWVzQ2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZVdpdGhUeXBlQ2Fs
bGJhY2s+IG1fZ2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFj
a0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U3RyaW5nQ2FsbGJhY2s+
IG1fc3RyaW5nQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2FjY2Vzc0hhbmRsZUludmFsaWRhdGlv
bkhhbmRsZXJzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4gbV9zeW5jQWNjZXNzSGFu
ZGxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ci5jcHAKaW5kZXggNDY1ZTcwYzdiMzNlNmY3Y2ExYzdlZDg3NTMyMTM5OGM3ODk1NDM1YS4uYmYz
Mjc0MTIyZjgxOTFjYTFhZTQ1ZmViODRmYmIwNWVkZjUzNzBmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbS5o
IgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiV3Jp
dGFibGVTdHJlYW0uaCIKICNpbmNsdWRlICJXcml0YWJsZVN0cmVhbVNpbmsuaCIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYw
ZTQyODgzOTc1NjhkNDUwZDEyZjE4NWI4ZjZmZWE2MDY2NGUxNzguLjYxNTFlNGQ4OGUzOGFjOWUy
NjFjODJiZTI0ZjVjZTA5YmFlYTViMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NTksNyArMjY1OSw3IEBACiAJCTgzOEY4
NkRCMUY1MDlFN0IwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAw
RThDRkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1
MEI2M0UwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmls
ZVN5c3RlbS5oICovOyB9OwogCQk4Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxl
U3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07Ci0JCTgz
OUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1
QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICov
OyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4MzlBMkYyRTFFMjA0QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQw
MDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1M
V0JSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QUFGRUIxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJ
CTgzOUJFNkQ1MjRGNTg3NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAv
KiBJSVJGaWx0ZXIuaCAqLzsgfTsKQEAgLTI2ODcsNyArMjY4Nyw3IEBACiAJCTgzRDM1QUVDMUM3
MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBE
NUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4
RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBE
NUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUw
QzFDQkYwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVs
bEZJRk8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0
MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9Owor
CQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0
MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzREI5RTBGMjREQTE5
NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAq
LzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlBMDFC
QjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcAppbmRleCA3NGFjZTNlYTljZWU4MzY2MjdkMzkzZDBj
Y2U5MzU5YTFjZDM0ZDI2Li42MzI5ZGVhNTdhMTg3ZmYyNTk3NzcwZjhlNGNhYTY1YmU5NDVkNWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGQx
YmU2MzZmMTJhOWEwYjg3MGIzM2JjYTE2NDZmNGFlMDI0MTdjMTEuLjE4NzZkMTU3NzA4ZTcxMTRi
ZThjN2FhNGIyMTIyYTNiNDgzNWZhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01MCwxNiArNTAsMjAgQEAKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIldvcmtlckZvbnRMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIldvcmtl
ckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9jYXRpb24uaCIKKyNpbmNsdWRlICJX
b3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtlck1lc3Nh
Z2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJSZXBvcnRpbmdQcm94
eS5oIgogI2luY2x1ZGUgIldvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldv
cmtlclNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2Ny
aXB0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNr
Lmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCAzNWQ3M2FjY2VlMzI3ZWI4OWRmOTNhM2Zi
NGNmOTA1MzE5OGE3Nzc4Li5lN2JlNGZkMGFhN2RhOTFlZjc0ZDAzMDQyYjY3MTM1NjA2YzAyNDNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0yOSwx
NSArMjksMTIgQEAKICNpbmNsdWRlICJCYXNlNjRVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKLSNpbmNsdWRl
ICJTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIldpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKLSNp
bmNsdWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiV29ya2Vy
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
KyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
QEAgLTU0LDE0ICs1MSwyMCBAQCBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnM7CiBjbGFzcyBDcnlwdG87CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247
CiBjbGFzcyBGb250RmFjZVNldDsKK2NsYXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwog
Y2xhc3MgUGVyZm9ybWFuY2U7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CitjbGFzcyBTY3JpcHRC
dWZmZXI7CitjbGFzcyBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlcjsKK2NsYXNzIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb247CiBjbGFzcyBXb3JrZXJMb2NhdGlvbjsKK2NsYXNzIFdvcmtlck1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOwogY2xhc3MgV29ya2VyTmF2aWdhdG9yOwogY2xhc3MgV29ya2VyU1dDbGll
bnRDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXb3Jr
ZXJTdG9yYWdlQ29ubmVjdGlvbjsKK2NsYXNzIFdvcmtlclRocmVhZDsKIHN0cnVjdCBXb3JrZXJQ
YXJhbWV0ZXJzOwogCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKQEAgLTkwLDcgKzkzLDcgQEAgcHVi
bGljOgogICAgIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uJiBzdG9yYWdlQ29ubmVjdGlvbigpOwog
ICAgIHN0YXRpYyB2b2lkIHBvc3RGaWxlU3lzdGVtU3RvcmFnZVRhc2soRnVuY3Rpb248dm9pZCgp
PiYmKTsKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGdldEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbihSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsK
LSAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24qIGZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbiogZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbiYgY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogICAgIE1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBtZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigpOwogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY1MmEwYzQ3
NjAwODAyNDliOGM4YjZmZDVlNWRkZDQ5ZWFhOWYzZTAuLjYzYmNmY2UyODJlNWM4N2M1YTk0ZDlm
ODljZDkzNTJjYjFkY2FlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDMsNiArNDMsNyBA
QAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJDb25z
b2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5j
bHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvRGVmZXJUZXJtaW5hdGlvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAwZWY0MTlmMmQ3MTI4M2FiNjdjMzY1MTgzMzU2
ZGNlZmM3OTQ0ODYyLi40MjY4MDE3MzQwYjE4YjBlNzdkZWU5ZDkxNDZhOTQ0OWY1OTZiMzkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAt
MzAsNiArMzAsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlckdsb2JhbFNj
b3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Niw2ICs0OCw5IEBAIFdlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiYKIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25u
ZWN0aW9uQ2xvc2VkKCkKIHsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworCisgICAgZm9y
IChhdXRvIGlkZW50aWZpZXIgOiBtX3N5bmNBY2Nlc3NIYW5kbGVzLmtleXMoKSkKKyAgICAgICAg
aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShpZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0xOTMsNCArMTk4LDI0IEBAIHZvaWQgV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjptb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSopCit7CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQoaWRlbnRp
ZmllciwgY29udGV4dElkZW50aWZpZXIpOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zeW5jQWNj
ZXNzSGFuZGxlcy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRv
IGNvbnRleHRJZGVudGlmaWVyID0gbV9zeW5jQWNjZXNzSGFuZGxlcy5nZXQoaWRlbnRpZmllcikp
IHsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhjb250ZXh0SWRl
bnRpZmllciwgW2lkZW50aWZpZXJdKGF1dG8mIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICAg
ICAgaWYgKEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiogY29ubmVjdGlvbiA9IGRvd25jYXN0
PFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5pbnZhbGlkYXRlQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IGVlNWM2ZmUxOWM3ODAyZGEyYTdlYTE1NDM2MTYwNTE3ZDZjZDVjMmIuLjNmODFiNGFm
ZjdkY2Y1ZGM3MjBkNjE0NTVjNTBiNzJhYTJmNjUxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTY3LDYgKzY3LDcgQEAgY2xhc3MgV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ28KIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiYpOwogICAgIHZvaWQgY29ubmVjdGlv
bkNsb3NlZCgpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwpAQCAtODUsNyArODYsMTEgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNsb3NlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFs
OworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogCisgICAgSGFzaE1hcDxXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3N5bmNBY2Nlc3NIYW5kbGVzOwogICAgIFJlZlB0cjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNzJhZDZiNjhjMjdlNTk2YjkxOGY5M2Nl
MzUwNGY5YTc4NzdmNzk3Li5lOGU5Zjg2NmM5NWI4MmE1MWIxNTczMDVhNGUyMzk0Y2E0OGJjZWNk
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjEtMTEtMzAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CisKKyAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgc2hvdWxkIGJlIGludmFsaWRh
dGVkIHdoZW4gbmV0d29yayBwcm9jZXNzIGNyYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODUxODc3MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW06
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUpOgorCiAy
MDIxLTExLTMwICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CiAKICAgICAgICAg
QVg6IFJlZHVjZSByZXBldGl0aW9uIGluIHJldHJpZXZpbmcgdHlwZWQgYXR0cmlidXRlIHZhbHVl
cyBpbiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KaW5kZXggNTJh
YjljZTI4Yjc1NjBkYTkwZWExM2U4OTI4OGQxNzI5YTQxMGViZS4uN2JiZTNjOWY2MmMxZDk3YzMx
OTU1MmExOTAzZDkxNWFkNWY3YTIxYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQpAQCAtNTksMTUgKzU5
LDMwIEBAIHN0YXRpYyBOU1N0cmluZyAqbWFpbkZyYW1lU3RyaW5nID0gQCI8c2NyaXB0PiBcCiAg
ICAgPC9zY3JpcHQ+IjsKIAogc3RhdGljIGNvbnN0IGNoYXIqIHdvcmtlckJ5dGVzID0gUiJURVNU
UkVTT1VSQ0UoCit2YXIgcG9zaXRpb24gPSAwOwordmFyIGFjY2Vzc0hhbmRsZTsKIGFzeW5jIGZ1
bmN0aW9uIHRlc3QoKQogewogICAgIHRyeSB7CiAgICAgICAgIHZhciByb290SGFuZGxlID0gYXdh
aXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7CiAgICAgICAgIHZhciBmaWxlSGFu
ZGxlID0gYXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCdmaWxlLXN5c3RlbS1hY2Nlc3Mu
dHh0JywgeyAnY3JlYXRlJyA6IHRydWUgfSk7Ci0gICAgICAgIHZhciBhY2Nlc3NIYW5kbGUgPSBh
d2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgYWNjZXNz
SGFuZGxlID0gYXdhaXQgZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiAgICAg
ICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMTApOwogICAgICAgICB2YXIgd3JpdGVT
aXplID0gYWNjZXNzSGFuZGxlLndyaXRlKGJ1ZmZlciwgeyAiYXQiIDogMCB9KTsKICAgICAgICAg
c2VsZi5wb3N0TWVzc2FnZSgnc3VjY2Vzczogd3JpdGUgJyArIHdyaXRlU2l6ZSArICcgYnl0ZXMn
KTsKKyAgICAgICAga2VlcEFjY2Vzc0hhbmRsZUFjdGl2ZSgpOworICAgIH0gY2F0Y2goZXJyKSB7
CisgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyAr
IGVyci5tZXNzYWdlKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9Cit9CitmdW5jdGlvbiBrZWVw
QWNjZXNzSGFuZGxlQWN0aXZlKCkKK3sKKyAgICB0cnkgeworICAgICAgICB2YXIgYnVmZmVyID0g
bmV3IEFycmF5QnVmZmVyKDEpOworICAgICAgICB2YXIgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxl
LndyaXRlKGJ1ZmZlciwgeyAiYXQiIDogcG9zaXRpb24gfSk7CisgICAgICAgIHBvc2l0aW9uICs9
IHdyaXRlU2l6ZTsKKyAgICAgICAgc2V0VGltZW91dChrZWVwQWNjZXNzSGFuZGxlQWN0aXZlLCAx
MDApOwogICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdlcnJv
cjogJyArIGVyci5uYW1lICsgJyAtICcgKyBlcnIubWVzc2FnZSk7CiAgICAgICAgIGNsb3NlKCk7
CkBAIC03Niw3ICs5MSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKQogdGVzdCgpOwogKVRFU1RS
RVNPVVJDRSI7CiAKLVRFU1QoRmlsZVN5c3RlbUFjY2VzcywgUHJvY2Vzc0NyYXNoRHVyaW5nV3Jp
dGUpCitURVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIFdlYlByb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQog
ewogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtMTMwLDYgKzE0NSw1MyBA
QCBURVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIFByb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQogICAgIEVY
UEVDVF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNz
YWdlIGJvZHldKTsKIH0KIAorVEVTVChGaWxlU3lzdGVtQWNjZXNzLCBOZXR3b3JrUHJvY2Vzc0Ny
YXNoRHVyaW5nV3JpdGUpCit7CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW0ZpbGVTeXN0
ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gY29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Cisg
ICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKyAgICBhdXRvIHBy
ZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2Vz
Ll9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fYWNjZXNz
SGFuZGxlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fc3RvcmFnZUFQSUVuYWJsZWQg
PSBZRVM7CisgICAgYXV0byBzY2hlbWVIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RVUkxTY2hlbWVI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW3NjaGVtZUhhbmRsZXIgc2V0U3RhcnRVUkxTY2hl
bWVUYXNrSGFuZGxlcjpeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsK
KyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gZGF0YTsKKyAgICAgICAgTlNVUkwgKnJlcXVlc3RV
UkwgPSB0YXNrLnJlcXVlc3QuVVJMOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIndlYmtpdDov
L3dlYmtpdC5vcmcvd29ya2VyLmpzIiwgcmVxdWVzdFVSTC5hYnNvbHV0ZVN0cmluZyk7CisgICAg
ICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdp
dGhVUkw6cmVxdWVzdFVSTCBNSU1FVHlwZTpAInRleHQvamF2YXNjcmlwdCIgZXhwZWN0ZWRDb250
ZW50TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAgICAgICAgZGF0YSA9IFtOU0Rh
dGEgZGF0YVdpdGhCeXRlczp3b3JrZXJCeXRlcyBsZW5ndGg6c3RybGVuKHdvcmtlckJ5dGVzKV07
CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CisgICAg
ICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGEuZ2V0KCldOworICAgICAgICBbdGFzayBkaWRG
aW5pc2hdOworICAgIH1dOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6
c2NoZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ3ZWJraXQiXTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJ3ZWJraXQ6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNj
cmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwYWdlIGlzIGxvYWRl
ZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNj
cmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzdWNjZXNzOiB3cml0
ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBLaWxsIG5l
dHdvcmsgcHJvY2Vzcy4KKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3Rl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzXTsKKworICAgIC8vIE9wZW4gYWNjZXNzIGhhbmRsZSBzaG91
bGQgYmUgY2xvc2VkIHdoZW4gbmV0d29yayBwcm9jZXNzIGNyYXNoZXMuCisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAImVycm9yOiBJbnZhbGlk
U3RhdGVFcnJvciAtIEFjY2Vzc0hhbmRsZSBpcyBjbG9zaW5nIG9yIGNsb3NlZCIsIFtsYXN0U2Ny
aXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBBY2Nlc3MgaGFuZGxlIGNhbiBiZSBjcmVhdGVk
IGFmdGVyIG5ldHdvcmsgcHJvY2VzcyBpcyByZWxhdW5jaGVkLgorICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVD
VF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdl
IGJvZHldKTsKK30KKwogc3RhdGljIE5TU3RyaW5nICpiYXNpY1N0cmluZyA9IEAiPHNjcmlwdD4g
XAogICAgIGFzeW5jIGZ1bmN0aW9uIG9wZW4oKSBcCiAgICAgeyBcCg==
</data>
<flag name="commit-queue"
          id="470676"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445486</attachid>
            <date>2021-11-30 16:24:05 -0800</date>
            <delta_ts>2021-11-30 18:27:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211130162404.patch</filename>
            <type>text/plain</type>
            <size>34675</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMmY4YzJhZWJlZTk0YzFmN2U4MjI5YzQwNDkwNWQ5
YTM1MzY4Y2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uIGtlZXAgdHJhY2sgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIFdoZW4gY29u
bmVjdGlvbiBpcyBjbG9zZWQsIG9yIGFjY2VzcyAKKyAgICAgICAgaGFuZGxlIGlzIGV4cGxpY2l0
bHkgaW52YWxpZGF0ZWQgKGZvciBleGFtcGxlLCBkdWUgdG8gZmlsZSBkZWxldGlvbiBpbiB0aGUg
YmFja2VuZCksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgICAgICB3aWxsIGludmFs
aWRhdGUgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKKyAgICAgICAgTm9ybWFsbHksIHRv
IGNsb3NlIGEgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgKHdoZW4gY2xvc2UoKSBpcyBjYWxs
ZWQgb3IgY29udGV4dCBzdG9wcyksIHdlIG5lZWQgdG86IAorICAgICAgICAxLiBjbG9zZSBmaWxl
IGRlc2NyaXB0b3IgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUpCisgICAg
ICAgIDIuIG5vdGlmeSBiYWNrZW5kIGFib3V0IGNsb3NlIChGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2VCYWNrZW5kKQorICAgICAgICAzLiBnZXQgY2xvc2UgcmVzdWx0IGFuZCBjb21w
bGV0ZSBjYWxsYmFja3MgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tl
bmQpCisgICAgICAgIEZvciBpbnZhbGlkYXRpb24gY2FzZSwgd2Ugb25seSBuZWVkIHRvIHBlcmZv
cm0gc3RlcCAxIGFuZCAzIGJlY2F1c2UgY29ubmVjdGlvbiB0byBiYWNrZW5kIGlzIGxvc3Qgb3Ig
YmFja2VuZAorICAgICAgICBpbml0aWF0ZXMgdGhlIGNsb3NlLgorCisgICAgICAgIEFQSSB0ZXN0
OiBGaWxlU3lzdGVtQWNjZXNzLk5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZQorCisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlk
Q2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlk
YXRlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRv
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2
NDUyMjRlNTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi5iZTRhNDBmYzA0OTk0NTAwOTVkY2Zi
ZTJkNTM5NTFiNTJmYzk2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTExLTMw
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2Vz
cyBjcmFzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgc29tZSBXZWJTV0NsaWVudENvbm5lY3Rpb24gbWVz
c2FnZXMgdG8gYXN5bmMgcmVwbGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5k
ZXggMGVhZDQwMzkyODk4YzFjZGU2NjgwMTViYzM4MTFhZjMyZDM2N2ZkYS4uYTE3NDk1ZDc2NTk2
NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNo
ZXMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJXb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXgg
YWYxZDJlOWM5YThkODVjOTNmNjI0MjY1NzY0NjI2OWIxNTFhNWNhYS4uYjkzZWY2Zjc3ZGU4NTJh
YTM2NGM2MTQ5Y2ExZDE4NWYzNjU0YzM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCkBAIC05Nyw1ICs5NywyNSBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZAogICAgIGNvbm5l
Y3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSogaGFuZGxlKQorewor
ICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgY29ubmVjdGlvbigpLnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVu
dGlmaWVyLCBjb250ZXh0LT5pZGVudGlmaWVyKCksIGhhbmRsZSk7Cit9CisKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChpc0Nsb3NlZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb25uZWN0aW9uKCkudW5yZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaAppbmRleCA4Y2VlMTJjYmRmYmY0MDA5MmY3YTA0MjBhZDkx
YzcxYTgyYWMyOGIxLi45N2Q1NGY2Yjg3MDkyZmZjNzc5ODUxYjhlYjQ4ODgwNjZjYTg2OGZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwogICAgIHZvaWQgY2xvc2Uo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKik7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGE3YTNj
ZmJjNGZhNTMwOTM4OGJkMDE5NjE1MDViYjZhOGE4ZTdlNzIuLmQ5NDk3NThmN2NlZWM3ZGUwYzU5
ZjIyYWU2NzlkMjM3NTNjNzg3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtMzUsNiArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKK2NsYXNzIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCiBjbGFz
cyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiB7CkBAIC02MCw2ICs2Miw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
U3RyaW5nQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFj
ayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBH
ZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRs
ZVdpdGhUeXBlQ2FsbGJhY2smJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuY3BwCmluZGV4IDNjODhlOTc5NTQ5M2Q0YTQ3MTkwZjg1MDgyYmRhZGIzZjVk
MjdkY2MuLmE1OGZhZmFkMmRlMzhhNDA2YmZjNGVjM2MwNDExYTI5NzdkZjM5ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00NywxMSArNDgsMTYgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGMKIHsKICAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgbV9zb3VyY2UtPnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsIHRoaXMpOwogfQogCiBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIHsKICAgICBB
U1NFUlQoaXNDbG9zaW5nT3JDbG9zZWQoKSk7CisKKyAgICBtX3NvdXJjZS0+dW5yZWdpc3RlclN5
bmNBY2Nlc3NIYW5kbGUobV9pZGVudGlmaWVyKTsKKwogICAgIGlmIChtX2Nsb3NlUmVzdWx0KQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE0MiwzNSArMTQ4LDUyIEBAIHZvaWQgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmIGNhbGxiYWNrKQog
ICAgIGlmIChpc0Nsb3NpbmcpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVChtX2ZpbGUg
IT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgY2xvc2VGaWxl
KCk7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSgpCit7
CisgICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KQorICAgICAgICByZXR1cm47CisKICAgICBhdXRvKiBzY29wZSA9IGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFTU0VSVChzY29wZSk7
CiAKLSAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUpOwogICAgIFdvcmtlckdsb2JhbFNjb3BlOjpwb3N0RmlsZVN5c3RlbVN0b3JhZ2VUYXNr
KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBmaWxlID0gc3RkOjpleGNoYW5nZShtX2Zp
bGUsIEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpLCB3b3JrZXJUaHJlYWQg
PSBSZWYgeyBzY29wZS0+dGhyZWFkKCkgfV0oKSBtdXRhYmxlIHsKICAgICAgICAgRmlsZVN5c3Rl
bTo6Y2xvc2VGaWxlKGZpbGUpOwogICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFzayhbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0oYXV0byYpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jbG9zZUJh
Y2tlbmQoQ2xvc2VNb2RlOjpBc3luYyk7CisgICAgICAgICAgICAgICAgd2Vha1RoaXMtPmRpZENs
b3NlRmlsZSgpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAordm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKCkKK3sKKyAgICBjbG9zZUJhY2tlbmQoQ2xvc2VN
b2RlOjpBc3luYyk7Cit9CisKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZChDbG9zZU1vZGUgbW9kZSkKIHsKKyAgICBpZiAobV9jbG9zZVJlc3VsdCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKG1vZGUgPT0gQ2xvc2VNb2RlOjpBc3luYykgewogICAgICAg
ICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpZENsb3Nl
KFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICBkaWRDbG9zZUJhY2tlbmQoV1RGTW92ZShy
ZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX3Nv
dXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbXShhdXRvKSB7IH0pOwotICAgIGRpZENsb3NlKHsg
fSk7CisgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmRpZENsb3NlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KQordm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VCYWNrZW5kKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KQogewotICAgIEFTU0VSVCghbV9jbG9zZVJlc3VsdCk7CisgICAgaWYgKG1f
Y2xvc2VSZXN1bHQpCisgICAgICAgIHJldHVybjsKIAogICAgIG1fY2xvc2VSZXN1bHQgPSBXVEZN
b3ZlKHJlc3VsdCk7CiAgICAgYXV0byBjYWxsYmFja3MgPSBzdGQ6OmV4Y2hhbmdlKG1fY2xvc2VD
YWxsYmFja3MsIHsgfSk7CkBAIC0yNDcsNCArMjcwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OnN0b3AoKQogICAgIGNsb3NlSW50ZXJuYWwoW10oYXV0bykgeyB9KTsKIH0K
IAordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxpZGF0ZSgpCit7CisgICAg
Y2xvc2VGaWxlKCk7CisKKyAgICAvLyBJbnZhbGlkYXRpb24gaXMgaW5pdGlhdGVkIGJ5IGJhY2tl
bmQuCisgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMThiNGFlZDVk
NmU5NzE0ZDAwZDk1NjgxM2FjN2YyOTcxZjhhODNkZi4uYjA3Yjk0MDMwMDJkN2QxZGU5YWQ4YTA0
MDViZDhhOWI2NjRmYzE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmgKQEAgLTUyLDE5ICs1MiwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRTaXplKERPTVByb21p
c2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKICAgICB2b2lkIGZsdXNoKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKLSAgICB2b2lkIGRpZENsb3NlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpOwogICAg
IEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gcmVhZChCdWZmZXJTb3VyY2UmJiwgRmls
ZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gd3JpdGUoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsK
ICAgICB1c2luZyBSZXN1bHQgPSBzdGQ6OnZhcmlhbnQ8RXhjZXB0aW9uT3I8dm9pZD4sIEV4Y2Vw
dGlvbk9yPHVpbnQ2NF90Pj47CiAgICAgdm9pZCBjb21wbGV0ZVByb21pc2UoUmVzdWx0JiYpOwor
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiBwcml2YXRlOgogICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlKTsKICAgICBib29sIGlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3Q7CiAgICAg
dXNpbmcgQ2xvc2VDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+OwogICAgIHZvaWQgY2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYpOworICAg
IHZvaWQgY2xvc2VGaWxlKCk7CisgICAgdm9pZCBkaWRDbG9zZUZpbGUoKTsKICAgICBlbnVtIGNs
YXNzIENsb3NlTW9kZSA6IGJvb2wgeyBBc3luYywgU3luYyB9OwogICAgIHZvaWQgY2xvc2VCYWNr
ZW5kKENsb3NlTW9kZSk7CisgICAgdm9pZCBkaWRDbG9zZUJhY2tlbmQoRXhjZXB0aW9uT3I8dm9p
ZD4mJik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFhMGE0M2JlNDZhYzg0NWYzNGQ2MDIx
YTA5OTU2YjBjNzY2YWNhYjQuLmE5ZjgzZTliNzZiMTEyZWE3YjU5YTA5NTYzOTYyYjY1ZGU3ZTlm
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC01Miw2ICs1Miw5IEBAIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6fldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpCiAKIHZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKCkKIHsKKyAgICBmb3Ig
KGF1dG8gaGFuZGxlIDogbV9zeW5jQWNjZXNzSGFuZGxlcy52YWx1ZXMoKSkKKyAgICAgICAgaGFu
ZGxlLT5pbnZhbGlkYXRlKCk7CisKICAgICBzY29wZUNsb3NlZCgpOwogfQogCkBAIC0yODcsNiAr
MjkwLDM1IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSogaGFuZGxlKQoreworICAgIGlmICghbV9zY29wZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgQVNTRVJUKG1fc2NvcGUtPmlkZW50aWZpZXIoKSA9PSBjb250ZXh0SWRlbnRp
Zmllcik7CisgICAgQVNTRVJUKGhhbmRsZSk7CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQo
aWRlbnRpZmllciwgV2Vha1B0ciB7ICpoYW5kbGUgfSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBtYWluVGhyZWFkQ29u
bmVjdGlvbi0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGNvbnRleHRJZGVu
dGlmaWVyLCBudWxscHRyKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc3luY0FjY2Vzc0hh
bmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZp
ZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbl0oKSBtdXRh
YmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnVucmVnaXN0ZXJTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGhh
bmRsZSA9IG1fc3luY0FjY2Vzc0hhbmRsZXMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmIChoYW5k
bGUpCisgICAgICAgIGhhbmRsZS0+aW52YWxpZGF0ZSgpOworfQorCiB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlTmFtZXMoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmIGNhbGxiYWNrKQog
ewogICAgIGlmICghbV9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAppbmRleCAwYjc3ZGM3MDAzNGI0NGY0NzczN2RkODE1NTIxNzQ1MmRm
MTY5YTVjLi5jZGNlNDExNTViN2ZhZjA5ZmRlMjFiOWY3NDUyYzU1NDIwNjJjOGFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03MCw2
ICs3MCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSopIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5k
bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lk
IGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSBmaW5hbDsKIAogICAgIFdlYWtQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fc2NvcGU7CiAg
ICAgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gbV9tYWluVGhyZWFkQ29ubmVj
dGlvbjsKQEAgLTgxLDYgKzg0LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPENhbGxiYWNrSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxi
YWNrPiBtX2dldEhhbmRsZU5hbWVzQ2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZVdpdGhUeXBlQ2Fs
bGJhY2s+IG1fZ2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFj
a0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U3RyaW5nQ2FsbGJhY2s+
IG1fc3RyaW5nQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2FjY2Vzc0hhbmRsZUludmFsaWRhdGlv
bkhhbmRsZXJzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4gbV9zeW5jQWNjZXNzSGFu
ZGxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1l
ci5jcHAKaW5kZXggNDY1ZTcwYzdiMzNlNmY3Y2ExYzdlZDg3NTMyMTM5OGM3ODk1NDM1YS4uYmYz
Mjc0MTIyZjgxOTFjYTFhZTQ1ZmViODRmYmIwNWVkZjUzNzBmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbS5o
IgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiV3Jp
dGFibGVTdHJlYW0uaCIKICNpbmNsdWRlICJXcml0YWJsZVN0cmVhbVNpbmsuaCIKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYw
ZTQyODgzOTc1NjhkNDUwZDEyZjE4NWI4ZjZmZWE2MDY2NGUxNzguLjYxNTFlNGQ4OGUzOGFjOWUy
NjFjODJiZTI0ZjVjZTA5YmFlYTViMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NTksNyArMjY1OSw3IEBACiAJCTgzOEY4
NkRCMUY1MDlFN0IwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4Rjg2RDcxRjUwOUU2QzAw
RThDRkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggKi87IH07CiAJCTgzOTk0NzBDMUY1
MEI2M0UwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5NDcwNzFGNTBCNjM4MDBFOUQ4NkIgLyogRE9NRmls
ZVN5c3RlbS5oICovOyB9OwogCQk4Mzk5NDcxMDFGNTBCNkZBMDBFOUQ4NkIgLyogSlNET01GaWxl
U3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
Mzk5NDcwRTFGNTBCNkYzMDBFOUQ4NkIgLyogSlNET01GaWxlU3lzdGVtLmggKi87IH07Ci0JCTgz
OUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1
QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICov
OyB9OworCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk4MzlBMkYyRTFFMjA0QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQw
MDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOUFBRkVEMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1M
V0JSRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QUFGRUIxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi87IH07CiAJ
CTgzOUJFNkQ1MjRGNTg3NjIwMDRERjUwRiAvKiBJSVJGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUJFNkQyMjRGNTg3NTUwMDRERjUwRiAv
KiBJSVJGaWx0ZXIuaCAqLzsgfTsKQEAgLTI2ODcsNyArMjY4Nyw3IEBACiAJCTgzRDM1QUVDMUM3
MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBE
NUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4
RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBE
NUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDUxMUY2MjUw
QzFDQkYwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVs
bEZJRk8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0
MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9Owor
CQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0
MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzREI5RTBGMjREQTE5
NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAq
LzsgfTsKIAkJODNFMzU5QTIxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UzNTlBMDFC
QjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcAppbmRleCA3NGFjZTNlYTljZWU4MzY2MjdkMzkzZDBj
Y2U5MzU5YTFjZDM0ZDI2Li42MzI5ZGVhNTdhMTg3ZmYyNTk3NzcwZjhlNGNhYTY1YmU5NDVkNWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGQx
YmU2MzZmMTJhOWEwYjg3MGIzM2JjYTE2NDZmNGFlMDI0MTdjMTEuLjE4NzZkMTU3NzA4ZTcxMTRi
ZThjN2FhNGIyMTIyYTNiNDgzNWZhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01MCwxNiArNTAsMjAgQEAKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIldvcmtlckZvbnRMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIldvcmtl
ckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9jYXRpb24uaCIKKyNpbmNsdWRlICJX
b3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtlck1lc3Nh
Z2luZ1Byb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJSZXBvcnRpbmdQcm94
eS5oIgogI2luY2x1ZGUgIldvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldv
cmtlclNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2Ny
aXB0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNr
Lmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCAzNWQ3M2FjY2VlMzI3ZWI4OWRmOTNhM2Zi
NGNmOTA1MzE5OGE3Nzc4Li5lN2JlNGZkMGFhN2RhOTFlZjc0ZDAzMDQyYjY3MTM1NjA2YzAyNDNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0yOSwx
NSArMjksMTIgQEAKICNpbmNsdWRlICJCYXNlNjRVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2VCaXRtYXAuaCIKLSNpbmNsdWRl
ICJTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIldpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKLSNp
bmNsdWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiV29ya2Vy
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
KyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
QEAgLTU0LDE0ICs1MSwyMCBAQCBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnM7CiBjbGFzcyBDcnlwdG87CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247
CiBjbGFzcyBGb250RmFjZVNldDsKK2NsYXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwog
Y2xhc3MgUGVyZm9ybWFuY2U7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CitjbGFzcyBTY3JpcHRC
dWZmZXI7CitjbGFzcyBTY3JpcHRCdWZmZXJTb3VyY2VQcm92aWRlcjsKK2NsYXNzIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb247CiBjbGFzcyBXb3JrZXJMb2NhdGlvbjsKK2NsYXNzIFdvcmtlck1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyOwogY2xhc3MgV29ya2VyTmF2aWdhdG9yOwogY2xhc3MgV29ya2VyU1dDbGll
bnRDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb247CiBjbGFzcyBXb3Jr
ZXJTdG9yYWdlQ29ubmVjdGlvbjsKK2NsYXNzIFdvcmtlclRocmVhZDsKIHN0cnVjdCBXb3JrZXJQ
YXJhbWV0ZXJzOwogCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKQEAgLTkwLDcgKzkzLDcgQEAgcHVi
bGljOgogICAgIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uJiBzdG9yYWdlQ29ubmVjdGlvbigpOwog
ICAgIHN0YXRpYyB2b2lkIHBvc3RGaWxlU3lzdGVtU3RvcmFnZVRhc2soRnVuY3Rpb248dm9pZCgp
PiYmKTsKICAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGdldEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbihSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsK
LSAgICBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24qIGZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbigpOworICAgIFdFQkNPUkVfRVhQT1JUIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbiogZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbiYgY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogICAgIE1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBtZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigpOwogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDY1MmEwYzQ3
NjAwODAyNDliOGM4YjZmZDVlNWRkZDQ5ZWFhOWYzZTAuLmRjZmI3Y2JhNWMzOTM0MmZlNTY4Y2Fk
ZmViNGE5YjBkYTNmNWJhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNDMsNiArNDMsOCBA
QAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJDb25z
b2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5j
bHVkZSAiV29ya2VyT3JXb3JrbGV0VGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5o
IgogI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVmZXJUZXJtaW5h
dGlvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAppbmRleCAwZWY0MTlmMmQ3MTI4M2FiNjdjMzY1MTgzMzU2ZGNlZmM3OTQ0ODYyLi40MjY4MDE3
MzQwYjE4YjBlNzdkZWU5ZDkxNDZhOTQ0OWY1OTZiMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlckdsb2JhbFNjb3BlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkBAIC00Niw2ICs0OCw5IEBAIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYKIHZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKCkKIHsKICAg
ICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworCisgICAgZm9yIChhdXRvIGlkZW50aWZpZXIgOiBt
X3N5bmNBY2Nlc3NIYW5kbGVzLmtleXMoKSkKKyAgICAgICAgaW52YWxpZGF0ZUFjY2Vzc0hhbmRs
ZShpZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmNsb3NlSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCkBAIC0xOTMsNCArMTk4LDI0IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjptb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkCiAgICAgfSk7
CiB9CiAKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpyZWdpc3RlclN5bmNB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSopCit7
CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQoaWRlbnRpZmllciwgY29udGV4dElkZW50aWZp
ZXIpOworfQorCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dW5yZWdpc3Rl
clN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5yZW1vdmUoaWRl
bnRpZmllcik7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZh
bGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGNvbnRleHRJZGVudGlmaWVyID0g
bV9zeW5jQWNjZXNzSGFuZGxlcy5nZXQoaWRlbnRpZmllcikpIHsKKyAgICAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhjb250ZXh0SWRlbnRpZmllciwgW2lkZW50aWZpZXJd
KGF1dG8mIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbiogY29ubmVjdGlvbiA9IGRvd25jYXN0PFdlYkNvcmU6Oldvcmtlckdsb2Jh
bFNjb3BlPihjb250ZXh0KS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKKyAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLT5pbnZhbGlkYXRlQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIpOwor
ICAgICAgICB9KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IGVlNWM2ZmUxOWM3ODAy
ZGEyYTdlYTE1NDM2MTYwNTE3ZDZjZDVjMmIuLjNmODFiNGFmZjdkY2Y1ZGM3MjBkNjE0NTVjNTBi
NzJhYTJmNjUxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmgKQEAgLTY3LDYgKzY3LDcgQEAgY2xhc3MgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ28KIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbiYpOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZCgpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiYpOwpAQCAtODUsNyArODYsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNsb3NlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZp
bmFsOworICAgIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKikgZmlu
YWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0
ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIpIGZpbmFsOwogCisgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBtX3N5bmNBY2Nlc3NIYW5kbGVzOwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBjNzJhZDZiNjhjMjdlNTk2YjkxOGY5M2NlMzUwNGY5YTc4NzdmNzk3Li5lOGU5
Zjg2NmM5NWI4MmE1MWIxNTczMDVhNGUyMzk0Y2E0OGJjZWNkIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEt
MzAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUgc2hvdWxkIGJlIGludmFsaWRhdGVkIHdoZW4gbmV0d29yayBwcm9j
ZXNzIGNyYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMjYwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUxODc3MDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW06CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUpOgorCiAyMDIxLTExLTMwICBUeWxlciBXaWxj
b2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFJlZHVjZSByZXBldGl0aW9u
IGluIHJldHJpZXZpbmcgdHlwZWQgYXR0cmlidXRlIHZhbHVlcyBpbiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KaW5kZXggNTJhYjljZTI4Yjc1NjBkYTkwZWExM2U4
OTI4OGQxNzI5YTQxMGViZS4uN2JiZTNjOWY2MmMxZDk3YzMxOTU1MmExOTAzZDkxNWFkNWY3YTIx
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxl
U3lzdGVtQWNjZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQpAQCAtNTksMTUgKzU5LDMwIEBAIHN0YXRpYyBOU1N0cmlu
ZyAqbWFpbkZyYW1lU3RyaW5nID0gQCI8c2NyaXB0PiBcCiAgICAgPC9zY3JpcHQ+IjsKIAogc3Rh
dGljIGNvbnN0IGNoYXIqIHdvcmtlckJ5dGVzID0gUiJURVNUUkVTT1VSQ0UoCit2YXIgcG9zaXRp
b24gPSAwOwordmFyIGFjY2Vzc0hhbmRsZTsKIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKQogewogICAg
IHRyeSB7CiAgICAgICAgIHZhciByb290SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2Uu
Z2V0RGlyZWN0b3J5KCk7CiAgICAgICAgIHZhciBmaWxlSGFuZGxlID0gYXdhaXQgcm9vdEhhbmRs
ZS5nZXRGaWxlSGFuZGxlKCdmaWxlLXN5c3RlbS1hY2Nlc3MudHh0JywgeyAnY3JlYXRlJyA6IHRy
dWUgfSk7Ci0gICAgICAgIHZhciBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgYWNjZXNzSGFuZGxlID0gYXdhaXQgZmlsZUhh
bmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiAgICAgICAgIHZhciBidWZmZXIgPSBuZXcg
QXJyYXlCdWZmZXIoMTApOwogICAgICAgICB2YXIgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxlLndy
aXRlKGJ1ZmZlciwgeyAiYXQiIDogMCB9KTsKICAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnc3Vj
Y2Vzczogd3JpdGUgJyArIHdyaXRlU2l6ZSArICcgYnl0ZXMnKTsKKyAgICAgICAga2VlcEFjY2Vz
c0hhbmRsZUFjdGl2ZSgpOworICAgIH0gY2F0Y2goZXJyKSB7CisgICAgICAgIHNlbGYucG9zdE1l
c3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlKTsKKyAgICAg
ICAgY2xvc2UoKTsKKyAgICB9Cit9CitmdW5jdGlvbiBrZWVwQWNjZXNzSGFuZGxlQWN0aXZlKCkK
K3sKKyAgICB0cnkgeworICAgICAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDEpOwor
ICAgICAgICB2YXIgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxlLndyaXRlKGJ1ZmZlciwgeyAiYXQi
IDogcG9zaXRpb24gfSk7CisgICAgICAgIHBvc2l0aW9uICs9IHdyaXRlU2l6ZTsKKyAgICAgICAg
c2V0VGltZW91dChrZWVwQWNjZXNzSGFuZGxlQWN0aXZlLCAxMDApOwogICAgIH0gY2F0Y2ggKGVy
cikgewogICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdlcnJvcjogJyArIGVyci5uYW1lICsgJyAt
ICcgKyBlcnIubWVzc2FnZSk7CiAgICAgICAgIGNsb3NlKCk7CkBAIC03Niw3ICs5MSw3IEBAIGFz
eW5jIGZ1bmN0aW9uIHRlc3QoKQogdGVzdCgpOwogKVRFU1RSRVNPVVJDRSI7CiAKLVRFU1QoRmls
ZVN5c3RlbUFjY2VzcywgUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCitURVNUKEZpbGVTeXN0ZW1B
Y2Nlc3MsIFdlYlByb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQogewogICAgIGF1dG8gaGFuZGxlciA9
IGFkb3B0TlMoW1tGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
ICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwpAQCAtMTMwLDYgKzE0NSw1MyBAQCBURVNUKEZpbGVTeXN0ZW1BY2Nl
c3MsIFByb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQogICAgIEVYUEVDVF9XS19TVFJFUShAInN1Y2Nl
c3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKIH0KIAorVEVT
VChGaWxlU3lzdGVtQWNjZXNzLCBOZXR3b3JrUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCit7Cisg
ICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxl
ciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVz
ZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVuY2VzLl9maWxlU3lzdGVtQWNjZXNzRW5h
YmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fYWNjZXNzSGFuZGxlRW5hYmxlZCA9IFlFUzsK
KyAgICBwcmVmZXJlbmNlcy5fc3RvcmFnZUFQSUVuYWJsZWQgPSBZRVM7CisgICAgYXV0byBzY2hl
bWVIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RVUkxTY2hlbWVIYW5kbGVyIGFsbG9jXSBpbml0XSk7
CisgICAgW3NjaGVtZUhhbmRsZXIgc2V0U3RhcnRVUkxTY2hlbWVUYXNrSGFuZGxlcjpeKFdLV2Vi
VmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgUmV0YWluUHRyPE5T
RGF0YT4gZGF0YTsKKyAgICAgICAgTlNVUkwgKnJlcXVlc3RVUkwgPSB0YXNrLnJlcXVlc3QuVVJM
OworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIndlYmtpdDovL3dlYmtpdC5vcmcvd29ya2VyLmpz
IiwgcmVxdWVzdFVSTC5hYnNvbHV0ZVN0cmluZyk7CisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBh
ZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6cmVxdWVzdFVSTCBNSU1F
VHlwZTpAInRleHQvamF2YXNjcmlwdCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjAgdGV4dEVuY29k
aW5nTmFtZTpuaWxdKTsKKyAgICAgICAgZGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczp3b3Jr
ZXJCeXRlcyBsZW5ndGg6c3RybGVuKHdvcmtlckJ5dGVzKV07CisgICAgICAgIFt0YXNrIGRpZFJl
Y2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVE
YXRhOmRhdGEuZ2V0KCldOworICAgICAgICBbdGFzayBkaWRGaW5pc2hdOworICAgIH1dOworICAg
IFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlci5nZXQoKSBm
b3JVUkxTY2hlbWU6QCJ3ZWJraXQiXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ3
ZWJraXQ6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwYWdlIGlzIGxvYWRlZCIsIFtsYXN0U2NyaXB0TWVzc2Fn
ZSBib2R5XSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdGFydCgpIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2Ny
aXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBLaWxsIG5ldHdvcmsgcHJvY2Vzcy4KKyAgICBb
W2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNz
XTsKKworICAgIC8vIE9wZW4gYWNjZXNzIGhhbmRsZSBzaG91bGQgYmUgY2xvc2VkIHdoZW4gbmV0
d29yayBwcm9jZXNzIGNyYXNoZXMuCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwor
ICAgIEVYUEVDVF9XS19TVFJFUShAImVycm9yOiBJbnZhbGlkU3RhdGVFcnJvciAtIEFjY2Vzc0hh
bmRsZSBpcyBjbG9zaW5nIG9yIGNsb3NlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisK
KyAgICAvLyBBY2Nlc3MgaGFuZGxlIGNhbiBiZSBjcmVhdGVkIGFmdGVyIG5ldHdvcmsgcHJvY2Vz
cyBpcyByZWxhdW5jaGVkLgorICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAInN1Y2Nlc3M6
IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKK30KKwogc3RhdGlj
IE5TU3RyaW5nICpiYXNpY1N0cmluZyA9IEAiPHNjcmlwdD4gXAogICAgIGFzeW5jIGZ1bmN0aW9u
IG9wZW4oKSBcCiAgICAgeyBcCg==
</data>
<flag name="commit-queue"
          id="470696"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445499</attachid>
            <date>2021-11-30 18:15:40 -0800</date>
            <delta_ts>2021-11-30 21:27:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211130181539.patch</filename>
            <type>text/plain</type>
            <size>35219</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMmY4YzJhZWJlZTk0YzFmN2U4MjI5YzQwNDkwNWQ5
YTM1MzY4Y2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uIGtlZXAgdHJhY2sgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIFdoZW4gY29u
bmVjdGlvbiBpcyBjbG9zZWQsIG9yIGFjY2VzcyAKKyAgICAgICAgaGFuZGxlIGlzIGV4cGxpY2l0
bHkgaW52YWxpZGF0ZWQgKGZvciBleGFtcGxlLCBkdWUgdG8gZmlsZSBkZWxldGlvbiBpbiB0aGUg
YmFja2VuZCksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgICAgICB3aWxsIGludmFs
aWRhdGUgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKKyAgICAgICAgTm9ybWFsbHksIHRv
IGNsb3NlIGEgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgKHdoZW4gY2xvc2UoKSBpcyBjYWxs
ZWQgb3IgY29udGV4dCBzdG9wcyksIHdlIG5lZWQgdG86IAorICAgICAgICAxLiBjbG9zZSBmaWxl
IGRlc2NyaXB0b3IgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUpCisgICAg
ICAgIDIuIG5vdGlmeSBiYWNrZW5kIGFib3V0IGNsb3NlIChGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2VCYWNrZW5kKQorICAgICAgICAzLiBnZXQgY2xvc2UgcmVzdWx0IGFuZCBjb21w
bGV0ZSBjYWxsYmFja3MgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tl
bmQpCisgICAgICAgIEZvciBpbnZhbGlkYXRpb24gY2FzZSwgd2Ugb25seSBuZWVkIHRvIHBlcmZv
cm0gc3RlcCAxIGFuZCAzIGJlY2F1c2UgY29ubmVjdGlvbiB0byBiYWNrZW5kIGlzIGxvc3Qgb3Ig
YmFja2VuZAorICAgICAgICBpbml0aWF0ZXMgdGhlIGNsb3NlLgorCisgICAgICAgIEFQSSB0ZXN0
OiBGaWxlU3lzdGVtQWNjZXNzLk5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZQorCisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlk
Q2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlk
YXRlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRv
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2
NDUyMjRlNTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi5iZTRhNDBmYzA0OTk0NTAwOTVkY2Zi
ZTJkNTM5NTFiNTJmYzk2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTExLTMw
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2Vz
cyBjcmFzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgc29tZSBXZWJTV0NsaWVudENvbm5lY3Rpb24gbWVz
c2FnZXMgdG8gYXN5bmMgcmVwbGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYmY4OTU2MTgyYmZj
MjIxM2U1NGJhYzMzMDQ5NDVlM2I2YjIyNGVjNC4uZWNhNWNhZWU4ZmNiOTQ3NzE4Zjg3NzVhNTJm
YzYyMTIzZTJmNTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNzU1LDYgKzE3NTUsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgd29ya2Vycy9Xb3JrZXJB
bmltYXRpb25Db250cm9sbGVyLmgKICAgICB3b3JrZXJzL1dvcmtlckRlYnVnZ2VyUHJveHkuaAog
ICAgIHdvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKKyAgICB3b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmgKICAgICB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKICAgICB3b3JrZXJz
L1dvcmtlck9yV29ya2xldFRocmVhZC5oCiAgICAgd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCmluZGV4IDBlYWQ0MDM5Mjg5OGMxY2RlNjY4MDE1
YmMzODExYWYzMmQzNjdmZGEuLmExNzQ5NWQ3NjU5NjU2ZmUyZGQ5Y2NhM2QzNzExMjIxZmU0OGQx
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN1cHBsZW1l
bnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGFmMWQyZTljOWE4ZDg1YzkzZjYyNDI2NTc2
NDYyNjliMTUxYTVjYWEuLmI5M2VmNmY3N2RlODUyYWEzNjRjNjE0OWNhMWQxODVmMzY1NGMzODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtOTcsNSArOTcsMjUgQEAgdm9p
ZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmQKICAgICBjb25uZWN0aW9uKCkuY2xvc2UoaWRlbnRpZmllcigp
LCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUqIGhhbmRsZSkKK3sKKyAgICBpZiAoaXNDbG9zZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rpb24o
KS5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgY29udGV4dC0+aWRlbnRpZmll
cigpLCBoYW5kbGUpOworfQorCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp1bnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y29ubmVjdGlvbigpLnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5k
ZXggOGNlZTEyY2JkZmJmNDAwOTJmN2EwNDIwYWQ5MWM3MWE4MmFjMjhiMS4uOTdkNTRmNmI4NzA5
MmZmYzc3OTg1MWI4ZWI0ODg4MDY2Y2E4NjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU+PiYmKTsKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4m
Jik7CisgICAgdm9pZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSopOworICAgIHZv
aWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBS
ZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCBhN2EzY2ZiYzRmYTUzMDkzODhiZDAxOTYxNTA1YmI2
YThhOGU3ZTcyLi5kOTQ5NzU4ZjdjZWVjN2RlMGM1OWYyMmFlNjc5ZDIzNzUzYzc4Nzg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KQEAgLTM1LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOwogY2xhc3MgRmlsZVN5c3RlbUZpbGVI
YW5kbGU7CitjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTsKIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4gewpAQCAtNjAsNiArNjIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEZp
bGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZ0NhbGxiYWNrJiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRIYW5kbGVOYW1l
cyhGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpID0gMDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCAzYzg4
ZTk3OTU0OTNkNGE0NzE5MGY4NTA4MmJkYWRiM2Y1ZDI3ZGNjLi5hNThmYWZhZDJkZTM4YTQwNmJm
YzRlYzNjMDQxMWEyOTc3ZGYzOWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtRmlsZUhh
bmRsZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiV29y
a2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsMTEg
KzQ4LDE2IEBAIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjCiB7CiAgICAgQVNTRVJUKG1fZmlsZSAh
PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKKworICAgIG1fc291cmNlLT5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUobV9pZGVu
dGlmaWVyLCB0aGlzKTsKIH0KIAogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSgpCiB7CiAgICAgQVNTRVJUKGlzQ2xvc2luZ09yQ2xvc2VkKCkp
OworCisgICAgbV9zb3VyY2UtPnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKG1faWRlbnRpZmll
cik7CisKICAgICBpZiAobV9jbG9zZVJlc3VsdCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDIs
MzUgKzE0OCw1MiBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVy
bmFsKENsb3NlQ2FsbGJhY2smJiBjYWxsYmFjaykKICAgICBpZiAoaXNDbG9zaW5nKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpOworICAgIGNsb3NlRmlsZSgpOworfQorCit2b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUoKQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
YXV0byogc2NvcGUgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKICAgICBBU1NFUlQoc2NvcGUpOwogCi0gICAgQVNTRVJUKG1fZmlsZSAhPSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICBXb3JrZXJHbG9iYWxT
Y29wZTo6cG9zdEZpbGVTeXN0ZW1TdG9yYWdlVGFzayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgZmlsZSA9IHN0ZDo6ZXhjaGFuZ2UobV9maWxlLCBGaWxlU3lzdGVtOjppbnZhbGlkUGxh
dGZvcm1GaWxlSGFuZGxlKSwgd29ya2VyVGhyZWFkID0gUmVmIHsgc2NvcGUtPnRocmVhZCgpIH1d
KCkgbXV0YWJsZSB7CiAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShmaWxlKTsKICAgICAg
ICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2soW3dlYWtUaGlzID0gV1RGTW92ZSh3
ZWFrVGhpcyldKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAg
ICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2xvc2VCYWNrZW5kKENsb3NlTW9kZTo6QXN5bmMpOwor
ICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZUZpbGUoKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlRmls
ZSgpCit7CisgICAgY2xvc2VCYWNrZW5kKENsb3NlTW9kZTo6QXN5bmMpOworfQorCiB2b2lkIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQoQ2xvc2VNb2RlIG1vZGUpCiB7
CisgICAgaWYgKG1fY2xvc2VSZXN1bHQpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChtb2Rl
ID09IENsb3NlTW9kZTo6QXN5bmMpIHsKICAgICAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRp
ZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBkaWRDbG9zZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAg
ICAgICAgZGlkQ2xvc2VCYWNrZW5kKFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgIH0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwg
W10oYXV0bykgeyB9KTsKLSAgICBkaWRDbG9zZSh7IH0pOworICAgIGRpZENsb3NlQmFja2VuZCh7
IH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZShFeGNl
cHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmRpZENsb3NlQmFja2VuZChFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKIHsKLSAgICBBU1NF
UlQoIW1fY2xvc2VSZXN1bHQpOworICAgIGlmIChtX2Nsb3NlUmVzdWx0KQorICAgICAgICByZXR1
cm47CiAKICAgICBtX2Nsb3NlUmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpOwogICAgIGF1dG8gY2Fs
bGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2Nsb3NlQ2FsbGJhY2tzLCB7IH0pOwpAQCAtMjQ3LDQg
KzI3MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpzdG9wKCkKICAgICBj
bG9zZUludGVybmFsKFtdKGF1dG8pIHsgfSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OmludmFsaWRhdGUoKQoreworICAgIGNsb3NlRmlsZSgpOworCisgICAgLy8gSW52
YWxpZGF0aW9uIGlzIGluaXRpYXRlZCBieSBiYWNrZW5kLgorICAgIGRpZENsb3NlQmFja2VuZCh7
IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5oCmluZGV4IDE4YjRhZWQ1ZDZlOTcxNGQwMGQ5NTY4MTNhYzdmMjk3MWY4
YTgzZGYuLmIwN2I5NDAzMDAyZDdkMWRlOWFkOGEwNDA1YmQ4YTliNjY0ZmMxOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC01MiwxOSArNTIsMjIgQEAgcHVi
bGljOgogICAgIHZvaWQgZ2V0U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25n
TG9uZz4mJik7CiAgICAgdm9pZCBmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAg
ICAgdm9pZCBjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7Ci0gICAgdm9pZCBkaWRD
bG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25n
IGxvbmc+IHJlYWQoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsK
ICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJjZSYm
LCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CiAgICAgdXNpbmcgUmVzdWx0ID0gc3RkOjp2
YXJpYW50PEV4Y2VwdGlvbk9yPHZvaWQ+LCBFeGNlcHRpb25Pcjx1aW50NjRfdD4+OwogICAgIHZv
aWQgY29tcGxldGVQcm9taXNlKFJlc3VsdCYmKTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKIAog
cHJpdmF0ZToKICAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgYm9vbCBp
c0Nsb3NpbmdPckNsb3NlZCgpIGNvbnN0OwogICAgIHVzaW5nIENsb3NlQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB2b2lkIGNsb3Nl
SW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmKTsKKyAgICB2b2lkIGNsb3NlRmlsZSgpOworICAgIHZv
aWQgZGlkQ2xvc2VGaWxlKCk7CiAgICAgZW51bSBjbGFzcyBDbG9zZU1vZGUgOiBib29sIHsgQXN5
bmMsIFN5bmMgfTsKICAgICB2b2lkIGNsb3NlQmFja2VuZChDbG9zZU1vZGUpOworICAgIHZvaWQg
ZGlkQ2xvc2VCYWNrZW5kKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpOwogCiAgICAgLy8gQWN0aXZlRE9N
T2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAppbmRleCAxYTBhNDNiZTQ2YWM4NDVmMzRkNjAyMWEwOTk1NmIwYzc2NmFjYWI0Li5hOWY4M2U5
Yjc2YjExMmVhN2I1OWEwOTU2Mzk2MmI2NWRlN2U5ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNTIsNiArNTIsOSBAQCBX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246On5Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24oKQogCiB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y29ubmVjdGlvbkNsb3NlZCgpCiB7CisgICAgZm9yIChhdXRvIGhhbmRsZSA6IG1fc3luY0FjY2Vz
c0hhbmRsZXMudmFsdWVzKCkpCisgICAgICAgIGhhbmRsZS0+aW52YWxpZGF0ZSgpOworCiAgICAg
c2NvcGVDbG9zZWQoKTsKIH0KIApAQCAtMjg3LDYgKzI5MCwzNSBAQCB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZgogICAgIH0pOwogfQogCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUqIGhhbmRsZSkKK3sK
KyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX3Njb3Bl
LT5pZGVudGlmaWVyKCkgPT0gY29udGV4dElkZW50aWZpZXIpOworICAgIEFTU0VSVChoYW5kbGUp
OworICAgIG1fc3luY0FjY2Vzc0hhbmRsZXMuYWRkKGlkZW50aWZpZXIsIFdlYWtQdHIgeyAqaGFu
ZGxlIH0pOworCisgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciwgY29udGV4dElkZW50
aWZpZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbl0oKSBt
dXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShpZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbnVsbHB0cik7CisgICAgfSk7
Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp1bnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLnJlbW92ZShpZGVudGlmaWVyKTsK
KyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9
IG1fbWFpblRocmVhZENvbm5lY3Rpb25dKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRD
b25uZWN0aW9uLT51bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKTsKKyAgICB9
KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRh
dGVBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBoYW5kbGUgPSBtX3N5bmNBY2Nlc3NIYW5kbGVz
LmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoaGFuZGxlKQorICAgICAgICBoYW5kbGUtPmludmFs
aWRhdGUoKTsKK30KKwogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Omdl
dEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdldEhh
bmRsZU5hbWVzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMGI3
N2RjNzAwMzRiNDRmNDc3MzdkZDgxNTUyMTc0NTJkZjE2OWE1Yy4uY2RjZTQxMTU1YjdmYWYwOWZk
ZTIxYjlmNzQ1MmM1NTQyMDYyYzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNzAsNiArNzAsOSBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZp
bmFsOwogICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5k
bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUqKSBmaW5hbDsKKyAg
ICB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CiAKICAgICBXZWFrUHRy
PFdvcmtlckdsb2JhbFNjb3BlPiBtX3Njb3BlOwogICAgIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24+IG1fbWFpblRocmVhZENvbm5lY3Rpb247CkBAIC04MSw2ICs4NCw4IEBAIHBy
aXZhdGU6CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6R2V0SGFuZGxlTmFtZXNDYWxsYmFjaz4gbV9nZXRIYW5kbGVOYW1lc0NhbGxi
YWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrPiBtX2dldEhhbmRsZVdpdGhUeXBl
Q2FsbGJhY2tzOwogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlN0cmluZ0NhbGxiYWNrPiBtX3N0cmluZ0NhbGxiYWNrczsKKyAgICBI
YXNoTWFwPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRnVuY3Rpb248dm9p
ZCgpPj4gbV9hY2Nlc3NIYW5kbGVJbnZhbGlkYXRpb25IYW5kbGVyczsKKyAgICBIYXNoTWFwPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2Vha1B0cjxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4+IG1fc3luY0FjY2Vzc0hhbmRsZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCmluZGV4IDQ2NWU3MGM3YjMzZTZm
N2NhMWM3ZWQ4NzUzMjEzOThjNzg5NTQzNWEuLmJmMzI3NDEyMmY4MTkxY2ExYWU0NWZlYjg0ZmJi
MDVlZGY1MzcwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCkBAIC0zNiw2ICszNiw3
IEBACiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVh
bVNvdXJjZS5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAi
V3JpdGFibGVTdHJlYW1TaW5rLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2
ZmVhNjA2NjRlMTc4Li42MTUxZTRkODhlMzhhYzllMjYxYzgyYmUyNGY1Y2UwOWJhZWE1YjIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yNjU5LDcgKzI2NTksNyBAQAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmls
ZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOEY4NkQ3MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlD
YWxsYmFjay5oICovOyB9OwogCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5
c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5
OTQ3MDcxRjUwQjYzODAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3
MTAxRjUwQjZGQTAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8q
IEpTRE9NRmlsZVN5c3RlbS5oICovOyB9OwotCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyog
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCAqLzsgfTsKKwkJODM5QTA5NUQyNTI0RjM3RjAw
RUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEwOTVCMjUyNEYzNzYwMEVFRjMy
OCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdF
IC8qIFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNr
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5
OSAvKiBIVE1MV0JSRWxlbWVudC5oICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYg
LyogSUlSRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzlCRTZEMjI0RjU4NzU1MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0y
Njg3LDcgKzI2ODcsNyBAQAogCQk4M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNEMzVBRUExQzcxODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRU
YXJnZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJl
cXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNEMzVBRjAxQzcxOEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVu
dFRhcmdldC5oICovOyB9OwogCQk4M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxG
SUZPLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1
MTFGNTI1MEMxQ0E4MDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRC
IC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsgfTsKKwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRC
IC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4M0RCOUUwRjI0REExOTQ5MDAzN0I0NjggLyogQmlxdWFkRmlsdGVy
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNE
QjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAqLzsgfTsKIAkJODNE
QjlFMTAyNERBMTk1NzAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzREI5RTBFMjREQTE4QjYwMDM3
QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggKi87IH07CiAJCTgzRTM1OUEyMUJCMTAzMUQw
MDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNFMzU5QTAxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRp
bWVFbGVtZW50LmggKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRj
YXN0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAK
aW5kZXggNzRhY2UzZWE5Y2VlODM2NjI3ZDM5M2QwY2NlOTM1OWExY2QzNGQyNi4uNjMyOWRlYTU3
YTE4N2ZmMjU5Nzc3MGY4ZTRjYWE2NWJlOTQ1ZDVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9h
ZGNhc3RDaGFubmVsLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAi
V29ya2VyTG9hZGVyUHJveHkuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRl
IDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBkMWJlNjM2ZjEyYTlhMGI4NzBiMzNiY2ExNjQ2
ZjRhZTAyNDE3YzExLi4xODc2ZDE1NzcwOGU3MTE0YmU4YzdhYTRiMjEyMmEzYjQ4MzVmYWEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTAs
MTYgKzUwLDIwIEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5o
IgorI2luY2x1ZGUgIldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJGb250
TG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2luY2x1ZGUg
IldvcmtlckxvY2F0aW9uLmgiCisjaW5jbHVkZSAiV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIldv
cmtlck5hdmlnYXRvci5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgi
CiAjaW5jbHVkZSAiV29ya2VyUmVwb3J0aW5nUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNs
dWRlICJXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEFyZ3VtZW50cy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgK
aW5kZXggMzVkNzNhY2NlZTMyN2ViODlkZjkzYTNmYjRjZjkwNTMxOThhNzc3OC4uZTdiZTRmZDBh
YTdkYTkxZWY3NGQwMzA0MmI2NzEzNTYwNmMwMjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMjksMTUgKzI5LDEyIEBACiAjaW5jbHVkZSAiQmFz
ZTY0VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkltYWdlQml0bWFwLmgiCi0jaW5jbHVkZSAiU2NyaXB0QnVmZmVyU291cmNlUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3Vw
cGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmgiCiAj
aW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
LmgiCi0jaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NCwxNCArNTEsMjAgQEAgY2xhc3Mg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOwogY2xhc3MgQ3J5cHRvOwogY2xh
c3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgRm9udEZhY2VTZXQ7CitjbGFz
cyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKIGNsYXNzIFBlcmZvcm1hbmNlOwogY2xhc3Mg
U2NoZWR1bGVkQWN0aW9uOworY2xhc3MgU2NyaXB0QnVmZmVyOworY2xhc3MgU2NyaXB0QnVmZmVy
U291cmNlUHJvdmlkZXI7CitjbGFzcyBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogY2xh
c3MgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyTG9jYXRp
b247CitjbGFzcyBXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKIGNsYXNzIFdvcmtl
ck5hdmlnYXRvcjsKIGNsYXNzIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjsKIGNsYXNzIFdvcmtl
clN0b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb247CitjbGFz
cyBXb3JrZXJUaHJlYWQ7CiBzdHJ1Y3QgV29ya2VyUGFyYW1ldGVyczsKIAogbmFtZXNwYWNlIElE
QkNsaWVudCB7CkBAIC05MCw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbiYgc3RvcmFnZUNvbm5lY3Rpb24oKTsKICAgICBzdGF0aWMgdm9pZCBwb3N0RmlsZVN5
c3RlbVN0b3JhZ2VUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uJiBnZXRGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oUmVmPEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7Ci0gICAgV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKiBmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24qIGZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbigpOwogICAgIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24oKTsKICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgbWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmNwcAppbmRleCA2NTJhMGM0NzYwMDgwMjQ5YjhjOGI2ZmQ1ZTVkZGQ0OWVh
YTlmM2UwLi5kY2ZiN2NiYTVjMzkzNDJmZTU2OGNhZGZlYjRhOWIwZGEzZjViYTMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5jcHAKQEAgLTQzLDYgKzQzLDggQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGll
bnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVh
ZC5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRG
ZXRjaGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVyVGVybWluYXRpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMGVmNDE5ZjJkNzEyODNhYjY3
YzM2NTE4MzM1NmRjZWZjNzk0NDg2Mi4uNDI2ODAxNzM0MGIxOGIwZTc3ZGVlOWQ5MTQ2YTk0NDlm
NTk2YjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Xb3Jr
ZXJHbG9iYWxTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDYsNiArNDgsOSBA
QCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mCiB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsK
KworICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogbV9zeW5jQWNjZXNzSGFuZGxlcy5rZXlzKCkp
CisgICAgICAgIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcik7CiB9CiAKIHZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTkzLDQgKzE5OCwyNCBAQCB2
b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6bW92ZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZAogICAgIH0pOwogfQogCit2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUqKQoreworICAgIG1fc3luY0FjY2Vzc0hhbmRsZXMu
YWRkKGlkZW50aWZpZXIsIGNvbnRleHRJZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAg
IG1fc3luY0FjY2Vzc0hhbmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit2b2lkIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAg
ICBpZiAoYXV0byBjb250ZXh0SWRlbnRpZmllciA9IG1fc3luY0FjY2Vzc0hhbmRsZXMuZ2V0KGlk
ZW50aWZpZXIpKSB7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8o
Y29udGV4dElkZW50aWZpZXIsIFtpZGVudGlmaWVyXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIGlmIChGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24g
PSBkb3duY2FzdDxXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuZmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+aW52YWxp
ZGF0ZUFjY2Vzc0hhbmRsZShpZGVudGlmaWVyKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaAppbmRleCBlZTVjNmZlMTljNzgwMmRhMmE3ZWExNTQzNjE2MDUxN2Q2Y2Q1YzJi
Li4zZjgxYjRhZmY3ZGNmNWRjNzIwZDYxNDU1YzUwYjcyYWEyZjY1MTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC02Nyw2ICs2Nyw3IEBAIGNs
YXNzIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2b2lk
IGNvbm5lY3Rpb25DbG9zZWQoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKQEAgLTg1LDcgKzg2
LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBj
bG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSopIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclN5
bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKIAorICAgIEhhc2hNYXA8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gbV9zeW5jQWNjZXNzSGFuZGxlczsKICAg
ICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcyYWQ2YjY4YzI3ZTU5
NmI5MThmOTNjZTM1MDRmOWE3ODc3Zjc5Ny4uZThlOWY4NjZjOTViODJhNTFiMTU3MzA1YTRlMjM5
NGNhNDhiY2VjZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTExLTMwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHNob3VsZCBi
ZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFzaGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVt
QWNjZXNzLm1tOgorICAgICAgICAodGVzdCk6CisgICAgICAgIChrZWVwQWNjZXNzSGFuZGxlQWN0
aXZlKToKKwogMjAyMS0xMS0zMCAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgog
CiAgICAgICAgIEFYOiBSZWR1Y2UgcmVwZXRpdGlvbiBpbiByZXRyaWV2aW5nIHR5cGVkIGF0dHJp
YnV0ZSB2YWx1ZXMgaW4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1t
CmluZGV4IDUyYWI5Y2UyOGI3NTYwZGE5MGVhMTNlODkyODhkMTcyOWE0MTBlYmUuLjdiYmUzYzlm
NjJjMWQ5N2MzMTk1NTJhMTkwM2Q5MTVhZDVmN2EyMWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KQEAg
LTU5LDE1ICs1OSwzMCBAQCBzdGF0aWMgTlNTdHJpbmcgKm1haW5GcmFtZVN0cmluZyA9IEAiPHNj
cmlwdD4gXAogICAgIDwvc2NyaXB0PiI7CiAKIHN0YXRpYyBjb25zdCBjaGFyKiB3b3JrZXJCeXRl
cyA9IFIiVEVTVFJFU09VUkNFKAordmFyIHBvc2l0aW9uID0gMDsKK3ZhciBhY2Nlc3NIYW5kbGU7
CiBhc3luYyBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICB0cnkgewogICAgICAgICB2YXIgcm9vdEhh
bmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVjdG9yeSgpOwogICAgICAgICB2
YXIgZmlsZUhhbmRsZSA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnZmlsZS1zeXN0
ZW0tYWNjZXNzLnR4dCcsIHsgJ2NyZWF0ZScgOiB0cnVlIH0pOwotICAgICAgICB2YXIgYWNjZXNz
SGFuZGxlID0gYXdhaXQgZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAg
ICAgIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZSgpOwogICAgICAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKICAgICAgICAg
dmFyIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZShidWZmZXIsIHsgImF0IiA6IDAgfSk7
CiAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ3N1Y2Nlc3M6IHdyaXRlICcgKyB3cml0ZVNpemUg
KyAnIGJ5dGVzJyk7CisgICAgICAgIGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUoKTsKKyAgICB9IGNh
dGNoKGVycikgeworICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdlcnJvcjogJyArIGVyci5uYW1l
ICsgJyAtICcgKyBlcnIubWVzc2FnZSk7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorfQorZnVu
Y3Rpb24ga2VlcEFjY2Vzc0hhbmRsZUFjdGl2ZSgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFy
IGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxKTsKKyAgICAgICAgdmFyIHdyaXRlU2l6ZSA9IGFj
Y2Vzc0hhbmRsZS53cml0ZShidWZmZXIsIHsgImF0IiA6IHBvc2l0aW9uIH0pOworICAgICAgICBw
b3NpdGlvbiArPSB3cml0ZVNpemU7CisgICAgICAgIHNldFRpbWVvdXQoa2VlcEFjY2Vzc0hhbmRs
ZUFjdGl2ZSwgMTAwKTsKICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgc2VsZi5wb3N0TWVz
c2FnZSgnZXJyb3I6ICcgKyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOwogICAgICAg
ICBjbG9zZSgpOwpAQCAtNzYsNyArOTEsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0KCkKIHRlc3Qo
KTsKIClURVNUUkVTT1VSQ0UiOwogCi1URVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIFByb2Nlc3NDcmFz
aER1cmluZ1dyaXRlKQorVEVTVChGaWxlU3lzdGVtQWNjZXNzLCBXZWJQcm9jZXNzQ3Jhc2hEdXJp
bmdXcml0ZSkKIHsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vz
c01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTEzMCw2
ICsxNDUsNTMgQEAgVEVTVChGaWxlU3lzdGVtQWNjZXNzLCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0
ZSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0
U2NyaXB0TWVzc2FnZSBib2R5XSk7CiB9CiAKK1RFU1QoRmlsZVN5c3RlbUFjY2VzcywgTmV0d29y
a1Byb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQoreworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMo
W1tGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNj
cmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07Cisg
ICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBw
cmVmZXJlbmNlcy5fZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5j
ZXMuX2FjY2Vzc0hhbmRsZUVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX3N0b3JhZ2VB
UElFbmFibGVkID0gWUVTOworICAgIGF1dG8gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0
VVJMU2NoZW1lSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtzY2hlbWVIYW5kbGVyIHNldFN0
YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXI6XihXS1dlYlZpZXcgKiwgaWQ8V0tVUkxTY2hlbWVUYXNr
PiB0YXNrKSB7CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGE7CisgICAgICAgIE5TVVJM
ICpyZXF1ZXN0VVJMID0gdGFzay5yZXF1ZXN0LlVSTDsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KCJ3ZWJraXQ6Ly93ZWJraXQub3JnL3dvcmtlci5qcyIsIHJlcXVlc3RVUkwuYWJzb2x1dGVTdHJp
bmcpOworICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxs
b2NdIGluaXRXaXRoVVJMOnJlcXVlc3RVUkwgTUlNRVR5cGU6QCJ0ZXh0L2phdmFzY3JpcHQiIGV4
cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CisgICAgICAgIGRh
dGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6d29ya2VyQnl0ZXMgbGVuZ3RoOnN0cmxlbih3b3Jr
ZXJCeXRlcyldOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0
KCldOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpkYXRhLmdldCgpXTsKKyAgICAgICAg
W3Rhc2sgZGlkRmluaXNoXTsKKyAgICB9XTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hl
bWVIYW5kbGVyOnNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAid2Via2l0Il07CisK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0cmluZyBi
YXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAid2Via2l0Oi8vd2Via2l0Lm9yZyJdXTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicGFn
ZSBpcyBsb2FkZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3Vj
Y2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAg
Ly8gS2lsbCBuZXR3b3JrIHByb2Nlc3MuCisgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRh
U3RvcmVdIF90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc107CisKKyAgICAvLyBPcGVuIGFjY2VzcyBo
YW5kbGUgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFzaGVzLgorICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJlcnJv
cjogSW52YWxpZFN0YXRlRXJyb3IgLSBBY2Nlc3NIYW5kbGUgaXMgY2xvc2luZyBvciBjbG9zZWQi
LCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgLy8gQWNjZXNzIGhhbmRsZSBjYW4g
YmUgY3JlYXRlZCBhZnRlciBuZXR3b3JrIHByb2Nlc3MgaXMgcmVsYXVuY2hlZC4KKyAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxd
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2Ny
aXB0TWVzc2FnZSBib2R5XSk7Cit9CisKIHN0YXRpYyBOU1N0cmluZyAqYmFzaWNTdHJpbmcgPSBA
IjxzY3JpcHQ+IFwKICAgICBhc3luYyBmdW5jdGlvbiBvcGVuKCkgXAogICAgIHsgXAo=
</data>
<flag name="commit-queue"
          id="470715"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445516</attachid>
            <date>2021-11-30 21:16:07 -0800</date>
            <delta_ts>2021-11-30 23:42:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211130211606.patch</filename>
            <type>text/plain</type>
            <size>35295</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMmY4YzJhZWJlZTk0YzFmN2U4MjI5YzQwNDkwNWQ5
YTM1MzY4Y2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uIGtlZXAgdHJhY2sgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIFdoZW4gY29u
bmVjdGlvbiBpcyBjbG9zZWQsIG9yIGFjY2VzcyAKKyAgICAgICAgaGFuZGxlIGlzIGV4cGxpY2l0
bHkgaW52YWxpZGF0ZWQgKGZvciBleGFtcGxlLCBkdWUgdG8gZmlsZSBkZWxldGlvbiBpbiB0aGUg
YmFja2VuZCksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgICAgICB3aWxsIGludmFs
aWRhdGUgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKKyAgICAgICAgTm9ybWFsbHksIHRv
IGNsb3NlIGEgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgKHdoZW4gY2xvc2UoKSBpcyBjYWxs
ZWQgb3IgY29udGV4dCBzdG9wcyksIHdlIG5lZWQgdG86IAorICAgICAgICAxLiBjbG9zZSBmaWxl
IGRlc2NyaXB0b3IgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUpCisgICAg
ICAgIDIuIG5vdGlmeSBiYWNrZW5kIGFib3V0IGNsb3NlIChGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2VCYWNrZW5kKQorICAgICAgICAzLiBnZXQgY2xvc2UgcmVzdWx0IGFuZCBjb21w
bGV0ZSBjYWxsYmFja3MgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tl
bmQpCisgICAgICAgIEZvciBpbnZhbGlkYXRpb24gY2FzZSwgd2Ugb25seSBuZWVkIHRvIHBlcmZv
cm0gc3RlcCAxIGFuZCAzIGJlY2F1c2UgY29ubmVjdGlvbiB0byBiYWNrZW5kIGlzIGxvc3Qgb3Ig
YmFja2VuZAorICAgICAgICBpbml0aWF0ZXMgdGhlIGNsb3NlLgorCisgICAgICAgIEFQSSB0ZXN0
OiBGaWxlU3lzdGVtQWNjZXNzLk5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZQorCisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlk
Q2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlk
YXRlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRv
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2
NDUyMjRlNTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi5iZTRhNDBmYzA0OTk0NTAwOTVkY2Zi
ZTJkNTM5NTFiNTJmYzk2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTExLTMw
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2Vz
cyBjcmFzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgc29tZSBXZWJTV0NsaWVudENvbm5lY3Rpb24gbWVz
c2FnZXMgdG8gYXN5bmMgcmVwbGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYmY4OTU2MTgyYmZj
MjIxM2U1NGJhYzMzMDQ5NDVlM2I2YjIyNGVjNC4uM2RkODYxODU3YWVmNmRjZTNlZTRiM2I4YTU2
ZDRjZDI5Y2NkMGEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNzU1LDcgKzE3NTUsOSBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgd29ya2Vycy9Xb3JrZXJB
bmltYXRpb25Db250cm9sbGVyLmgKICAgICB3b3JrZXJzL1dvcmtlckRlYnVnZ2VyUHJveHkuaAog
ICAgIHdvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKKyAgICB3b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmgKICAgICB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKKyAgICB3b3JrZXJz
L1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKICAgICB3b3JrZXJzL1dvcmtlck9yV29ya2xl
dFRocmVhZC5oCiAgICAgd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKICAgICB3b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAppbmRleCAwZWFk
NDAzOTI4OThjMWNkZTY2ODAxNWJjMzgxMWFmMzJkMzY3ZmRhLi5hMTc0OTVkNzY1OTY1NmZlMmRk
OWNjYTNkMzcxMTIyMWZlNDhkMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIldvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBhZjFkMmU5
YzlhOGQ4NWM5M2Y2MjQyNjU3NjQ2MjY5YjE1MWE1Y2FhLi5iOTNlZjZmNzdkZTg1MmFhMzY0YzYx
NDljYTFkMTg1ZjM2NTRjMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAg
LTk3LDUgKzk3LDI1IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kCiAgICAgY29ubmVjdGlvbigp
LmNsb3NlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpyZWdpc3Rl
clN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKiBoYW5kbGUpCit7CisgICAgaWYg
KGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGNvbnRleHQgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47
CisKKyAgICBjb25uZWN0aW9uKCkucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIs
IGNvbnRleHQtPmlkZW50aWZpZXIoKSwgaGFuZGxlKTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rpb24oKS51bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRs
ZShpZGVudGlmaWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5oCmluZGV4IDhjZWUxMmNiZGZiZjQwMDkyZjdhMDQyMGFkOTFjNzFhODJh
YzI4YjEuLjk3ZDU0ZjZiODcwOTJmZmM3Nzk4NTFiOGViNDg4ODA2NmNhODY4ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUqKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgRmlsZVN5c3Rl
bUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggYTdhM2NmYmM0ZmE1
MzA5Mzg4YmQwMTk2MTUwNWJiNmE4YThlN2U3Mi4uZDk0OTc1OGY3Y2VlYzdkZTBjNTlmMjJhZTY3
OWQyMzc1M2M3ODc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CkBAIC0zNSw2ICszNiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKIGNs
YXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsKQEAgLTYwLDYgKzYyLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdD
YWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJl
Z2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0SGFuZGxlTmFtZXMoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEhhbmRs
ZU5hbWVzQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRIYW5kbGUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlV2l0aFR5
cGVDYWxsYmFjayYmKSA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5jcHAKaW5kZXggM2M4OGU5Nzk1NDkzZDRhNDcxOTBmODUwODJiZGFkYjNmNWQyN2RjYy4u
YTU4ZmFmYWQyZGUzOGE0MDZiZmM0ZWMzYzA0MTFhMjk3N2RmMzllYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyVGhy
ZWFkLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTQ3LDExICs0OCwxNiBAQCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgYwogewog
ICAgIEFTU0VSVChtX2ZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZSk7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7CisKKyAgICBtX3NvdXJjZS0+cmVnaXN0ZXJTeW5j
QWNjZXNzSGFuZGxlKG1faWRlbnRpZmllciwgdGhpcyk7CiB9CiAKIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogewogICAgIEFTU0VSVChp
c0Nsb3NpbmdPckNsb3NlZCgpKTsKKworICAgIG1fc291cmNlLT51bnJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShtX2lkZW50aWZpZXIpOworCiAgICAgaWYgKG1fY2xvc2VSZXN1bHQpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMTQyLDM1ICsxNDgsNTIgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Y2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgaWYg
KGlzQ2xvc2luZykKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKG1fZmlsZSAhPSBGaWxl
U3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBjbG9zZUZpbGUoKTsKK30K
Kwordm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VGaWxlKCkKK3sKKyAgICBp
ZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAg
ICAgIHJldHVybjsKKwogICAgIGF1dG8qIHNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKHNjb3BlKTsKIAotICAg
IEFTU0VSVChtX2ZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7
CiAgICAgV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RGaWxlU3lzdGVtU3RvcmFnZVRhc2soW3dlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGZpbGUgPSBzdGQ6OmV4Y2hhbmdlKG1fZmlsZSwgRmls
ZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSksIHdvcmtlclRocmVhZCA9IFJlZiB7
IHNjb3BlLT50aHJlYWQoKSB9XSgpIG11dGFibGUgewogICAgICAgICBGaWxlU3lzdGVtOjpjbG9z
ZUZpbGUoZmlsZSk7CiAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrKFt3
ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgd2Vha1RoaXMtPmNsb3NlQmFja2VuZChD
bG9zZU1vZGU6OkFzeW5jKTsKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2VGaWxl
KCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpkaWRDbG9zZUZpbGUoKQoreworICAgIGNsb3NlQmFja2VuZChDbG9zZU1vZGU6OkFz
eW5jKTsKK30KKwogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VCYWNrZW5k
KENsb3NlTW9kZSBtb2RlKQogeworICAgIGlmIChtX2Nsb3NlUmVzdWx0KQorICAgICAgICByZXR1
cm47CisKICAgICBpZiAobW9kZSA9PSBDbG9zZU1vZGU6OkFzeW5jKSB7CiAgICAgICAgIG1fc291
cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICAgICAgZGlkQ2xvc2UoV1RGTW92
ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIGRpZENsb3NlQmFja2VuZChXVEZNb3ZlKHJlc3VsdCkp
OwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1fc291cmNlLT5j
bG9zZShtX2lkZW50aWZpZXIsIFtdKGF1dG8pIHsgfSk7Ci0gICAgZGlkQ2xvc2UoeyB9KTsKKyAg
ICBkaWRDbG9zZUJhY2tlbmQoeyB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6ZGlkQ2xvc2UoRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCit2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tlbmQoRXhjZXB0aW9uT3I8dm9pZD4mJiBy
ZXN1bHQpCiB7Ci0gICAgQVNTRVJUKCFtX2Nsb3NlUmVzdWx0KTsKKyAgICBpZiAobV9jbG9zZVJl
c3VsdCkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jbG9zZVJlc3VsdCA9IFdURk1vdmUocmVz
dWx0KTsKICAgICBhdXRvIGNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV9jbG9zZUNhbGxiYWNr
cywgeyB9KTsKQEAgLTI0Nyw0ICsyNzAsMTIgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6c3RvcCgpCiAgICAgY2xvc2VJbnRlcm5hbChbXShhdXRvKSB7IH0pOwogfQogCit2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjppbnZhbGlkYXRlKCkKK3sKKyAgICBjbG9zZUZp
bGUoKTsKKworICAgIC8vIEludmFsaWRhdGlvbiBpcyBpbml0aWF0ZWQgYnkgYmFja2VuZC4KKyAg
ICBkaWRDbG9zZUJhY2tlbmQoeyB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCAxOGI0YWVkNWQ2ZTk3MTRk
MDBkOTU2ODEzYWM3ZjI5NzFmOGE4M2RmLi5iMDdiOTQwMzAwMmQ3ZDFkZTlhZDhhMDQwNWJkOGE5
YjY2NGZjMTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAt
NTIsMTkgKzUyLDIyIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFNpemUoRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOwotICAgIHZvaWQgZGlkQ2xvc2UoRXhjZXB0aW9uT3I8dm9pZD4mJik7CiAgICAgRXhjZXB0
aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiByZWFkKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVt
UmVhZFdyaXRlT3B0aW9ucyk7CiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiB3
cml0ZShCdWZmZXJTb3VyY2UmJiwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogICAgIHVz
aW5nIFJlc3VsdCA9IHN0ZDo6dmFyaWFudDxFeGNlcHRpb25Pcjx2b2lkPiwgRXhjZXB0aW9uT3I8
dWludDY0X3Q+PjsKICAgICB2b2lkIGNvbXBsZXRlUHJvbWlzZShSZXN1bHQmJik7CisgICAgdm9p
ZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVI
YW5kbGUpOwogICAgIGJvb2wgaXNDbG9zaW5nT3JDbG9zZWQoKSBjb25zdDsKICAgICB1c2luZyBD
bG9zZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYm
KT47CiAgICAgdm9pZCBjbG9zZUludGVybmFsKENsb3NlQ2FsbGJhY2smJik7CisgICAgdm9pZCBj
bG9zZUZpbGUoKTsKKyAgICB2b2lkIGRpZENsb3NlRmlsZSgpOwogICAgIGVudW0gY2xhc3MgQ2xv
c2VNb2RlIDogYm9vbCB7IEFzeW5jLCBTeW5jIH07CiAgICAgdm9pZCBjbG9zZUJhY2tlbmQoQ2xv
c2VNb2RlKTsKKyAgICB2b2lkIGRpZENsb3NlQmFja2VuZChFeGNlcHRpb25Pcjx2b2lkPiYmKTsK
IAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMWEwYTQzYmU0NmFjODQ1ZjM0ZDYwMjFhMDk5NTZi
MGM3NjZhY2FiNC4uYTlmODNlOWI3NmIxMTJlYTdiNTlhMDk1NjM5NjJiNjVkZTdlOWZlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAK
QEAgLTUyLDYgKzUyLDkgQEAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp+V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkKIAogdm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQogeworICAgIGZvciAoYXV0byBo
YW5kbGUgOiBtX3N5bmNBY2Nlc3NIYW5kbGVzLnZhbHVlcygpKQorICAgICAgICBoYW5kbGUtPmlu
dmFsaWRhdGUoKTsKKwogICAgIHNjb3BlQ2xvc2VkKCk7CiB9CiAKQEAgLTI4Nyw2ICsyOTAsMzUg
QEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWYKICAgICB9KTsKIH0KIAordm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlKiBoYW5kbGUpCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQobV9zY29wZS0+aWRlbnRpZmllcigpID09IGNvbnRleHRJZGVudGlmaWVyKTsK
KyAgICBBU1NFUlQoaGFuZGxlKTsKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLmFkZChpZGVudGlm
aWVyLCBXZWFrUHRyIHsgKmhhbmRsZSB9KTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50
aWZpZXIsIGNvbnRleHRJZGVudGlmaWVyLCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRo
cmVhZENvbm5lY3Rpb25dKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9u
LT5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIs
IG51bGxwdHIpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5y
ZW1vdmUoaWRlbnRpZmllcik7CisgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciwgbWFp
blRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgewor
ICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUo
aWRlbnRpZmllcik7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjppbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaGFuZGxlID0g
bV9zeW5jQWNjZXNzSGFuZGxlcy5nZXQoaWRlbnRpZmllcik7CisgICAgaWYgKGhhbmRsZSkKKyAg
ICAgICAgaGFuZGxlLT5pbnZhbGlkYXRlKCk7Cit9CisKIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpnZXRIYW5kbGVOYW1lcyhGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAg
aWYgKCFtX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oCmluZGV4IDBiNzdkYzcwMDM0YjQ0ZjQ3NzM3ZGQ4MTU1MjE3NDUyZGYxNjlhNWMu
LmNkY2U0MTE1NWI3ZmFmMDlmZGUyMWI5Zjc0NTJjNTU0MjA2MmM4YWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTcwLDYgKzcwLDkg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NI
YW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVn
aXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlKikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgaW52YWxp
ZGF0ZUFjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZp
bmFsOwogCiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICBSZWZQ
dHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX21haW5UaHJlYWRDb25uZWN0aW9uOwpA
QCAtODEsNiArODQsOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZU5hbWVzQ2FsbGJhY2s+IG1f
Z2V0SGFuZGxlTmFtZXNDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjaz4g
bV9nZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTdHJpbmdDYWxsYmFjaz4gbV9zdHJp
bmdDYWxsYmFja3M7CisgICAgSGFzaE1hcDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZ1bmN0aW9uPHZvaWQoKT4+IG1fYWNjZXNzSGFuZGxlSW52YWxpZGF0aW9uSGFuZGxl
cnM7CisgICAgSGFzaE1hcDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdl
YWtQdHI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiBtX3N5bmNBY2Nlc3NIYW5kbGVzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcApp
bmRleCA0NjVlNzBjN2IzM2U2ZjdjYTFjN2VkODc1MzIxMzk4Yzc4OTU0MzVhLi5iZjMyNzQxMjJm
ODE5MWNhMWFlNDVmZWI4NGZiYjA1ZWRmNTM3MGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCiAjaW5j
bHVkZSAiUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJXcml0YWJsZVN0
cmVhbS5oIgogI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtU2luay5oIgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjBlNDI4ODM5
NzU2OGQ0NTBkMTJmMTg1YjhmNmZlYTYwNjY0ZTE3OC4uNjE1MWU0ZDg4ZTM4YWM5ZTI2MWM4MmJl
MjRmNWNlMDliYWVhNWIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY1OSw3ICsyNjU5LDcgQEAKIAkJODM4Rjg2REIxRjUw
OUU3QjAwRThDRkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzhGODZENzFGNTA5RTZDMDBFOENGQzUg
LyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCAqLzsgfTsKIAkJODM5OTQ3MEMxRjUwQjYzRTAw
RTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzOTk0NzA3MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVt
LmggKi87IH07CiAJCTgzOTk0NzEwMUY1MEI2RkEwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTk0NzBF
MUY1MEI2RjMwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKLQkJODM5QTA5NUQy
NTI0RjM3RjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEwOTVCMjUyNEYz
NzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggKi87IH07CisJ
CTgzOUEwOTVEMjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlB
MDk1QjI1MjRGMzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOUEy
RjJFMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdF
IC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlB
QUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKIAkJODM5QkU2
RDUyNEY1ODc2MjAwNERGNTBGIC8qIElJUkZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QkU2RDIyNEY1ODc1NTAwNERGNTBGIC8qIElJUkZp
bHRlci5oICovOyB9OwpAQCAtMjY4Nyw3ICsyNjg3LDcgQEAKIAkJODNEMzVBRUMxQzcxODdGQTAw
RjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQwMEY3MEQ1QSAvKiBY
TUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYyMUM3MThEOTAwMEY3
MEQ1QSAvKiBKU1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNENTExRjYyNTBDMUNCRjAw
MkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTgzRDZB
QUU2MjUyNEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUx
MzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgzRDZB
QUU2MjUyNEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUx
MzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNEQjlFMEYyNERBMTk0OTAwMzdC
NDY4IC8qIEJpcXVhZEZpbHRlclR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzREI5RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJU
eXBlLmggKi87IH07CiAJCTgzREI5RTEwMjREQTE5NTcwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJP
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0RCOUUwRTI0REExOEI2MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5oICovOyB9Owog
CQk4M0UzNTlBMjFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTM1OUEwMUJCMTAzMUQw
MDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5oICovOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jy
b2FkY2FzdENoYW5uZWwuY3BwCmluZGV4IDc0YWNlM2VhOWNlZTgzNjYyN2QzOTNkMGNjZTkzNTlh
MWNkMzRkMjYuLjYzMjlkZWE1N2ExODdmZjI1OTc3NzBmOGU0Y2FhNjViZTk0NWQ1ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCisjaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZDFiZTYzNmYx
MmE5YTBiODcwYjMzYmNhMTY0NmY0YWUwMjQxN2MxMS4uMTg3NmQxNTc3MDhlNzExNGJlOGM3YWE0
YjIxMjJhM2I0ODM1ZmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAKQEAgLTUwLDE2ICs1MCwyMCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
UG9saWN5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVk
ZSAiU29ja2V0UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiV29ya2VyRm9udExvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVy
UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJMb2NhdGlvbi5oIgorI2luY2x1ZGUgIldvcmtlck1l
c3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyTWVzc2FnaW5nUHJv
eHkuaCIKICNpbmNsdWRlICJXb3JrZXJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclJlcG9ydGluZ1Byb3h5LmgiCiAj
aW5jbHVkZSAiV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyU2Ny
aXB0TG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uaCIKKyNpbmNs
dWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRBcmd1
bWVudHMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDM1ZDczYWNjZWUzMjdlYjg5ZGY5M2EzZmI0Y2Y5MDUz
MTk4YTc3NzguLmU3YmU0ZmQwYWE3ZGE5MWVmNzRkMDMwNDJiNjcxMzU2MDZjMDI0M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTI5LDE1ICsyOSwx
MiBAQAogI2luY2x1ZGUgIkJhc2U2NFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgotI2luY2x1ZGUgIlNjcmlw
dEJ1ZmZlclNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgi
CiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgotI2luY2x1ZGUg
IldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJXb3JrZXJNZXNzYWdl
UG9ydENoYW5uZWxQcm92aWRlci5oIgotI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1
ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2Fn
ZS5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTQs
MTQgKzUxLDIwIEBAIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsK
IGNsYXNzIENyeXB0bzsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIGNsYXNz
IEZvbnRGYWNlU2V0OworY2xhc3MgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CiBjbGFzcyBQ
ZXJmb3JtYW5jZTsKIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKK2NsYXNzIFNjcmlwdEJ1ZmZlcjsK
K2NsYXNzIFNjcmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyOworY2xhc3MgV29ya2VyQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjsKIGNsYXNzIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsK
IGNsYXNzIFdvcmtlckxvY2F0aW9uOworY2xhc3MgV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXI7CiBjbGFzcyBXb3JrZXJOYXZpZ2F0b3I7CiBjbGFzcyBXb3JrZXJTV0NsaWVudENvbm5l
Y3Rpb247CiBjbGFzcyBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbjsKIGNsYXNzIFdvcmtlclN0b3Jh
Z2VDb25uZWN0aW9uOworY2xhc3MgV29ya2VyVGhyZWFkOwogc3RydWN0IFdvcmtlclBhcmFtZXRl
cnM7CiAKIG5hbWVzcGFjZSBJREJDbGllbnQgewpAQCAtOTAsNyArOTMsNyBAQCBwdWJsaWM6CiAg
ICAgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24mIHN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgc3Rh
dGljIHZvaWQgcG9zdEZpbGVTeXN0ZW1TdG9yYWdlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwog
ICAgIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgZ2V0RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwotICAgIFdv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiogZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uKiBmaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKICAgICBXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgTWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXImIG1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKCk7CiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNjUyYTBjNDc2MDA4MDI0
OWI4YzhiNmZkNWU1ZGRkNDllYWE5ZjNlMC4uZGNmYjdjYmE1YzM5MzQyZmU1NjhjYWRmZWI0YTli
MGRhM2Y1YmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5j
bHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVDbGll
bnQuaCIKICNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bXBsZXRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlclRlcm1pbmF0aW9uLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4
IDBlZjQxOWYyZDcxMjgzYWI2N2MzNjUxODMzNTZkY2VmYzc5NDQ4NjIuLjQyNjgwMTczNDBiMThi
MGU3N2RlZTlkOTE0NmE5NDQ5ZjU5NmIzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9FeGNlcHRpb25Pci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV29ya2VyR2xvYmFsU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKQEAgLTQ2LDYgKzQ4LDkgQEAgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJgogdm9pZCBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQogewogICAgIG1fY29u
bmVjdGlvbiA9IG51bGxwdHI7CisKKyAgICBmb3IgKGF1dG8gaWRlbnRpZmllciA6IG1fc3luY0Fj
Y2Vzc0hhbmRsZXMua2V5cygpKQorICAgICAgICBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKGlkZW50
aWZpZXIpOwogfQogCiB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKQEAg
LTE5Myw0ICsxOTgsMjQgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Om1v
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWQKICAgICB9KTsKIH0KIAor
dm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVyU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKikKK3sKKyAgICBt
X3N5bmNBY2Nlc3NIYW5kbGVzLmFkZChpZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7Cit9
CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU3luY0Fj
Y2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLnJlbW92ZShpZGVudGlmaWVy
KTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gY29udGV4dElkZW50aWZpZXIgPSBtX3N5bmNB
Y2Nlc3NIYW5kbGVzLmdldChpZGVudGlmaWVyKSkgeworICAgICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojpwb3N0VGFza1RvKGNvbnRleHRJZGVudGlmaWVyLCBbaWRlbnRpZmllcl0oYXV0byYg
Y29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+
KGNvbnRleHQpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24tPmludmFsaWRhdGVBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcik7CisgICAgICAg
IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZWU1YzZmZTE5Yzc4MDJkYTJhN2Vh
MTU0MzYxNjA1MTdkNmNkNWMyYi4uM2Y4MWI0YWZmN2RjZjVkYzcyMGQ2MTQ1NWM1MGI3MmFhMmY2
NTE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApA
QCAtNjcsNiArNjcsNyBAQCBjbGFzcyBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDbwogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25u
ZWN0aW9uJik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CisgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uJik7CkBAIC04NSw3ICs4NiwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7Cisg
ICAgdm9pZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUqKSBmaW5hbDsKKyAg
ICB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmlu
YWw7CiAKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1fc3lu
Y0FjY2Vzc0hhbmRsZXM7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGM3MmFkNmI2OGMyN2U1OTZiOTE4ZjkzY2UzNTA0ZjlhNzg3N2Y3OTcuLmU4ZTlmODY2Yzk1
YjgyYTUxYjE1NzMwNWE0ZTIzOTRjYTQ4YmNlY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMS0zMCAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY3Jh
c2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMy
NjA1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTE4NzcwNj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAo
a2VlcEFjY2Vzc0hhbmRsZUFjdGl2ZSk6CisKIDIwMjEtMTEtMzAgIFR5bGVyIFdpbGNvY2sgIDx0
eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogUmVkdWNlIHJlcGV0aXRpb24gaW4gcmV0
cmlldmluZyB0eXBlZCBhdHRyaWJ1dGUgdmFsdWVzIGluIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmls
ZVN5c3RlbUFjY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RmlsZVN5c3RlbUFjY2Vzcy5tbQppbmRleCA1MmFiOWNlMjhiNzU2MGRhOTBlYTEzZTg5Mjg4ZDE3
MjlhNDEwZWJlLi43YmJlM2M5ZjYyYzFkOTdjMzE5NTUyYTE5MDNkOTE1YWQ1ZjdhMjFhIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1B
Y2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxl
U3lzdGVtQWNjZXNzLm1tCkBAIC01OSwxNSArNTksMzAgQEAgc3RhdGljIE5TU3RyaW5nICptYWlu
RnJhbWVTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKICAgICA8L3NjcmlwdD4iOwogCiBzdGF0aWMgY29u
c3QgY2hhciogd29ya2VyQnl0ZXMgPSBSIlRFU1RSRVNPVVJDRSgKK3ZhciBwb3NpdGlvbiA9IDA7
Cit2YXIgYWNjZXNzSGFuZGxlOwogYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgdHJ5IHsK
ICAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJl
Y3RvcnkoKTsKICAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZp
bGVIYW5kbGUoJ2ZpbGUtc3lzdGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsK
LSAgICAgICAgdmFyIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSgpOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1
ZmZlcigxMCk7CiAgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVm
ZmVyLCB7ICJhdCIgOiAwIH0pOwogICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdzdWNjZXNzOiB3
cml0ZSAnICsgd3JpdGVTaXplICsgJyBieXRlcycpOworICAgICAgICBrZWVwQWNjZXNzSGFuZGxl
QWN0aXZlKCk7CisgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgn
ZXJyb3I6ICcgKyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOworICAgICAgICBjbG9z
ZSgpOworICAgIH0KK30KK2Z1bmN0aW9uIGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUoKQoreworICAg
IHRyeSB7CisgICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMSk7CisgICAgICAg
IHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiBwb3Np
dGlvbiB9KTsKKyAgICAgICAgcG9zaXRpb24gKz0gd3JpdGVTaXplOworICAgICAgICBzZXRUaW1l
b3V0KGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUsIDEwMCk7CiAgICAgfSBjYXRjaCAoZXJyKSB7CiAg
ICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVy
ci5tZXNzYWdlKTsKICAgICAgICAgY2xvc2UoKTsKQEAgLTc2LDcgKzkxLDcgQEAgYXN5bmMgZnVu
Y3Rpb24gdGVzdCgpCiB0ZXN0KCk7CiApVEVTVFJFU09VUkNFIjsKIAotVEVTVChGaWxlU3lzdGVt
QWNjZXNzLCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK1RFU1QoRmlsZVN5c3RlbUFjY2Vzcywg
V2ViUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiB7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHRO
UyhbW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIGF1
dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CkBAIC0xMzAsNiArMTQ1LDUzIEBAIFRFU1QoRmlsZVN5c3RlbUFjY2VzcywgUHJv
Y2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3Jp
dGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogfQogCitURVNUKEZpbGVT
eXN0ZW1BY2Nlc3MsIE5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sKKyAgICBhdXRv
IGhhbmRsZXIgPSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6
QCJ0ZXN0SGFuZGxlciJdOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBw
cmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVTOworICAgIHBy
ZWZlcmVuY2VzLl9zdG9yYWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNjaGVtZUhhbmRs
ZXIgPSBhZG9wdE5TKFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBb
c2NoZW1lSGFuZGxlciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICos
IGlkPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBk
YXRhOworICAgICAgICBOU1VSTCAqcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAg
ICAgIEVYUEVDVF9XS19TVFJFUSgid2Via2l0Oi8vd2Via2l0Lm9yZy93b3JrZXIuanMiLCByZXF1
ZXN0VVJMLmFic29sdXRlU3RyaW5nKTsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMo
W1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJMIE1JTUVUeXBlOkAi
dGV4dC9qYXZhc2NyaXB0IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1l
Om5pbF0pOworICAgICAgICBkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndvcmtlckJ5dGVz
IGxlbmd0aDpzdHJsZW4od29ya2VyQnl0ZXMpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJl
c3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0
YS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgfV07CisgICAgW2NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNj
aGVtZTpAIndlYmtpdCJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmlu
ZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAIndlYmtpdDov
L3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVY
UEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
KTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRp
b25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVY
UEVDVF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNz
YWdlIGJvZHldKTsKKworICAgIC8vIEtpbGwgbmV0d29yayBwcm9jZXNzLgorICAgIFtbY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOworCisg
ICAgLy8gT3BlbiBhY2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiBuZXR3b3JrIHBy
b2Nlc3MgY3Jhc2hlcy4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKEAiZXJyb3I6IEludmFsaWRTdGF0ZUVycm9yIC0gQWNjZXNzSGFuZGxlIGlz
IGNsb3Npbmcgb3IgY2xvc2VkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8v
IEFjY2VzcyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgbmV0d29yayBwcm9jZXNzIGlzIHJl
bGF1bmNoZWQuCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUg
MTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCiBzdGF0aWMgTlNTdHJp
bmcgKmJhc2ljU3RyaW5nID0gQCI8c2NyaXB0PiBcCiAgICAgYXN5bmMgZnVuY3Rpb24gb3Blbigp
IFwKICAgICB7IFwK
</data>
<flag name="commit-queue"
          id="470734"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445529</attachid>
            <date>2021-11-30 23:24:34 -0800</date>
            <delta_ts>2021-12-01 13:45:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211130232433.patch</filename>
            <type>text/plain</type>
            <size>35343</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMmY4YzJhZWJlZTk0YzFmN2U4MjI5YzQwNDkwNWQ5
YTM1MzY4Y2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTExLTMwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uIGtlZXAgdHJhY2sgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIFdoZW4gY29u
bmVjdGlvbiBpcyBjbG9zZWQsIG9yIGFjY2VzcyAKKyAgICAgICAgaGFuZGxlIGlzIGV4cGxpY2l0
bHkgaW52YWxpZGF0ZWQgKGZvciBleGFtcGxlLCBkdWUgdG8gZmlsZSBkZWxldGlvbiBpbiB0aGUg
YmFja2VuZCksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbgorICAgICAgICB3aWxsIGludmFs
aWRhdGUgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKKyAgICAgICAgTm9ybWFsbHksIHRv
IGNsb3NlIGEgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgKHdoZW4gY2xvc2UoKSBpcyBjYWxs
ZWQgb3IgY29udGV4dCBzdG9wcyksIHdlIG5lZWQgdG86IAorICAgICAgICAxLiBjbG9zZSBmaWxl
IGRlc2NyaXB0b3IgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUpCisgICAg
ICAgIDIuIG5vdGlmeSBiYWNrZW5kIGFib3V0IGNsb3NlIChGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2VCYWNrZW5kKQorICAgICAgICAzLiBnZXQgY2xvc2UgcmVzdWx0IGFuZCBjb21w
bGV0ZSBjYWxsYmFja3MgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tl
bmQpCisgICAgICAgIEZvciBpbnZhbGlkYXRpb24gY2FzZSwgd2Ugb25seSBuZWVkIHRvIHBlcmZv
cm0gc3RlcCAxIGFuZCAzIGJlY2F1c2UgY29ubmVjdGlvbiB0byBiYWNrZW5kIGlzIGxvc3Qgb3Ig
YmFja2VuZAorICAgICAgICBpbml0aWF0ZXMgdGhlIGNsb3NlLgorCisgICAgICAgIEFQSSB0ZXN0
OiBGaWxlU3lzdGVtQWNjZXNzLk5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZQorCisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlk
Q2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlk
YXRlQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVs
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRv
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2
NDUyMjRlNTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi5iZTRhNDBmYzA0OTk0NTAwOTVkY2Zi
ZTJkNTM5NTFiNTJmYzk2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTExLTMw
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2Vz
cyBjcmFzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI2MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVy
U3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgc29tZSBXZWJTV0NsaWVudENvbm5lY3Rpb24gbWVz
c2FnZXMgdG8gYXN5bmMgcmVwbGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYmY4OTU2MTgyYmZj
MjIxM2U1NGJhYzMzMDQ5NDVlM2I2YjIyNGVjNC4uYzVlNzlhZTczNzNjNjAxMmM2MWU5ZGM1ZjEw
MDcwY2E1ZGQ4MWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNzU1LDcgKzE3NTUsMTAgQEAg
c2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHdvcmtlcnMvV29ya2Vy
QW5pbWF0aW9uQ29udHJvbGxlci5oCiAgICAgd29ya2Vycy9Xb3JrZXJEZWJ1Z2dlclByb3h5LmgK
ICAgICB3b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5oCisgICAgd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5oCiAgICAgd29ya2Vycy9Xb3JrZXJMb2FkZXJQcm94eS5oCisgICAgd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCisgICAgd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmgKICAgICB3b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5o
CiAgICAgd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmgKICAgICB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAppbmRleCAwZWFkNDAzOTI4OThj
MWNkZTY2ODAxNWJjMzgxMWFmMzJkMzY3ZmRhLi5hMTc0OTVkNzY1OTY1NmZlMmRkOWNjYTNkMzcx
MTIyMWZlNDhkMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dp
bmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgIldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBhZjFkMmU5YzlhOGQ4NWM5
M2Y2MjQyNjU3NjQ2MjY5YjE1MWE1Y2FhLi5iOTNlZjZmNzdkZTg1MmFhMzY0YzYxNDljYTFkMTg1
ZjM2NTRjMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTk3LDUgKzk3
LDI1IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kCiAgICAgY29ubmVjdGlvbigpLmNsb3NlKGlk
ZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKiBoYW5kbGUpCit7CisgICAgaWYgKGlzQ2xvc2Vk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBj
b25uZWN0aW9uKCkucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGNvbnRleHQt
PmlkZW50aWZpZXIoKSwgaGFuZGxlKTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGNvbm5lY3Rpb24oKS51bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVudGlm
aWVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oCmluZGV4IDhjZWUxMmNiZGZiZjQwMDkyZjdhMDQyMGFkOTFjNzFhODJhYzI4YjEuLjk3
ZDU0ZjZiODcwOTJmZmM3Nzk4NTFiOGViNDg4ODA2NmNhODY4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oCkBAIC00Miw2ICs0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYpOworICAgIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUq
KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5k
bGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggYTdhM2NmYmM0ZmE1MzA5Mzg4YmQw
MTk2MTUwNWJiNmE4YThlN2U3Mi4uZDk0OTc1OGY3Y2VlYzdkZTBjNTlmMjJhZTY3OWQyMzc1M2M3
ODc4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CkBAIC0zNSw2ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKIGNsYXNzIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU7CiB0ZW1w
bGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+IHsKQEAgLTYwLDYgKzYyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SGFuZGxlTmFtZXMoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEhhbmRsZU5hbWVzQ2Fs
bGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRIYW5kbGUoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFj
ayYmKSA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAK
aW5kZXggM2M4OGU5Nzk1NDkzZDRhNDcxOTBmODUwODJiZGFkYjNmNWQyN2RjYy4uYTU4ZmFmYWQy
ZGUzOGE0MDZiZmM0ZWMzYzA0MTFhMjk3N2RmMzllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2lu
Y2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTQ3LDExICs0OCwxNiBAQCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgYwogewogICAgIEFTU0VS
VChtX2ZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAg
c3VzcGVuZElmTmVlZGVkKCk7CisKKyAgICBtX3NvdXJjZS0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKG1faWRlbnRpZmllciwgdGhpcyk7CiB9CiAKIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Ojp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogewogICAgIEFTU0VSVChpc0Nsb3NpbmdP
ckNsb3NlZCgpKTsKKworICAgIG1fc291cmNlLT51bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZSht
X2lkZW50aWZpZXIpOworCiAgICAgaWYgKG1fY2xvc2VSZXN1bHQpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMTQyLDM1ICsxNDgsNTIgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
Y2xvc2VJbnRlcm5hbChDbG9zZUNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgaWYgKGlzQ2xvc2lu
ZykKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKG1fZmlsZSAhPSBGaWxlU3lzdGVtOjpp
bnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBjbG9zZUZpbGUoKTsKK30KKwordm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VGaWxlKCkKK3sKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVy
bjsKKwogICAgIGF1dG8qIHNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKHNjb3BlKTsKIAotICAgIEFTU0VSVCht
X2ZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgV29y
a2VyR2xvYmFsU2NvcGU6OnBvc3RGaWxlU3lzdGVtU3RvcmFnZVRhc2soW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIGZpbGUgPSBzdGQ6OmV4Y2hhbmdlKG1fZmlsZSwgRmlsZVN5c3RlbTo6
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSksIHdvcmtlclRocmVhZCA9IFJlZiB7IHNjb3BlLT50
aHJlYWQoKSB9XSgpIG11dGFibGUgewogICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoZmls
ZSk7CiAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrKFt3ZWFrVGhpcyA9
IFdURk1vdmUod2Vha1RoaXMpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCi0gICAgICAgICAgICAgICAgd2Vha1RoaXMtPmNsb3NlQmFja2VuZChDbG9zZU1vZGU6
OkFzeW5jKTsKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2VGaWxlKCk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpk
aWRDbG9zZUZpbGUoKQoreworICAgIGNsb3NlQmFja2VuZChDbG9zZU1vZGU6OkFzeW5jKTsKK30K
Kwogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VCYWNrZW5kKENsb3NlTW9k
ZSBtb2RlKQogeworICAgIGlmIChtX2Nsb3NlUmVzdWx0KQorICAgICAgICByZXR1cm47CisKICAg
ICBpZiAobW9kZSA9PSBDbG9zZU1vZGU6OkFzeW5jKSB7CiAgICAgICAgIG1fc291cmNlLT5jbG9z
ZShtX2lkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYXV0
byByZXN1bHQpIG11dGFibGUgewotICAgICAgICAgICAgZGlkQ2xvc2UoV1RGTW92ZShyZXN1bHQp
KTsKKyAgICAgICAgICAgIGRpZENsb3NlQmFja2VuZChXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAg
ICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1fc291cmNlLT5jbG9zZShtX2lk
ZW50aWZpZXIsIFtdKGF1dG8pIHsgfSk7Ci0gICAgZGlkQ2xvc2UoeyB9KTsKKyAgICBkaWRDbG9z
ZUJhY2tlbmQoeyB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlk
Q2xvc2UoRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpkaWRDbG9zZUJhY2tlbmQoRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpCiB7
Ci0gICAgQVNTRVJUKCFtX2Nsb3NlUmVzdWx0KTsKKyAgICBpZiAobV9jbG9zZVJlc3VsdCkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9jbG9zZVJlc3VsdCA9IFdURk1vdmUocmVzdWx0KTsKICAg
ICBhdXRvIGNhbGxiYWNrcyA9IHN0ZDo6ZXhjaGFuZ2UobV9jbG9zZUNhbGxiYWNrcywgeyB9KTsK
QEAgLTI0Nyw0ICsyNzAsMTIgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6c3Rv
cCgpCiAgICAgY2xvc2VJbnRlcm5hbChbXShhdXRvKSB7IH0pOwogfQogCit2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjppbnZhbGlkYXRlKCkKK3sKKyAgICBjbG9zZUZpbGUoKTsKKwor
ICAgIC8vIEludmFsaWRhdGlvbiBpcyBpbml0aWF0ZWQgYnkgYmFja2VuZC4KKyAgICBkaWRDbG9z
ZUJhY2tlbmQoeyB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCAxOGI0YWVkNWQ2ZTk3MTRkMDBkOTU2ODEz
YWM3ZjI5NzFmOGE4M2RmLi5iMDdiOTQwMzAwMmQ3ZDFkZTlhZDhhMDQwNWJkOGE5YjY2NGZjMTlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtNTIsMTkgKzUy
LDIyIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVu
c2lnbmVkTG9uZ0xvbmc+JiYpOwogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAg
IHZvaWQgZGlkQ2xvc2UoRXhjZXB0aW9uT3I8dm9pZD4mJik7CiAgICAgRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiByZWFkKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRl
T3B0aW9ucyk7CiAgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiB3cml0ZShCdWZm
ZXJTb3VyY2UmJiwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogICAgIHVzaW5nIFJlc3Vs
dCA9IHN0ZDo6dmFyaWFudDxFeGNlcHRpb25Pcjx2b2lkPiwgRXhjZXB0aW9uT3I8dWludDY0X3Q+
PjsKICAgICB2b2lkIGNvbXBsZXRlUHJvbWlzZShSZXN1bHQmJik7CisgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CiAKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwog
ICAgIGJvb2wgaXNDbG9zaW5nT3JDbG9zZWQoKSBjb25zdDsKICAgICB1c2luZyBDbG9zZUNhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CiAgICAg
dm9pZCBjbG9zZUludGVybmFsKENsb3NlQ2FsbGJhY2smJik7CisgICAgdm9pZCBjbG9zZUZpbGUo
KTsKKyAgICB2b2lkIGRpZENsb3NlRmlsZSgpOwogICAgIGVudW0gY2xhc3MgQ2xvc2VNb2RlIDog
Ym9vbCB7IEFzeW5jLCBTeW5jIH07CiAgICAgdm9pZCBjbG9zZUJhY2tlbmQoQ2xvc2VNb2RlKTsK
KyAgICB2b2lkIGRpZENsb3NlQmFja2VuZChFeGNlcHRpb25Pcjx2b2lkPiYmKTsKIAogICAgIC8v
IEFjdGl2ZURPTU9iamVjdAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5jcHAKaW5kZXggMWEwYTQzYmU0NmFjODQ1ZjM0ZDYwMjFhMDk5NTZiMGM3NjZhY2Fi
NC4uYTlmODNlOWI3NmIxMTJlYTdiNTlhMDk1NjM5NjJiNjVkZTdlOWZlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTUyLDYg
KzUyLDkgQEAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp+V29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkKIAogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQogeworICAgIGZvciAoYXV0byBoYW5kbGUgOiBt
X3N5bmNBY2Nlc3NIYW5kbGVzLnZhbHVlcygpKQorICAgICAgICBoYW5kbGUtPmludmFsaWRhdGUo
KTsKKwogICAgIHNjb3BlQ2xvc2VkKCk7CiB9CiAKQEAgLTI4Nyw2ICsyOTAsMzUgQEAgdm9pZCBX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWYKICAgICB9KTsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKiBo
YW5kbGUpCit7CisgICAgaWYgKCFtX3Njb3BlKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NF
UlQobV9zY29wZS0+aWRlbnRpZmllcigpID09IGNvbnRleHRJZGVudGlmaWVyKTsKKyAgICBBU1NF
UlQoaGFuZGxlKTsKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLmFkZChpZGVudGlmaWVyLCBXZWFr
UHRyIHsgKmhhbmRsZSB9KTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIsIGNv
bnRleHRJZGVudGlmaWVyLCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5l
Y3Rpb25dKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5yZWdpc3Rl
clN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIsIG51bGxwdHIp
OworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5yZW1vdmUoaWRl
bnRpZmllcik7CisgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciwgbWFpblRocmVhZENv
bm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBt
YWluVGhyZWFkQ29ubmVjdGlvbi0+dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmll
cik7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjppbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaGFuZGxlID0gbV9zeW5jQWNj
ZXNzSGFuZGxlcy5nZXQoaWRlbnRpZmllcik7CisgICAgaWYgKGhhbmRsZSkKKyAgICAgICAgaGFu
ZGxlLT5pbnZhbGlkYXRlKCk7Cit9CisKIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpnZXRIYW5kbGVOYW1lcyhGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Nj
b3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDBiNzdkYzcwMDM0YjQ0ZjQ3NzM3ZGQ4MTU1MjE3NDUyZGYxNjlhNWMuLmNkY2U0MTE1
NWI3ZmFmMDlmZGUyMWI5Zjc0NTJjNTU0MjA2MmM4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTcwLDYgKzcwLDkgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJTeW5j
QWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKikg
ZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogCiAg
ICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX21haW5UaHJlYWRDb25uZWN0aW9uOwpAQCAtODEsNiAr
ODQsOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZU5hbWVzQ2FsbGJhY2s+IG1fZ2V0SGFuZGxl
TmFtZXNDYWxsYmFja3M7CiAgICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjaz4gbV9nZXRIYW5k
bGVXaXRoVHlwZUNhbGxiYWNrczsKICAgICBIYXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTdHJpbmdDYWxsYmFjaz4gbV9zdHJpbmdDYWxsYmFj
a3M7CisgICAgSGFzaE1hcDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZ1
bmN0aW9uPHZvaWQoKT4+IG1fYWNjZXNzSGFuZGxlSW52YWxpZGF0aW9uSGFuZGxlcnM7CisgICAg
SGFzaE1hcDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYWtQdHI8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiBtX3N5bmNBY2Nlc3NIYW5kbGVzOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAppbmRleCA0NjVl
NzBjN2IzM2U2ZjdjYTFjN2VkODc1MzIxMzk4Yzc4OTU0MzVhLi5iZjMyNzQxMjJmODE5MWNhMWFl
NDVmZWI4NGZiYjA1ZWRmNTM3MGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcApAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiUmVh
ZGFibGVTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIK
KyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJXcml0YWJsZVN0cmVhbS5oIgog
I2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtU2luay5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjBlNDI4ODM5NzU2OGQ0NTBk
MTJmMTg1YjhmNmZlYTYwNjY0ZTE3OC4uNjE1MWU0ZDg4ZTM4YWM5ZTI2MWM4MmJlMjRmNWNlMDli
YWVhNWIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjY1OSw3ICsyNjU5LDcgQEAKIAkJODM4Rjg2REIxRjUwOUU3QjAwRThD
RkM1IC8qIEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzhGODZENzFGNTA5RTZDMDBFOENGQzUgLyogRmlsZVN5
c3RlbUVudHJ5Q2FsbGJhY2suaCAqLzsgfTsKIAkJODM5OTQ3MEMxRjUwQjYzRTAwRTlEODZCIC8q
IERPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzOTk0NzA3MUY1MEI2MzgwMEU5RDg2QiAvKiBET01GaWxlU3lzdGVtLmggKi87IH07
CiAJCTgzOTk0NzEwMUY1MEI2RkEwMEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTk0NzBFMUY1MEI2RjMw
MEU5RDg2QiAvKiBKU0RPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKLQkJODM5QTA5NUQyNTI0RjM3RjAw
RUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEwOTVCMjUyNEYzNzYwMEVFRjMy
OCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggKi87IH07CisJCTgzOUEwOTVE
MjUyNEYzN0YwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMDk1QjI1MjRG
Mzc2MDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOUEyRjJFMUUyMDRB
NzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdM
U3RhdGVUcmFja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQjFBMEMw
QzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKIAkJODM5QkU2RDUyNEY1ODc2
MjAwNERGNTBGIC8qIElJUkZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5QkU2RDIyNEY1ODc1NTAwNERGNTBGIC8qIElJUkZpbHRlci5oICov
OyB9OwpAQCAtMjY4Nyw3ICsyNjg3LDcgQEAKIAkJODNEMzVBRUMxQzcxODdGQTAwRjcwRDVBIC8q
IFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUVBMUM3MTg3RUQwMEY3MEQ1QSAvKiBYTUxIdHRwUmVx
dWVzdEV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTgzRDM1QUYyMUM3MThEOTAwMEY3MEQ1QSAvKiBK
U1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDM1QUYwMUM3MThEODQwMEY3MEQ1QSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNENTExRjYyNTBDMUNCRjAwMkVEQzUxIC8q
IFB1c2hQdWxsRklGTy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTgzRDZBQUU2MjUyNEVF
MUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4QjRC
IC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CisJCTgzRDZBQUU2MjUyNEVF
MUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4QjRC
IC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODNEQjlFMEYyNERBMTk0OTAwMzdCNDY4IC8qIEJp
cXVhZEZpbHRlclR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzREI5RTBDMjREQTE4QjUwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggKi87
IH07CiAJCTgzREI5RTEwMjREQTE5NTcwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwRTI0
REExOEI2MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5oICovOyB9OwogCQk4M0UzNTlB
MjFCQjEwMzFEMDAyQ0VCOTggLyogSlNIVE1MVGltZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTM1OUEwMUJCMTAzMUQwMDJDRUI5OCAv
KiBKU0hUTUxUaW1lRWxlbWVudC5oICovOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENo
YW5uZWwuY3BwCmluZGV4IDc0YWNlM2VhOWNlZTgzNjYyN2QzOTNkMGNjZTkzNTlhMWNkMzRkMjYu
LjYzMjlkZWE1N2ExODdmZjI1OTc3NzBmOGU0Y2FhNjViZTk0NWQ1ZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgi
CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZDFiZTYzNmYxMmE5YTBiODcw
YjMzYmNhMTY0NmY0YWUwMjQxN2MxMS4uMTg3NmQxNTc3MDhlNzExNGJlOGM3YWE0YjIxMjJhM2I0
ODM1ZmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHAKQEAgLTUwLDE2ICs1MCwyMCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luUG9saWN5Lmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiU29ja2V0
UHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
V29ya2VyRm9udExvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIK
ICNpbmNsdWRlICJXb3JrZXJMb2NhdGlvbi5oIgorI2luY2x1ZGUgIldvcmtlck1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyTWVzc2FnaW5nUHJveHkuaCIKICNp
bmNsdWRlICJXb3JrZXJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlclJlcG9ydGluZ1Byb3h5LmgiCiAjaW5jbHVkZSAi
V29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVy
LmgiCiAjaW5jbHVkZSAiV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJXb3Jr
ZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRBcmd1bWVudHMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCmluZGV4IDM1ZDczYWNjZWUzMjdlYjg5ZGY5M2EzZmI0Y2Y5MDUzMTk4YTc3Nzgu
LmU3YmU0ZmQwYWE3ZGE5MWVmNzRkMDMwNDJiNjcxMzU2MDZjMDI0M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTI5LDE1ICsyOSwxMiBAQAogI2lu
Y2x1ZGUgIkJhc2U2NFV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJJbWFnZUJpdG1hcC5oIgotI2luY2x1ZGUgIlNjcmlwdEJ1ZmZlclNv
dXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiV2luZG93T3JXb3JrZXJHbG9iYWxT
Y29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVk
ZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIldvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJXb3JrZXJNZXNzYWdlUG9ydENoYW5u
ZWxQcm92aWRlci5oIgotI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtl
clR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTQsMTQgKzUxLDIw
IEBAIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKIGNsYXNzIENy
eXB0bzsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIGNsYXNzIEZvbnRGYWNl
U2V0OworY2xhc3MgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CiBjbGFzcyBQZXJmb3JtYW5j
ZTsKIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKK2NsYXNzIFNjcmlwdEJ1ZmZlcjsKK2NsYXNzIFNj
cmlwdEJ1ZmZlclNvdXJjZVByb3ZpZGVyOworY2xhc3MgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjsKIGNsYXNzIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIGNsYXNzIFdv
cmtlckxvY2F0aW9uOworY2xhc3MgV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CiBj
bGFzcyBXb3JrZXJOYXZpZ2F0b3I7CiBjbGFzcyBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb247CiBj
bGFzcyBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbjsKIGNsYXNzIFdvcmtlclN0b3JhZ2VDb25uZWN0
aW9uOworY2xhc3MgV29ya2VyVGhyZWFkOwogc3RydWN0IFdvcmtlclBhcmFtZXRlcnM7CiAKIG5h
bWVzcGFjZSBJREJDbGllbnQgewpAQCAtOTAsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgV29ya2Vy
U3RvcmFnZUNvbm5lY3Rpb24mIHN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgc3RhdGljIHZvaWQg
cG9zdEZpbGVTeXN0ZW1TdG9yYWdlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgZ2V0RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uKFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwotICAgIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiogZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKiBmaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKICAgICBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgTWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXImIG1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKCk7CiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNjUyYTBjNDc2MDA4MDI0OWI4YzhiNmZk
NWU1ZGRkNDllYWE5ZjNlMC4uZGNmYjdjYmE1YzM5MzQyZmU1NjhjYWRmZWI0YTliMGRhM2Y1YmEz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC00Myw2ICs0Myw4IEBACiAjaW5jbHVkZSAiV2Vi
Q29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVDbGllbnQuaCIKICNp
bmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV29y
a2VyU2NyaXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24u
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlclRlcm1pbmF0aW9uLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDBlZjQxOWYy
ZDcxMjgzYWI2N2MzNjUxODMzNTZkY2VmYzc5NDQ4NjIuLjQyNjgwMTczNDBiMThiMGU3N2RlZTlk
OTE0NmE5NDQ5ZjU5NmIzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNl
cHRpb25Pci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvV29ya2VyR2xvYmFsU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ2
LDYgKzQ4LDkgQEAgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJgogdm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQogewogICAgIG1fY29ubmVjdGlvbiA9
IG51bGxwdHI7CisKKyAgICBmb3IgKGF1dG8gaWRlbnRpZmllciA6IG1fc3luY0FjY2Vzc0hhbmRs
ZXMua2V5cygpKQorICAgICAgICBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIpOwog
fQogCiB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKQEAgLTE5Myw0ICsx
OTgsMjQgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Om1vdmUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWQKICAgICB9KTsKIH0KIAordm9pZCBXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKikKK3sKKyAgICBtX3N5bmNBY2Nl
c3NIYW5kbGVzLmFkZChpZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKK3sKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwor
dm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgaWYgKGF1dG8gY29udGV4dElkZW50aWZpZXIgPSBtX3N5bmNBY2Nlc3NIYW5k
bGVzLmdldChpZGVudGlmaWVyKSkgeworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpw
b3N0VGFza1RvKGNvbnRleHRJZGVudGlmaWVyLCBbaWRlbnRpZmllcl0oYXV0byYgY29udGV4dCkg
bXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKiBj
b25uZWN0aW9uID0gZG93bmNhc3Q8V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQp
LmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24tPmludmFsaWRhdGVBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcik7CisgICAgICAgIH0pOworICAg
IH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZWU1YzZmZTE5Yzc4MDJkYTJhN2VhMTU0MzYxNjA1
MTdkNmNkNWMyYi4uM2Y4MWI0YWZmN2RjZjVkYzcyMGQ2MTQ1NWM1MGI3MmFhMmY2NTE2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjcsNiAr
NjcsNyBAQCBjbGFzcyBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDbwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJik7
CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CkBA
IC04NSw3ICs4NiwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwog
ICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBy
ZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUqKSBmaW5hbDsKKyAgICB2b2lkIHVu
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CiAKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1fc3luY0FjY2Vzc0hh
bmRsZXM7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM3MmFk
NmI2OGMyN2U1OTZiOTE4ZjkzY2UzNTA0ZjlhNzg3N2Y3OTcuLmU4ZTlmODY2Yzk1YjgyYTUxYjE1
NzMwNWE0ZTIzOTRjYTQ4YmNlY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMS0zMCAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY3Jhc2hlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNjA1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NTE4NzcwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RmlsZVN5c3RlbUFjY2Vzcy5tbToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoa2VlcEFjY2Vz
c0hhbmRsZUFjdGl2ZSk6CisKIDIwMjEtMTEtMzAgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFw
cGxlLmNvbT4KIAogICAgICAgICBBWDogUmVkdWNlIHJlcGV0aXRpb24gaW4gcmV0cmlldmluZyB0
eXBlZCBhdHRyaWJ1dGUgdmFsdWVzIGluIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFj
Y2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3Rl
bUFjY2Vzcy5tbQppbmRleCA1MmFiOWNlMjhiNzU2MGRhOTBlYTEzZTg5Mjg4ZDE3MjlhNDEwZWJl
Li43YmJlM2M5ZjYyYzFkOTdjMzE5NTUyYTE5MDNkOTE1YWQ1ZjdhMjFhIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNj
ZXNzLm1tCkBAIC01OSwxNSArNTksMzAgQEAgc3RhdGljIE5TU3RyaW5nICptYWluRnJhbWVTdHJp
bmcgPSBAIjxzY3JpcHQ+IFwKICAgICA8L3NjcmlwdD4iOwogCiBzdGF0aWMgY29uc3QgY2hhciog
d29ya2VyQnl0ZXMgPSBSIlRFU1RSRVNPVVJDRSgKK3ZhciBwb3NpdGlvbiA9IDA7Cit2YXIgYWNj
ZXNzSGFuZGxlOwogYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgdHJ5IHsKICAgICAgICAg
dmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsK
ICAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUo
J2ZpbGUtc3lzdGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsKLSAgICAgICAg
dmFyIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZSgpOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKTsKICAgICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxMCk7
CiAgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJh
dCIgOiAwIH0pOwogICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdzdWNjZXNzOiB3cml0ZSAnICsg
d3JpdGVTaXplICsgJyBieXRlcycpOworICAgICAgICBrZWVwQWNjZXNzSGFuZGxlQWN0aXZlKCk7
CisgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnZXJyb3I6ICcg
KyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOworICAgICAgICBjbG9zZSgpOworICAg
IH0KK30KK2Z1bmN0aW9uIGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUoKQoreworICAgIHRyeSB7Cisg
ICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMSk7CisgICAgICAgIHZhciB3cml0
ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiBwb3NpdGlvbiB9KTsK
KyAgICAgICAgcG9zaXRpb24gKz0gd3JpdGVTaXplOworICAgICAgICBzZXRUaW1lb3V0KGtlZXBB
Y2Nlc3NIYW5kbGVBY3RpdmUsIDEwMCk7CiAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgIHNl
bGYucG9zdE1lc3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdl
KTsKICAgICAgICAgY2xvc2UoKTsKQEAgLTc2LDcgKzkxLDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVz
dCgpCiB0ZXN0KCk7CiApVEVTVFJFU09VUkNFIjsKIAotVEVTVChGaWxlU3lzdGVtQWNjZXNzLCBQ
cm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK1RFU1QoRmlsZVN5c3RlbUFjY2VzcywgV2ViUHJvY2Vz
c0NyYXNoRHVyaW5nV3JpdGUpCiB7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW0ZpbGVT
eXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CkBAIC0xMzAsNiArMTQ1LDUzIEBAIFRFU1QoRmlsZVN5c3RlbUFjY2VzcywgUHJvY2Vzc0NyYXNo
RHVyaW5nV3JpdGUpCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0
ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogfQogCitURVNUKEZpbGVTeXN0ZW1BY2Nl
c3MsIE5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIg
PSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFu
ZGxlciJdOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c107CisgICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0gWUVTOworICAg
IHByZWZlcmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2Vz
Ll9zdG9yYWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNjaGVtZUhhbmRsZXIgPSBhZG9w
dE5TKFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2NoZW1lSGFu
ZGxlciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlkPFdLVVJM
U2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhOworICAg
ICAgICBOU1VSTCAqcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgICAgIEVYUEVD
VF9XS19TVFJFUSgid2Via2l0Oi8vd2Via2l0Lm9yZy93b3JrZXIuanMiLCByZXF1ZXN0VVJMLmFi
c29sdXRlU3RyaW5nKTsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJl
c3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJMIE1JTUVUeXBlOkAidGV4dC9qYXZh
c2NyaXB0IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOwor
ICAgICAgICBkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndvcmtlckJ5dGVzIGxlbmd0aDpz
dHJsZW4od29ya2VyQnl0ZXMpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJl
c3BvbnNlLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0YS5nZXQoKV07
CisgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgfV07CisgICAgW2NvbmZpZ3VyYXRpb24g
c2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIndl
YmtpdCJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWluRnJh
bWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAIndlYmtpdDovL3dlYmtpdC5v
cmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9XS19T
VFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVy
Om5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9XS19T
VFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
KTsKKworICAgIC8vIEtpbGwgbmV0d29yayBwcm9jZXNzLgorICAgIFtbY29uZmlndXJhdGlvbiB3
ZWJzaXRlRGF0YVN0b3JlXSBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOworCisgICAgLy8gT3Bl
biBhY2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY3Jh
c2hlcy4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NU
UkVRKEAiZXJyb3I6IEludmFsaWRTdGF0ZUVycm9yIC0gQWNjZXNzSGFuZGxlIGlzIGNsb3Npbmcg
b3IgY2xvc2VkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEFjY2VzcyBo
YW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgbmV0d29yayBwcm9jZXNzIGlzIHJlbGF1bmNoZWQu
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxldGlvbkhh
bmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMi
LCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCiBzdGF0aWMgTlNTdHJpbmcgKmJhc2lj
U3RyaW5nID0gQCI8c2NyaXB0PiBcCiAgICAgYXN5bmMgZnVuY3Rpb24gb3BlbigpIFwKICAgICB7
IFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445611</attachid>
            <date>2021-12-01 13:45:58 -0800</date>
            <delta_ts>2021-12-01 14:50:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211201134556.patch</filename>
            <type>text/plain</type>
            <size>37644</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMDMxODkwY2M2NzNjMDYzMmIzMGYwNmFkZWRhZTk0
NDBjYWQ1NmE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTAxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTWFrZSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24ga2VlcCB0cmFjayBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4gV2hlbiBjb25u
ZWN0aW9uIGlzIGNsb3NlZCwgb3IgYWNjZXNzIAorICAgICAgICBoYW5kbGUgaXMgZXhwbGljaXRs
eSBpbnZhbGlkYXRlZCAoZm9yIGV4YW1wbGUsIGR1ZSB0byBmaWxlIGRlbGV0aW9uIGluIHRoZSBi
YWNrZW5kKSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAgICAgIHdpbGwgaW52YWxp
ZGF0ZSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4KKworICAgICAgICBOb3JtYWxseSwgdG8g
Y2xvc2UgYSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSAod2hlbiBjbG9zZSgpIGlzIGNhbGxl
ZCBvciBjb250ZXh0IHN0b3BzKSwgd2UgbmVlZCB0bzogCisgICAgICAgIDEuIGNsb3NlIGZpbGUg
ZGVzY3JpcHRvciAoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSkKKyAgICAg
ICAgMi4gbm90aWZ5IGJhY2tlbmQgYWJvdXQgY2xvc2UgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpjbG9zZUJhY2tlbmQpCisgICAgICAgIDMuIGdldCBjbG9zZSByZXN1bHQgYW5kIGNvbXBs
ZXRlIGNhbGxiYWNrcyAoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCkKKyAgICAgICAgRm9yIGludmFsaWRhdGlvbiBjYXNlLCB3ZSBvbmx5IG5lZWQgdG8gcGVyZm9y
bSBzdGVwIDEgYW5kIDMgYmVjYXVzZSBjb25uZWN0aW9uIHRvIGJhY2tlbmQgaXMgbG9zdCBvciBi
YWNrZW5kCisgICAgICAgIGluaXRpYXRlcyB0aGUgY2xvc2UuCisKKyAgICAgICAgQVBJIHRlc3Q6
IEZpbGVTeXN0ZW1BY2Nlc3MuTmV0d29ya1Byb2Nlc3NDcmFzaER1cmluZ1dyaXRlCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmlzV29ya2VyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlkYXRlQWNjZXNzSGFuZGxlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHA6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRvIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2NDUyMjRl
NTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi4zMDI0NmI2MjU2NjFkYzVmZmVkY2FlNWYyZjM0
YTc0MjM5MWUyYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEyLTAxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNj
ZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjp1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaDoKKwogMjAyMS0xMS0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWlncmF0ZSBzb21lIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiBtZXNzYWdlcyB0
byBhc3luYyByZXBsaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiZjg5NTYxODJiZmMyMjEzZTU0
YmFjMzMwNDk0NWUzYjZiMjI0ZWM0Li5jNWU3OWFlNzM3M2M2MDEyYzYxZTlkYzVmMTAwNzBjYTVk
ZDgxYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE3NTUsNyArMTc1NSwxMCBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgd29ya2Vycy9Xb3JrZXJBbmltYXRp
b25Db250cm9sbGVyLmgKICAgICB3b3JrZXJzL1dvcmtlckRlYnVnZ2VyUHJveHkuaAogICAgIHdv
cmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKKyAgICB3b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKICAgICB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKKyAgICB3b3JrZXJzL1dvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmgKKyAgICB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaAogICAgIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmgKICAgICB3
b3JrZXJzL1dvcmtlclJ1bkxvb3AuaAogICAgIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCmluZGV4IDBlYWQ0MDM5Mjg5OGMxY2RlNjY4
MDE1YmMzODExYWYzMmQzNjdmZGEuLmExNzQ5NWQ3NjU5NjU2ZmUyZGQ5Y2NhM2QzNzExMjIxZmU0
OGQxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JX
b3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN1cHBs
ZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGFmMWQyZTljOWE4ZDg1YzkzZjYyNDI2
NTc2NDYyNjliMTUxYTVjYWEuLmI4NjgyZjc2OTE2MTZlMGRiMTRlNTQxMjJjYzEzNWI1MTQxNzdj
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlLmgiCiAj
aW5jbHVkZSAiSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgorI2luY2x1ZGUgIldvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk3LDUgKzk4LDIxIEBAIHZvaWQg
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kCiAgICAgY29ubmVjdGlvbigpLmNsb3NlKGlkZW50aWZpZXIoKSwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Cit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlJiBoYW5kbGUpCit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGRvd25jYXN0PFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4oY29ubmVjdGlvbigpKS5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgaGFu
ZGxlKTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dW5yZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rp
b24oKS51bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDhjZWUx
MmNiZGZiZjQwMDkyZjdhMDQyMGFkOTFjNzFhODJhYzI4YjEuLjZlNDY4OGZhOTJkNjU5MWJkYzdi
NzBlZWRiNWE2MjExMDRjYmUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00
Miw2ICs0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Pj4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAg
IHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmKTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CiAKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggYTdhM2NmYmM0ZmE1MzA5Mzg4YmQwMTk2MTUwNWJiNmE4YThlN2U3
Mi4uMzU5YzI0Njc4MGY5NjUyNDkyYzUwZTFlOGY1NGY5MDRjYTc4OTY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmg+CkBAIC0zNSw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwor
Y2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsK
QEAgLTUwLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4+JiYpPjsKICAgICB1c2luZyBTdHJpbmdDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8U3RyaW5nPiYmKT47CiAK
KyAgICB2aXJ0dWFsIGJvb2wgaXNXb3JrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBjbG9zZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNr
JiYpID0gMDsKQEAgLTYwLDYgKzYzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRG
aWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhh
bmRsZVdpdGhUeXBlQ2FsbGJhY2smJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IDNjODhlOTc5NTQ5M2Q0YTQ3MTkwZjg1MDgyYmRhZGIz
ZjVkMjdkY2MuLmI4NWFkYWZjMjliNDg3MDkxZGU2NWFiNTI0MzliNDUxZDAzNjc1YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NywxMSArNDgsMTYgQEAgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGMKIHsKICAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgbV9zb3VyY2UtPnJl
Z2lzdGVyU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsICp0aGlzKTsKIH0KIAogRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpCiB7CiAg
ICAgQVNTRVJUKGlzQ2xvc2luZ09yQ2xvc2VkKCkpOworCisgICAgbV9zb3VyY2UtPnVucmVnaXN0
ZXJTeW5jQWNjZXNzSGFuZGxlKG1faWRlbnRpZmllcik7CisKICAgICBpZiAobV9jbG9zZVJlc3Vs
dCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDIsMzUgKzE0OCw1MiBAQCB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFsKENsb3NlQ2FsbGJhY2smJiBjYWxsYmFj
aykKICAgICBpZiAoaXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQobV9m
aWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGNsb3Nl
RmlsZSgpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUo
KQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhh
bmRsZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogc2NvcGUgPSBkb3duY2FzdDxXb3Jr
ZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBBU1NFUlQoc2Nv
cGUpOwogCi0gICAgQVNTRVJUKG1fZmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlKTsKICAgICBXb3JrZXJHbG9iYWxTY29wZTo6cG9zdEZpbGVTeXN0ZW1TdG9yYWdl
VGFzayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgZmlsZSA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9maWxlLCBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgc2NvcGUtPnRocmVhZCgpIH1dKCkgbXV0YWJsZSB7CiAgICAgICAgIEZpbGVT
eXN0ZW06OmNsb3NlRmlsZShmaWxlKTsKICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCku
cG9zdFRhc2soW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldKGF1dG8mKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2xv
c2VCYWNrZW5kKENsb3NlTW9kZTo6QXN5bmMpOworICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5k
aWRDbG9zZUZpbGUoKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlRmlsZSgpCit7CisgICAgY2xvc2VCYWNrZW5kKENs
b3NlTW9kZTo6QXN5bmMpOworfQorCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpj
bG9zZUJhY2tlbmQoQ2xvc2VNb2RlIG1vZGUpCiB7CisgICAgaWYgKG1fY2xvc2VSZXN1bHQpCisg
ICAgICAgIHJldHVybjsKKwogICAgIGlmIChtb2RlID09IENsb3NlTW9kZTo6QXN5bmMpIHsKICAg
ICAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkaWRD
bG9zZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgZGlkQ2xvc2VCYWNrZW5kKFdURk1v
dmUocmVzdWx0KSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
bV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKLSAgICBkaWRDbG9z
ZSh7IH0pOworICAgIGRpZENsb3NlQmFja2VuZCh7IH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKK3Zv
aWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2VuZChFeGNlcHRpb25P
cjx2b2lkPiYmIHJlc3VsdCkKIHsKLSAgICBBU1NFUlQoIW1fY2xvc2VSZXN1bHQpOworICAgIGlm
IChtX2Nsb3NlUmVzdWx0KQorICAgICAgICByZXR1cm47CiAKICAgICBtX2Nsb3NlUmVzdWx0ID0g
V1RGTW92ZShyZXN1bHQpOwogICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2Ns
b3NlQ2FsbGJhY2tzLCB7IH0pOwpAQCAtMjQ3LDQgKzI3MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpzdG9wKCkKICAgICBjbG9zZUludGVybmFsKFtdKGF1dG8pIHsgfSk7
CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmludmFsaWRhdGUoKQorewor
ICAgIGNsb3NlRmlsZSgpOworCisgICAgLy8gSW52YWxpZGF0aW9uIGlzIGluaXRpYXRlZCBieSBi
YWNrZW5kLgorICAgIGRpZENsb3NlQmFja2VuZCh7IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCmluZGV4IDE4YjRh
ZWQ1ZDZlOTcxNGQwMGQ5NTY4MTNhYzdmMjk3MWY4YTgzZGYuLmIwN2I5NDAzMDAyZDdkMWRlOWFk
OGEwNDA1YmQ4YTliNjY0ZmMxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oCkBAIC01MiwxOSArNTIsMjIgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0U2l6ZShET01Q
cm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CiAgICAgdm9pZCBmbHVzaChE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBjbG9zZShET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7Ci0gICAgdm9pZCBkaWRDbG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmKTsK
ICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJlYWQoQnVmZmVyU291cmNlJiYs
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBs
b25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyk7CiAgICAgdXNpbmcgUmVzdWx0ID0gc3RkOjp2YXJpYW50PEV4Y2VwdGlvbk9yPHZvaWQ+LCBF
eGNlcHRpb25Pcjx1aW50NjRfdD4+OwogICAgIHZvaWQgY29tcGxldGVQcm9taXNlKFJlc3VsdCYm
KTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgYm9vbCBpc0Nsb3NpbmdPckNsb3NlZCgpIGNvbnN0Owog
ICAgIHVzaW5nIENsb3NlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPjsKICAgICB2b2lkIGNsb3NlSW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmKTsK
KyAgICB2b2lkIGNsb3NlRmlsZSgpOworICAgIHZvaWQgZGlkQ2xvc2VGaWxlKCk7CiAgICAgZW51
bSBjbGFzcyBDbG9zZU1vZGUgOiBib29sIHsgQXN5bmMsIFN5bmMgfTsKICAgICB2b2lkIGNsb3Nl
QmFja2VuZChDbG9zZU1vZGUpOworICAgIHZvaWQgZGlkQ2xvc2VCYWNrZW5kKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAxYTBhNDNiZTQ2YWM4NDVmMzRk
NjAyMWEwOTk1NmIwYzc2NmFjYWI0Li5mNDdjYTNkMzNkOTdhNjM3ZDZmN2JhMDZjYmVlNDUxN2Yx
MzIwZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcApAQCAtNTIsNiArNTIsOSBAQCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246On5Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKQogCiB2b2lkIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7CisgICAg
Zm9yIChhdXRvIGhhbmRsZSA6IG1fc3luY0FjY2Vzc0hhbmRsZXMudmFsdWVzKCkpCisgICAgICAg
IGhhbmRsZS0+aW52YWxpZGF0ZSgpOworCiAgICAgc2NvcGVDbG9zZWQoKTsKIH0KIApAQCAtMjg3
LDYgKzI5MCwzMSBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xv
c2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZgogICAgIH0pOwogfQogCit2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYgaGFuZGxlKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQoaWRlbnRpZmllciwg
V2Vha1B0ciB7IGhhbmRsZSB9KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBj
b250ZXh0SWRlbnRpZmllciA9IG1fc2NvcGUtPmlkZW50aWZpZXIoKSwgbWFpblRocmVhZENvbm5l
Y3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBtYWlu
VGhyZWFkQ29ubmVjdGlvbi0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGNv
bnRleHRJZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc3luY0FjY2Vzc0hh
bmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZp
ZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbl0oKSBtdXRh
YmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnVucmVnaXN0ZXJTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0
byBoYW5kbGUgPSBtX3N5bmNBY2Nlc3NIYW5kbGVzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAg
aGFuZGxlLT5pbnZhbGlkYXRlKCk7Cit9CisKIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRIYW5kbGVOYW1lcyhGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFt
X3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oCmluZGV4IDBiNzdkYzcwMDM0YjQ0ZjQ3NzM3ZGQ4MTU1MjE3NDUyZGYxNjlhNWMuLjU0YjRi
ODFmM2E3OTY4Njg5YjdiZGNhYTViZmRkZGQ0MjYyOTE3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVi
bGljOgogICAgIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiogbWFpblRocmVhZENvbm5lY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX21haW5UaHJlYWRDb25uZWN0aW9uLmdldCgpOyB9CiAgICAg
dm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CiAgICAgdm9pZCBzY29wZUNsb3NlZCgpOworICAgIHZv
aWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmKTsKICAgICB1c2luZyBDYWxsYmFj
a0lkZW50aWZpZXIgPSBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lk
ZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJc1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4
Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwpAQCAtNTcs
NiArNTgsNyBAQCBwcml2YXRlOgogICAgIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bihXb3JrZXJHbG9iYWxTY29wZSYsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogCiAgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAgYm9vbCBpc1dvcmtl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGNsb3NlSGFuZGxlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
QEAgLTY3LDkgKzY5LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
Z2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmlu
YWw7Ci0KICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbCB7IH07CisgICAgdm9pZCB1bnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
IGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxT
Y29wZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBt
X21haW5UaHJlYWRDb25uZWN0aW9uOwpAQCAtODEsNiArODUsMTIgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRIYW5kbGVOYW1lc0NhbGxiYWNrPiBtX2dldEhhbmRsZU5hbWVzQ2FsbGJhY2tzOwogICAgIEhh
c2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2s+IG1fZ2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFja3M7CiAg
ICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6U3RyaW5nQ2FsbGJhY2s+IG1fc3RyaW5nQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2FjY2Vz
c0hhbmRsZUludmFsaWRhdGlvbkhhbmRsZXJzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Pj4gbV9zeW5jQWNjZXNzSGFuZGxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24pCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikgeyByZXR1cm4gY29ubmVjdGlv
bi5pc1dvcmtlcigpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuY3BwCmluZGV4IDQ2NWU3MGM3YjMzZTZmN2NhMWM3ZWQ4NzUzMjEzOThjNzg5
NTQzNWEuLmJmMzI3NDEyMmY4MTkxY2ExYWU0NWZlYjg0ZmJiMDVlZGY1MzcwZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVhZGFi
bGVTdHJlYW0uaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2lu
Y2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5rLmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li42MTUxZTRk
ODhlMzhhYzllMjYxYzgyYmUyNGY1Y2UwOWJhZWE1YjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjU5LDcgKzI2NTksNyBA
QAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEY4NkQ3
MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oICovOyB9OwogCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUwQjYzODAwRTlEODZC
IC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZGQTAwRTlEODZCIC8q
IEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oICov
OyB9OwotCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCAqLzsgfTsKKwkJODM5QTA5NUQyNTI0RjM3RjAwRUVGMzI4IC8qIFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYy
QzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVG
OTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5o
ICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyogSUlSRmlsdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlCRTZEMjI0RjU4NzU1
MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNjg3LDcgKzI2ODcsNyBAQAogCQk4
M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRUExQzcx
ODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNE
MzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRjAxQzcx
OEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4
M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFGNTI1MEMxQ0E4MDAyRURDNTEg
LyogUHVzaFB1bGxGSUZPLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCAqLzsgfTsKKwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0RC
OUUwRjI0REExOTQ5MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjlFMEMyNERBMThCNTAwMzdCNDY4
IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAqLzsgfTsKIAkJODNEQjlFMTAyNERBMTk1NzAwMzdCNDY4
IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzREI5RTBFMjREQTE4QjYwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJP
cHRpb25zLmggKi87IH07CiAJCTgzRTM1OUEyMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1l
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNFMzU5QTAxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50LmggKi87IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKaW5kZXggNzRhY2UzZWE5Y2VlODM2
NjI3ZDM5M2QwY2NlOTM1OWExY2QzNGQyNi4uNjMyOWRlYTU3YTE4N2ZmMjU5Nzc3MGY4ZTRjYWE2
NWJlOTQ1ZDVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIK
KyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdh
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cAppbmRleCBkMWJlNjM2ZjEyYTlhMGI4NzBiMzNiY2ExNjQ2ZjRhZTAyNDE3YzExLi4xODc2ZDE1
NzcwOGU3MTE0YmU4YzdhYTRiMjEyMmEzYjQ4MzVmYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTAsMTYgKzUwLDIwIEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIldvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJGb250TG9hZFJlcXVlc3QuaCIKICNpbmNs
dWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckxvY2F0aW9uLmgiCisj
aW5jbHVkZSAiV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKICNpbmNsdWRlICJX
b3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlck5hdmlnYXRvci5oIgorI2lu
Y2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyUmVw
b3J0aW5nUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMzVkNzNhY2NlZTMyN2Vi
ODlkZjkzYTNmYjRjZjkwNTMxOThhNzc3OC4uZTdiZTRmZDBhYTdkYTkxZWY3NGQwMzA0MmI2NzEz
NTYwNmMwMjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aApAQCAtMjksMTUgKzI5LDEyIEBACiAjaW5jbHVkZSAiQmFzZTY0VXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNs
dWRlICJXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCi0jaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC01NCwxNCArNTEsMjAgQEAgY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzOwogY2xhc3MgQ3J5cHRvOwogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOwogY2xhc3MgRm9udEZhY2VTZXQ7CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjsKIGNsYXNzIFBlcmZvcm1hbmNlOwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOworY2xh
c3MgU2NyaXB0QnVmZmVyOworY2xhc3MgU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI7CitjbGFz
cyBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyTG9jYXRpb247CitjbGFzcyBXb3JrZXJNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjsKIGNsYXNzIFdvcmtlck5hdmlnYXRvcjsKIGNsYXNzIFdv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbjsKIGNsYXNzIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOwog
Y2xhc3MgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb247CitjbGFzcyBXb3JrZXJUaHJlYWQ7CiBzdHJ1
Y3QgV29ya2VyUGFyYW1ldGVyczsKIAogbmFtZXNwYWNlIElEQkNsaWVudCB7CkBAIC05MCw3ICs5
Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbiYgc3RvcmFnZUNvbm5l
Y3Rpb24oKTsKICAgICBzdGF0aWMgdm9pZCBwb3N0RmlsZVN5c3RlbVN0b3JhZ2VUYXNrKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAgICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBn
ZXRGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJik7Ci0gICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKiBmaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24qIGZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpOwogICAg
IFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsK
ICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIoKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRl
eCA2NTJhMGM0NzYwMDgwMjQ5YjhjOGI2ZmQ1ZTVkZGQ0OWVhYTlmM2UwLi5kY2ZiN2NiYTVjMzkz
NDJmZTU2OGNhZGZlYjRhOWIwZGEzZjViYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQz
LDYgKzQzLDggQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAi
V29ya2VyQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtl
clJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Rl
ZmVyVGVybWluYXRpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5jcHAKaW5kZXggMGVmNDE5ZjJkNzEyODNhYjY3YzM2NTE4MzM1NmRjZWZjNzk0NDg2
Mi4uMDIxOTg4MGZhOTY0NWQ5YzUxMjU0MWFiNDJkYTJmMTlkNjY4ZDc2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI3LDkgKzI3LDEy
IEBACiAjaW5jbHVkZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAKICNpbmNs
dWRlICJOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJHbG9i
YWxTY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDYsNiArNDksOSBAQCBXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bihJUEM6OkNvbm5lY3Rpb24mCiB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y29ubmVjdGlvbkNsb3NlZCgpCiB7CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKworICAg
IGZvciAoYXV0byBpZGVudGlmaWVyIDogbV9zeW5jQWNjZXNzSGFuZGxlcy5rZXlzKCkpCisgICAg
ICAgIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMTkzLDQgKzE5OSwyNCBAQCB2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6bW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZAogICAgIH0pOwogfQogCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKK3sKKyAgICBtX3N5bmNB
Y2Nlc3NIYW5kbGVzLmFkZChpZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7Cit9CisKK3Zv
aWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3sKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLnJlbW92ZShpZGVudGlmaWVyKTsKK30K
Kwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgaWYgKGF1dG8gY29udGV4dElkZW50aWZpZXIgPSBtX3N5bmNBY2Nlc3NI
YW5kbGVzLmdldChpZGVudGlmaWVyKSkgeworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Ojpwb3N0VGFza1RvKGNvbnRleHRJZGVudGlmaWVyLCBbaWRlbnRpZmllcl0oYXV0byYgY29udGV4
dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
KiBjb25uZWN0aW9uID0gZG93bmNhc3Q8V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRl
eHQpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb24tPmludmFsaWRhdGVBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcik7CisgICAgICAgIH0pOwor
ICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggZWU1YzZmZTE5Yzc4MDJkYTJhN2VhMTU0MzYx
NjA1MTdkNmNkNWMyYi4uM2E1MWMzZDE3ODdiYTk0M2M1NjE3MDA5MDA2OTM4NTc4ZGFiYWUyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjcs
NiArNjcsNyBAQCBjbGFzcyBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDbwogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9u
Jik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7
CkBAIC04NSw3ICs4NiwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFs
OwogICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgaW52
YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpIGZpbmFsOwogCisgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyPiBtX3N5bmNBY2Nlc3NIYW5kbGVzOwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBjNzJhZDZiNjhjMjdlNTk2YjkxOGY5M2NlMzUwNGY5YTc4NzdmNzk3
Li5iMTk4ZTcxYWI0YWVmOGI3MjExYjdkNGI0ZDJiOGY1OTJkMzEyYThiIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgc2hvdWxkIGJlIGludmFsaWRhdGVkIHdoZW4gbmV0d29y
ayBwcm9jZXNzIGNyYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMjYwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUxODc3MDY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAoa2VlcEFjY2Vzc0hhbmRsZUFjdGl2ZSk6CisKIDIwMjEtMTEtMzAgIFR5bGVy
IFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogUmVkdWNlIHJlcGV0
aXRpb24gaW4gcmV0cmlldmluZyB0eXBlZCBhdHRyaWJ1dGUgdmFsdWVzIGluIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQppbmRleCA1MmFiOWNlMjhiNzU2MGRhOTBl
YTEzZTg5Mjg4ZDE3MjlhNDEwZWJlLi43YmJlM2M5ZjYyYzFkOTdjMzE5NTUyYTE5MDNkOTE1YWQ1
ZjdhMjFhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0ZpbGVTeXN0ZW1BY2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCkBAIC01OSwxNSArNTksMzAgQEAgc3RhdGljIE5T
U3RyaW5nICptYWluRnJhbWVTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKICAgICA8L3NjcmlwdD4iOwog
CiBzdGF0aWMgY29uc3QgY2hhciogd29ya2VyQnl0ZXMgPSBSIlRFU1RSRVNPVVJDRSgKK3ZhciBw
b3NpdGlvbiA9IDA7Cit2YXIgYWNjZXNzSGFuZGxlOwogYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB7
CiAgICAgdHJ5IHsKICAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3Rv
cmFnZS5nZXREaXJlY3RvcnkoKTsKICAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290
SGFuZGxlLmdldEZpbGVIYW5kbGUoJ2ZpbGUtc3lzdGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUn
IDogdHJ1ZSB9KTsKLSAgICAgICAgdmFyIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUu
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBm
aWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICAgICAgdmFyIGJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcigxMCk7CiAgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5k
bGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiAwIH0pOwogICAgICAgICBzZWxmLnBvc3RNZXNzYWdl
KCdzdWNjZXNzOiB3cml0ZSAnICsgd3JpdGVTaXplICsgJyBieXRlcycpOworICAgICAgICBrZWVw
QWNjZXNzSGFuZGxlQWN0aXZlKCk7CisgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAgc2VsZi5w
b3N0TWVzc2FnZSgnZXJyb3I6ICcgKyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOwor
ICAgICAgICBjbG9zZSgpOworICAgIH0KK30KK2Z1bmN0aW9uIGtlZXBBY2Nlc3NIYW5kbGVBY3Rp
dmUoKQoreworICAgIHRyeSB7CisgICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIo
MSk7CisgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7
ICJhdCIgOiBwb3NpdGlvbiB9KTsKKyAgICAgICAgcG9zaXRpb24gKz0gd3JpdGVTaXplOworICAg
ICAgICBzZXRUaW1lb3V0KGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUsIDEwMCk7CiAgICAgfSBjYXRj
aCAoZXJyKSB7CiAgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUg
KyAnIC0gJyArIGVyci5tZXNzYWdlKTsKICAgICAgICAgY2xvc2UoKTsKQEAgLTc2LDcgKzkxLDcg
QEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB0ZXN0KCk7CiApVEVTVFJFU09VUkNFIjsKIAotVEVT
VChGaWxlU3lzdGVtQWNjZXNzLCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK1RFU1QoRmlsZVN5
c3RlbUFjY2VzcywgV2ViUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiB7CiAgICAgYXV0byBoYW5k
bGVyID0gYWRvcHROUyhbW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOwogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC0xMzAsNiArMTQ1LDUzIEBAIFRFU1QoRmlsZVN5c3Rl
bUFjY2VzcywgUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
c3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogfQog
CitURVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIE5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkK
K3sKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVy
LmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nl
c3NFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9zdG9yYWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRv
IHNjaGVtZUhhbmRsZXIgPSBhZG9wdE5TKFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGlu
aXRdKTsKKyAgICBbc2NoZW1lSGFuZGxlciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4o
V0tXZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5Q
dHI8TlNEYXRhPiBkYXRhOworICAgICAgICBOU1VSTCAqcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVz
dC5VUkw7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSgid2Via2l0Oi8vd2Via2l0Lm9yZy93b3Jr
ZXIuanMiLCByZXF1ZXN0VVJMLmFic29sdXRlU3RyaW5nKTsKKyAgICAgICAgYXV0byByZXNwb25z
ZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJM
IE1JTUVUeXBlOkAidGV4dC9qYXZhc2NyaXB0IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0
RW5jb2RpbmdOYW1lOm5pbF0pOworICAgICAgICBkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVz
OndvcmtlckJ5dGVzIGxlbmd0aDpzdHJsZW4od29ya2VyQnl0ZXMpXTsKKyAgICAgICAgW3Rhc2sg
ZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVj
ZWl2ZURhdGE6ZGF0YS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgfV07
CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdl
dCgpIGZvclVSTFNjaGVtZTpAIndlYmtpdCJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAIndlYmtpdDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRN
ZXNzYWdlIGJvZHldKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xh
c3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEtpbGwgbmV0d29yayBwcm9jZXNzLgor
ICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfdGVybWluYXRlTmV0d29ya1By
b2Nlc3NdOworCisgICAgLy8gT3BlbiBhY2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hl
biBuZXR3b3JrIHByb2Nlc3MgY3Jhc2hlcy4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFs
c2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiZXJyb3I6IEludmFsaWRTdGF0ZUVycm9yIC0gQWNj
ZXNzSGFuZGxlIGlzIGNsb3Npbmcgb3IgY2xvc2VkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
KTsKKworICAgIC8vIEFjY2VzcyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgbmV0d29yayBw
cm9jZXNzIGlzIHJlbGF1bmNoZWQuCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
c3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3Vj
Y2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCiBz
dGF0aWMgTlNTdHJpbmcgKmJhc2ljU3RyaW5nID0gQCI8c2NyaXB0PiBcCiAgICAgYXN5bmMgZnVu
Y3Rpb24gb3BlbigpIFwKICAgICB7IFwK
</data>
<flag name="commit-queue"
          id="470849"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445618</attachid>
            <date>2021-12-01 14:42:29 -0800</date>
            <delta_ts>2021-12-01 17:31:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211201144228.patch</filename>
            <type>text/plain</type>
            <size>37560</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMDMxODkwY2M2NzNjMDYzMmIzMGYwNmFkZWRhZTk0
NDBjYWQ1NmE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTAxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTWFrZSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24ga2VlcCB0cmFjayBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4gV2hlbiBjb25u
ZWN0aW9uIGlzIGNsb3NlZCwgb3IgYWNjZXNzIAorICAgICAgICBoYW5kbGUgaXMgZXhwbGljaXRs
eSBpbnZhbGlkYXRlZCAoZm9yIGV4YW1wbGUsIGR1ZSB0byBmaWxlIGRlbGV0aW9uIGluIHRoZSBi
YWNrZW5kKSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAgICAgIHdpbGwgaW52YWxp
ZGF0ZSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4KKworICAgICAgICBOb3JtYWxseSwgdG8g
Y2xvc2UgYSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSAod2hlbiBjbG9zZSgpIGlzIGNhbGxl
ZCBvciBjb250ZXh0IHN0b3BzKSwgd2UgbmVlZCB0bzogCisgICAgICAgIDEuIGNsb3NlIGZpbGUg
ZGVzY3JpcHRvciAoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSkKKyAgICAg
ICAgMi4gbm90aWZ5IGJhY2tlbmQgYWJvdXQgY2xvc2UgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpjbG9zZUJhY2tlbmQpCisgICAgICAgIDMuIGdldCBjbG9zZSByZXN1bHQgYW5kIGNvbXBs
ZXRlIGNhbGxiYWNrcyAoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCkKKyAgICAgICAgRm9yIGludmFsaWRhdGlvbiBjYXNlLCB3ZSBvbmx5IG5lZWQgdG8gcGVyZm9y
bSBzdGVwIDEgYW5kIDMgYmVjYXVzZSBjb25uZWN0aW9uIHRvIGJhY2tlbmQgaXMgbG9zdCBvciBi
YWNrZW5kCisgICAgICAgIGluaXRpYXRlcyB0aGUgY2xvc2UuCisKKyAgICAgICAgQVBJIHRlc3Q6
IEZpbGVTeXN0ZW1BY2Nlc3MuTmV0d29ya1Byb2Nlc3NDcmFzaER1cmluZ1dyaXRlCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmlzV29ya2VyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlkYXRlQWNjZXNzSGFuZGxlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHA6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRvIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2NDUyMjRl
NTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi4zMDI0NmI2MjU2NjFkYzVmZmVkY2FlNWYyZjM0
YTc0MjM5MWUyYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEyLTAxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNj
ZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjp1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaDoKKwogMjAyMS0xMS0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWlncmF0ZSBzb21lIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiBtZXNzYWdlcyB0
byBhc3luYyByZXBsaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiZjg5NTYxODJiZmMyMjEzZTU0
YmFjMzMwNDk0NWUzYjZiMjI0ZWM0Li5jNWU3OWFlNzM3M2M2MDEyYzYxZTlkYzVmMTAwNzBjYTVk
ZDgxYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE3NTUsNyArMTc1NSwxMCBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgd29ya2Vycy9Xb3JrZXJBbmltYXRp
b25Db250cm9sbGVyLmgKICAgICB3b3JrZXJzL1dvcmtlckRlYnVnZ2VyUHJveHkuaAogICAgIHdv
cmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKKyAgICB3b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKICAgICB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKKyAgICB3b3JrZXJzL1dvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmgKKyAgICB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaAogICAgIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmgKICAgICB3
b3JrZXJzL1dvcmtlclJ1bkxvb3AuaAogICAgIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCmluZGV4IDBlYWQ0MDM5Mjg5OGMxY2RlNjY4
MDE1YmMzODExYWYzMmQzNjdmZGEuLmExNzQ5NWQ3NjU5NjU2ZmUyZGQ5Y2NhM2QzNzExMjIxZmU0
OGQxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JX
b3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN1cHBs
ZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGFmMWQyZTljOWE4ZDg1YzkzZjYyNDI2
NTc2NDYyNjliMTUxYTVjYWEuLmI4NjgyZjc2OTE2MTZlMGRiMTRlNTQxMjJjYzEzNWI1MTQxNzdj
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlLmgiCiAj
aW5jbHVkZSAiSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgorI2luY2x1ZGUgIldvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk3LDUgKzk4LDIxIEBAIHZvaWQg
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kCiAgICAgY29ubmVjdGlvbigpLmNsb3NlKGlkZW50aWZpZXIoKSwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Cit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlJiBoYW5kbGUpCit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGRvd25jYXN0PFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4oY29ubmVjdGlvbigpKS5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgaGFu
ZGxlKTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dW5yZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rp
b24oKS51bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDhjZWUx
MmNiZGZiZjQwMDkyZjdhMDQyMGFkOTFjNzFhODJhYzI4YjEuLjZlNDY4OGZhOTJkNjU5MWJkYzdi
NzBlZWRiNWE2MjExMDRjYmUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00
Miw2ICs0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Pj4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAg
IHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmKTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CiAKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggYTdhM2NmYmM0ZmE1MzA5Mzg4YmQwMTk2MTUwNWJiNmE4YThlN2U3
Mi4uMzU5YzI0Njc4MGY5NjUyNDkyYzUwZTFlOGY1NGY5MDRjYTc4OTY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmg+CkBAIC0zNSw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwor
Y2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsK
QEAgLTUwLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4+JiYpPjsKICAgICB1c2luZyBTdHJpbmdDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8U3RyaW5nPiYmKT47CiAK
KyAgICB2aXJ0dWFsIGJvb2wgaXNXb3JrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBjbG9zZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNr
JiYpID0gMDsKQEAgLTYwLDYgKzYzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRG
aWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhh
bmRsZVdpdGhUeXBlQ2FsbGJhY2smJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IDNjODhlOTc5NTQ5M2Q0YTQ3MTkwZjg1MDgyYmRhZGIz
ZjVkMjdkY2MuLmI4NWFkYWZjMjliNDg3MDkxZGU2NWFiNTI0MzliNDUxZDAzNjc1YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NywxMSArNDgsMTYgQEAgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGMKIHsKICAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgbV9zb3VyY2UtPnJl
Z2lzdGVyU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsICp0aGlzKTsKIH0KIAogRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpCiB7CiAg
ICAgQVNTRVJUKGlzQ2xvc2luZ09yQ2xvc2VkKCkpOworCisgICAgbV9zb3VyY2UtPnVucmVnaXN0
ZXJTeW5jQWNjZXNzSGFuZGxlKG1faWRlbnRpZmllcik7CisKICAgICBpZiAobV9jbG9zZVJlc3Vs
dCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDIsMzUgKzE0OCw1MiBAQCB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFsKENsb3NlQ2FsbGJhY2smJiBjYWxsYmFj
aykKICAgICBpZiAoaXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQobV9m
aWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGNsb3Nl
RmlsZSgpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUo
KQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhh
bmRsZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogc2NvcGUgPSBkb3duY2FzdDxXb3Jr
ZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBBU1NFUlQoc2Nv
cGUpOwogCi0gICAgQVNTRVJUKG1fZmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlKTsKICAgICBXb3JrZXJHbG9iYWxTY29wZTo6cG9zdEZpbGVTeXN0ZW1TdG9yYWdl
VGFzayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgZmlsZSA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9maWxlLCBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgc2NvcGUtPnRocmVhZCgpIH1dKCkgbXV0YWJsZSB7CiAgICAgICAgIEZpbGVT
eXN0ZW06OmNsb3NlRmlsZShmaWxlKTsKICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCku
cG9zdFRhc2soW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldKGF1dG8mKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2xv
c2VCYWNrZW5kKENsb3NlTW9kZTo6QXN5bmMpOworICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5k
aWRDbG9zZUZpbGUoKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlRmlsZSgpCit7CisgICAgY2xvc2VCYWNrZW5kKENs
b3NlTW9kZTo6QXN5bmMpOworfQorCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpj
bG9zZUJhY2tlbmQoQ2xvc2VNb2RlIG1vZGUpCiB7CisgICAgaWYgKG1fY2xvc2VSZXN1bHQpCisg
ICAgICAgIHJldHVybjsKKwogICAgIGlmIChtb2RlID09IENsb3NlTW9kZTo6QXN5bmMpIHsKICAg
ICAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkaWRD
bG9zZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgZGlkQ2xvc2VCYWNrZW5kKFdURk1v
dmUocmVzdWx0KSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
bV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKLSAgICBkaWRDbG9z
ZSh7IH0pOworICAgIGRpZENsb3NlQmFja2VuZCh7IH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKK3Zv
aWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2VuZChFeGNlcHRpb25P
cjx2b2lkPiYmIHJlc3VsdCkKIHsKLSAgICBBU1NFUlQoIW1fY2xvc2VSZXN1bHQpOworICAgIGlm
IChtX2Nsb3NlUmVzdWx0KQorICAgICAgICByZXR1cm47CiAKICAgICBtX2Nsb3NlUmVzdWx0ID0g
V1RGTW92ZShyZXN1bHQpOwogICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2Ns
b3NlQ2FsbGJhY2tzLCB7IH0pOwpAQCAtMjQ3LDQgKzI3MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpzdG9wKCkKICAgICBjbG9zZUludGVybmFsKFtdKGF1dG8pIHsgfSk7
CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmludmFsaWRhdGUoKQorewor
ICAgIGNsb3NlRmlsZSgpOworCisgICAgLy8gSW52YWxpZGF0aW9uIGlzIGluaXRpYXRlZCBieSBi
YWNrZW5kLgorICAgIGRpZENsb3NlQmFja2VuZCh7IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCmluZGV4IDE4YjRh
ZWQ1ZDZlOTcxNGQwMGQ5NTY4MTNhYzdmMjk3MWY4YTgzZGYuLmIwN2I5NDAzMDAyZDdkMWRlOWFk
OGEwNDA1YmQ4YTliNjY0ZmMxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oCkBAIC01MiwxOSArNTIsMjIgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0U2l6ZShET01Q
cm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CiAgICAgdm9pZCBmbHVzaChE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBjbG9zZShET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7Ci0gICAgdm9pZCBkaWRDbG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmKTsK
ICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJlYWQoQnVmZmVyU291cmNlJiYs
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBs
b25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyk7CiAgICAgdXNpbmcgUmVzdWx0ID0gc3RkOjp2YXJpYW50PEV4Y2VwdGlvbk9yPHZvaWQ+LCBF
eGNlcHRpb25Pcjx1aW50NjRfdD4+OwogICAgIHZvaWQgY29tcGxldGVQcm9taXNlKFJlc3VsdCYm
KTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgYm9vbCBpc0Nsb3NpbmdPckNsb3NlZCgpIGNvbnN0Owog
ICAgIHVzaW5nIENsb3NlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPjsKICAgICB2b2lkIGNsb3NlSW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmKTsK
KyAgICB2b2lkIGNsb3NlRmlsZSgpOworICAgIHZvaWQgZGlkQ2xvc2VGaWxlKCk7CiAgICAgZW51
bSBjbGFzcyBDbG9zZU1vZGUgOiBib29sIHsgQXN5bmMsIFN5bmMgfTsKICAgICB2b2lkIGNsb3Nl
QmFja2VuZChDbG9zZU1vZGUpOworICAgIHZvaWQgZGlkQ2xvc2VCYWNrZW5kKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAxYTBhNDNiZTQ2YWM4NDVmMzRk
NjAyMWEwOTk1NmIwYzc2NmFjYWI0Li5mNDdjYTNkMzNkOTdhNjM3ZDZmN2JhMDZjYmVlNDUxN2Yx
MzIwZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcApAQCAtNTIsNiArNTIsOSBAQCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246On5Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKQogCiB2b2lkIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7CisgICAg
Zm9yIChhdXRvIGhhbmRsZSA6IG1fc3luY0FjY2Vzc0hhbmRsZXMudmFsdWVzKCkpCisgICAgICAg
IGhhbmRsZS0+aW52YWxpZGF0ZSgpOworCiAgICAgc2NvcGVDbG9zZWQoKTsKIH0KIApAQCAtMjg3
LDYgKzI5MCwzMSBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xv
c2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZgogICAgIH0pOwogfQogCit2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYgaGFuZGxlKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQoaWRlbnRpZmllciwg
V2Vha1B0ciB7IGhhbmRsZSB9KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBj
b250ZXh0SWRlbnRpZmllciA9IG1fc2NvcGUtPmlkZW50aWZpZXIoKSwgbWFpblRocmVhZENvbm5l
Y3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBtYWlu
VGhyZWFkQ29ubmVjdGlvbi0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGNv
bnRleHRJZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc3luY0FjY2Vzc0hh
bmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZp
ZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbl0oKSBtdXRh
YmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnVucmVnaXN0ZXJTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0
byBoYW5kbGUgPSBtX3N5bmNBY2Nlc3NIYW5kbGVzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAg
aGFuZGxlLT5pbnZhbGlkYXRlKCk7Cit9CisKIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRIYW5kbGVOYW1lcyhGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFt
X3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oCmluZGV4IDBiNzdkYzcwMDM0YjQ0ZjQ3NzM3ZGQ4MTU1MjE3NDUyZGYxNjlhNWMuLjU0YjRi
ODFmM2E3OTY4Njg5YjdiZGNhYTViZmRkZGQ0MjYyOTE3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVi
bGljOgogICAgIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiogbWFpblRocmVhZENvbm5lY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX21haW5UaHJlYWRDb25uZWN0aW9uLmdldCgpOyB9CiAgICAg
dm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CiAgICAgdm9pZCBzY29wZUNsb3NlZCgpOworICAgIHZv
aWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmKTsKICAgICB1c2luZyBDYWxsYmFj
a0lkZW50aWZpZXIgPSBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lk
ZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJc1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4
Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwpAQCAtNTcs
NiArNTgsNyBAQCBwcml2YXRlOgogICAgIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bihXb3JrZXJHbG9iYWxTY29wZSYsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogCiAgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAgYm9vbCBpc1dvcmtl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGNsb3NlSGFuZGxlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
QEAgLTY3LDkgKzY5LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
Z2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmlu
YWw7Ci0KICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbCB7IH07CisgICAgdm9pZCB1bnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
IGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxT
Y29wZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBt
X21haW5UaHJlYWRDb25uZWN0aW9uOwpAQCAtODEsNiArODUsMTIgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRIYW5kbGVOYW1lc0NhbGxiYWNrPiBtX2dldEhhbmRsZU5hbWVzQ2FsbGJhY2tzOwogICAgIEhh
c2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2s+IG1fZ2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFja3M7CiAg
ICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6U3RyaW5nQ2FsbGJhY2s+IG1fc3RyaW5nQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2FjY2Vz
c0hhbmRsZUludmFsaWRhdGlvbkhhbmRsZXJzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Pj4gbV9zeW5jQWNjZXNzSGFuZGxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24pCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikgeyByZXR1cm4gY29ubmVjdGlv
bi5pc1dvcmtlcigpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuY3BwCmluZGV4IDQ2NWU3MGM3YjMzZTZmN2NhMWM3ZWQ4NzUzMjEzOThjNzg5
NTQzNWEuLmJmMzI3NDEyMmY4MTkxY2ExYWU0NWZlYjg0ZmJiMDVlZGY1MzcwZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVhZGFi
bGVTdHJlYW0uaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2lu
Y2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5rLmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li42MTUxZTRk
ODhlMzhhYzllMjYxYzgyYmUyNGY1Y2UwOWJhZWE1YjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjU5LDcgKzI2NTksNyBA
QAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEY4NkQ3
MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oICovOyB9OwogCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUwQjYzODAwRTlEODZC
IC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZGQTAwRTlEODZCIC8q
IEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oICov
OyB9OwotCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCAqLzsgfTsKKwkJODM5QTA5NUQyNTI0RjM3RjAwRUVGMzI4IC8qIFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYy
QzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVG
OTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5o
ICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyogSUlSRmlsdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlCRTZEMjI0RjU4NzU1
MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNjg3LDcgKzI2ODcsNyBAQAogCQk4
M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRUExQzcx
ODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNE
MzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRjAxQzcx
OEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4
M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFGNTI1MEMxQ0E4MDAyRURDNTEg
LyogUHVzaFB1bGxGSUZPLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCAqLzsgfTsKKwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0RC
OUUwRjI0REExOTQ5MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjlFMEMyNERBMThCNTAwMzdCNDY4
IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAqLzsgfTsKIAkJODNEQjlFMTAyNERBMTk1NzAwMzdCNDY4
IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzREI5RTBFMjREQTE4QjYwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJP
cHRpb25zLmggKi87IH07CiAJCTgzRTM1OUEyMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1l
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNFMzU5QTAxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50LmggKi87IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKaW5kZXggNzRhY2UzZWE5Y2VlODM2
NjI3ZDM5M2QwY2NlOTM1OWExY2QzNGQyNi4uNjMyOWRlYTU3YTE4N2ZmMjU5Nzc3MGY4ZTRjYWE2
NWJlOTQ1ZDVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIK
KyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdh
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cAppbmRleCBkMWJlNjM2ZjEyYTlhMGI4NzBiMzNiY2ExNjQ2ZjRhZTAyNDE3YzExLi4xODc2ZDE1
NzcwOGU3MTE0YmU4YzdhYTRiMjEyMmEzYjQ4MzVmYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTAsMTYgKzUwLDIwIEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIldvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJGb250TG9hZFJlcXVlc3QuaCIKICNpbmNs
dWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckxvY2F0aW9uLmgiCisj
aW5jbHVkZSAiV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKICNpbmNsdWRlICJX
b3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlck5hdmlnYXRvci5oIgorI2lu
Y2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyUmVw
b3J0aW5nUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMzVkNzNhY2NlZTMyN2Vi
ODlkZjkzYTNmYjRjZjkwNTMxOThhNzc3OC4uZTdiZTRmZDBhYTdkYTkxZWY3NGQwMzA0MmI2NzEz
NTYwNmMwMjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aApAQCAtMjksMTUgKzI5LDEyIEBACiAjaW5jbHVkZSAiQmFzZTY0VXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNs
dWRlICJXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCi0jaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC01NCwxNCArNTEsMjAgQEAgY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzOwogY2xhc3MgQ3J5cHRvOwogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOwogY2xhc3MgRm9udEZhY2VTZXQ7CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjsKIGNsYXNzIFBlcmZvcm1hbmNlOwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOworY2xh
c3MgU2NyaXB0QnVmZmVyOworY2xhc3MgU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI7CitjbGFz
cyBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyTG9jYXRpb247CitjbGFzcyBXb3JrZXJNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjsKIGNsYXNzIFdvcmtlck5hdmlnYXRvcjsKIGNsYXNzIFdv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbjsKIGNsYXNzIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOwog
Y2xhc3MgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb247CitjbGFzcyBXb3JrZXJUaHJlYWQ7CiBzdHJ1
Y3QgV29ya2VyUGFyYW1ldGVyczsKIAogbmFtZXNwYWNlIElEQkNsaWVudCB7CkBAIC05MCw3ICs5
Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbiYgc3RvcmFnZUNvbm5l
Y3Rpb24oKTsKICAgICBzdGF0aWMgdm9pZCBwb3N0RmlsZVN5c3RlbVN0b3JhZ2VUYXNrKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAgICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBn
ZXRGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJik7Ci0gICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKiBmaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24qIGZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpOwogICAg
IFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsK
ICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIoKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRl
eCA2NTJhMGM0NzYwMDgwMjQ5YjhjOGI2ZmQ1ZTVkZGQ0OWVhYTlmM2UwLi5kY2ZiN2NiYTVjMzkz
NDJmZTU2OGNhZGZlYjRhOWIwZGEzZjViYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQz
LDYgKzQzLDggQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAi
V29ya2VyQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtl
clJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Rl
ZmVyVGVybWluYXRpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5jcHAKaW5kZXggMGVmNDE5ZjJkNzEyODNhYjY3YzM2NTE4MzM1NmRjZWZjNzk0NDg2
Mi4uNWQ1MmViNzU4NzRlOTlkNWZjYzAxNmYzZTkzZTBhYTk5YWZkZGMyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDkg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJHbG9iYWxTY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNDYsNiArNDksOSBAQCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mCiB2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7CiAgICAg
bV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKworICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogbV9z
eW5jQWNjZXNzSGFuZGxlcy5rZXlzKCkpCisgICAgICAgIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUo
aWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpj
bG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
KQpAQCAtMTkzLDQgKzE5OSwyNCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6bW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZAogICAgIH0pOwog
fQogCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNj
ZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWRlbnRpZmllcikKK3sKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLmFkZChpZGVudGlmaWVy
LCBjb250ZXh0SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjp1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3N5bmNBY2Nlc3NI
YW5kbGVzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gY29u
dGV4dElkZW50aWZpZXIgPSBtX3N5bmNBY2Nlc3NIYW5kbGVzLmdldChpZGVudGlmaWVyKSkgewor
ICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGNvbnRleHRJZGVudGlm
aWVyLCBbaWRlbnRpZmllcl0oYXV0byYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBp
ZiAoRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8V2Vi
Q29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbigpKQorICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmludmFsaWRhdGVBY2Nlc3NIYW5k
bGUoaWRlbnRpZmllcik7CisgICAgICAgIH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggZWU1YzZmZTE5Yzc4MDJkYTJhN2VhMTU0MzYxNjA1MTdkNmNkNWMyYi4uM2E1MWMzZDE3ODdi
YTk0M2M1NjE3MDA5MDA2OTM4NTc4ZGFiYWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjcsNiArNjcsNyBAQCBjbGFzcyBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDbwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJik7CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xv
c2VkKCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CkBAIC04NSw3ICs4NiwxMSBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpW
b2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCB1bnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogCisgICAgSGFz
aE1hcDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3N5bmNBY2Nlc3NIYW5kbGVz
OwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNzJhZDZiNjhj
MjdlNTk2YjkxOGY5M2NlMzUwNGY5YTc4NzdmNzk3Li5iMTk4ZTcxYWI0YWVmOGI3MjExYjdkNGI0
ZDJiOGY1OTJkMzEyYThiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTItMDEgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgc2hv
dWxkIGJlIGludmFsaWRhdGVkIHdoZW4gbmV0d29yayBwcm9jZXNzIGNyYXNoZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwNQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODUxODc3MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZh
YmxldC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5
c3RlbUFjY2Vzcy5tbToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoa2VlcEFjY2Vzc0hhbmRs
ZUFjdGl2ZSk6CisKIDIwMjEtMTEtMzAgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNv
bT4KIAogICAgICAgICBBWDogUmVkdWNlIHJlcGV0aXRpb24gaW4gcmV0cmlldmluZyB0eXBlZCBh
dHRyaWJ1dGUgdmFsdWVzIGluIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vz
cy5tbQppbmRleCA1MmFiOWNlMjhiNzU2MGRhOTBlYTEzZTg5Mjg4ZDE3MjlhNDEwZWJlLi43YmJl
M2M5ZjYyYzFkOTdjMzE5NTUyYTE5MDNkOTE1YWQ1ZjdhMjFhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1t
CkBAIC01OSwxNSArNTksMzAgQEAgc3RhdGljIE5TU3RyaW5nICptYWluRnJhbWVTdHJpbmcgPSBA
IjxzY3JpcHQ+IFwKICAgICA8L3NjcmlwdD4iOwogCiBzdGF0aWMgY29uc3QgY2hhciogd29ya2Vy
Qnl0ZXMgPSBSIlRFU1RSRVNPVVJDRSgKK3ZhciBwb3NpdGlvbiA9IDA7Cit2YXIgYWNjZXNzSGFu
ZGxlOwogYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgdHJ5IHsKICAgICAgICAgdmFyIHJv
b3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsKICAgICAg
ICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoJ2ZpbGUt
c3lzdGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsKLSAgICAgICAgdmFyIGFj
Y2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwor
ICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoKTsKICAgICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxMCk7CiAgICAg
ICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiAw
IH0pOwogICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdzdWNjZXNzOiB3cml0ZSAnICsgd3JpdGVT
aXplICsgJyBieXRlcycpOworICAgICAgICBrZWVwQWNjZXNzSGFuZGxlQWN0aXZlKCk7CisgICAg
fSBjYXRjaChlcnIpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnZXJyb3I6ICcgKyBlcnIu
bmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOworICAgICAgICBjbG9zZSgpOworICAgIH0KK30K
K2Z1bmN0aW9uIGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUoKQoreworICAgIHRyeSB7CisgICAgICAg
IHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMSk7CisgICAgICAgIHZhciB3cml0ZVNpemUg
PSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiBwb3NpdGlvbiB9KTsKKyAgICAg
ICAgcG9zaXRpb24gKz0gd3JpdGVTaXplOworICAgICAgICBzZXRUaW1lb3V0KGtlZXBBY2Nlc3NI
YW5kbGVBY3RpdmUsIDEwMCk7CiAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgIHNlbGYucG9z
dE1lc3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlKTsKICAg
ICAgICAgY2xvc2UoKTsKQEAgLTc2LDcgKzkxLDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB0
ZXN0KCk7CiApVEVTVFJFU09VUkNFIjsKIAotVEVTVChGaWxlU3lzdGVtQWNjZXNzLCBQcm9jZXNz
Q3Jhc2hEdXJpbmdXcml0ZSkKK1RFU1QoRmlsZVN5c3RlbUFjY2VzcywgV2ViUHJvY2Vzc0NyYXNo
RHVyaW5nV3JpdGUpCiB7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW0ZpbGVTeXN0ZW1B
Y2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC0x
MzAsNiArMTQ1LDUzIEBAIFRFU1QoRmlsZVN5c3RlbUFjY2VzcywgUHJvY2Vzc0NyYXNoRHVyaW5n
V3JpdGUpCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBb
bGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogfQogCitURVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIE5l
dHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBh
ZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJd
OworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Cisg
ICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0gWUVTOworICAgIHByZWZl
cmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9zdG9y
YWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNjaGVtZUhhbmRsZXIgPSBhZG9wdE5TKFtb
VGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2NoZW1lSGFuZGxlciBz
ZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1l
VGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhOworICAgICAgICBO
U1VSTCAqcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgICAgIEVYUEVDVF9XS19T
VFJFUSgid2Via2l0Oi8vd2Via2l0Lm9yZy93b3JrZXIuanMiLCByZXF1ZXN0VVJMLmFic29sdXRl
U3RyaW5nKTsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNl
IGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJMIE1JTUVUeXBlOkAidGV4dC9qYXZhc2NyaXB0
IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgICAg
ICBkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndvcmtlckJ5dGVzIGxlbmd0aDpzdHJsZW4o
d29ya2VyQnl0ZXMpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNl
LmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0YS5nZXQoKV07CisgICAg
ICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgfV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJM
U2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIndlYmtpdCJd
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJp
bmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAIndlYmtpdDovL3dlYmtpdC5vcmciXV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwor
ICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9XS19TVFJFUShA
InBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwor
ICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9XS19TVFJFUShA
InN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKwor
ICAgIC8vIEtpbGwgbmV0d29yayBwcm9jZXNzLgorICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRl
RGF0YVN0b3JlXSBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOworCisgICAgLy8gT3BlbiBhY2Nl
c3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiBuZXR3b3JrIHByb2Nlc3MgY3Jhc2hlcy4K
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cisg
ICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAi
ZXJyb3I6IEludmFsaWRTdGF0ZUVycm9yIC0gQWNjZXNzSGFuZGxlIGlzIGNsb3Npbmcgb3IgY2xv
c2VkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEFjY2VzcyBoYW5kbGUg
Y2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgbmV0d29yayBwcm9jZXNzIGlzIHJlbGF1bmNoZWQuCisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6
bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFz
dFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCiBzdGF0aWMgTlNTdHJpbmcgKmJhc2ljU3RyaW5n
ID0gQCI8c2NyaXB0PiBcCiAgICAgYXN5bmMgZnVuY3Rpb24gb3BlbigpIFwKICAgICB7IFwK
</data>
<flag name="commit-queue"
          id="470873"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445640</attachid>
            <date>2021-12-01 17:15:32 -0800</date>
            <delta_ts>2021-12-01 22:27:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232605-20211201171531.patch</filename>
            <type>text/plain</type>
            <size>37569</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMDMxODkwY2M2NzNjMDYzMmIzMGYwNmFkZWRhZTk0
NDBjYWQ1NmE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTAxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTWFrZSBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24ga2VlcCB0cmFjayBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4gV2hlbiBjb25u
ZWN0aW9uIGlzIGNsb3NlZCwgb3IgYWNjZXNzIAorICAgICAgICBoYW5kbGUgaXMgZXhwbGljaXRs
eSBpbnZhbGlkYXRlZCAoZm9yIGV4YW1wbGUsIGR1ZSB0byBmaWxlIGRlbGV0aW9uIGluIHRoZSBi
YWNrZW5kKSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAgICAgIHdpbGwgaW52YWxp
ZGF0ZSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4KKworICAgICAgICBOb3JtYWxseSwgdG8g
Y2xvc2UgYSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSAod2hlbiBjbG9zZSgpIGlzIGNhbGxl
ZCBvciBjb250ZXh0IHN0b3BzKSwgd2UgbmVlZCB0bzogCisgICAgICAgIDEuIGNsb3NlIGZpbGUg
ZGVzY3JpcHRvciAoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlRmlsZSkKKyAgICAg
ICAgMi4gbm90aWZ5IGJhY2tlbmQgYWJvdXQgY2xvc2UgKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpjbG9zZUJhY2tlbmQpCisgICAgICAgIDMuIGdldCBjbG9zZSByZXN1bHQgYW5kIGNvbXBs
ZXRlIGNhbGxiYWNrcyAoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2Vu
ZCkKKyAgICAgICAgRm9yIGludmFsaWRhdGlvbiBjYXNlLCB3ZSBvbmx5IG5lZWQgdG8gcGVyZm9y
bSBzdGVwIDEgYW5kIDMgYmVjYXVzZSBjb25uZWN0aW9uIHRvIGJhY2tlbmQgaXMgbG9zdCBvciBi
YWNrZW5kCisgICAgICAgIGluaXRpYXRlcyB0aGUgY2xvc2UuCisKKyAgICAgICAgQVBJIHRlc3Q6
IEZpbGVTeXN0ZW1BY2Nlc3MuTmV0d29ya1Byb2Nlc3NDcmFzaER1cmluZ1dyaXRlCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmlzV29ya2VyIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6ZGlkQ2xvc2VGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5o
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjppbnZhbGlkYXRlQWNjZXNzSGFuZGxlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmg6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHA6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisKIDIwMjEtMTEtMzAgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBydmZjIHRvIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3YTY5OTM2NDUyMjRl
NTE5MjJlMjZiODkyZTUyM2U0NjNmYjkxYjVkLi4zMDI0NmI2MjU2NjFkYzVmZmVkY2FlNWYyZjM0
YTc0MjM5MWUyYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEyLTAxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCB3aGVuIG5ldHdvcmsgcHJvY2VzcyBjcmFz
aGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1MTg3NzA2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNj
ZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjp1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaDoKKwogMjAyMS0xMS0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWlncmF0ZSBzb21lIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiBtZXNzYWdlcyB0
byBhc3luYyByZXBsaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiZjg5NTYxODJiZmMyMjEzZTU0
YmFjMzMwNDk0NWUzYjZiMjI0ZWM0Li5jNWU3OWFlNzM3M2M2MDEyYzYxZTlkYzVmMTAwNzBjYTVk
ZDgxYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE3NTUsNyArMTc1NSwxMCBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgd29ya2Vycy9Xb3JrZXJBbmltYXRp
b25Db250cm9sbGVyLmgKICAgICB3b3JrZXJzL1dvcmtlckRlYnVnZ2VyUHJveHkuaAogICAgIHdv
cmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKKyAgICB3b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKICAgICB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKKyAgICB3b3JrZXJzL1dvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmgKKyAgICB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaAogICAgIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0VGhyZWFkLmgKICAgICB3
b3JrZXJzL1dvcmtlclJ1bkxvb3AuaAogICAgIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCmluZGV4IDBlYWQ0MDM5Mjg5OGMxY2RlNjY4
MDE1YmMzODExYWYzMmQzNjdmZGEuLmExNzQ5NWQ3NjU5NjU2ZmUyZGQ5Y2NhM2QzNzExMjIxZmU0
OGQxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JX
b3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN1cHBs
ZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGFmMWQyZTljOWE4ZDg1YzkzZjYyNDI2
NTc2NDYyNjliMTUxYTVjYWEuLmI4NjgyZjc2OTE2MTZlMGRiMTRlNTQxMjJjYzEzNWI1MTQxNzdj
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlLmgiCiAj
aW5jbHVkZSAiSlNGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgorI2luY2x1ZGUgIldvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk3LDUgKzk4LDIxIEBAIHZvaWQg
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kCiAgICAgY29ubmVjdGlvbigpLmNsb3NlKGlkZW50aWZpZXIoKSwg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Cit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlJiBoYW5kbGUpCit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGRvd25jYXN0PFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4oY29ubmVjdGlvbigpKS5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgaGFu
ZGxlKTsKK30KKwordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dW5yZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rp
b24oKS51bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDhjZWUx
MmNiZGZiZjQwMDkyZjdhMDQyMGFkOTFjNzFhODJhYzI4YjEuLjZlNDY4OGZhOTJkNjU5MWJkYzdi
NzBlZWRiNWE2MjExMDRjYmUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00
Miw2ICs0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Pj4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAg
IHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmKTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CiAKIHByaXZhdGU6CiAgICAgRmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggYTdhM2NmYmM0ZmE1MzA5Mzg4YmQwMTk2MTUwNWJiNmE4YThlN2U3
Mi4uMzU5YzI0Njc4MGY5NjUyNDkyYzUwZTFlOGY1NGY5MDRjYTc4OTY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmg+CkBAIC0zNSw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwor
Y2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IHsK
QEAgLTUwLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4+JiYpPjsKICAgICB1c2luZyBTdHJpbmdDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8U3RyaW5nPiYmKT47CiAK
KyAgICB2aXJ0dWFsIGJvb2wgaXNXb3JrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBjbG9zZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNr
JiYpID0gMDsKQEAgLTYwLDYgKzYzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRG
aWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhh
bmRsZVdpdGhUeXBlQ2FsbGJhY2smJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IDNjODhlOTc5NTQ5M2Q0YTQ3MTkwZjg1MDgyYmRhZGIz
ZjVkMjdkY2MuLmI4NWFkYWZjMjliNDg3MDkxZGU2NWFiNTI0MzliNDUxZDAzNjc1YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NywxMSArNDgsMTYgQEAgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGMKIHsKICAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpOwogICAgIHN1c3BlbmRJZk5lZWRlZCgpOworCisgICAgbV9zb3VyY2UtPnJl
Z2lzdGVyU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsICp0aGlzKTsKIH0KIAogRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpCiB7CiAg
ICAgQVNTRVJUKGlzQ2xvc2luZ09yQ2xvc2VkKCkpOworCisgICAgbV9zb3VyY2UtPnVucmVnaXN0
ZXJTeW5jQWNjZXNzSGFuZGxlKG1faWRlbnRpZmllcik7CisKICAgICBpZiAobV9jbG9zZVJlc3Vs
dCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDIsMzUgKzE0OCw1MiBAQCB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFsKENsb3NlQ2FsbGJhY2smJiBjYWxsYmFj
aykKICAgICBpZiAoaXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQobV9m
aWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGNsb3Nl
RmlsZSgpOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUZpbGUo
KQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhh
bmRsZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byogc2NvcGUgPSBkb3duY2FzdDxXb3Jr
ZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBBU1NFUlQoc2Nv
cGUpOwogCi0gICAgQVNTRVJUKG1fZmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlKTsKICAgICBXb3JrZXJHbG9iYWxTY29wZTo6cG9zdEZpbGVTeXN0ZW1TdG9yYWdl
VGFzayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgZmlsZSA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9maWxlLCBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgc2NvcGUtPnRocmVhZCgpIH1dKCkgbXV0YWJsZSB7CiAgICAgICAgIEZpbGVT
eXN0ZW06OmNsb3NlRmlsZShmaWxlKTsKICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCku
cG9zdFRhc2soW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldKGF1dG8mKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2xv
c2VCYWNrZW5kKENsb3NlTW9kZTo6QXN5bmMpOworICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5k
aWRDbG9zZUZpbGUoKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlRmlsZSgpCit7CisgICAgY2xvc2VCYWNrZW5kKENs
b3NlTW9kZTo6QXN5bmMpOworfQorCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpj
bG9zZUJhY2tlbmQoQ2xvc2VNb2RlIG1vZGUpCiB7CisgICAgaWYgKG1fY2xvc2VSZXN1bHQpCisg
ICAgICAgIHJldHVybjsKKwogICAgIGlmIChtb2RlID09IENsb3NlTW9kZTo6QXN5bmMpIHsKICAg
ICAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkaWRD
bG9zZShXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgZGlkQ2xvc2VCYWNrZW5kKFdURk1v
dmUocmVzdWx0KSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
bV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKLSAgICBkaWRDbG9z
ZSh7IH0pOworICAgIGRpZENsb3NlQmFja2VuZCh7IH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKK3Zv
aWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlQmFja2VuZChFeGNlcHRpb25P
cjx2b2lkPiYmIHJlc3VsdCkKIHsKLSAgICBBU1NFUlQoIW1fY2xvc2VSZXN1bHQpOworICAgIGlm
IChtX2Nsb3NlUmVzdWx0KQorICAgICAgICByZXR1cm47CiAKICAgICBtX2Nsb3NlUmVzdWx0ID0g
V1RGTW92ZShyZXN1bHQpOwogICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2Ns
b3NlQ2FsbGJhY2tzLCB7IH0pOwpAQCAtMjQ3LDQgKzI3MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpzdG9wKCkKICAgICBjbG9zZUludGVybmFsKFtdKGF1dG8pIHsgfSk7
CiB9CiAKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmludmFsaWRhdGUoKQorewor
ICAgIGNsb3NlRmlsZSgpOworCisgICAgLy8gSW52YWxpZGF0aW9uIGlzIGluaXRpYXRlZCBieSBi
YWNrZW5kLgorICAgIGRpZENsb3NlQmFja2VuZCh7IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCmluZGV4IDE4YjRh
ZWQ1ZDZlOTcxNGQwMGQ5NTY4MTNhYzdmMjk3MWY4YTgzZGYuLmIwN2I5NDAzMDAyZDdkMWRlOWFk
OGEwNDA1YmQ4YTliNjY0ZmMxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oCkBAIC01MiwxOSArNTIsMjIgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0U2l6ZShET01Q
cm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJik7CiAgICAgdm9pZCBmbHVzaChE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBjbG9zZShET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7Ci0gICAgdm9pZCBkaWRDbG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmKTsK
ICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJlYWQoQnVmZmVyU291cmNlJiYs
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKICAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBs
b25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyk7CiAgICAgdXNpbmcgUmVzdWx0ID0gc3RkOjp2YXJpYW50PEV4Y2VwdGlvbk9yPHZvaWQ+LCBF
eGNlcHRpb25Pcjx1aW50NjRfdD4+OwogICAgIHZvaWQgY29tcGxldGVQcm9taXNlKFJlc3VsdCYm
KTsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgYm9vbCBpc0Nsb3NpbmdPckNsb3NlZCgpIGNvbnN0Owog
ICAgIHVzaW5nIENsb3NlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPjsKICAgICB2b2lkIGNsb3NlSW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmKTsK
KyAgICB2b2lkIGNsb3NlRmlsZSgpOworICAgIHZvaWQgZGlkQ2xvc2VGaWxlKCk7CiAgICAgZW51
bSBjbGFzcyBDbG9zZU1vZGUgOiBib29sIHsgQXN5bmMsIFN5bmMgfTsKICAgICB2b2lkIGNsb3Nl
QmFja2VuZChDbG9zZU1vZGUpOworICAgIHZvaWQgZGlkQ2xvc2VCYWNrZW5kKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAxYTBhNDNiZTQ2YWM4NDVmMzRk
NjAyMWEwOTk1NmIwYzc2NmFjYWI0Li5mNDdjYTNkMzNkOTdhNjM3ZDZmN2JhMDZjYmVlNDUxN2Yx
MzIwZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcApAQCAtNTIsNiArNTIsOSBAQCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246On5Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKQogCiB2b2lkIFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7CisgICAg
Zm9yIChhdXRvIGhhbmRsZSA6IG1fc3luY0FjY2Vzc0hhbmRsZXMudmFsdWVzKCkpCisgICAgICAg
IGhhbmRsZS0+aW52YWxpZGF0ZSgpOworCiAgICAgc2NvcGVDbG9zZWQoKTsKIH0KIApAQCAtMjg3
LDYgKzI5MCwzMSBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xv
c2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZgogICAgIH0pOwogfQogCit2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYgaGFuZGxlKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9zeW5jQWNjZXNzSGFuZGxlcy5hZGQoaWRlbnRpZmllciwg
V2Vha1B0ciB7IGhhbmRsZSB9KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBj
b250ZXh0SWRlbnRpZmllciA9IG1fc2NvcGUtPmlkZW50aWZpZXIoKSwgbWFpblRocmVhZENvbm5l
Y3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uXSgpIG11dGFibGUgeworICAgICAgICBtYWlu
VGhyZWFkQ29ubmVjdGlvbi0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGNv
bnRleHRJZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OnVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIG1fc3luY0FjY2Vzc0hh
bmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZp
ZXIsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbl0oKSBtdXRh
YmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnVucmVnaXN0ZXJTeW5jQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIpOworICAgIH0pOworfQorCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6aW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0
byBoYW5kbGUgPSBtX3N5bmNBY2Nlc3NIYW5kbGVzLmdldChpZGVudGlmaWVyKSkKKyAgICAgICAg
aGFuZGxlLT5pbnZhbGlkYXRlKCk7Cit9CisKIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpnZXRIYW5kbGVOYW1lcyhGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFt
X3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oCmluZGV4IDBiNzdkYzcwMDM0YjQ0ZjQ3NzM3ZGQ4MTU1MjE3NDUyZGYxNjlhNWMuLjU0YjRi
ODFmM2E3OTY4Njg5YjdiZGNhYTViZmRkZGQ0MjYyOTE3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVi
bGljOgogICAgIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiogbWFpblRocmVhZENvbm5lY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX21haW5UaHJlYWRDb25uZWN0aW9uLmdldCgpOyB9CiAgICAg
dm9pZCBjb25uZWN0aW9uQ2xvc2VkKCk7CiAgICAgdm9pZCBzY29wZUNsb3NlZCgpOworICAgIHZv
aWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmKTsKICAgICB1c2luZyBDYWxsYmFj
a0lkZW50aWZpZXIgPSBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25DYWxsYmFja0lk
ZW50aWZpZXI7CiAgICAgdm9pZCBkaWRJc1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4
Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwpAQCAtNTcs
NiArNTgsNyBAQCBwcml2YXRlOgogICAgIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bihXb3JrZXJHbG9iYWxTY29wZSYsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYp
OwogCiAgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCisgICAgYm9vbCBpc1dvcmtl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGNsb3NlSGFuZGxlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
QEAgLTY3LDkgKzY5LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
Z2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmlu
YWw7Ci0KICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbCB7IH07CisgICAgdm9pZCB1bnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
IGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxT
Y29wZT4gbV9zY29wZTsKICAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBt
X21haW5UaHJlYWRDb25uZWN0aW9uOwpAQCAtODEsNiArODUsMTIgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPENhbGxiYWNrSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRIYW5kbGVOYW1lc0NhbGxiYWNrPiBtX2dldEhhbmRsZU5hbWVzQ2FsbGJhY2tzOwogICAgIEhh
c2hNYXA8Q2FsbGJhY2tJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2s+IG1fZ2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFja3M7CiAg
ICAgSGFzaE1hcDxDYWxsYmFja0lkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6U3RyaW5nQ2FsbGJhY2s+IG1fc3RyaW5nQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2FjY2Vz
c0hhbmRsZUludmFsaWRhdGlvbkhhbmRsZXJzOworICAgIEhhc2hNYXA8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Pj4gbV9zeW5jQWNjZXNzSGFuZGxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24pCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikgeyByZXR1cm4gY29ubmVjdGlv
bi5pc1dvcmtlcigpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuY3BwCmluZGV4IDQ2NWU3MGM3YjMzZTZmN2NhMWM3ZWQ4NzUzMjEzOThjNzg5
NTQzNWEuLmJmMzI3NDEyMmY4MTkxY2ExYWU0NWZlYjg0ZmJiMDVlZGY1MzcwZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVhZGFi
bGVTdHJlYW0uaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgogI2luY2x1ZGUg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2lu
Y2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCiAjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5rLmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li42MTUxZTRk
ODhlMzhhYzllMjYxYzgyYmUyNGY1Y2UwOWJhZWE1YjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjU5LDcgKzI2NTksNyBA
QAogCQk4MzhGODZEQjFGNTA5RTdCMDBFOENGQzUgLyogRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEY4NkQ3
MUY1MDlFNkMwMEU4Q0ZDNSAvKiBGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oICovOyB9OwogCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTQ3MDcxRjUwQjYzODAwRTlEODZC
IC8qIERPTUZpbGVTeXN0ZW0uaCAqLzsgfTsKIAkJODM5OTQ3MTAxRjUwQjZGQTAwRTlEODZCIC8q
IEpTRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM5OTQ3MEUxRjUwQjZGMzAwRTlEODZCIC8qIEpTRE9NRmlsZVN5c3RlbS5oICov
OyB9OwotCQk4MzlBMDk1RDI1MjRGMzdGMDBFRUYzMjggLyogV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTA5NUIyNTI0RjM3NjAwRUVGMzI4IC8qIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCAqLzsgfTsKKwkJODM5QTA5NUQyNTI0RjM3RjAwRUVGMzI4IC8qIFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUEwOTVCMjUyNEYzNzYwMEVFRjMyOCAvKiBXb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYy
QzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVG
OTkgLyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5o
ICovOyB9OwogCQk4MzlCRTZENTI0RjU4NzYyMDA0REY1MEYgLyogSUlSRmlsdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlCRTZEMjI0RjU4NzU1
MDA0REY1MEYgLyogSUlSRmlsdGVyLmggKi87IH07CkBAIC0yNjg3LDcgKzI2ODcsNyBAQAogCQk4
M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRUExQzcx
ODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNE
MzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRjAxQzcx
OEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4
M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFGNTI1MEMxQ0E4MDAyRURDNTEg
LyogUHVzaFB1bGxGSUZPLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCAqLzsgfTsKKwkJODNENkFBRTYyNTI0RUUxQzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0Q2QUFFNDI1MjRFRTEzMDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0RC
OUUwRjI0REExOTQ5MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjlFMEMyNERBMThCNTAwMzdCNDY4
IC8qIEJpcXVhZEZpbHRlclR5cGUuaCAqLzsgfTsKIAkJODNEQjlFMTAyNERBMTk1NzAwMzdCNDY4
IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzREI5RTBFMjREQTE4QjYwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJP
cHRpb25zLmggKi87IH07CiAJCTgzRTM1OUEyMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1l
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNFMzU5QTAxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVtZW50LmggKi87IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAKaW5kZXggNzRhY2UzZWE5Y2VlODM2
NjI3ZDM5M2QwY2NlOTM1OWExY2QzNGQyNi4uNjMyOWRlYTU3YTE4N2ZmMjU5Nzc3MGY4ZTRjYWE2
NWJlOTQ1ZDVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIK
KyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdh
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNw
cAppbmRleCBkMWJlNjM2ZjEyYTlhMGI4NzBiMzNiY2ExNjQ2ZjRhZTAyNDE3YzExLi4xODc2ZDE1
NzcwOGU3MTE0YmU4YzdhYTRiMjEyMmEzYjQ4MzVmYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTAsMTYgKzUwLDIwIEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorI2luY2x1ZGUgIldvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJGb250TG9hZFJlcXVlc3QuaCIKICNpbmNs
dWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckxvY2F0aW9uLmgiCisj
aW5jbHVkZSAiV29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCIKICNpbmNsdWRlICJX
b3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlck5hdmlnYXRvci5oIgorI2lu
Y2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyUmVw
b3J0aW5nUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMzVkNzNhY2NlZTMyN2Vi
ODlkZjkzYTNmYjRjZjkwNTMxOThhNzc3OC4uZTdiZTRmZDBhYTdkYTkxZWY3NGQwMzA0MmI2NzEz
NTYwNmMwMjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aApAQCAtMjksMTUgKzI5LDEyIEBACiAjaW5jbHVkZSAiQmFzZTY0VXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkltYWdlQml0bWFwLmgi
Ci0jaW5jbHVkZSAiU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNs
dWRlICJXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIldvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmgiCi0jaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC01NCwxNCArNTEsMjAgQEAgY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzOwogY2xhc3MgQ3J5cHRvOwogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOwogY2xhc3MgRm9udEZhY2VTZXQ7CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjsKIGNsYXNzIFBlcmZvcm1hbmNlOwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOworY2xh
c3MgU2NyaXB0QnVmZmVyOworY2xhc3MgU2NyaXB0QnVmZmVyU291cmNlUHJvdmlkZXI7CitjbGFz
cyBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOwogY2xhc3MgV29ya2VyTG9jYXRpb247CitjbGFzcyBXb3JrZXJNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlcjsKIGNsYXNzIFdvcmtlck5hdmlnYXRvcjsKIGNsYXNzIFdv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbjsKIGNsYXNzIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOwog
Y2xhc3MgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb247CitjbGFzcyBXb3JrZXJUaHJlYWQ7CiBzdHJ1
Y3QgV29ya2VyUGFyYW1ldGVyczsKIAogbmFtZXNwYWNlIElEQkNsaWVudCB7CkBAIC05MCw3ICs5
Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbiYgc3RvcmFnZUNvbm5l
Y3Rpb24oKTsKICAgICBzdGF0aWMgdm9pZCBwb3N0RmlsZVN5c3RlbVN0b3JhZ2VUYXNrKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAgICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBn
ZXRGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJik7Ci0gICAgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKiBmaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24qIGZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpOwogICAg
IFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsK
ICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlk
ZXIoKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRl
eCA2NTJhMGM0NzYwMDgwMjQ5YjhjOGI2ZmQ1ZTVkZGQ0OWVhYTlmM2UwLi5kY2ZiN2NiYTVjMzkz
NDJmZTU2OGNhZGZlYjRhOWIwZGEzZjViYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQz
LDYgKzQzLDggQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAi
V29ya2VyQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtl
clJ1bkxvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Rl
ZmVyVGVybWluYXRpb24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5jcHAKaW5kZXggMGVmNDE5ZjJkNzEyODNhYjY3YzM2NTE4MzM1NmRjZWZjNzk0NDg2
Mi4uYjdhYmRjZmRlNWNmOGFiY2M2Mzg1ZTRhMWEwNzlhODU1ZWJjMmQ2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDkg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJHbG9iYWxTY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNDYsNiArNDksOSBAQCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mCiB2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7CiAgICAg
bV9jb25uZWN0aW9uID0gbnVsbHB0cjsKKworICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDogbV9z
eW5jQWNjZXNzSGFuZGxlcy5rZXlzKCkpCisgICAgICAgIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUo
aWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpj
bG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
KQpAQCAtMTkzLDQgKzE5OSwyNCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6bW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZAogICAgIH0pOwog
fQogCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6cmVnaXN0ZXJTeW5jQWNj
ZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250
ZXh0SWRlbnRpZmllcikKK3sKKyAgICBtX3N5bmNBY2Nlc3NIYW5kbGVzLmFkZChpZGVudGlmaWVy
LCBjb250ZXh0SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjp1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3N5bmNBY2Nlc3NI
YW5kbGVzLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gY29u
dGV4dElkZW50aWZpZXIgPSBtX3N5bmNBY2Nlc3NIYW5kbGVzLmdldChpZGVudGlmaWVyKSkgewor
ICAgICAgICBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGNvbnRl
eHRJZGVudGlmaWVyLCBbaWRlbnRpZmllcl0oYXV0byYgY29udGV4dCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAoRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gZG93
bmNhc3Q8V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLmZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmludmFsaWRhdGVB
Y2Nlc3NIYW5kbGUoaWRlbnRpZmllcik7CisgICAgICAgIH0pOworICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmgKaW5kZXggZWU1YzZmZTE5Yzc4MDJkYTJhN2VhMTU0MzYxNjA1MTdkNmNkNWMyYi4uM2E1
MWMzZDE3ODdiYTk0M2M1NjE3MDA5MDA2OTM4NTc4ZGFiYWUyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjcsNiArNjcsNyBAQCBjbGFzcyBX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDbwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJik7CiAgICAgdm9pZCBjb25u
ZWN0aW9uQ2xvc2VkKCk7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CkBAIC04NSw3ICs4NiwxMSBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgY2xvc2Uo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9p
ZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwog
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3N5bmNBY2Nl
c3NIYW5kbGVzOwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
NzJhZDZiNjhjMjdlNTk2YjkxOGY5M2NlMzUwNGY5YTc4NzdmNzk3Li5iMTk4ZTcxYWI0YWVmOGI3
MjExYjdkNGI0ZDJiOGY1OTJkMzEyYThiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTItMDEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUgc2hvdWxkIGJlIGludmFsaWRhdGVkIHdoZW4gbmV0d29yayBwcm9jZXNzIGNyYXNoZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODUxODc3MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRmlsZVN5c3RlbUFjY2Vzcy5tbToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoa2VlcEFj
Y2Vzc0hhbmRsZUFjdGl2ZSk6CisKIDIwMjEtMTEtMzAgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93
QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogUmVkdWNlIHJlcGV0aXRpb24gaW4gcmV0cmlldmlu
ZyB0eXBlZCBhdHRyaWJ1dGUgdmFsdWVzIGluIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3Rl
bUFjY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5
c3RlbUFjY2Vzcy5tbQppbmRleCA1MmFiOWNlMjhiNzU2MGRhOTBlYTEzZTg5Mjg4ZDE3MjlhNDEw
ZWJlLi43YmJlM2M5ZjYyYzFkOTdjMzE5NTUyYTE5MDNkOTE1YWQ1ZjdhMjFhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3Mu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVt
QWNjZXNzLm1tCkBAIC01OSwxNSArNTksMzAgQEAgc3RhdGljIE5TU3RyaW5nICptYWluRnJhbWVT
dHJpbmcgPSBAIjxzY3JpcHQ+IFwKICAgICA8L3NjcmlwdD4iOwogCiBzdGF0aWMgY29uc3QgY2hh
ciogd29ya2VyQnl0ZXMgPSBSIlRFU1RSRVNPVVJDRSgKK3ZhciBwb3NpdGlvbiA9IDA7Cit2YXIg
YWNjZXNzSGFuZGxlOwogYXN5bmMgZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgdHJ5IHsKICAgICAg
ICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3Rvcnko
KTsKICAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5k
bGUoJ2ZpbGUtc3lzdGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsKLSAgICAg
ICAgdmFyIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hh
bmRsZSgpOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoKTsKICAgICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigx
MCk7CiAgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7
ICJhdCIgOiAwIH0pOwogICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdzdWNjZXNzOiB3cml0ZSAn
ICsgd3JpdGVTaXplICsgJyBieXRlcycpOworICAgICAgICBrZWVwQWNjZXNzSGFuZGxlQWN0aXZl
KCk7CisgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnZXJyb3I6
ICcgKyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOworICAgICAgICBjbG9zZSgpOwor
ICAgIH0KK30KK2Z1bmN0aW9uIGtlZXBBY2Nlc3NIYW5kbGVBY3RpdmUoKQoreworICAgIHRyeSB7
CisgICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMSk7CisgICAgICAgIHZhciB3
cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiBwb3NpdGlvbiB9
KTsKKyAgICAgICAgcG9zaXRpb24gKz0gd3JpdGVTaXplOworICAgICAgICBzZXRUaW1lb3V0KGtl
ZXBBY2Nlc3NIYW5kbGVBY3RpdmUsIDEwMCk7CiAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAg
IHNlbGYucG9zdE1lc3NhZ2UoJ2Vycm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNz
YWdlKTsKICAgICAgICAgY2xvc2UoKTsKQEAgLTc2LDcgKzkxLDcgQEAgYXN5bmMgZnVuY3Rpb24g
dGVzdCgpCiB0ZXN0KCk7CiApVEVTVFJFU09VUkNFIjsKIAotVEVTVChGaWxlU3lzdGVtQWNjZXNz
LCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK1RFU1QoRmlsZVN5c3RlbUFjY2VzcywgV2ViUHJv
Y2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiB7CiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW0Zp
bGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CkBAIC0xMzAsNiArMTQ1LDUzIEBAIFRFU1QoRmlsZVN5c3RlbUFjY2VzcywgUHJvY2Vzc0Ny
YXNoRHVyaW5nV3JpdGUpCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAg
Ynl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogfQogCitURVNUKEZpbGVTeXN0ZW1B
Y2Nlc3MsIE5ldHdvcmtQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sKKyAgICBhdXRvIGhhbmRs
ZXIgPSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0
XSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250
cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0
SGFuZGxlciJdOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc107CisgICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0gWUVTOwor
ICAgIHByZWZlcmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVu
Y2VzLl9zdG9yYWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNjaGVtZUhhbmRsZXIgPSBh
ZG9wdE5TKFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2NoZW1l
SGFuZGxlciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlkPFdL
VVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhOwor
ICAgICAgICBOU1VSTCAqcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgICAgIEVY
UEVDVF9XS19TVFJFUSgid2Via2l0Oi8vd2Via2l0Lm9yZy93b3JrZXIuanMiLCByZXF1ZXN0VVJM
LmFic29sdXRlU3RyaW5nKTsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VS
TFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1ZXN0VVJMIE1JTUVUeXBlOkAidGV4dC9q
YXZhc2NyaXB0IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0p
OworICAgICAgICBkYXRhID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndvcmtlckJ5dGVzIGxlbmd0
aDpzdHJsZW4od29ya2VyQnl0ZXMpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNl
OnJlc3BvbnNlLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0YS5nZXQo
KV07CisgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgfV07CisgICAgW2NvbmZpZ3VyYXRp
b24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpA
IndlYmtpdCJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWlu
RnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAIndlYmtpdDovL3dlYmtp
dC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1l
c3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9X
S19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5k
bGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1l
c3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9X
S19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJv
ZHldKTsKKworICAgIC8vIEtpbGwgbmV0d29yayBwcm9jZXNzLgorICAgIFtbY29uZmlndXJhdGlv
biB3ZWJzaXRlRGF0YVN0b3JlXSBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOworCisgICAgLy8g
T3BlbiBhY2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiBuZXR3b3JrIHByb2Nlc3Mg
Y3Jhc2hlcy4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVz
c2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dL
X1NUUkVRKEAiZXJyb3I6IEludmFsaWRTdGF0ZUVycm9yIC0gQWNjZXNzSGFuZGxlIGlzIGNsb3Np
bmcgb3IgY2xvc2VkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEFjY2Vz
cyBoYW5kbGUgY2FuIGJlIGNyZWF0ZWQgYWZ0ZXIgbmV0d29yayBwcm9jZXNzIGlzIHJlbGF1bmNo
ZWQuCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxldGlv
bkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0
ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCiBzdGF0aWMgTlNTdHJpbmcgKmJh
c2ljU3RyaW5nID0gQCI8c2NyaXB0PiBcCiAgICAgYXN5bmMgZnVuY3Rpb24gb3BlbigpIFwKICAg
ICB7IFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>