<?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>237165</bug_id>
          
          <creation_ts>2022-02-24 15:35:32 -0800</creation_ts>
          <short_desc>[ BigSur+ Debug wk2 EWS ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html is a flaky crash</short_desc>
          <delta_ts>2022-05-20 18:08:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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="Robert Jenner">jenner</reporter>
          <assigned_to name="Robert Jenner">jenner</assigned_to>
          <cc>cdumez</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845803</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-02-24 15:35:32 -0800</bug_when>
    <thetext>imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html

is a flaky crash on BigSur and Monterey Debug, and BigSur Debug EWS. 

HISTORY:
https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fhtml%2Fwebappapis%2Fdynamic-markup-insertion%2Fopening-the-input-stream%2Fquirks.window.html

EWS LINK:
https://ews-build.webkit.org/#/builders/60/builds/24851

STDERR TEXT:
No crash log found for com.apple.WebKit.Networking.Development:52671.

stdout:

stderr:
3   0x103f798ec WebKit::StorageAreaBase::addListener(WTF::ObjectIdentifier&lt;IPC::Connection::UniqueIDType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;)
4   0x103f25850 WebKit::LocalStorageManager::connectToLocalStorageArea(WTF::ObjectIdentifier&lt;IPC::Connection::UniqueIDType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::Ref&lt;WTF::WorkQueue, WTF::RawPtrTraits&lt;WTF::WorkQueue&gt; &gt;&amp;&amp;)
5   0x103f70b94 WebKit::NetworkStorageManager::connectToStorageArea(IPC::Connection&amp;, WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt;, unsigned long long)&gt;&amp;&amp;)
6   0x103213034 void IPC::callMemberFunctionImpl&lt;WebKit::NetworkStorageManager, void (WebKit::NetworkStorageManager::*)(IPC::Connection&amp;, WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt;, unsigned long long)&gt;&amp;&amp;), void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt; const&amp;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt; const&amp;, unsigned long long), std::__1::tuple&lt;WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin&gt;, 0ul, 1ul, 2ul, 3ul&gt;(IPC::Connection&amp;, WebKit::NetworkStorageManager*, void (WebKit::NetworkStorageManager::*)(IPC::Connection&amp;, WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt;, unsigned long long)&gt;&amp;&amp;), WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt; const&amp;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt; const&amp;, unsigned long long)&gt;&amp;&amp;, std::__1::tuple&lt;WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul&gt;)
7   0x10320ecc4 void IPC::callMemberFunction&lt;WebKit::NetworkStorageManager, void (WebKit::NetworkStorageManager::*)(IPC::Connection&amp;, WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt;, unsigned long long)&gt;&amp;&amp;), void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt; const&amp;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt; const&amp;, unsigned long long), std::__1::tuple&lt;WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul&gt; &gt;(IPC::Connection&amp;, std::__1::tuple&lt;WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin&gt;&amp;&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt; const&amp;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt; const&amp;, unsigned long long)&gt;&amp;&amp;, WebKit::NetworkStorageManager*, void (WebKit::NetworkStorageManager::*)(IPC::Connection&amp;, WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt;, unsigned long long)&gt;&amp;&amp;))
8   0x1031eb7a4 void IPC::handleMessageAsyncWantsConnection&lt;Messages::NetworkStorageManager::ConnectToStorageArea, WebKit::NetworkStorageManager, void (WebKit::NetworkStorageManager::*)(IPC::Connection&amp;, WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt;, unsigned long long)&gt;&amp;&amp;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;, WebKit::NetworkStorageManager*, void (WebKit::NetworkStorageManager::*)(IPC::Connection&amp;, WebCore::StorageType, WTF::ObjectIdentifier&lt;WebKit::StorageAreaMapIdentifierType&gt;, WTF::ObjectIdentifier&lt;WebKit::StorageNamespaceIdentifierType&gt;, WebCore::ClientOrigin const&amp;, WTF::CompletionHandler&lt;void (WTF::ObjectIdentifier&lt;WebKit::StorageAreaIdentifierType&gt;, WTF::HashMap&lt;WTF::String, WTF::String, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTableTraits&gt;, unsigned long long)&gt;&amp;&amp;))
9   0x1031e9374 WebKit::NetworkStorageManager::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
10  0x1040218e0 IPC::Connection::dispatchMessageReceiverMessage(IPC::MessageReceiver&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;&amp;)
11  0x10402ae58 IPC::WorkQueueMessageReceiverQueue::enqueueMessage(IPC::Connection&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()::operator()()
12  0x10402ab9c WTF::Detail::CallableWrapper&lt;IPC::WorkQueueMessageReceiverQueue::enqueueMessage(IPC::Connection&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;&amp;)::&apos;lambda&apos;(), void&gt;::call()
13  0x13d922e14 WTF::Function&lt;void ()&gt;::operator()() const
14  0x13d9eaec8 WTF::SuspendableWorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_1::operator()() const
15  0x13d9eadcc WTF::Detail::CallableWrapper&lt;WTF::SuspendableWorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_1, void&gt;::call()
16  0x13d922e14 WTF::Function&lt;void ()&gt;::operator()() const
17  0x13da63190 WTF::(anonymous namespace)::DispatchWorkItem::operator()()
18  0x13da6148c void WTF::dispatchWorkItem&lt;WTF::(anonymous namespace)::DispatchWorkItem&gt;(void*)
19  0x19a5cbec0 _dispatch_client_callout
20  0x19a5d36a8 _dispatch_lane_serial_drain
21  0x19a5d42a4 _dispatch_lane_invoke
22  0x19a5deb74 _dispatch_workloop_worker_thread
23  0x19a77789c _pthread_wqthread
24  0x19a7765d4 start_wqthread
LEAK: 1 WebPageProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845806</commentid>
    <comment_count>1</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-02-24 15:45:42 -0800</bug_when>
    <thetext>Since this was having a negative impact on EWS, I have marked the expectations here as [ Pass Crash ] while I am investigating this:

https://trac.webkit.org/changeset/290472/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845807</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-24 15:46:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/89443602&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851012</commentid>
    <comment_count>3</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-03-14 14:29:03 -0700</bug_when>
    <thetext>The crash is pretty flaky. It happens more on Big Sur than it does on Monterey, but I have seen it in Monterey&apos;s history. I have attempted to reproduce it on both Big Sur and Monterey, as well as on Intel and Apple Silicon platforms, and I have been unable to reproduce it, even with --force (since I have set an expectation for the test) and up-to 10000 iterations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853275</commentid>
    <comment_count>4</comment_count>
      <attachid>455259</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-21 12:00:45 -0700</bug_when>
    <thetext>Created attachment 455259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854411</commentid>
    <comment_count>5</comment_count>
      <attachid>455259</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-23 14:41:34 -0700</bug_when>
    <thetext>Comment on attachment 455259
Patch

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

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:786
&gt; +    if (!m_localOriginStorageManagers.contains(origin))

double hash map look up here..

&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:790
&gt; +    auto manager = m_localOriginStorageManagers.get(origin);

.. and here.

This is unnecessarily inefficient.

&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:327
&gt; +StorageType StorageAreaMap::computeStorageType()

can this be const?

&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:336
&gt; +WebCore::ClientOrigin StorageAreaMap::clientOrigin()

Can this be const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854441</commentid>
    <comment_count>6</comment_count>
      <attachid>455259</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-23 15:27:47 -0700</bug_when>
    <thetext>Comment on attachment 455259
Patch

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

r=me with changes.

&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:360
&gt;      auto completionHandler = [this, weakThis = WeakPtr { *this }, weakConnection = WeakPtr { ipcConnection }](auto remoteAreaIdentifier, auto items, auto messageIdentifier) mutable {

Seems to be capturing the ipcConnection unnecessarily now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854461</commentid>
    <comment_count>7</comment_count>
      <attachid>455259</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-23 16:10:19 -0700</bug_when>
    <thetext>Comment on attachment 455259
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:786
&gt;&gt; +    if (!m_localOriginStorageManagers.contains(origin))
&gt; 
&gt; double hash map look up here..

Will use find() instead.

&gt;&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:327
&gt;&gt; +StorageType StorageAreaMap::computeStorageType()
&gt; 
&gt; can this be const?

Sure.

&gt;&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:336
&gt;&gt; +WebCore::ClientOrigin StorageAreaMap::clientOrigin()
&gt; 
&gt; Can this be const?

Sure.

&gt;&gt; Source/WebKit/WebProcess/WebStorage/StorageAreaMap.cpp:360
&gt;&gt;      auto completionHandler = [this, weakThis = WeakPtr { *this }, weakConnection = WeakPtr { ipcConnection }](auto remoteAreaIdentifier, auto items, auto messageIdentifier) mutable {
&gt; 
&gt; Seems to be capturing the ipcConnection unnecessarily now.

Will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854462</commentid>
    <comment_count>8</comment_count>
      <attachid>455576</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-23 16:10:26 -0700</bug_when>
    <thetext>Created attachment 455576
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854528</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-23 18:26:23 -0700</bug_when>
    <thetext>Committed r291778 (248806@main): &lt;https://commits.webkit.org/248806@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455576.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870884</commentid>
    <comment_count>10</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-05-20 18:03:57 -0700</bug_when>
    <thetext>Re-opening for pull request https://github.com/WebKit/WebKit/pull/872</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870886</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-20 18:07:43 -0700</bug_when>
    <thetext>Test gardening commit r294603 (250829@main): &lt;https://commits.webkit.org/250829@main&gt;

Reviewed commits have been landed. Closing PR #872 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455259</attachid>
            <date>2022-03-21 12:00:45 -0700</date>
            <delta_ts>2022-03-23 16:10:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237165-20220321120044.patch</filename>
            <type>text/plain</type>
            <size>16801</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTdjODQyNDJlODI1ZDhi
MGE1NTVmMmIzOTllNTk0NDVkNGUyNWYuLjZjNmU4ODA0NDgyZTg2YzFiYTNjYzVkOGU1ZDhiMmMy
ZWQyN2IzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjItMDMtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgWyBCaWdTdXIrIERlYnVnIHdrMiBF
V1MgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9keW5h
bWljLW1hcmt1cC1pbnNlcnRpb24vb3BlbmluZy10aGUtaW5wdXQtc3RyZWFtL3F1aXJrcy53aW5k
b3cuaHRtbCBpcyBhIGZsYWt5IGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzcxNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5NDQzNjAy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0
ZXN0IGlzIGhpdHRpbmcgYW4gYXNzZXJ0aW9uIGluIFN0b3JhZ2VBcmVhQmFzZTo6YWRkTGlzdGVu
ZXIuIFRoZSBhc3NlcnRpb24gaXMgdXNlZCB0byB2ZXJpZnkgdGhhdCBvbmUKKyAgICAgICAgY29u
bmVjdGlvbiB3aWxsIG5vdCBiZSBhZGRlZCB0byBhIFN0b3JhZ2VBcmVhIHR3aWNlLCBpLmUuIG9u
ZSB3ZWIgcHJvY2VzcyB3aWxsIG5vdCBoYXZlIHR3byBTdG9yYWdlQXJlYU1hcHMKKyAgICAgICAg
cG9pbnRpbmcgdG8gdGhlIHNhbWUgU3RvcmFnZUFyZWEgaW4gbmV0d29yayBwcm9jZXNzLiBXaXRo
IG91ciBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB0aGVyZSBpcyBhbiBlZGdlIGNhc2UgdGhhdCAK
KyAgICAgICAgd2UgbG9hZCBhLmNvbSwgbmF2aWdhdGUgdG8gYi5jb20gYW5kIGdvIGJhY2sgdG8g
YS5jb20uIEluIHRoaXMgY2FzZSwgd2Ugd291bGQgY3JlYXRlIGEgU3RvcmFnZUFyZWFNYXAgZm9y
IGEuY29tLCAKKyAgICAgICAgZGVzdHJveSBpdCBvbiBuYXZpZ2F0aW9uLCBhbmQgY3JlYXRlIGFu
b3RoZXIgU3RvcmFnZUFyZWFNYXAgZm9yIGEuY29tIG9uIGdvaW5nIGJhY2suIEJlY2F1c2Ugd2Ug
ZG9uJ3QgcmVtb3ZlIAorICAgICAgICBsaXN0ZW5lciBkdXJpbmcgZGVzdHJ1Y3Rpb24gb2YgU3Rv
cmFnZUFyZWFNYXAgKHdlIGRvIGl0IHdoZW4gd2ViIHByb2Nlc3MgcmVjZWl2ZXMgcmVwbHkgZnJv
bSBuZXR3b3JrIHByb2Nlc3MpLCAKKyAgICAgICAgdGhlIGFzc2VydGlvbiBpcyBoaXQgZm9yIHR3
byBTdG9yYWdlQXJlYU1hcHMgZnJvbSBvbmUgY29ubmVjdGlvbiBwb2ludGluZyB0byB0aGUgc2Ft
ZSBTdG9yYWdlQXJlYS4gV2UgY2FuIGZpeAorICAgICAgICBpdCBieSBzZW5kaW5nIGEgY2FuY2Vs
Q29ubmVjdFRvU3RvcmFnZSBtZXNzYWdlIHRvIHJlbW92ZSBsaXN0ZW5lciBkdXJpbmcgZGVzdHJ1
Y3Rpb24uCisKKyAgICAgICAgVGhlIGVkZ2UgY2FzZSBpcyBhIGJpdCBoYXJkIHRvIHJlcHJvZHVj
ZSB3aXRoIGF1dG8gdGVzdCBzaW5jZSB3ZSBuZWVkIHRvIGVuc3VyZSB3ZWIgcHJvY2VzcyBzZW5k
cyB0aGUgc2Vjb25kIAorICAgICAgICBDb25uZWN0aW9uVG9TdG9yYWdlQXJlYSBtZXNzYWdlIGJl
Zm9yZSByZWNlaXZpbmcgdGhlIHJlcGx5IG9mIHRoZSBmaXJzdCBDb25uZWN0aW9uVG9TdG9yYWdl
QXJlYSBtZXNzYWdlOyBJIAorICAgICAgICBtYW51YWxseSB0ZXN0ZWQgYnkgYWRkaW5nIGRlbGF5
IHRvIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWEuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VNYW5hZ2VyOjpjYW5jZWxDb25uZWN0VG9Mb2NhbFN0
b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlTWFuYWdlcjo6Y2FuY2Vs
Q29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNhbmNlbENvbm5lY3RUb1N0b3JhZ2VBcmVhKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblN0b3JhZ2VNYW5hZ2VyOjpj
YW5jZWxDb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9TdG9yYWdlQXJlYUJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlQXJlYUJhc2U6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlN0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6
Y29tcHV0ZVN0b3JhZ2VUeXBlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6OmNs
aWVudE9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpzZW5kQ29ubmVj
dE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6ZGlkQ29ubmVjdCk6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpkaXNjb25uZWN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaDoKKwogMjAyMi0wMy0xNyAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gU3Vw
cG9ydCBQREYgc2VhcmNoIHdoZW4gdXNpbmcgYSBmaW5kIGludGVyYWN0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTG9jYWxTdG9yYWdlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTG9jYWxTdG9yYWdl
TWFuYWdlci5jcHAKaW5kZXggOGNkYTY2YWFjZTNmOTI2ZjE3OTFlZjJhYjZhMTZiZWQzYzNhOWQ2
Yy4uYjRmM2Q4NTUxMDQyZDk1NGRlY2FhOTE5YjIwMjE2MzJmYjg1NzNlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9Mb2NhbFN0b3Jh
Z2VNYW5hZ2VyLmNwcApAQCAtMjAyLDYgKzIwMiwxNiBAQCBTdG9yYWdlQXJlYUlkZW50aWZpZXIg
TG9jYWxTdG9yYWdlTWFuYWdlcjo6Y29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShJ
UAogICAgIHJldHVybiBtX3RyYW5zaWVudFN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7CiB9CiAK
K3ZvaWQgTG9jYWxTdG9yYWdlTWFuYWdlcjo6Y2FuY2VsQ29ubmVjdFRvTG9jYWxTdG9yYWdlQXJl
YShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCit7CisgICAgY29ubmVjdGlv
bkNsb3NlZEZvckxvY2FsU3RvcmFnZUFyZWEoY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgTG9jYWxT
dG9yYWdlTWFuYWdlcjo6Y2FuY2VsQ29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24pCit7CisgICAgY29ubmVjdGlvbkNs
b3NlZEZvckxvY2FsU3RvcmFnZUFyZWEoY29ubmVjdGlvbik7Cit9CisKIHZvaWQgTG9jYWxTdG9y
YWdlTWFuYWdlcjo6ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb246OlVu
aXF1ZUlEIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyKQogewog
ICAgIGlmIChtX2xvY2FsU3RvcmFnZUFyZWEgJiYgbV9sb2NhbFN0b3JhZ2VBcmVhLT5pZGVudGlm
aWVyKCkgPT0gaWRlbnRpZmllcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggZjYyZGRjNzAx
ZGNkZGYyODkyMzllNmIyNTRjNGU0Y2Q4OGIxOWFhMi4uMzQ4YWM2OTdlZTZlNDY5NTk4ZGZhYTE3
OTQxNjlmZDdmODBjYTQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTG9jYWxTdG9yYWdlTWFuYWdlci5oCkBAIC02MCw2ICs2MCw4IEBA
IHB1YmxpYzoKIAogICAgIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBjb25uZWN0VG9Mb2NhbFN0b3Jh
Z2VBcmVhKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgUmVmPFdvcmtRdWV1ZT4mJik7CiAgICAg
U3RvcmFnZUFyZWFJZGVudGlmaWVyIGNvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEo
SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKKyAgICB2b2lkIGNhbmNlbENvbm5lY3RUb0xvY2Fs
U3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CisgICAgdm9pZCBjYW5jZWxD
b25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVl
SUQpOwogICAgIHZvaWQgZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlELCBTdG9yYWdlQXJlYUlkZW50aWZpZXIpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAwMGFkOTE4ZmRjNDg4NWFlZGM4ZTVhYmI3MTE4MTE2YWZh
MTZhODc3Li4xZmM2NmYxNWZkMjIwMGUzZWI3YmRkYjNjYzEwMzZkM2E3YmZmZTkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNzgxLDYgKzc4MSwyOCBAQCB2b2lkIE5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbgogICAgIGNvbm5lY3RUb1N0b3JhZ2VBcmVhKGNvbm5lY3Rpb24sIHR5cGUsIHNv
dXJjZUlkZW50aWZpZXIsIG5hbWVzcGFjZUlkZW50aWZpZXIsIG9yaWdpbiwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2FuY2Vs
Q29ubmVjdFRvU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3Jl
OjpTdG9yYWdlVHlwZSB0eXBlLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbikKK3sKKyAgICBp
ZiAoIW1fbG9jYWxPcmlnaW5TdG9yYWdlTWFuYWdlcnMuY29udGFpbnMob3JpZ2luKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb24u
dW5pcXVlSUQoKTsKKyAgICBhdXRvIG1hbmFnZXIgPSBtX2xvY2FsT3JpZ2luU3RvcmFnZU1hbmFn
ZXJzLmdldChvcmlnaW4pOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgV2ViQ29yZTo6
U3RvcmFnZVR5cGU6OkxvY2FsOgorICAgICAgICBpZiAoYXV0byBsb2NhbFN0b3JhZ2VNYW5hZ2Vy
ID0gbWFuYWdlci0+ZXhpc3RpbmdMb2NhbFN0b3JhZ2VNYW5hZ2VyKCkpCisgICAgICAgICAgICBs
b2NhbFN0b3JhZ2VNYW5hZ2VyLT5jYW5jZWxDb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTdG9y
YWdlVHlwZTo6VHJhbnNpZW50TG9jYWw6CisgICAgICAgIGlmIChhdXRvIGxvY2FsU3RvcmFnZU1h
bmFnZXIgPSBtYW5hZ2VyLT5leGlzdGluZ0xvY2FsU3RvcmFnZU1hbmFnZXIoKSkKKyAgICAgICAg
ICAgIGxvY2FsU3RvcmFnZU1hbmFnZXItPmNhbmNlbENvbm5lY3RUb1RyYW5zaWVudExvY2FsU3Rv
cmFnZUFyZWEoY29ubmVjdGlvbklkZW50aWZpZXIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OlN0b3JhZ2VUeXBlOjpTZXNzaW9uOgorICAgICAgICBpZiAoYXV0byBzZXNzaW9u
U3RvcmFnZU1hbmFnZXIgPSBtYW5hZ2VyLT5leGlzdGluZ1Nlc3Npb25TdG9yYWdlTWFuYWdlcigp
KQorICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLT5jYW5jZWxDb25uZWN0VG9TZXNz
aW9uU3RvcmFnZUFyZWEoY29ubmVjdGlvbklkZW50aWZpZXIsIG5hbWVzcGFjZUlkZW50aWZpZXIp
OworICAgIH0KK30KKwogdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmRpc2Nvbm5lY3RGcm9t
U3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50
aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCAyYWJiMGZiMGUzOThlNzRmNjAxNTgyYWU4NWM1ZTc5
YzMyNTU5ZTk4Li40ZTljZDIwNzhmMGJiMGNkMTFmZDU5ZThkZWY3NzFhMmNmNTYyZjMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0xMzMsNiArMTMzLDcgQEAgcHJpdmF0ZToKICAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzIGZvciBXZWJTdG9yYWdlLgogICAgIHZvaWQgY29ubmVjdFRvU3Rv
cmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VB
cmVhTWFwSWRlbnRpZmllciwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVu
dGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwgdWludDY0X3QpPiYmKTsKICAgICB2b2lk
IGNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyhJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTdG9y
YWdlVHlwZSwgU3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQXJlYUlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50NjRf
dCk+JiYpOworICAgIHZvaWQgY2FuY2VsQ29ubmVjdFRvU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0
aW9uJiwgV2ViQ29yZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tU3Rv
cmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyKTsKICAgICB2
b2lkIGNsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9y
YWdlQXJlYUltcGxJZGVudGlmaWVyLCBTdHJpbmcmJiBrZXksIFN0cmluZyYmIHZhbHVlLCBTdHJp
bmcmJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggZDk0YjZmNGYzYmY2NjE4
NmU5MzkxOWMyMTdlYjA1YWEwOTIyMDU4MS4uN2Q5YjczOTM1N2E0MzhjNDcyYjQ0MDA4YzkzZjQ3
YTUzNDhiNjA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
CkBAIC00Miw2ICs0Miw3IEBACiAKICAgICBDb25uZWN0VG9TdG9yYWdlQXJlYShXZWJDb3JlOjpT
dG9yYWdlVHlwZSB0eXBlLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlk
ZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoV2ViS2l0
OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gaXRlbXMsIHVpbnQ2NF90IG1lc3NhZ2VJZGVudGlmaWVyKSBXYW50c0Nvbm5lY3Rpb24KICAg
ICBDb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMoV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2Vi
S2l0OjpTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpT
dG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgLT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBt
ZXNzYWdlSWRlbnRpZmllcikgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCisgICAgQ2FuY2Vs
Q29ubmVjdFRvU3RvcmFnZUFyZWEoV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpT
dG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgV2FudHNDb25uZWN0aW9uCiAgICAgRGlzY29ubmVj
dEZyb21TdG9yYWdlQXJlYShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVy
KSBXYW50c0Nvbm5lY3Rpb24KICAgICBDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFdlYktp
dDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2Vi
S2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2Fu
dHNDb25uZWN0aW9uCiAgICAgU2V0SXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZp
ZXIsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5nIHVybFN0cmluZykgLT4gKGJvb2wg
cXVvdGFFeGNlcHRpb24pIFdhbnRzQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL1Nlc3Npb25TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCBiNzM0MmU0MGVmMWY2YmI1Y2RiNmZiZmIyZWYxMjNmOWQwNmU4ZTA2Li40OTFjM2Uy
MTdkZGRhNjM3MGUzZDUwYWExNjY4NjUwZDAxMDZlNDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtODksNiArODksMTkgQEAgU3RvcmFnZUFyZWFJZGVudGlmaWVyIFNlc3Npb25T
dG9yYWdlTWFuYWdlcjo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q28KICAgICBy
ZXR1cm4gaWRlbnRpZmllcjsKIH0KIAordm9pZCBTZXNzaW9uU3RvcmFnZU1hbmFnZXI6OmNhbmNl
bENvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNv
bm5lY3Rpb24sIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIp
Cit7CisgICAgYXV0byBpZGVudGlmaWVyID0gbV9zdG9yYWdlQXJlYXNCeU5hbWVzcGFjZS5nZXQo
bmFtZXNwYWNlSWRlbnRpZmllcik7CisgICAgaWYgKCFpZGVudGlmaWVyLmlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byogc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhcy5n
ZXQoaWRlbnRpZmllcik7CisgICAgaWYgKCFzdG9yYWdlQXJlYSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc3RvcmFnZUFyZWEtPnJlbW92ZUxpc3RlbmVyKGNvbm5lY3Rpb24pOworfQorCiB2b2lk
IFNlc3Npb25TdG9yYWdlTWFuYWdlcjo6ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNv
bm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVu
dGlmaWVyKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlQXJlYSA9IG1fc3RvcmFnZUFyZWFzLmdl
dChpZGVudGlmaWVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9TZXNzaW9uU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9TZXNzaW9uU3RvcmFnZU1hbmFnZXIuaAppbmRleCAwZjdiZTRjNWU1Y2M4
OGFjMzgyOWMxOTI1MDFmY2M2ODI2MjVlNTA2Li45ZWQyZjJmOTEyMmU5ZTk2ODUyNjQwZjAyOGQy
MGM1NTUxMjdhNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL1Nlc3Npb25TdG9yYWdlTWFuYWdlci5oCkBAIC00OSw2ICs0OSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWQoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCk7CiAKICAgICBTdG9yYWdlQXJlYUlkZW50aWZpZXIgY29ubmVjdFRvU2Vzc2lvblN0b3Jh
Z2VBcmVhKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgY2FuY2VsQ29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29u
bmVjdGlvbjo6VW5pcXVlSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyKTsKICAgICB2b2lk
IGRpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3Rv
cmFnZUFyZWFJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsb25lU3RvcmFnZUFyZWEoSVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIFN0b3JhZ2VOYW1l
c3BhY2VJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCmluZGV4IGM5ZDViYjA3MTYyMzZlNGEzNjE0
MGJhNjZlMzkwODA2ODBjMjgwZWMuLmI1MjdhZTQ0YTNjODhkMjBkNjZlYTg1YjNmZjUwOWJiNWEz
NGY0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5jcHAKQEAgLTMyNCwxNyArMzI0LDMwIEBAIHZvaWQgU3RvcmFnZUFy
ZWFNYXA6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTdG9y
YWdlQXJlYUltCiAgICAgfSk7CiB9CiAKLXZvaWQgU3RvcmFnZUFyZWFNYXA6OnNlbmRDb25uZWN0
TWVzc2FnZShTZW5kTW9kZSBtb2RlKQorU3RvcmFnZVR5cGUgU3RvcmFnZUFyZWFNYXA6OmNvbXB1
dGVTdG9yYWdlVHlwZSgpCiB7Ci0gICAgYXV0byYgaXBjQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KTsKLSAgICBhdXRvIG5hbWVzcGFjZUlkZW50aWZpZXIgPSBtX25hbWVzcGFjZS5zdG9yYWdlTmFt
ZXNwYWNlSUQoKTsKLSAgICBhdXRvIG9yaWdpbkRhdGEgPSBtX3NlY3VyaXR5T3JpZ2luLT5kYXRh
KCk7Ci0gICAgYXV0byB0b3BPcmlnaW5EYXRhID0gbV9uYW1lc3BhY2UudG9wTGV2ZWxPcmlnaW4o
KSA/IG1fbmFtZXNwYWNlLnRvcExldmVsT3JpZ2luKCktPmRhdGEoKSA6IG9yaWdpbkRhdGE7Ci0g
ICAgYXV0byBvcmlnaW4gPSBXZWJDb3JlOjpDbGllbnRPcmlnaW4geyB0b3BPcmlnaW5EYXRhLCBv
cmlnaW5EYXRhIH07CiAgICAgYXV0byB0eXBlID0gbV90eXBlOwogICAgIGlmICgodHlwZSA9PSBT
dG9yYWdlVHlwZTo6TG9jYWwgfHwgdHlwZSA9PSBTdG9yYWdlVHlwZTo6VHJhbnNpZW50TG9jYWwp
ICYmIG1fbmFtZXNwYWNlLnRvcExldmVsT3JpZ2luKCkpCiAgICAgICAgIHR5cGUgPSBTdG9yYWdl
VHlwZTo6VHJhbnNpZW50TG9jYWw7CiAKKyAgICByZXR1cm4gdHlwZTsKK30KKworV2ViQ29yZTo6
Q2xpZW50T3JpZ2luIFN0b3JhZ2VBcmVhTWFwOjpjbGllbnRPcmlnaW4oKQoreworICAgIGF1dG8g
b3JpZ2luRGF0YSA9IG1fc2VjdXJpdHlPcmlnaW4tPmRhdGEoKTsKKyAgICBhdXRvIHRvcE9yaWdp
bkRhdGEgPSBtX25hbWVzcGFjZS50b3BMZXZlbE9yaWdpbigpID8gbV9uYW1lc3BhY2UudG9wTGV2
ZWxPcmlnaW4oKS0+ZGF0YSgpIDogb3JpZ2luRGF0YTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luIHsgdG9wT3JpZ2luRGF0YSwgb3JpZ2luRGF0YSB9OworfQorCit2b2lkIFN0b3Jh
Z2VBcmVhTWFwOjpzZW5kQ29ubmVjdE1lc3NhZ2UoU2VuZE1vZGUgbW9kZSkKK3sKKyAgICBtX2lz
V2FpdGluZ0ZvckNvbm5lY3RSZXBseSA9IHRydWU7CisgICAgYXV0byYgaXBjQ29ubmVjdGlvbiA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKTsKKyAgICBhdXRvIG5hbWVzcGFjZUlkZW50aWZpZXIgPSBtX25hbWVzcGFj
ZS5zdG9yYWdlTmFtZXNwYWNlSUQoKTsKKyAgICBhdXRvIG9yaWdpbiA9IGNsaWVudE9yaWdpbigp
OworICAgIGF1dG8gdHlwZSA9IGNvbXB1dGVTdG9yYWdlVHlwZSgpOworCiAgICAgaWYgKG1vZGUg
PT0gU2VuZE1vZGU6OlN5bmMpIHsKICAgICAgICAgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHJlbW90
ZUFyZWFJZGVudGlmaWVyOwogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsK
QEAgLTM0Nyw5ICszNjAsNiBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpzZW5kQ29ubmVjdE1lc3Nh
Z2UoU2VuZE1vZGUgbW9kZSkKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHdl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtDb25uZWN0aW9uID0gV2Vha1B0ciB7IGlw
Y0Nvbm5lY3Rpb24gfV0oYXV0byByZW1vdGVBcmVhSWRlbnRpZmllciwgYXV0byBpdGVtcywgYXV0
byBtZXNzYWdlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybiBkaWRDb25uZWN0KHJlbW90ZUFyZWFJZGVudGlmaWVyLCBXVEZNb3Zl
KGl0ZW1zKSwgbWVzc2FnZUlkZW50aWZpZXIpOwotCi0gICAgICAgIGlmICh3ZWFrQ29ubmVjdGlv
biAmJiByZW1vdGVBcmVhSWRlbnRpZmllci5pc1ZhbGlkKCkpCi0gICAgICAgICAgICB3ZWFrQ29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpEaXNjb25uZWN0
RnJvbVN0b3JhZ2VBcmVhKHJlbW90ZUFyZWFJZGVudGlmaWVyKSwgMCk7CiAgICAgfTsKIAogICAg
IGlwY0Nvbm5lY3Rpb24uc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkNvbm5lY3RUb1N0b3JhZ2VBcmVhKHR5cGUsIG1faWRlbnRpZmllciwgbmFtZXNw
YWNlSWRlbnRpZmllciwgb3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAt
MzczLDYgKzM4Myw3IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNvbm5lY3QoKQogCiB2b2lkIFN0
b3JhZ2VBcmVhTWFwOjpkaWRDb25uZWN0KFN0b3JhZ2VBcmVhSWRlbnRpZmllciByZW1vdGVBcmVh
SWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mJiBpdGVtcywgdWludDY0X3QgbWVz
c2FnZUlkZW50aWZpZXIpCiB7CisgICAgbV9pc1dhaXRpbmdGb3JDb25uZWN0UmVwbHkgPSBmYWxz
ZTsKICAgICBpZiAobWVzc2FnZUlkZW50aWZpZXIgPCBtX2xhc3RIYW5kbGVkTWVzc2FnZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzg3LDggKzM5OCwxMyBAQCB2b2lkIFN0b3Jh
Z2VBcmVhTWFwOjpkaWRDb25uZWN0KFN0b3JhZ2VBcmVhSWRlbnRpZmllciByZW1vdGVBcmVhSWRl
bnRpZmllciwgSGFzaAogCiB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNjb25uZWN0KCkKIHsKLSAg
ICBpZiAoIW1fcmVtb3RlQXJlYUlkZW50aWZpZXIpCisgICAgaWYgKCFtX3JlbW90ZUFyZWFJZGVu
dGlmaWVyKSB7CisgICAgICAgIGF1dG8qIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7Cisg
ICAgICAgIGlmIChtX2lzV2FpdGluZ0ZvckNvbm5lY3RSZXBseSAmJiBuZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24pCisgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNhbmNlbENvbm5lY3RU
b1N0b3JhZ2VBcmVhKGNvbXB1dGVTdG9yYWdlVHlwZSgpLCBtX25hbWVzcGFjZS5zdG9yYWdlTmFt
ZXNwYWNlSUQoKSwgY2xpZW50T3JpZ2luKCkpLCAwKTsKKwogICAgICAgICByZXR1cm47CisgICAg
fQogCiAgICAgcmVzZXRWYWx1ZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKaW5kZXggMjRkNzBlOGExMDAzNjY3ZDk1
ZTNiNmEyZjI4Y2ViNzIxNmY2M2RiNi4uZGQ3MzBlNmM5YTdhNjQ1ZmFlOWZhNmQ2MDc3NjIzYjhj
ZGFkNjk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZUFyZWFNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5oCkBAIC00MCw2ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFN0b3JhZ2VNYXA7CitzdHJ1Y3QgQ2xpZW50
T3JpZ2luOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTg1LDYgKzg2LDggQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcmVzZXRWYWx1ZXMoKTsKICAgICBXZWJDb3JlOjpTdG9yYWdlTWFwJiBl
bnN1cmVNYXAoKTsKKyAgICBXZWJDb3JlOjpTdG9yYWdlVHlwZSBjb21wdXRlU3RvcmFnZVR5cGUo
KTsKKyAgICBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luKCk7CiAKICAgICBib29s
IHNob3VsZEFwcGx5Q2hhbmdlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKICAgICB2
b2lkIGFwcGx5Q2hhbmdlKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVl
KTsKQEAgLTEwOSw2ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlN0b3JhZ2VUeXBl
IG1fdHlwZTsKICAgICB1aW50NjRfdCBtX3VzZUNvdW50IHsgMCB9OwogICAgIGJvb2wgbV9oYXNQ
ZW5kaW5nQ2xlYXIgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JDb25uZWN0UmVw
bHkgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455576</attachid>
            <date>2022-03-23 16:10:26 -0700</date>
            <delta_ts>2022-03-23 18:26:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237165-20220323161025.patch</filename>
            <type>text/plain</type>
            <size>16951</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQzMGJkZmRlZTNkZDNkMGIw
OGVkMmJmMTljOTllYjY0YzY0ODgyMDMuLjQzZjZkY2IwMTdlMzIwYjg2MmNjMTYyOWI0ZjBhYmUy
ZDM4YTE0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDMtMjMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgWyBCaWdTdXIrIERlYnVnIHdrMiBF
V1MgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvd2ViYXBwYXBpcy9keW5h
bWljLW1hcmt1cC1pbnNlcnRpb24vb3BlbmluZy10aGUtaW5wdXQtc3RyZWFtL3F1aXJrcy53aW5k
b3cuaHRtbCBpcyBhIGZsYWt5IGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzcxNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5NDQzNjAy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRoZSB0ZXN0
IGlzIGhpdHRpbmcgYW4gYXNzZXJ0aW9uIGluIFN0b3JhZ2VBcmVhQmFzZTo6YWRkTGlzdGVuZXIu
IFRoZSBhc3NlcnRpb24gaXMgdXNlZCB0byB2ZXJpZnkgdGhhdCBvbmUKKyAgICAgICAgY29ubmVj
dGlvbiB3aWxsIG5vdCBiZSBhZGRlZCB0byBhIFN0b3JhZ2VBcmVhIHR3aWNlLCBpLmUuIG9uZSB3
ZWIgcHJvY2VzcyB3aWxsIG5vdCBoYXZlIHR3byBTdG9yYWdlQXJlYU1hcHMKKyAgICAgICAgcG9p
bnRpbmcgdG8gdGhlIHNhbWUgU3RvcmFnZUFyZWEgaW4gbmV0d29yayBwcm9jZXNzLiBXaXRoIG91
ciBjdXJyZW50IGltcGxlbWVudGF0aW9uLCB0aGVyZSBpcyBhbiBlZGdlIGNhc2UgdGhhdCAKKyAg
ICAgICAgd2UgbG9hZCBhLmNvbSwgbmF2aWdhdGUgdG8gYi5jb20gYW5kIGdvIGJhY2sgdG8gYS5j
b20uIEluIHRoaXMgY2FzZSwgd2Ugd291bGQgY3JlYXRlIGEgU3RvcmFnZUFyZWFNYXAgZm9yIGEu
Y29tLCAKKyAgICAgICAgZGVzdHJveSBpdCBvbiBuYXZpZ2F0aW9uLCBhbmQgY3JlYXRlIGFub3Ro
ZXIgU3RvcmFnZUFyZWFNYXAgZm9yIGEuY29tIG9uIGdvaW5nIGJhY2suIEJlY2F1c2Ugd2UgZG9u
J3QgcmVtb3ZlIAorICAgICAgICBsaXN0ZW5lciBkdXJpbmcgZGVzdHJ1Y3Rpb24gb2YgU3RvcmFn
ZUFyZWFNYXAgKHdlIGRvIGl0IHdoZW4gd2ViIHByb2Nlc3MgcmVjZWl2ZXMgcmVwbHkgZnJvbSBu
ZXR3b3JrIHByb2Nlc3MpLCAKKyAgICAgICAgdGhlIGFzc2VydGlvbiBpcyBoaXQgZm9yIHR3byBT
dG9yYWdlQXJlYU1hcHMgZnJvbSBvbmUgY29ubmVjdGlvbiBwb2ludGluZyB0byB0aGUgc2FtZSBT
dG9yYWdlQXJlYS4gV2UgY2FuIGZpeAorICAgICAgICBpdCBieSBzZW5kaW5nIGEgY2FuY2VsQ29u
bmVjdFRvU3RvcmFnZSBtZXNzYWdlIHRvIHJlbW92ZSBsaXN0ZW5lciBkdXJpbmcgZGVzdHJ1Y3Rp
b24uCisKKyAgICAgICAgVGhlIGVkZ2UgY2FzZSBpcyBhIGJpdCBoYXJkIHRvIHJlcHJvZHVjZSB3
aXRoIGF1dG8gdGVzdCBzaW5jZSB3ZSBuZWVkIHRvIGVuc3VyZSB3ZWIgcHJvY2VzcyBzZW5kcyB0
aGUgc2Vjb25kIAorICAgICAgICBDb25uZWN0aW9uVG9TdG9yYWdlQXJlYSBtZXNzYWdlIGJlZm9y
ZSByZWNlaXZpbmcgdGhlIHJlcGx5IG9mIHRoZSBmaXJzdCBDb25uZWN0aW9uVG9TdG9yYWdlQXJl
YSBtZXNzYWdlLCBzbyBJIAorICAgICAgICBtYW51YWxseSB0ZXN0ZWQgaXQgYnkgYWRkaW5nIGRl
bGF5IGluIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWEuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VNYW5hZ2VyOjpjYW5jZWxDb25uZWN0VG9Mb2Nh
bFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlTWFuYWdlcjo6Y2Fu
Y2VsQ29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNhbmNlbENvbm5lY3RUb1N0b3JhZ2VBcmVhKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0
b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblN0b3JhZ2VNYW5hZ2Vy
OjpjYW5jZWxDb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZUFyZWFNYXA6OmNvbXB1dGVTdG9yYWdlVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VBcmVhTWFwOjpjbGllbnRPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
dG9yYWdlQXJlYU1hcDo6c2VuZENvbm5lY3RNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZUFyZWFNYXA6OmRpZENvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1h
cDo6ZGlzY29ubmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VB
cmVhTWFwLmg6CisKIDIwMjItMDMtMjMgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXZWJBdXRobl0gU3BlY2lmeSBjb3JyZWN0IEFTQ1B1YmxpY0tleUNyZWRlbnRp
YWxLaW5kIGluIGNvbmZpZ3VyZUFzc2VydGlvbk9wdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCA4Y2RhNjZhYWNlM2Y5MjZmMTc5MWVmMmFiNmExNmJlZDNjM2E5ZDZjLi5iNGYzZDg1
NTEwNDJkOTU0ZGVjYWE5MTliMjAyMTYzMmZiODU3M2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTG9jYWxTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIu
Y3BwCkBAIC0yMDIsNiArMjAyLDE2IEBAIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBMb2NhbFN0b3Jh
Z2VNYW5hZ2VyOjpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQCiAgICAgcmV0
dXJuIG1fdHJhbnNpZW50U3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKIH0KIAordm9pZCBMb2Nh
bFN0b3JhZ2VNYW5hZ2VyOjpjYW5jZWxDb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29u
bmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKK3sKKyAgICBjb25uZWN0aW9uQ2xvc2VkRm9y
TG9jYWxTdG9yYWdlQXJlYShjb25uZWN0aW9uKTsKK30KKwordm9pZCBMb2NhbFN0b3JhZ2VNYW5h
Z2VyOjpjYW5jZWxDb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbikKK3sKKyAgICBjb25uZWN0aW9uQ2xvc2VkRm9yTG9j
YWxTdG9yYWdlQXJlYShjb25uZWN0aW9uKTsKK30KKwogdm9pZCBMb2NhbFN0b3JhZ2VNYW5hZ2Vy
OjpkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29u
bmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1f
bG9jYWxTdG9yYWdlQXJlYSAmJiBtX2xvY2FsU3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKSA9PSBp
ZGVudGlmaWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTG9jYWxTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuaAppbmRleCBmNjJkZGM3MDFkY2RkZjI4OTIz
OWU2YjI1NGM0ZTRjZDg4YjE5YWEyLi4zNDhhYzY5N2VlNmU0Njk1OThkZmFhMTc5NDE2OWZkN2Y4
MGNhNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TG9jYWxTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgog
CiAgICAgU3RvcmFnZUFyZWFJZGVudGlmaWVyIGNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoSVBD
OjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBSZWY8V29ya1F1ZXVlPiYmKTsKICAgICBTdG9yYWdlQXJl
YUlkZW50aWZpZXIgY29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlELCBTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYpOworICAgIHZvaWQgY2FuY2VsQ29ubmVjdFRvTG9jYWxTdG9yYWdlQXJl
YShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEKTsKKyAgICB2b2lkIGNhbmNlbENvbm5lY3RUb1Ry
YW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCk7CiAgICAg
dm9pZCBkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQs
IFN0b3JhZ2VBcmVhSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuY3BwCmluZGV4IDIxMmU3OGNhN2E0NGE5ZWQwZWRlMzU0OGE3OGY0MmMwOGQzYjJkNzkuLmU1
MjBjOGFjYjRlMjYxZWMxN2ZiYjYwZGYwNjE4ODJlMTNmNDVkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuY3BwCkBAIC03ODEsNiArNzgxLDI4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpjb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
CiAgICAgY29ubmVjdFRvU3RvcmFnZUFyZWEoY29ubmVjdGlvbiwgdHlwZSwgc291cmNlSWRlbnRp
ZmllciwgbmFtZXNwYWNlSWRlbnRpZmllciwgb3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjYW5jZWxDb25uZWN0VG9T
dG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlN0b3JhZ2VU
eXBlIHR5cGUsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQoreworICAgIGF1dG8gaXRlcmF0
b3IgPSBtX2xvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXJzLmZpbmQob3JpZ2luKTsKKyAgICBpZiAo
aXRlcmF0b3IgPT0gbV9sb2NhbE9yaWdpblN0b3JhZ2VNYW5hZ2Vycy5lbmQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byBjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb24udW5p
cXVlSUQoKTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlN0b3JhZ2VU
eXBlOjpMb2NhbDoKKyAgICAgICAgaWYgKGF1dG8gbG9jYWxTdG9yYWdlTWFuYWdlciA9IGl0ZXJh
dG9yLT52YWx1ZS0+ZXhpc3RpbmdMb2NhbFN0b3JhZ2VNYW5hZ2VyKCkpCisgICAgICAgICAgICBs
b2NhbFN0b3JhZ2VNYW5hZ2VyLT5jYW5jZWxDb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVhKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpTdG9y
YWdlVHlwZTo6VHJhbnNpZW50TG9jYWw6CisgICAgICAgIGlmIChhdXRvIGxvY2FsU3RvcmFnZU1h
bmFnZXIgPSBpdGVyYXRvci0+dmFsdWUtPmV4aXN0aW5nTG9jYWxTdG9yYWdlTWFuYWdlcigpKQor
ICAgICAgICAgICAgbG9jYWxTdG9yYWdlTWFuYWdlci0+Y2FuY2VsQ29ubmVjdFRvVHJhbnNpZW50
TG9jYWxTdG9yYWdlQXJlYShjb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQ29yZTo6U3RvcmFnZVR5cGU6OlNlc3Npb246CisgICAgICAgIGlmIChhdXRv
IHNlc3Npb25TdG9yYWdlTWFuYWdlciA9IGl0ZXJhdG9yLT52YWx1ZS0+ZXhpc3RpbmdTZXNzaW9u
U3RvcmFnZU1hbmFnZXIoKSkKKyAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlTWFuYWdlci0+Y2Fu
Y2VsQ29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBuYW1l
c3BhY2VJZGVudGlmaWVyKTsKKyAgICB9Cit9CisKIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMmFiYjBmYjBlMzk4ZTc0
ZjYwMTU4MmFlODVjNWU3OWMzMjU1OWU5OC4uNGU5Y2QyMDc4ZjBiYjBjZDExZmQ1OWU4ZGVmNzcx
YTJjZjU2MmYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMTMzLDYgKzEzMyw3IEBA
IHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViU3RvcmFnZS4KICAgICB2
b2lkIGNvbm5lY3RUb1N0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlN0b3Jh
Z2VUeXBlLCBTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4sIHVpbnQ2NF90
KT4mJik7CiAgICAgdm9pZCBjb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMoSVBDOjpDb25uZWN0aW9u
JiwgV2ViQ29yZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciwgU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKKyAgICB2b2lkIGNhbmNlbENvbm5lY3RUb1N0b3JhZ2VB
cmVhKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik7CiAgICAgdm9pZCBk
aXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRl
bnRpZmllcik7CiAgICAgdm9pZCBjbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElQQzo6Q29u
bmVjdGlvbiYsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllcik7CiAgICAgdm9pZCBzZXRJdGVtKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVh
SWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgU3RyaW5nJiYga2V5LCBTdHJp
bmcmJiB2YWx1ZSwgU3RyaW5nJiYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4
IGQ5NGI2ZjRmM2JmNjYxODZlOTM5MTljMjE3ZWIwNWFhMDkyMjA1ODEuLjdkOWI3MzkzNTdhNDM4
YzQ3MmI0NDAwOGM5M2Y0N2E1MzQ4YjYwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtNDIsNiArNDIsNyBAQAogCiAgICAgQ29ubmVjdFRvU3RvcmFn
ZUFyZWEoV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9y
aWdpbikgLT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgV2Fu
dHNDb25uZWN0aW9uCiAgICAgQ29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jKFdlYkNvcmU6OlN0b3Jh
Z2VUeXBlIHR5cGUsIFdlYktpdDo6U3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChXZWJLaXQ6OlN0
b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBp
dGVtcywgdWludDY0X3QgbWVzc2FnZUlkZW50aWZpZXIpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVj
dGlvbgorICAgIENhbmNlbENvbm5lY3RUb1N0b3JhZ2VBcmVhKFdlYkNvcmU6OlN0b3JhZ2VUeXBl
IHR5cGUsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIFdhbnRzQ29ubmVjdGlv
bgogICAgIERpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50
aWZpZXIgaWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCiAgICAgQ2xvbmVTZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZShXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGZyb21TdG9yYWdl
TmFtZXNwYWNlSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgdG9TdG9yYWdl
TmFtZXNwYWNlSUQpIFdhbnRzQ29ubmVjdGlvbgogICAgIFNldEl0ZW0oV2ViS2l0OjpTdG9yYWdl
QXJlYUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlm
aWVyIGltcGxJZGVudGlmaWVyLCBTdHJpbmcga2V5LCBTdHJpbmcgdmFsdWUsIFN0cmluZyB1cmxT
dHJpbmcpIC0+IChib29sIHF1b3RhRXhjZXB0aW9uKSBXYW50c0Nvbm5lY3Rpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9TZXNzaW9uU3RvcmFnZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL1Nlc3Npb25T
dG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYjczNDJlNDBlZjFmNmJiNWNkYjZmYmZiMmVmMTIzZjlk
MDZlOGUwNi4uNDkxYzNlMjE3ZGRkYTYzNzBlM2Q1MGFhMTY2ODY1MGQwMTA2ZTQwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL1Nlc3Npb25TdG9yYWdl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL1Nl
c3Npb25TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTg5LDYgKzg5LDE5IEBAIFN0b3JhZ2VBcmVhSWRl
bnRpZmllciBTZXNzaW9uU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJl
YShJUEM6OkNvCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKK3ZvaWQgU2Vzc2lvblN0b3Jh
Z2VNYW5hZ2VyOjpjYW5jZWxDb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0
aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9uLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1l
c3BhY2VJZGVudGlmaWVyKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IG1fc3RvcmFnZUFyZWFz
QnlOYW1lc3BhY2UuZ2V0KG5hbWVzcGFjZUlkZW50aWZpZXIpOworICAgIGlmICghaWRlbnRpZmll
ci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHN0b3JhZ2VBcmVhID0g
bV9zdG9yYWdlQXJlYXMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmICghc3RvcmFnZUFyZWEpCisg
ICAgICAgIHJldHVybjsKKworICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVMaXN0ZW5lcihjb25uZWN0
aW9uKTsKK30KKwogdm9pZCBTZXNzaW9uU3RvcmFnZU1hbmFnZXI6OmRpc2Nvbm5lY3RGcm9tU3Rv
cmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9uLCBTdG9yYWdlQXJl
YUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZUFyZWEgPSBt
X3N0b3JhZ2VBcmVhcy5nZXQoaWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VNYW5hZ2VyLmgKaW5k
ZXggMGY3YmU0YzVlNWNjODhhYzM4MjljMTkyNTAxZmNjNjgyNjI1ZTUwNi4uOWVkMmYyZjkxMjJl
OWU5Njg1MjY0MGYwMjhkMjBjNTU1MTI3YTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL1Nlc3Npb25TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9TZXNzaW9uU3RvcmFnZU1hbmFnZXIuaApA
QCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkKElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQpOwogCiAgICAgU3RvcmFnZUFyZWFJZGVudGlmaWVyIGNvbm5l
Y3RUb1Nlc3Npb25TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdG9yYWdl
QXJlYU1hcElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNhbmNlbENvbm5lY3RUb1Nlc3Npb25TdG9y
YWdlQXJlYShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
Zmllcik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlv
bjo6VW5pcXVlSUQsIFN0b3JhZ2VBcmVhSWRlbnRpZmllcik7CiAgICAgdm9pZCBjbG9uZVN0b3Jh
Z2VBcmVhKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlm
aWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAppbmRleCBjOWQ1
YmIwNzE2MjM2ZTRhMzYxNDBiYTY2ZTM5MDgwNjgwYzI4MGVjLi45Mzc2MmNjOGYwMzhjMzdhZDJl
ZDM3YjNjMmM4MTQwNTgzOTA5NGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC0zMjQsMTcgKzMyNCwzMCBA
QCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U3RvcmFnZUFyZWFJbQogICAgIH0pOwogfQogCi12b2lkIFN0b3JhZ2VBcmVh
TWFwOjpzZW5kQ29ubmVjdE1lc3NhZ2UoU2VuZE1vZGUgbW9kZSkKK1N0b3JhZ2VUeXBlIFN0b3Jh
Z2VBcmVhTWFwOjpjb21wdXRlU3RvcmFnZVR5cGUoKSBjb25zdAogewotICAgIGF1dG8mIGlwY0Nv
bm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0gICAgYXV0byBuYW1lc3BhY2VJZGVudGlmaWVyID0g
bV9uYW1lc3BhY2Uuc3RvcmFnZU5hbWVzcGFjZUlEKCk7Ci0gICAgYXV0byBvcmlnaW5EYXRhID0g
bV9zZWN1cml0eU9yaWdpbi0+ZGF0YSgpOwotICAgIGF1dG8gdG9wT3JpZ2luRGF0YSA9IG1fbmFt
ZXNwYWNlLnRvcExldmVsT3JpZ2luKCkgPyBtX25hbWVzcGFjZS50b3BMZXZlbE9yaWdpbigpLT5k
YXRhKCkgOiBvcmlnaW5EYXRhOwotICAgIGF1dG8gb3JpZ2luID0gV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luIHsgdG9wT3JpZ2luRGF0YSwgb3JpZ2luRGF0YSB9OwogICAgIGF1dG8gdHlwZSA9IG1fdHlw
ZTsKICAgICBpZiAoKHR5cGUgPT0gU3RvcmFnZVR5cGU6OkxvY2FsIHx8IHR5cGUgPT0gU3RvcmFn
ZVR5cGU6OlRyYW5zaWVudExvY2FsKSAmJiBtX25hbWVzcGFjZS50b3BMZXZlbE9yaWdpbigpKQog
ICAgICAgICB0eXBlID0gU3RvcmFnZVR5cGU6OlRyYW5zaWVudExvY2FsOwogCisgICAgcmV0dXJu
IHR5cGU7Cit9CisKK1dlYkNvcmU6OkNsaWVudE9yaWdpbiBTdG9yYWdlQXJlYU1hcDo6Y2xpZW50
T3JpZ2luKCkgY29uc3QKK3sKKyAgICBhdXRvIG9yaWdpbkRhdGEgPSBtX3NlY3VyaXR5T3JpZ2lu
LT5kYXRhKCk7CisgICAgYXV0byB0b3BPcmlnaW5EYXRhID0gbV9uYW1lc3BhY2UudG9wTGV2ZWxP
cmlnaW4oKSA/IG1fbmFtZXNwYWNlLnRvcExldmVsT3JpZ2luKCktPmRhdGEoKSA6IG9yaWdpbkRh
dGE7CisgICAgcmV0dXJuIFdlYkNvcmU6OkNsaWVudE9yaWdpbiB7IHRvcE9yaWdpbkRhdGEsIG9y
aWdpbkRhdGEgfTsKK30KKwordm9pZCBTdG9yYWdlQXJlYU1hcDo6c2VuZENvbm5lY3RNZXNzYWdl
KFNlbmRNb2RlIG1vZGUpCit7CisgICAgbV9pc1dhaXRpbmdGb3JDb25uZWN0UmVwbHkgPSB0cnVl
OworICAgIGF1dG8mIGlwY0Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CisgICAgYXV0byBuYW1l
c3BhY2VJZGVudGlmaWVyID0gbV9uYW1lc3BhY2Uuc3RvcmFnZU5hbWVzcGFjZUlEKCk7CisgICAg
YXV0byBvcmlnaW4gPSBjbGllbnRPcmlnaW4oKTsKKyAgICBhdXRvIHR5cGUgPSBjb21wdXRlU3Rv
cmFnZVR5cGUoKTsKKwogICAgIGlmIChtb2RlID09IFNlbmRNb2RlOjpTeW5jKSB7CiAgICAgICAg
IFN0b3JhZ2VBcmVhSWRlbnRpZmllciByZW1vdGVBcmVhSWRlbnRpZmllcjsKICAgICAgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gaXRlbXM7CkBAIC0zNDQsMTIgKzM1Nyw5IEBAIHZvaWQgU3Rv
cmFnZUFyZWFNYXA6OnNlbmRDb25uZWN0TWVzc2FnZShTZW5kTW9kZSBtb2RlKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrQ29ubmVjdGlvbiA9IFdlYWtQdHIgeyBpcGND
b25uZWN0aW9uIH1dKGF1dG8gcmVtb3RlQXJlYUlkZW50aWZpZXIsIGF1dG8gaXRlbXMsIGF1dG8g
bWVzc2FnZUlkZW50aWZpZXIpIG11dGFibGUgeworICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIg
PSBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0byByZW1vdGVBcmVhSWRl
bnRpZmllciwgYXV0byBpdGVtcywgYXV0byBtZXNzYWdlSWRlbnRpZmllcikgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybiBkaWRDb25uZWN0KHJlbW90
ZUFyZWFJZGVudGlmaWVyLCBXVEZNb3ZlKGl0ZW1zKSwgbWVzc2FnZUlkZW50aWZpZXIpOwotCi0g
ICAgICAgIGlmICh3ZWFrQ29ubmVjdGlvbiAmJiByZW1vdGVBcmVhSWRlbnRpZmllci5pc1ZhbGlk
KCkpCi0gICAgICAgICAgICB3ZWFrQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1N0
b3JhZ2VNYW5hZ2VyOjpEaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKHJlbW90ZUFyZWFJZGVudGlm
aWVyKSwgMCk7CiAgICAgfTsKIAogICAgIGlwY0Nvbm5lY3Rpb24uc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNvbm5lY3RUb1N0b3JhZ2VBcmVhKHR5
cGUsIG1faWRlbnRpZmllciwgbmFtZXNwYWNlSWRlbnRpZmllciwgb3JpZ2luKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMzczLDYgKzM4Myw3IEBAIHZvaWQgU3RvcmFnZUFyZWFN
YXA6OmNvbm5lY3QoKQogCiB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaWRDb25uZWN0KFN0b3JhZ2VB
cmVhSWRlbnRpZmllciByZW1vdGVBcmVhSWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4mJiBpdGVtcywgdWludDY0X3QgbWVzc2FnZUlkZW50aWZpZXIpCiB7CisgICAgbV9pc1dhaXRp
bmdGb3JDb25uZWN0UmVwbHkgPSBmYWxzZTsKICAgICBpZiAobWVzc2FnZUlkZW50aWZpZXIgPCBt
X2xhc3RIYW5kbGVkTWVzc2FnZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzg3
LDggKzM5OCwxMyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaWRDb25uZWN0KFN0b3JhZ2VBcmVh
SWRlbnRpZmllciByZW1vdGVBcmVhSWRlbnRpZmllciwgSGFzaAogCiB2b2lkIFN0b3JhZ2VBcmVh
TWFwOjpkaXNjb25uZWN0KCkKIHsKLSAgICBpZiAoIW1fcmVtb3RlQXJlYUlkZW50aWZpZXIpCisg
ICAgaWYgKCFtX3JlbW90ZUFyZWFJZGVudGlmaWVyKSB7CisgICAgICAgIGF1dG8qIG5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIGlmIChtX2lzV2FpdGluZ0ZvckNvbm5lY3RS
ZXBseSAmJiBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgICAgICBuZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkNhbmNlbENvbm5lY3RUb1N0b3JhZ2VBcmVhKGNvbXB1dGVTdG9yYWdlVHlwZSgp
LCBtX25hbWVzcGFjZS5zdG9yYWdlTmFtZXNwYWNlSUQoKSwgY2xpZW50T3JpZ2luKCkpLCAwKTsK
KwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgcmVzZXRWYWx1ZXMoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgK
aW5kZXggMjRkNzBlOGExMDAzNjY3ZDk1ZTNiNmEyZjI4Y2ViNzIxNmY2M2RiNi4uMTMwZWQyMzg0
MjFlYjk3OWU2NWMxMjBiNjQ2ZTdkNTczYmE1Y2MwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCkBAIC00MCw2ICs0MCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFN0
b3JhZ2VNYXA7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTg1LDYgKzg2LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVzZXRWYWx1ZXMoKTsKICAg
ICBXZWJDb3JlOjpTdG9yYWdlTWFwJiBlbnN1cmVNYXAoKTsKKyAgICBXZWJDb3JlOjpTdG9yYWdl
VHlwZSBjb21wdXRlU3RvcmFnZVR5cGUoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpDbGllbnRPcmln
aW4gY2xpZW50T3JpZ2luKCkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZEFwcGx5Q2hhbmdlRm9y
S2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKICAgICB2b2lkIGFwcGx5Q2hhbmdlKGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlKTsKQEAgLTEwOSw2ICsxMTIsNyBA
QCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIG1fdHlwZTsKICAgICB1aW50NjRf
dCBtX3VzZUNvdW50IHsgMCB9OwogICAgIGJvb2wgbV9oYXNQZW5kaW5nQ2xlYXIgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JDb25uZWN0UmVwbHkgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>