<?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>231466</bug_id>
          
          <creation_ts>2021-10-08 17:29:27 -0700</creation_ts>
          <short_desc>Implement FileSystemSyncAccessHandle read() and write()</short_desc>
          <delta_ts>2021-10-13 18:39:40 -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>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>
          
          <blocked>231706</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802322</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-08 17:29:27 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802323</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-08 17:29:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/84050394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802327</commentid>
    <comment_count>2</comment_count>
      <attachid>440690</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-08 17:33:47 -0700</bug_when>
    <thetext>Created attachment 440690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802487</commentid>
    <comment_count>3</comment_count>
      <attachid>440737</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 15:15:19 -0700</bug_when>
    <thetext>Created attachment 440737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802490</commentid>
    <comment_count>4</comment_count>
      <attachid>440738</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 15:33:36 -0700</bug_when>
    <thetext>Created attachment 440738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802509</commentid>
    <comment_count>5</comment_count>
      <attachid>440750</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 20:29:05 -0700</bug_when>
    <thetext>Created attachment 440750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802511</commentid>
    <comment_count>6</comment_count>
      <attachid>440752</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 20:50:15 -0700</bug_when>
    <thetext>Created attachment 440752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802512</commentid>
    <comment_count>7</comment_count>
      <attachid>440753</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 21:10:42 -0700</bug_when>
    <thetext>Created attachment 440753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802515</commentid>
    <comment_count>8</comment_count>
      <attachid>440754</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 21:29:27 -0700</bug_when>
    <thetext>Created attachment 440754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802522</commentid>
    <comment_count>9</comment_count>
      <attachid>440756</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 21:42:35 -0700</bug_when>
    <thetext>Created attachment 440756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802524</commentid>
    <comment_count>10</comment_count>
      <attachid>440757</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 22:15:22 -0700</bug_when>
    <thetext>Created attachment 440757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802525</commentid>
    <comment_count>11</comment_count>
      <attachid>440758</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 22:27:31 -0700</bug_when>
    <thetext>Created attachment 440758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802526</commentid>
    <comment_count>12</comment_count>
      <attachid>440759</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 22:42:38 -0700</bug_when>
    <thetext>Created attachment 440759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802527</commentid>
    <comment_count>13</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-10 23:43:43 -0700</bug_when>
    <thetext>The newly added test should pass if bots have internal SDK; I am not sure whether I should update -expected.txt file or mark test as [Pass Failure] in TestExpectations. @Youenn, any advice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802541</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-11 02:02:51 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #13)
&gt; The newly added test should pass if bots have internal SDK; I am not sure
&gt; whether I should update -expected.txt file or mark test as [Pass Failure] in
&gt; TestExpectations. @Youenn, any advice?

Can we forward declare the functions we are using from internal SDK if we do not have it?
As an example, you can look at NSWSPI.h: it is including a private header if we have internal SDK and is declaring the functions webkit is using otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802550</commentid>
    <comment_count>15</comment_count>
      <attachid>440759</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-11 02:12:57 -0700</bug_when>
    <thetext>Comment on attachment 440759
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        Reviewed by NOBODY (OOPS!).

Worth beefing up the change log to explain what the model is (transfer file handle, and do operations in WebProcess?).

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:211
&gt; +        return FileSystemStorageError::Unknown;

Do we need getSize, flush and truncate if they will be implemented directly in WebProcess using the shared handle?

&gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:38
&gt; +class SharedFileHandle {

This might be a class other platforms might want to support.
It might be worth moving most of the implementation in its own source file.
That will also reduce the number of includes here.

&gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:49
&gt; +    SharedFileHandle() = default;

Do we need this one?

&gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:56
&gt; +        fileport_makeport(m_handle, &amp;fileport);

Should we check fileport_makeport return value?

&gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:68
&gt; +        return SharedFileHandle::create(fileport_makefd(machPort.port()));

Can fileport_makefd return an invalid value?
If so, should we return std::nullopt?

&gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:75
&gt; +        : m_handle(handle)

explicit

&gt; LayoutTests/ChangeLog:9
&gt; +        * storage/filesystemaccess/resources/sync-access-handle-read-write.js: Added.

Can we add an API test that is doing the following:
- Have two web processes A &amp; B.
- Get a sync file handle in one process A, open it, write some data onto it.
- Crash process A so that close is not called from process A
- Validate that B can get access to the sync file somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802673</commentid>
    <comment_count>16</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 10:06:40 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #14)
&gt; (In reply to Sihui Liu from comment #13)
&gt; &gt; The newly added test should pass if bots have internal SDK; I am not sure
&gt; &gt; whether I should update -expected.txt file or mark test as [Pass Failure] in
&gt; &gt; TestExpectations. @Youenn, any advice?
&gt; 
&gt; Can we forward declare the functions we are using from internal SDK if we do
&gt; not have it?
&gt; As an example, you can look at NSWSPI.h: it is including a private header if
&gt; we have internal SDK and is declaring the functions webkit is using
&gt; otherwise.

Sure, will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802877</commentid>
    <comment_count>17</comment_count>
      <attachid>440854</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 16:34:02 -0700</bug_when>
    <thetext>Created attachment 440854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802935</commentid>
    <comment_count>18</comment_count>
      <attachid>440873</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 19:54:28 -0700</bug_when>
    <thetext>Created attachment 440873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802945</commentid>
    <comment_count>19</comment_count>
      <attachid>440876</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 20:16:46 -0700</bug_when>
    <thetext>Created attachment 440876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802952</commentid>
    <comment_count>20</comment_count>
      <attachid>440880</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 20:56:11 -0700</bug_when>
    <thetext>Created attachment 440880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802975</commentid>
    <comment_count>21</comment_count>
      <attachid>440889</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 22:04:34 -0700</bug_when>
    <thetext>Created attachment 440889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802995</commentid>
    <comment_count>22</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 23:17:51 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #15)
&gt; Comment on attachment 440759 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=440759&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:7
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; Worth beefing up the change log to explain what the model is (transfer file
&gt; handle, and do operations in WebProcess?).

Sure.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:211
&gt; &gt; +        return FileSystemStorageError::Unknown;
&gt; 
&gt; Do we need getSize, flush and truncate if they will be implemented directly
&gt; in WebProcess using the shared handle?

They will not be implemented in web process. They are async according to the current proposal. (In our current implementation, the sync read and write will be blocked if there is unfinished async operation.)

&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:38
&gt; &gt; +class SharedFileHandle {
&gt; 
&gt; This might be a class other platforms might want to support.
&gt; It might be worth moving most of the implementation in its own source file.
&gt; That will also reduce the number of includes here.
Sure.

&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:49
&gt; &gt; +    SharedFileHandle() = default;
&gt; 
&gt; Do we need this one?
It seems to be needed by decoder.

&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:56
&gt; &gt; +        fileport_makeport(m_handle, &amp;fileport);
&gt; 
&gt; Should we check fileport_makeport return value?

Will add a check.

&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:68
&gt; &gt; +        return SharedFileHandle::create(fileport_makefd(machPort.port()));
&gt; 
&gt; Can fileport_makefd return an invalid value?
&gt; If so, should we return std::nullopt?

I think if we fail at fileport_makefd, we may just return an invalid handle (because the ipc message is decoded correctly). Will add a check.

&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:75
&gt; &gt; +        : m_handle(handle)
&gt; 
&gt; explicit

Will add.

&gt; 
&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        * storage/filesystemaccess/resources/sync-access-handle-read-write.js: Added.
&gt; 
&gt; Can we add an API test that is doing the following:
&gt; - Have two web processes A &amp; B.
&gt; - Get a sync file handle in one process A, open it, write some data onto it.
&gt; - Crash process A so that close is not called from process A
&gt; - Validate that B can get access to the sync file somehow.

Will add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803004</commentid>
    <comment_count>23</comment_count>
      <attachid>440898</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-11 23:36:14 -0700</bug_when>
    <thetext>Created attachment 440898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803023</commentid>
    <comment_count>24</comment_count>
      <attachid>440898</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-12 01:18:45 -0700</bug_when>
    <thetext>Comment on attachment 440898
Patch

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

&gt; Source/WTF/wtf/PlatformHave.h:1071
&gt; +#endif

Not needed anymore?

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:110
&gt; +{

Should we ASSERT(!isMainThread());

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:118
&gt; +        return Exception { NotAllowedError };

Why do we use an optional but mark it as not allowed if not available?
Can we change buffer to just a BufferSource&amp;?
If not, a test would be good.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:122
&gt; +        return Exception { InvalidStateError, &quot;Failed to read at offset&quot;_s };

Do we have tests for this case?

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:129
&gt; +    });

If we change buffer to be a BufferSource, maybe can we add a mutableData() getter instead.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:131
&gt; +    auto size = source.length();

size not really needed.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:139
&gt; +ExceptionOr&lt;unsigned long long&gt; FileSystemSyncAccessHandle::write(std::optional&lt;BufferSource::VariantType&gt; buffer, FileSystemSyncAccessHandle::FilesystemReadWriteOptions options)

I would guess a const BufferSource&amp; would be better here if possible.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:141
&gt; +    if (m_file == FileSystem::invalidPlatformFileHandle || m_isClosed)

Should we ASSERT(!isMainThread());

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:145
&gt; +        return Exception { InvalidStateError, &quot;Access handle has unfinished operation&quot;_s };

Do we have a test for this case?

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:148
&gt; +        return Exception { NotAllowedError };

Ditto.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:152
&gt; +        return Exception { InvalidStateError, &quot;Failed to write at offset&quot;_s };

Do we have a test for this case?

&gt; Source/WebCore/PAL/pal/spi/cocoa/FilePortSPI.h:28
&gt; +#if HAVE(FILEPORT)

I would hope #if USE(APPLE_INTERNAL_SDK) is sufficient?

&gt; Source/WebCore/PAL/pal/spi/cocoa/FilePortSPI.h:30
&gt; +extern &quot;C&quot; {

Is that needed, I would hope fileport.h to do it for us?

&gt; Source/WebKit/Platform/IPC/SharedFileHandle.cpp:33
&gt; +#if HAVE(FILEPORT)

I am not sure we need this one here, otherwise EWS bots will not be able to run tests.
If needed, I would change it to !PLATFORM(COCOA)

&gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:39
&gt; +    SharedFileHandle() = default;

I would add an empty line between constructor and getter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803210</commentid>
    <comment_count>25</comment_count>
      <attachid>440898</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-12 10:28:19 -0700</bug_when>
    <thetext>Comment on attachment 440898
Patch

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

&gt;&gt; Source/WTF/wtf/PlatformHave.h:1071
&gt;&gt; +#endif
&gt; 
&gt; Not needed anymore?

Do you mean replace HAVE(FILEPORT) with USE(APPLE_INTERNAL_SDK)?

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:110
&gt;&gt; +{
&gt; 
&gt; Should we ASSERT(!isMainThread());

Sure.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:118
&gt;&gt; +        return Exception { NotAllowedError };
&gt; 
&gt; Why do we use an optional but mark it as not allowed if not available?
&gt; Can we change buffer to just a BufferSource&amp;?
&gt; If not, a test would be good.

Will change to just BufferSource.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:122
&gt;&gt; +        return Exception { InvalidStateError, &quot;Failed to read at offset&quot;_s };
&gt; 
&gt; Do we have tests for this case?

Will add.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:129
&gt;&gt; +    });
&gt; 
&gt; If we change buffer to be a BufferSource, maybe can we add a mutableData() getter instead.

Sure.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:131
&gt;&gt; +    auto size = source.length();
&gt; 
&gt; size not really needed.

It&apos;s used in FileSystem::readFromFile. Or do you mean to replace it with something?

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:139
&gt;&gt; +ExceptionOr&lt;unsigned long long&gt; FileSystemSyncAccessHandle::write(std::optional&lt;BufferSource::VariantType&gt; buffer, FileSystemSyncAccessHandle::FilesystemReadWriteOptions options)
&gt; 
&gt; I would guess a const BufferSource&amp; would be better here if possible.

Sure.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:141
&gt;&gt; +    if (m_file == FileSystem::invalidPlatformFileHandle || m_isClosed)
&gt; 
&gt; Should we ASSERT(!isMainThread());

Sure.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:145
&gt;&gt; +        return Exception { InvalidStateError, &quot;Access handle has unfinished operation&quot;_s };
&gt; 
&gt; Do we have a test for this case?

Yes, last test in LayoutTests/storage/filesystemaccess/resources/sync-access-handle-read-write.js

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:148
&gt;&gt; +        return Exception { NotAllowedError };
&gt; 
&gt; Ditto.

Will remove.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:152
&gt;&gt; +        return Exception { InvalidStateError, &quot;Failed to write at offset&quot;_s };
&gt; 
&gt; Do we have a test for this case?

Will add.

&gt;&gt; Source/WebCore/PAL/pal/spi/cocoa/FilePortSPI.h:28
&gt;&gt; +#if HAVE(FILEPORT)
&gt; 
&gt; I would hope #if USE(APPLE_INTERNAL_SDK) is sufficient?

Will change.

&gt;&gt; Source/WebCore/PAL/pal/spi/cocoa/FilePortSPI.h:30
&gt;&gt; +extern &quot;C&quot; {
&gt; 
&gt; Is that needed, I would hope fileport.h to do it for us?

This is not needed.

&gt;&gt; Source/WebKit/Platform/IPC/SharedFileHandle.cpp:33
&gt;&gt; +#if HAVE(FILEPORT)
&gt; 
&gt; I am not sure we need this one here, otherwise EWS bots will not be able to run tests.
&gt; If needed, I would change it to !PLATFORM(COCOA)

Will change.

&gt;&gt; Source/WebKit/Platform/IPC/SharedFileHandle.h:39
&gt;&gt; +    SharedFileHandle() = default;
&gt; 
&gt; I would add an empty line between constructor and getter.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803212</commentid>
    <comment_count>26</comment_count>
      <attachid>440954</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-12 10:30:07 -0700</bug_when>
    <thetext>Created attachment 440954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803241</commentid>
    <comment_count>27</comment_count>
      <attachid>440954</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-12 11:09:46 -0700</bug_when>
    <thetext>Comment on attachment 440954
Patch

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

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:58
&gt; +    m_source-&gt;truncate(m_identifier, size, [weakThis = makeWeakPtr(*this), promise = WTFMove(promise)](auto result) mutable {

Since we have a file descriptor, we could well do truncate in WebProcess as well?
This would be faster and easier to do.
Ditto for getSize and flush?

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:226
&gt; +                crossThreadResult = crossThreadCopy(result.exception());

Can we do result = crossThreadCopy(result) in the lambda?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:1548
&gt; +}

Does not seem needed in this patch, if we need it let&apos;s split it in its own patch.

&gt; LayoutTests/storage/filesystemaccess/resources/sync-access-handle-read-write.js:18
&gt; +function arrayBufferToString(buffer)

You can use TextDecoder instead.

&gt; LayoutTests/storage/filesystemaccess/resources/sync-access-handle-read-write.js:23
&gt; +function stringToArrayBuffer(string)

You can use TextEncoder instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803264</commentid>
    <comment_count>28</comment_count>
      <attachid>440954</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-12 11:36:06 -0700</bug_when>
    <thetext>Comment on attachment 440954
Patch

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

&gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:58
&gt;&gt; +    m_source-&gt;truncate(m_identifier, size, [weakThis = makeWeakPtr(*this), promise = WTFMove(promise)](auto result) mutable {
&gt; 
&gt; Since we have a file descriptor, we could well do truncate in WebProcess as well?
&gt; This would be faster and easier to do.
&gt; Ditto for getSize and flush?

Yes, I think we will be able to flush, truncate and get size with file descriptor. These operations seems to be async (returning a Promise) according to the proposal, so I tend to keep how they are now in case there&apos;s spec change.

&gt;&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:226
&gt;&gt; +                crossThreadResult = crossThreadCopy(result.exception());
&gt; 
&gt; Can we do result = crossThreadCopy(result) in the lambda?

I am not sure how to make a cross-thread copy of PlatformFileHandle of other platforms: e.g. GFileIOStream*. (Though they will not actually be used here, we need to provide a copy function if we do crossThreadCopy(result)?)

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm:1548
&gt;&gt; +}
&gt; 
&gt; Does not seem needed in this patch, if we need it let&apos;s split it in its own patch.

This is used in the API test.

&gt;&gt; LayoutTests/storage/filesystemaccess/resources/sync-access-handle-read-write.js:18
&gt;&gt; +function arrayBufferToString(buffer)
&gt; 
&gt; You can use TextDecoder instead.

Sure, will change.

&gt;&gt; LayoutTests/storage/filesystemaccess/resources/sync-access-handle-read-write.js:23
&gt;&gt; +function stringToArrayBuffer(string)
&gt; 
&gt; You can use TextEncoder instead.

Sure, will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803274</commentid>
    <comment_count>29</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-12 11:46:31 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #28)
&gt; Comment on attachment 440954 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=440954&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:58
&gt; &gt;&gt; +    m_source-&gt;truncate(m_identifier, size, [weakThis = makeWeakPtr(*this), promise = WTFMove(promise)](auto result) mutable {
&gt; &gt; 
&gt; &gt; Since we have a file descriptor, we could well do truncate in WebProcess as well?
&gt; &gt; This would be faster and easier to do.
&gt; &gt; Ditto for getSize and flush?
&gt; 
&gt; Yes, I think we will be able to flush, truncate and get size with file
&gt; descriptor. These operations seems to be async (returning a Promise)
&gt; according to the proposal, so I tend to keep how they are now in case
&gt; there&apos;s spec change.

It seems better to just do all file operations of a given descriptor in the same process.
We can execute these operations in a separate WorkQueue if we fear of blocking the worker thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803359</commentid>
    <comment_count>30</comment_count>
      <attachid>440976</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-12 14:02:55 -0700</bug_when>
    <thetext>Created attachment 440976
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803459</commentid>
    <comment_count>31</comment_count>
      <attachid>440997</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-12 15:16:34 -0700</bug_when>
    <thetext>Created attachment 440997
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803541</commentid>
    <comment_count>32</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-12 16:36:03 -0700</bug_when>
    <thetext>Committed r284059 (242888@main): &lt;https://commits.webkit.org/242888@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440997.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440690</attachid>
            <date>2021-10-08 17:33:47 -0700</date>
            <delta_ts>2021-10-10 15:15:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211008173346.patch</filename>
            <type>text/plain</type>
            <size>47383</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZkOGI3YjU4NjJhOWJm
NDdhYjQzNDlkZTg5MWNiZWJkZGNkYzNmMS4uZTkxN2ZhNzhkN2I1NTk3YmZlZGY2NThjODk1Mzhh
Njg2OTliMzc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTEwLTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1
bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6Omdl
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZs
dXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgor
ICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMDcg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIENhc2NhZGUgbGF5
ZXIgc3R5bGVzIHNob3VsZCBiZSBsb3dlciBwcmlvcml0eSB0aGFuIHVubGF5ZXJlZCBzdHlsZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjg0MzYwMDdlOGI1ZGI3MWRlZGVlNTYyYTkyZTcwM2NmMzBmZTcyZC4uZjVh
M2U4N2E4ZmYxMzQ2ZDIwMjYwNDIxZWU3YTRkZTZiZWFhMDc4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMiBAQAorMjAyMS0xMC0wOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3
cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaDogQWRkZWQuCisgICAg
ICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU6OmhhbmRsZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OlNoYXJlZEZpbGVIYW5kbGUpOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiLmluOgorCiAyMDIxLTEwLTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCB0aGUgYWJpbGl0eSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0byBt
dWx0aXBsZSByZWNlaXZlciB0eXBlcyBpbiBJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZi
NzM0NGJhNDNiNTg3MzMxNjcuLmIxMDk0ZTlhNTRhMWRjOWMyNTQ4MDRiNjY0OGJmY2MyOTE0ODUw
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBA
IHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKSk7CiAKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkp
OworICAgICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3Jl
YXRlKHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5z
ZWNvbmQpKTsKICAgICB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6
ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkK
K3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQp
IG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAg
IH0pOworICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjp0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgY29ubmVjdGlvbigpLnRydW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRp
Zmllciwgc2l6ZSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7
CisgICAgY29ubmVjdGlvbigpLnRydW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgc2l6ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlOjpmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIGNvbm5lY3Rpb24oKS5mbHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAg
IGNvbm5lY3Rpb24oKS5mbHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4
IGFmY2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQuLmEwYmNlNTkwNjFmZWY0
NzI0MDY2NDViMTNmNmFlNzkxMGM1NWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
CkBAIC00MSw5ICs0MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4+JiYpOwotICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYm
KTsKLSAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsK
LSAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dW5zaWduZWQgbG9uZyBsb25nPiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lk
IGZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVj
NjRhMzczNWRhNzguLjY4M2I4OTNmODBhODY0NDAzYjVhNTczZDQ0OTg5ZTgwNjUzZjZmMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQz
LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFu
ZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyPiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAg
IHVzaW5nIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAg
ICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+Owog
ICAgIHVzaW5nIEludGVnZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8dWludDY0X3Q+JiYpPjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5jcHAKaW5kZXggZmFkNGI5YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4u
NDg5M2NmZTQyMDcxNWY5ZGVhYTU2M2JkZTQyNzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJj
ZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpj
cmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRs
ZSBmaWxlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQog
Ci1GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMs
MTcgKzU0LDM1IEBAIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUoKQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0
ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZN
b3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291
cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGlu
Z09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1
bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0
U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQog
ewotICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7
CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZSht
X2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBX
VEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1f
c291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJh
dGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsK
KyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGlu
Z09wZXJhdGlvbkNvdW50Kys7CiAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlm
ICh3ZWFrVGhpcykgeworICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNv
dW50LS07CiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0
ICsxMDYsNTkgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQog
ICAgIG1faXNDbG9zZWQgPSB0cnVlOwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxv
bmc+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVy
U291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAo
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9z
IH07CisgICAgICAgIAorICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vl
a0ZpbGUobV9maWxlLCBvcHRpb25zLmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVn
aW5uaW5nKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKwor
ICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZk
YXRhXSAoUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAg
ICBkYXRhID0gYnVmZmVyVmlldy0+ZGF0YSgpOworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6
OkFycmF5QnVmZmVyPiYgYnVmZmVyKSB7CisgICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsK
KyAgICB9KTsKKyAgICBCdWZmZXJTb3VyY2Ugc291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9Owor
ICAgIGF1dG8gc2l6ZSA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVt
OjpyZWFkRnJvbUZpbGUobV9maWxlLCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0x
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQg
dG8gcmVhZCBmcm9tIGZpbGUiX3MgfTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2Vw
dGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6Ondy
aXRlKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9u
cykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9
IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6Rmls
ZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0
IG9mZnNldCJfcyB9OworCisgICAgQnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUo
KmJ1ZmZlcik7CisgICAgYXV0byogZGF0YSA9IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0
byBzaXplID0gYnVmZmVyU291cmNlLmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06
OndyaXRlVG9GaWxlKG1fZmlsZSwgZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRv
IHdyaXRlIHRvIGZpbGUiX3MgfTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5k
ZXggMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uOGIzNmJjMjIzOTA3
ZWViNTM1OTEwNDU5M2YzNTFiZjEzM2Q4NGY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmgKQEAgLTI1LDggKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5j
bHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlIDx3dGYvRmls
ZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQwLDcgKzQyLDcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
YXQ7CiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+
IGNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogICAgIH5GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSgpOwogCiAgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBsb25n
IGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtNDgsMTMgKzUwLDE3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsK
ICAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGRp
ZENsb3NlKCk7CisgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiByZWFkKHN0ZDo6
b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVP
cHRpb25zKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKHN0ZDo6
b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVP
cHRpb25zKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7
CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSk7CiAKICAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOwog
ICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAg
ICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX3BlbmRpbmdPcGVy
YXRpb25Db3VudCB7IDAgfTsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9m
aWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5pZGwKaW5kZXggMTEyMDY0YTZkZjYxMWM0MTIxZTI1YzcxMDJmMDMz
MDNjZTQ0OTRhYS4uNmVhNTQzOTdlZWFmMzkwZDZjMTc4NTE4ZjcyMTY1YWJhYWRhMzQwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCkBAIC0zMyw2ICszMyw4
IEBACiAgICAgUHJvbWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKICAgICBQcm9t
aXNlPHVuZGVmaW5lZD4gZmx1c2goKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsK
KyAgICB1bnNpZ25lZCBsb25nIGxvbmcgcmVhZChbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBi
dWZmZXIsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpOworICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyB3cml0ZShbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIsIEZpbGVz
eXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpOwogfTsKIAogZGljdGlvbmFyeSBGaWxlc3lz
dGVtUmVhZFdyaXRlT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGZhN2Y2NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgz
ZGEyNjk4NTY2YjcuLmRmMDkxMjMwZWMyY2Y4N2MxNWU3ZjRjOWMzZDIzZDdjNzdmNmE5MDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmRpZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWQKICAgICAgICAgY2Fs
bGJhY2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVy
IGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyPiYmIHJlc3VsdCkKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxs
YmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYgcmVz
dWx0KQogewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNr
cy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVz
dWx0KSk7CkBAIC0yMjEsNyArMjIxLDggQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUkKIAogICAg
IGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVm
IHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJl
YWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5U
aHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1v
dmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICAgICAgd29y
a2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIs
IHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUg
eworICAgICAgICAgICAgYXV0byBjb3B5UmVzdWx0ID0gcmVzdWx0Lmhhc0V4Y2VwdGlvbigpID8g
Y3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCkgOiByZXN1bHQ7CisgICAgICAgICAgICB3b3JrZXJUaHJl
YWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0
ID0gV1RGTW92ZShjb3B5UmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZp
ZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZh
dWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaAppbmRleCA5MGNiY2JmNjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0Li41
MjAxYjUwZWMzZmUxZWIzNGQ4ZmU1YWFjMjEzYjMxOTNlZGZlNDAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhj
ZXB0aW9uT3I8Ym9vbD4mJik7CiAgICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlm
aWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9p
ZCBkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmlu
Zz4+JiYpOwotICAgIHZvaWQgZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4m
JiByZXN1bHQpOworICAgIHZvaWQgZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZv
aWQgY29tcGxldGVWb2lkQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2
b2lkPiYmIHJlc3VsdCk7CiAgICAgdm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFj
a0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IGM4YTAxNDEzY2IzMzE5NjUzYThlYjdlNzJmMWVl
YzM0ODNjNmE2OWYuLmNlMzJlZjI3MTk0ZTUxMjk2NGZhNWIzYmFjZGE4YWExZjk3NDUxZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUuaCIKICNpbmNsdWRlIDx3
dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDAsNyArMTQxLDcgQEAgRXhw
ZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjpyZXNvbHYKICAgICByZXR1cm4gcmVzdFBhdGguc3BsaXQocGF0aFNlcGFy
YXRvcik7CiB9CiAKLUV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQorRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKIHsKICAgICBpZiAoIW1f
bWFuYWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd24pOwpAQCAtMTQ5LDkgKzE1MCwyMCBAQCBFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+CiAgICAgaWYgKCFhY3F1aXJlZCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CiAKKyAgICBtX2hhbmRsZSA9IEZp
bGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFk
V3JpdGUpOworICAgIGlmIChtX2hhbmRsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRvIGlwY0hhbmRsZSA9IElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6Y3JlYXRlKG1faGFuZGxlKTsKKyAgICBpZiAoIWlwY0hhbmRsZSkgeworICAgICAg
ICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5kbGUpOworICAgICAgICBtX2hhbmRsZSA9IEZp
bGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKyAgICB9CisKICAg
ICBBU1NFUlQoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSk7CiAgICAgbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlID0gV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
OjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hh
bmRsZTsKKyAgICByZXR1cm4gc3RkOjpwYWlyIHsgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSwg
V1RGTW92ZSgqaXBjSGFuZGxlKSB9OwogfQogCiBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIpCkBAIC0xNzcsMTIgKzE4OSw4IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdlYkNvcmU6CiAgICAgaWYg
KCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAh
PSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6VW5rbm93bjsKIAotICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZp
bGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7Ci0gICAgYXV0
byBjbG9zZUZpbGVTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3Rl
bTo6Y2xvc2VGaWxlKGhhbmRsZSk7Ci0gICAgfSk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IEZpbGVT
eXN0ZW06OnRydW5jYXRlRmlsZShoYW5kbGUsIHNpemUpOworICAgIEFTU0VSVChtX2hhbmRsZSAh
PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3Vs
dCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShtX2hhbmRsZSwgc2l6ZSk7CiAgICAgaWYgKCFy
ZXN1bHQpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwog
CkBAIC0xOTcsNyArMjA1LDExIEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFt
X2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VW5rbm93bjsKIAotICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJhdGlvbiBpcyBp
bXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICBBU1NFUlQobV9oYW5k
bGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgYXV0byBy
ZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVzaEZpbGUobV9oYW5kbGUpOworICAgIGlmICghcmVzdWx0
KQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwogICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTIwOSw2ICsyMjEsMTAgQEAgc3RkOjpvcHRp
b25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xv
c2UoV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAg
IHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCisgICAgQVNTRVJUKG1f
aGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZp
bGVTeXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworCiAgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9j
a0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hh
bmRsZSA9IHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBl
NDdlZDNhMTZlZTk1YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5MDE3Li5lMGJhMGNkNDA4MjRlMWNj
MTNiYjY3ZTdlODQ3ZWJkNDYyODA3NGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApA
QCAtMzAsNiArMzAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFj
ZSBJUEMgeworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjsKQEAgLTUwLDcgKzU0LDggQEAgcHVi
bGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVtb3ZlRW50
cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KTsKICAgICBFeHBl
Y3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzb2x2ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAKLSAgICBFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICB1c2luZyBBY2Nlc3NIYW5kbGVJ
bmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKKyAgICBFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJ
bmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiAg
ICAgRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldFNpemUoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKICAgICBzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSk7CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwpAQCAtNjUsNiArNzAsNyBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBtX3BhdGg7CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4gbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlOworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hh
bmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAzNjg2
MTc0MjgxODBkNzg0NmIyZDYyZjA2MGU5OWU1ZGM3YTdkZDYzLi42NTAxYThmZjNkNTNjYjE4Nzll
YmVhYzlmNTFjMjRkYWNmMDA5ZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAt
MjI2LDcgKzIyNiw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoaGFuZGxlLT5yZXNvbHZlKHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhw
ZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggYTgxODg1MWZmMTQ1Mzg2OGE3NGQxNzZmYjZjYjI4ZjIx
YWIzMjMxYi4uZjhhMmIwYjFmNTRmZmIzZWRhYjEzMmM4ZDNjYjE3YjY0MGMxYjA1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlOwor
fQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogfQpAQCAtNzAs
NyArNzQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29u
bmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBu
YW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVj
dGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVs
eSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmKTsKLSAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBh
aXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNo
YXJlZEZpbGVIYW5kbGU+OworICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAg
IHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPik+JiYpOwogICAgIHZvaWQgdHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChz
dGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBmbHVz
aEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDRmZWEyNzY1ZmQ5
MmE5ODA2MGNkMDQwMDYyYzVlOTQ1NWM4MTlmYzAuLjE3NzZlY2Q2MTlkYTEyNWQ3ZjBhNDcyY2Yw
YjBiYzBjYzAzNDA5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMzMsNyArMzMsNyBAQAogICAgIFJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKICAgICBSZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAKLSAgICBDcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
IC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIENy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT4sIFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEdldFNpemVGb3JBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDx1aW50NjRfdCwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgVHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IHVpbnQ2NF90IHNpemUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAo
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5
bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5k
bGUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NDJmNTMwZWY3ZjU0Yjc1ZmYxMDIwZmNhMDE5ZjNkNzJmZGE2ZDMyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5o
CkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
Ik1hY2hQb3J0LmgiCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvZmlsZXBvcnQu
aD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorCituYW1lc3BhY2UgSVBDIHsKKworY2xh
c3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUpCisgICAgeworI2lmIE9TKERBUldJTikKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZpbGVI
YW5kbGUgeyBoYW5kbGUgfTsKKyNlbHNlCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisj
ZW5kaWYKKyAgICB9CisKKyAgICBTaGFyZWRGaWxlSGFuZGxlKCkgPSBkZWZhdWx0OworICAgIEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUoKSB7IHJldHVybiBtX2hhbmRsZTsg
fQorCisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisjaWYg
T1MoREFSV0lOKQorICAgICAgICBtYWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0gTUFDSF9QT1JU
X05VTEw7CisgICAgICAgIGZpbGVwb3J0X21ha2Vwb3J0KG1faGFuZGxlLCAmZmlsZXBvcnQpOwor
ICAgICAgICBlbmNvZGVyIDw8IE1hY2hQb3J0KGZpbGVwb3J0LCBNQUNIX01TR19UWVBFX01PVkVf
U0VORCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRG
aWxlSGFuZGxlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisjaWYgT1MoREFSV0lO
KQorICAgICAgICBNYWNoUG9ydCBtYWNoUG9ydDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtYWNoUG9ydCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAK
KyAgICAgICAgcmV0dXJuIFNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQo
bWFjaFBvcnQucG9ydCgpKSk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9CisgICAgCitwcml2YXRlOgorICAgIFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisg
ICAgeworICAgIH0KKworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRs
ZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8g
bmFtZXNwYWNlIElQQworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQzY2M3MTFjNzQ3NDQ1MDQ0N2U3OWEwYjcxYjE2YzZiMmI0MThj
YTMuLjdiNDcxOGI5NjE1NWI4ZDhmNDMwMGEzZjBkZmUxYzE1NWE5M2ZhYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ3Miw2ICsx
NDcyLDcgQEAKIAkJOTMwODVEREYyNkU1QkNGMTAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzA4NURFMDI2RTVCQ0ZEMDAwRUM2QTcg
LyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNDI2RTFCQkJEMDAwRUM2QTcgLyogTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmggKi87IH07CiAJCTkzMDg1REUxMjZFNUJEMTMwMDBFQzZBNyAvKiBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdl
TWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMTIyQzg2MjcxMENDREYwMDFEODE5RiAvKiBT
aGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICov
OyB9OwogCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi87IH07
CiAJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTA3NTMy
NkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggKi87IH07CiAJCTkz
MUExQkUyMjZGODcwMDkwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFBMUJFMDI2Rjg1QzMy
MDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovOyB9OwpAQCAtNDk0NCw2ICs0
OTQ1LDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUyMjZGMDZBQjQw
MDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzQ1LDYgKzczNDcsNyBAQAogCQkJCTVDQzVEQjkxMjE0
ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJMkRDMTg1NUVEQkZC
ODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwICovLAogCQkJCTJE
QzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8s
CisJCQkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLywK
IAkJCQk3QjczMTIzNjI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5j
cHAgKi8sCiAJCQkJN0I3MzEyMzMyNUNDODUyMzAwM0IyNzk2IC8qIFN0cmVhbUNsaWVudENvbm5l
Y3Rpb24uaCAqLywKIAkJCQk3QjczMTIzNDI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ29ubmVj
dGlvbkJ1ZmZlci5jcHAgKi8sCkBAIC0xMjQ4NSw3ICsxMjQ4OCw3IEBACiAJCQkJNUMyOThEQTAx
QzNERjAyMTAwNDcwQUZFIC8qIFBlbmRpbmdEb3dubG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODMyRUQxOEMxRTJGRTE1NzAwNkJBNjRBIC8qIFBlckFjdGl2aXR5U3RhdGVDUFVVc2FnZVNhbXBs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBRkJEMzZGMjFFNTQ2RjgwMDVEQkFDQiAvKiBQZXJz
aXN0ZW5jeVV0aWxzLmggaW4gSGVhZGVycyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFNURFRkE2ODI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCBpbiBIZWFkZXJzICov
LAorCQkJCUU1REVGQTY4MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNFODVCMjAxQzg4RTY0QjAwNzBCRkNFIC8qIFBpbmdMb2FkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjVFMjAwNDE4RTc3MDUxMDAzRUMzRTUgLyogUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBMDQ5QjQxODBDQ0NEMzAwQUFGQTlF
IC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjYyOCw2ICsx
MjYzMSw3IEBACiAJCQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNv
cHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENB
M0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzMTIyQzg2MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5
NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YTIzOGFjYTRj
MzhkNjc1NTRhN2RhNjNlZTdkZmUyNTZjN2JjZDhiLi5kZjRlNzA0ZjkwMzBiOWY0M2ZhMWRhNDNk
NTBhYzcxN2RhMTU3NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcApAQCAtMTI2LDcgKzEyNiw4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCi0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1
bHRWYWx1ZSA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6
OnBhaXIgeyByZXN1bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kLmhhbmRsZSgpIH0p
OwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29t
LmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IuaW4KaW5kZXggZGYzNzljNjc4NjYzNDcyYWJmNGRlZjkyMWQ1ZWFl
ZGNlNDViNDE2MC4uMzZlMTYwZjc1MmY0ZTdkYzQ1YjA0MWI5ZDVkYzhiZWNmOTNjOTEyYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbgpAQCAtMTkzNSw2ICsxOTM1LDcgQEAKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19j
b25uZWN0X25vY2FuY2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX3NlbmR0b19ub2Nh
bmNlbCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19mc2dldHBhdGgpCisgICAgICAgIChz
eXNjYWxsLW51bWJlciBTWVNfZmlsZXBvcnRfbWFrZWZkKQogICAgICAgICAoc3lzY2FsbC1udW1i
ZXIgU1lTX2ZpbGVwb3J0X21ha2Vwb3J0KQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1
YXJkZWRfb3Blbl9ucCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX2Nsb3Nl
X25wKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGRhZjcyMDcyMjJiYjFhNGEyYWU5ZjVmN2NjNjk5ZjA3YzZlMjkzZTguLjc1
MjRiNGI5ODY0MDM1ZDk5MWI4YWRhNjc1YzFiN2E0ZGU3OWRmZGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAyMS0xMC0wOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0
ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0
NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAg
ICAgIChmaW5pc2hUZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAg
ICAoc3RyaW5nVG9BcnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFk
KToKKyAgICAgICAgKGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFj
Y2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTA3ICBBeXVtaSBL
b2ppbWEgIDxheXVtaV9rb2ppbWFAYXBwbGUuY29tPgogCiAgICAgICAgIFsgQmlnU3VyIEFTIEVX
UyBdIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcmVzcG9uc2Utd2l0
aC1ib2R5Lmh0bWwgaXMgZmxha3kgY3Jhc2hpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFk
LXdyaXRlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNl
cy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmU5ZTBjMmIw
OTAzYjMyOWU0YmRhMzBkOWFlZmNkNmNiMGQ3YTAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtcmVhZC13cml0ZS5qcwpAQCAtMCwwICsxLDk1IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsK
K30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMg
b2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIik7CisKK3ZhciBhY2Nlc3NIYW5kbGUsIGZp
bGVTaXplLCB3cml0ZUJ1ZmZlciwgd3JpdGVTaXplLCByZWFkQnVmZmVyLCByZWFkU2l6ZSwgcmVh
ZFRleHQsIHJlYWRFcnJvcjsKK3ZhciB0b3RhbFJlYWRTaXplID0gMCwgdG90YWxXcml0ZVNpemUg
PSAwOworCitmdW5jdGlvbiBmaW5pc2hUZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikgewor
ICAgICAgICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIGFycmF5QnVmZmVyVG9TdHJpbmcoYnVmZmVyKQoreworICAgIHJldHVybiBT
dHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50MTZBcnJheShidWZmZXIpKTsK
K30KKworZnVuY3Rpb24gc3RyaW5nVG9BcnJheUJ1ZmZlcihzdHJpbmcpCit7CisgICAgdmFyIGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihzdHJpbmcubGVuZ3RoKjIpOworICAgIHZhciBidWZmZXJW
aWV3ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBz
dHJpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgYnVmZmVyVmlld1tpXSA9IHN0cmluZy5jaGFy
Q29kZUF0KGkpOworICAgIH0KKyAgICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiB3cml0
ZShhY2Nlc3NIYW5kbGUsIG9mZnNldCwgdGV4dCkKK3sKKyAgICB3cml0ZUJ1ZmZlciA9IHN0cmlu
Z1RvQXJyYXlCdWZmZXIodGV4dCk7CisgICAgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxlLndyaXRl
KHdyaXRlQnVmZmVyLCB7ICJhdCIgOiBvZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoIndyaXRlU2l6
ZSIsICJ3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoIik7CisgICAgcmV0dXJuIHdyaXRlU2l6ZTsKK30K
KworZnVuY3Rpb24gcmVhZChhY2Nlc3NIYW5kbGUsIG9mZnNldCwgc2l6ZSkKK3sKKyAgICByZWFk
QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOworICAgIHJlYWRTaXplID0gYWNjZXNzSGFu
ZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiOiBvZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoInJl
YWRTaXplIiwgInJlYWRCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiBhcnJheUJ1ZmZl
clRvU3RyaW5nKHJlYWRCdWZmZXIpOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAg
IHRyeSB7CisgICAgICAgIHZhciByb290SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2Uu
Z2V0RGlyZWN0b3J5KCk7CisgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBmaWxlIGZvciB0aGlzIHRl
c3QuCisgICAgICAgIGF3YWl0IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNzLWhh
bmRsZS50eHQiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgdmFyIGZpbGVI
YW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhhbmRs
ZS50eHQiLCB7ICJjcmVhdGUiIDogdHJ1ZSAgfSk7CisgICAgICAgIGFjY2Vzc0hhbmRsZSA9IGF3
YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBmaWxlU2l6
ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxl
U2l6ZSIsICIwIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOiIp
OworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShhY2Nlc3NIYW5kbGUsIDAsICJUaGlz
IGlzIGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFu
ZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVhZFRleHQiLCAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS4iKTsKKyAgICAgICAgdG90YWxSZWFk
U2l6ZSArPSByZWFkVGV4dC5sZW5ndGggKiAyOworCisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9
IHdyaXRlKGFjY2Vzc0hhbmRsZSwgdG90YWxXcml0ZVNpemUsICJUaGlzIGlzIHNlY29uZCBzZW50
ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgdG90YWxSZWFk
U2l6ZSwgdG90YWxXcml0ZVNpemUgLSB0b3RhbFJlYWRTaXplKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKwor
ICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS5UaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICBkZWJ1Zygi
dGVzdCBmbHVzaCgpOiIpOworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAg
ICAgICAgZmlsZVNpemUgPSBhd2FpdCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBz
aG91bGRCZSgiZmlsZVNpemUiLCAidG90YWxXcml0ZVNpemUiKTsKKworICAgICAgICBkZWJ1Zygi
dGVzdCB0cnVuY2F0ZSgpOiIpOworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
NCk7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6
ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxl
U2l6ZSIsICI0Iik7CisKKyAgICAgICAgZGVidWcoInRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcg
b3BlcmF0aW9uOiIpOworICAgICAgICBldmFsQW5kTG9nKCJhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
MCkiKTsKKyAgICAgICAgcmVhZEJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig0KTsKKyAgICAgICAg
c2hvdWxkVGhyb3coImFjY2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgXCJhdFwiIDogMCB9
KSIpOworCisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5jbG9zZSgpOworICAgICAgICBmaW5p
c2hUZXN0KCk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJv
cik7CisgICAgfQorfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAx
Y2Q1OWI3MzhmMjE0NDA4ZThkNmEwYmM5YTc3MGI4MzEyMTAwNDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxl
LXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitbV29ya2Vy
XSBUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcg
d29ya2VyOiByZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKK1BBU1Mg
W1dvcmtlcl0gZmlsZVNpemUgaXMgMAorW1dvcmtlcl0gdGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6
CitQQVNTIFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNT
IFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHdy
aXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXpl
IGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhp
cyBpcyBzZWNvbmQgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFkQnVm
ZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgZmlyc3Qg
c2VudGVuY2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIgorW1dvcmtlcl0gdGVzdCBmbHVzaCgp
OgorUEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyB0b3RhbFdyaXRlU2l6ZQorW1dvcmtlcl0gdGVz
dCB0cnVuY2F0ZSgpOgorUEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyA0CitbV29ya2VyXSB0ZXN0
IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlvbjoKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZS50
cnVuY2F0ZSgwKQorUEFTUyBbV29ya2VyXSBhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7
ICJhdCIgOiAwIH0pIHRocmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogQWNjZXNzIGhh
bmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhh
bmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3MTZmNzFjODAzMGRjZDEw
YzY1ZGEzODM2ZTRkOTVjOGMyNjNlZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29y
a2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxl
LXJlYWQtd3JpdGUuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440737</attachid>
            <date>2021-10-10 15:15:19 -0700</date>
            <delta_ts>2021-10-10 15:36:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010151518.patch</filename>
            <type>text/plain</type>
            <size>46711</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUxZTA3YTU5MTdiNGYy
NjhkYTA4MzA0ZTIzMWM5NjEyODU5ODM4MC4uODM5MzkxNzU4Mzk5ZjNkN2E5YWExNmI3YTA3YzI3
ZWVlY2U0MTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTEwLTEwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1
bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6Omdl
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZs
dXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgor
ICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTAg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gRG8g
bm8gYmFpbCBvdXQgb24gYm91bmRhcnkgbmV1dHJhbCBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUy
NjBhZDU4MzNlZWJlMTgzZDQ4YjJkM2NlMmFmNTM2ODFlMjE3YjkuLjI1Mjk5MjNjODRlMjMyN2Nh
NGQwMjNmOGVmZGQzZTYxZjNlNWJmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEt
MTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpjbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAoSVBDOjpTaGFy
ZWRGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpo
YW5kbGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpT
aGFyZWRGaWxlSGFuZGxlOjpTaGFyZWRGaWxlSGFuZGxlKToKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKKwogMjAy
MS0xMC0xMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAg
ICAgICBbV1BFXSBFeHBvc2UgV0tUZXh0Q2hlY2tlclNldENvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZCBhbmQgdXNlIGl0IGZyb20gV0tUUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKaW5kZXggYTY5YTcyYzZiNjhhMmQ2Y2Q0NWM4ZmI3MzQ0YmE0M2I1ODczMzE2Ny4uYjEwOTRl
OWE1NGExZGM5YzI1NDgwNGI2NjQ4YmZjYzI5MTQ4NTBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuY3BwCkBAIC01NywyOSArNTcsMjQgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMK
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBw
cm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9t
aXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRo
aXMuZ2V0KCksIHJlc3VsdC5yZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFs
dWUgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIHByb21pc2Uuc2V0dGxl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwg
cmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQogCi12
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1bnNpZ25l
ZCBsb25nIGxvbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmdl
dFNpemUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lk
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5z
ZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNh
dGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNo
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmZsdXNo
KGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50
aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggYWZjZWExZjcwMTM3OTA4ZmUxYzc0MGUx
ZmZlZWIxZGU3ODE0NDE1NC4uYTBiY2U1OTA2MWZlZjQ3MjQwNjY0NWIxM2Y2YWU3OTEwYzU1ZDBj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+
PiYmKTsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7Ci0gICAgdm9p
ZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlz
ZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwotICAgIHZvaWQgdHJ1bmNhdGUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6
ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAgIHZvaWQgZmx1c2goRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7
CisgICAgdm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+JiYp
PiYmKTsKKyAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYpPiYmKTsKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggNGMwZjNiMDBmYTJkY2Y4NjY4NTNhZWI2MTQwZWM2NGEzNzM1ZGE3OC4uNjgzYjg5M2Y4MGE4
NjQ0MDNiNWE1NzNkNDQ5ODllODA2NTNmNmYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgU2FtZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPGJvb2w+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpPjsK
ICAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47Ci0gICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRsZUNh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6OnBhaXI8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGU+PiYmKT47CiAgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CiAgICAgdXNpbmcgSW50ZWdlckNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCBmYWQ0YjlhODRi
ODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRlNzZkMmFiLi40ODkzY2ZlNDIwNzE1ZjlkZWFhNTYzYmRl
NDI3NzBjZDQ2MmMzZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5jcHAKQEAgLTM0LDE0ICszNCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNy
ZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRs
ZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVy
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
c291cmNlLCBpZGVudGlmaWVyLCBmaWxlKSk7CiB9CiAKLUZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291
cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiAg
ICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAg
ICAsIG1fZmlsZShmaWxlKQogewogfQogCkBAIC01MywxNyArNTQsMzUgQEAgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpCiAKIHZvaWQgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXpl
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT50
cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVu
ZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmll
ciwgc2l6ZSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMp
CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJ
RExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmdldFNpemUo
bV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25D
b3VudCsrOworICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhp
cy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAg
IG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1f
cGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRpZmll
ciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAg
ICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQpAQCAtNzEsOSArOTAsMTIgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICBpZiAobV9p
c0Nsb3NlZCkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH0pOwogCisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKICAgICBt
X3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgaWYgKHdlYWtUaGlzKSB7CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKICAgICAgICAgICAgIHdlYWtU
aGlzLT5kaWRDbG9zZSgpOworICAgICAgICB9CiAKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RG
TW92ZShyZXN1bHQpKTsKICAgICB9KTsKQEAgLTg0LDQgKzEwNiw1OSBAQCB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSgpCiAgICAgbV9pc0Nsb3NlZCA9IHRydWU7CiB9
CiAKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OnJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiBidWZm
ZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyBvcHRpb25zKQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRm
b3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChtX3BlbmRpbmdPcGVyYXRpb25Db3VudCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhh
bmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24iX3MgfTsKKyAgICAgICAgCisgICAgaWYgKCFi
dWZmZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKwor
ICAgIGludCByZXN1bHQgPSBGaWxlU3lzdGVtOjpzZWVrRmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQs
IEZpbGVTeXN0ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdpbm5pbmcpOworICAgIGlmIChyZXN1bHQg
PT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZh
aWxlZCB0byByZWFkIGF0IG9mZnNldCJfcyB9OworCisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7
CisgICAgV1RGOjpzd2l0Y2hPbigqYnVmZmVyLCBbJmRhdGFdIChSZWZQdHI8SlNDOjpBcnJheUJ1
ZmZlclZpZXc+JiBidWZmZXJWaWV3KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXJWaWV3LT5kYXRh
KCk7CisgICAgfSwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+JiBidWZmZXIpIHsK
KyAgICAgICAgZGF0YSA9IGJ1ZmZlci0+ZGF0YSgpOworICAgIH0pOworICAgIEJ1ZmZlclNvdXJj
ZSBzb3VyY2UgeyBXVEZNb3ZlKCpidWZmZXIpIH07CisgICAgYXV0byBzaXplID0gc291cmNlLmxl
bmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnJlYWRGcm9tRmlsZShtX2ZpbGUsIGRh
dGEsIHNpemUpOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byByZWFkIGZyb20gZmlsZSJfcyB9Owor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJT
b3VyY2U6OlZhcmlhbnRUeXBlPiBidWZmZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpG
aWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKQoreworICAgIGlmIChtX2ZpbGUgPT0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xvc2VkKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmICht
X3BlbmRpbmdPcGVyYXRpb25Db3VudCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24iX3Mg
fTsKKworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxs
b3dlZEVycm9yIH07CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9m
aWxlLCBvcHRpb25zLmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsK
KyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gd3JpdGUgYXQgb2Zmc2V0Il9zIH07CisKKyAgICBCdWZm
ZXJTb3VyY2UgYnVmZmVyU291cmNlID0gV1RGTW92ZSgqYnVmZmVyKTsKKyAgICBhdXRvKiBkYXRh
ID0gYnVmZmVyU291cmNlLmRhdGEoKTsKKyAgICBhdXRvIHNpemUgPSBidWZmZXJTb3VyY2UubGVu
Z3RoKCk7CisgICAgcmVzdWx0ID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9maWxlLCBkYXRh
LCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gd3JpdGUgdG8gZmlsZSJfcyB9OworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCAyOWU0MTU3YjY1NDFiOTNlNmVhNWZl
MDIzN2YwY2YyMTVkMDNjM2JmLi44YjM2YmMyMjM5MDdlZWI1MzU5MTA0NTkzZjM1MWJmMTMzZDg0
ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMjUsOCAr
MjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNp
bmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJJRExUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsNyArNDIsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGlj
IFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMg
UmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAK
ICAgICB2b2lkIHRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CkBAIC00OCwxMyArNTAsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1
c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25P
cjx1bnNpZ25lZCBsb25nIGxvbmc+IHJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZh
cmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9y
PHVuc2lnbmVkIGxvbmcgbG9uZz4gd3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZh
cmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAg
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxG
aWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxz
ZSB9OworICAgIHVpbnQ2NF90IG1fcGVuZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRl
eCAxMTIwNjRhNmRmNjExYzQxMjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYz
OTBkNmMxNzg1MThmNzIxNjVhYmFhZGEzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTMzLDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVk
IGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBjbG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBy
ZWFkKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0
ZU9wdGlvbnMgb3B0aW9ucyk7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1No
YXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0
aW9ucyk7CiB9OwogCiBkaWN0aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5k
ZXggZmE3ZjY2OTM1NzE2MGI3OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNy4uZGYwOTEyMzBlYzJj
Zjg3YzE1ZTdmNGM5YzNkMjNkN2M3N2Y2YTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwog
fQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQor
dm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9u
T3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2Fs
bGJhY2sgPSBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVy
KSkKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsOCBA
QCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSQogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBt
YWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXJd
KCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNr
SWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5
KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNvcHlS
ZXN1bHQgPSByZXN1bHQuaGFzRXhjZXB0aW9uKCkgPyBjcm9zc1RocmVhZENvcHkocmVzdWx0KSA6
IHJlc3VsdDsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9y
TW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNvcHlSZXN1bHQpXSAo
YXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rp
b24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbigpKQogICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDkwY2JjYmY2NzNh
NTg2ZjI3NDQyZjk2NDAzNDdhOTI1MjY1MGNmYzQuLjUyMDFiNTBlYzNmZTFlYjM0ZDhmZTVhYWMy
MTNiMzE5M2VkZmU0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkSXNT
YW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAgICB2
b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2FsbGJhY2tJZGVu
dGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7Ci0gICAgdm9pZCBkaWRDcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7CisgICAgdm9pZCBkaWRD
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3Rk
OjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik7CiAgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhD
YWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKICAgICB2b2lk
IGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
dWludDY0X3Q+JiYgcmVzdWx0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5k
ZXggYzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uY2UzMmVmMjcxOTRl
NTEyOTY0ZmE1YjNiYWNkYThhYTFmOTc0NTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAi
U2hhcmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAg
IHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZSgpCitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDks
OSArMTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQog
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52
YWxpZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRo
LCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAg
IGF1dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUp
OworICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZSht
X2hhbmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd24pOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwot
ICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVybiBzdGQ6OnBh
aXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5kbGUpIH07CiB9
CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiArMTg5LDggQEAg
c3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRs
ZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
CiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAg
YXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZp
bGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3BlID0gbWFrZVNj
b3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFuZGxlKTsKLSAg
ICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKGhhbmRs
ZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUsMTEgQEAgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8
fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAg
ICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAgLy8g
RklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJmb3JtIGFjdHVh
bCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OmZsdXNo
RmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0K
IApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQogICAgIGlmICgh
bV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0g
YWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52
YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1faGFu
ZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRp
Zmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxsb3B0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFkMTQ5OTM4ZDE5
N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0NjI4MDc0YmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBTaGFyZWRGaWxl
SGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hh
bmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5k
bGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0aDsKICAgICBT
dHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CisgICAgRmls
ZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJkNjJmMDYwZTk5
ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2YwMDllOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJlc29sdmUodGFy
Z2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCBh
ODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBiMWY1NGZmYjNl
ZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0z
Myw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nh
cnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBy
ZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJl
c29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZl
Y3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAgIHZvaWQgY3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAg
dXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47CisgICAgdm9p
ZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9yQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhw
ZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCB0
cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJjNWU5NDU1Yzgx
OWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBACiAg
ICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJl
c29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
SVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVk
PHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMK
ICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAg
ICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MmY1MzBlZjdmNTRiNzVm
ZjEwMjBmY2EwMTlmM2Q3MmZkYTZkMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNpbmNsdWRlIDxm
Y250bC5oPgorI2luY2x1ZGUgPHN5cy9maWxlcG9ydC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lz
dGVtLmg+CisKK25hbWVzcGFjZSBJUEMgeworCitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBjcmVhdGUo
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKKyAgICB7CisjaWYgT1MoREFS
V0lOKQorICAgICAgICByZXR1cm4gU2hhcmVkRmlsZUhhbmRsZSB7IGhhbmRsZSB9OworI2Vsc2UK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorICAgIH0KKworICAgIFNoYXJl
ZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFuZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyNpZiBPUyhEQVJXSU4pCisgICAgICAgIG1hY2hf
cG9ydF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRf
bWFrZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBv
cnQoZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKwor
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQorICAgIHsKKyNpZiBPUyhEQVJXSU4pCisgICAgICAgIE1hY2hQb3J0IG1hY2hQ
b3J0OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1hY2hQb3J0KSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIAorICAgICAgICByZXR1cm4gU2hhcmVkRmls
ZUhhbmRsZTo6Y3JlYXRlKGZpbGVwb3J0X21ha2VmZChtYWNoUG9ydC5wb3J0KCkpKTsKKyNlbmRp
ZgorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKyAgICAKK3ByaXZhdGU6Cisg
ICAgU2hhcmVkRmlsZUhhbmRsZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxl
KQorICAgICAgICA6IG1faGFuZGxlKGhhbmRsZSkKKyAgICB7CisgICAgfQorCisgICAgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBs
YXRmb3JtRmlsZUhhbmRsZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgSVBDCisKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWQyMDQx
ZmE1MmRmMzZhOTE2NmZjNzI4MmUxOWI2NGI5MWQ0OWIzZS4uNzBlZTJkNGYxM2M3MmI0NmEyZWM2
ZGExOTA5OTBlNmZmYzcwYTU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDcyLDYgKzE0NzIsNyBAQAogCQk5MzA4NURERjI2RTVC
Q0YxMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRTI2RTJF
OTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87
IH07CiAJCTkzMDg1REUwMjZFNUJDRkQwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1REM0
MjZFMUJCQkQwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMw
ODVERTEyNkU1QkQxMzAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRDI2
RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsK
KwkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTIyQzg1MjcxMENDREUw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi87IH07CiAJCTkzMTJCQUQ1MjZGMzNDMjYw
MEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBG
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMxMkJBRDYyNkYzM0MyOTAwRkRE
RjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFBMDc1MzI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLzsgfTsKIAkJOTMxQTFCRTIyNkY4NzAwOTAwODFBN0U1IC8q
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMUExQkUwMjZGODVDMzIwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yLmggKi87IH07CkBAIC00OTQ1LDYgKzQ5NDYsNyBAQAogCQk5MzA4NURDQzI2RTJF
OTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDg1
RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRTI2RTJFOTAyMDAw
RUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzEyMkM4NTI3MTBDQ0RFMDAx
RDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTaGFyZWRGaWxlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
MUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAv
KiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTIyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcz
NDYsNiArNzM0OCw3IEBACiAJCQkJNUNDNURCOTEyMTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1
ZmZlckNvcHkuaCAqLywKIAkJCQkyREMxODU1RURCRkI4NTBCQTBCNkQwNkQgLyogU2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi8sCiAJCQkJMkRDMTg4MUFDQkNBQjVENTdDNUM2RUYwIC8q
IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCAqLywKKwkJCQk5MzEyMkM4NTI3MTBDQ0RFMDAx
RDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICovLAogCQkJCTdCNzMxMjM2MjVDQzg1MjQwMDNC
Mjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk3QjczMTIzMzI1Q0M4
NTIzMDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oICovLAogCQkJCTdCNzMxMjM0
MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcCAqLywKQEAgLTEy
NjMwLDYgKzEyNjMzLDcgQEAKIAkJCQlBMTgzNDk0MjI0RUY0Njc4MDBCREM5QTggLyogU2hhcmVk
QnVmZmVyQ29weS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGRjZFRjJBMzEzMEMxMzAxNzY3
IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QTZE
NkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRN
ZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMxRjdE
QUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDdh
MjM4YWNhNGMzOGQ2NzU1NGE3ZGE2M2VlN2RmZTI1NmM3YmNkOGIuLmRmNGU3MDRmOTAzMGI5ZjQz
ZmExZGE0M2Q1MGFjNzE3ZGExNTc1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xMjYsNyArMTI2LDggQEAgdm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUgKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOworICAgICAgICBh
dXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHN0ZDo6cGFpciB7IHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQuaGFu
ZGxlKCkgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCBkZjM3OWM2Nzg2NjM0NzJhYmY0ZGVm
OTIxZDVlYWVkY2U0NWI0MTYwLi4zNmUxNjBmNzUyZjRlN2RjNDViMDQxYjlkNWRjOGJlY2Y5M2M5
MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiLmluCkBAIC0xOTM1LDYgKzE5MzUsNyBAQAogICAgICAgICAoc3lzY2FsbC1udW1i
ZXIgU1lTX2Nvbm5lY3Rfbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2Vu
ZHRvX25vY2FuY2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAg
ICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNj
YWxsLW51bWJlciBTWVNfZmlsZXBvcnRfbWFrZXBvcnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZ3VhcmRlZF9vcGVuX25wKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJk
ZWRfY2xvc2VfbnApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2QxNDIwOWRmYjMyY2QzNzQ1Y2EwMmUwNmM0YTYyMjU3MTkz
ZWNiOC4uNGE1ZjljMzBiNTlkOTFjMTc3NjViZjJkZDE2MjhmMzI5ZTQ2NzM3NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIxIEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkg
YW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgorICAgICAgICAoYXJyYXlCdWZmZXJUb1N0cmluZyk6
CisgICAgICAgIChzdHJpbmdUb0FycmF5QnVmZmVyKToKKyAgICAgICAgKHdyaXRlKToKKyAgICAg
ICAgKHJlYWQpOgorICAgICAgICAoYXN5bmMgdGVzdCk6CisgICAgICAgICogc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMTAg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gRG8g
bm8gYmFpbCBvdXQgb24gYm91bmRhcnkgbmV1dHJhbCBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1yZWFkLXdyaXRlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNj
ZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MmU5ZTBjMmIwOTAzYjMyOWU0YmRhMzBkOWFlZmNkNmNiMGQ3YTAyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcwpAQCAtMCwwICsxLDk1IEBACitpZiAodGhpcy5p
bXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVu
dGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuIik7CisKK3ZhciBhY2Nl
c3NIYW5kbGUsIGZpbGVTaXplLCB3cml0ZUJ1ZmZlciwgd3JpdGVTaXplLCByZWFkQnVmZmVyLCBy
ZWFkU2l6ZSwgcmVhZFRleHQsIHJlYWRFcnJvcjsKK3ZhciB0b3RhbFJlYWRTaXplID0gMCwgdG90
YWxXcml0ZVNpemUgPSAwOworCitmdW5jdGlvbiBmaW5pc2hUZXN0KGVycm9yKQoreworICAgIGlm
IChlcnJvcikgeworICAgICAgICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAgICB9CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGFycmF5QnVmZmVyVG9TdHJpbmcoYnVmZmVyKQorewor
ICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50MTZBcnJh
eShidWZmZXIpKTsKK30KKworZnVuY3Rpb24gc3RyaW5nVG9BcnJheUJ1ZmZlcihzdHJpbmcpCit7
CisgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihzdHJpbmcubGVuZ3RoKjIpOworICAg
IHZhciBidWZmZXJWaWV3ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7CisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgYnVmZmVyVmlld1tpXSA9
IHN0cmluZy5jaGFyQ29kZUF0KGkpOworICAgIH0KKyAgICByZXR1cm4gYnVmZmVyOworfQorCitm
dW5jdGlvbiB3cml0ZShhY2Nlc3NIYW5kbGUsIG9mZnNldCwgdGV4dCkKK3sKKyAgICB3cml0ZUJ1
ZmZlciA9IHN0cmluZ1RvQXJyYXlCdWZmZXIodGV4dCk7CisgICAgd3JpdGVTaXplID0gYWNjZXNz
SGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7ICJhdCIgOiBvZmZzZXQgfSk7CisgICAgc2hvdWxk
QmUoIndyaXRlU2l6ZSIsICJ3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoIik7CisgICAgcmV0dXJuIHdy
aXRlU2l6ZTsKK30KKworZnVuY3Rpb24gcmVhZChhY2Nlc3NIYW5kbGUsIG9mZnNldCwgc2l6ZSkK
K3sKKyAgICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOworICAgIHJlYWRTaXpl
ID0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiOiBvZmZzZXQgfSk7CisgICAg
c2hvdWxkQmUoInJlYWRTaXplIiwgInJlYWRCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVy
biBhcnJheUJ1ZmZlclRvU3RyaW5nKHJlYWRCdWZmZXIpOworfQorCithc3luYyBmdW5jdGlvbiB0
ZXN0KCkgeworICAgIHRyeSB7CisgICAgICAgIHZhciByb290SGFuZGxlID0gYXdhaXQgbmF2aWdh
dG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7CisgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBmaWxl
IGZvciB0aGlzIHRlc3QuCisgICAgICAgIGF3YWl0IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoInN5
bmMtYWNjZXNzLWhhbmRsZS50eHQiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAg
ICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoInN5bmMt
YWNjZXNzLWhhbmRsZS50eHQiLCB7ICJjcmVhdGUiIDogdHJ1ZSAgfSk7CisgICAgICAgIGFjY2Vz
c0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAg
ICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNo
b3VsZEJlKCJmaWxlU2l6ZSIsICIwIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgcmVhZCgpIGFu
ZCB3cml0ZSgpOiIpOworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShhY2Nlc3NIYW5k
bGUsIDAsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICByZWFkVGV4dCA9IHJl
YWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS4iKTsKKyAgICAg
ICAgdG90YWxSZWFkU2l6ZSArPSByZWFkVGV4dC5sZW5ndGggKiAyOworCisgICAgICAgIHRvdGFs
V3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgdG90YWxXcml0ZVNpemUsICJUaGlzIGlz
IHNlY29uZCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRs
ZSwgdG90YWxSZWFkU2l6ZSwgdG90YWxXcml0ZVNpemUgLSB0b3RhbFJlYWRTaXplKTsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIHNlY29uZCBzZW50
ZW5jZS4iKTsKKworICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3Rh
bFdyaXRlU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAi
VGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5UaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAg
ICAgICBkZWJ1ZygidGVzdCBmbHVzaCgpOiIpOworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUu
Zmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2FpdCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgp
OworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAidG90YWxXcml0ZVNpemUiKTsKKworICAg
ICAgICBkZWJ1ZygidGVzdCB0cnVuY2F0ZSgpOiIpOworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5k
bGUudHJ1bmNhdGUoNCk7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAg
ICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNo
b3VsZEJlKCJmaWxlU2l6ZSIsICI0Iik7CisKKyAgICAgICAgZGVidWcoInRlc3Qgd3JpdGUoKSB3
aXRoIHBlbmRpbmcgb3BlcmF0aW9uOiIpOworICAgICAgICBldmFsQW5kTG9nKCJhY2Nlc3NIYW5k
bGUudHJ1bmNhdGUoMCkiKTsKKyAgICAgICAgcmVhZEJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig0
KTsKKyAgICAgICAgc2hvdWxkVGhyb3coImFjY2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsg
XCJhdFwiIDogMCB9KSIpOworCisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5jbG9zZSgpOwor
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgZmlu
aXNoVGVzdChlcnJvcik7CisgICAgfQorfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFj
Y2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjAxY2Q1OWI3MzhmMjE0NDA4ZThkNmEwYmM5YTc3MGI4MzEyMTAwNDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3
IEBACitbV29ya2VyXSBUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUuanMKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgMAorW1dvcmtlcl0gdGVzdCByZWFkKCkg
YW5kIHdyaXRlKCk6CitQQVNTIFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRl
TGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAor
UEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS4iCitQQVNT
IFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3Jr
ZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFk
VGV4dCBpcyAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSByZWFkU2l6
ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRo
aXMgaXMgZmlyc3Qgc2VudGVuY2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIgorW1dvcmtlcl0g
dGVzdCBmbHVzaCgpOgorUEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyB0b3RhbFdyaXRlU2l6ZQor
W1dvcmtlcl0gdGVzdCB0cnVuY2F0ZSgpOgorUEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyA0Citb
V29ya2VyXSB0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlvbjoKK1tXb3JrZXJdIGFj
Y2Vzc0hhbmRsZS50cnVuY2F0ZSgwKQorUEFTUyBbV29ya2VyXSBhY2Nlc3NIYW5kbGUucmVhZChy
ZWFkQnVmZmVyLCB7ICJhdCIgOiAwIH0pIHRocmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJv
cjogQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24uCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5
bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3MTZm
NzFjODAzMGRjZDEwYzY1ZGEzODM2ZTRkOTVjOGMyNjNlZTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJl
YWQtd3JpdGUtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="commit-queue"
          id="464781"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440738</attachid>
            <date>2021-10-10 15:33:36 -0700</date>
            <delta_ts>2021-10-10 20:29:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010153335.patch</filename>
            <type>text/plain</type>
            <size>46684</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUxZTA3YTU5MTdiNGYy
NjhkYTA4MzA0ZTIzMWM5NjEyODU5ODM4MC4uODM5MzkxNzU4Mzk5ZjNkN2E5YWExNmI3YTA3YzI3
ZWVlY2U0MTRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTEwLTEwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1
bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6Omdl
dFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZs
dXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgor
ICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTAg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gRG8g
bm8gYmFpbCBvdXQgb24gYm91bmRhcnkgbmV1dHJhbCBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUy
NjBhZDU4MzNlZWJlMTgzZDQ4YjJkM2NlMmFmNTM2ODFlMjE3YjkuLjI1Mjk5MjNjODRlMjMyN2Nh
NGQwMjNmOGVmZGQzZTYxZjNlNWJmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEt
MTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpjbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAoSVBDOjpTaGFy
ZWRGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpo
YW5kbGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpT
aGFyZWRGaWxlSGFuZGxlOjpTaGFyZWRGaWxlSGFuZGxlKToKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKKwogMjAy
MS0xMC0xMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAg
ICAgICBbV1BFXSBFeHBvc2UgV0tUZXh0Q2hlY2tlclNldENvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZCBhbmQgdXNlIGl0IGZyb20gV0tUUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKaW5kZXggYTY5YTcyYzZiNjhhMmQ2Y2Q0NWM4ZmI3MzQ0YmE0M2I1ODczMzE2Ny4uYjEwOTRl
OWE1NGExZGM5YzI1NDgwNGI2NjQ4YmZjYzI5MTQ4NTBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuY3BwCkBAIC01NywyOSArNTcsMjQgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMK
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBw
cm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9t
aXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRo
aXMuZ2V0KCksIHJlc3VsdC5yZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFs
dWUgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIHByb21pc2Uuc2V0dGxl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwg
cmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQogCi12
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1bnNpZ25l
ZCBsb25nIGxvbmc+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmdl
dFNpemUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lk
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5z
ZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNh
dGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNo
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmZsdXNo
KGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50
aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggYWZjZWExZjcwMTM3OTA4ZmUxYzc0MGUx
ZmZlZWIxZGU3ODE0NDE1NC4uYTBiY2U1OTA2MWZlZjQ3MjQwNjY0NWIxM2Y2YWU3OTEwYzU1ZDBj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+
PiYmKTsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7Ci0gICAgdm9p
ZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlz
ZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwotICAgIHZvaWQgdHJ1bmNhdGUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6
ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAgIHZvaWQgZmx1c2goRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7
CisgICAgdm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+JiYp
PiYmKTsKKyAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYpPiYmKTsKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggNGMwZjNiMDBmYTJkY2Y4NjY4NTNhZWI2MTQwZWM2NGEzNzM1ZGE3OC4uNjgzYjg5M2Y4MGE4
NjQ0MDNiNWE1NzNkNDQ5ODllODA2NTNmNmYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgU2FtZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPGJvb2w+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpPjsK
ICAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47Ci0gICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRsZUNh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6OnBhaXI8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGU+PiYmKT47CiAgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CiAgICAgdXNpbmcgSW50ZWdlckNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCBmYWQ0YjlhODRi
ODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRlNzZkMmFiLi40ODkzY2ZlNDIwNzE1ZjlkZWFhNTYzYmRl
NDI3NzBjZDQ2MmMzZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5jcHAKQEAgLTM0LDE0ICszNCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNy
ZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRs
ZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVy
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
c291cmNlLCBpZGVudGlmaWVyLCBmaWxlKSk7CiB9CiAKLUZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291
cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiAg
ICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAg
ICAsIG1fZmlsZShmaWxlKQogewogfQogCkBAIC01MywxNyArNTQsMzUgQEAgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpCiAKIHZvaWQgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXpl
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT50
cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVu
ZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmll
ciwgc2l6ZSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMp
CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJ
RExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmdldFNpemUo
bV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25D
b3VudCsrOworICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhp
cy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAg
IG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1f
cGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRpZmll
ciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAg
ICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQpAQCAtNzEsOSArOTAsMTIgQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICBpZiAobV9p
c0Nsb3NlZCkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH0pOwogCisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKICAgICBt
X3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgaWYgKHdlYWtUaGlzKSB7CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKICAgICAgICAgICAgIHdlYWtU
aGlzLT5kaWRDbG9zZSgpOworICAgICAgICB9CiAKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RG
TW92ZShyZXN1bHQpKTsKICAgICB9KTsKQEAgLTg0LDQgKzEwNiw1OSBAQCB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSgpCiAgICAgbV9pc0Nsb3NlZCA9IHRydWU7CiB9
CiAKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OnJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiBidWZm
ZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyBvcHRpb25zKQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRm
b3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChtX3BlbmRpbmdPcGVyYXRpb25Db3VudCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhh
bmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24iX3MgfTsKKyAgICAgICAgCisgICAgaWYgKCFi
dWZmZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKwor
ICAgIGludCByZXN1bHQgPSBGaWxlU3lzdGVtOjpzZWVrRmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQs
IEZpbGVTeXN0ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdpbm5pbmcpOworICAgIGlmIChyZXN1bHQg
PT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZh
aWxlZCB0byByZWFkIGF0IG9mZnNldCJfcyB9OworCisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7
CisgICAgV1RGOjpzd2l0Y2hPbigqYnVmZmVyLCBbJmRhdGFdIChSZWZQdHI8SlNDOjpBcnJheUJ1
ZmZlclZpZXc+JiBidWZmZXJWaWV3KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXJWaWV3LT5kYXRh
KCk7CisgICAgfSwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+JiBidWZmZXIpIHsK
KyAgICAgICAgZGF0YSA9IGJ1ZmZlci0+ZGF0YSgpOworICAgIH0pOworICAgIEJ1ZmZlclNvdXJj
ZSBzb3VyY2UgeyBXVEZNb3ZlKCpidWZmZXIpIH07CisgICAgYXV0byBzaXplID0gc291cmNlLmxl
bmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnJlYWRGcm9tRmlsZShtX2ZpbGUsIGRh
dGEsIHNpemUpOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byByZWFkIGZyb20gZmlsZSJfcyB9Owor
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJT
b3VyY2U6OlZhcmlhbnRUeXBlPiBidWZmZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpG
aWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKQoreworICAgIGlmIChtX2ZpbGUgPT0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xvc2VkKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmICht
X3BlbmRpbmdPcGVyYXRpb25Db3VudCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24iX3Mg
fTsKKworICAgIGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxs
b3dlZEVycm9yIH07CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9m
aWxlLCBvcHRpb25zLmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsK
KyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gd3JpdGUgYXQgb2Zmc2V0Il9zIH07CisKKyAgICBCdWZm
ZXJTb3VyY2UgYnVmZmVyU291cmNlID0gV1RGTW92ZSgqYnVmZmVyKTsKKyAgICBhdXRvKiBkYXRh
ID0gYnVmZmVyU291cmNlLmRhdGEoKTsKKyAgICBhdXRvIHNpemUgPSBidWZmZXJTb3VyY2UubGVu
Z3RoKCk7CisgICAgcmVzdWx0ID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9maWxlLCBkYXRh
LCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gd3JpdGUgdG8gZmlsZSJfcyB9OworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCAyOWU0MTU3YjY1NDFiOTNlNmVhNWZl
MDIzN2YwY2YyMTVkMDNjM2JmLi44YjM2YmMyMjM5MDdlZWI1MzU5MTA0NTkzZjM1MWJmMTMzZDg0
ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMjUsOCAr
MjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNp
bmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJJRExUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsNyArNDIsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGlj
IFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMg
UmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSk7CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAK
ICAgICB2b2lkIHRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CkBAIC00OCwxMyArNTAsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1
c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25P
cjx1bnNpZ25lZCBsb25nIGxvbmc+IHJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZh
cmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9y
PHVuc2lnbmVkIGxvbmcgbG9uZz4gd3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZh
cmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAg
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxG
aWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxz
ZSB9OworICAgIHVpbnQ2NF90IG1fcGVuZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRl
eCAxMTIwNjRhNmRmNjExYzQxMjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYz
OTBkNmMxNzg1MThmNzIxNjVhYmFhZGEzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTMzLDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVk
IGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBjbG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBy
ZWFkKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0
ZU9wdGlvbnMgb3B0aW9ucyk7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1No
YXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0
aW9ucyk7CiB9OwogCiBkaWN0aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5k
ZXggZmE3ZjY2OTM1NzE2MGI3OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNy4uZGYwOTEyMzBlYzJj
Zjg3YzE1ZTdmNGM5YzNkMjNkN2M3N2Y2YTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwog
fQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQor
dm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9u
T3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2Fs
bGJhY2sgPSBtX2dldEFjY2Vzc0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVy
KSkKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsOCBA
QCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSQogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBt
YWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXJd
KCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNr
SWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5
KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNvcHlS
ZXN1bHQgPSByZXN1bHQuaGFzRXhjZXB0aW9uKCkgPyBjcm9zc1RocmVhZENvcHkocmVzdWx0KSA6
IHJlc3VsdDsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9y
TW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNvcHlSZXN1bHQpXSAo
YXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rp
b24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbigpKQogICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDkwY2JjYmY2NzNh
NTg2ZjI3NDQyZjk2NDAzNDdhOTI1MjY1MGNmYzQuLjUyMDFiNTBlYzNmZTFlYjM0ZDhmZTVhYWMy
MTNiMzE5M2VkZmU0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkSXNT
YW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAgICB2
b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2FsbGJhY2tJZGVu
dGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7Ci0gICAgdm9pZCBkaWRDcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7CisgICAgdm9pZCBkaWRD
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3Rk
OjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik7CiAgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhD
YWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKICAgICB2b2lk
IGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
dWludDY0X3Q+JiYgcmVzdWx0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5k
ZXggYzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uY2UzMmVmMjcxOTRl
NTEyOTY0ZmE1YjNiYWNkYThhYTFmOTc0NTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAi
U2hhcmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAg
IHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZSgpCitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDks
OSArMTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQog
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52
YWxpZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRo
LCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAg
IGF1dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUp
OworICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZSht
X2hhbmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd24pOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwot
ICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVybiBzdGQ6OnBh
aXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5kbGUpIH07CiB9
CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiArMTg5LDggQEAg
c3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRs
ZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
CiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAg
YXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZp
bGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3BlID0gbWFrZVNj
b3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFuZGxlKTsKLSAg
ICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKGhhbmRs
ZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUsMTEgQEAgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8
fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAg
ICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAgLy8g
RklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJmb3JtIGFjdHVh
bCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OmZsdXNo
RmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0K
IApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQogICAgIGlmICgh
bV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0g
YWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52
YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1faGFu
ZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRp
Zmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxsb3B0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFkMTQ5OTM4ZDE5
N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0NjI4MDc0YmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBTaGFyZWRGaWxl
SGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJv
b2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hh
bmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5k
bGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0aDsKICAgICBT
dHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CisgICAgRmls
ZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJkNjJmMDYwZTk5
ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2YwMDllOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJlc29sdmUodGFy
Z2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCBh
ODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBiMWY1NGZmYjNl
ZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0z
Myw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nh
cnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBy
ZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJl
c29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZl
Y3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAgIHZvaWQgY3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAg
dXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47CisgICAgdm9p
ZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9yQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhw
ZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCB0
cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRf
dCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJjNWU5NDU1Yzgx
OWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBACiAg
ICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJl
c29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
SVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVk
PHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMK
ICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAg
ICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1MWJmOTQ2Y2MxZjA5M2Jm
ZDllOTZiMDQyMTRjNzA5Mjg4YmU3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNpbmNsdWRlIDxm
Y250bC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisKK25hbWVzcGFjZSBJUEMgewor
CitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxTaGFyZWRGaWxlSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSkKKyAgICB7CisjaWYgT1MoREFSV0lOKQorICAgICAgICByZXR1cm4gU2hhcmVk
RmlsZUhhbmRsZSB7IGhhbmRsZSB9OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyNlbmRpZgorICAgIH0KKworICAgIFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7Cisg
ICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFu
ZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyNpZiBPUyhEQVJXSU4pCisgICAgICAgIG1hY2hfcG9ydF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNI
X1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRfbWFrZXBvcnQobV9oYW5kbGUsICZmaWxlcG9y
dCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQoZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVf
TU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNo
YXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHsKKyNpZiBPUyhE
QVJXSU4pCisgICAgICAgIE1hY2hQb3J0IG1hY2hQb3J0OworICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1hY2hQb3J0KSkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gU2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKGZpbGVwb3J0X21h
a2VmZChtYWNoUG9ydC5wb3J0KCkpKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH0KKyAgICAKK3ByaXZhdGU6CisgICAgU2hhcmVkRmlsZUhhbmRsZShGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQorICAgICAgICA6IG1faGFuZGxlKGhhbmRs
ZSkKKyAgICB7CisgICAgfQorCisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1f
aGFuZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgSVBDCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWQyMDQxZmE1MmRmMzZhOTE2NmZjNzI4MmUxOWI2NGI5
MWQ0OWIzZS4uNzBlZTJkNGYxM2M3MmI0NmEyZWM2ZGExOTA5OTBlNmZmYzcwYTU3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDcy
LDYgKzE0NzIsNyBAQAogCQk5MzA4NURERjI2RTVCQ0YxMDAwRUM2QTcgLyogTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTkzMDg1REUwMjZFNUJDRkQwMDBF
QzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1REM0MjZFMUJCQkQwMDBFQzZBNyAvKiBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMwODVERTEyNkU1QkQxMzAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlG
IC8qIFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxl
LmggKi87IH07CiAJCTkzMTJCQUQ1MjZGMzNDMjYwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAq
LzsgfTsKIAkJOTMxMkJBRDYyNkYzM0MyOTAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MDc1MzI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLzsgfTsK
IAkJOTMxQTFCRTIyNkY4NzAwOTAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUExQkUwMjZG
ODVDMzIwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggKi87IH07CkBAIC00OTQ1
LDYgKzQ5NDYsNyBAQAogCQk5MzA4NURDQzI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3
b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBG
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTIyNkYw
NkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTczNDYsNiArNzM0OCw3IEBACiAJCQkJNUNDNURC
OTEyMTQ4OEUxNjAwNkNCOEE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCAqLywKIAkJCQkyREMxODU1
RURCRkI4NTBCQTBCNkQwNkQgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgKi8sCiAJ
CQkJMkRDMTg4MUFDQkNBQjVENTdDNUM2RUYwIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
aCAqLywKKwkJCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5o
ICovLAogCQkJCTdCNzMxMjM2MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0
aW9uLmNwcCAqLywKIAkJCQk3QjczMTIzMzI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5oICovLAogCQkJCTdCNzMxMjM0MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1D
b25uZWN0aW9uQnVmZmVyLmNwcCAqLywKQEAgLTEyNjMwLDYgKzEyNjMzLDcgQEAKIAkJCQlBMTgz
NDk0MjI0RUY0Njc4MDBCREM5QTggLyogU2hhcmVkQnVmZmVyQ29weS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkRDMThGRjZFRjJBMzEzMEMxMzAxNzY3IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFy
ZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMxMjJDODYyNzEwQ0NE
RjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjRC
RUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMxRjdEQUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0cmlu
Z0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDdhMjM4YWNhNGMzOGQ2NzU1NGE3ZGE2M2VlN2Rm
ZTI1NmM3YmNkOGIuLmRmNGU3MDRmOTAzMGI5ZjQzZmExZGE0M2Q1MGFjNzE3ZGExNTc1MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0x
MjYsNyArMTI2LDggQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUgKICAgICAgICAgaWYgKCFyZXN1
bHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0
aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShyZXN1bHQudmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnZh
bHVlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6cGFpciB7IHJlc3VsdFZhbHVl
LmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQuaGFuZGxlKCkgfSk7CiAgICAgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5p
bgppbmRleCBkZjM3OWM2Nzg2NjM0NzJhYmY0ZGVmOTIxZDVlYWVkY2U0NWI0MTYwLi4zNmUxNjBm
NzUyZjRlN2RjNDViMDQxYjlkNWRjOGJlY2Y5M2M5MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCkBAIC0xOTM1LDYgKzE5
MzUsNyBAQAogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2Nvbm5lY3Rfbm9jYW5jZWwpCiAg
ICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2VuZHRvX25vY2FuY2VsKQogICAgICAgICAoc3lz
Y2FsbC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19m
aWxlcG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZmlsZXBvcnRfbWFr
ZXBvcnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3VhcmRlZF9vcGVuX25wKQogICAg
ICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfY2xvc2VfbnApCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2QxNDIw
OWRmYjMyY2QzNzQ1Y2EwMmUwNmM0YTYyMjU3MTkzZWNiOC4uNGE1ZjljMzBiNTlkOTFjMTc3NjVi
ZjJkZDE2MjhmMzI5ZTQ2NzM3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTEwICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNj
ZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgor
ICAgICAgICAoYXJyYXlCdWZmZXJUb1N0cmluZyk6CisgICAgICAgIChzdHJpbmdUb0FycmF5QnVm
ZmVyKToKKyAgICAgICAgKHdyaXRlKToKKyAgICAgICAgKHJlYWQpOgorICAgICAgICAoYXN5bmMg
dGVzdCk6CisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhh
bmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMTAgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gRG8gbm8gYmFpbCBvdXQgb24gYm91bmRhcnkgbmV1
dHJhbCBjaGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1o
YW5kbGUtcmVhZC13cml0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmU5ZTBjMmIwOTAzYjMyOWU0YmRhMzBk
OWFlZmNkNmNiMGQ3YTAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cwpAQCAtMCwwICsxLDk1IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0
U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuIik7CisKK3ZhciBhY2Nlc3NIYW5kbGUsIGZpbGVTaXplLCB3cml0ZUJ1
ZmZlciwgd3JpdGVTaXplLCByZWFkQnVmZmVyLCByZWFkU2l6ZSwgcmVhZFRleHQsIHJlYWRFcnJv
cjsKK3ZhciB0b3RhbFJlYWRTaXplID0gMCwgdG90YWxXcml0ZVNpemUgPSAwOworCitmdW5jdGlv
biBmaW5pc2hUZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikgeworICAgICAgICB0ZXN0RmFp
bGVkKGVycm9yKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGFy
cmF5QnVmZmVyVG9TdHJpbmcoYnVmZmVyKQoreworICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJD
b2RlLmFwcGx5KG51bGwsIG5ldyBVaW50MTZBcnJheShidWZmZXIpKTsKK30KKworZnVuY3Rpb24g
c3RyaW5nVG9BcnJheUJ1ZmZlcihzdHJpbmcpCit7CisgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJh
eUJ1ZmZlcihzdHJpbmcubGVuZ3RoKjIpOworICAgIHZhciBidWZmZXJWaWV3ID0gbmV3IFVpbnQx
NkFycmF5KGJ1ZmZlcik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgYnVmZmVyVmlld1tpXSA9IHN0cmluZy5jaGFyQ29kZUF0KGkpOworICAg
IH0KKyAgICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiB3cml0ZShhY2Nlc3NIYW5kbGUs
IG9mZnNldCwgdGV4dCkKK3sKKyAgICB3cml0ZUJ1ZmZlciA9IHN0cmluZ1RvQXJyYXlCdWZmZXIo
dGV4dCk7CisgICAgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7
ICJhdCIgOiBvZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoIndyaXRlU2l6ZSIsICJ3cml0ZUJ1ZmZl
ci5ieXRlTGVuZ3RoIik7CisgICAgcmV0dXJuIHdyaXRlU2l6ZTsKK30KKworZnVuY3Rpb24gcmVh
ZChhY2Nlc3NIYW5kbGUsIG9mZnNldCwgc2l6ZSkKK3sKKyAgICByZWFkQnVmZmVyID0gbmV3IEFy
cmF5QnVmZmVyKHNpemUpOworICAgIHJlYWRTaXplID0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1
ZmZlciwgeyAiYXQiOiBvZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoInJlYWRTaXplIiwgInJlYWRC
dWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiBhcnJheUJ1ZmZlclRvU3RyaW5nKHJlYWRC
dWZmZXIpOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIHRyeSB7CisgICAgICAg
IHZhciByb290SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7
CisgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBmaWxlIGZvciB0aGlzIHRlc3QuCisgICAgICAgIGF3
YWl0IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiKS50aGVu
KCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCBy
b290SGFuZGxlLmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiLCB7ICJjcmVh
dGUiIDogdHJ1ZSAgfSk7CisgICAgICAgIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUu
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vz
c0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICIwIik7CisK
KyAgICAgICAgZGVidWcoInRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOiIpOworICAgICAgICB0b3Rh
bFdyaXRlU2l6ZSArPSB3cml0ZShhY2Nlc3NIYW5kbGUsIDAsICJUaGlzIGlzIGZpcnN0IHNlbnRl
bmNlLiIpOworICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdy
aXRlU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhp
cyBpcyBmaXJzdCBzZW50ZW5jZS4iKTsKKyAgICAgICAgdG90YWxSZWFkU2l6ZSArPSByZWFkVGV4
dC5sZW5ndGggKiAyOworCisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hh
bmRsZSwgdG90YWxXcml0ZVNpemUsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKyAgICAg
ICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgdG90YWxSZWFkU2l6ZSwgdG90YWxXcml0
ZVNpemUgLSB0b3RhbFJlYWRTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWFkVGV4dCIsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICByZWFkVGV4
dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5UaGlz
IGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICBkZWJ1ZygidGVzdCBmbHVzaCgpOiIp
OworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUg
PSBhd2FpdCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNp
emUiLCAidG90YWxXcml0ZVNpemUiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCB0cnVuY2F0ZSgp
OiIpOworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoNCk7CisgICAgICAgIGF3
YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vz
c0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICI0Iik7CisK
KyAgICAgICAgZGVidWcoInRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOiIpOwor
ICAgICAgICBldmFsQW5kTG9nKCJhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoMCkiKTsKKyAgICAgICAg
cmVhZEJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig0KTsKKyAgICAgICAgc2hvdWxkVGhyb3coImFj
Y2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgXCJhdFwiIDogMCB9KSIpOworCisgICAgICAg
IGF3YWl0IGFjY2Vzc0hhbmRsZS5jbG9zZSgpOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAg
fSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfQorfQor
Cit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxY2Q1OWI3MzhmMjE0NDA4
ZThkNmEwYmM5YTc3MGI4MzEyMTAwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitbV29ya2VyXSBUaGlzIHRlc3QgY2hl
Y2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJj
ZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKK1BBU1MgW1dvcmtlcl0gZmlsZVNp
emUgaXMgMAorW1dvcmtlcl0gdGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6CitQQVNTIFtXb3JrZXJd
IHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRT
aXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAi
VGhpcyBpcyBmaXJzdCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0
ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIu
Ynl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBzZWNvbmQgc2Vu
dGVuY2UuIgorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgK
K1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuVGhpcyBp
cyBzZWNvbmQgc2VudGVuY2UuIgorW1dvcmtlcl0gdGVzdCBmbHVzaCgpOgorUEFTUyBbV29ya2Vy
XSBmaWxlU2l6ZSBpcyB0b3RhbFdyaXRlU2l6ZQorW1dvcmtlcl0gdGVzdCB0cnVuY2F0ZSgpOgor
UEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyA0CitbV29ya2VyXSB0ZXN0IHdyaXRlKCkgd2l0aCBw
ZW5kaW5nIG9wZXJhdGlvbjoKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKQorUEFT
UyBbV29ya2VyXSBhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7ICJhdCIgOiAwIH0pIHRo
cmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5p
c2hlZCBvcGVyYXRpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNj
ZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRl
LXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3MTZmNzFjODAzMGRjZDEwYzY1ZGEzODM2ZTRkOTVj
OGMyNjNlZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKQEAgLTAs
MCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dvcmtlciA9
IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMn
KTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440750</attachid>
            <date>2021-10-10 20:29:05 -0700</date>
            <delta_ts>2021-10-10 21:34:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010202904.patch</filename>
            <type>text/plain</type>
            <size>51137</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLmIx
MDk0ZTlhNTRhMWRjOWMyNTQ4MDRiNjY0OGJmY2MyOTE0ODUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0
aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVu
Y2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5z
aWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLnRydW5j
YXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLnRy
dW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChp
ZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkwOGZlMWM3
NDBlMWZmZWViMWRlNzgxNDQxNTQuLmEwYmNlNTkwNjFmZWY0NzI0MDY2NDViMTNmNmFlNzkxMGM1
NWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwotICAg
IHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVjNjRhMzczNWRhNzguLjY4M2I4OTNm
ODBhODY0NDAzYjVhNTczZDQ0OTg5ZTgwNjUzZjZmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYm
KT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5k
bGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWly
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIEludGVnZXJDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5
YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2
M2JkZTQyNzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRp
ZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
KQogICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CisgICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJj
ZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBt
X3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50
aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRT
aXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsK
LSAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYg
KG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3
ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVl
OwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4g
YnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2Vz
cyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlm
ICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07
CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25z
LmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVz
dWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxs
cHRyOworICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJy
YXlCdWZmZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+
ZGF0YSgpOworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVy
KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJT
b3VyY2Ugc291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJj
ZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxl
LCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3Mg
fTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBp
ZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9u
Il9zIH07CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxl
KG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmlu
Zyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAg
QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byog
ZGF0YSA9IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNl
Lmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwg
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZl
YTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uOGIzNmJjMjIzOTA3ZWViNTM1OTEwNDU5M2YzNTFiZjEz
M2Q4NGY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1
LDggKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgi
CiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQwLDcgKzQyLDcgQEAg
cHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7CiAgICAgfTsKIAotICAgIHN0
YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVtRmls
ZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3Rh
dGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
OjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogICAgIH5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgp
OwogCiAgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtNDgsMTMgKzUwLDE3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGNsb3NlKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGRpZENsb3NlKCk7CisgICAgRXhjZXB0
aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiByZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNl
OjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKKyAgICBFeGNlcHRp
b25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNl
OjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKIAogcHJpdmF0ZToK
LSAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAKICAgICBS
ZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOwogICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsg
ZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCB7IDAgfTsKKyAg
ICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9maWxlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwK
aW5kZXggMTEyMDY0YTZkZjYxMWM0MTIxZTI1YzcxMDJmMDMzMDNjZTQ0OTRhYS4uNmVhNTQzOTdl
ZWFmMzkwZDZjMTc4NTE4ZjcyMTY1YWJhYWRhMzQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaWRsCkBAIC0zMyw2ICszMyw4IEBACiAgICAgUHJvbWlzZTx1bnNp
Z25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gZmx1c2go
KTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsKKyAgICB1bnNpZ25lZCBsb25nIGxv
bmcgcmVhZChbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIsIEZpbGVzeXN0ZW1SZWFk
V3JpdGVPcHRpb25zIG9wdGlvbnMpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB3cml0ZShbQWxs
b3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25z
IG9wdGlvbnMpOwogfTsKIAogZGljdGlvbmFyeSBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CmluZGV4IGZhN2Y2NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4NTY2YjcuLmRmMDkxMjMw
ZWMyY2Y4N2MxNWU3ZjRjOWMzZDIzZDdjNzdmNmE5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAg
dm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJlc29sdmUoQ2FsbGJh
Y2tJZGVudGlmaWVyIGNhbGxiYWNrSWQKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQp
KTsKIH0KIAotdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwg
RXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3Vs
dCkKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYgcmVzdWx0KQogewogICAgIGlmIChhdXRv
IGNhbGxiYWNrID0gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRp
ZmllcikpCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CkBAIC0yMjEsNyArMjIx
LDggQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nh
bGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkg
fSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlm
aWVyXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxs
YmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0
byByZXN1bHQpIG11dGFibGUgewotICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCku
cG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFk
Q29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBj
b3B5UmVzdWx0ID0gcmVzdWx0Lmhhc0V4Y2VwdGlvbigpID8gY3Jvc3NUaHJlYWRDb3B5KHJlc3Vs
dCkgOiByZXN1bHQ7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92ZShjb3B5UmVzdWx0
KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25u
ZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5MGNiY2Jm
NjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0Li41MjAxYjUwZWMzZmUxZWIzNGQ4ZmU1
YWFjMjEzYjMxOTNlZGZlNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAg
ICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlk
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQg
ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJh
Y2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAg
dm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4
IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJj
MjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApA
QCAtMzEsOSArMzEsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAog
ICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0
Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIsMTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252
ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0
Y2ggKGVycm9yKSB7CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNrZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRp
b24iIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9u
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yIH07Ci0gICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpU
eXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1l
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlR5cGVNaXNtYXRjaDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlR5cGVFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNl
IFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXgg
YzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uYmUyNTE5N2ZiYzQwOGI5
YTkyNjNiOTJkNzM1OWQ2MTYxNjYxMDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hh
cmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJl
dHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDksOSAr
MTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBG
aWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1
dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOwor
ICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hh
bmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOwotICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVy
biBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5k
bGUpIH07CiB9CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiAr
MTg5LDggQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
OwogCi0gICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVT
eXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3Bl
ID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFu
ZGxlKTsKLSAgICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUs
MTEgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwog
Ci0gICAgLy8gRklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJm
b3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0
ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQog
ICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VG
aWxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgs
IG1faWRlbnRpZmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxs
b3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFk
MTQ5OTM4ZDE5N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0
NjI4MDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBT
aGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50
NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJk
NjJmMDYwZTk5ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2Yw
MDllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJl
c29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5k
bGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aAppbmRleCBhODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBi
MWY1NGZmYjNlZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAg
ICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAg
IHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRs
ZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJj
NWU5NDU1YzgxOWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICsz
Myw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4g
KEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmODE1MTUx
ODBkZmZhMmEyZWU2YjUzZDI2YjBhOWM2MWY0NjFlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNp
bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisKKyNpZiBIQVZF
KEZJTEVQT1JUKQorI2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKyNlbmRpZgorCitu
YW1lc3BhY2UgSVBDIHsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisg
ICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlIHsgaGFuZGxlIH07CisjZWxzZQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisgICAgfQorCisgICAgU2hhcmVkRmlsZUhh
bmRsZSgpID0gZGVmYXVsdDsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlKCkgeyByZXR1cm4gbV9oYW5kbGU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisgICAgICAgIG1hY2hfcG9y
dF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRfbWFr
ZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQo
ZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKworICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBNYWNoUG9ydCBtYWNo
UG9ydDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYWNoUG9ydCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisgICAgCitwcml2YXRlOgor
ICAgIFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAgeworICAgIH0KKworICAgIEZpbGVT
eXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElQQworCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KaW5kZXgg
ZjJiYTRmNWE4ZWQwNzJiNWJkZTE2NTMwMjQ3OTEwNzA1ZTIwNzgyMS4uMjIxMDlhMTliN2I2NjIw
ZDFjNTRhNmI4NjExMDE0ZDViMWM0ODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Iu
aW4KKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KQEAgLTEyNzUsNiArMTI3NSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJl
MTliNjRiOTFkNDliM2UuLjcwZWUyZDRmMTNjNzJiNDZhMmVjNmRhMTkwOTkwZTZmZmM3MGE1N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQ3Miw2ICsxNDcyLDcgQEAKIAkJOTMwODVEREYyNkU1QkNGMTAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzA4NURFMDI2RTVC
Q0ZEMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNDI2RTFCQkJEMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzMDg1REUxMjZFNUJEMTMwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMTIyQzg2MjcxMENDREYw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oICovOyB9OwogCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgg
Ki87IH07CiAJCTkzMUExQkUyMjZGODcwMDkwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovOyB9OwpA
QCAtNDk0NSw2ICs0OTQ2LDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcg
LyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEw
NzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzQ2LDYgKzczNDgsNyBAQAogCQkJ
CTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJ
MkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggKi8sCisJCQkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLywKIAkJCQk3QjczMTIzNjI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJN0I3MzEyMzMyNUNDODUyMzAwM0IyNzk2IC8qIFN0cmVh
bUNsaWVudENvbm5lY3Rpb24uaCAqLywKIAkJCQk3QjczMTIzNDI1Q0M4NTI0MDAzQjI3OTYgLyog
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAgKi8sCkBAIC0xMjYzMCw2ICsxMjYzMyw3IEBACiAJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEg
LyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2
MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YTIzOGFjYTRjMzhkNjc1NTRhN2Rh
NjNlZTdkZmUyNTZjN2JjZDhiLi5kZjRlNzA0ZjkwMzBiOWY0M2ZhMWRhNDNkNTBhYzcxN2RhMTU3
NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cApAQCAtMTI2LDcgKzEyNiw4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJl
c3VsdC52YWx1ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6OnBhaXIgeyByZXN1
bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kLmhhbmRsZSgpIH0pOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KaW5kZXggZGYzNzljNjc4NjYzNDcyYWJmNGRlZjkyMWQ1ZWFlZGNlNDViNDE2MC4u
MzZlMTYwZjc1MmY0ZTdkYzQ1YjA0MWI5ZDVkYzhiZWNmOTNjOTEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtMTkz
NSw2ICsxOTM1LDcgQEAKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19jb25uZWN0X25vY2Fu
Y2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX3NlbmR0b19ub2NhbmNlbCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19mc2dldHBhdGgpCisgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZmlsZXBvcnRfbWFrZWZkKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVw
b3J0X21ha2Vwb3J0KQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfb3Blbl9u
cCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX2Nsb3NlX25wKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNkMTQyMDlkZmIzMmNkMzc0NWNhMDJlMDZjNGE2MjI1NzE5M2VjYjguLjRhNWY5YzMwYjU5ZDkx
YzE3NzY1YmYyZGQxNjI4ZjMyOWU0NjczNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0x
MC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hU
ZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9B
cnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAg
KGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5k
YXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlOWUwYzJiMDkwM2IzMjll
NGJkYTMwZDlhZWZjZDZjYjBkN2EwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxlU2l6ZSwg
d3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRUZXh0LCBy
ZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0gMDsKKwor
ZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
dGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5j
dGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7Cit9CisKK2Z1
bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVyVmlldyA9IG5l
dyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hhckNvZGVBdChp
KTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNz
SGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5
QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1
ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3Jp
dGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0
aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVhZEJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hhbmRsZS5yZWFk
KHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJyZWFkU2l6ZSIs
ICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJUb1N0cmlu
ZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVj
dG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0ZXN0LgorICAg
ICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxlSGFuZGxlID0g
YXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0Iiwg
eyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
MCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToiKTsKKyAgICAg
ICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCAwLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwg
dG90YWxXcml0ZVNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0
IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHRvdGFsUmVhZFNpemUgKz0g
cmVhZFRleHQubGVuZ3RoICogMjsKKworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShh
Y2Nlc3NIYW5kbGUsIHRvdGFsV3JpdGVTaXplLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7
CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIHRvdGFsUmVhZFNpemUsIHRv
dGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAg
cmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90YWxXcml0ZVNpemUpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVu
Y2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgZmx1
c2goKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgInRvdGFsV3JpdGVTaXplIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgdHJ1
bmNhdGUoKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLnRydW5jYXRlKDQpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
NCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlv
bjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygiYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApIik7Cisg
ICAgICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIHNob3VsZFRo
cm93KCJhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IFwiYXRcIiA6IDAgfSkiKTsKKwor
ICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNkNTliNzM4
ZjIxNDQwOGU4ZDZhMGJjOWE3NzBiODMxMjEwMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorW1dvcmtlcl0gVGhpcyB0
ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjog
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDAKK1tXb3JrZXJdIHRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOgorUEFTUyBb
V29ya2VyXSB3cml0ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRl
eHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSB3cml0ZVNpemUg
aXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFk
QnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgc2Vj
b25kIHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRl
TGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNl
LlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIKK1tXb3JrZXJdIHRlc3QgZmx1c2goKToKK1BBU1Mg
W1dvcmtlcl0gZmlsZVNpemUgaXMgdG90YWxXcml0ZVNpemUKK1tXb3JrZXJdIHRlc3QgdHJ1bmNh
dGUoKToKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgNAorW1dvcmtlcl0gdGVzdCB3cml0ZSgp
IHdpdGggcGVuZGluZyBvcGVyYXRpb246CitbV29ya2VyXSBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
MCkKK1BBU1MgW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiIDog
MCB9KSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzE2ZjcxYzgwMzBkY2QxMGM2NWRhMzgz
NmU0ZDk1YzhjMjYzZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3
b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="464800"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440752</attachid>
            <date>2021-10-10 20:50:15 -0700</date>
            <delta_ts>2021-10-10 21:12:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010205014.patch</filename>
            <type>text/plain</type>
            <size>51479</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLmIx
MDk0ZTlhNTRhMWRjOWMyNTQ4MDRiNjY0OGJmY2MyOTE0ODUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0
aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVu
Y2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5z
aWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLnRydW5j
YXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLnRy
dW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChp
ZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkwOGZlMWM3
NDBlMWZmZWViMWRlNzgxNDQxNTQuLmEwYmNlNTkwNjFmZWY0NzI0MDY2NDViMTNmNmFlNzkxMGM1
NWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwotICAg
IHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVjNjRhMzczNWRhNzguLjY4M2I4OTNm
ODBhODY0NDAzYjVhNTczZDQ0OTg5ZTgwNjUzZjZmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYm
KT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5k
bGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWly
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIEludGVnZXJDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5
YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2
M2JkZTQyNzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRp
ZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
KQogICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CisgICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJj
ZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBt
X3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50
aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRT
aXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsK
LSAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYg
KG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3
ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVl
OwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4g
YnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2Vz
cyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlm
ICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07
CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25z
LmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVz
dWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxs
cHRyOworICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJy
YXlCdWZmZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+
ZGF0YSgpOworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVy
KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJT
b3VyY2Ugc291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJj
ZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxl
LCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3Mg
fTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBp
ZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9u
Il9zIH07CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxl
KG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmlu
Zyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAg
QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byog
ZGF0YSA9IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNl
Lmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwg
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZl
YTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRm
MDk2M2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1
LDE0ICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4gewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7
CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRl
KHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBA
IC00OCwxMyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxv
bmc+IHJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9u
Zz4gd3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90
IG1fcGVuZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQx
MjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVh
YmFhZGEzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwK
QEAgLTMzLDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6
ZSgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZp
bmVkPiBjbG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0g
QnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7
CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNl
IGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0
aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZmE3ZjY2OTM1NzE2MGI3
OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNy4uNjViZDFjOTFiYTU1ODhmMTc4N2IxMGM0YzQ3MDA2
OTY1NzY5ZDRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJ
ZAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxs
YmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlPj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vz
c0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewot
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYg
c2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhlY3B0aW9uKCkpCisgICAgICAgICAg
ICAgICAgY3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlv
bigpKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0
KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25u
ZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5MGNiY2Jm
NjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0Li41MjAxYjUwZWMzZmUxZWIzNGQ4ZmU1
YWFjMjEzYjMxOTNlZGZlNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAg
ICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlk
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQg
ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJh
Y2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAg
dm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4
IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJj
MjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApA
QCAtMzEsOSArMzEsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAog
ICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0
Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIsMTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252
ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0
Y2ggKGVycm9yKSB7CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNrZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRp
b24iIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9u
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yIH07Ci0gICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpU
eXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1l
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlR5cGVNaXNtYXRjaDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlR5cGVFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNl
IFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXgg
YzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uYmUyNTE5N2ZiYzQwOGI5
YTkyNjNiOTJkNzM1OWQ2MTYxNjYxMDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hh
cmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJl
dHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDksOSAr
MTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBG
aWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1
dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOwor
ICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hh
bmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOwotICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVy
biBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5k
bGUpIH07CiB9CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiAr
MTg5LDggQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
OwogCi0gICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVT
eXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3Bl
ID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFu
ZGxlKTsKLSAgICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUs
MTEgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwog
Ci0gICAgLy8gRklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJm
b3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0
ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQog
ICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VG
aWxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgs
IG1faWRlbnRpZmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxs
b3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFk
MTQ5OTM4ZDE5N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0
NjI4MDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBT
aGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50
NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJk
NjJmMDYwZTk5ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2Yw
MDllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJl
c29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5k
bGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aAppbmRleCBhODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBi
MWY1NGZmYjNlZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAg
ICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAg
IHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRs
ZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJj
NWU5NDU1YzgxOWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICsz
Myw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4g
KEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmODE1MTUx
ODBkZmZhMmEyZWU2YjUzZDI2YjBhOWM2MWY0NjFlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNp
bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisKKyNpZiBIQVZF
KEZJTEVQT1JUKQorI2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKyNlbmRpZgorCitu
YW1lc3BhY2UgSVBDIHsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisg
ICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlIHsgaGFuZGxlIH07CisjZWxzZQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisgICAgfQorCisgICAgU2hhcmVkRmlsZUhh
bmRsZSgpID0gZGVmYXVsdDsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlKCkgeyByZXR1cm4gbV9oYW5kbGU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisgICAgICAgIG1hY2hfcG9y
dF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRfbWFr
ZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQo
ZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKworICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBNYWNoUG9ydCBtYWNo
UG9ydDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYWNoUG9ydCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisgICAgCitwcml2YXRlOgor
ICAgIFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAgeworICAgIH0KKworICAgIEZpbGVT
eXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElQQworCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KaW5kZXgg
ZjJiYTRmNWE4ZWQwNzJiNWJkZTE2NTMwMjQ3OTEwNzA1ZTIwNzgyMS4uMjIxMDlhMTliN2I2NjIw
ZDFjNTRhNmI4NjExMDE0ZDViMWM0ODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Iu
aW4KKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KQEAgLTEyNzUsNiArMTI3NSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJl
MTliNjRiOTFkNDliM2UuLjcwZWUyZDRmMTNjNzJiNDZhMmVjNmRhMTkwOTkwZTZmZmM3MGE1N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQ3Miw2ICsxNDcyLDcgQEAKIAkJOTMwODVEREYyNkU1QkNGMTAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzA4NURFMDI2RTVC
Q0ZEMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNDI2RTFCQkJEMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzMDg1REUxMjZFNUJEMTMwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMTIyQzg2MjcxMENDREYw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oICovOyB9OwogCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgg
Ki87IH07CiAJCTkzMUExQkUyMjZGODcwMDkwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovOyB9OwpA
QCAtNDk0NSw2ICs0OTQ2LDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcg
LyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEw
NzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzQ2LDYgKzczNDgsNyBAQAogCQkJ
CTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJ
MkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggKi8sCisJCQkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLywKIAkJCQk3QjczMTIzNjI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJN0I3MzEyMzMyNUNDODUyMzAwM0IyNzk2IC8qIFN0cmVh
bUNsaWVudENvbm5lY3Rpb24uaCAqLywKIAkJCQk3QjczMTIzNDI1Q0M4NTI0MDAzQjI3OTYgLyog
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAgKi8sCkBAIC0xMjYzMCw2ICsxMjYzMyw3IEBACiAJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEg
LyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2
MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YTIzOGFjYTRjMzhkNjc1NTRhN2Rh
NjNlZTdkZmUyNTZjN2JjZDhiLi5kZjRlNzA0ZjkwMzBiOWY0M2ZhMWRhNDNkNTBhYzcxN2RhMTU3
NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cApAQCAtMTI2LDcgKzEyNiw4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJl
c3VsdC52YWx1ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6OnBhaXIgeyByZXN1
bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kLmhhbmRsZSgpIH0pOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KaW5kZXggZGYzNzljNjc4NjYzNDcyYWJmNGRlZjkyMWQ1ZWFlZGNlNDViNDE2MC4u
MzZlMTYwZjc1MmY0ZTdkYzQ1YjA0MWI5ZDVkYzhiZWNmOTNjOTEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtMTkz
NSw2ICsxOTM1LDcgQEAKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19jb25uZWN0X25vY2Fu
Y2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX3NlbmR0b19ub2NhbmNlbCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19mc2dldHBhdGgpCisgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZmlsZXBvcnRfbWFrZWZkKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVw
b3J0X21ha2Vwb3J0KQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfb3Blbl9u
cCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX2Nsb3NlX25wKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNkMTQyMDlkZmIzMmNkMzc0NWNhMDJlMDZjNGE2MjI1NzE5M2VjYjguLjRhNWY5YzMwYjU5ZDkx
YzE3NzY1YmYyZGQxNjI4ZjMyOWU0NjczNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0x
MC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hU
ZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9B
cnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAg
KGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5k
YXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlOWUwYzJiMDkwM2IzMjll
NGJkYTMwZDlhZWZjZDZjYjBkN2EwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxlU2l6ZSwg
d3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRUZXh0LCBy
ZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0gMDsKKwor
ZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
dGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5j
dGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7Cit9CisKK2Z1
bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVyVmlldyA9IG5l
dyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hhckNvZGVBdChp
KTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNz
SGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5
QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1
ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3Jp
dGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0
aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVhZEJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hhbmRsZS5yZWFk
KHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJyZWFkU2l6ZSIs
ICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJUb1N0cmlu
ZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVj
dG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0ZXN0LgorICAg
ICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxlSGFuZGxlID0g
YXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0Iiwg
eyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
MCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToiKTsKKyAgICAg
ICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCAwLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwg
dG90YWxXcml0ZVNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0
IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHRvdGFsUmVhZFNpemUgKz0g
cmVhZFRleHQubGVuZ3RoICogMjsKKworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShh
Y2Nlc3NIYW5kbGUsIHRvdGFsV3JpdGVTaXplLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7
CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIHRvdGFsUmVhZFNpemUsIHRv
dGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAg
cmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90YWxXcml0ZVNpemUpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVu
Y2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgZmx1
c2goKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgInRvdGFsV3JpdGVTaXplIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgdHJ1
bmNhdGUoKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLnRydW5jYXRlKDQpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
NCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlv
bjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygiYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApIik7Cisg
ICAgICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIHNob3VsZFRo
cm93KCJhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IFwiYXRcIiA6IDAgfSkiKTsKKwor
ICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNkNTliNzM4
ZjIxNDQwOGU4ZDZhMGJjOWE3NzBiODMxMjEwMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorW1dvcmtlcl0gVGhpcyB0
ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjog
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDAKK1tXb3JrZXJdIHRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOgorUEFTUyBb
V29ya2VyXSB3cml0ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRl
eHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSB3cml0ZVNpemUg
aXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFk
QnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgc2Vj
b25kIHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRl
TGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNl
LlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIKK1tXb3JrZXJdIHRlc3QgZmx1c2goKToKK1BBU1Mg
W1dvcmtlcl0gZmlsZVNpemUgaXMgdG90YWxXcml0ZVNpemUKK1tXb3JrZXJdIHRlc3QgdHJ1bmNh
dGUoKToKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgNAorW1dvcmtlcl0gdGVzdCB3cml0ZSgp
IHdpdGggcGVuZGluZyBvcGVyYXRpb246CitbV29ya2VyXSBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
MCkKK1BBU1MgW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiIDog
MCB9KSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzE2ZjcxYzgwMzBkY2QxMGM2NWRhMzgz
NmU0ZDk1YzhjMjYzZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3
b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="464796"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440753</attachid>
            <date>2021-10-10 21:10:42 -0700</date>
            <delta_ts>2021-10-10 21:42:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010211041.patch</filename>
            <type>text/plain</type>
            <size>51479</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLmIx
MDk0ZTlhNTRhMWRjOWMyNTQ4MDRiNjY0OGJmY2MyOTE0ODUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0
aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVu
Y2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5z
aWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLnRydW5j
YXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLnRy
dW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChp
ZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkwOGZlMWM3
NDBlMWZmZWViMWRlNzgxNDQxNTQuLmEwYmNlNTkwNjFmZWY0NzI0MDY2NDViMTNmNmFlNzkxMGM1
NWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwotICAg
IHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVjNjRhMzczNWRhNzguLjY4M2I4OTNm
ODBhODY0NDAzYjVhNTczZDQ0OTg5ZTgwNjUzZjZmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYm
KT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5k
bGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWly
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIEludGVnZXJDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5
YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2
M2JkZTQyNzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRp
ZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
KQogICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CisgICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJj
ZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBt
X3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50
aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRT
aXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsK
LSAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYg
KG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3
ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVl
OwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4g
YnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2Vz
cyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlm
ICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07
CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25z
LmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVz
dWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxs
cHRyOworICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJy
YXlCdWZmZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+
ZGF0YSgpOworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVy
KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJT
b3VyY2Ugc291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJj
ZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxl
LCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3Mg
fTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBp
ZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9u
Il9zIH07CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxl
KG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmlu
Zyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAg
QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byog
ZGF0YSA9IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNl
Lmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwg
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZl
YTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRm
MDk2M2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1
LDE0ICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4gewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7
CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRl
KHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBA
IC00OCwxMyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxv
bmc+IHJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9u
Zz4gd3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90
IG1fcGVuZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQx
MjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVh
YmFhZGEzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwK
QEAgLTMzLDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6
ZSgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZp
bmVkPiBjbG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0g
QnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7
CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNl
IGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0
aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZmE3ZjY2OTM1NzE2MGI3
OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNy4uZDM3ZDFmYTNhNDEyMTM3ZDdkYWU0OTU1MWExOGRl
YWMxN2VkYjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJ
ZAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxs
YmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlPj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vz
c0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewot
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYg
c2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICAgICAgY3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlv
bigpKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0
KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25u
ZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5MGNiY2Jm
NjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0Li41MjAxYjUwZWMzZmUxZWIzNGQ4ZmU1
YWFjMjEzYjMxOTNlZGZlNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAg
ICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlk
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQg
ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJh
Y2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAg
dm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4
IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJj
MjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApA
QCAtMzEsOSArMzEsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAog
ICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0
Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIsMTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252
ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0
Y2ggKGVycm9yKSB7CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNrZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRp
b24iIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9u
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yIH07Ci0gICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpU
eXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1l
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlR5cGVNaXNtYXRjaDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlR5cGVFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNl
IFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXgg
YzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uYmUyNTE5N2ZiYzQwOGI5
YTkyNjNiOTJkNzM1OWQ2MTYxNjYxMDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hh
cmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJl
dHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDksOSAr
MTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBG
aWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1
dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOwor
ICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hh
bmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOwotICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVy
biBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5k
bGUpIH07CiB9CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiAr
MTg5LDggQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
OwogCi0gICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVT
eXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3Bl
ID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFu
ZGxlKTsKLSAgICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUs
MTEgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwog
Ci0gICAgLy8gRklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJm
b3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0
ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQog
ICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VG
aWxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgs
IG1faWRlbnRpZmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxs
b3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFk
MTQ5OTM4ZDE5N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0
NjI4MDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBT
aGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50
NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJk
NjJmMDYwZTk5ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2Yw
MDllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJl
c29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5k
bGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aAppbmRleCBhODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBi
MWY1NGZmYjNlZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAg
ICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAg
IHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRs
ZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJj
NWU5NDU1YzgxOWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICsz
Myw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4g
KEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmODE1MTUx
ODBkZmZhMmEyZWU2YjUzZDI2YjBhOWM2MWY0NjFlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNp
bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisKKyNpZiBIQVZF
KEZJTEVQT1JUKQorI2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKyNlbmRpZgorCitu
YW1lc3BhY2UgSVBDIHsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisg
ICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlIHsgaGFuZGxlIH07CisjZWxzZQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisgICAgfQorCisgICAgU2hhcmVkRmlsZUhh
bmRsZSgpID0gZGVmYXVsdDsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlKCkgeyByZXR1cm4gbV9oYW5kbGU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisgICAgICAgIG1hY2hfcG9y
dF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRfbWFr
ZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQo
ZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKworICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBNYWNoUG9ydCBtYWNo
UG9ydDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYWNoUG9ydCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisgICAgCitwcml2YXRlOgor
ICAgIFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAgeworICAgIH0KKworICAgIEZpbGVT
eXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElQQworCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KaW5kZXgg
ZjJiYTRmNWE4ZWQwNzJiNWJkZTE2NTMwMjQ3OTEwNzA1ZTIwNzgyMS4uMjIxMDlhMTliN2I2NjIw
ZDFjNTRhNmI4NjExMDE0ZDViMWM0ODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Iu
aW4KKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KQEAgLTEyNzUsNiArMTI3NSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJl
MTliNjRiOTFkNDliM2UuLjcwZWUyZDRmMTNjNzJiNDZhMmVjNmRhMTkwOTkwZTZmZmM3MGE1N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQ3Miw2ICsxNDcyLDcgQEAKIAkJOTMwODVEREYyNkU1QkNGMTAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzA4NURFMDI2RTVC
Q0ZEMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNDI2RTFCQkJEMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzMDg1REUxMjZFNUJEMTMwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMTIyQzg2MjcxMENDREYw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oICovOyB9OwogCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgg
Ki87IH07CiAJCTkzMUExQkUyMjZGODcwMDkwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovOyB9OwpA
QCAtNDk0NSw2ICs0OTQ2LDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcg
LyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEw
NzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzQ2LDYgKzczNDgsNyBAQAogCQkJ
CTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJ
MkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggKi8sCisJCQkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLywKIAkJCQk3QjczMTIzNjI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJN0I3MzEyMzMyNUNDODUyMzAwM0IyNzk2IC8qIFN0cmVh
bUNsaWVudENvbm5lY3Rpb24uaCAqLywKIAkJCQk3QjczMTIzNDI1Q0M4NTI0MDAzQjI3OTYgLyog
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAgKi8sCkBAIC0xMjYzMCw2ICsxMjYzMyw3IEBACiAJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEg
LyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2
MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YTIzOGFjYTRjMzhkNjc1NTRhN2Rh
NjNlZTdkZmUyNTZjN2JjZDhiLi5kZjRlNzA0ZjkwMzBiOWY0M2ZhMWRhNDNkNTBhYzcxN2RhMTU3
NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cApAQCAtMTI2LDcgKzEyNiw4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJl
c3VsdC52YWx1ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6OnBhaXIgeyByZXN1
bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kLmhhbmRsZSgpIH0pOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KaW5kZXggZGYzNzljNjc4NjYzNDcyYWJmNGRlZjkyMWQ1ZWFlZGNlNDViNDE2MC4u
MzZlMTYwZjc1MmY0ZTdkYzQ1YjA0MWI5ZDVkYzhiZWNmOTNjOTEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtMTkz
NSw2ICsxOTM1LDcgQEAKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19jb25uZWN0X25vY2Fu
Y2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX3NlbmR0b19ub2NhbmNlbCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19mc2dldHBhdGgpCisgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZmlsZXBvcnRfbWFrZWZkKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVw
b3J0X21ha2Vwb3J0KQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfb3Blbl9u
cCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX2Nsb3NlX25wKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNkMTQyMDlkZmIzMmNkMzc0NWNhMDJlMDZjNGE2MjI1NzE5M2VjYjguLjRhNWY5YzMwYjU5ZDkx
YzE3NzY1YmYyZGQxNjI4ZjMyOWU0NjczNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0x
MC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hU
ZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9B
cnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAg
KGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5k
YXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlOWUwYzJiMDkwM2IzMjll
NGJkYTMwZDlhZWZjZDZjYjBkN2EwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxlU2l6ZSwg
d3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRUZXh0LCBy
ZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0gMDsKKwor
ZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
dGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5j
dGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7Cit9CisKK2Z1
bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVyVmlldyA9IG5l
dyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hhckNvZGVBdChp
KTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNz
SGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5
QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1
ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3Jp
dGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0
aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVhZEJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hhbmRsZS5yZWFk
KHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJyZWFkU2l6ZSIs
ICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJUb1N0cmlu
ZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVj
dG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0ZXN0LgorICAg
ICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxlSGFuZGxlID0g
YXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0Iiwg
eyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
MCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToiKTsKKyAgICAg
ICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCAwLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwg
dG90YWxXcml0ZVNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0
IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHRvdGFsUmVhZFNpemUgKz0g
cmVhZFRleHQubGVuZ3RoICogMjsKKworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShh
Y2Nlc3NIYW5kbGUsIHRvdGFsV3JpdGVTaXplLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7
CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIHRvdGFsUmVhZFNpemUsIHRv
dGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAg
cmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90YWxXcml0ZVNpemUpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVu
Y2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgZmx1
c2goKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgInRvdGFsV3JpdGVTaXplIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgdHJ1
bmNhdGUoKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLnRydW5jYXRlKDQpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
NCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlv
bjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygiYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApIik7Cisg
ICAgICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIHNob3VsZFRo
cm93KCJhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IFwiYXRcIiA6IDAgfSkiKTsKKwor
ICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNkNTliNzM4
ZjIxNDQwOGU4ZDZhMGJjOWE3NzBiODMxMjEwMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorW1dvcmtlcl0gVGhpcyB0
ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjog
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDAKK1tXb3JrZXJdIHRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOgorUEFTUyBb
V29ya2VyXSB3cml0ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRl
eHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSB3cml0ZVNpemUg
aXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFk
QnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgc2Vj
b25kIHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRl
TGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNl
LlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIKK1tXb3JrZXJdIHRlc3QgZmx1c2goKToKK1BBU1Mg
W1dvcmtlcl0gZmlsZVNpemUgaXMgdG90YWxXcml0ZVNpemUKK1tXb3JrZXJdIHRlc3QgdHJ1bmNh
dGUoKToKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgNAorW1dvcmtlcl0gdGVzdCB3cml0ZSgp
IHdpdGggcGVuZGluZyBvcGVyYXRpb246CitbV29ya2VyXSBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
MCkKK1BBU1MgW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiIDog
MCB9KSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzE2ZjcxYzgwMzBkY2QxMGM2NWRhMzgz
NmU0ZDk1YzhjMjYzZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3
b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="464802"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440754</attachid>
            <date>2021-10-10 21:29:27 -0700</date>
            <delta_ts>2021-10-10 21:42:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010212925.patch</filename>
            <type>text/plain</type>
            <size>51479</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLmIx
MDk0ZTlhNTRhMWRjOWMyNTQ4MDRiNjY0OGJmY2MyOTE0ODUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0
aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVu
Y2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5z
aWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLnRydW5j
YXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLnRy
dW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChp
ZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkwOGZlMWM3
NDBlMWZmZWViMWRlNzgxNDQxNTQuLmEwYmNlNTkwNjFmZWY0NzI0MDY2NDViMTNmNmFlNzkxMGM1
NWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwotICAg
IHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVjNjRhMzczNWRhNzguLjY4M2I4OTNm
ODBhODY0NDAzYjVhNTczZDQ0OTg5ZTgwNjUzZjZmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYm
KT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5k
bGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWly
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIEludGVnZXJDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5
YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2
M2JkZTQyNzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRp
ZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
KQogICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CisgICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJj
ZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBt
X3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50
aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRT
aXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsK
LSAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYg
KG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3
ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVl
OwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4g
YnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2Vz
cyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlm
ICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07
CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25z
LmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVz
dWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxs
cHRyOworICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJy
YXlCdWZmZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+
ZGF0YSgpOworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVy
KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJT
b3VyY2Ugc291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJj
ZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxl
LCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3Mg
fTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBp
ZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9u
Il9zIH07CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxl
KG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmlu
Zyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAg
QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byog
ZGF0YSA9IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNl
Lmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwg
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZl
YTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRm
MDk2M2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1
LDE0ICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4gewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7
CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRl
KHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBA
IC00OCwxMyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxv
bmc+IHJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9u
Zz4gd3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90
IG1fcGVuZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQx
MjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVh
YmFhZGEzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwK
QEAgLTMzLDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6
ZSgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZp
bmVkPiBjbG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0g
QnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7
CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNl
IGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0
aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZmE3ZjY2OTM1NzE2MGI3
OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNy4uZDM3ZDFmYTNhNDEyMTM3ZDdkYWU0OTU1MWExOGRl
YWMxN2VkYjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJ
ZAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxs
YmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlPj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vz
c0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewot
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYg
c2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICAgICAgY3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlv
bigpKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0
KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25u
ZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5MGNiY2Jm
NjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0Li41MjAxYjUwZWMzZmUxZWIzNGQ4ZmU1
YWFjMjEzYjMxOTNlZGZlNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAg
ICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlk
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQg
ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJh
Y2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAg
dm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4
IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJj
MjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApA
QCAtMzEsOSArMzEsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAog
ICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0
Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIsMTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252
ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0
Y2ggKGVycm9yKSB7CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNrZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRp
b24iIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9u
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yIH07Ci0gICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpU
eXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1l
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlR5cGVNaXNtYXRjaDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlR5cGVFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNl
IFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXgg
YzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uYmUyNTE5N2ZiYzQwOGI5
YTkyNjNiOTJkNzM1OWQ2MTYxNjYxMDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hh
cmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJl
dHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDksOSAr
MTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBG
aWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1
dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOwor
ICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hh
bmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOwotICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVy
biBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5k
bGUpIH07CiB9CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiAr
MTg5LDggQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
OwogCi0gICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVT
eXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3Bl
ID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFu
ZGxlKTsKLSAgICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUs
MTEgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwog
Ci0gICAgLy8gRklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJm
b3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0
ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQog
ICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VG
aWxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgs
IG1faWRlbnRpZmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxs
b3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFk
MTQ5OTM4ZDE5N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0
NjI4MDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBT
aGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50
NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJk
NjJmMDYwZTk5ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2Yw
MDllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJl
c29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5k
bGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aAppbmRleCBhODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBi
MWY1NGZmYjNlZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAg
ICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAg
IHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRs
ZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJj
NWU5NDU1YzgxOWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICsz
Myw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4g
KEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmODE1MTUx
ODBkZmZhMmEyZWU2YjUzZDI2YjBhOWM2MWY0NjFlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNp
bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisKKyNpZiBIQVZF
KEZJTEVQT1JUKQorI2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKyNlbmRpZgorCitu
YW1lc3BhY2UgSVBDIHsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisg
ICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlIHsgaGFuZGxlIH07CisjZWxzZQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisgICAgfQorCisgICAgU2hhcmVkRmlsZUhh
bmRsZSgpID0gZGVmYXVsdDsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlKCkgeyByZXR1cm4gbV9oYW5kbGU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisgICAgICAgIG1hY2hfcG9y
dF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRfbWFr
ZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQo
ZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKworICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBNYWNoUG9ydCBtYWNo
UG9ydDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYWNoUG9ydCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisgICAgCitwcml2YXRlOgor
ICAgIFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAgeworICAgIH0KKworICAgIEZpbGVT
eXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElQQworCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KaW5kZXgg
ZjJiYTRmNWE4ZWQwNzJiNWJkZTE2NTMwMjQ3OTEwNzA1ZTIwNzgyMS4uMjIxMDlhMTliN2I2NjIw
ZDFjNTRhNmI4NjExMDE0ZDViMWM0ODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Iu
aW4KKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KQEAgLTEyNzUsNiArMTI3NSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJl
MTliNjRiOTFkNDliM2UuLjcwZWUyZDRmMTNjNzJiNDZhMmVjNmRhMTkwOTkwZTZmZmM3MGE1N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQ3Miw2ICsxNDcyLDcgQEAKIAkJOTMwODVEREYyNkU1QkNGMTAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzA4NURFMDI2RTVC
Q0ZEMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNDI2RTFCQkJEMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzMDg1REUxMjZFNUJEMTMwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMTIyQzg2MjcxMENDREYw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oICovOyB9OwogCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgg
Ki87IH07CiAJCTkzMUExQkUyMjZGODcwMDkwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovOyB9OwpA
QCAtNDk0NSw2ICs0OTQ2LDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcg
LyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEw
NzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzQ2LDYgKzczNDgsNyBAQAogCQkJ
CTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJ
MkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggKi8sCisJCQkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLywKIAkJCQk3QjczMTIzNjI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJN0I3MzEyMzMyNUNDODUyMzAwM0IyNzk2IC8qIFN0cmVh
bUNsaWVudENvbm5lY3Rpb24uaCAqLywKIAkJCQk3QjczMTIzNDI1Q0M4NTI0MDAzQjI3OTYgLyog
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAgKi8sCkBAIC0xMjYzMCw2ICsxMjYzMyw3IEBACiAJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEg
LyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2
MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YTIzOGFjYTRjMzhkNjc1NTRhN2Rh
NjNlZTdkZmUyNTZjN2JjZDhiLi5kZjRlNzA0ZjkwMzBiOWY0M2ZhMWRhNDNkNTBhYzcxN2RhMTU3
NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cApAQCAtMTI2LDcgKzEyNiw4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJl
c3VsdC52YWx1ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6OnBhaXIgeyByZXN1
bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kLmhhbmRsZSgpIH0pOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KaW5kZXggZGYzNzljNjc4NjYzNDcyYWJmNGRlZjkyMWQ1ZWFlZGNlNDViNDE2MC4u
MzZlMTYwZjc1MmY0ZTdkYzQ1YjA0MWI5ZDVkYzhiZWNmOTNjOTEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtMTkz
NSw2ICsxOTM1LDcgQEAKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19jb25uZWN0X25vY2Fu
Y2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX3NlbmR0b19ub2NhbmNlbCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19mc2dldHBhdGgpCisgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZmlsZXBvcnRfbWFrZWZkKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVw
b3J0X21ha2Vwb3J0KQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfb3Blbl9u
cCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX2Nsb3NlX25wKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNkMTQyMDlkZmIzMmNkMzc0NWNhMDJlMDZjNGE2MjI1NzE5M2VjYjguLjRhNWY5YzMwYjU5ZDkx
YzE3NzY1YmYyZGQxNjI4ZjMyOWU0NjczNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0x
MC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hU
ZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9B
cnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAg
KGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5k
YXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlOWUwYzJiMDkwM2IzMjll
NGJkYTMwZDlhZWZjZDZjYjBkN2EwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxlU2l6ZSwg
d3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRUZXh0LCBy
ZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0gMDsKKwor
ZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
dGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5j
dGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7Cit9CisKK2Z1
bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVyVmlldyA9IG5l
dyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hhckNvZGVBdChp
KTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNz
SGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5
QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1
ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3Jp
dGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0
aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVhZEJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hhbmRsZS5yZWFk
KHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJyZWFkU2l6ZSIs
ICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJUb1N0cmlu
ZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVj
dG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0ZXN0LgorICAg
ICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxlSGFuZGxlID0g
YXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0Iiwg
eyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
MCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToiKTsKKyAgICAg
ICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCAwLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwg
dG90YWxXcml0ZVNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0
IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHRvdGFsUmVhZFNpemUgKz0g
cmVhZFRleHQubGVuZ3RoICogMjsKKworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShh
Y2Nlc3NIYW5kbGUsIHRvdGFsV3JpdGVTaXplLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7
CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIHRvdGFsUmVhZFNpemUsIHRv
dGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAg
cmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90YWxXcml0ZVNpemUpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVu
Y2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgZmx1
c2goKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgInRvdGFsV3JpdGVTaXplIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgdHJ1
bmNhdGUoKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLnRydW5jYXRlKDQpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
NCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlv
bjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygiYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApIik7Cisg
ICAgICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIHNob3VsZFRo
cm93KCJhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IFwiYXRcIiA6IDAgfSkiKTsKKwor
ICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNkNTliNzM4
ZjIxNDQwOGU4ZDZhMGJjOWE3NzBiODMxMjEwMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorW1dvcmtlcl0gVGhpcyB0
ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjog
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDAKK1tXb3JrZXJdIHRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOgorUEFTUyBb
V29ya2VyXSB3cml0ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRl
eHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSB3cml0ZVNpemUg
aXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFk
QnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgc2Vj
b25kIHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRl
TGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNl
LlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIKK1tXb3JrZXJdIHRlc3QgZmx1c2goKToKK1BBU1Mg
W1dvcmtlcl0gZmlsZVNpemUgaXMgdG90YWxXcml0ZVNpemUKK1tXb3JrZXJdIHRlc3QgdHJ1bmNh
dGUoKToKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgNAorW1dvcmtlcl0gdGVzdCB3cml0ZSgp
IHdpdGggcGVuZGluZyBvcGVyYXRpb246CitbV29ya2VyXSBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
MCkKK1BBU1MgW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiIDog
MCB9KSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzE2ZjcxYzgwMzBkY2QxMGM2NWRhMzgz
NmU0ZDk1YzhjMjYzZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3
b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440756</attachid>
            <date>2021-10-10 21:42:35 -0700</date>
            <delta_ts>2021-10-10 22:15:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010214234.patch</filename>
            <type>text/plain</type>
            <size>51479</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLmIx
MDk0ZTlhNTRhMWRjOWMyNTQ4MDRiNjY0OGJmY2MyOTE0ODUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0
aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVu
Y2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5z
aWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLnRydW5j
YXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLnRy
dW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChp
ZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkwOGZlMWM3
NDBlMWZmZWViMWRlNzgxNDQxNTQuLmEwYmNlNTkwNjFmZWY0NzI0MDY2NDViMTNmNmFlNzkxMGM1
NWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwotICAg
IHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVjNjRhMzczNWRhNzguLjY4M2I4OTNm
ODBhODY0NDAzYjVhNTczZDQ0OTg5ZTgwNjUzZjZmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYm
KT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5k
bGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWly
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIEludGVnZXJDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5
YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2
M2JkZTQyNzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRp
ZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
KQogICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CisgICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJj
ZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBt
X3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50
aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRT
aXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsK
LSAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYg
KG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3
ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVl
OwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4g
YnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2Vz
cyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlm
ICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07
CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25z
LmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVz
dWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxs
cHRyOworICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJy
YXlCdWZmZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+
ZGF0YSgpOworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVy
KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJT
b3VyY2Ugc291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJj
ZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxl
LCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3Mg
fTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBp
ZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9u
Il9zIH07CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxl
KG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmlu
Zyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAg
QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byog
ZGF0YSA9IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNl
Lmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwg
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZl
YTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRm
MDk2M2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1
LDE0ICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4gewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7
CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRl
KHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBA
IC00OCwxMyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxv
bmc+IHJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9u
Zz4gd3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90
IG1fcGVuZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQx
MjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVh
YmFhZGEzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwK
QEAgLTMzLDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6
ZSgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZp
bmVkPiBjbG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0g
QnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7
CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNl
IGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0
aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZmE3ZjY2OTM1NzE2MGI3
OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNy4uZDM3ZDFmYTNhNDEyMTM3ZDdkYWU0OTU1MWExOGRl
YWMxN2VkYjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJ
ZAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxs
YmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlPj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vz
c0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewot
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYg
c2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICAgICAgY3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlv
bigpKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0
KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25u
ZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5MGNiY2Jm
NjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0Li41MjAxYjUwZWMzZmUxZWIzNGQ4ZmU1
YWFjMjEzYjMxOTNlZGZlNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAg
ICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlk
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQg
ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJh
Y2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAg
dm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4
IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJj
MjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApA
QCAtMzEsOSArMzEsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAog
ICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0
Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIsMTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252
ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0
Y2ggKGVycm9yKSB7CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNrZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRp
b24iIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9u
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yIH07Ci0gICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpU
eXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1l
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlR5cGVNaXNtYXRjaDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlR5cGVFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNl
IFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXgg
YzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uYmUyNTE5N2ZiYzQwOGI5
YTkyNjNiOTJkNzM1OWQ2MTYxNjYxMDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hh
cmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJl
dHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDksOSAr
MTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBG
aWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1
dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOwor
ICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hh
bmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOwotICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVy
biBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5k
bGUpIH07CiB9CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiAr
MTg5LDggQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
OwogCi0gICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVT
eXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3Bl
ID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFu
ZGxlKTsKLSAgICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUs
MTEgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwog
Ci0gICAgLy8gRklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJm
b3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0
ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQog
ICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VG
aWxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgs
IG1faWRlbnRpZmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxs
b3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFk
MTQ5OTM4ZDE5N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0
NjI4MDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBT
aGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50
NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJk
NjJmMDYwZTk5ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2Yw
MDllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJl
c29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5k
bGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aAppbmRleCBhODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBi
MWY1NGZmYjNlZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAg
ICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAg
IHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRs
ZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJj
NWU5NDU1YzgxOWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICsz
Myw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4g
KEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmODE1MTUx
ODBkZmZhMmEyZWU2YjUzZDI2YjBhOWM2MWY0NjFlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNp
bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisKKyNpZiBIQVZF
KEZJTEVQT1JUKQorI2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKyNlbmRpZgorCitu
YW1lc3BhY2UgSVBDIHsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisg
ICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlIHsgaGFuZGxlIH07CisjZWxzZQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisgICAgfQorCisgICAgU2hhcmVkRmlsZUhh
bmRsZSgpID0gZGVmYXVsdDsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlKCkgeyByZXR1cm4gbV9oYW5kbGU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisgICAgICAgIG1hY2hfcG9y
dF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRfbWFr
ZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQo
ZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKworICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBNYWNoUG9ydCBtYWNo
UG9ydDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYWNoUG9ydCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisgICAgCitwcml2YXRlOgor
ICAgIFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAgeworICAgIH0KKworICAgIEZpbGVT
eXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElQQworCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KaW5kZXgg
ZjJiYTRmNWE4ZWQwNzJiNWJkZTE2NTMwMjQ3OTEwNzA1ZTIwNzgyMS4uMjIxMDlhMTliN2I2NjIw
ZDFjNTRhNmI4NjExMDE0ZDViMWM0ODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Iu
aW4KKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KQEAgLTEyNzUsNiArMTI3NSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJl
MTliNjRiOTFkNDliM2UuLjcwZWUyZDRmMTNjNzJiNDZhMmVjNmRhMTkwOTkwZTZmZmM3MGE1N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQ3Miw2ICsxNDcyLDcgQEAKIAkJOTMwODVEREYyNkU1QkNGMTAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzA4NURFMDI2RTVC
Q0ZEMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNDI2RTFCQkJEMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzMDg1REUxMjZFNUJEMTMwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMTIyQzg2MjcxMENDREYw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oICovOyB9OwogCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgg
Ki87IH07CiAJCTkzMUExQkUyMjZGODcwMDkwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovOyB9OwpA
QCAtNDk0NSw2ICs0OTQ2LDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcg
LyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEw
NzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzQ2LDYgKzczNDgsNyBAQAogCQkJ
CTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJ
MkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggKi8sCisJCQkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLywKIAkJCQk3QjczMTIzNjI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJN0I3MzEyMzMyNUNDODUyMzAwM0IyNzk2IC8qIFN0cmVh
bUNsaWVudENvbm5lY3Rpb24uaCAqLywKIAkJCQk3QjczMTIzNDI1Q0M4NTI0MDAzQjI3OTYgLyog
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAgKi8sCkBAIC0xMjYzMCw2ICsxMjYzMyw3IEBACiAJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEg
LyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2
MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YTIzOGFjYTRjMzhkNjc1NTRhN2Rh
NjNlZTdkZmUyNTZjN2JjZDhiLi5kZjRlNzA0ZjkwMzBiOWY0M2ZhMWRhNDNkNTBhYzcxN2RhMTU3
NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cApAQCAtMTI2LDcgKzEyNiw4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJl
c3VsdC52YWx1ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6OnBhaXIgeyByZXN1
bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kLmhhbmRsZSgpIH0pOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KaW5kZXggZGYzNzljNjc4NjYzNDcyYWJmNGRlZjkyMWQ1ZWFlZGNlNDViNDE2MC4u
MzZlMTYwZjc1MmY0ZTdkYzQ1YjA0MWI5ZDVkYzhiZWNmOTNjOTEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtMTkz
NSw2ICsxOTM1LDcgQEAKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19jb25uZWN0X25vY2Fu
Y2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX3NlbmR0b19ub2NhbmNlbCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19mc2dldHBhdGgpCisgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZmlsZXBvcnRfbWFrZWZkKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVw
b3J0X21ha2Vwb3J0KQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfb3Blbl9u
cCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX2Nsb3NlX25wKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNkMTQyMDlkZmIzMmNkMzc0NWNhMDJlMDZjNGE2MjI1NzE5M2VjYjguLjRhNWY5YzMwYjU5ZDkx
YzE3NzY1YmYyZGQxNjI4ZjMyOWU0NjczNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0x
MC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hU
ZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9B
cnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAg
KGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5k
YXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlOWUwYzJiMDkwM2IzMjll
NGJkYTMwZDlhZWZjZDZjYjBkN2EwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxlU2l6ZSwg
d3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRUZXh0LCBy
ZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0gMDsKKwor
ZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
dGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5j
dGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7Cit9CisKK2Z1
bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVyVmlldyA9IG5l
dyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hhckNvZGVBdChp
KTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNz
SGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5
QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1
ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3Jp
dGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0
aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVhZEJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hhbmRsZS5yZWFk
KHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJyZWFkU2l6ZSIs
ICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJUb1N0cmlu
ZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVj
dG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0ZXN0LgorICAg
ICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxlSGFuZGxlID0g
YXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0Iiwg
eyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
MCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToiKTsKKyAgICAg
ICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCAwLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwg
dG90YWxXcml0ZVNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0
IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHRvdGFsUmVhZFNpemUgKz0g
cmVhZFRleHQubGVuZ3RoICogMjsKKworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShh
Y2Nlc3NIYW5kbGUsIHRvdGFsV3JpdGVTaXplLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7
CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIHRvdGFsUmVhZFNpemUsIHRv
dGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAg
cmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90YWxXcml0ZVNpemUpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVu
Y2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgZmx1
c2goKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgInRvdGFsV3JpdGVTaXplIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgdHJ1
bmNhdGUoKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLnRydW5jYXRlKDQpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
NCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlv
bjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygiYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApIik7Cisg
ICAgICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIHNob3VsZFRo
cm93KCJhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IFwiYXRcIiA6IDAgfSkiKTsKKwor
ICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNkNTliNzM4
ZjIxNDQwOGU4ZDZhMGJjOWE3NzBiODMxMjEwMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorW1dvcmtlcl0gVGhpcyB0
ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjog
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDAKK1tXb3JrZXJdIHRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOgorUEFTUyBb
V29ya2VyXSB3cml0ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRl
eHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSB3cml0ZVNpemUg
aXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFk
QnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgc2Vj
b25kIHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRl
TGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNl
LlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIKK1tXb3JrZXJdIHRlc3QgZmx1c2goKToKK1BBU1Mg
W1dvcmtlcl0gZmlsZVNpemUgaXMgdG90YWxXcml0ZVNpemUKK1tXb3JrZXJdIHRlc3QgdHJ1bmNh
dGUoKToKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgNAorW1dvcmtlcl0gdGVzdCB3cml0ZSgp
IHdpdGggcGVuZGluZyBvcGVyYXRpb246CitbV29ya2VyXSBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
MCkKK1BBU1MgW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiIDog
MCB9KSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzE2ZjcxYzgwMzBkY2QxMGM2NWRhMzgz
NmU0ZDk1YzhjMjYzZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3
b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440757</attachid>
            <date>2021-10-10 22:15:22 -0700</date>
            <delta_ts>2021-10-10 22:27:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010221521.patch</filename>
            <type>text/plain</type>
            <size>51479</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLmIx
MDk0ZTlhNTRhMWRjOWMyNTQ4MDRiNjY0OGJmY2MyOTE0ODUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0
aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24o
KS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVu
Y2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5z
aWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLnRydW5j
YXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLnRy
dW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpm
bHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5
c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChp
ZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkwOGZlMWM3
NDBlMWZmZWViMWRlNzgxNDQxNTQuLmEwYmNlNTkwNjFmZWY0NzI0MDY2NDViMTNmNmFlNzkxMGM1
NWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwotICAg
IHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRydW5jYXRl
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25n
PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDRjMGYzYjAwZmEyZGNmODY2ODUzYWViNjE0MGVjNjRhMzczNWRhNzguLjY4M2I4OTNm
ODBhODY0NDAzYjVhNTczZDQ0OTg5ZTgwNjUzZjZmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYm
KT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRs
ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1c2luZyBHZXRBY2Nlc3NIYW5k
bGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWly
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZv
cm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAgIHVzaW5nIEludGVnZXJDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5
YTg0Yjg0OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2
M2JkZTQyNzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuY3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVI
YW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRp
ZmllcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIp
CitGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
KQogICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
CisgICAgLCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lk
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJj
ZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBt
X3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50
aWZpZXIsIHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisK
KyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJy
ZWQ8SURMVW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRT
aXplKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0
aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsK
LSAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYgcHJvbWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYg
KG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3
ZWFrVGhpcy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVl
OwogfQogCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4g
YnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2Vz
cyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlm
ICghYnVmZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07
CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25z
LmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVz
dWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxs
cHRyOworICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJy
YXlCdWZmZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+
ZGF0YSgpOworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVy
KSB7CisgICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJT
b3VyY2Ugc291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJj
ZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxl
LCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3Mg
fTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcg
bG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVm
ZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBp
ZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9u
Il9zIH07CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxl
KG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmlu
Zyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAg
QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byog
ZGF0YSA9IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNl
Lmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwg
ZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsK
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZl
YTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRm
MDk2M2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1
LDE0ICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4gewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7
CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRl
KHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBA
IC00OCwxMyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxv
bmc+IHJlYWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9u
Zz4gd3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5
c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRs
ZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90
IG1fcGVuZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQx
MjFlMjVjNzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVh
YmFhZGEzNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwK
QEAgLTMzLDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6
ZSgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZp
bmVkPiBjbG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0g
QnVmZmVyU291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7
CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNl
IGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0
aW9uYXJ5IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZmE3ZjY2OTM1NzE2MGI3
OTFkYzI1YTFhMzIwODNkYTI2OTg1NjZiNy4uZDM3ZDFmYTNhNDEyMTM3ZDdkYWU0OTU1MWExOGRl
YWMxN2VkYjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJ
ZAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxs
YmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlPj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vz
c0hhbmRsQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewot
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYg
c2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAg
ICAgICAgY3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlv
bigpKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0
KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25u
ZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5MGNiY2Jm
NjczYTU4NmYyNzQ0MmY5NjQwMzQ3YTkyNTI2NTBjZmM0Li41MjAxYjUwZWMzZmUxZWIzNGQ4ZmU1
YWFjMjEzYjMxOTNlZGZlNDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAg
ICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlk
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQg
ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJh
Y2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAg
dm9pZCBjb21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPHVpbnQ2NF90PiYmIHJlc3VsdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4
IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJj
MjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApA
QCAtMzEsOSArMzEsMTAgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAog
ICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0
aW9uLAorICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0
Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIsMTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3QgewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252
ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0
Y2ggKGVycm9yKSB7CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNrZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRp
b24iIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9u
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yIH07Ci0gICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2g6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpU
eXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1l
OgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2Vi
Q29yZTo6SW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlR5cGVNaXNtYXRjaDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdl
YkNvcmU6OlR5cGVFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNl
IFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXgg
YzhhMDE0MTNjYjMzMTk2NTNhOGViN2U3MmYxZWVjMzQ4M2M2YTY5Zi4uYmUyNTE5N2ZiYzQwOGI5
YTkyNjNiOTJkNzM1OWQ2MTYxNjYxMDk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9y
LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hh
cmVkRmlsZUhhbmRsZS5oIgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTE0MCw3ICsxNDEsNyBAQCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJl
dHVybiByZXN0UGF0aC5zcGxpdChwYXRoU2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CitFeHBlY3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKQogewogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNDksOSAr
MTUwLDIwIEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZFN0YXRlKTsKIAorICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBG
aWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1
dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOwor
ICAgIGlmICghaXBjSGFuZGxlKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hh
bmRsZSk7CisgICAgICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlKTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFk
U2FmZSgpOwotICAgIHJldHVybiAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVy
biBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5k
bGUpIH07CiB9CiAKIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE3NywxMiAr
MTg5LDggQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUoV2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
OwogCi0gICAgYXV0byBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVT
eXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3Bl
ID0gbWFrZVNjb3BlRXhpdChbJl0gewotICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFu
ZGxlKTsKLSAgICB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVG
aWxlKGhhbmRsZSwgc2l6ZSk7CisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6
dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBzaXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
cmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKQEAgLTE5Nyw3ICsyMDUs
MTEgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwog
Ci0gICAgLy8gRklYTUU6IHdoZW4gd3JpdGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJm
b3JtIGFjdHVhbCBmbHVzaCBoZXJlLgorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVt
OjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0
ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIApAQCAtMjA5LDYgKzIyMSwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQog
ICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VG
aWxlKG1faGFuZGxlKTsKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7CisKICAgICBtX21hbmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgs
IG1faWRlbnRpZmllcik7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxs
b3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IGU0N2VkM2ExNmVlOTVhYjFk
MTQ5OTM4ZDE5N2Y2NDYzZDk3NDkwMTcuLmUwYmEwY2Q0MDgyNGUxY2MxM2JiNjdlN2U4NDdlYmQ0
NjI4MDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBT
aGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAtNTAsNyArNTQsOCBAQCBwdWJsaWM6CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50
NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcik7CkBAIC02NSw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0
aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDM2ODYxNzQyODE4MGQ3ODQ2YjJk
NjJmMDYwZTk5ZTVkYzdhN2RkNjMuLjY1MDFhOGZmM2Q1M2NiMTg3OWViZWFjOWY1MWMyNGRhY2Yw
MDllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJl
c29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5k
bGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aAppbmRleCBhODE4ODUxZmYxNDUzODY4YTc0ZDE3NmZiNmNiMjhmMjFhYjMyMzFiLi5mOGEyYjBi
MWY1NGZmYjNlZGFiMTMyYzhkM2NiMTdiNjQwYzFiMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRl
SWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAg
ICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAg
IHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47
CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRs
ZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAg
ICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNGZlYTI3NjVmZDkyYTk4MDYwY2QwNDAwNjJj
NWU5NDU1YzgxOWZjMC4uMTc3NmVjZDYxOWRhMTI1ZDdmMGE0NzJjZjBiMGJjMGNjMDM0MDkyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICsz
Myw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4g
KEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmODE1MTUx
ODBkZmZhMmEyZWU2YjUzZDI2YjBhOWM2MWY0NjFlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw4NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNp
bmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CisKKyNpZiBIQVZF
KEZJTEVQT1JUKQorI2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKyNlbmRpZgorCitu
YW1lc3BhY2UgSVBDIHsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisg
ICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlIHsgaGFuZGxlIH07CisjZWxzZQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCisgICAgfQorCisgICAgU2hhcmVkRmlsZUhh
bmRsZSgpID0gZGVmYXVsdDsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFu
ZGxlKCkgeyByZXR1cm4gbV9oYW5kbGU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CisgICAgeworI2lmIEhBVkUoRklMRVBPUlQpCisgICAgICAgIG1hY2hfcG9y
dF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgZmlsZXBvcnRfbWFr
ZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQo
ZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyNlbmRpZgorICAgIH0KKworICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBNYWNoUG9ydCBtYWNo
UG9ydDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYWNoUG9ydCkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7CisjZW5k
aWYKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisgICAgCitwcml2YXRlOgor
ICAgIFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRs
ZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAgeworICAgIH0KKworICAgIEZpbGVT
eXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIElQQworCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KaW5kZXgg
ZjJiYTRmNWE4ZWQwNzJiNWJkZTE2NTMwMjQ3OTEwNzA1ZTIwNzgyMS4uMjIxMDlhMTliN2I2NjIw
ZDFjNTRhNmI4NjExMDE0ZDViMWM0ODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2Iu
aW4KKysrIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KQEAgLTEyNzUsNiArMTI3NSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkMjA0MWZhNTJkZjM2YTkxNjZmYzcyODJl
MTliNjRiOTFkNDliM2UuLjcwZWUyZDRmMTNjNzJiNDZhMmVjNmRhMTkwOTkwZTZmZmM3MGE1N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTQ3Miw2ICsxNDcyLDcgQEAKIAkJOTMwODVEREYyNkU1QkNGMTAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQk5MzA4NURFMDI2RTVC
Q0ZEMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDNDI2RTFCQkJEMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggKi87IH07CiAJCTkzMDg1REUxMjZFNUJEMTMwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTkzMTIyQzg2MjcxMENDREYw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oICovOyB9OwogCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmggKi87IH07CiAJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxQTA3NTMyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgg
Ki87IH07CiAJCTkzMUExQkUyMjZGODcwMDkwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFB
MUJFMDI2Rjg1QzMyMDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oICovOyB9OwpA
QCAtNDk0NSw2ICs0OTQ2LDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcg
LyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0
Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEw
NzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzQ2LDYgKzczNDgsNyBAQAogCQkJ
CTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJ
MkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggKi8sCisJCQkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVI
YW5kbGUuaCAqLywKIAkJCQk3QjczMTIzNjI1Q0M4NTI0MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJN0I3MzEyMzMyNUNDODUyMzAwM0IyNzk2IC8qIFN0cmVh
bUNsaWVudENvbm5lY3Rpb24uaCAqLywKIAkJCQk3QjczMTIzNDI1Q0M4NTI0MDAzQjI3OTYgLyog
U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlci5jcHAgKi8sCkBAIC0xMjYzMCw2ICsxMjYzMyw3IEBACiAJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEg
LyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2
MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCA3YTIzOGFjYTRjMzhkNjc1NTRhN2Rh
NjNlZTdkZmUyNTZjN2JjZDhiLi5kZjRlNzA0ZjkwMzBiOWY0M2ZhMWRhNDNkNTBhYzcxN2RhMTU3
NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cApAQCAtMTI2LDcgKzEyNiw4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRU
b0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJl
c3VsdC52YWx1ZSgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6OnBhaXIgeyByZXN1
bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kLmhhbmRsZSgpIH0pOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KaW5kZXggZGYzNzljNjc4NjYzNDcyYWJmNGRlZjkyMWQ1ZWFlZGNlNDViNDE2MC4u
MzZlMTYwZjc1MmY0ZTdkYzQ1YjA0MWI5ZDVkYzhiZWNmOTNjOTEyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtMTkz
NSw2ICsxOTM1LDcgQEAKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19jb25uZWN0X25vY2Fu
Y2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX3NlbmR0b19ub2NhbmNlbCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19mc2dldHBhdGgpCisgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZmlsZXBvcnRfbWFrZWZkKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVw
b3J0X21ha2Vwb3J0KQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfb3Blbl9u
cCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX2Nsb3NlX25wKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNkMTQyMDlkZmIzMmNkMzc0NWNhMDJlMDZjNGE2MjI1NzE5M2VjYjguLjRhNWY5YzMwYjU5ZDkx
YzE3NzY1YmYyZGQxNjI4ZjMyOWU0NjczNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0x
MC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hU
ZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9B
cnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAg
KGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5k
YXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlOWUwYzJiMDkwM2IzMjll
NGJkYTMwZDlhZWZjZDZjYjBkN2EwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxlU2l6ZSwg
d3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRUZXh0LCBy
ZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0gMDsKKwor
ZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
dGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5j
dGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4gU3RyaW5nLmZy
b21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7Cit9CisKK2Z1
bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVyVmlldyA9IG5l
dyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hhckNvZGVBdChp
KTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNz
SGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5
QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1
ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3Jp
dGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0
aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVhZEJ1ZmZlciA9
IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hhbmRsZS5yZWFk
KHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJyZWFkU2l6ZSIs
ICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJUb1N0cmlu
ZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVj
dG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0ZXN0LgorICAg
ICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxlSGFuZGxlID0g
YXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUudHh0Iiwg
eyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxl
SGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
MCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToiKTsKKyAgICAg
ICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCAwLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwg
dG90YWxXcml0ZVNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0
IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHRvdGFsUmVhZFNpemUgKz0g
cmVhZFRleHQubGVuZ3RoICogMjsKKworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShh
Y2Nlc3NIYW5kbGUsIHRvdGFsV3JpdGVTaXplLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7
CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIHRvdGFsUmVhZFNpemUsIHRv
dGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAg
cmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90YWxXcml0ZVNpemUpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVu
Y2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgZmx1
c2goKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgInRvdGFsV3JpdGVTaXplIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgdHJ1
bmNhdGUoKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLnRydW5jYXRlKDQpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
NCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9wZXJhdGlv
bjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygiYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApIik7Cisg
ICAgICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIHNob3VsZFRo
cm93KCJhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IFwiYXRcIiA6IDAgfSkiKTsKKwor
ICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgZmluaXNoVGVzdCgp
OworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3IpOworICAg
IH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNkNTliNzM4
ZjIxNDQwOGU4ZDZhMGJjOWE3NzBiODMxMjEwMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorW1dvcmtlcl0gVGhpcyB0
ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjog
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDAKK1tXb3JrZXJdIHRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOgorUEFTUyBb
V29ya2VyXSB3cml0ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRl
eHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSB3cml0ZVNpemUg
aXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFk
QnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgc2Vj
b25kIHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRl
TGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNl
LlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIKK1tXb3JrZXJdIHRlc3QgZmx1c2goKToKK1BBU1Mg
W1dvcmtlcl0gZmlsZVNpemUgaXMgdG90YWxXcml0ZVNpemUKK1tXb3JrZXJdIHRlc3QgdHJ1bmNh
dGUoKToKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgNAorW1dvcmtlcl0gdGVzdCB3cml0ZSgp
IHdpdGggcGVuZGluZyBvcGVyYXRpb246CitbV29ya2VyXSBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUo
MCkKK1BBU1MgW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAiYXQiIDog
MCB9KSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzE2ZjcxYzgwMzBkY2QxMGM2NWRhMzgz
NmU0ZDk1YzhjMjYzZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1s
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3
b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440758</attachid>
            <date>2021-10-10 22:27:31 -0700</date>
            <delta_ts>2021-10-10 22:42:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010222729.patch</filename>
            <type>text/plain</type>
            <size>51459</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLjY5
ZGYzYmNkNTEyYmM4OTUwMTUxZDgyNTIxMmI2NmM3NjgxOWZkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWlu
dDY0X3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmdldFNpemUo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1
bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlz
ZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25n
IGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRp
ZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUo
V1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRl
bnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50
aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIo
KSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggYWZjZWExZjcwMTM3OTA4ZmUxYzc0MGUxZmZlZWIx
ZGU3ODE0NDE1NC4uNzQyMDc2ODM4ODI1MWFjNjhhNTVlYmIzNGQwYThjMmZjNTlkNWVjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsK
IAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7Ci0gICAgdm9pZCBnZXRT
aXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwotICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAg
dm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+JiYpOworICAgIHZvaWQg
dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYm
KT4mJik7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogICAg
IHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA0YzBmM2IwMGZhMmRj
Zjg2Njg1M2FlYjYxNDBlYzY0YTM3MzVkYTc4Li42ODNiODkzZjgwYTg2NDQwM2I1YTU3M2Q0NDk4
OWU4MDY1M2Y2ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTYW1lRW50cnlD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+Owog
ICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OwogICAgIHVzaW5nIFJlc29s
dmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0
cmluZz4+JiYpPjsKLSAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyPiYmKT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpPjsK
ICAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBJbnRlZ2VyQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IGZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNm
MGI2ZDYxZGU3NmQyYWIuLjQ4OTNjZmU0MjA3MTVmOWRlYWE1NjNiZGU0Mjc3MGNkNDYyYzNkZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzQsMTQg
KzM0LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQ
bGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZp
ZXIsIGZpbGUpKTsKIH0KIAotRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxl
JiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKICAgICA6IG1fc291cmNlKHNv
dXJjZSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9maWxlKGZpbGUp
CiB7CiB9CiAKQEAgLTUzLDE3ICs1NCwzNSBAQCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRp
Zmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQrKzsKKyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdl
YWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9z
b3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVy
YXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7
CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmZsdXNo
KG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9u
Q291bnQrKzsKKyAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlz
LT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdU
Rk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCkBAIC03MSw5
ICs5MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7
CiAKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwogICAgIG1fc291cmNlLT5jbG9zZSht
X2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICBpZiAod2Vha1RoaXMpIHsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Bl
bmRpbmdPcGVyYXRpb25Db3VudC0tOwogICAgICAgICAgICAgd2Vha1RoaXMtPmRpZENsb3NlKCk7
CisgICAgICAgIH0KIAogICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwog
ICAgIH0pOwpAQCAtODQsNCArMTA2LDU5IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmRpZENsb3NlKCkKICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKIH0KIAorRXhjZXB0aW9uT3I8
dW5zaWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZChzdGQ6
Om9wdGlvbmFsPEJ1ZmZlclNvdXJjZTo6VmFyaWFudFR5cGU+IGJ1ZmZlciwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OkZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpCit7Cisg
ICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8
IG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworCisgICAgaWYgKG1fcGVuZGluZ09wZXJhdGlvbkNvdW50KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlz
aGVkIG9wZXJhdGlvbiJfcyB9OworICAgICAgICAKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9
IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6Rmls
ZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQgYXQg
b2Zmc2V0Il9zIH07CisKKyAgICB2b2lkKiBkYXRhID0gbnVsbHB0cjsKKyAgICBXVEY6OnN3aXRj
aE9uKCpidWZmZXIsIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyVmlldz4mIGJ1ZmZl
clZpZXcpIHsKKyAgICAgICAgZGF0YSA9IGJ1ZmZlclZpZXctPmRhdGEoKTsKKyAgICB9LCBbJmRh
dGFdIChSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICBkYXRhID0g
YnVmZmVyLT5kYXRhKCk7CisgICAgfSk7CisgICAgQnVmZmVyU291cmNlIHNvdXJjZSB7IFdURk1v
dmUoKmJ1ZmZlcikgfTsKKyAgICBhdXRvIHNpemUgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgcmVz
dWx0ID0gRmlsZVN5c3RlbTo6cmVhZEZyb21GaWxlKG1fZmlsZSwgZGF0YSwgc2l6ZSk7CisgICAg
aWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQgZnJvbSBmaWxlIl9zIH07CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjp3cml0ZShzdGQ6Om9wdGlvbmFsPEJ1ZmZlclNvdXJjZTo6VmFyaWFudFR5
cGU+IGJ1ZmZlciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVzeXN0ZW1SZWFkV3Jp
dGVPcHRpb25zIG9wdGlvbnMpCit7CisgICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8IG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYgKG1fcGVuZGluZ09wZXJhdGlv
bkNvdW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJB
Y2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbiJfcyB9OworCisgICAgaWYgKCFi
dWZmZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKwor
ICAgIGludCByZXN1bHQgPSBGaWxlU3lzdGVtOjpzZWVrRmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQs
IEZpbGVTeXN0ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdpbm5pbmcpOworICAgIGlmIChyZXN1bHQg
PT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZh
aWxlZCB0byB3cml0ZSBhdCBvZmZzZXQiX3MgfTsKKworICAgIEJ1ZmZlclNvdXJjZSBidWZmZXJT
b3VyY2UgPSBXVEZNb3ZlKCpidWZmZXIpOworICAgIGF1dG8qIGRhdGEgPSBidWZmZXJTb3VyY2Uu
ZGF0YSgpOworICAgIGF1dG8gc2l6ZSA9IGJ1ZmZlclNvdXJjZS5sZW5ndGgoKTsKKyAgICByZXN1
bHQgPSBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX2ZpbGUsIGRhdGEsIHNpemUpOworICAgIGlm
IChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIkZhaWxlZCB0byB3cml0ZSB0byBmaWxlIl9zIH07CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oCmluZGV4IDI5ZTQxNTdiNjU0MWI5M2U2ZWE1ZmUwMjM3ZjBjZjIxNWQwM2Mz
YmYuLmUxMTRiODYzZDgxZWY3YmZkZTczNWY2MGQwZDQzZmM0ZjA5NjNlOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC0yNSwxNCArMjUsMTcgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgor
I2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKIHRlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFt
ZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
IDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IHsKIHB1YmxpYzoKQEAg
LTQwLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7CiAg
ICAgfTsKIAotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0
ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllcik7CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRl
KEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogICAgIH5GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSgpOwogCiAgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtNDgsMTMgKzUxLDE3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2
b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGRpZENsb3Nl
KCk7CisgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiByZWFkKHN0ZDo6b3B0aW9u
YWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25z
KTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKHN0ZDo6b3B0aW9u
YWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25z
KTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSk7CiAKICAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOwogICAgIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgYm9v
bCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX3BlbmRpbmdPcGVyYXRpb25D
b3VudCB7IDAgfTsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9maWxlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5pZGwKaW5kZXggMTEyMDY0YTZkZjYxMWM0MTIxZTI1YzcxMDJmMDMzMDNjZTQ0
OTRhYS4uNmVhNTQzOTdlZWFmMzkwZDZjMTc4NTE4ZjcyMTY1YWJhYWRhMzQwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCkBAIC0zMyw2ICszMyw4IEBACiAg
ICAgUHJvbWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKICAgICBQcm9taXNlPHVu
ZGVmaW5lZD4gZmx1c2goKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsKKyAgICB1
bnNpZ25lZCBsb25nIGxvbmcgcmVhZChbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIs
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpOworICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyB3cml0ZShbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIsIEZpbGVzeXN0ZW1S
ZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpOwogfTsKIAogZGljdGlvbmFyeSBGaWxlc3lzdGVtUmVh
ZFdyaXRlT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCmluZGV4IGZhN2Y2NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4
NTY2YjcuLmQzN2QxZmEzYTQxMjEzN2Q3ZGFlNDk1NTFhMThkZWFjMTdlZGI5N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0x
OTMsNyArMTkzLDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRp
ZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWQKICAgICAgICAgY2FsbGJhY2so
V1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyPiYmIHJlc3VsdCkKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYgcmVzdWx0KQog
ewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrcy50YWtl
KGNhbGxiYWNrSWRlbnRpZmllcikpCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7
CkBAIC0yMjEsNyArMjIxLDEwIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJCiAKICAgICBjYWxs
T25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1f
c2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29u
bmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFk
Q2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdv
cmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHdvcmtlclRo
cmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1
bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGF1dG8gY3Jvc3NUaHJlYWRSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIGNyb3NzVGhyZWFkUmVz
dWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdC5leGNlcHRpb24oKSk7CisgICAgICAgICAgICB3
b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmll
ciwgcmVzdWx0ID0gV1RGTW92ZShjcm9zc1RocmVhZFJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdv
cmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCiAg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggOTBjYmNiZjY3M2E1ODZmMjc0NDJmOTY0MDM0
N2E5MjUyNjUwY2ZjNC4uNTIwMWI1MGVjM2ZlMWViMzRkOGZlNWFhYzIxM2IzMTkzZWRmZTQwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApA
QCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRJc1NhbWVFbnRyeShDYWxsYmFj
a0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZvaWQgZGlkR2V0SGFuZGxl
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXI+JiYpOwogICAgIHZvaWQgZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKLSAgICB2b2lkIGRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGRpZENyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5k
bGU+PiYmKTsKICAgICB2b2lkIGNvbXBsZXRlVm9pZENhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpOwogICAgIHZvaWQgY29tcGxldGVJbnRlZ2Vy
Q2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRfdD4mJiByZXN1
bHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCAyODgyNDRmOGRmMGJhNGM0ZTFi
N2IzODBkMzYwOTJkMzViMGI0YzhhLi4wMjc3MzdhMmI0MGIyYzI3MGVhYTY0YjhhNWY5ZTY0MzAx
ZWU4Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAgLTMxLDkgKzMxLDEwIEBACiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUVycm9yIDog
dWludDhfdCB7CisgICAgQmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICBGaWxlTm90Rm91bmQsCi0g
ICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICBJbnZhbGlkTmFt
ZSwKICAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNoLAogICAgIFVua25vd24KQEAg
LTQyLDE2ICs0MywxOCBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50
OF90IHsKIGlubGluZSBXZWJDb3JlOjpFeGNlcHRpb24gY29udmVydFRvRXhjZXB0aW9uKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgZXJyb3IpCiB7CiAgICAgc3dpdGNoIChlcnJvcikgeworICAgIGNh
c2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1cHBvcnRlZDoKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5vdFN1cHBvcnRlZEVycm9yLCAi
QmFja2VuZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIiB9OwogICAgIGNhc2UgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kOgogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9Owot
ICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2Fz
ZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxp
ZCIgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKICAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVy
cm9yIH07CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsK
ICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd246CiAgICAgICAgIGJyZWFr
OwogICAgIH0KQEAgLTc0LDkgKzc3LDEwIEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHsKICAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3IsCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2Vu
ZE5vdFN1cHBvcnRlZCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpG
aWxlTm90Rm91bmQsCi0gICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52
YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZE1vZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJ
bnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZh
bGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1p
c21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IGM4YTAxNDEzY2IzMzE5NjUzYThl
YjdlNzJmMWVlYzM0ODNjNmE2OWYuLmJlMjUxOTdmYmM0MDhiOWE5MjYzYjkyZDczNTlkNjE2MTY2
MTA5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUuaCIKICNp
bmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDAsNyArMTQx
LDcgQEAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHYKICAgICByZXR1cm4gcmVzdFBhdGguc3BsaXQo
cGF0aFNlcGFyYXRvcik7CiB9CiAKLUV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQorRXhwZWN0ZWQ8RmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKIHsKICAg
ICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwpAQCAtMTQ5LDkgKzE1MCwyMCBAQCBFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+CiAgICAgaWYgKCFhY3F1aXJlZCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CiAKKyAgICBtX2hh
bmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5N
b2RlOjpSZWFkV3JpdGUpOworICAgIGlmIChtX2hhbmRsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRvIGlwY0hhbmRsZSA9IElQQzo6
U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKG1faGFuZGxlKTsKKyAgICBpZiAoIWlwY0hhbmRsZSkg
eworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5kbGUpOworICAgICAgICBtX2hh
bmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3Vw
cG9ydGVkKTsKKyAgICB9CisKICAgICBBU1NFUlQoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSk7
CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICByZXR1cm4g
Km1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICByZXR1cm4gc3RkOjpwYWlyIHsgKm1fYWN0
aXZlU3luY0FjY2Vzc0hhbmRsZSwgV1RGTW92ZSgqaXBjSGFuZGxlKSB9OwogfQogCiBFeHBlY3Rl
ZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCkBAIC0xNzcsMTIgKzE4OSw4IEBAIHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKFdlYkNvcmU6CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0
aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICBy
ZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAotICAgIGF1dG8gaGFuZGxl
ID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6
OlJlYWRXcml0ZSk7Ci0gICAgYXV0byBjbG9zZUZpbGVTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZd
IHsKLSAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRsZSk7Ci0gICAgfSk7Ci0KLSAg
ICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShoYW5kbGUsIHNpemUpOwor
ICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShtX2hhbmRs
ZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpVbmtub3duOwogCkBAIC0xOTcsNyArMjA1LDExIEBAIHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKFdl
YkNvcmU6OkZpCiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1
cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAotICAgIC8vIEZJWE1FOiB3aGVu
IHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwgZmx1c2ggaGVy
ZS4KKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVzaEZpbGUobV9oYW5k
bGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VW5rbm93bjsKKwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTIwOSw2
ICsyMjEsMTAgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duOwogCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CisgICAg
bV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworCiAgICAg
bV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOwogICAg
IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuaAppbmRleCBlNDdlZDNhMTZlZTk1YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5
MDE3Li5lMGJhMGNkNDA4MjRlMWNjMTNiYjY3ZTdlODQ3ZWJkNDYyODA3NGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMzAsNiArMzAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjsK
QEAgLTUwLDcgKzU0LDggQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KTsKICAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAK
LSAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAg
ICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKKyAgICBF
eHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKCk7CiAgICAgRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IGdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHRydW5j
YXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0
X3Qgc2l6ZSk7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBmbHVz
aChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwpAQCAtNjUs
NiArNzAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgU3RyaW5nIG1fbmFt
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcj4gbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmNwcAppbmRleCAzNjg2MTc0MjgxODBkNzg0NmIyZDYyZjA2MGU5OWU1ZGM3YTdkZDYz
Li42NTAxYThmZjNkNTNjYjE4NzllYmVhYzlmNTFjMjRkYWNmMDA5ZTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjI2LDcgKzIyNiw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5yZXNvbHZlKHRhcmdldElkZW50aWZp
ZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggYTgxODg1MWZmMTQ1
Mzg2OGE3NGQxNzZmYjZjYjI4ZjIxYWIzMjMxYi4uZjhhMmIwYjFmNTRmZmIzZWRhYjEzMmM4ZDNj
YjE3YjY0MGMxYjA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMzMsNiArMzMsMTAg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFz
cyBTaGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ2xp
ZW50T3JpZ2luOwogfQpAQCAtNzAsNyArNzQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGly
ZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVtb3ZlRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5n
PiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHVzaW5nIEFjY2Vz
c0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OworICAgIHZvaWQgY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2
NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgdHJ1bmNhdGVGb3JB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CiAgICAgdm9pZCBmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCmluZGV4IDRmZWEyNzY1ZmQ5MmE5ODA2MGNkMDQwMDYyYzVlOTQ1NWM4MTlmYzAuLjE3NzZl
Y2Q2MTlkYTEyNWQ3ZjBhNDcyY2YwYjBiYzBjYzAzNDA5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzMsNyArMzMsNyBAQAogICAgIFJlbW92ZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmlu
ZyBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBSZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0
b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
CiAKLSAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYworICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVk
RmlsZUhhbmRsZT4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIEdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDx1aW50NjRfdCwg
V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgVHJ1bmNh
dGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEZsdXNoRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1No
YXJlZEZpbGVIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjgxNTE1MTgwZGZmYTJhMmVlNmI1M2QyNmIw
YTljNjFmNDYxZTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvU2hhcmVkRmlsZUhhbmRsZS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorCisjaWYgSEFWRShGSUxFUE9SVCkKKyNpbmNsdWRl
IDxTeXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIElQQyB7CisKK2Ns
YXNzIFNoYXJlZEZpbGVIYW5kbGUgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFNoYXJlZEZpbGVIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICByZXR1cm4gU2hhcmVk
RmlsZUhhbmRsZSB7IGhhbmRsZSB9OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyNlbmRpZgorICAgIH0KKworICAgIFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7Cisg
ICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFu
ZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBtYWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0g
TUFDSF9QT1JUX05VTEw7CisgICAgICAgIGZpbGVwb3J0X21ha2Vwb3J0KG1faGFuZGxlLCAmZmls
ZXBvcnQpOworICAgICAgICBlbmNvZGVyIDw8IE1hY2hQb3J0KGZpbGVwb3J0LCBNQUNIX01TR19U
WVBFX01PVkVfU0VORCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxTaGFyZWRGaWxlSGFuZGxlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisjaWYg
SEFWRShGSUxFUE9SVCkKKyAgICAgICAgTWFjaFBvcnQgbWFjaFBvcnQ7CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobWFjaFBvcnQpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoZmls
ZXBvcnRfbWFrZWZkKG1hY2hQb3J0LnBvcnQoKSkpOworI2VuZGlmCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBTaGFyZWRGaWxlSGFuZGxl
KEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgICAgIDogbV9oYW5k
bGUoaGFuZGxlKQorICAgIHsKKyAgICB9CisKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVI
YW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07
Cit9OworCit9IC8vIG5hbWVzcGFjZSBJUEMKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluCmluZGV4IGYyYmE0ZjVhOGVkMDcyYjViZGUx
NjUzMDI0NzkxMDcwNWUyMDc4MjEuLjIyMTA5YTE5YjdiNjYyMGQxYzU0YTZiODYxMTAxNGQ1YjFj
NDgyNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50LnNiLmluCkBAIC0xMjc1LDYgKzEyNzUsNyBAQAogICAgICAgICAoc3lzY2FsbC1udW1iZXIg
U1lTX2Nvbm5lY3Rfbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2VuZHRv
X25vY2FuY2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZmlsZXBvcnRfbWFrZXBvcnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZ3VhcmRlZF9vcGVuX25wKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRf
Y2xvc2VfbnApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlZDIwNDFmYTUyZGYzNmE5MTY2ZmM3MjgyZTE5YjY0YjkxZDQ5YjNlLi43MGVl
MmQ0ZjEzYzcyYjQ2YTJlYzZkYTE5MDk5MGU2ZmZjNzBhNTdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzIsNiArMTQ3Miw3IEBA
CiAJCTkzMDg1RERGMjZFNUJDRjEwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMDg1RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJOTMwODVERTAyNkU1QkNGRDAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwODVEQzQyNkUxQkJCRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oICovOyB9OwogCQk5MzA4NURFMTI2RTVCRDEzMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJN
ZXNzYWdlcy5oICovOyB9OworCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLzsgfTsKIAkJ
OTMxMkJBRDUyNkYzM0MyNjAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTA3NTAyNkYw
NjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5MzEy
QkFENjI2RjMzQzI5MDBGRERGNUYgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUzMjZGMDZBQjQw
MDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovOyB9OwogCQk5MzFBMUJFMjI2
Rjg3MDA5MDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTFCRTAyNkY4NUMzMjAwODFBN0U1
IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLzsgfTsKQEAgLTQ5NDUsNiArNDk0Niw3IEBA
CiAJCTkzMDg1RENDMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtT
dG9yYWdlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
MDg1RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZEZpbGVIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTAyNkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTEy
NkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MjI2RjA2QUI0MDA0NDc0Q0Qg
LyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzM0Niw2ICs3MzQ4LDcgQEAKIAkJCQk1Q0M1REI5MTIxNDg4RTE2MDA2
Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5oICovLAogCQkJCTJEQzE4NTVFREJGQjg1MEJBMEI2
RDA2RCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLywKIAkJCQkyREMxODgxQUNC
Q0FCNUQ1N0M1QzZFRjAgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICovLAorCQkJCTkz
MTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi8sCiAJCQkJN0I3
MzEyMzYyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwICovLAog
CQkJCTdCNzMxMjMzMjVDQzg1MjMwMDNCMjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmgg
Ki8sCiAJCQkJN0I3MzEyMzQyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZm
ZXIuY3BwICovLApAQCAtMTI2MzAsNiArMTI2MzMsNyBAQAogCQkJCUExODM0OTQyMjRFRjQ2Nzgw
MEJEQzlBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREMxOEZG
NkVGMkEzMTMwQzEzMDE3NjcgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjRBNkQ2QkMyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0
SGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyog
U2hhcmVkRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyNEJFRDUxMjA4OTREMTAw
RkJCMDU5IC8qIFNoYXJlZE1lbW9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q0QjREOUQxRTc2
NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzEzRjdFQzFGN0RBRTA4MDBCOTQ0RUIgLyogU2hhcmVkU3RyaW5nSGFzaFN0b3JlLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKaW5kZXggN2EyMzhhY2E0YzM4ZDY3NTU0YTdkYTYzZWU3ZGZlMjU2YzdiY2Q4Yi4u
ZGY0ZTcwNGY5MDMwYjlmNDNmYTFkYTQzZDUwYWM3MTdkYTE1NzUyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTEyNiw3ICsxMjYsOCBA
QCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSAogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVy
cm9yKCkpKTsKIAotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1
ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQudmFsdWUoKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpwYWlyIHsgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3Vs
dFZhbHVlLnNlY29uZC5oYW5kbGUoKSB9KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IGRmMzc5
YzY3ODY2MzQ3MmFiZjRkZWY5MjFkNWVhZWRjZTQ1YjQxNjAuLjM2ZTE2MGY3NTJmNGU3ZGM0NWIw
NDFiOWQ1ZGM4YmVjZjkzYzkxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTE5MzUsNiArMTkzNSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZDE0MjA5ZGZiMzJjZDM3NDVj
YTAyZTA2YzRhNjIyNTcxOTNlY2I4Li40YTVmOWMzMGI1OWQ5MWMxNzc2NWJmMmRkMTYyOGYzMjll
NDY3Mzc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1
MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJl
YWQtd3JpdGUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChhcnJh
eUJ1ZmZlclRvU3RyaW5nKToKKyAgICAgICAgKHN0cmluZ1RvQXJyYXlCdWZmZXIpOgorICAgICAg
ICAod3JpdGUpOgorICAgICAgICAocmVhZCk6CisgICAgICAgIChhc3luYyB0ZXN0KToKKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sOiBBZGRl
ZC4KKwogMjAyMS0xMC0xMCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBEbyBubyBiYWlsIG91dCBvbiBib3VuZGFyeSBuZXV0cmFsIGNoYXJhY3Rl
cnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNv
dXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkyZTllMGMyYjA5MDNiMzI5ZTRiZGEzMGQ5YWVmY2Q2Y2IwZDdh
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCkBAIC0wLDAgKzEs
OTUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS4iKTsKKwordmFyIGFjY2Vzc0hhbmRsZSwgZmlsZVNpemUsIHdyaXRlQnVmZmVyLCB3cml0ZVNp
emUsIHJlYWRCdWZmZXIsIHJlYWRTaXplLCByZWFkVGV4dCwgcmVhZEVycm9yOwordmFyIHRvdGFs
UmVhZFNpemUgPSAwLCB0b3RhbFdyaXRlU2l6ZSA9IDA7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3Qo
ZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOwor
ICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0
cmluZyhidWZmZXIpCit7CisgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVs
bCwgbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcikpOworfQorCitmdW5jdGlvbiBzdHJpbmdUb0FycmF5
QnVmZmVyKHN0cmluZykKK3sKKyAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHN0cmlu
Zy5sZW5ndGgqMik7CisgICAgdmFyIGJ1ZmZlclZpZXcgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVy
KTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykgeworICAgICAg
ICBidWZmZXJWaWV3W2ldID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7CisgICAgfQorICAgIHJldHVy
biBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIHdyaXRlKGFjY2Vzc0hhbmRsZSwgb2Zmc2V0LCB0ZXh0
KQoreworICAgIHdyaXRlQnVmZmVyID0gc3RyaW5nVG9BcnJheUJ1ZmZlcih0ZXh0KTsKKyAgICB3
cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUod3JpdGVCdWZmZXIsIHsgImF0IiA6IG9mZnNl
dCB9KTsKKyAgICBzaG91bGRCZSgid3JpdGVTaXplIiwgIndyaXRlQnVmZmVyLmJ5dGVMZW5ndGgi
KTsKKyAgICByZXR1cm4gd3JpdGVTaXplOworfQorCitmdW5jdGlvbiByZWFkKGFjY2Vzc0hhbmRs
ZSwgb2Zmc2V0LCBzaXplKQoreworICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6
ZSk7CisgICAgcmVhZFNpemUgPSBhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7ICJhdCI6
IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgicmVhZFNpemUiLCAicmVhZEJ1ZmZlci5ieXRlTGVu
Z3RoIik7CisgICAgcmV0dXJuIGFycmF5QnVmZmVyVG9TdHJpbmcocmVhZEJ1ZmZlcik7Cit9CisK
K2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJvb3RIYW5k
bGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgLy8g
Q3JlYXRlIGEgbmV3IGZpbGUgZm9yIHRoaXMgdGVzdC4KKyAgICAgICAgYXdhaXQgcm9vdEhhbmRs
ZS5yZW1vdmVFbnRyeSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIpLnRoZW4oKCkgPT4geyB9LCAo
KSA9PiB7IH0pOworICAgICAgICB2YXIgZmlsZUhhbmRsZSA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0
RmlsZUhhbmRsZSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIsIHsgImNyZWF0ZSIgOiB0cnVlICB9
KTsKKyAgICAgICAgYWNjZXNzSGFuZGxlID0gYXdhaXQgZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCk7CisgICAgICAgIGZpbGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNp
emUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXplIiwgIjAiKTsKKworICAgICAgICBkZWJ1
ZygidGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6Iik7CisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9
IHdyaXRlKGFjY2Vzc0hhbmRsZSwgMCwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAg
ICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVTaXplKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0IHNl
bnRlbmNlLiIpOworICAgICAgICB0b3RhbFJlYWRTaXplICs9IHJlYWRUZXh0Lmxlbmd0aCAqIDI7
CisKKyAgICAgICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCB0b3RhbFdy
aXRlU2l6ZSwgIlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworICAgICAgICByZWFkVGV4dCA9
IHJlYWQoYWNjZXNzSGFuZGxlLCB0b3RhbFJlYWRTaXplLCB0b3RhbFdyaXRlU2l6ZSAtIHRvdGFs
UmVhZFNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRo
aXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworCisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nl
c3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLlRoaXMgaXMgc2Vjb25kIHNl
bnRlbmNlLiIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IGZsdXNoKCk6Iik7CisgICAgICAgIGF3
YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vz
c0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICJ0b3RhbFdy
aXRlU2l6ZSIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHRydW5jYXRlKCk6Iik7CisgICAgICAg
IGF3YWl0IGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSg0KTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFu
ZGxlLmZsdXNoKCk7CisgICAgICAgIGZpbGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNp
emUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXplIiwgIjQiKTsKKworICAgICAgICBkZWJ1
ZygidGVzdCB3cml0ZSgpIHdpdGggcGVuZGluZyBvcGVyYXRpb246Iik7CisgICAgICAgIGV2YWxB
bmRMb2coImFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKSIpOworICAgICAgICByZWFkQnVmZmVyID0g
bmV3IEFycmF5QnVmZmVyKDQpOworICAgICAgICBzaG91bGRUaHJvdygiYWNjZXNzSGFuZGxlLnJl
YWQocmVhZEJ1ZmZlciwgeyBcImF0XCIgOiAwIH0pIik7CisKKyAgICAgICAgYXdhaXQgYWNjZXNz
SGFuZGxlLmNsb3NlKCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9IGNhdGNoIChlcnJv
cikgeworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9Cit9CisKK3Rlc3QoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFjZDU5YjczOGYyMTQ0MDhlOGQ2YTBiYzlhNzcw
YjgzMTIxMDA0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjcgQEAKK1tXb3JrZXJdIFRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVu
dGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtcmVhZC13cml0ZS5qcworUEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyAwCitbV29y
a2VyXSB0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToKK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlz
IHdyaXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1
ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0
IHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVM
ZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQ
QVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iCitQQVNT
IFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5UaGlzIGlzIHNlY29uZCBzZW50
ZW5jZS4iCitbV29ya2VyXSB0ZXN0IGZsdXNoKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlz
IHRvdGFsV3JpdGVTaXplCitbV29ya2VyXSB0ZXN0IHRydW5jYXRlKCk6CitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDQKK1tXb3JrZXJdIHRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0
aW9uOgorW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApCitQQVNTIFtXb3JrZXJdIGFj
Y2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgImF0IiA6IDAgfSkgdGhyZXcgZXhjZXB0aW9u
IEludmFsaWRTdGF0ZUVycm9yOiBBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlv
bi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2Zp
bGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjcxNmY3MWM4MDMwZGNkMTBjNjVkYTM4MzZlNGQ5NWM4YzI2M2VlNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIo
J3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcycpOzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440759</attachid>
            <date>2021-10-10 22:42:38 -0700</date>
            <delta_ts>2021-10-11 16:33:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211010224237.patch</filename>
            <type>text/plain</type>
            <size>51459</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmFkOWQxNjI4MTk1NzE2YTE1NDMyNGU2ZDQzYWQ3NWVkYzNkYTkz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLjgzOTM5MTc1ODM5OWYzZDdhOWFhMTZiN2EwN2MyN2VlZWNlNDE0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0xMC0xMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1
c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJv
dW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MjYwYWQ1ODMzZWViZTE4M2Q0
OGIyZDNjZTJhZjUzNjgxZTIxN2I5Li5lMjIxMWMwMjRkNjk4MjljMTFlMTUxZWY5Mjk3Y2IxYzQy
YjYxMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEwLTEwICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRs
ZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIxLTEwLTEwICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFtXUEVdIEV4
cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1
c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGU0MzBmMzI1MTRiOTBiMTkz
OTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUwYTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1
MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC0xMDY1LDMgKzEwNjUsNyBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFDVElWSVRZUFJPR1JFU1NDT05UUk9MTEVS
IDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9maWxlcG9ydC5oPikK
KyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVjOGZiNzM0NGJhNDNiNTg3MzMxNjcuLjY5
ZGYzYmNkNTEyYmM4OTUwMTUxZDgyNTIxMmI2NmM3NjgxOWZkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWlu
dDY0X3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmdldFNpemUo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1
bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlz
ZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25n
IGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRp
ZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUo
V1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRl
bnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50
aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIo
KSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggYWZjZWExZjcwMTM3OTA4ZmUxYzc0MGUxZmZlZWIx
ZGU3ODE0NDE1NC4uNzQyMDc2ODM4ODI1MWFjNjhhNTVlYmIzNGQwYThjMmZjNTlkNWVjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsK
IAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7Ci0gICAgdm9pZCBnZXRT
aXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwotICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAg
dm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+JiYpOworICAgIHZvaWQg
dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYm
KT4mJik7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogICAg
IHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA0YzBmM2IwMGZhMmRj
Zjg2Njg1M2FlYjYxNDBlYzY0YTM3MzVkYTc4Li42ODNiODkzZjgwYTg2NDQwM2I1YTU3M2Q0NDk4
OWU4MDY1M2Y2ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTYW1lRW50cnlD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+Owog
ICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OwogICAgIHVzaW5nIFJlc29s
dmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0
cmluZz4+JiYpPjsKLSAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyPiYmKT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpPjsK
ICAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBJbnRlZ2VyQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IGZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNm
MGI2ZDYxZGU3NmQyYWIuLjQ4OTNjZmU0MjA3MTVmOWRlYWE1NjNiZGU0Mjc3MGNkNDYyYzNkZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzQsMTQg
KzM0LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKQorUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQ
bGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZp
ZXIsIGZpbGUpKTsKIH0KIAotRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxl
JiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKICAgICA6IG1fc291cmNlKHNv
dXJjZSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9maWxlKGZpbGUp
CiB7CiB9CiAKQEAgLTUzLDE3ICs1NCwzNSBAQCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRp
Zmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQrKzsKKyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdl
YWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xv
bmc+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9z
b3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVy
YXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7
CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmZsdXNo
KG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9u
Q291bnQrKzsKKyAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlz
LT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdU
Rk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCkBAIC03MSw5
ICs5MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7
CiAKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwogICAgIG1fc291cmNlLT5jbG9zZSht
X2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICBpZiAod2Vha1RoaXMpIHsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Bl
bmRpbmdPcGVyYXRpb25Db3VudC0tOwogICAgICAgICAgICAgd2Vha1RoaXMtPmRpZENsb3NlKCk7
CisgICAgICAgIH0KIAogICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwog
ICAgIH0pOwpAQCAtODQsNCArMTA2LDU5IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmRpZENsb3NlKCkKICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKIH0KIAorRXhjZXB0aW9uT3I8
dW5zaWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZChzdGQ6
Om9wdGlvbmFsPEJ1ZmZlclNvdXJjZTo6VmFyaWFudFR5cGU+IGJ1ZmZlciwgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OkZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpCit7Cisg
ICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8
IG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworCisgICAgaWYgKG1fcGVuZGluZ09wZXJhdGlvbkNvdW50KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlz
aGVkIG9wZXJhdGlvbiJfcyB9OworICAgICAgICAKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9
IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6Rmls
ZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQgYXQg
b2Zmc2V0Il9zIH07CisKKyAgICB2b2lkKiBkYXRhID0gbnVsbHB0cjsKKyAgICBXVEY6OnN3aXRj
aE9uKCpidWZmZXIsIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyVmlldz4mIGJ1ZmZl
clZpZXcpIHsKKyAgICAgICAgZGF0YSA9IGJ1ZmZlclZpZXctPmRhdGEoKTsKKyAgICB9LCBbJmRh
dGFdIChSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4mIGJ1ZmZlcikgeworICAgICAgICBkYXRhID0g
YnVmZmVyLT5kYXRhKCk7CisgICAgfSk7CisgICAgQnVmZmVyU291cmNlIHNvdXJjZSB7IFdURk1v
dmUoKmJ1ZmZlcikgfTsKKyAgICBhdXRvIHNpemUgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgcmVz
dWx0ID0gRmlsZVN5c3RlbTo6cmVhZEZyb21GaWxlKG1fZmlsZSwgZGF0YSwgc2l6ZSk7CisgICAg
aWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQgZnJvbSBmaWxlIl9zIH07CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjp3cml0ZShzdGQ6Om9wdGlvbmFsPEJ1ZmZlclNvdXJjZTo6VmFyaWFudFR5
cGU+IGJ1ZmZlciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVzeXN0ZW1SZWFkV3Jp
dGVPcHRpb25zIG9wdGlvbnMpCit7CisgICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8IG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYgKG1fcGVuZGluZ09wZXJhdGlv
bkNvdW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJB
Y2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbiJfcyB9OworCisgICAgaWYgKCFi
dWZmZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKwor
ICAgIGludCByZXN1bHQgPSBGaWxlU3lzdGVtOjpzZWVrRmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQs
IEZpbGVTeXN0ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdpbm5pbmcpOworICAgIGlmIChyZXN1bHQg
PT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZh
aWxlZCB0byB3cml0ZSBhdCBvZmZzZXQiX3MgfTsKKworICAgIEJ1ZmZlclNvdXJjZSBidWZmZXJT
b3VyY2UgPSBXVEZNb3ZlKCpidWZmZXIpOworICAgIGF1dG8qIGRhdGEgPSBidWZmZXJTb3VyY2Uu
ZGF0YSgpOworICAgIGF1dG8gc2l6ZSA9IGJ1ZmZlclNvdXJjZS5sZW5ndGgoKTsKKyAgICByZXN1
bHQgPSBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX2ZpbGUsIGRhdGEsIHNpemUpOworICAgIGlm
IChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIkZhaWxlZCB0byB3cml0ZSB0byBmaWxlIl9zIH07CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oCmluZGV4IDI5ZTQxNTdiNjU0MWI5M2U2ZWE1ZmUwMjM3ZjBjZjIxNWQwM2Mz
YmYuLmUxMTRiODYzZDgxZWY3YmZkZTczNWY2MGQwZDQzZmM0ZjA5NjNlOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC0yNSwxNCArMjUsMTcgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRlICJGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJRExUeXBlcy5oIgor
I2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKIHRlbXBs
YXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFt
ZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
IDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IHsKIHB1YmxpYzoKQEAg
LTQwLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYXQ7CiAg
ICAgfTsKIAotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0
ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
Zmllcik7CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRl
KEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogICAgIH5GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSgpOwogCiAgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtNDgsMTMgKzUxLDE3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2
b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGRpZENsb3Nl
KCk7CisgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiByZWFkKHN0ZDo6b3B0aW9u
YWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25z
KTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKHN0ZDo6b3B0aW9u
YWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25z
KTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
RmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSk7CiAKICAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOwogICAgIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgYm9v
bCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKKyAgICB1aW50NjRfdCBtX3BlbmRpbmdPcGVyYXRpb25D
b3VudCB7IDAgfTsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9maWxlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5pZGwKaW5kZXggMTEyMDY0YTZkZjYxMWM0MTIxZTI1YzcxMDJmMDMzMDNjZTQ0
OTRhYS4uNmVhNTQzOTdlZWFmMzkwZDZjMTc4NTE4ZjcyMTY1YWJhYWRhMzQwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCkBAIC0zMyw2ICszMyw4IEBACiAg
ICAgUHJvbWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdldFNpemUoKTsKICAgICBQcm9taXNlPHVu
ZGVmaW5lZD4gZmx1c2goKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gY2xvc2UoKTsKKyAgICB1
bnNpZ25lZCBsb25nIGxvbmcgcmVhZChbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIs
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpOworICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyB3cml0ZShbQWxsb3dTaGFyZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIsIEZpbGVzeXN0ZW1S
ZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpOwogfTsKIAogZGljdGlvbmFyeSBGaWxlc3lzdGVtUmVh
ZFdyaXRlT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCmluZGV4IGZhN2Y2NjkzNTcxNjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4
NTY2YjcuLmQzN2QxZmEzYTQxMjEzN2Q3ZGFlNDk1NTFhMThkZWFjMTdlZGI5N2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0x
OTMsNyArMTkzLDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRp
ZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWQKICAgICAgICAgY2FsbGJhY2so
V1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyPiYmIHJlc3VsdCkKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYgcmVzdWx0KQog
ewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRBY2Nlc3NIYW5kbENhbGxiYWNrcy50YWtl
KGNhbGxiYWNrSWRlbnRpZmllcikpCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7
CkBAIC0yMjEsNyArMjIxLDEwIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJCiAKICAgICBjYWxs
T25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1f
c2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29u
bmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFk
Q2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdv
cmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHdvcmtlclRo
cmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1
bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGF1dG8gY3Jvc3NUaHJlYWRSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIGNyb3NzVGhyZWFkUmVz
dWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdC5leGNlcHRpb24oKSk7CisgICAgICAgICAgICB3
b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmll
ciwgcmVzdWx0ID0gV1RGTW92ZShjcm9zc1RocmVhZFJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdv
cmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCiAg
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggOTBjYmNiZjY3M2E1ODZmMjc0NDJmOTY0MDM0
N2E5MjUyNjUwY2ZjNC4uNTIwMWI1MGVjM2ZlMWViMzRkOGZlNWFhYzIxM2IzMTkzZWRmZTQwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApA
QCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRJc1NhbWVFbnRyeShDYWxsYmFj
a0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYpOwogICAgIHZvaWQgZGlkR2V0SGFuZGxl
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXI+JiYpOwogICAgIHZvaWQgZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKLSAgICB2b2lkIGRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KTsKKyAgICB2b2lkIGRpZENyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5k
bGU+PiYmKTsKICAgICB2b2lkIGNvbXBsZXRlVm9pZENhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpOwogICAgIHZvaWQgY29tcGxldGVJbnRlZ2Vy
Q2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx1aW50NjRfdD4mJiByZXN1
bHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCAyODgyNDRmOGRmMGJhNGM0ZTFi
N2IzODBkMzYwOTJkMzViMGI0YzhhLi4wMjc3MzdhMmI0MGIyYzI3MGVhYTY0YjhhNWY5ZTY0MzAx
ZWU4Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAgLTMxLDkgKzMxLDEwIEBACiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUVycm9yIDog
dWludDhfdCB7CisgICAgQmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICBGaWxlTm90Rm91bmQsCi0g
ICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICBJbnZhbGlkTmFt
ZSwKICAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNoLAogICAgIFVua25vd24KQEAg
LTQyLDE2ICs0MywxOCBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50
OF90IHsKIGlubGluZSBXZWJDb3JlOjpFeGNlcHRpb24gY29udmVydFRvRXhjZXB0aW9uKEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IgZXJyb3IpCiB7CiAgICAgc3dpdGNoIChlcnJvcikgeworICAgIGNh
c2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1cHBvcnRlZDoKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5vdFN1cHBvcnRlZEVycm9yLCAi
QmFja2VuZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIiB9OwogICAgIGNhc2UgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kOgogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9Owot
ICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2Fz
ZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToKICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxp
ZCIgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKICAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVy
cm9yIH07CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsK
ICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd246CiAgICAgICAgIGJyZWFr
OwogICAgIH0KQEAgLTc0LDkgKzc3LDEwIEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHsKICAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3IsCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2Vu
ZE5vdFN1cHBvcnRlZCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpG
aWxlTm90Rm91bmQsCi0gICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52
YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZE1vZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJ
bnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZh
bGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1p
c21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IGM4YTAxNDEzY2IzMzE5NjUzYThl
YjdlNzJmMWVlYzM0ODNjNmE2OWYuLmJlMjUxOTdmYmM0MDhiOWE5MjYzYjkyZDczNTlkNjE2MTY2
MTA5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUuaCIKICNp
bmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDAsNyArMTQx
LDcgQEAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHYKICAgICByZXR1cm4gcmVzdFBhdGguc3BsaXQo
cGF0aFNlcGFyYXRvcik7CiB9CiAKLUV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQorRXhwZWN0ZWQ8RmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKIHsKICAg
ICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwpAQCAtMTQ5LDkgKzE1MCwyMCBAQCBFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+CiAgICAgaWYgKCFhY3F1aXJlZCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7CiAKKyAgICBtX2hh
bmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5N
b2RlOjpSZWFkV3JpdGUpOworICAgIGlmIChtX2hhbmRsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRvIGlwY0hhbmRsZSA9IElQQzo6
U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKG1faGFuZGxlKTsKKyAgICBpZiAoIWlwY0hhbmRsZSkg
eworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5kbGUpOworICAgICAgICBtX2hh
bmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3Vw
cG9ydGVkKTsKKyAgICB9CisKICAgICBBU1NFUlQoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSk7
CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICByZXR1cm4g
Km1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICByZXR1cm4gc3RkOjpwYWlyIHsgKm1fYWN0
aXZlU3luY0FjY2Vzc0hhbmRsZSwgV1RGTW92ZSgqaXBjSGFuZGxlKSB9OwogfQogCiBFeHBlY3Rl
ZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCkBAIC0xNzcsMTIgKzE4OSw4IEBAIHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5j
YXRlKFdlYkNvcmU6CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0
aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICBy
ZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAotICAgIGF1dG8gaGFuZGxl
ID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6
OlJlYWRXcml0ZSk7Ci0gICAgYXV0byBjbG9zZUZpbGVTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZd
IHsKLSAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRsZSk7Ci0gICAgfSk7Ci0KLSAg
ICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShoYW5kbGUsIHNpemUpOwor
ICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShtX2hhbmRs
ZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpVbmtub3duOwogCkBAIC0xOTcsNyArMjA1LDExIEBAIHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKFdl
YkNvcmU6OkZpCiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1
cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAotICAgIC8vIEZJWE1FOiB3aGVu
IHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwgZmx1c2ggaGVy
ZS4KKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVzaEZpbGUobV9oYW5k
bGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VW5rbm93bjsKKwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTIwOSw2
ICsyMjEsMTAgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtu
b3duOwogCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CisgICAg
bV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworCiAgICAg
bV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOwogICAg
IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuaAppbmRleCBlNDdlZDNhMTZlZTk1YWIxZDE0OTkzOGQxOTdmNjQ2M2Q5NzQ5
MDE3Li5lMGJhMGNkNDA4MjRlMWNjMTNiYjY3ZTdlODQ3ZWJkNDYyODA3NGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMzAsNiArMzAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjsK
QEAgLTUwLDcgKzU0LDggQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJl
Y3Vyc2l2ZWx5KTsKICAgICBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAK
LSAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAg
ICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKKyAgICBF
eHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKCk7CiAgICAgRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IGdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHRydW5j
YXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0
X3Qgc2l6ZSk7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBmbHVz
aChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwpAQCAtNjUs
NiArNzAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgU3RyaW5nIG1fbmFt
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllcj4gbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmNwcAppbmRleCAzNjg2MTc0MjgxODBkNzg0NmIyZDYyZjA2MGU5OWU1ZGM3YTdkZDYz
Li42NTAxYThmZjNkNTNjYjE4NzllYmVhYzlmNTFjMjRkYWNmMDA5ZTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjI2LDcgKzIyNiw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5yZXNvbHZlKHRhcmdldElkZW50aWZp
ZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggYTgxODg1MWZmMTQ1
Mzg2OGE3NGQxNzZmYjZjYjI4ZjIxYWIzMjMxYi4uZjhhMmIwYjFmNTRmZmIzZWRhYjEzMmM4ZDNj
YjE3YjY0MGMxYjA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMzMsNiArMzMsMTAg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFz
cyBTaGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ2xp
ZW50T3JpZ2luOwogfQpAQCAtNzAsNyArNzQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RGly
ZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVtb3ZlRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5n
PiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHVzaW5nIEFjY2Vz
c0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OworICAgIHZvaWQgY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2
NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgdHJ1bmNhdGVGb3JB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CiAgICAgdm9pZCBmbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCmluZGV4IDRmZWEyNzY1ZmQ5MmE5ODA2MGNkMDQwMDYyYzVlOTQ1NWM4MTlmYzAuLjE3NzZl
Y2Q2MTlkYTEyNWQ3ZjBhNDcyY2YwYjBiYzBjYzAzNDA5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzMsNyArMzMsNyBAQAogICAgIFJlbW92ZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmlu
ZyBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBSZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0
b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
CiAKLSAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYworICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVk
RmlsZUhhbmRsZT4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIEdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDx1aW50NjRfdCwg
V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgVHJ1bmNh
dGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNpemUpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEZsdXNoRm9y
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1No
YXJlZEZpbGVIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTBlNWI2MTMwZDEyNWI3YTE5ZDZiMjgxOTky
ZTA2OWI3YjVkNDU0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvU2hhcmVkRmlsZUhhbmRsZS5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0u
aD4KKworI2lmIEhBVkUoRklMRVBPUlQpCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNpbmNsdWRl
IDxTeXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIElQQyB7CisKK2Ns
YXNzIFNoYXJlZEZpbGVIYW5kbGUgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFNoYXJlZEZpbGVIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlKQorICAgIHsKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICByZXR1cm4gU2hhcmVk
RmlsZUhhbmRsZSB7IGhhbmRsZSB9OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyNlbmRpZgorICAgIH0KKworICAgIFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7Cisg
ICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFu
ZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsK
KyNpZiBIQVZFKEZJTEVQT1JUKQorICAgICAgICBtYWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0g
TUFDSF9QT1JUX05VTEw7CisgICAgICAgIGZpbGVwb3J0X21ha2Vwb3J0KG1faGFuZGxlLCAmZmls
ZXBvcnQpOworICAgICAgICBlbmNvZGVyIDw8IE1hY2hQb3J0KGZpbGVwb3J0LCBNQUNIX01TR19U
WVBFX01PVkVfU0VORCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxTaGFyZWRGaWxlSGFuZGxlPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisjaWYg
SEFWRShGSUxFUE9SVCkKKyAgICAgICAgTWFjaFBvcnQgbWFjaFBvcnQ7CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobWFjaFBvcnQpKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoZmls
ZXBvcnRfbWFrZWZkKG1hY2hQb3J0LnBvcnQoKSkpOworI2VuZGlmCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfQorICAgIAorcHJpdmF0ZToKKyAgICBTaGFyZWRGaWxlSGFuZGxl
KEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgICAgIDogbV9oYW5k
bGUoaGFuZGxlKQorICAgIHsKKyAgICB9CisKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVI
YW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07
Cit9OworCit9IC8vIG5hbWVzcGFjZSBJUEMKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluCmluZGV4IGYyYmE0ZjVhOGVkMDcyYjViZGUx
NjUzMDI0NzkxMDcwNWUyMDc4MjEuLjIyMTA5YTE5YjdiNjYyMGQxYzU0YTZiODYxMTAxNGQ1YjFj
NDgyNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxl
cy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50LnNiLmluCkBAIC0xMjc1LDYgKzEyNzUsNyBAQAogICAgICAgICAoc3lzY2FsbC1udW1iZXIg
U1lTX2Nvbm5lY3Rfbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2VuZHRv
X25vY2FuY2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZmlsZXBvcnRfbWFrZXBvcnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZ3VhcmRlZF9vcGVuX25wKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRf
Y2xvc2VfbnApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlZDIwNDFmYTUyZGYzNmE5MTY2ZmM3MjgyZTE5YjY0YjkxZDQ5YjNlLi43MGVl
MmQ0ZjEzYzcyYjQ2YTJlYzZkYTE5MDk5MGU2ZmZjNzBhNTdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzIsNiArMTQ3Miw3IEBA
CiAJCTkzMDg1RERGMjZFNUJDRjEwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMDg1RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJOTMwODVERTAyNkU1QkNGRDAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMwODVEQzQyNkUxQkJCRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oICovOyB9OwogCQk5MzA4NURFMTI2RTVCRDEzMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJN
ZXNzYWdlcy5oICovOyB9OworCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLzsgfTsKIAkJ
OTMxMkJBRDUyNkYzM0MyNjAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTA3NTAyNkYw
NjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5MzEy
QkFENjI2RjMzQzI5MDBGRERGNUYgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUzMjZGMDZBQjQw
MDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovOyB9OwogCQk5MzFBMUJFMjI2
Rjg3MDA5MDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTFCRTAyNkY4NUMzMjAwODFBN0U1
IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLzsgfTsKQEAgLTQ5NDUsNiArNDk0Niw3IEBA
CiAJCTkzMDg1RENDMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFu
YWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtT
dG9yYWdlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
MDg1RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
MTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZEZpbGVIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTAyNkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTEy
NkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MjI2RjA2QUI0MDA0NDc0Q0Qg
LyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzM0Niw2ICs3MzQ4LDcgQEAKIAkJCQk1Q0M1REI5MTIxNDg4RTE2MDA2
Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5oICovLAogCQkJCTJEQzE4NTVFREJGQjg1MEJBMEI2
RDA2RCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLywKIAkJCQkyREMxODgxQUNC
Q0FCNUQ1N0M1QzZFRjAgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICovLAorCQkJCTkz
MTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi8sCiAJCQkJN0I3
MzEyMzYyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwICovLAog
CQkJCTdCNzMxMjMzMjVDQzg1MjMwMDNCMjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmgg
Ki8sCiAJCQkJN0I3MzEyMzQyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZm
ZXIuY3BwICovLApAQCAtMTI2MzAsNiArMTI2MzMsNyBAQAogCQkJCUExODM0OTQyMjRFRjQ2Nzgw
MEJEQzlBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREMxOEZG
NkVGMkEzMTMwQzEzMDE3NjcgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjRBNkQ2QkMyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0
SGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyog
U2hhcmVkRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyNEJFRDUxMjA4OTREMTAw
RkJCMDU5IC8qIFNoYXJlZE1lbW9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q0QjREOUQxRTc2
NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzEzRjdFQzFGN0RBRTA4MDBCOTQ0RUIgLyogU2hhcmVkU3RyaW5nSGFzaFN0b3JlLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKaW5kZXggN2EyMzhhY2E0YzM4ZDY3NTU0YTdkYTYzZWU3ZGZlMjU2YzdiY2Q4Yi4u
ZGY0ZTcwNGY5MDMwYjlmNDNmYTFkYTQzZDUwYWM3MTdkYTE1NzUyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTEyNiw3ICsxMjYsOCBA
QCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSAogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVy
cm9yKCkpKTsKIAotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1
ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQudmFsdWUoKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpwYWlyIHsgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3Vs
dFZhbHVlLnNlY29uZC5oYW5kbGUoKSB9KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IGRmMzc5
YzY3ODY2MzQ3MmFiZjRkZWY5MjFkNWVhZWRjZTQ1YjQxNjAuLjM2ZTE2MGY3NTJmNGU3ZGM0NWIw
NDFiOWQ1ZGM4YmVjZjkzYzkxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTE5MzUsNiArMTkzNSw3IEBACiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2Nh
bGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2Vm
ZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAg
ICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxs
LW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZDE0MjA5ZGZiMzJjZDM3NDVj
YTAyZTA2YzRhNjIyNTcxOTNlY2I4Li40YTVmOWMzMGI1OWQ5MWMxNzc2NWJmMmRkMTYyOGYzMjll
NDY3Mzc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTAtMTAgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1
MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJl
YWQtd3JpdGUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChhcnJh
eUJ1ZmZlclRvU3RyaW5nKToKKyAgICAgICAgKHN0cmluZ1RvQXJyYXlCdWZmZXIpOgorICAgICAg
ICAod3JpdGUpOgorICAgICAgICAocmVhZCk6CisgICAgICAgIChhc3luYyB0ZXN0KToKKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sOiBBZGRl
ZC4KKwogMjAyMS0xMC0xMCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBEbyBubyBiYWlsIG91dCBvbiBib3VuZGFyeSBuZXV0cmFsIGNoYXJhY3Rl
cnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNv
dXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdy
aXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkyZTllMGMyYjA5MDNiMzI5ZTRiZGEzMGQ5YWVmY2Q2Y2IwZDdh
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCkBAIC0wLDAgKzEs
OTUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS4iKTsKKwordmFyIGFjY2Vzc0hhbmRsZSwgZmlsZVNpemUsIHdyaXRlQnVmZmVyLCB3cml0ZVNp
emUsIHJlYWRCdWZmZXIsIHJlYWRTaXplLCByZWFkVGV4dCwgcmVhZEVycm9yOwordmFyIHRvdGFs
UmVhZFNpemUgPSAwLCB0b3RhbFdyaXRlU2l6ZSA9IDA7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3Qo
ZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOwor
ICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0
cmluZyhidWZmZXIpCit7CisgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVs
bCwgbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcikpOworfQorCitmdW5jdGlvbiBzdHJpbmdUb0FycmF5
QnVmZmVyKHN0cmluZykKK3sKKyAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHN0cmlu
Zy5sZW5ndGgqMik7CisgICAgdmFyIGJ1ZmZlclZpZXcgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVy
KTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykgeworICAgICAg
ICBidWZmZXJWaWV3W2ldID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7CisgICAgfQorICAgIHJldHVy
biBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIHdyaXRlKGFjY2Vzc0hhbmRsZSwgb2Zmc2V0LCB0ZXh0
KQoreworICAgIHdyaXRlQnVmZmVyID0gc3RyaW5nVG9BcnJheUJ1ZmZlcih0ZXh0KTsKKyAgICB3
cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUod3JpdGVCdWZmZXIsIHsgImF0IiA6IG9mZnNl
dCB9KTsKKyAgICBzaG91bGRCZSgid3JpdGVTaXplIiwgIndyaXRlQnVmZmVyLmJ5dGVMZW5ndGgi
KTsKKyAgICByZXR1cm4gd3JpdGVTaXplOworfQorCitmdW5jdGlvbiByZWFkKGFjY2Vzc0hhbmRs
ZSwgb2Zmc2V0LCBzaXplKQoreworICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6
ZSk7CisgICAgcmVhZFNpemUgPSBhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7ICJhdCI6
IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgicmVhZFNpemUiLCAicmVhZEJ1ZmZlci5ieXRlTGVu
Z3RoIik7CisgICAgcmV0dXJuIGFycmF5QnVmZmVyVG9TdHJpbmcocmVhZEJ1ZmZlcik7Cit9CisK
K2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJvb3RIYW5k
bGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgLy8g
Q3JlYXRlIGEgbmV3IGZpbGUgZm9yIHRoaXMgdGVzdC4KKyAgICAgICAgYXdhaXQgcm9vdEhhbmRs
ZS5yZW1vdmVFbnRyeSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIpLnRoZW4oKCkgPT4geyB9LCAo
KSA9PiB7IH0pOworICAgICAgICB2YXIgZmlsZUhhbmRsZSA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0
RmlsZUhhbmRsZSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIsIHsgImNyZWF0ZSIgOiB0cnVlICB9
KTsKKyAgICAgICAgYWNjZXNzSGFuZGxlID0gYXdhaXQgZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCk7CisgICAgICAgIGZpbGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNp
emUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXplIiwgIjAiKTsKKworICAgICAgICBkZWJ1
ZygidGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6Iik7CisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9
IHdyaXRlKGFjY2Vzc0hhbmRsZSwgMCwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAg
ICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVTaXplKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0IHNl
bnRlbmNlLiIpOworICAgICAgICB0b3RhbFJlYWRTaXplICs9IHJlYWRUZXh0Lmxlbmd0aCAqIDI7
CisKKyAgICAgICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCB0b3RhbFdy
aXRlU2l6ZSwgIlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworICAgICAgICByZWFkVGV4dCA9
IHJlYWQoYWNjZXNzSGFuZGxlLCB0b3RhbFJlYWRTaXplLCB0b3RhbFdyaXRlU2l6ZSAtIHRvdGFs
UmVhZFNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRo
aXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworCisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nl
c3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLlRoaXMgaXMgc2Vjb25kIHNl
bnRlbmNlLiIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IGZsdXNoKCk6Iik7CisgICAgICAgIGF3
YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vz
c0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICJ0b3RhbFdy
aXRlU2l6ZSIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHRydW5jYXRlKCk6Iik7CisgICAgICAg
IGF3YWl0IGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSg0KTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFu
ZGxlLmZsdXNoKCk7CisgICAgICAgIGZpbGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNp
emUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXplIiwgIjQiKTsKKworICAgICAgICBkZWJ1
ZygidGVzdCB3cml0ZSgpIHdpdGggcGVuZGluZyBvcGVyYXRpb246Iik7CisgICAgICAgIGV2YWxB
bmRMb2coImFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKSIpOworICAgICAgICByZWFkQnVmZmVyID0g
bmV3IEFycmF5QnVmZmVyKDQpOworICAgICAgICBzaG91bGRUaHJvdygiYWNjZXNzSGFuZGxlLnJl
YWQocmVhZEJ1ZmZlciwgeyBcImF0XCIgOiAwIH0pIik7CisKKyAgICAgICAgYXdhaXQgYWNjZXNz
SGFuZGxlLmNsb3NlKCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9IGNhdGNoIChlcnJv
cikgeworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9Cit9CisKK3Rlc3QoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFjZDU5YjczOGYyMTQ0MDhlOGQ2YTBiYzlhNzcw
YjgzMTIxMDA0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjcgQEAKK1tXb3JrZXJdIFRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVu
dGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtcmVhZC13cml0ZS5qcworUEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyAwCitbV29y
a2VyXSB0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToKK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlz
IHdyaXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1
ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0
IHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVM
ZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQ
QVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iCitQQVNT
IFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2Vy
XSByZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5UaGlzIGlzIHNlY29uZCBzZW50
ZW5jZS4iCitbV29ya2VyXSB0ZXN0IGZsdXNoKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlz
IHRvdGFsV3JpdGVTaXplCitbV29ya2VyXSB0ZXN0IHRydW5jYXRlKCk6CitQQVNTIFtXb3JrZXJd
IGZpbGVTaXplIGlzIDQKK1tXb3JrZXJdIHRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0
aW9uOgorW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApCitQQVNTIFtXb3JrZXJdIGFj
Y2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgImF0IiA6IDAgfSkgdGhyZXcgZXhjZXB0aW9u
IEludmFsaWRTdGF0ZUVycm9yOiBBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlv
bi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2Zp
bGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjcxNmY3MWM4MDMwZGNkMTBjNjVkYTM4MzZlNGQ5NWM4YzI2M2VlNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIo
J3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcycpOzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440854</attachid>
            <date>2021-10-11 16:34:02 -0700</date>
            <delta_ts>2021-10-11 19:54:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211011163401.patch</filename>
            <type>text/plain</type>
            <size>80647</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLjIzYzhjOGE4YWJhMDhmMDQyZGJjOTA0ZjlmNmNiMTVmY2ZmZmZj
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25F
bmFibGVkKCkgY2FuJ3QgcmVhZCBVSVVzZXJJbnRlcmZhY2VJZGlvbSBpbiB0aGUgV2ViIENvbnRl
bnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MWUwN2E1OTE3YjRmMjY4ZGEwODMwNGUyMzFjOTYx
Mjg1OTgzODAuLmNjNGI5MWI3ZjBlNzAzMTkyY2MwMjY0ZmEwNWYyNGRhMzk0NGZhYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCByZWFkKCkgYW5kIHdyaXRlKCkgYWNjb3JkaW5nIHRvIHByb3Bvc2FsOgorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vV0lDRy9maWxlLXN5c3RlbS1hY2Nlc3MvYmxvYi9tYWluL0FjY2Vzc0hh
bmRsZS5tZAorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFj
Y2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbAorICAgICAgICBBUEkgdGVzdDogRmls
ZVN5c3RlbUFjY2Vzcy5Qcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZQorCisgICAgICAgICogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OnJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgor
CiAyMDIxLTEwLTEwICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
TEZDXVtJRkNdIERvIG5vIGJhaWwgb3V0IG9uIGJvdW5kYXJ5IG5ldXRyYWwgY2hhcmFjdGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggZmQ5YjExNDhmY2Y1ZTgwZjE4ZTg4MDQwMzlkNDIzN2U5MDE5
ZGQxZS4uNmVmNmNhZDgxM2NjYjAxM2E0N2ExOWJkYzIxZGM3NzZjZTUzOTlmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBB
TC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvRmls
ZVBvcnRTUEkuaDogQWRkZWQuCisKIDIwMjEtMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW0dQVSBQcm9jZXNzXSBzdXBwb3J0IGA8YXR0YWNo
bWVudD5gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDUyNjBhZDU4MzNlZWJlMTgzZDQ4YjJkM2NlMmFmNTM2ODFlMjE3
YjkuLjI1YzgxMDZkNWM3MTcyODQyYjVmMzE3MjhiNGM5ZGI1MTkwZDBkZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQo
KSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQgbmV0d29yayBwcm9j
ZXNzIG9wZW4gdGhlIGZpbGUgYW5kIHBhc3MgZmlsZSBkZXNjcmlwdG9yIHRvIHdlYiBwcm9jZXNz
LCBzbyB0aGF0IHdlYiBwcm9jZXNzIGNhbiByZWFkIGFuZCAKKyAgICAgICAgd3JpdGUgdGhlIGZp
bGUgd2l0aG91dCBzZW5kaW5nIElQQyBtZXNzYWdlcy4gQ3VycmVudGx5IGdldHRpbmcgZmlsZSBz
aXplLCB0cnVuY2F0aW5nIGZpbGUgYW5kIHN5bmNpbmcgZmlsZSBhcmUgCisgICAgICAgIHN0aWxs
IHBlcmZvcm1lZCBieSBuZXR3b3JrIHByb2Nlc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAgICAgICAgKFdlYktpdDo6Y29u
dmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAo
SVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxl
SGFuZGxlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpk
ZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmg6IEFkZGVk
LgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpoYW5kbGUpOgorICAgICAgICAoSVBD
OjpTaGFyZWRGaWxlSGFuZGxlOjpTaGFyZWRGaWxlSGFuZGxlKToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcDogQWRkZWQuCisgICAgICAgIChJ
UEM6OlNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVI
YW5kbGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmRl
Y29kZSk6CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfZmlsZVN5c3RlbUFj
Y2Vzc0VuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0RmlsZVN5c3RlbUFj
Y2Vzc0VuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3N0b3JhZ2VBUElFbmFi
bGVkXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldFN0b3JhZ2VBUElFbmFibGVkOl0p
OgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9hY2Nlc3NIYW5kbGVFbmFibGVkXSk6CisgICAg
ICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEFjY2Vzc0hhbmRsZUVuYWJsZWQ6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
LmluOgorCiAyMDIxLTEwLTEwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUu
b3JnPgogCiAgICAgICAgIFtXUEVdIEV4cG9zZSBXS1RleHRDaGVja2VyU2V0Q29udGludW91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkIGFuZCB1c2UgaXQgZnJvbSBXS1RSCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5o
CmluZGV4IGU0MzBmMzI1MTRiOTBiMTkzOTE3NjEwMzY2ODJiZWEzZmFlOGIxODkuLjgzZTc2NGUw
YTFmNWFhMTAzZmRmMDVmMDY4YTAzOGM1MDYwYzMyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBA
IC0xMDY1LDMgKzEwNjUsNyBAQAogI2lmIFBMQVRGT1JNKElPUykKICNkZWZpbmUgSEFWRV9QVUFD
VElWSVRZUFJPR1JFU1NDT05UUk9MTEVSIDEKICNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVkZSg8
U3lzdGVtL3N5cy9maWxlcG9ydC5oPikKKyNkZWZpbmUgSEFWRV9GSUxFUE9SVCAxCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGE2OWE3MmM2YjY4YTJkNmNkNDVj
OGZiNzM0NGJhNDNiNTg3MzMxNjcuLjY5ZGYzYmNkNTEyYmM4OTUwMTUxZDgyNTIxMmI2NmM3Njgx
OWZkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0
IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9N
UHJvbWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKSk7CiAKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUo
KSkpOworICAgICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1
ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0
U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlz
ZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7Cisg
ICAgY29ubmVjdGlvbigpLmdldFNpemUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZp
bGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRy
dW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25u
ZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBz
aXplLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsK
LSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICBj
b25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBzaXplLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNl
KQordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
Y29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVj
dGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
bG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggYWZjZWEx
ZjcwMTM3OTA4ZmUxYzc0MGUxZmZlZWIxZGU3ODE0NDE1NC4uNzQyMDc2ODM4ODI1MWFjNjhhNTVl
YmIzNGQwYThjMmZjNTlkNWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTQx
LDkgKzQxLDkgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8
SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlPj4mJik7Ci0gICAgdm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwotICAg
IHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNp
Z25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAgIHZv
aWQgZmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50
NjRfdD4mJik+JiYpOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8dm9pZD4mJik+JiYpOwogICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+
JiYpPiYmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaAppbmRleCA0YzBmM2IwMGZhMmRjZjg2Njg1M2FlYjYxNDBlYzY0YTM3MzVkYTc4Li42ODNi
ODkzZjgwYTg2NDQwM2I1YTU3M2Q0NDk4OWU4MDY1M2Y2ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
KyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhjZXB0aW9uT3I8Ym9vbD4mJik+OwogICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
cj4mJik+OwogICAgIHVzaW5nIFJlc29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPjsKLSAgICB1c2luZyBHZXRBY2Nlc3NI
YW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmKT47CisgICAgdXNpbmcgR2V0QWNjZXNz
SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6
cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZT4+JiYpPjsKICAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBJbnRlZ2Vy
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYm
KT47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IGZh
ZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNmMGI2ZDYxZGU3NmQyYWIuLjQ4OTNjZmU0MjA3MTVmOWRl
YWE1NjNiZGU0Mjc3MGNkNDYyYzNkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmNwcApAQCAtMzQsMTQgKzM0LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorUmVmPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlk
ZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIsIGZpbGUpKTsKIH0KIAotRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKQorRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUg
ZmlsZSkKICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQorICAgICwgbV9maWxlKGZpbGUpCiB7CiB9CiAKQEAgLTUzLDE3ICs1NCwzNSBAQCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIAog
dm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBs
b25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgbV9z
b3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmllciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7Cisg
ICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9p
ZGVudGlmaWVyLCBzaXplLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3
ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0t
OworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9
CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURl
ZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+
Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09w
ZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBbd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAg
IHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uu
c2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
CiB7Ci0gICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7
CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+Zmx1c2gobV9p
ZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhp
cykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZv
aWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCkBAIC03MSw5ICs5MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAg
IGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsr
OwogICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKLSAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICBpZiAod2Vha1RoaXMpIHsKKyAg
ICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOwogICAgICAgICAg
ICAgd2Vha1RoaXMtPmRpZENsb3NlKCk7CisgICAgICAgIH0KIAogICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwpAQCAtODQsNCArMTA2LDU5IEBAIHZvaWQg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKICAgICBtX2lzQ2xvc2VkID0g
dHJ1ZTsKIH0KIAorRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6cmVhZChzdGQ6Om9wdGlvbmFsPEJ1ZmZlclNvdXJjZTo6VmFyaWFudFR5
cGU+IGJ1ZmZlciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVzeXN0ZW1SZWFkV3Jp
dGVPcHRpb25zIG9wdGlvbnMpCit7CisgICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8IG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYgKG1fcGVuZGluZ09wZXJhdGlv
bkNvdW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJB
Y2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbiJfcyB9OworICAgICAgICAKKyAg
ICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJv
ciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmlsZSwgb3B0
aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7CisgICAgaWYg
KHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiRmFpbGVkIHRvIHJlYWQgYXQgb2Zmc2V0Il9zIH07CisKKyAgICB2b2lkKiBkYXRhID0g
bnVsbHB0cjsKKyAgICBXVEY6OnN3aXRjaE9uKCpidWZmZXIsIFsmZGF0YV0gKFJlZlB0cjxKU0M6
OkFycmF5QnVmZmVyVmlldz4mIGJ1ZmZlclZpZXcpIHsKKyAgICAgICAgZGF0YSA9IGJ1ZmZlclZp
ZXctPmRhdGEoKTsKKyAgICB9LCBbJmRhdGFdIChSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4mIGJ1
ZmZlcikgeworICAgICAgICBkYXRhID0gYnVmZmVyLT5kYXRhKCk7CisgICAgfSk7CisgICAgQnVm
ZmVyU291cmNlIHNvdXJjZSB7IFdURk1vdmUoKmJ1ZmZlcikgfTsKKyAgICBhdXRvIHNpemUgPSBz
b3VyY2UubGVuZ3RoKCk7CisgICAgcmVzdWx0ID0gRmlsZVN5c3RlbTo6cmVhZEZyb21GaWxlKG1f
ZmlsZSwgZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQgZnJvbSBmaWxl
Il9zIH07CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBs
b25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp3cml0ZShzdGQ6Om9wdGlvbmFs
PEJ1ZmZlclNvdXJjZTo6VmFyaWFudFR5cGU+IGJ1ZmZlciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OkZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpCit7CisgICAgaWYgKG1f
ZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8IG1faXNDbG9z
ZWQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisg
ICAgaWYgKG1fcGVuZGluZ09wZXJhdGlvbkNvdW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJh
dGlvbiJfcyB9OworCisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RBbGxvd2VkRXJyb3IgfTsKKworICAgIGludCByZXN1bHQgPSBGaWxlU3lzdGVtOjpzZWVr
RmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQsIEZpbGVTeXN0ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdp
bm5pbmcpOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byB3cml0ZSBhdCBvZmZzZXQiX3MgfTsKKwor
ICAgIEJ1ZmZlclNvdXJjZSBidWZmZXJTb3VyY2UgPSBXVEZNb3ZlKCpidWZmZXIpOworICAgIGF1
dG8qIGRhdGEgPSBidWZmZXJTb3VyY2UuZGF0YSgpOworICAgIGF1dG8gc2l6ZSA9IGJ1ZmZlclNv
dXJjZS5sZW5ndGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX2Zp
bGUsIGRhdGEsIHNpemUpOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byB3cml0ZSB0byBmaWxlIl9z
IH07CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCmluZGV4IDI5ZTQxNTdiNjU0MWI5
M2U2ZWE1ZmUwMjM3ZjBjZjIxNWQwM2MzYmYuLmUxMTRiODYzZDgxZWY3YmZkZTczNWY2MGQwZDQz
ZmM0ZjA5NjNlOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBA
IC0yNSwxNCArMjUsMTcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCdWZmZXJTb3Vy
Y2UuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWxl
U3lzdGVtRmlsZUhhbmRsZTsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVm
ZXJyZWQ7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU+IHsKIHB1YmxpYzoKQEAgLTQwLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgYXQ7CiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5k
bGUpOwogICAgIH5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpOwogCiAgICAgdm9pZCB0cnVu
Y2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OwpAQCAtNDgsMTMgKzUxLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoKERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKICAgICB2b2lkIGRpZENsb3NlKCk7CisgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9u
ZyBsb25nPiByZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZp
bGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25n
IGxvbmc+IHdyaXRlKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4sIEZp
bGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllcik7CisgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAKICAgICBSZWY8RmlsZVN5c3RlbUZpbGVI
YW5kbGU+IG1fc291cmNlOwogICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CiAgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKKyAgICB1aW50
NjRfdCBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCB7IDAgfTsKKyAgICBGaWxlU3lzdGVtOjpQbGF0
Zm9ybUZpbGVIYW5kbGUgbV9maWxlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKaW5kZXggMTEyMDY0YTZkZjYx
MWM0MTIxZTI1YzcxMDJmMDMzMDNjZTQ0OTRhYS4uNmVhNTQzOTdlZWFmMzkwZDZjMTc4NTE4Zjcy
MTY1YWJhYWRhMzQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aWRsCkBAIC0zMyw2ICszMyw4IEBACiAgICAgUHJvbWlzZTx1bnNpZ25lZCBsb25nIGxvbmc+IGdl
dFNpemUoKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gZmx1c2goKTsKICAgICBQcm9taXNlPHVu
ZGVmaW5lZD4gY2xvc2UoKTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgcmVhZChbQWxsb3dTaGFy
ZWRdIEJ1ZmZlclNvdXJjZSBidWZmZXIsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlv
bnMpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB3cml0ZShbQWxsb3dTaGFyZWRdIEJ1ZmZlclNv
dXJjZSBidWZmZXIsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpOwogfTsKIAog
ZGljdGlvbmFyeSBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGZhN2Y2NjkzNTcx
NjBiNzkxZGMyNWExYTMyMDgzZGEyNjk4NTY2YjcuLmQzN2QxZmEzYTQxMjEzN2Q3ZGFlNDk1NTFh
MThkZWFjMTdlZGI5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxi
YWNrSWQKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
Q2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCkKK3ZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxi
YWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZT4+JiYgcmVzdWx0KQogewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRB
Y2Nlc3NIYW5kbENhbGxiYWNrcy50YWtlKGNhbGxiYWNrSWRlbnRpZmllcikpCiAgICAgICAgIGNh
bGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CkBAIC0yMjEsNyArMjIxLDEwIEBAIHZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJCiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIs
IHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25u
ZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsK
ICAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
Y2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gY3Jvc3NUaHJlYWRSZXN1bHQg
PSByZXN1bHQ7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgICAgIGNyb3NzVGhyZWFkUmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdC5leGNl
cHRpb24oKSk7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zv
ck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92ZShjcm9zc1RocmVhZFJl
c3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8g
Y29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRp
ZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3Vs
dCkpOwogICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggOTBj
YmNiZjY3M2E1ODZmMjc0NDJmOTY0MDM0N2E5MjUyNjUwY2ZjNC4uNTIwMWI1MGVjM2ZlMWViMzRk
OGZlNWFhYzIxM2IzMTkzZWRmZTQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWRJc1NhbWVFbnRyeShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPGJvb2w+JiYp
OwogICAgIHZvaWQgZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpOwogICAgIHZvaWQgZGlkUmVzb2x2ZShDYWxs
YmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKLSAgICB2b2lk
IGRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25P
cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KTsKKyAgICB2
b2lkIGRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRp
b25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmKTsKICAgICB2b2lkIGNvbXBsZXRlVm9pZENh
bGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpOwog
ICAgIHZvaWQgY29tcGxldGVJbnRlZ2VyQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25Pcjx1aW50NjRfdD4mJiByZXN1bHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDI2ZjE0YjVjZTljYWI5MzFhMzMx
ZTUyYjkwMDBhYTZhZjg0MjM2NS4uM2U5MDUzZTRjOGMyNzIwZTY3ZWMyNzczYTVhMzIwNTlmZTAy
NzA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTU0LDYgKzE1NCw3IEBACiAJCTcxQjExNDIwMjY4MjNBQ0QwMDRENjcwMSAv
KiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MUIxMTQxRjI2ODIzQUNEMDA0RDY3MDEgLyogU3lzdGVtUHJldmlld1NQSS5o
ICovOyB9OwogCQk3QTM2RDBGOTIyM0FEOUFCMDBCMDUyMkUgLyogQ29tbW9uQ3J5cHRvU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTM2RDBGODIy
M0FEOUFCMDBCMDUyMkUgLyogQ29tbW9uQ3J5cHRvU1BJLmggKi87IH07CiAJCTdBM0E2QTgwMjBD
QURCNDcwMDMxN0FBRSAvKiBOU0ltYWdlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QTNBNkE3RjIwQ0FEQjQ2MDAzMTdBQUUgLyogTlNJbWFnZVNQ
SS5oICovOyB9OworCQk5MzQ2OEU2NzI3MTRBN0NEMDA5OTgzRTMgLyogRmlsZVBvcnRTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTY2Mjcx
NEE3Q0QwMDk5ODNFMyAvKiBGaWxlUG9ydFNQSS5oICovOyB9OwogCQk5M0IzOEVCRTI1ODIxQ0I2
MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjM4RUJEMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0
TGluay5oICovOyB9OwogCQk5M0IzOEVDMDI1ODIxQ0Q4MDAxOThFNjMgLyogU3BlZWNoU29mdExp
bmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Iz
OEVCRjI1ODIxQ0Q3MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsubW0gKi87IH07CiAJCTkzQjM4
RUMyMjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVlY2hTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQjM4RUMxMjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVl
Y2hTUEkuaCAqLzsgfTsKQEAgLTM3Niw2ICszNzcsNyBAQAogCQk3MUIxMTQxRjI2ODIzQUNEMDA0
RDY3MDEgLyogU3lzdGVtUHJldmlld1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTeXN0ZW1QcmV2aWV3U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdB
MzZEMEY4MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25DcnlwdG9TUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tbW9uQ3J5cHRvU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdBM0E2QTdGMjBDQURCNDYwMDMxN0FBRSAvKiBOU0ltYWdlU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TSW1hZ2VTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNjYyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVQb3J0U1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUJEMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVl
Y2hTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTb2Z0
TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IzOEVCRjI1ODIxQ0Q3MDAx
OThFNjMgLyogU3BlZWNoU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTcGVlY2hTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNCMzhFQzEyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTUzNCw2ICs1MzYsNyBAQAogCQkJCURGODNFMjA4MjYzNzM0RjEwMDA4MjVFRiAvKiBD
cnlwdG9LaXRQcml2YXRlU1BJLmggKi8sCiAJCQkJMEMyREExMjUxRjNCRUI0OTAwREJDMzE3IC8q
IERhdGFEZXRlY3RvcnNDb3JlU1BJLmggKi8sCiAJCQkJMUQxMkNDNEEyNDExQkNBRTAwRkRBMEEz
IC8qIEZlYXR1cmVGbGFnc1NQSS5oICovLAorCQkJCTkzNDY4RTY2MjcxNEE3Q0QwMDk5ODNFMyAv
KiBGaWxlUG9ydFNQSS5oICovLAogCQkJCUNFNTY3Mzg2MjE1MUE3QjkwMDJGOTJENyAvKiBJT0tp
dFNQSS5oICovLAogCQkJCTBDMkRBMTI2MUYzQkVCNDkwMERCQzMxNyAvKiBJT1BNTGliU1BJLmgg
Ki8sCiAJCQkJMEMyREExMjcxRjNCRUI0OTAwREJDMzE3IC8qIElPUFNMaWJTUEkuaCAqLywKQEAg
LTkwMCw2ICs5MDMsNyBAQAogCQkJCUExMTc1QjU3MUY2QjQ3MDUwMEM0QjlGMCAvKiBEZWZhdWx0
U2VhcmNoUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkQ5RTczMUVFRjVBRjYwMERC
QzMxNyAvKiBFeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFEMTJDQzRCMjQxMUJD
QUUwMEZEQTBBMyAvKiBGZWF0dXJlRmxhZ3NTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDY4
RTY3MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxlUG9ydFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjQ0MjkxNjAxRkE1MjYxRTAwMkNDOTNFIC8qIEZpbGVTaXplRm9ybWF0dGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzVBRjkxQjFGNDNBNEM3MDAyRUFDMDIgLyogR3JhcGhpY3NTZXJ2aWNlc1NQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwMjJFRkYyMkNGRUM1MzAwNkRGMDFCIC8qIEd1bnpp
cC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jb2NvYS9GaWxlUG9ydFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2Ev
RmlsZVBvcnRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2ZlMDA5MGIzZjRiM2RkYTNmNjVmODU2ODk2YTIy
NDdmMGRjMTM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvRmlsZVBvcnRTUEkuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBIQVZFKEZJTEVQT1JUKQorCitleHRlcm4gIkMiIHsKKyNpbmNsdWRlIDxT
eXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+Cit9CisKKyNlbHNlCisKK2V4dGVybiAiQyIgeworaW50IGZp
bGVwb3J0X21ha2Vwb3J0KGludCwgbWFjaF9wb3J0X3QqKTsKK2ludCBmaWxlcG9ydF9tYWtlZmQo
bWFjaF9wb3J0X3QpOworfQorCisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5cy9m
aWxlcG9ydC5oPikKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKaW5kZXggMjg4MjQ0ZjhkZjBi
YTRjNGUxYjdiMzgwZDM2MDkyZDM1YjBiNGM4YS4uMDI3NzM3YTJiNDBiMmMyNzBlYWE2NGI4YTVm
OWU2NDMwMWVlODc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCkBAIC0zMSw5ICszMSwx
MCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvciA6IHVpbnQ4X3QgeworICAgIEJhY2tlbmROb3RTdXBwb3J0ZWQsCiAgICAgRmlsZU5vdEZv
dW5kLAotICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRNb2RpZmljYXRpb24sCisgICAgSW52
YWxpZE5hbWUsCiAgICAgSW52YWxpZFN0YXRlLAogICAgIFR5cGVNaXNtYXRjaCwKICAgICBVbmtu
b3duCkBAIC00MiwxNiArNDMsMTggQEAgZW51bSBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
IDogdWludDhfdCB7CiBpbmxpbmUgV2ViQ29yZTo6RXhjZXB0aW9uIGNvbnZlcnRUb0V4Y2VwdGlv
bihGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQogewogICAgIHN3aXRjaCAoZXJyb3IpIHsK
KyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQ6Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RTdXBwb3J0ZWRF
cnJvciwgIkJhY2tlbmQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wZXJhdGlvbiIgfTsKICAgICBj
YXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZDoKICAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5vdEZvdW5kRXJyb3IgfTsKICAgICBjYXNl
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb246CiAgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3IgfTsKLSAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaDoKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlR5cGVFcnJvciB9Owog
ICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWU6CiAgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJOYW1lIGlz
IGludmFsaWQiIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3Rh
dGU6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpJbnZhbGlk
U3RhdGVFcnJvciB9OworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21h
dGNoOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVy
cm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAg
ICBicmVhazsKICAgICB9CkBAIC03NCw5ICs3NywxMCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7
CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yLAorICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkJhY2tlbmROb3RTdXBwb3J0ZWQsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6RmlsZU5vdEZvdW5kLAotICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkludmFsaWRNb2RpZmljYXRpb24sCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OlR5cGVNaXNtYXRjaCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCBjOGEwMTQxM2NiMzMx
OTY1M2E4ZWI3ZTcyZjFlZWMzNDgzYzZhNjlmLi5iZTI1MTk3ZmJjNDA4YjlhOTI2M2I5MmQ3MzU5
ZDYxNjE2NjEwOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKICNpbmNsdWRl
ICJGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRGaWxlSGFuZGxl
LmgiCiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTQw
LDcgKzE0MSw3IEBAIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2CiAgICAgcmV0dXJuIHJlc3RQYXRo
LnNwbGl0KHBhdGhTZXBhcmF0b3IpOwogfQogCi1FeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKK0V4cGVjdGVkPEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CiB7CiAgICAgaWYgKCFtX21hbmFnZXIpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKQEAgLTE0OSw5ICsxNTAsMjAgQEAgRXhw
ZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPgogICAgIGlmICghYWNxdWlyZWQpCiAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUpOwogCisg
ICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZp
bGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBpZiAobV9oYW5kbGUgPT0gRmlsZVN5c3RlbTo6
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYXV0byBpcGNIYW5kbGUg
PSBJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShtX2hhbmRsZSk7CisgICAgaWYgKCFpcGNI
YW5kbGUpIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1faGFuZGxlKTsKKyAgICAg
ICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2Vu
ZE5vdFN1cHBvcnRlZCk7CisgICAgfQorCiAgICAgQVNTRVJUKCFtX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Ci0gICAg
cmV0dXJuICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CisgICAgcmV0dXJuIHN0ZDo6cGFpciB7
ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUsIFdURk1vdmUoKmlwY0hhbmRsZSkgfTsKIH0KIAog
RXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQpAQCAtMTc3LDEyICsxODksOCBAQCBzdGQ6
Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
Ojp0cnVuY2F0ZShXZWJDb3JlOgogICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8
ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAg
ICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKLSAgICBhdXRv
IGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9w
ZW5Nb2RlOjpSZWFkV3JpdGUpOwotICAgIGF1dG8gY2xvc2VGaWxlU2NvcGUgPSBtYWtlU2NvcGVF
eGl0KFsmXSB7Ci0gICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShoYW5kbGUpOwotICAgIH0p
OwotCi0gICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUoaGFuZGxlLCBz
aXplKTsKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUo
bV9oYW5kbGUsIHNpemUpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIApAQCAtMTk3LDcgKzIwNSwxMSBAQCBzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpm
bHVzaChXZWJDb3JlOjpGaQogICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICpt
X2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAg
ICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKLSAgICAvLyBGSVhN
RTogd2hlbiB3cml0ZSBvcGVyYXRpb24gaXMgaW1wbGVtZW50ZWQsIHBlcmZvcm0gYWN0dWFsIGZs
dXNoIGhlcmUuCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6Zmx1c2hGaWxl
KG1faGFuZGxlKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OlVua25vd247CisKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCkBA
IC0yMDksNiArMjIxLDEwIEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFtX2Fj
dGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6VW5rbm93bjsKIAorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5kbGUp
OworICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsK
KwogICAgIG1fbWFuYWdlci0+cmVsZWFzZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVy
KTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggZTQ3ZWQzYTE2ZWU5NWFiMWQxNDk5MzhkMTk3ZjY0
NjNkOTc0OTAxNy4uZTBiYTBjZDQwODI0ZTFjYzEzYmI2N2U3ZTg0N2ViZDQ2MjgwNzRiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5k
bGU7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZU1h
bmFnZXI7CkBAIC01MCw3ICs1NCw4IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IHJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBk
ZWxldGVSZWN1cnNpdmVseSk7CiAgICAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIpOwogCi0gICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxl
KCk7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47
CisgICAgRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwogICAgIEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllcik7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiB0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IHVpbnQ2NF90IHNpemUpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gZmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsK
QEAgLTY1LDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYXRoOwogICAgIFN0cmlu
ZyBtX25hbWU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXI+IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICBGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZhbGlkUGxh
dGZvcm1GaWxlSGFuZGxlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMzY4NjE3NDI4MTgwZDc4NDZiMmQ2MmYwNjBlOTllNWRj
N2E3ZGQ2My4uNjUwMWE4ZmYzZDUzY2IxODc5ZWJlYWM5ZjUxYzI0ZGFjZjAwOWU5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCB2b2lkIE5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+cmVzb2x2ZSh0YXJnZXRJ
ZGVudGlmaWVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCmluZGV4IGE4MTg4
NTFmZjE0NTM4NjhhNzRkMTc2ZmI2Y2IyOGYyMWFiMzIzMWIuLmY4YTJiMGIxZjU0ZmZiM2VkYWIx
MzJjOGQzY2IxN2I2NDBjMWIwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAgLTMzLDYg
KzMzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKK25hbWVzcGFjZSBJUEMg
eworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogc3Ry
dWN0IENsaWVudE9yaWdpbjsKIH0KQEAgLTcwLDcgKzc0LDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlbW92
ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVzb2x2
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9y
PFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB1c2lu
ZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKKyAgICB2b2lkIGNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldFNpemVGb3JBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3Rl
ZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHRydW5j
YXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNp
emUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPik+JiYpOwogICAgIHZvaWQgZmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbgppbmRleCA0ZmVhMjc2NWZkOTJhOTgwNjBjZDA0MDA2MmM1ZTk0NTVjODE5ZmMw
Li4xNzc2ZWNkNjE5ZGExMjVkN2YwYTQ3MmNmMGIwYmMwY2MwMzQwOTI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAKICAgICBS
ZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgUmVzb2x2
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYwogCi0gICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6
OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6
OlNoYXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBHZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8dWlu
dDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAg
IFRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBG
bHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIg
YWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODJhYmRlNWQ4M2RlNDVi
YmMyOWY5OTliMDJhM2FmMWI2OTZiN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUu
aCIKKworbmFtZXNwYWNlIElQQyB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK3N0ZDo6b3B0
aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8gTm90IGltcGxlbWVudGVk
IGluIG90aGVyIHBsYXRmb3JtcyB5ZXQuCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwor
dm9pZCBTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5jb2RlciYpIGNvbnN0Cit7Cit9CisKK3N0
ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKERl
Y29kZXImKQoreworICAgIHJldHVybiBzdGQ6Om51bGxvcHQKK30KKworI2VuZGlmCisKK30gLy8g
bmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hh
cmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhh
bmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhhYWY0MGJmZGJlOTU2MmFjODNkNmE2NDRhMjBiNDY5YjQ3ZGE4
MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRG
aWxlSGFuZGxlLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorCituYW1l
c3BhY2UgSVBDIHsKKworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CisKK2NsYXNzIFNo
YXJlZEZpbGVIYW5kbGUgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJl
ZEZpbGVIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAg
IFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1G
aWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFuZGxlOyB9CisKKyAgICB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxl
SGFuZGxlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBT
aGFyZWRGaWxlSGFuZGxlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisg
ICAgICAgIDogbV9oYW5kbGUoaGFuZGxlKQorICAgIHsKKyAgICB9CisKKyAgICBGaWxlU3lzdGVt
OjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZv
cm1GaWxlSGFuZGxlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBJUEMKKworCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2Eu
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNv
Y29hLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iOWYzZjcwYTMyNzg5ZDM0NzUwZjJhYjNhZjE3ZDBiM2QyNGUx
MjFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2Ev
U2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUuaCIKKworI2lu
Y2x1ZGUgIk1hY2hQb3J0LmgiCisjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5o
PgorCituYW1lc3BhY2UgSVBDIHsKKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBT
aGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSkKK3sKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxl
IHsgaGFuZGxlIH07CisjZWxzZQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisjZW5kaWYKK30K
Kwordm9pZCBTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBtYWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0gTUFDSF9QT1JUX05VTEw7CisgICAg
ZmlsZXBvcnRfbWFrZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgZW5jb2RlciA8PCBN
YWNoUG9ydChmaWxlcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOworfQorCitzdGQ6Om9w
dGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIE1hY2hQb3J0IG1hY2hQb3J0OworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWFjaFBvcnQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIAorICAg
IHJldHVybiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoZmlsZXBvcnRfbWFrZWZkKG1hY2hQb3J0
LnBvcnQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJD
b250ZW50LnNiLmluIGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KaW5kZXggZjJiYTRmNWE4ZWQwNzJi
NWJkZTE2NTMwMjQ3OTEwNzA1ZTIwNzgyMS4uMjIxMDlhMTliN2I2NjIwZDFjNTRhNmI4NjExMDE0
ZDViMWM0ODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFBy
b2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IuaW4KKysrIGIvU291cmNl
L1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lldl
YkNvbnRlbnQuc2IuaW4KQEAgLTEyNzUsNiArMTI3NSw3IEBACiAgICAgICAgIChzeXNjYWxsLW51
bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19z
ZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZnNnZXRwYXRoKQor
ICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2VmZCkKICAgICAgICAgKHN5
c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAgICAgKHN5c2NhbGwtbnVt
YmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3Vh
cmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW0KaW5kZXggNzE2NGY4ODYwMDc4ZTIwNzFhYjhjNWZkNDY2ODhmMzRk
ZmFhYWYyMi4uNGNmOTY1NDFiYmQxNGY3ZGI5ZmYwN2FjMzM3YzI4ZTViMmU1ODM2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0K
QEAgLTE1MTcsNiArMTUxNywzNiBAQCBzdGF0aWMgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZp
b3IgdG9FZGl0YWJsZUxpbmtCZWhhdmlvcihfV0tFZGl0YWJsZUxpbmtCZWhhdgogICAgIF9wcmVm
ZXJlbmNlcy0+c2V0UmVxdWlyZXNQYWdlVmlzaWJpbGl0eVRvUGxheUF1ZGlvKHJlcXVpcmVzKTsK
IH0KIAorLSAoQk9PTClfZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX3By
ZWZlcmVuY2VzLT5maWxlU3lzdGVtQWNjZXNzRW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRG
aWxlU3lzdGVtQWNjZXNzRW5hYmxlZDooQk9PTClmaWxlU3lzdGVtQWNjZXNzRW5hYmxlZAorewor
ICAgIF9wcmVmZXJlbmNlcy0+c2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQoZmlsZVN5c3RlbUFj
Y2Vzc0VuYWJsZWQpOworfQorCistIChCT09MKV9zdG9yYWdlQVBJRW5hYmxlZAoreworICAgIHJl
dHVybiBfcHJlZmVyZW5jZXMtPnN0b3JhZ2VBUElFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpX3Nl
dFN0b3JhZ2VBUElFbmFibGVkOihCT09MKXN0b3JhZ2VBUElFbmFibGVkCit7CisgICAgX3ByZWZl
cmVuY2VzLT5zZXRTdG9yYWdlQVBJRW5hYmxlZChzdG9yYWdlQVBJRW5hYmxlZCk7Cit9CisKKy0g
KEJPT0wpX2FjY2Vzc0hhbmRsZUVuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5h
Y2Nlc3NIYW5kbGVFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldEFjY2Vzc0hhbmRsZUVuYWJs
ZWQ6KEJPT0wpYWNjZXNzSGFuZGxlRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0QWNj
ZXNzSGFuZGxlRW5hYmxlZChhY2Nlc3NIYW5kbGVFbmFibGVkKTsKK30KKwogQGVuZAogCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmgKaW5kZXggNTA2MDNhMWI5ZjJmNzg5YjU2MGMwM2ZkYmNiYTk0NzVlNDk0YzJm
Yy4uNTk5NjliNjRhNjVlYjhlNWYwMTQwM2JiNmM3MzQ5ZDgzODIyZWY3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2
YXRlLmgKQEAgLTE3Myw2ICsxNzMsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQ
aXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE1lZGlhU2Vzc2lvbkVuYWJsZWQ6KSBCT09MIF9tZWRpYVNlc3Npb25FbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPV9pc0V4dGVuc2libGVTU09FbmFibGVkLCBzZXR0ZXI9X3NldEV4dGVuc2libGVT
U09FbmFibGVkOikgQk9PTCBfZXh0ZW5zaWJsZVNTT0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFJlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlBdWRpbzopIEJPT0wgX3JlcXVpcmVzUGFnZVZp
c2liaWxpdHlUb1BsYXlBdWRpbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUu
MCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RmlsZVN5c3RlbUFjY2Vzc0Vu
YWJsZWQ6KSBCT09MIF9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0U3RvcmFnZUFQSUVuYWJsZWQ6KSBCT09MIF9zdG9yYWdlQVBJRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWNjZXNzSGFuZGxlRW5hYmxlZDopIEJPT0wg
X2FjY2Vzc0hhbmRsZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRXZWJHTEVuYWJsZWQ6KSBCT09MIF93ZWJHTEVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlZDIwNDFmYTUyZGYzNmE5MTY2ZmM3Mjgy
ZTE5YjY0YjkxZDQ5YjNlLi4yNDkzZTgzOTUzMmQ1MGJiNDRiNzI1NjA5MTNmN2UxMTdjOWU2ZDE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE0NzIsNiArMTQ3Miw3IEBACiAJCTkzMDg1RERGMjZFNUJDRjEwMDBFQzZBNyAvKiBOZXR3
b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3
b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJOTMwODVERTAyNkU1
QkNGRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVEQzQyNkUxQkJCRDAwMEVDNkE3IC8q
IE5ldHdvcmtTdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5MzA4NURFMTI2RTVCRDEzMDAwRUM2
QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk5MzEyMkM4NjI3MTBDQ0RG
MDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZp
bGVIYW5kbGUuaCAqLzsgfTsKIAkJOTMxMkJBRDUyNkYzM0MyNjAwRkRERjVGIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMxQTA3NTAyNkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlci5oICovOyB9OwogCQk5MzEyQkFENjI2RjMzQzI5MDBGRERGNUYgLyogRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMUEwNzUzMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
ICovOyB9OwogCQk5MzFBMUJFMjI2Rjg3MDA5MDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMx
QTFCRTAyNkY4NUMzMjAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLzsgfTsK
QEAgLTE0ODQsNiArMTQ4NSw4IEBACiAJCTkzM0U4MzVBMjNBMUFFMjgwMERFRjI4OSAvKiBXZWJJ
REJTZXJ2ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMzRTgzNTkyM0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2Vz
LmggKi87IH07CiAJCTkzM0U4MzVCMjNBMUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMzRTgzNTgyM0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi87IH07CiAJCTkzNDI1ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1p
c3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDI1ODk4MjU1QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRp
ZXMuaCAqLzsgfTsKKwkJOTM0NjhFNkIyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwICovOyB9OworCQk5
MzQ2OEU2RDI3MTRBRjg4MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZDMjcxNEFG
ODgwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovOyB9OwogCQk5MzRCNzI0
NDE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRCNzI0MzE5RjVCOUJFMDBBRTk2
RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1NDI0MkMyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYg
LyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRD
b25uZWN0aW9uLmggKi87IH07CkBAIC00OTQ1LDYgKzQ5NDgsNyBAQAogCQk5MzA4NURDQzI2RTJF
OTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDg1
RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRTI2RTJFOTAyMDAw
RUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzEyMkM4NTI3MTBDQ0RFMDAx
RDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTaGFyZWRGaWxlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
MUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAv
KiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTIyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5
NjMsNiArNDk2Nyw4IEBACiAJCTkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJREJTZXJ2
ZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJTZXJ2ZXJN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5MzQyNTg4
RjI1NTVEQ0E1MDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNz
aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGVy
bWlzc2lvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2
QTI3MTRBRjQ3MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkMyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVI
YW5kbGVDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFy
ZWRGaWxlSGFuZGxlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRC
NzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU0MjQyQTI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzU0MjQyQjI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC03MzQ2LDYgKzczNTIsOCBAQAogCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAv
KiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJMkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8q
IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3
QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8sCisJCQkJOTM0NjhFNkEy
NzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwICovLAorCQkJCTkzMTIyQzg1
MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi8sCiAJCQkJN0I3MzEyMzYy
NUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwICovLAogCQkJCTdC
NzMxMjMzMjVDQzg1MjMwMDNCMjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmggKi8sCiAJ
CQkJN0I3MzEyMzQyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3Bw
ICovLApAQCAtMTExMTIsNiArMTExMjAsNyBAQAogCQkJCTFBNkQ4NkJGMURGNzUyNjUwMDc3NDVF
OCAvKiBNYWNoTWVzc2FnZS5jcHAgKi8sCiAJCQkJMUE2RDg2QzAxREY3NTI2NTAwNzc0NUU4IC8q
IE1hY2hNZXNzYWdlLmggKi8sCiAJCQkJQkNDNTZGNzcxMTU5OTU3RDAwMUNDQUY5IC8qIE1hY2hQ
b3J0LmggKi8sCisJCQkJOTM0NjhFNkMyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5k
bGVDb2NvYS5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTEyNjMwLDYgKzEyNjM5LDcgQEAKIAkJCQlBMTgzNDk0MjI0RUY0Njc4
MDBCREM5QTggLyogU2hhcmVkQnVmZmVyQ29weS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThG
RjZFRjJBMzEzMEMxMzAxNzY3IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY0QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlz
dEhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8q
IFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjRCRUQ1MTIwODk0RDEw
MEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENEI0RDlEMUU3
NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODMxM0Y3RUMxRjdEQUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xNDU3MCw2ICsxNDU4MCw4IEBACiAJCQkJMkQ5MkE3ODcyMTJC
NkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
REMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hhcmVkQnVmZmVyQ29weS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyREMxODEyNDVCNTQ5MzQzQkM5ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJl
ZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzQ2OEU2QjI3MTRBRjQ3MDA5OTgzRTMg
LyogU2hhcmVkRmlsZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzQ2OEU2RDI3MTRB
Rjg4MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUExQURBRkI2MjM2OEU2QTgwMDlDQjc3NiAvKiBTaGFyZWRNZW1vcnkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlz
cGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUg
LyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5j
cHAKaW5kZXggN2EyMzhhY2E0YzM4ZDY3NTU0YTdkYTYzZWU3ZGZlMjU2YzdiY2Q4Yi4uZGY0ZTcw
NGY5MDMwYjlmNDNmYTFkYTQzZDUwYWM3MTdkYTE1NzUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTEyNiw3ICsxMjYsOCBAQCB2b2lk
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSAogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkp
KTsKIAotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7
CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoc3RkOjpwYWlyIHsgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVl
LnNlY29uZC5oYW5kbGUoKSB9KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IGRmMzc5YzY3ODY2
MzQ3MmFiZjRkZWY5MjFkNWVhZWRjZTQ1YjQxNjAuLjM2ZTE2MGY3NTJmNGU3ZGM0NWIwNDFiOWQ1
ZGM4YmVjZjkzYzkxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20u
YXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29t
LmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTE5MzUsNiArMTkzNSw3IEBACiAgICAgICAgIChz
eXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2NhbGwtbnVt
YmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZnNn
ZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2VmZCkKICAg
ICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAgICAgKHN5
c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NDk0Y2E5ZDg1OWQ4Yzk0NjU1MDk4N2M1NjY5Njk3MmVkYWY5
Y2ZjLi5iY2RlOTQ5MDRlMWZjYzdmMzczNTlkZDY0ZmE0YTQ5Y2Q0Y2ZjN2I5IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbTogQWRkZWQuCisgICAgICAgICgtW0ZpbGVT
eXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2
ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgICh0ZXN0KToKKwogMjAyMS0xMC0xMCAgTWljaGFl
bCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAgICBbV1BFXSBFeHBv
c2UgV0tUZXh0Q2hlY2tlclNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCBhbmQgdXNl
IGl0IGZyb20gV0tUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNzVhNWQwZjkyODk4NzRm
YWEwNTYzN2U1YzA4YWUyNmE5ZDY0MzY5Li44MDFlNDc0MDU4NzJlODA5MDU4ZDA0M2QyYTZkZjcz
NWYwY2ViNzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODU0LDYgKzg1NCw3IEBACiAJ
CTkzM0Q2MzFEMUZDQjc2MjAwMDMyRUNENiAvKiBIYXNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRDYzMUIxRkNCNzYxODAwMzJFQ0Q2IC8q
IEhhc2hlci5jcHAgKi87IH07CiAJCTkzNDI1ODlDMjU1QjYwOUIwMDU5RUVERCAvKiBTcGVlY2hS
ZWNvZ25pdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNDI1ODlCMjU1QjYwOUEwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSAqLzsg
fTsKIAkJOTM0MjU4OUUyNTVCNkExMjAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0aW9uLXVzZXIt
cGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODlEMjU1QjY2QTAwMDU5RUVERCAvKiBzcGVl
Y2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCAqLzsgfTsKKwkJ
OTM0NjhFNkYyNzE0QjRGMjAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2RTI3MTRCNEYxMDA5
OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAqLzsgfTsKIAkJOTM1Nzg2Q0MyMEY2QTI3MDAw
MDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNTIwRjY5RkVEMDA0MERDMUIgLyog
SW5kZXhlZERCLnNxbGl0ZTMtd2FsICovOyB9OwogCQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMg
LyogSW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5z
cWxpdGUzICovOyB9OwogCQk5MzU3ODZDRTIwRjZBMkExMDAwMENERkMgLyogSW5kZXhlZERCLnNx
bGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0g
Ki87IH07CkBAIC0yNTgyLDYgKzI1ODMsNyBAQAogCQk5MzNENjMxQjFGQ0I3NjE4MDAzMkVDRDYg
LyogSGFzaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhhc2hl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1ODlCMjU1QjYwOUEwMDU5
RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzQyNTg5RDI1NUI2NkEwMDA1OUVFREQgLyogc3BlZWNocmVjb2duaXRpb24tdXNl
ci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAic3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2RTI3MTRCNEYxMDA5OTgzRTMgLyog
RmlsZVN5c3RlbUFjY2Vzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEZpbGVTeXN0ZW1BY2Nlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIklu
ZGV4ZWREQi5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEZB
NUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4
ZWREQi5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNEZBNUM3
MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVkREIuc3Fs
aXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1MTAsNiArMzUxMiw3IEBACiAJ
CQkJNkIyNUE3NTEyNURDOEQ0RTAwNzA3NDRGIC8qIEV2ZW50QXR0cmlidXRpb24ubW0gKi8sCiAJ
CQkJQ0RBMjlCMjgyMEZEMkE5OTAwRjE1Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5t
bSAqLywKIAkJCQkxRDEyQkVCRjI0NUJFRjg1MDA0QzBCN0EgLyogRXhpdFBpUE9uU3VzcGVuZFZp
ZGVvRWxlbWVudC5tbSAqLywKKwkJCQk5MzQ2OEU2RTI3MTRCNEYxMDA5OTgzRTMgLyogRmlsZVN5
c3RlbUFjY2Vzcy5tbSAqLywKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERBNDYgLyogRmluZElu
UGFnZS5tbSAqLywKIAkJCQk1MTI0MkNENDIzNzRFNjFFMDBFRUQ5QzEgLyogRmluZEluUGFnZUFQ
SS5tbSAqLywKIAkJCQkxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1YWxseU5v
bkVtcHR5TWlsZXN0b25lLm1tICovLApAQCAtNTU2OCw2ICs1NTcxLDcgQEAKIAkJCQk3Q0NFN0VG
MTFBNDExQUU2MDA0NDdDNEMgLyogRmFpbGVkTG9hZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
Nzk2NTFFNzIxNkJGREVEMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdBMzJENzRBMUYwMjE1MTUwMDE2MkM0NCAvKiBGaWxlTW9uaXRvci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5MzQ2OEU2RjI3MTRCNEYyMDA5OTgzRTMgLyogRmlsZVN5c3Rl
bUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUYzMUE0MTFBRTYwMDQ0N0M0QyAv
KiBGaW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEJCMUQwQTY1MDAwMEZFQkNGMyAv
KiBGaW5kSW5QYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyNDJDRDUyMzc0RTYyNTAwRUVE
OUMxIC8qIEZpbmRJblBhZ2VBUEkubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMGZjZDMxYjhjYjM1MTExYWRhNjFhYTcyNDJiZTQ1NjRjNTUyMmE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxl
U3lzdGVtQWNjZXNzLm1tCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFVSTFNjaGVtZUhhbmRsZXIuaCIKKyNpbXBv
cnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCitzdGF0aWMgYm9vbCByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2U7CitzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFzdFNj
cmlwdE1lc3NhZ2U7CisKK0BpbnRlcmZhY2UgRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVy
IDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIKKworLSAodm9pZCl1c2VyQ29udGVu
dENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9s
bGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7
CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKKyAgICBsYXN0U2NyaXB0TWVzc2Fn
ZSA9IG1lc3NhZ2U7Cit9CisKK0BlbmQKKworc3RhdGljIE5TU3RyaW5nICptYWluRnJhbWVTdHJp
bmcgPSBAIjxzY3JpcHQ+IFwKKyAgICBmdW5jdGlvbiBzdGFydCgpIHsgXAorICAgICAgICB2YXIg
d29ya2VyID0gbmV3IFdvcmtlcignd29ya2VyLmpzJyk7IFwKKyAgICAgICAgd29ya2VyLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IFwKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEpOyBcCisgICAg
ICAgIH07IFwKKyAgICB9IFwKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgncGFnZSBpcyBsb2FkZWQnKTsgXAorICAgIDwvc2NyaXB0PiI7
CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3b3JrZXJCeXRlcyA9IFIiVEVTVFJFU09VUkNFKAorYXN5
bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJvb3RIYW5kbGUg
PSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgdmFyIGZp
bGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoJ2ZpbGUtc3lzdGVtLWFj
Y2Vzcy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsKKyAgICAgICAgdmFyIGFjY2Vzc0hhbmRs
ZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICB2
YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKKyAgICAgICAgdmFyIHdyaXRlU2l6ZSA9
IGFjY2Vzc0hhbmRsZS53cml0ZShidWZmZXIsIHsgImF0IiA6IDAgfSk7CisgICAgICAgIHNlbGYu
cG9zdE1lc3NhZ2UoJ3N1Y2Nlc3M6IHdyaXRlICcgKyB3cml0ZVNpemUgKyAnIGJ5dGVzJyk7Cisg
ICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ2Vycm9yOiAnICsg
ZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9
Cit9Cit0ZXN0KCk7CispVEVTVFJFU09VUkNFIjsKKworVEVTVChGaWxlU3lzdGVtQWNjZXNzLCBQ
cm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtb
RmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3Jp
cHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAg
IGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisgICAgcHJl
ZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2Vz
Ll9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9zdG9yYWdlQVBJ
RW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNjaGVtZUhhbmRsZXIgPSBhZG9wdE5TKFtbVGVzdFVS
TFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2NoZW1lSGFuZGxlciBzZXRTdGFy
dFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1lVGFzaz4g
dGFzaykgeworICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9uc2U7CisgICAg
ICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGE7CisgICAgICAgIE5TVVJMICpyZXF1ZXN0VVJMID0g
dGFzay5yZXF1ZXN0LlVSTDsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3ZWJraXQ6Ly93ZWJr
aXQub3JnL3dvcmtlci5qcyIsIHJlcXVlc3RVUkwuYWJzb2x1dGVTdHJpbmcpOworICAgICAgICBy
ZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDpyZXF1
ZXN0VVJMIE1JTUVUeXBlOkAidGV4dC9qYXZhc2NyaXB0IiBleHBlY3RlZENvbnRlbnRMZW5ndGg6
MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgICAgICBkYXRhID0gW05TRGF0YSBkYXRhV2l0
aEJ5dGVzOndvcmtlckJ5dGVzIGxlbmd0aDpzdHJsZW4od29ya2VyQnl0ZXMpXTsKKyAgICAgICAg
W3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKKyAgICAgICAgW3Rhc2sg
ZGlkUmVjZWl2ZURhdGE6ZGF0YS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07Cisg
ICAgfV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5k
bGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIndlYmtpdCJdOworCisgICAgLy8gbG9hZCBmaXJzdCB3
ZWIgdmlldyAmIHN0YXJ0IHRlc3QKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3Ry
aW5nOm1haW5GcmFtZVN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAid2Via2l0
Oi8vd2Via2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAg
RVhQRUNUX1dLX1NUUkVRKEAicGFnZSBpcyBsb2FkZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9k
eV0pOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxl
dGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAg
RVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1l
c3NhZ2UgYm9keV0pOworCisgICAgYXV0byBzZWNvbmRXZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbc2Vjb25kV2ViVmlldyBsb2Fk
SFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
IndlYmtpdDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OworICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNz
YWdlIGJvZHldKTsKKworICAgIC8vIEFjY2VzcyBoYW5kbGUgY2Fubm90IGJlIGNyZWF0ZWQgd2hl
biB0aGVyZSBpcyBhbiBvcGVuIG9uZS4KKyAgICBbc2Vjb25kV2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlw
dE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJlcnJvcjogSW52YWxpZFN0
YXRlRXJyb3IgLSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIiwgW2xhc3RTY3Jp
cHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIE9wZW4gYWNjZXNzIGhhbmRsZSBzaG91bGQgYmUg
Y2xvc2VkIHdoZW4gd2ViIHByb2Nlc3MgY3Jhc2hlcy4KKyAgICBbd2ViVmlldyBfa2lsbFdlYkNv
bnRlbnRQcm9jZXNzXTsKKworICAgIFtzZWNvbmRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
InN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAInN1
Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKK30KKwor
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2QxNDIwOWRmYjMyY2Qz
NzQ1Y2EwMmUwNmM0YTYyMjU3MTkzZWNiOC4uOWQxZTk5YjAwNWM1YzFjMzNmZTQ3Y2I5MGQ3OTEw
M2RjMDczZGRhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTExICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1yZWFkLXdyaXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgorICAgICAgICAo
YXJyYXlCdWZmZXJUb1N0cmluZyk6CisgICAgICAgIChzdHJpbmdUb0FycmF5QnVmZmVyKToKKyAg
ICAgICAgKHdyaXRlKToKKyAgICAgICAgKHJlYWQpOgorICAgICAgICAoYXN5bmMgdGVzdCk6Cisg
ICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFk
LXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbDog
QWRkZWQuCisKIDIwMjEtMTAtMTAgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0lGQ10gRG8gbm8gYmFpbCBvdXQgb24gYm91bmRhcnkgbmV1dHJhbCBjaGFy
YWN0ZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
cmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmU5ZTBjMmIwOTAzYjMyOWU0YmRhMzBkOWFlZmNkNmNi
MGQ3YTAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVt
YWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcwpAQCAtMCww
ICsxLDk1IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygn
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuIik7CisKK3ZhciBhY2Nlc3NIYW5kbGUsIGZpbGVTaXplLCB3cml0ZUJ1ZmZlciwgd3Jp
dGVTaXplLCByZWFkQnVmZmVyLCByZWFkU2l6ZSwgcmVhZFRleHQsIHJlYWRFcnJvcjsKK3ZhciB0
b3RhbFJlYWRTaXplID0gMCwgdG90YWxXcml0ZVNpemUgPSAwOworCitmdW5jdGlvbiBmaW5pc2hU
ZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikgeworICAgICAgICB0ZXN0RmFpbGVkKGVycm9y
KTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGFycmF5QnVmZmVy
VG9TdHJpbmcoYnVmZmVyKQoreworICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5
KG51bGwsIG5ldyBVaW50MTZBcnJheShidWZmZXIpKTsKK30KKworZnVuY3Rpb24gc3RyaW5nVG9B
cnJheUJ1ZmZlcihzdHJpbmcpCit7CisgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihz
dHJpbmcubGVuZ3RoKjIpOworICAgIHZhciBidWZmZXJWaWV3ID0gbmV3IFVpbnQxNkFycmF5KGJ1
ZmZlcik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgYnVmZmVyVmlld1tpXSA9IHN0cmluZy5jaGFyQ29kZUF0KGkpOworICAgIH0KKyAgICBy
ZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiB3cml0ZShhY2Nlc3NIYW5kbGUsIG9mZnNldCwg
dGV4dCkKK3sKKyAgICB3cml0ZUJ1ZmZlciA9IHN0cmluZ1RvQXJyYXlCdWZmZXIodGV4dCk7Cisg
ICAgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7ICJhdCIgOiBv
ZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoIndyaXRlU2l6ZSIsICJ3cml0ZUJ1ZmZlci5ieXRlTGVu
Z3RoIik7CisgICAgcmV0dXJuIHdyaXRlU2l6ZTsKK30KKworZnVuY3Rpb24gcmVhZChhY2Nlc3NI
YW5kbGUsIG9mZnNldCwgc2l6ZSkKK3sKKyAgICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVmZmVy
KHNpemUpOworICAgIHJlYWRTaXplID0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAi
YXQiOiBvZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoInJlYWRTaXplIiwgInJlYWRCdWZmZXIuYnl0
ZUxlbmd0aCIpOworICAgIHJldHVybiBhcnJheUJ1ZmZlclRvU3RyaW5nKHJlYWRCdWZmZXIpOwor
fQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIHRyeSB7CisgICAgICAgIHZhciByb290
SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7CisgICAgICAg
IC8vIENyZWF0ZSBhIG5ldyBmaWxlIGZvciB0aGlzIHRlc3QuCisgICAgICAgIGF3YWl0IHJvb3RI
YW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiKS50aGVuKCgpID0+IHsg
fSwgKCkgPT4geyB9KTsKKyAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxl
LmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiLCB7ICJjcmVhdGUiIDogdHJ1
ZSAgfSk7CisgICAgICAgIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5n
ZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICIwIik7CisKKyAgICAgICAg
ZGVidWcoInRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOiIpOworICAgICAgICB0b3RhbFdyaXRlU2l6
ZSArPSB3cml0ZShhY2Nlc3NIYW5kbGUsIDAsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIpOwor
ICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJz
dCBzZW50ZW5jZS4iKTsKKyAgICAgICAgdG90YWxSZWFkU2l6ZSArPSByZWFkVGV4dC5sZW5ndGgg
KiAyOworCisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgdG90
YWxXcml0ZVNpemUsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRl
eHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgdG90YWxSZWFkU2l6ZSwgdG90YWxXcml0ZVNpemUgLSB0
b3RhbFJlYWRTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIs
ICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICByZWFkVGV4dCA9IHJlYWQo
YWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5UaGlzIGlzIHNlY29u
ZCBzZW50ZW5jZS4iKTsKKworICAgICAgICBkZWJ1ZygidGVzdCBmbHVzaCgpOiIpOworICAgICAg
ICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2FpdCBh
Y2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAidG90
YWxXcml0ZVNpemUiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCB0cnVuY2F0ZSgpOiIpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoNCk7CisgICAgICAgIGF3YWl0IGFjY2Vz
c0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5n
ZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICI0Iik7CisKKyAgICAgICAg
ZGVidWcoInRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOiIpOworICAgICAgICBl
dmFsQW5kTG9nKCJhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoMCkiKTsKKyAgICAgICAgcmVhZEJ1ZmZl
ciA9IG5ldyBBcnJheUJ1ZmZlcig0KTsKKyAgICAgICAgc2hvdWxkVGhyb3coImFjY2Vzc0hhbmRs
ZS5yZWFkKHJlYWRCdWZmZXIsIHsgXCJhdFwiIDogMCB9KSIpOworCisgICAgICAgIGF3YWl0IGFj
Y2Vzc0hhbmRsZS5jbG9zZSgpOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBjYXRjaCAo
ZXJyb3IpIHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfQorfQorCit0ZXN0KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13
b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxY2Q1OWI3MzhmMjE0NDA4ZThkNmEwYmM5
YTc3MGI4MzEyMTAwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2Zp
bGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitbV29ya2VyXSBUaGlzIHRlc3QgY2hlY2tzIGJhc2lj
IGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvc3luYy1h
Y2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgMAor
W1dvcmtlcl0gdGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6CitQQVNTIFtXb3JrZXJdIHdyaXRlU2l6
ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJl
YWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBm
aXJzdCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5i
eXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0
aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIgor
UEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dv
cmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuVGhpcyBpcyBzZWNvbmQg
c2VudGVuY2UuIgorW1dvcmtlcl0gdGVzdCBmbHVzaCgpOgorUEFTUyBbV29ya2VyXSBmaWxlU2l6
ZSBpcyB0b3RhbFdyaXRlU2l6ZQorW1dvcmtlcl0gdGVzdCB0cnVuY2F0ZSgpOgorUEFTUyBbV29y
a2VyXSBmaWxlU2l6ZSBpcyA0CitbV29ya2VyXSB0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9w
ZXJhdGlvbjoKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKQorUEFTUyBbV29ya2Vy
XSBhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7ICJhdCIgOiAwIH0pIHRocmV3IGV4Y2Vw
dGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBvcGVy
YXRpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMt
YWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI3MTZmNzFjODAzMGRjZDEwYzY1ZGEzODM2ZTRkOTVjOGMyNjNlZTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
c3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29y
a2VyKCdyZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMnKTs8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440873</attachid>
            <date>2021-10-11 19:54:28 -0700</date>
            <delta_ts>2021-10-11 20:17:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211011195427.patch</filename>
            <type>text/plain</type>
            <size>80031</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLmUwN2Y2YmUzMmViNzYyMWY1YTU3ODU3ZmE1ZGE1ZmY0MjViYmRk
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9ubHkgbWFyayBuZWVkZWQgSlNPTkltcGw6Ok9i
amVjdEJhc2UgZnVuY3Rpb25zIHdpdGggV1RGX0VYUE9SVF9QUklWQVRFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjU2YTkzYTIwNzEzNTQ5NTMyZWY0NjNjOTNjZjhkNGFiMTczNmNiZC4uOWVmM2E3M2E3ODgzZjI3
ZGE2MGM0ODdmMTNkMGY5MmMyZDZiM2VhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisy
MDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlYWQoKSBhbmQgd3JpdGUoKSBhY2Nv
cmRpbmcgdG8gcHJvcG9zYWw6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNzSGFuZGxlLm1kCisKKyAgICAgICAgVGVzdDog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdv
cmtlci5odG1sCisgICAgICAgIEFQSSB0ZXN0OiBGaWxlU3lzdGVtQWNjZXNzLlByb2Nlc3NDcmFz
aER1cmluZ1dyaXRlCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTEgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgc29tZSBjb2Rl
IGluIERpc3BsYXlMaXN0OjpSZWNvcmRlciBpbiBwcmVwYXJhdGlvbiBmb3IgYnVnICMyMzA4NjAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGZkOWIxMTQ4ZmNmNWU4MGYxOGU4ODA0MDM5ZDQyMzdlOTAx
OWRkMWUuLjZlZjZjYWQ4MTNjY2IwMTNhNDdhMTliZGMyMWRjNzc2Y2U1Mzk5ZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAz
OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
QUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0Zp
bGVQb3J0U1BJLmg6IEFkZGVkLgorCiAyMDIxLTEwLTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtHUFUgUHJvY2Vzc10gc3VwcG9ydCBgPGF0dGFj
aG1lbnQ+YApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiMzhkMjhhYjEwZWU4MzFlZDUzMDNjNTNkN2VhOWRmODE5MWEz
NTUyLi45ZjEyZWM4ODBhZDJlMTJjMWU2OGMwODUwZjAzZmY2NmVjMDhjNDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDUyIEBACisyMDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFk
KCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IG5ldHdvcmsgcHJv
Y2VzcyBvcGVuIHRoZSBmaWxlIGFuZCBwYXNzIGZpbGUgZGVzY3JpcHRvciB0byB3ZWIgcHJvY2Vz
cywgc28gdGhhdCB3ZWIgcHJvY2VzcyBjYW4gcmVhZCBhbmQgCisgICAgICAgIHdyaXRlIHRoZSBm
aWxlIHdpdGhvdXQgc2VuZGluZyBJUEMgbWVzc2FnZXMuIEN1cnJlbnRseSBnZXR0aW5nIGZpbGUg
c2l6ZSwgdHJ1bmNhdGluZyBmaWxlIGFuZCBzeW5jaW5nIGZpbGUgYXJlIAorICAgICAgICBzdGls
bCBwZXJmb3JtZWQgYnkgbmV0d29yayBwcm9jZXNzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmg6CisgICAgICAgIChXZWJLaXQ6OmNv
bnZlcnRUb0V4Y2VwdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQ
Qzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRsZSk6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL2NvY29hL1NoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHA6IEFkZGVkLgorICAgICAgICAo
SVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxl
SGFuZGxlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpk
ZWNvZGUpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5zYi5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2ZpbGVTeXN0ZW1B
Y2Nlc3NFbmFibGVkXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEZpbGVTeXN0ZW1B
Y2Nlc3NFbmFibGVkOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zdG9yYWdlQVBJRW5h
YmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRTdG9yYWdlQVBJRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfYWNjZXNzSGFuZGxlRW5hYmxlZF0pOgorICAg
ICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRBY2Nlc3NIYW5kbGVFbmFibGVkOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbjoKKwogMjAyMS0xMC0xMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIGNvZGUgaW4gRGlzcGxheUxpc3Q6OlJlY29yZGVy
IGluIHByZXBhcmF0aW9uIGZvciBidWcgIzIzMDg2MApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCBl
NDMwZjMyNTE0YjkwYjE5MzkxNzYxMDM2NjgyYmVhM2ZhZThiMTg5Li44M2U3NjRlMGExZjVhYTEw
M2ZkZjA1ZjA2OGEwMzhjNTA2MGMzMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtMTA2NSwz
ICsxMDY1LDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAjZGVmaW5lIEhBVkVfUFVBQ1RJVklUWVBS
T0dSRVNTQ09OVFJPTExFUiAxCiAjZW5kaWYKKworI2lmIF9faGFzX2luY2x1ZGUoPFN5c3RlbS9z
eXMvZmlsZXBvcnQuaD4pCisjZGVmaW5lIEhBVkVfRklMRVBPUlQgMQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBlNmZlOGRiZmJiYTIzZGMxNGRjMTEzZDg5Nzkz
ZWY2NzgyNDQwYmIyLi5jYmU0NmYyMDFmMWUyYTBjYmUzMzliMDIxZjc3Y2NkMTZhZjEzZmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTU3LDI5ICs1NywyNCBAQCB2b2lk
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCkpOwogCi0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkpKTsKKyAg
ICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAg
ICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShw
cm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25k
KSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCit2b2lk
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBj
b25uZWN0aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5l
Y3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigp
LnRydW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlv
bigpLnRydW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQg
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rp
b24oKS5mbHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkw
OGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQuLjc0MjA3NjgzODgyNTFhYzY4YTU1ZWJiMzRkMGE4
YzJmYzU5ZDVlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxGaWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYp
OwotICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRy
dW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9u
ZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNo
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYp
PiYmKTsKKyAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYpPiYmKTsKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggOWMwNTc2OGQzYmYxOGRkMTQxYzU5ZGE5MWJlNWFkYzQ1MGFhY2RkNC4uNGJhOWM1ODBkYTE2
ZGVkMWRlZWNmYWY4YjQ0MmY2ODgxNWY4NGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgU2FtZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPGJvb2w+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpPjsK
ICAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47Ci0gICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRsZUNh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6OnBhaXI8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGU+PiYmKT47CiAgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CiAgICAgdXNpbmcgSW50ZWdlckNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+OwogICAg
IHVzaW5nIEdldEhhbmRsZU5hbWVzQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmNwcAppbmRleCBmYWQ0YjlhODRiODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRl
NzZkMmFiLi40ODkzY2ZlNDIwNzE1ZjlkZWFhNTYzYmRlNDI3NzBjZDQ2MmMzZGZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTM0LDE0ICszNCwxNSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRs
ZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1G
aWxlSGFuZGxlIGZpbGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVyLCBmaWxl
KSk7CiB9CiAKLUZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNl
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAg
ICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fZmlsZShmaWxlKQogewogfQog
CkBAIC01MywxNyArNTQsMzUgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSgpCiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNp
emUsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7Cisg
ICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmllciwgc2l6ZSwgW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZN
b3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHBy
b21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHBy
b21pc2UpKTsKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5n
ZXRTaXplKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0p
OwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaChET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7
CisgICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5k
aW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJl
c3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpj
bG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtNzEsOSArOTAsMTIg
QEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJu
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCisgICAg
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKICAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlm
aWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKKyAg
ICAgICAgaWYgKHdlYWtUaGlzKSB7CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3Bl
cmF0aW9uQ291bnQtLTsKICAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworICAgICAg
ICB9CiAKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsK
QEAgLTg0LDQgKzEwNiw1OSBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRD
bG9zZSgpCiAgICAgbV9pc0Nsb3NlZCA9IHRydWU7CiB9CiAKK0V4Y2VwdGlvbk9yPHVuc2lnbmVk
IGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQoc3RkOjpvcHRpb25h
bDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiBidWZmZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKQoreworICAgIGlmICht
X2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xv
c2VkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKwor
ICAgIGlmIChtX3BlbmRpbmdPcGVyYXRpb25Db3VudCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBvcGVy
YXRpb24iX3MgfTsKKyAgICAgICAgCisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKworICAgIGludCByZXN1bHQgPSBGaWxlU3lz
dGVtOjpzZWVrRmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQsIEZpbGVTeXN0ZW06OkZpbGVTZWVrT3Jp
Z2luOjpCZWdpbm5pbmcpOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byByZWFkIGF0IG9mZnNldCJf
cyB9OworCisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7CisgICAgV1RGOjpzd2l0Y2hPbigqYnVm
ZmVyLCBbJmRhdGFdIChSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+JiBidWZmZXJWaWV3KSB7
CisgICAgICAgIGRhdGEgPSBidWZmZXJWaWV3LT5kYXRhKCk7CisgICAgfSwgWyZkYXRhXSAoUmVm
UHRyPEpTQzo6QXJyYXlCdWZmZXI+JiBidWZmZXIpIHsKKyAgICAgICAgZGF0YSA9IGJ1ZmZlci0+
ZGF0YSgpOworICAgIH0pOworICAgIEJ1ZmZlclNvdXJjZSBzb3VyY2UgeyBXVEZNb3ZlKCpidWZm
ZXIpIH07CisgICAgYXV0byBzaXplID0gc291cmNlLmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZp
bGVTeXN0ZW06OnJlYWRGcm9tRmlsZShtX2ZpbGUsIGRhdGEsIHNpemUpOworICAgIGlmIChyZXN1
bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkZhaWxlZCB0byByZWFkIGZyb20gZmlsZSJfcyB9OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6d3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiBidWZm
ZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyBvcHRpb25zKQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRm
b3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChtX3BlbmRpbmdPcGVyYXRpb25Db3VudCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhh
bmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24iX3MgfTsKKworICAgIGlmICghYnVmZmVyKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAgICBpbnQg
cmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25zLmF0LCBGaWxlU3lz
dGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8g
d3JpdGUgYXQgb2Zmc2V0Il9zIH07CisKKyAgICBCdWZmZXJTb3VyY2UgYnVmZmVyU291cmNlID0g
V1RGTW92ZSgqYnVmZmVyKTsKKyAgICBhdXRvKiBkYXRhID0gYnVmZmVyU291cmNlLmRhdGEoKTsK
KyAgICBhdXRvIHNpemUgPSBidWZmZXJTb3VyY2UubGVuZ3RoKCk7CisgICAgcmVzdWx0ID0gRmls
ZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9maWxlLCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0
ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJG
YWlsZWQgdG8gd3JpdGUgdG8gZmlsZSJfcyB9OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaAppbmRleCAyOWU0MTU3YjY1NDFiOTNlNmVhNWZlMDIzN2YwY2YyMTVkMDNjM2JmLi5lMTE0
Yjg2M2Q4MWVmN2JmZGU3MzVmNjBkMGQ0M2ZjNGYwOTYzZThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMjUsMTQgKzI1LDE3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRl
IDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7CiB0ZW1wbGF0ZTx0eXBl
bmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IEV4Y2VwdGlvbk9yOwogCiBjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiB7CiBwdWJsaWM6CkBAIC00MCw3ICs0
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGF0OwogICAgIH07CiAK
LSAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwor
ICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShGaWxlU3lz
dGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUoKTsKIAogICAgIHZvaWQgdHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAgLTQ4LDEzICs1MSwxNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBjbG9z
ZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBkaWRDbG9zZSgpOworICAg
IEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gcmVhZChzdGQ6Om9wdGlvbmFsPEJ1ZmZl
clNvdXJjZTo6VmFyaWFudFR5cGU+LCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CisgICAg
RXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiB3cml0ZShzdGQ6Om9wdGlvbmFsPEJ1ZmZl
clNvdXJjZTo6VmFyaWFudFR5cGU+LCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CiAKIHBy
aXZhdGU6Ci0gICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwog
CiAgICAgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBtX3NvdXJjZTsKICAgICBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIGJvb2wgbV9pc0Ns
b3NlZCB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQgeyAw
IH07CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZmlsZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaWRsCmluZGV4IDExMjA2NGE2ZGY2MTFjNDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEuLjZl
YTU0Mzk3ZWVhZjM5MGQ2YzE3ODUxOGY3MjE2NWFiYWFkYTM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApAQCAtMzMsNiArMzMsOCBAQAogICAgIFByb21p
c2U8dW5zaWduZWQgbG9uZyBsb25nPiBnZXRTaXplKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+
IGZsdXNoKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGNsb3NlKCk7CisgICAgdW5zaWduZWQg
bG9uZyBsb25nIHJlYWQoW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2UgYnVmZmVyLCBGaWxlc3lz
dGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgd3Jp
dGUoW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2UgYnVmZmVyLCBGaWxlc3lzdGVtUmVhZFdyaXRl
T3B0aW9ucyBvcHRpb25zKTsKIH07CiAKIGRpY3Rpb25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAppbmRleCAzNzY0MTMyYWVmM2FjMDA3MTM2NDg4ZTcwNmU3OTQ5ZGI4NjY3MTBiLi44
YjhjYTRhYWM2ZDU4MGQ3NWM5MjQzNDM3Mzg3Y2UwZDBmYmFmZmQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMTkzLDcgKzE5
Myw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZXNvbHZl
KENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
cmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4m
JiByZXN1bHQpCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVy
LCBFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmIHJlc3VsdCkKIHsKICAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fZ2V0QWNjZXNzSGFuZGxDYWxsYmFja3MudGFrZShjYWxsYmFj
a0lkZW50aWZpZXIpKQogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMjIx
LDcgKzIyMSwxMCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSQogCiAgICAgY2FsbE9uTWFpblRo
cmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50
aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24s
IGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNr
ID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJl
YWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jv
c3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBhdXRvIGNyb3NzVGhyZWFkUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICBjcm9zc1RocmVhZFJlc3VsdCA9IGNy
b3NzVGhyZWFkQ29weShyZXN1bHQuZXhjZXB0aW9uKCkpOworICAgICAgICAgICAgd29ya2VyVGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3Vs
dCA9IFdURk1vdmUoY3Jvc3NUaHJlYWRSZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9i
YWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQogICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNr
SWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCmluZGV4IDZjZTdmZjQ2OTVkOWYwYTZiYmZhNDlkNmMxYTM0N2FjN2Qy
M2M5NGEuLjRkZTQzOTkyY2RiODM2ODQwZGU5YTE2OTU2MmI5ZjMwMTYxYTgwNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkSXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlm
aWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAgICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFj
a0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsK
ICAgICB2b2lkIGRpZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0
b3I8U3RyaW5nPj4mJik7Ci0gICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyPiYmIHJlc3VsdCk7CisgICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENh
bGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik7
CiAgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKICAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNr
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKICAg
ICB2b2lkIGRpZEdldEhhbmRsZU5hbWVzKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
VmVjdG9yPFN0cmluZz4+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAyNmYxNGI1Y2U5Y2FiOTMxYTMzMWU1MmI5MDAwYWE2
YWY4NDIzNjUuLjNlOTA1M2U0YzhjMjcyMGU2N2VjMjc3M2E1YTMyMDU5ZmUwMjcwNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1NCw2ICsxNTQsNyBAQAogCQk3MUIxMTQyMDI2ODIzQUNEMDA0RDY3MDEgLyogU3lzdGVtUHJl
dmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCAqLzsgfTsKIAkJ
N0EzNkQwRjkyMjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EzNkQwRjgyMjNBRDlBQjAwQjA1
MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oICovOyB9OwogCQk3QTNBNkE4MDIwQ0FEQjQ3MDAzMTdB
QUUgLyogTlNJbWFnZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0EzQTZBN0YyMENBREI0NjAwMzE3QUFFIC8qIE5TSW1hZ2VTUEkuaCAqLzsgfTsK
KwkJOTM0NjhFNjcyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2NjI3MTRBN0NEMDA5OTgz
RTMgLyogRmlsZVBvcnRTUEkuaCAqLzsgfTsKIAkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8q
IFNwZWVjaFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCAqLzsg
fTsKIAkJOTNCMzhFQzAyNTgyMUNEODAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQkYyNTgyMUNE
NzAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLm1tICovOyB9OwogCQk5M0IzOEVDMjI1ODIxRDIy
MDAxOThFNjMgLyogU3BlZWNoU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0IzOEVDMTI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi87
IH07CkBAIC0zNzYsNiArMzc3LDcgQEAKIAkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5
c3RlbVByZXZpZXdTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVt
UHJldmlld1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTM2RDBGODIyM0FE
OUFCMDBCMDUyMkUgLyogQ29tbW9uQ3J5cHRvU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbW1vbkNyeXB0b1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QTNBNkE3RjIwQ0FEQjQ2MDAzMTdBQUUgLyogTlNJbWFnZVNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOU0ltYWdlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDY4RTY2MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxlUG9ydFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlUG9ydFNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoU29mdExpbmsuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMzhFQkYyNTgyMUNENzAwMTk4RTYzIC8qIFNw
ZWVjaFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U3BlZWNoU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUMx
MjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVlY2hTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzQs
NiArNTM2LDcgQEAKIAkJCQlERjgzRTIwODI2MzczNEYxMDAwODI1RUYgLyogQ3J5cHRvS2l0UHJp
dmF0ZVNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYzQkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0
b3JzQ29yZVNQSS5oICovLAogCQkJCTFEMTJDQzRBMjQxMUJDQUUwMEZEQTBBMyAvKiBGZWF0dXJl
RmxhZ3NTUEkuaCAqLywKKwkJCQk5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyogRmlsZVBvcnRT
UEkuaCAqLywKIAkJCQlDRTU2NzM4NjIxNTFBN0I5MDAyRjkyRDcgLyogSU9LaXRTUEkuaCAqLywK
IAkJCQkwQzJEQTEyNjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oICovLAogCQkJCTBD
MkRBMTI3MUYzQkVCNDkwMERCQzMxNyAvKiBJT1BTTGliU1BJLmggKi8sCkBAIC05MDAsNiArOTAz
LDcgQEAKIAkJCQlBMTE3NUI1NzFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMzMTcgLyogRXhw
b3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDEyQ0M0QjI0MTFCQ0FFMDBGREEwQTMg
LyogRmVhdHVyZUZsYWdzU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ2OEU2NzI3MTRBN0NE
MDA5OTgzRTMgLyogRmlsZVBvcnRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NDI5MTYwMUZB
NTI2MUUwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDMDIyRUZGMjJDRkVDNTMwMDZERjAxQiAvKiBHdW56aXAuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvRmls
ZVBvcnRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJ
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjdmZTAwOTBiM2Y0YjNkZGEzZjY1Zjg1Njg5NmEyMjQ3ZjBkYzEzOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQ
b3J0U1BJLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgSEFWRShGSUxFUE9SVCkKKworZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8U3lzdGVtL3N5cy9m
aWxlcG9ydC5oPgorfQorCisjZWxzZQorCitleHRlcm4gIkMiIHsKK2ludCBmaWxlcG9ydF9tYWtl
cG9ydChpbnQsIG1hY2hfcG9ydF90Kik7CitpbnQgZmlsZXBvcnRfbWFrZWZkKG1hY2hfcG9ydF90
KTsKK30KKworI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUoPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4p
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4
MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJjMjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApAQCAtMzEsOSArMzEsMTAgQEAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50
OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJ
bnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgIEludmFsaWROYW1lLAog
ICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIs
MTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3Qg
ewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgY2FzZSBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkOgorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNr
ZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRpb24iIH07CiAgICAgY2FzZSBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
eGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uOgogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIH07Ci0gICAg
Y2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6Ci0gICAgICAgIHJldHVy
biBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lOgogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9
OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOgogICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZFN0YXRlRXJyb3Ig
fTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaDoKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlR5cGVFcnJvciB9OwogICAg
IGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gewogICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVO
b3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlk
TmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9k
aWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFs
aWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRT
dGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0
Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggNzcyYTAwOWZlMWEwMTkwNWIyMDU5NDIz
NGZjNTZmZjM3NDBiNmY5Yi4uMDhmNjBjYzEyZGU5MTQ5NGMyYzA3YzAzZjdhNzAxZjcyMzYxNDEy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hhcmVkRmlsZUhhbmRsZS5oIgogI2luY2x1
ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE0Myw3ICsxNDQsNyBA
QCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRo
U2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpCitFeHBlY3RlZDxGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQogewogICAgIGlm
ICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNTIsOSArMTUzLDIwIEBAIEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlKTsKIAorICAgIG1faGFuZGxl
ID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6
OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFy
ZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOworICAgIGlmICghaXBjSGFuZGxlKSB7Cisg
ICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CisgICAgICAgIG1faGFuZGxl
ID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKyAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0
ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKTsKICAg
ICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwotICAgIHJldHVybiAqbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVybiBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5kbGUpIH07CiB9CiAKIEV4cGVjdGVkPHVp
bnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE4MCwxMiArMTkyLDggQEAgc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUo
V2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAgYXV0byBoYW5kbGUgPSBG
aWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVh
ZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0gewot
ICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFuZGxlKTsKLSAgICB9KTsKLQotICAgIGF1
dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAg
QVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUp
OworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBz
aXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd247CiAKQEAgLTIwMCw3ICsyMDgsMTEgQEAgc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29y
ZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAgLy8gRklYTUU6IHdoZW4gd3Jp
dGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJmb3JtIGFjdHVhbCBmbHVzaCBoZXJlLgor
ICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7
CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtMjEyLDYgKzIy
NCwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQogICAgIGlmICghbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRl
bnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247
CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1faGFuZGxlKTsKKyAgICBtX2hh
bmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisKICAgICBtX21h
bmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7CiAgICAgbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5oCmluZGV4IGQ5OGU0ZTkzMjhkMjFmMDI0YjEzYjYyM2NkNDE5OWRkMWM2NmI5ODgu
LmJiZGZkNGNlZTFjNzEyNjgyN2I0MGIxMTk2YzQzNzdiY2YxN2M5MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlOworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAt
NTMsNyArNTcsOCBAQCBwdWJsaWM6CiAgICAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IGdldEhhbmRsZU5hbWVzKCk7CiAgICAgRXhwZWN0ZWQ8c3RkOjpw
YWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gZ2V0SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmlu
ZyYmIG5hbWUpOwogCi0gICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKCk7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhh
bmRsZT47CisgICAgRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwogICAgIEV4cGVjdGVkPHVpbnQ2NF90LCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcik7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiB0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIHVpbnQ2NF90IHNpemUpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gZmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKTsKQEAgLTY4LDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYXRoOwogICAg
IFN0cmluZyBtX25hbWU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICBG
aWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMmVjZmU0MzdkMDE5N2NhMjIxZmY1MjI4ODIz
ZTc3MzczNzJhNmNlNi4uNTUxNmZiYjYyOTQ3Zjk4ZGRkZTU5MjFjZDczZmVhMzAwNDdhMWE4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCB2b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+cmVzb2x2ZSh0
YXJnZXRJZGVudGlmaWVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8s
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCmluZGV4
IDZiMzM2MDYwMjhkODAxZDQ4NDYyZWE2ZTQwNmU2YjQyOTU3Y2ZhNzQuLjg4NDU1OWFkOTc2ODI5
NDc5NWVkZjU2ODY3NTYyYWJjNmQ5MTEyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAg
LTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKK25hbWVzcGFj
ZSBJUEMgeworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RydWN0IENsaWVudE9yaWdpbjsKIH0KQEAgLTcwLDcgKzc0LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lk
IHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQg
cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCBj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAg
ICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKKyAgICB2
b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldFNpemVGb3JBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lk
IHRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2
NF90IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgppbmRleCA4NmNiMjZhY2E5ZWNhMjM1YzI0NzViOTE1NzViNjE3MWQ4
N2M2ZDkzLi5lZmU1NzQ4NmMxYjJkNzE4ZDEzMTI4ZGYwNWU0NTIyYTA2NTk5ZTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAK
ICAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAg
UmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYwogCi0gICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3Rl
ZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IHJlc3VsdCkgQXN5bmMKICAgICBHZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8dWludDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKSAtPiAoc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMK
ICAgICBGbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ODJhYmRlNWQ4
M2RlNDViYmMyOWY5OTliMDJhM2FmMWI2OTZiN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVI
YW5kbGUuaCIKKworbmFtZXNwYWNlIElQQyB7CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK3N0
ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgLy8gTm90IGltcGxl
bWVudGVkIGluIG90aGVyIHBsYXRmb3JtcyB5ZXQuCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
K30KKwordm9pZCBTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5jb2RlciYpIGNvbnN0Cit7Cit9
CisKK3N0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6ZGVj
b2RlKERlY29kZXImKQoreworICAgIHJldHVybiBzdGQ6Om51bGxvcHQKK30KKworI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVk
RmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhYWY0MGJmZGJlOTU2MmFjODNkNmE2NDRhMjBiNDY5
YjQ3ZGE4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9T
aGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgor
CituYW1lc3BhY2UgSVBDIHsKKworY2xhc3MgRGVjb2RlcjsKK2NsYXNzIEVuY29kZXI7CisKK2Ns
YXNzIFNoYXJlZEZpbGVIYW5kbGUgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFNoYXJlZEZpbGVIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUp
OworICAgIFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7CisgICAgRmlsZVN5c3RlbTo6UGxh
dGZvcm1GaWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1faGFuZGxlOyB9CisKKyAgICB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFy
ZWRGaWxlSGFuZGxlPiBkZWNvZGUoRGVjb2RlciYpOworICAgIAorcHJpdmF0ZToKKyAgICBleHBs
aWNpdCBTaGFyZWRGaWxlSGFuZGxlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5k
bGUpCisgICAgICAgIDogbV9oYW5kbGUoaGFuZGxlKQorICAgIHsKKyAgICB9CisKKyAgICBGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBJUEMKKworCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9TaGFyZWRGaWxlSGFuZGxl
Q29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmlsZUhh
bmRsZUNvY29hLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWYzZjcwYTMyNzg5ZDM0NzUwZjJhYjNhZjE3ZDBi
M2QyNGUxMjFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
Y29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUuaCIK
KworI2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9GaWxlUG9y
dFNQSS5oPgorCituYW1lc3BhY2UgSVBDIHsKKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFu
ZGxlPiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSkKK3sKKyNpZiBIQVZFKEZJTEVQT1JUKQorICAgIHJldHVybiBTaGFyZWRGaWxl
SGFuZGxlIHsgaGFuZGxlIH07CisjZWxzZQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisjZW5k
aWYKK30KKwordm9pZCBTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKK3sKKyAgICBtYWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0gTUFDSF9QT1JUX05VTEw7
CisgICAgZmlsZXBvcnRfbWFrZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgZW5jb2Rl
ciA8PCBNYWNoUG9ydChmaWxlcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOworfQorCitz
dGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE1hY2hQb3J0IG1hY2hQb3J0OworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUobWFjaFBvcnQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IAorICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoZmlsZXBvcnRfbWFrZWZkKG1h
Y2hQb3J0LnBvcnQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggNzE2NGY4
ODYwMDc4ZTIwNzFhYjhjNWZkNDY2ODhmMzRkZmFhYWYyMi4uNGNmOTY1NDFiYmQxNGY3ZGI5ZmYw
N2FjMzM3YzI4ZTViMmU1ODM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTE1MTcsNiArMTUxNywzNiBAQCBzdGF0aWMg
V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FZGl0YWJsZUxpbmtCZWhhdmlvcihfV0tF
ZGl0YWJsZUxpbmtCZWhhdgogICAgIF9wcmVmZXJlbmNlcy0+c2V0UmVxdWlyZXNQYWdlVmlzaWJp
bGl0eVRvUGxheUF1ZGlvKHJlcXVpcmVzKTsKIH0KIAorLSAoQk9PTClfZmlsZVN5c3RlbUFjY2Vz
c0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5maWxlU3lzdGVtQWNjZXNzRW5h
YmxlZCgpOworfQorCistICh2b2lkKV9zZXRGaWxlU3lzdGVtQWNjZXNzRW5hYmxlZDooQk9PTClm
aWxlU3lzdGVtQWNjZXNzRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0RmlsZVN5c3Rl
bUFjY2Vzc0VuYWJsZWQoZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQpOworfQorCistIChCT09MKV9z
dG9yYWdlQVBJRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnN0b3JhZ2VBUElF
bmFibGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldFN0b3JhZ2VBUElFbmFibGVkOihCT09MKXN0b3Jh
Z2VBUElFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRTdG9yYWdlQVBJRW5hYmxlZChz
dG9yYWdlQVBJRW5hYmxlZCk7Cit9CisKKy0gKEJPT0wpX2FjY2Vzc0hhbmRsZUVuYWJsZWQKK3sK
KyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5hY2Nlc3NIYW5kbGVFbmFibGVkKCk7Cit9CisKKy0g
KHZvaWQpX3NldEFjY2Vzc0hhbmRsZUVuYWJsZWQ6KEJPT0wpYWNjZXNzSGFuZGxlRW5hYmxlZAor
eworICAgIF9wcmVmZXJlbmNlcy0+c2V0QWNjZXNzSGFuZGxlRW5hYmxlZChhY2Nlc3NIYW5kbGVF
bmFibGVkKTsKK30KKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNTA2MDNhMWI5ZjJm
Nzg5YjU2MGMwM2ZkYmNiYTk0NzVlNDk0YzJmYy4uNTk5NjliNjRhNjVlYjhlNWYwMTQwM2JiNmM3
MzQ5ZDgzODIyZWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTE3Myw2ICsxNzMsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhU2Vzc2lvbkVuYWJsZWQ6KSBCT09M
IF9tZWRpYVNlc3Npb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0V4dGVuc2libGVTU09FbmFi
bGVkLCBzZXR0ZXI9X3NldEV4dGVuc2libGVTU09FbmFibGVkOikgQk9PTCBfZXh0ZW5zaWJsZVNT
T0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlB
dWRpbzopIEJPT0wgX3JlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlBdWRpbyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQ6KSBCT09MIF9maWxlU3lzdGVtQWNjZXNz
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RvcmFnZUFQSUVuYWJsZWQ6
KSBCT09MIF9zdG9yYWdlQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWNjZXNzSGFuZGxlRW5hYmxlZDopIEJPT0wgX2FjY2Vzc0hhbmRsZUVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmICFUQVJH
RVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJHTEVuYWJs
ZWQ6KSBCT09MIF93ZWJHTEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1YjMyZWJhMjIwOGE0ZDg0OWM0NTcwNzFiY2E0Mzg5NjI1MjE3MGU1Li4xMTlhYTUzZWNiMzcw
Y2E4MWMwNjhkOGY5ODA5ZTBmZjdlNTliZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzIsNiArMTQ3Miw3IEBACiAJCTkzMDg1
RERGMjZFNUJDRjEwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1
RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLzsgfTsKIAkJOTMwODVERTAyNkU1QkNGRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdl
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTMwODVEQzQyNkUxQkJCRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlci5oICovOyB9
OwogCQk5MzA4NURFMTI2RTVCRDEzMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5o
ICovOyB9OworCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxMjJDODUy
NzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLzsgfTsKIAkJOTMxMkJBRDUy
NkYzM0MyNjAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTA3NTAyNkYwNjMxMDAwNDQ3
NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5MzEyQkFENjI2RjMz
QzI5MDBGRERGNUYgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUzMjZGMDZBQjQwMDQ0NzRDRCAv
KiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovOyB9OwogCQk5MzFBMUJFMjI2Rjg3MDA5MDA4
MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTFCRTAyNkY4NUMzMjAwODFBN0U1IC8qIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IuaCAqLzsgfTsKQEAgLTE0ODQsNiArMTQ4NSw4IEBACiAJCTkzM0U4
MzVBMjNBMUFFMjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTkyM0ExQURGNTAwREVG
Mjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi87IH07CiAJCTkzM0U4MzVCMjNBMUI3NTAw
MERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAwREVGMjg5
IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzNDI1ODlBMjU1
QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODk4MjU1QjUzNEIwMDU5RUVE
RCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsgfTsKKwkJOTM0NjhFNkIyNzE0QUY0
NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJl
ZEZpbGVIYW5kbGUuY3BwICovOyB9OworCQk5MzQ2OEU2RDI3MTRBRjg4MDA5OTgzRTMgLyogU2hh
cmVkRmlsZUhhbmRsZUNvY29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxl
Q29jb2EuY3BwICovOyB9OwogCQk5MzRCNzI0NDE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25N
ZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1NDI0
MkMyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MkEyNzAz
QkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyB9Owog
CQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwMjFGNDc5
M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87IH07CkBAIC00OTQ5LDYg
KzQ5NTIsNyBAQAogCQk5MzA4NURDQzI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTIyNkYwNkFC
NDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NjcsNiArNDk3MSw4IEBACiAJCTkzM0U4MzU5MjNB
MUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk5MzQyNTg4RjI1NTVEQ0E1MDA1OUVFREQgLyogTWVkaWFQZXJt
aXNzaW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQZXJtaXNzaW9u
VXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5ODI1NUI1
MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2QTI3MTRBRjQ3MDA5OTgzRTMgLyogU2hhcmVkRmls
ZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRG
aWxlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkMyNzE0
QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rp
b25NZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0
aW9uTWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU0MjQy
QTI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU0MjQyQjI3MDNCRENCMDA1
Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzU4LDYgKzczNjQsOCBAQAogCQkJ
CTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJ
MkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
ICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggKi8sCisJCQkJOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVI
YW5kbGUuY3BwICovLAorCQkJCTkzMTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxl
SGFuZGxlLmggKi8sCiAJCQkJN0I3MzEyMzYyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNsaWVu
dENvbm5lY3Rpb24uY3BwICovLAogCQkJCTdCNzMxMjMzMjVDQzg1MjMwMDNCMjc5NiAvKiBTdHJl
YW1DbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJN0I3MzEyMzQyNUNDODUyNDAwM0IyNzk2IC8q
IFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwICovLApAQCAtMTExMzAsNiArMTExMzgsNyBAQAog
CQkJCTFBNkQ4NkJGMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5jcHAgKi8sCiAJCQkJ
MUE2RDg2QzAxREY3NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmggKi8sCiAJCQkJQkNDNTZG
NzcxMTU5OTU3RDAwMUNDQUY5IC8qIE1hY2hQb3J0LmggKi8sCisJCQkJOTM0NjhFNkMyNzE0QUY4
ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi8sCiAJCQkpOwogCQkJcGF0
aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyNjU0LDYgKzEyNjYz
LDcgQEAKIAkJCQlBMTgzNDk0MjI0RUY0Njc4MDBCREM5QTggLyogU2hhcmVkQnVmZmVyQ29weS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGRjZFRjJBMzEzMEMxMzAxNzY3IC8qIFNoYXJlZEJ1
ZmZlckRhdGFSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QTZENkJDMjU0Q0EzRTkw
MEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVm
ZmVyU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMxRjdEQUUwODAwQjk0NEVC
IC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDYxNiw2ICsx
NDYyNiw4IEBACiAJCQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1h
cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hh
cmVkQnVmZmVyQ29weS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxODEyNDVCNTQ5MzQzQkM5
ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5MzQ2OEU2QjI3MTRBRjQ3MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5MzQ2OEU2RDI3MTRBRjg4MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRs
ZUNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQURBRkI2MjM2OEU2QTgwMDlDQjc3NiAv
KiBTaGFyZWRNZW1vcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFCQjkyM0NFOUMwQjAw
MjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNjAzMTI3YmU2Nzg0OTgxZDMwYWE0
YTc2MjE5NzU1ZDNlZjM2MjI1Yy4uOTY4NWZjZmE4ZTljNTZiYTI4NjY5OWJhMTIxYTA3MGM0MzJi
MjNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5j
cHAKQEAgLTEyMSw3ICsxMjEsOCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSAogICAgICAgICBp
ZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0
VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSBy
ZXN1bHQudmFsdWUoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpwYWlyIHsgcmVz
dWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZC5oYW5kbGUoKSB9KTsKICAgICB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluCmluZGV4IGFhNWE4ZGQxNzQzYTFjYjk0ZDM0YmZhNWFjZGE2MGY2NWQ1ZjNkM2Mu
LjZiMzFiNmVkNmI2N2YwYmViMDYxYzdmYTJkY2ViZTI1MTY4ZjQ3Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTE5
MzYsNiArMTkzNiw3IEBACiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2Nh
bmNlbCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1i
ZXIgU1lTX2ZpbGVwb3J0X21ha2VmZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxl
cG9ydF9tYWtlcG9ydCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5f
bnApCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyZjFkN2JhNTNl
YmZlYThiNDgyM2ZiYzdlZmQ3MDMxYTRkYmY0ZjBmLi41ZTA3NjNkZWI0NmVlMDkwZWRjMDViMTE3
MzgxYzg3N2RiMTI3ZmFmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVp
X2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5t
bTogQWRkZWQuCisgICAgICAgICgtW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciB1c2Vy
Q29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgICh0
ZXN0KToKKwogMjAyMS0xMC0xMSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2J1aWxkLWltYWdlZGlmZl0gQnVpbGQgdW5pdmVyc2FsIGJpbmFyaWVzIGJ5
IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjc1YTVkMGY5Mjg5ODc0ZmFhMDU2
MzdlNWMwOGFlMjZhOWQ2NDM2OS4uODAxZTQ3NDA1ODcyZTgwOTA1OGQwNDNkMmE2ZGY3MzVmMGNl
Yjc4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg1NCw2ICs4NTQsNyBAQAogCQk5MzNE
NjMxRDFGQ0I3NjIwMDAzMkVDRDYgLyogSGFzaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0Q2MzFCMUZDQjc2MTgwMDMyRUNENiAvKiBIYXNo
ZXIuY3BwICovOyB9OwogCQk5MzQyNTg5QzI1NUI2MDlCMDA1OUVFREQgLyogU3BlZWNoUmVjb2du
aXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzQyNTg5QjI1NUI2MDlBMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXRpb24ubW0gKi87IH07CiAJ
CTkzNDI1ODlFMjU1QjZBMTIwMDU5RUVERCAvKiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1p
c3Npb24tcGVyc2lzdGVuY2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5RDI1NUI2NkEwMDA1OUVFREQgLyogc3BlZWNocmVj
b2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgKi87IH07CisJCTkzNDY4
RTZGMjcxNEI0RjIwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NjhFNkUyNzE0QjRGMTAwOTk4M0Uz
IC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gKi87IH07CiAJCTkzNTc4NkNDMjBGNkEyNzAwMDAwQ0RG
QyAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzUyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4
ZWREQi5zcWxpdGUzLXdhbCAqLzsgfTsKIAkJOTM1Nzg2Q0QyMEY2QTI5MTAwMDBDREZDIC8qIElu
ZGV4ZWREQi5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRl
MyAqLzsgfTsKIAkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUz
LXNobSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htICovOyB9
OwpAQCAtMjU4Miw2ICsyNTgzLDcgQEAKIAkJOTMzRDYzMUIxRkNCNzYxODAwMzJFQ0Q2IC8qIEhh
c2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIYXNoZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5QjI1NUI2MDlBMDA1OUVFREQg
LyogU3BlZWNoUmVjb2duaXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM0MjU4OUQyNTVCNjZBMDAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVy
bWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNw
ZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkUyNzE0QjRGMTAwOTk4M0UzIC8qIEZpbGVT
eXN0ZW1BY2Nlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBG
aWxlU3lzdGVtQWNjZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGQTVD
NTIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVk
REIuc3FsaXRlMy13YWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGQTVDNjIw
RjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVkREIu
c3FsaXRlMy1zaG0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGQTVDNzIwRjY5
RkVFMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gSW5kZXhlZERCLnNxbGl0ZTM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTEwLDYgKzM1MTIsNyBAQAogCQkJCTZC
MjVBNzUxMjVEQzhENEUwMDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0aW9uLm1tICovLAogCQkJCUNE
QTI5QjI4MjBGRDJBOTkwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAubW0gKi8s
CiAJCQkJMUQxMkJFQkYyNDVCRUY4NTAwNEMwQjdBIC8qIEV4aXRQaVBPblN1c3BlbmRWaWRlb0Vs
ZW1lbnQubW0gKi8sCisJCQkJOTM0NjhFNkUyNzE0QjRGMTAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1B
Y2Nlc3MubW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNFNzAwMjBEQTQ2IC8qIEZpbmRJblBhZ2Uu
bW0gKi8sCiAJCQkJNTEyNDJDRDQyMzc0RTYxRTAwRUVEOUMxIC8qIEZpbmRJblBhZ2VBUEkubW0g
Ki8sCiAJCQkJMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0
eU1pbGVzdG9uZS5tbSAqLywKQEAgLTU1NjgsNiArNTU3MSw3IEBACiAJCQkJN0NDRTdFRjExQTQx
MUFFNjAwNDQ3QzRDIC8qIEZhaWxlZExvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc5NjUx
RTcyMTZCRkRFRDAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QTMyRDc0QTFGMDIxNTE1MDAxNjJDNDQgLyogRmlsZU1vbml0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTM0NjhFNkYyNzE0QjRGMjAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1BY2Nl
c3MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGMzFBNDExQUU2MDA0NDdDNEMgLyogRmlu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCQjFEMEE2NTAwMDBGRUJDRjMgLyogRmlu
ZEluUGFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMjQyQ0Q1MjM3NEU2MjUwMEVFRDlDMSAv
KiBGaW5kSW5QYWdlQVBJLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjBmY2QzMWI4Y2IzNTExMWFkYTYxYWE3MjQyYmU0NTY0YzU1MjJhNQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3Rl
bUFjY2Vzcy5tbQpAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RVUkxTY2hlbWVIYW5kbGVyLmgiCisjaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKworc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlOworc3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+IGxhc3RTY3JpcHRN
ZXNzYWdlOworCitAaW50ZXJmYWNlIEZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciA6IE5T
T2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24g
RmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyCisKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250
cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBk
aWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQoreworICAg
IHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgbGFzdFNjcmlwdE1lc3NhZ2UgPSBt
ZXNzYWdlOworfQorCitAZW5kCisKK3N0YXRpYyBOU1N0cmluZyAqbWFpbkZyYW1lU3RyaW5nID0g
QCI8c2NyaXB0PiBcCisgICAgZnVuY3Rpb24gc3RhcnQoKSB7IFwKKyAgICAgICAgdmFyIHdvcmtl
ciA9IG5ldyBXb3JrZXIoJ3dvcmtlci5qcycpOyBcCisgICAgICAgIHdvcmtlci5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgeyBcCisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC5kYXRhKTsgXAorICAgICAgICB9
OyBcCisgICAgfSBcCisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ3BhZ2UgaXMgbG9hZGVkJyk7IFwKKyAgICA8L3NjcmlwdD4iOworCitz
dGF0aWMgY29uc3QgY2hhciogd29ya2VyQnl0ZXMgPSBSIlRFU1RSRVNPVVJDRSgKK2FzeW5jIGZ1
bmN0aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIHZhciByb290SGFuZGxlID0gYXdh
aXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7CisgICAgICAgIHZhciBmaWxlSGFu
ZGxlID0gYXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCdmaWxlLXN5c3RlbS1hY2Nlc3Mu
dHh0JywgeyAnY3JlYXRlJyA6IHRydWUgfSk7CisgICAgICAgIHZhciBhY2Nlc3NIYW5kbGUgPSBh
d2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgdmFyIGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxMCk7CisgICAgICAgIHZhciB3cml0ZVNpemUgPSBhY2Nl
c3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiAwIH0pOworICAgICAgICBzZWxmLnBvc3RN
ZXNzYWdlKCdzdWNjZXNzOiB3cml0ZSAnICsgd3JpdGVTaXplICsgJyBieXRlcycpOworICAgIH0g
Y2F0Y2ggKGVycikgeworICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdlcnJvcjogJyArIGVyci5u
YW1lICsgJyAtICcgKyBlcnIubWVzc2FnZSk7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorfQor
dGVzdCgpOworKVRFU1RSRVNPVVJDRSI7CisKK1RFU1QoRmlsZVN5c3RlbUFjY2VzcywgUHJvY2Vz
c0NyYXNoRHVyaW5nV3JpdGUpCit7CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW0ZpbGVT
eXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKKyAgICBhdXRv
IHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworICAgIHByZWZlcmVu
Y2VzLl9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fYWNj
ZXNzSGFuZGxlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fc3RvcmFnZUFQSUVuYWJs
ZWQgPSBZRVM7CisgICAgYXV0byBzY2hlbWVIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RVUkxTY2hl
bWVIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW3NjaGVtZUhhbmRsZXIgc2V0U3RhcnRVUkxT
Y2hlbWVUYXNrSGFuZGxlcjpeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2sp
IHsKKyAgICAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlOworICAgICAgICBS
ZXRhaW5QdHI8TlNEYXRhPiBkYXRhOworICAgICAgICBOU1VSTCAqcmVxdWVzdFVSTCA9IHRhc2su
cmVxdWVzdC5VUkw7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSgid2Via2l0Oi8vd2Via2l0Lm9y
Zy93b3JrZXIuanMiLCByZXF1ZXN0VVJMLmFic29sdXRlU3RyaW5nKTsKKyAgICAgICAgcmVzcG9u
c2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6cmVxdWVzdFVS
TCBNSU1FVHlwZTpAInRleHQvamF2YXNjcmlwdCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjAgdGV4
dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAgICAgICAgZGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRl
czp3b3JrZXJCeXRlcyBsZW5ndGg6c3RybGVuKHdvcmtlckJ5dGVzKV07CisgICAgICAgIFt0YXNr
IGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZFJl
Y2VpdmVEYXRhOmRhdGEuZ2V0KCldOworICAgICAgICBbdGFzayBkaWRGaW5pc2hdOworICAgIH1d
OworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlci5n
ZXQoKSBmb3JVUkxTY2hlbWU6QCJ3ZWJraXQiXTsKKworICAgIC8vIGxvYWQgZmlyc3Qgd2ViIHZp
ZXcgJiBzdGFydCB0ZXN0CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpt
YWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAIndlYmtpdDovL3dl
YmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVD
VF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsK
KworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25I
YW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVD
VF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdl
IGJvZHldKTsKKworICAgIGF1dG8gc2Vjb25kV2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3NlY29uZFdlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ3ZWJr
aXQ6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoQCJwYWdlIGlzIGxvYWRlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBi
b2R5XSk7CisKKyAgICAvLyBBY2Nlc3MgaGFuZGxlIGNhbm5vdCBiZSBjcmVhdGVkIHdoZW4gdGhl
cmUgaXMgYW4gb3BlbiBvbmUuCisgICAgW3NlY29uZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0
OkAic3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiZXJyb3I6IEludmFsaWRTdGF0ZUVy
cm9yIC0gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIsIFtsYXN0U2NyaXB0TWVz
c2FnZSBib2R5XSk7CisKKyAgICAvLyBPcGVuIGFjY2VzcyBoYW5kbGUgc2hvdWxkIGJlIGNsb3Nl
ZCB3aGVuIHdlYiBwcm9jZXNzIGNyYXNoZXMuCisgICAgW3dlYlZpZXcgX2tpbGxXZWJDb250ZW50
UHJvY2Vzc107CisKKyAgICBbc2Vjb25kV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdGFy
dCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzdWNjZXNz
OiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7Cit9CisKKyNlbmRp
ZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhkMjg1YTg2OWNiNmVkZGM4MGE0
ZWM3ZDk0MTZlZGVlZGU3MWUyYzMuLmZkNzhjMjlhNjg3YWIwMjgzMDNiNWYzYzlkNjgyZmZlNTdj
YzMwMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUw
Mzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hUZXN0KToKKyAgICAgICAgKGFycmF5
QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9BcnJheUJ1ZmZlcik6CisgICAgICAg
ICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAgKGFzeW5jIHRlc3QpOgorICAgICAg
ICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0
ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWw6IEFkZGVk
LgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NPT1BdIENyYXNoIHVuZGVyIFJlcG9ydGluZ0VuZHBvaW50c0NhY2hlOjphZGRFbmRwb2lu
dEZyb21EaWN0aW9uYXJ5KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1yZWFkLXdyaXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZTllMGMyYjA5MDNiMzI5ZTRiZGEz
MGQ5YWVmY2Q2Y2IwZDdhMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRl
LmpzCkBAIC0wLDAgKzEsOTUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBv
cnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcycpOworfQorCitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS4iKTsKKwordmFyIGFjY2Vzc0hhbmRsZSwgZmlsZVNpemUsIHdyaXRl
QnVmZmVyLCB3cml0ZVNpemUsIHJlYWRCdWZmZXIsIHJlYWRTaXplLCByZWFkVGV4dCwgcmVhZEVy
cm9yOwordmFyIHRvdGFsUmVhZFNpemUgPSAwLCB0b3RhbFdyaXRlU2l6ZSA9IDA7CisKK2Z1bmN0
aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RG
YWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
YXJyYXlCdWZmZXJUb1N0cmluZyhidWZmZXIpCit7CisgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hh
ckNvZGUuYXBwbHkobnVsbCwgbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcikpOworfQorCitmdW5jdGlv
biBzdHJpbmdUb0FycmF5QnVmZmVyKHN0cmluZykKK3sKKyAgICB2YXIgYnVmZmVyID0gbmV3IEFy
cmF5QnVmZmVyKHN0cmluZy5sZW5ndGgqMik7CisgICAgdmFyIGJ1ZmZlclZpZXcgPSBuZXcgVWlu
dDE2QXJyYXkoYnVmZmVyKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7
IGkrKykgeworICAgICAgICBidWZmZXJWaWV3W2ldID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7Cisg
ICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIHdyaXRlKGFjY2Vzc0hhbmRs
ZSwgb2Zmc2V0LCB0ZXh0KQoreworICAgIHdyaXRlQnVmZmVyID0gc3RyaW5nVG9BcnJheUJ1ZmZl
cih0ZXh0KTsKKyAgICB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUod3JpdGVCdWZmZXIs
IHsgImF0IiA6IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgid3JpdGVTaXplIiwgIndyaXRlQnVm
ZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gd3JpdGVTaXplOworfQorCitmdW5jdGlvbiBy
ZWFkKGFjY2Vzc0hhbmRsZSwgb2Zmc2V0LCBzaXplKQoreworICAgIHJlYWRCdWZmZXIgPSBuZXcg
QXJyYXlCdWZmZXIoc2l6ZSk7CisgICAgcmVhZFNpemUgPSBhY2Nlc3NIYW5kbGUucmVhZChyZWFk
QnVmZmVyLCB7ICJhdCI6IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgicmVhZFNpemUiLCAicmVh
ZEJ1ZmZlci5ieXRlTGVuZ3RoIik7CisgICAgcmV0dXJuIGFycmF5QnVmZmVyVG9TdHJpbmcocmVh
ZEJ1ZmZlcik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsKKyAgICAg
ICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3Rvcnko
KTsKKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGZpbGUgZm9yIHRoaXMgdGVzdC4KKyAgICAgICAg
YXdhaXQgcm9vdEhhbmRsZS5yZW1vdmVFbnRyeSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIpLnRo
ZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgICAgICB2YXIgZmlsZUhhbmRsZSA9IGF3YWl0
IHJvb3RIYW5kbGUuZ2V0RmlsZUhhbmRsZSgic3luYy1hY2Nlc3MtaGFuZGxlLnR4dCIsIHsgImNy
ZWF0ZSIgOiB0cnVlICB9KTsKKyAgICAgICAgYWNjZXNzSGFuZGxlID0gYXdhaXQgZmlsZUhhbmRs
ZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAgICAgIGZpbGVTaXplID0gYXdhaXQgYWNj
ZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXplIiwgIjAiKTsK
KworICAgICAgICBkZWJ1ZygidGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6Iik7CisgICAgICAgIHRv
dGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgMCwgIlRoaXMgaXMgZmlyc3Qgc2Vu
dGVuY2UuIik7CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIDAsIHRvdGFs
V3JpdGVTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJU
aGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICB0b3RhbFJlYWRTaXplICs9IHJlYWRU
ZXh0Lmxlbmd0aCAqIDI7CisKKyAgICAgICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNz
SGFuZGxlLCB0b3RhbFdyaXRlU2l6ZSwgIlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworICAg
ICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCB0b3RhbFJlYWRTaXplLCB0b3RhbFdy
aXRlU2l6ZSAtIHRvdGFsUmVhZFNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlYWRUZXh0IiwgIlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworCisgICAgICAgIHJlYWRU
ZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVTaXplKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLlRo
aXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IGZsdXNoKCk6
Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6
ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxl
U2l6ZSIsICJ0b3RhbFdyaXRlU2l6ZSIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHRydW5jYXRl
KCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSg0KTsKKyAgICAgICAg
YXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZpbGVTaXplID0gYXdhaXQgYWNj
ZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXplIiwgIjQiKTsK
KworICAgICAgICBkZWJ1ZygidGVzdCB3cml0ZSgpIHdpdGggcGVuZGluZyBvcGVyYXRpb246Iik7
CisgICAgICAgIGV2YWxBbmRMb2coImFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKSIpOworICAgICAg
ICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDQpOworICAgICAgICBzaG91bGRUaHJvdygi
YWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyBcImF0XCIgOiAwIH0pIik7CisKKyAgICAg
ICAgYXdhaXQgYWNjZXNzSGFuZGxlLmNsb3NlKCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9Cit9
CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFj
Y2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1y
ZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFjZDU5YjczOGYyMTQ0
MDhlOGQ2YTBiYzlhNzcwYjgzMTIxMDA0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13
b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK1tXb3JrZXJdIFRoaXMgdGVzdCBj
aGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291
cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcworUEFTUyBbV29ya2VyXSBmaWxl
U2l6ZSBpcyAwCitbV29ya2VyXSB0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToKK1BBU1MgW1dvcmtl
cl0gd3JpdGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVh
ZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlz
ICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlzIHdy
aXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZl
ci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIHNlY29uZCBz
ZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0
aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5UaGlz
IGlzIHNlY29uZCBzZW50ZW5jZS4iCitbV29ya2VyXSB0ZXN0IGZsdXNoKCk6CitQQVNTIFtXb3Jr
ZXJdIGZpbGVTaXplIGlzIHRvdGFsV3JpdGVTaXplCitbV29ya2VyXSB0ZXN0IHRydW5jYXRlKCk6
CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIDQKK1tXb3JrZXJdIHRlc3Qgd3JpdGUoKSB3aXRo
IHBlbmRpbmcgb3BlcmF0aW9uOgorW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApCitQ
QVNTIFtXb3JrZXJdIGFjY2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgImF0IiA6IDAgfSkg
dGhyZXcgZXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBBY2Nlc3MgaGFuZGxlIGhhcyB1bmZp
bmlzaGVkIG9wZXJhdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1h
Y2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcxNmY3MWM4MDMwZGNkMTBjNjVkYTM4MzZlNGQ5
NWM4YzI2M2VlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5
c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbApAQCAt
MCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgord29ya2Vy
ID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
cycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUK
</data>
<flag name="commit-queue"
          id="464957"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440876</attachid>
            <date>2021-10-11 20:16:46 -0700</date>
            <delta_ts>2021-10-11 20:56:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211011201645.patch</filename>
            <type>text/plain</type>
            <size>79852</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLmUwN2Y2YmUzMmViNzYyMWY1YTU3ODU3ZmE1ZGE1ZmY0MjViYmRk
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9ubHkgbWFyayBuZWVkZWQgSlNPTkltcGw6Ok9i
amVjdEJhc2UgZnVuY3Rpb25zIHdpdGggV1RGX0VYUE9SVF9QUklWQVRFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjU2YTkzYTIwNzEzNTQ5NTMyZWY0NjNjOTNjZjhkNGFiMTczNmNiZC4uOWVmM2E3M2E3ODgzZjI3
ZGE2MGM0ODdmMTNkMGY5MmMyZDZiM2VhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisy
MDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlYWQoKSBhbmQgd3JpdGUoKSBhY2Nv
cmRpbmcgdG8gcHJvcG9zYWw6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNzSGFuZGxlLm1kCisKKyAgICAgICAgVGVzdDog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdv
cmtlci5odG1sCisgICAgICAgIEFQSSB0ZXN0OiBGaWxlU3lzdGVtQWNjZXNzLlByb2Nlc3NDcmFz
aER1cmluZ1dyaXRlCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTEgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgc29tZSBjb2Rl
IGluIERpc3BsYXlMaXN0OjpSZWNvcmRlciBpbiBwcmVwYXJhdGlvbiBmb3IgYnVnICMyMzA4NjAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGZkOWIxMTQ4ZmNmNWU4MGYxOGU4ODA0MDM5ZDQyMzdlOTAx
OWRkMWUuLjZlZjZjYWQ4MTNjY2IwMTNhNDdhMTliZGMyMWRjNzc2Y2U1Mzk5ZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAz
OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
QUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0Zp
bGVQb3J0U1BJLmg6IEFkZGVkLgorCiAyMDIxLTEwLTA4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtHUFUgUHJvY2Vzc10gc3VwcG9ydCBgPGF0dGFj
aG1lbnQ+YApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBiMzhkMjhhYjEwZWU4MzFlZDUzMDNjNTNkN2VhOWRmODE5MWEz
NTUyLi45ZjEyZWM4ODBhZDJlMTJjMWU2OGMwODUwZjAzZmY2NmVjMDhjNDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDUyIEBACisyMDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFk
KCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IG5ldHdvcmsgcHJv
Y2VzcyBvcGVuIHRoZSBmaWxlIGFuZCBwYXNzIGZpbGUgZGVzY3JpcHRvciB0byB3ZWIgcHJvY2Vz
cywgc28gdGhhdCB3ZWIgcHJvY2VzcyBjYW4gcmVhZCBhbmQgCisgICAgICAgIHdyaXRlIHRoZSBm
aWxlIHdpdGhvdXQgc2VuZGluZyBJUEMgbWVzc2FnZXMuIEN1cnJlbnRseSBnZXR0aW5nIGZpbGUg
c2l6ZSwgdHJ1bmNhdGluZyBmaWxlIGFuZCBzeW5jaW5nIGZpbGUgYXJlIAorICAgICAgICBzdGls
bCBwZXJmb3JtZWQgYnkgbmV0d29yayBwcm9jZXNzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmg6CisgICAgICAgIChXZWJLaXQ6OmNv
bnZlcnRUb0V4Y2VwdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZGVjb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oOiBBZGRl
ZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6aGFuZGxlKToKKyAgICAgICAgKElQ
Qzo6U2hhcmVkRmlsZUhhbmRsZTo6U2hhcmVkRmlsZUhhbmRsZSk6CisgICAgICAgICogUGxhdGZv
cm0vSVBDL2NvY29hL1NoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHA6IEFkZGVkLgorICAgICAgICAo
SVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxl
SGFuZGxlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpk
ZWNvZGUpOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5zYi5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2ZpbGVTeXN0ZW1B
Y2Nlc3NFbmFibGVkXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEZpbGVTeXN0ZW1B
Y2Nlc3NFbmFibGVkOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zdG9yYWdlQVBJRW5h
YmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRTdG9yYWdlQVBJRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfYWNjZXNzSGFuZGxlRW5hYmxlZF0pOgorICAg
ICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRBY2Nlc3NIYW5kbGVFbmFibGVkOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbjoKKwogMjAyMS0xMC0xMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBDbGVhbiB1cCBzb21lIGNvZGUgaW4gRGlzcGxheUxpc3Q6OlJlY29yZGVy
IGluIHByZXBhcmF0aW9uIGZvciBidWcgIzIzMDg2MApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCBl
NDMwZjMyNTE0YjkwYjE5MzkxNzYxMDM2NjgyYmVhM2ZhZThiMTg5Li44M2U3NjRlMGExZjVhYTEw
M2ZkZjA1ZjA2OGEwMzhjNTA2MGMzMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtMTA2NSwz
ICsxMDY1LDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAjZGVmaW5lIEhBVkVfUFVBQ1RJVklUWVBS
T0dSRVNTQ09OVFJPTExFUiAxCiAjZW5kaWYKKworI2lmIF9faGFzX2luY2x1ZGUoPFN5c3RlbS9z
eXMvZmlsZXBvcnQuaD4pCisjZGVmaW5lIEhBVkVfRklMRVBPUlQgMQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCBlNmZlOGRiZmJiYTIzZGMxNGRjMTEzZDg5Nzkz
ZWY2NzgyNDQwYmIyLi5jYmU0NmYyMDFmMWUyYTBjYmUzMzliMDIxZjc3Y2NkMTZhZjEzZmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTU3LDI5ICs1NywyNCBAQCB2b2lk
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCkpOwogCi0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkpKTsKKyAg
ICAgICAgYXV0byByZXN1bHRWYWx1ZSA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAg
ICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShw
cm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25k
KSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCit2b2lk
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBj
b25uZWN0aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5l
Y3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
Ojp0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigp
LnRydW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlv
bigpLnRydW5jYXRlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQg
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rp
b24oKS5mbHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5m
bHVzaChpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkw
OGZlMWM3NDBlMWZmZWViMWRlNzgxNDQxNTQuLjc0MjA3NjgzODgyNTFhYzY4YTU1ZWJiMzRkMGE4
YzJmYzU5ZDVlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxGaWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYp
OwotICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRy
dW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9u
ZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNo
KEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYpOworICAgIHZvaWQgZ2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYp
PiYmKTsKKyAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYpPiYmKTsKICAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggOWMwNTc2OGQzYmYxOGRkMTQxYzU5ZGE5MWJlNWFkYzQ1MGFhY2RkNC4uNGJhOWM1ODBkYTE2
ZGVkMWRlZWNmYWY4YjQ0MmY2ODgxNWY4NGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgU2FtZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPGJvb2w+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpPjsK
ICAgICB1c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47Ci0gICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRsZUNh
bGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6OnBhaXI8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGU+PiYmKT47CiAgICAgdXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CiAgICAgdXNpbmcgSW50ZWdlckNhbGxiYWNr
ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+OwogICAg
IHVzaW5nIEdldEhhbmRsZU5hbWVzQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmNwcAppbmRleCBmYWQ0YjlhODRiODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRl
NzZkMmFiLi40ODkzY2ZlNDIwNzE1ZjlkZWFhNTYzYmRlNDI3NzBjZDQ2MmMzZGZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTM0LDE0ICszNCwxNSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRs
ZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikKK1JlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1G
aWxlSGFuZGxlIGZpbGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVyLCBmaWxl
KSk7CiB9CiAKLUZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNl
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAg
ICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fZmlsZShmaWxlKQogewogfQog
CkBAIC01MywxNyArNTQsMzUgQEAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSgpCiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNp
emUsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7Cisg
ICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmllciwgc2l6ZSwgW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZN
b3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpnZXRTaXplKERPTVByb21pc2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHBy
b21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHBy
b21pc2UpKTsKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5n
ZXRTaXplKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0p
OwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaChET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50
aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7
CisgICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5k
aW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJl
c3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpj
bG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtNzEsOSArOTAsMTIg
QEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYgcHJvbWlzZSkKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJu
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCisgICAg
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKICAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlm
aWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKKyAg
ICAgICAgaWYgKHdlYWtUaGlzKSB7CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3Bl
cmF0aW9uQ291bnQtLTsKICAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworICAgICAg
ICB9CiAKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsK
QEAgLTg0LDQgKzEwNiw1OSBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRD
bG9zZSgpCiAgICAgbV9pc0Nsb3NlZCA9IHRydWU7CiB9CiAKK0V4Y2VwdGlvbk9yPHVuc2lnbmVk
IGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQoc3RkOjpvcHRpb25h
bDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiBidWZmZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKQoreworICAgIGlmICht
X2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xv
c2VkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKwor
ICAgIGlmIChtX3BlbmRpbmdPcGVyYXRpb25Db3VudCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBvcGVy
YXRpb24iX3MgfTsKKyAgICAgICAgCisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfTsKKworICAgIGludCByZXN1bHQgPSBGaWxlU3lz
dGVtOjpzZWVrRmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQsIEZpbGVTeXN0ZW06OkZpbGVTZWVrT3Jp
Z2luOjpCZWdpbm5pbmcpOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byByZWFkIGF0IG9mZnNldCJf
cyB9OworCisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7CisgICAgV1RGOjpzd2l0Y2hPbigqYnVm
ZmVyLCBbJmRhdGFdIChSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlclZpZXc+JiBidWZmZXJWaWV3KSB7
CisgICAgICAgIGRhdGEgPSBidWZmZXJWaWV3LT5kYXRhKCk7CisgICAgfSwgWyZkYXRhXSAoUmVm
UHRyPEpTQzo6QXJyYXlCdWZmZXI+JiBidWZmZXIpIHsKKyAgICAgICAgZGF0YSA9IGJ1ZmZlci0+
ZGF0YSgpOworICAgIH0pOworICAgIEJ1ZmZlclNvdXJjZSBzb3VyY2UgeyBXVEZNb3ZlKCpidWZm
ZXIpIH07CisgICAgYXV0byBzaXplID0gc291cmNlLmxlbmd0aCgpOworICAgIHJlc3VsdCA9IEZp
bGVTeXN0ZW06OnJlYWRGcm9tRmlsZShtX2ZpbGUsIGRhdGEsIHNpemUpOworICAgIGlmIChyZXN1
bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkZhaWxlZCB0byByZWFkIGZyb20gZmlsZSJfcyB9OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6d3JpdGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiBidWZm
ZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9u
cyBvcHRpb25zKQoreworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRm
b3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xvc2VkKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChtX3BlbmRpbmdPcGVyYXRpb25Db3VudCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQWNjZXNzIGhh
bmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24iX3MgfTsKKworICAgIGlmICghYnVmZmVyKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAgICBpbnQg
cmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25zLmF0LCBGaWxlU3lz
dGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8g
d3JpdGUgYXQgb2Zmc2V0Il9zIH07CisKKyAgICBCdWZmZXJTb3VyY2UgYnVmZmVyU291cmNlID0g
V1RGTW92ZSgqYnVmZmVyKTsKKyAgICBhdXRvKiBkYXRhID0gYnVmZmVyU291cmNlLmRhdGEoKTsK
KyAgICBhdXRvIHNpemUgPSBidWZmZXJTb3VyY2UubGVuZ3RoKCk7CisgICAgcmVzdWx0ID0gRmls
ZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9maWxlLCBkYXRhLCBzaXplKTsKKyAgICBpZiAocmVzdWx0
ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJG
YWlsZWQgdG8gd3JpdGUgdG8gZmlsZSJfcyB9OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaAppbmRleCAyOWU0MTU3YjY1NDFiOTNlNmVhNWZlMDIzN2YwY2YyMTVkMDNjM2JmLi5lMTE0
Yjg2M2Q4MWVmN2JmZGU3MzVmNjBkMGQ0M2ZjNGYwOTYzZThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMjUsMTQgKzI1LDE3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRl
IDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7CiB0ZW1wbGF0ZTx0eXBl
bmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IEV4Y2VwdGlvbk9yOwogCiBjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiB7CiBwdWJsaWM6CkBAIC00MCw3ICs0
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGF0OwogICAgIH07CiAK
LSAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwor
ICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNyZWF0ZShGaWxlU3lz
dGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUoKTsKIAogICAgIHZvaWQgdHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAgLTQ4LDEzICs1MSwxNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBjbG9z
ZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBkaWRDbG9zZSgpOworICAg
IEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gcmVhZChzdGQ6Om9wdGlvbmFsPEJ1ZmZl
clNvdXJjZTo6VmFyaWFudFR5cGU+LCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CisgICAg
RXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiB3cml0ZShzdGQ6Om9wdGlvbmFsPEJ1ZmZl
clNvdXJjZTo6VmFyaWFudFR5cGU+LCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CiAKIHBy
aXZhdGU6Ci0gICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5k
bGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwog
CiAgICAgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBtX3NvdXJjZTsKICAgICBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIGJvb2wgbV9pc0Ns
b3NlZCB7IGZhbHNlIH07CisgICAgdWludDY0X3QgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQgeyAw
IH07CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZmlsZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuaWRsCmluZGV4IDExMjA2NGE2ZGY2MTFjNDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEuLjZl
YTU0Mzk3ZWVhZjM5MGQ2YzE3ODUxOGY3MjE2NWFiYWFkYTM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApAQCAtMzMsNiArMzMsOCBAQAogICAgIFByb21p
c2U8dW5zaWduZWQgbG9uZyBsb25nPiBnZXRTaXplKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+
IGZsdXNoKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGNsb3NlKCk7CisgICAgdW5zaWduZWQg
bG9uZyBsb25nIHJlYWQoW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2UgYnVmZmVyLCBGaWxlc3lz
dGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgd3Jp
dGUoW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2UgYnVmZmVyLCBGaWxlc3lzdGVtUmVhZFdyaXRl
T3B0aW9ucyBvcHRpb25zKTsKIH07CiAKIGRpY3Rpb25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAppbmRleCAzNzY0MTMyYWVmM2FjMDA3MTM2NDg4ZTcwNmU3OTQ5ZGI4NjY3MTBiLi44
YjhjYTRhYWM2ZDU4MGQ3NWM5MjQzNDM3Mzg3Y2UwZDBmYmFmZmQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMTkzLDcgKzE5
Myw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZXNvbHZl
KENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
cmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4m
JiByZXN1bHQpCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVy
LCBFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmIHJlc3VsdCkKIHsKICAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fZ2V0QWNjZXNzSGFuZGxDYWxsYmFja3MudGFrZShjYWxsYmFj
a0lkZW50aWZpZXIpKQogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMjIx
LDcgKzIyMSwxMCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSQogCiAgICAgY2FsbE9uTWFpblRo
cmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50
aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24s
IGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNr
ID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJl
YWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jv
c3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBhdXRvIGNyb3NzVGhyZWFkUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgICAgICBjcm9zc1RocmVhZFJlc3VsdCA9IGNy
b3NzVGhyZWFkQ29weShyZXN1bHQuZXhjZXB0aW9uKCkpOworICAgICAgICAgICAgd29ya2VyVGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3Vs
dCA9IFdURk1vdmUoY3Jvc3NUaHJlYWRSZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9i
YWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQogICAgICAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNr
SWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCmluZGV4IDZjZTdmZjQ2OTVkOWYwYTZiYmZhNDlkNmMxYTM0N2FjN2Qy
M2M5NGEuLjRkZTQzOTkyY2RiODM2ODQwZGU5YTE2OTU2MmI5ZjMwMTYxYTgwNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkSXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlm
aWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAgICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFj
a0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsK
ICAgICB2b2lkIGRpZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0
b3I8U3RyaW5nPj4mJik7Ci0gICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyPiYmIHJlc3VsdCk7CisgICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENh
bGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik7
CiAgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKICAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNr
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKICAg
ICB2b2lkIGRpZEdldEhhbmRsZU5hbWVzKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
VmVjdG9yPFN0cmluZz4+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAyNmYxNGI1Y2U5Y2FiOTMxYTMzMWU1MmI5MDAwYWE2
YWY4NDIzNjUuLjNlOTA1M2U0YzhjMjcyMGU2N2VjMjc3M2E1YTMyMDU5ZmUwMjcwNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1NCw2ICsxNTQsNyBAQAogCQk3MUIxMTQyMDI2ODIzQUNEMDA0RDY3MDEgLyogU3lzdGVtUHJl
dmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCAqLzsgfTsKIAkJ
N0EzNkQwRjkyMjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EzNkQwRjgyMjNBRDlBQjAwQjA1
MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oICovOyB9OwogCQk3QTNBNkE4MDIwQ0FEQjQ3MDAzMTdB
QUUgLyogTlNJbWFnZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0EzQTZBN0YyMENBREI0NjAwMzE3QUFFIC8qIE5TSW1hZ2VTUEkuaCAqLzsgfTsK
KwkJOTM0NjhFNjcyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2NjI3MTRBN0NEMDA5OTgz
RTMgLyogRmlsZVBvcnRTUEkuaCAqLzsgfTsKIAkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8q
IFNwZWVjaFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCAqLzsg
fTsKIAkJOTNCMzhFQzAyNTgyMUNEODAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQkYyNTgyMUNE
NzAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLm1tICovOyB9OwogCQk5M0IzOEVDMjI1ODIxRDIy
MDAxOThFNjMgLyogU3BlZWNoU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0IzOEVDMTI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi87
IH07CkBAIC0zNzYsNiArMzc3LDcgQEAKIAkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5
c3RlbVByZXZpZXdTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVt
UHJldmlld1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTM2RDBGODIyM0FE
OUFCMDBCMDUyMkUgLyogQ29tbW9uQ3J5cHRvU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbW1vbkNyeXB0b1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QTNBNkE3RjIwQ0FEQjQ2MDAzMTdBQUUgLyogTlNJbWFnZVNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOU0ltYWdlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDY4RTY2MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxlUG9ydFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlUG9ydFNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoU29mdExpbmsuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMzhFQkYyNTgyMUNENzAwMTk4RTYzIC8qIFNw
ZWVjaFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U3BlZWNoU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUMx
MjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVlY2hTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzQs
NiArNTM2LDcgQEAKIAkJCQlERjgzRTIwODI2MzczNEYxMDAwODI1RUYgLyogQ3J5cHRvS2l0UHJp
dmF0ZVNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYzQkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0
b3JzQ29yZVNQSS5oICovLAogCQkJCTFEMTJDQzRBMjQxMUJDQUUwMEZEQTBBMyAvKiBGZWF0dXJl
RmxhZ3NTUEkuaCAqLywKKwkJCQk5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyogRmlsZVBvcnRT
UEkuaCAqLywKIAkJCQlDRTU2NzM4NjIxNTFBN0I5MDAyRjkyRDcgLyogSU9LaXRTUEkuaCAqLywK
IAkJCQkwQzJEQTEyNjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oICovLAogCQkJCTBD
MkRBMTI3MUYzQkVCNDkwMERCQzMxNyAvKiBJT1BTTGliU1BJLmggKi8sCkBAIC05MDAsNiArOTAz
LDcgQEAKIAkJCQlBMTE3NUI1NzFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMzMTcgLyogRXhw
b3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDEyQ0M0QjI0MTFCQ0FFMDBGREEwQTMg
LyogRmVhdHVyZUZsYWdzU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ2OEU2NzI3MTRBN0NE
MDA5OTgzRTMgLyogRmlsZVBvcnRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NDI5MTYwMUZB
NTI2MUUwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDMDIyRUZGMjJDRkVDNTMwMDZERjAxQiAvKiBHdW56aXAuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvRmls
ZVBvcnRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJ
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjdmZTAwOTBiM2Y0YjNkZGEzZjY1Zjg1Njg5NmEyMjQ3ZjBkYzEzOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQ
b3J0U1BJLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgSEFWRShGSUxFUE9SVCkKKworZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8U3lzdGVtL3N5cy9m
aWxlcG9ydC5oPgorfQorCisjZWxzZQorCitleHRlcm4gIkMiIHsKK2ludCBmaWxlcG9ydF9tYWtl
cG9ydChpbnQsIG1hY2hfcG9ydF90Kik7CitpbnQgZmlsZXBvcnRfbWFrZWZkKG1hY2hfcG9ydF90
KTsKK30KKworI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUoPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4p
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUVycm9yLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCmluZGV4IDI4ODI0NGY4ZGYwYmE0YzRlMWI3YjM4
MGQzNjA5MmQzNWIwYjRjOGEuLjAyNzczN2EyYjQwYjJjMjcwZWFhNjRiOGE1ZjllNjQzMDFlZTg3
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUVycm9yLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaApAQCAtMzEsOSArMzEsMTAgQEAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50
OF90IHsKKyAgICBCYWNrZW5kTm90U3VwcG9ydGVkLAogICAgIEZpbGVOb3RGb3VuZCwKLSAgICBJ
bnZhbGlkTmFtZSwKICAgICBJbnZhbGlkTW9kaWZpY2F0aW9uLAorICAgIEludmFsaWROYW1lLAog
ICAgIEludmFsaWRTdGF0ZSwKICAgICBUeXBlTWlzbWF0Y2gsCiAgICAgVW5rbm93bgpAQCAtNDIs
MTYgKzQzLDE4IEBAIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvciA6IHVpbnQ4X3Qg
ewogaW5saW5lIFdlYkNvcmU6OkV4Y2VwdGlvbiBjb252ZXJ0VG9FeGNlcHRpb24oRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvciBlcnJvcikKIHsKICAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgY2FzZSBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkOgorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90U3VwcG9ydGVkRXJyb3IsICJCYWNr
ZW5kIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRpb24iIH07CiAgICAgY2FzZSBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQ6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
eGNlcHRpb24geyBXZWJDb3JlOjpOb3RGb3VuZEVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkTW9kaWZpY2F0aW9uOgogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIH07Ci0gICAg
Y2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6Ci0gICAgICAgIHJldHVy
biBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lOgogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiTmFtZSBpcyBpbnZhbGlkIiB9
OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOgogICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6SW52YWxpZFN0YXRlRXJyb3Ig
fTsKKyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaDoKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlR5cGVFcnJvciB9OwogICAg
IGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtNzQsOSArNzcsMTAgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gewogICAgIHVzaW5n
IHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvciwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90
U3VwcG9ydGVkLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVO
b3RGb3VuZCwKLSAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlk
TmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTW9k
aWZpY2F0aW9uLAorICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFs
aWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRT
dGF0ZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0
Y2gsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggNzcyYTAwOWZlMWEwMTkwNWIyMDU5NDIz
NGZjNTZmZjM3NDBiNmY5Yi4uMDhmNjBjYzEyZGU5MTQ5NGMyYzA3YzAzZjdhNzAxZjcyMzYxNDEy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2hhcmVkRmlsZUhhbmRsZS5oIgogI2luY2x1
ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE0Myw3ICsxNDQsNyBA
QCBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OnJlc29sdgogICAgIHJldHVybiByZXN0UGF0aC5zcGxpdChwYXRo
U2VwYXJhdG9yKTsKIH0KIAotRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpCitFeHBlY3RlZDxGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQogewogICAgIGlm
ICghbV9tYW5hZ2VyKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VW5rbm93bik7CkBAIC0xNTIsOSArMTUzLDIwIEBAIEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4KICAgICBpZiAoIWFjcXVpcmVkKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlKTsKIAorICAgIG1faGFuZGxl
ID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6
OlJlYWRXcml0ZSk7CisgICAgaWYgKG1faGFuZGxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGF1dG8gaXBjSGFuZGxlID0gSVBDOjpTaGFy
ZWRGaWxlSGFuZGxlOjpjcmVhdGUobV9oYW5kbGUpOworICAgIGlmICghaXBjSGFuZGxlKSB7Cisg
ICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CisgICAgICAgIG1faGFuZGxl
ID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKyAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0
ZWQpOworICAgIH0KKwogICAgIEFTU0VSVCghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKTsKICAg
ICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwotICAgIHJldHVybiAqbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlOworICAgIHJldHVybiBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5kbGUpIH07CiB9CiAKIEV4cGVjdGVkPHVp
bnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6
Z2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikKQEAgLTE4MCwxMiArMTkyLDggQEAgc3RkOjpvcHRpb25hbDxG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUo
V2ViQ29yZToKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVT
eW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAgYXV0byBoYW5kbGUgPSBG
aWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVh
ZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmlsZVNjb3BlID0gbWFrZVNjb3BlRXhpdChbJl0gewot
ICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoaGFuZGxlKTsKLSAgICB9KTsKLQotICAgIGF1
dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKGhhbmRsZSwgc2l6ZSk7CisgICAg
QVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUp
OworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6dHJ1bmNhdGVGaWxlKG1faGFuZGxlLCBz
aXplKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd247CiAKQEAgLTIwMCw3ICsyMDgsMTEgQEAgc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2goV2ViQ29y
ZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCi0gICAgLy8gRklYTUU6IHdoZW4gd3Jp
dGUgb3BlcmF0aW9uIGlzIGltcGxlbWVudGVkLCBwZXJmb3JtIGFjdHVhbCBmbHVzaCBoZXJlLgor
ICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OmZsdXNoRmlsZShtX2hhbmRsZSk7
CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duOworCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtMjEyLDYgKzIy
NCwxMCBAQCBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaQogICAgIGlmICghbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRl
bnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247
CiAKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1faGFuZGxlKTsKKyAgICBtX2hh
bmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisKICAgICBtX21h
bmFnZXItPnJlbGVhc2VMb2NrRm9yRmlsZShtX3BhdGgsIG1faWRlbnRpZmllcik7CiAgICAgbV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5oCmluZGV4IGQ5OGU0ZTkzMjhkMjFmMDI0YjEzYjYyM2NkNDE5OWRkMWM2NmI5ODgu
LmJiZGZkNGNlZTFjNzEyNjgyN2I0MGIxMTk2YzQzNzdiY2YxN2M5MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlOworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOwpAQCAt
NTMsNyArNTcsOCBAQCBwdWJsaWM6CiAgICAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IGdldEhhbmRsZU5hbWVzKCk7CiAgICAgRXhwZWN0ZWQ8c3RkOjpw
YWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gZ2V0SGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmlu
ZyYmIG5hbWUpOwogCi0gICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKCk7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhh
bmRsZT47CisgICAgRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwogICAgIEV4cGVjdGVkPHVpbnQ2NF90LCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcik7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiB0cnVuY2F0ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIHVpbnQ2NF90IHNpemUpOwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gZmx1c2goV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKTsKQEAgLTY4LDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wYXRoOwogICAg
IFN0cmluZyBtX25hbWU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+IG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICBG
aWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMmVjZmU0MzdkMDE5N2NhMjIxZmY1MjI4ODIz
ZTc3MzczNzJhNmNlNi4uNTUxNmZiYjYyOTQ3Zjk4ZGRkZTU5MjFjZDczZmVhMzAwNDdhMWE4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCB2b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaQogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+cmVzb2x2ZSh0
YXJnZXRJZGVudGlmaWVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8s
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCmluZGV4
IDZiMzM2MDYwMjhkODAxZDQ4NDYyZWE2ZTQwNmU2YjQyOTU3Y2ZhNzQuLjg4NDU1OWFkOTc2ODI5
NDc5NWVkZjU2ODY3NTYyYWJjNmQ5MTEyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAg
LTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKK25hbWVzcGFj
ZSBJUEMgeworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RydWN0IENsaWVudE9yaWdpbjsKIH0KQEAgLTcwLDcgKzc0LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lk
IHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQg
cmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCBj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAg
ICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKKyAgICB2
b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywg
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldFNpemVGb3JBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lk
IHRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2
NF90IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgppbmRleCA4NmNiMjZhY2E5ZWNhMjM1YzI0NzViOTE1NzViNjE3MWQ4
N2M2ZDkzLi5lZmU1NzQ4NmMxYjJkNzE4ZDEzMTI4ZGYwNWU0NTIyYTA2NTk5ZTZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTMzLDcgKzMzLDcgQEAK
ICAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAg
UmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYwogCi0gICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3Rl
ZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
IHJlc3VsdCkgQXN5bmMKICAgICBHZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8dWludDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwogICAgIFRydW5jYXRlRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKSAtPiAoc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMK
ICAgICBGbHVzaEZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NDE5YmJlNzFh
M2Q3ZWZjZjBiY2Y2YjA5Y2IyYWFkZmUyZjQ3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcApAQCAtMCwwICsxLDUzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVI
YW5kbGUuaCIKKworbmFtZXNwYWNlIElQQyB7CisKK3N0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhh
bmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSBoYW5kbGUpCit7CisjaWYgSEFWRShGSUxFUE9SVCkKKyAgICByZXR1cm4gU2hhcmVkRmls
ZUhhbmRsZSB7IGhhbmRsZSB9OworI2Vsc2UKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworI2Vu
ZGlmCit9CisKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisKK3ZvaWQgU2hhcmVkRmlsZUhhbmRsZTo6
ZW5jb2RlKEVuY29kZXImKSBjb25zdAoreworfQorCitzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVI
YW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZShEZWNvZGVyJikKK3sKKyAgICByZXR1cm4g
c3RkOjpudWxsb3B0Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaCBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWFm
NDBiZmRiZTk1NjJhYzgzZDZhNjQ0YTIwYjQ2OWI0N2RhODE4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGZjbnRsLmg+Cisj
aW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIERl
Y29kZXI7CitjbGFzcyBFbmNvZGVyOworCitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBjcmVhdGUoRmls
ZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBTaGFyZWRGaWxlSGFuZGxlKCkgPSBk
ZWZhdWx0OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUoKSB7IHJl
dHVybiBtX2hhbmRsZTsgfQorCisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworCisg
ICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gZGVjb2RlKERlY29kZXIm
KTsKKyAgICAKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU2hhcmVkRmlsZUhhbmRsZShGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQorICAgICAgICA6IG1faGFuZGxlKGhhbmRs
ZSkKKyAgICB7CisgICAgfQorCisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1f
aGFuZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgSVBDCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL2NvY29hL1NoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEw
MWZlYTk3OTJiMDQyMTQ5OGQ1MThiYmE5ODBhYjIwYzE1YmI3ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL2NvY29hL1NoYXJlZEZpbGVIYW5kbGVDb2NvYS5j
cHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTaGFyZWRGaWxlSGFuZGxlLmgiCisKKyNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2lu
Y2x1ZGUgPHBhbC9zcGkvY29jb2EvRmlsZVBvcnRTUEkuaD4KKworbmFtZXNwYWNlIElQQyB7CisK
K3ZvaWQgU2hhcmVkRmlsZUhhbmRsZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgbWFjaF9wb3J0X25hbWVfdCBmaWxlcG9ydCA9IE1BQ0hfUE9SVF9OVUxMOworICAgIGZp
bGVwb3J0X21ha2Vwb3J0KG1faGFuZGxlLCAmZmlsZXBvcnQpOworICAgIGVuY29kZXIgPDwgTWFj
aFBvcnQoZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKK30KKworc3RkOjpvcHRp
b25hbDxTaGFyZWRGaWxlSGFuZGxlPiBTaGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBNYWNoUG9ydCBtYWNoUG9ydDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1hY2hQb3J0KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAKKyAgICBy
ZXR1cm4gU2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKGZpbGVwb3J0X21ha2VmZChtYWNoUG9ydC5w
b3J0KCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDcxNjRmODg2MDA3OGUy
MDcxYWI4YzVmZDQ2Njg4ZjM0ZGZhYWFmMjIuLjRjZjk2NTQxYmJkMTRmN2RiOWZmMDdhYzMzN2My
OGU1YjJlNTgzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0xNTE3LDYgKzE1MTcsMzYgQEAgc3RhdGljIFdlYkNvcmU6
OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRWRpdGFibGVMaW5rQmVoYXZpb3IoX1dLRWRpdGFibGVM
aW5rQmVoYXYKICAgICBfcHJlZmVyZW5jZXMtPnNldFJlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1Bs
YXlBdWRpbyhyZXF1aXJlcyk7CiB9CiAKKy0gKEJPT0wpX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVk
Cit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+ZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQoKTsK
K30KKworLSAodm9pZClfc2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQ6KEJPT0wpZmlsZVN5c3Rl
bUFjY2Vzc0VuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEZpbGVTeXN0ZW1BY2Nlc3NF
bmFibGVkKGZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkKTsKK30KKworLSAoQk9PTClfc3RvcmFnZUFQ
SUVuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5zdG9yYWdlQVBJRW5hYmxlZCgp
OworfQorCistICh2b2lkKV9zZXRTdG9yYWdlQVBJRW5hYmxlZDooQk9PTClzdG9yYWdlQVBJRW5h
YmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0U3RvcmFnZUFQSUVuYWJsZWQoc3RvcmFnZUFQ
SUVuYWJsZWQpOworfQorCistIChCT09MKV9hY2Nlc3NIYW5kbGVFbmFibGVkCit7CisgICAgcmV0
dXJuIF9wcmVmZXJlbmNlcy0+YWNjZXNzSGFuZGxlRW5hYmxlZCgpOworfQorCistICh2b2lkKV9z
ZXRBY2Nlc3NIYW5kbGVFbmFibGVkOihCT09MKWFjY2Vzc0hhbmRsZUVuYWJsZWQKK3sKKyAgICBf
cHJlZmVyZW5jZXMtPnNldEFjY2Vzc0hhbmRsZUVuYWJsZWQoYWNjZXNzSGFuZGxlRW5hYmxlZCk7
Cit9CisKIEBlbmQKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDUwNjAzYTFiOWYyZjc4OWI1NjBj
MDNmZGJjYmE5NDc1ZTQ5NGMyZmMuLjU5OTY5YjY0YTY1ZWI4ZTVmMDE0MDNiYjZjNzM0OWQ4Mzgy
MmVmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0xNzMsNiArMTczLDkgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNlc3Npb25FbmFibGVkOikgQk9PTCBfbWVkaWFT
ZXNzaW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwog
QHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFeHRlbnNpYmxlU1NPRW5hYmxlZCwgc2V0
dGVyPV9zZXRFeHRlbnNpYmxlU1NPRW5hYmxlZDopIEJPT0wgX2V4dGVuc2libGVTU09FbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1BhZ2VWaXNpYmlsaXR5VG9QbGF5QXVkaW86KSBC
T09MIF9yZXF1aXJlc1BhZ2VWaXNpYmlsaXR5VG9QbGF5QXVkaW8gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkOikgQk9PTCBfZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0b3JhZ2VBUElFbmFibGVkOikgQk9PTCBf
c3RvcmFnZUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2Vzc0hh
bmRsZUVuYWJsZWQ6KSBCT09MIF9hY2Nlc3NIYW5kbGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiAhVEFSR0VUX09TX0lQ
SE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViR0xFbmFibGVkOikgQk9P
TCBfd2ViR0xFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWIzMmVi
YTIyMDhhNGQ4NDljNDU3MDcxYmNhNDM4OTYyNTIxNzBlNS4uMTE5YWE1M2VjYjM3MGNhODFjMDY4
ZDhmOTgwOWUwZmY3ZTU5YmVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDcyLDYgKzE0NzIsNyBAQAogCQk5MzA4NURERjI2RTVC
Q0YxMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRTI2RTJF
OTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87
IH07CiAJCTkzMDg1REUwMjZFNUJDRkQwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1REM0
MjZFMUJCQkQwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMw
ODVERTEyNkU1QkQxMzAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRDI2
RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsK
KwkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTIyQzg1MjcxMENDREUw
MDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi87IH07CiAJCTkzMTJCQUQ1MjZGMzNDMjYw
MEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBG
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMxMkJBRDYyNkYzM0MyOTAwRkRE
RjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFBMDc1MzI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLzsgfTsKIAkJOTMxQTFCRTIyNkY4NzAwOTAwODFBN0U1IC8q
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMUExQkUwMjZGODVDMzIwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yLmggKi87IH07CkBAIC0xNDg0LDYgKzE0ODUsOCBAQAogCQk5MzNFODM1QTIzQTFB
RTI4MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBX
ZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovOyB9OwogCQk5MzNFODM1QjIzQTFCNzUwMDBERUYyODkg
LyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU4MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJ
REJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5MzQyNTg5QTI1NUI1MzVBMDA1
OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVk
aWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi87IH07CisJCTkzNDY4RTZCMjcxNEFGNDcwMDk5ODNF
MyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZBMjcxNEFGNDcwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFu
ZGxlLmNwcCAqLzsgfTsKKwkJOTM0NjhFNkQyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVI
YW5kbGVDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ2OEU2QzI3MTRBRjg4MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNw
cCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1U
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNTQyNDJDMjcwM0JE
Q0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTQyNDJBMjcwM0JEQ0IwMDVD
QTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYy
REMyMTUyQjZCNTAwRTZENURGIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENE
QzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovOyB9OwpAQCAtNDk0OSw2ICs0OTUyLDcg
QEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1
MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUyMjZGMDZBQjQwMDQ0NzRD
RCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00OTY3LDYgKzQ5NzEsOCBAQAogCQk5MzNFODM1OTIzQTFBREY1MDBE
RUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJOTM0MjU4OEYyNTU1RENBNTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0
aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGll
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OTgyNTVCNTM0QjAwNTlF
RUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDY4RTZDMjcxNEFGODgwMDk5
ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0
ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1lbnVJ
dGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NDI0MkEyNzAzQkRD
QjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8q
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzM1OCw2ICs3MzY0LDggQEAKIAkJCQk1Q0M1REI5
MTIxNDg4RTE2MDA2Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5oICovLAogCQkJCTJEQzE4NTVF
REJGQjg1MEJBMEI2RDA2RCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLywKIAkJ
CQkyREMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5o
ICovLAorCQkJCTkzNDY4RTZBMjcxNEFGNDcwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNw
cCAqLywKKwkJCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5o
ICovLAogCQkJCTdCNzMxMjM2MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0
aW9uLmNwcCAqLywKIAkJCQk3QjczMTIzMzI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50
Q29ubmVjdGlvbi5oICovLAogCQkJCTdCNzMxMjM0MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1D
b25uZWN0aW9uQnVmZmVyLmNwcCAqLywKQEAgLTExMTMwLDYgKzExMTM4LDcgQEAKIAkJCQkxQTZE
ODZCRjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2UuY3BwICovLAogCQkJCTFBNkQ4NkMw
MURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5oICovLAogCQkJCUJDQzU2Rjc3MTE1OTk1
N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oICovLAorCQkJCTkzNDY4RTZDMjcxNEFGODgwMDk5ODNF
MyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2Nv
YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjY1NCw2ICsxMjY2Myw3IEBACiAJ
CQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEg
LyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2
MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3Jh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFy
ZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2MTYsNiArMTQ2MjYsOCBA
QAogCQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0OTNGRCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZl
ckNvcHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMTgxMjQ1QjU0OTM0M0JDOTgxNjRDIC8q
IFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NjhF
NkIyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJOTM0NjhFNkQyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVk
TWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAv
KiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0
M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDYwMzEyN2JlNjc4NDk4MWQzMGFhNGE3NjIxOTc1
NWQzZWYzNjIyNWMuLjk2ODVmY2ZhOGU5YzU2YmEyODY2OTliYTEyMWEwNzBjNDMyYjIzYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0x
MjEsNyArMTIxLDggQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUgKICAgICAgICAgaWYgKCFyZXN1
bHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0
aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShyZXN1bHQudmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnZh
bHVlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6cGFpciB7IHJlc3VsdFZhbHVl
LmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQuaGFuZGxlKCkgfSk7CiAgICAgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5p
bgppbmRleCBhYTVhOGRkMTc0M2ExY2I5NGQzNGJmYTVhY2RhNjBmNjVkNWYzZDNjLi42YjMxYjZl
ZDZiNjdmMGJlYjA2MWM3ZmEyZGNlYmUyNTE2OGY0N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCkBAIC0xOTM2LDYgKzE5
MzYsNyBAQAogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2Nvbm5lY3Rfbm9jYW5jZWwpCiAg
ICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2VuZHRvX25vY2FuY2VsKQogICAgICAgICAoc3lz
Y2FsbC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19m
aWxlcG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZmlsZXBvcnRfbWFr
ZXBvcnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3VhcmRlZF9vcGVuX25wKQogICAg
ICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfY2xvc2VfbnApCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmYxZDdiYTUzZWJmZWE4YjQ4
MjNmYmM3ZWZkNzAzMWE0ZGJmNGYwZi4uNWUwNzYzZGViNDZlZTA5MGVkYzA1YjExNzM4MWM4Nzdk
YjEyN2ZhZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSBy
ZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW06IEFkZGVk
LgorICAgICAgICAoLVtGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRD
b250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0pOgorICAgICAgICAodGVzdCk6CisK
IDIwMjEtMTAtMTEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtidWlsZC1pbWFnZWRpZmZdIEJ1aWxkIHVuaXZlcnNhbCBiaW5hcmllcyBieSBkZWZhdWx0
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI3NWE1ZDBmOTI4OTg3NGZhYTA1NjM3ZTVjMDhh
ZTI2YTlkNjQzNjkuLjgwMWU0NzQwNTg3MmU4MDkwNThkMDQzZDJhNmRmNzM1ZjBjZWI3ODYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NTQsNiArODU0LDcgQEAKIAkJOTMzRDYzMUQxRkNC
NzYyMDAwMzJFQ0Q2IC8qIEhhc2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzNENjMxQjFGQ0I3NjE4MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAq
LzsgfTsKIAkJOTM0MjU4OUMyNTVCNjA5QjAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml0aW9uLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0MjU4OUIy
NTVCNjA5QTAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml0aW9uLm1tICovOyB9OwogCQk5MzQyNTg5
RTI1NUI2QTEyMDA1OUVFREQgLyogc3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBl
cnNpc3RlbmNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM0MjU4OUQyNTVCNjZBMDAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0aW9u
LXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sICovOyB9OworCQk5MzQ2OEU2RjI3MTRC
NEYyMDA5OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxl
U3lzdGVtQWNjZXNzLm1tICovOyB9OwogCQk5MzU3ODZDQzIwRjZBMjcwMDAwMENERkMgLyogSW5k
ZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3Fs
aXRlMy13YWwgKi87IH07CiAJCTkzNTc4NkNEMjBGNkEyOTEwMDAwQ0RGQyAvKiBJbmRleGVkREIu
c3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzRGQTVDNzIwRjY5RkVFMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi87IH07
CiAJCTkzNTc4NkNFMjBGNkEyQTEwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1
QzYyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLzsgfTsKQEAgLTI1
ODIsNiArMjU4Myw3IEBACiAJCTkzM0Q2MzFCMUZDQjc2MTgwMDMyRUNENiAvKiBIYXNoZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGFzaGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OUIyNTVCNjA5QTAwNTlFRUREIC8qIFNwZWVj
aFJlY29nbml0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1
ODlEMjU1QjY2QTAwMDU5RUVERCAvKiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Npb24t
cGVyc2lzdGVuY2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJzcGVlY2hyZWNv
Z25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDY4RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNj
ZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZVN5c3Rl
bUFjY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzUyMEY2OUZF
RDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNxbGl0
ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzYyMEY2OUZFRDAw
NDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNxbGl0ZTMt
c2htIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzcyMEY2OUZFRTAwNDBE
QzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEluZGV4ZWREQi5zcWxpdGUzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzUxMCw2ICszNTEyLDcgQEAKIAkJCQk2QjI1QTc1MTI1
REM4RDRFMDA3MDc0NEYgLyogRXZlbnRBdHRyaWJ1dGlvbi5tbSAqLywKIAkJCQlDREEyOUIyODIw
RkQyQTk5MDBGMTVDRUQgLyogRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQLm1tICovLAogCQkJCTFE
MTJCRUJGMjQ1QkVGODUwMDRDMEI3QSAvKiBFeGl0UGlQT25TdXNwZW5kVmlkZW9FbGVtZW50Lm1t
ICovLAorCQkJCTkzNDY4RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1t
ICovLAogCQkJCTJEODEwNENCMUJFQzEzRTcwMDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICovLAog
CQkJCTUxMjQyQ0Q0MjM3NEU2MUUwMEVFRDlDMSAvKiBGaW5kSW5QYWdlQVBJLm1tICovLAogCQkJ
CTExODE1MzQ3MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3Rv
bmUubW0gKi8sCkBAIC01NTY4LDYgKzU1NzEsNyBAQAogCQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0
N0M0QyAvKiBGYWlsZWRMb2FkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3OTY1MUU3MjE2QkZE
RUQwMDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0EzMkQ3NEExRjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTkzNDY4RTZGMjcxNEI0RjIwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRjMxQTQxMUFFNjAwNDQ3QzRDIC8qIEZpbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQkIxRDBBNjUwMDAwRkVCQ0YzIC8qIEZpbmRJblBhZ2Uu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTI0MkNENTIzNzRFNjI1MDBFRUQ5QzEgLyogRmluZElu
UGFnZUFQSS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIw
ZmNkMzFiOGNiMzUxMTFhZGE2MWFhNzI0MmJlNDU2NGM1NTIyYTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3Mu
bW0KQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCisjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CisKK3N0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZTsKK3N0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsK
KworQGludGVyZmFjZSBGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8
V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEZpbGVTeXN0
ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlcgorCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjoo
V0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2
ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOworICAgIGxhc3RTY3JpcHRNZXNzYWdlID0gbWVzc2FnZTsK
K30KKworQGVuZAorCitzdGF0aWMgTlNTdHJpbmcgKm1haW5GcmFtZVN0cmluZyA9IEAiPHNjcmlw
dD4gXAorICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeyBcCisgICAgICAgIHZhciB3b3JrZXIgPSBuZXcg
V29ya2VyKCd3b3JrZXIuanMnKTsgXAorICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsgXAorICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSk7IFwKKyAgICAgICAgfTsgXAorICAg
IH0gXAorICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCdwYWdlIGlzIGxvYWRlZCcpOyBcCisgICAgPC9zY3JpcHQ+IjsKKworc3RhdGljIGNv
bnN0IGNoYXIqIHdvcmtlckJ5dGVzID0gUiJURVNUUkVTT1VSQ0UoCithc3luYyBmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmln
YXRvci5zdG9yYWdlLmdldERpcmVjdG9yeSgpOworICAgICAgICB2YXIgZmlsZUhhbmRsZSA9IGF3
YWl0IHJvb3RIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnZmlsZS1zeXN0ZW0tYWNjZXNzLnR4dCcsIHsg
J2NyZWF0ZScgOiB0cnVlIH0pOworICAgICAgICB2YXIgYWNjZXNzSGFuZGxlID0gYXdhaXQgZmls
ZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAgICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoMTApOworICAgICAgICB2YXIgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxl
LndyaXRlKGJ1ZmZlciwgeyAiYXQiIDogMCB9KTsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgn
c3VjY2Vzczogd3JpdGUgJyArIHdyaXRlU2l6ZSArICcgYnl0ZXMnKTsKKyAgICB9IGNhdGNoIChl
cnIpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnZXJyb3I6ICcgKyBlcnIubmFtZSArICcg
LSAnICsgZXJyLm1lc3NhZ2UpOworICAgICAgICBjbG9zZSgpOworICAgIH0KK30KK3Rlc3QoKTsK
KylURVNUUkVTT1VSQ0UiOworCitURVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIFByb2Nlc3NDcmFzaER1
cmluZ1dyaXRlKQoreworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tGaWxlU3lzdGVtQWNj
ZXNzTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgYXV0byBwcmVmZXJl
bmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5fZmls
ZVN5c3RlbUFjY2Vzc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2FjY2Vzc0hhbmRs
ZUVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX3N0b3JhZ2VBUElFbmFibGVkID0gWUVT
OworICAgIGF1dG8gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxl
ciBhbGxvY10gaW5pdF0pOworICAgIFtzY2hlbWVIYW5kbGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFz
a0hhbmRsZXI6XihXS1dlYlZpZXcgKiwgaWQ8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAg
ICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZTsKKyAgICAgICAgUmV0YWluUHRy
PE5TRGF0YT4gZGF0YTsKKyAgICAgICAgTlNVUkwgKnJlcXVlc3RVUkwgPSB0YXNrLnJlcXVlc3Qu
VVJMOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIndlYmtpdDovL3dlYmtpdC5vcmcvd29ya2Vy
LmpzIiwgcmVxdWVzdFVSTC5hYnNvbHV0ZVN0cmluZyk7CisgICAgICAgIHJlc3BvbnNlID0gYWRv
cHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnJlcXVlc3RVUkwgTUlNRVR5
cGU6QCJ0ZXh0L2phdmFzY3JpcHQiIGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGlu
Z05hbWU6bmlsXSk7CisgICAgICAgIGRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6d29ya2Vy
Qnl0ZXMgbGVuZ3RoOnN0cmxlbih3b3JrZXJCeXRlcyldOworICAgICAgICBbdGFzayBkaWRSZWNl
aXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0
YTpkYXRhLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkRmluaXNoXTsKKyAgICB9XTsKKyAgICBb
Y29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOnNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9y
VVJMU2NoZW1lOkAid2Via2l0Il07CisKKyAgICAvLyBsb2FkIGZpcnN0IHdlYiB2aWV3ICYgc3Rh
cnQgdGVzdAorICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1l
U3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ3ZWJraXQ6Ly93ZWJraXQub3Jn
Il1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
KTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJwYWdlIGlzIGxvYWRlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpu
aWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
KTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7
CisKKyAgICBhdXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtzZWNvbmRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1h
aW5GcmFtZVN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAid2Via2l0Oi8vd2Vi
a2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNU
X1dLX1NUUkVRKEAicGFnZSBpcyBsb2FkZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwor
CisgICAgLy8gQWNjZXNzIGhhbmRsZSBjYW5ub3QgYmUgY3JlYXRlZCB3aGVuIHRoZXJlIGlzIGFu
IG9wZW4gb25lLgorICAgIFtzZWNvbmRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAImVycm9yOiBJbnZhbGlkU3RhdGVFcnJvciAtIFRo
ZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9k
eV0pOworCisgICAgLy8gT3BlbiBhY2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiB3
ZWIgcHJvY2VzcyBjcmFzaGVzLgorICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3Nd
OworCisgICAgW3NlY29uZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUg
MTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCisjZW5kaWYgLy8gVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZDI4NWE4NjljYjZlZGRjODBhNGVjN2Q5NDE2
ZWRlZWRlNzFlMmMzLi5mZDc4YzI5YTY4N2FiMDI4MzAzYjVmM2M5ZDY4MmZmZTU3Y2MzMDEwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
IHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2Uv
ZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUu
anM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChhcnJheUJ1ZmZlclRv
U3RyaW5nKToKKyAgICAgICAgKHN0cmluZ1RvQXJyYXlCdWZmZXIpOgorICAgICAgICAod3JpdGUp
OgorICAgICAgICAocmVhZCk6CisgICAgICAgIChhc3luYyB0ZXN0KToKKyAgICAgICAgKiBzdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2Vy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sOiBBZGRlZC4KKwogMjAy
MS0xMC0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDT09Q
XSBDcmFzaCB1bmRlciBSZXBvcnRpbmdFbmRwb2ludHNDYWNoZTo6YWRkRW5kcG9pbnRGcm9tRGlj
dGlvbmFyeSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
cmVhZC13cml0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmU5ZTBjMmIwOTAzYjMyOWU0YmRhMzBkOWFlZmNk
NmNiMGQ3YTAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcwpAQCAt
MCwwICsxLDk1IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0
cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuIik7CisKK3ZhciBhY2Nlc3NIYW5kbGUsIGZpbGVTaXplLCB3cml0ZUJ1ZmZlciwg
d3JpdGVTaXplLCByZWFkQnVmZmVyLCByZWFkU2l6ZSwgcmVhZFRleHQsIHJlYWRFcnJvcjsKK3Zh
ciB0b3RhbFJlYWRTaXplID0gMCwgdG90YWxXcml0ZVNpemUgPSAwOworCitmdW5jdGlvbiBmaW5p
c2hUZXN0KGVycm9yKQoreworICAgIGlmIChlcnJvcikgeworICAgICAgICB0ZXN0RmFpbGVkKGVy
cm9yKTsKKyAgICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGFycmF5QnVm
ZmVyVG9TdHJpbmcoYnVmZmVyKQoreworICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFw
cGx5KG51bGwsIG5ldyBVaW50MTZBcnJheShidWZmZXIpKTsKK30KKworZnVuY3Rpb24gc3RyaW5n
VG9BcnJheUJ1ZmZlcihzdHJpbmcpCit7CisgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZl
cihzdHJpbmcubGVuZ3RoKjIpOworICAgIHZhciBidWZmZXJWaWV3ID0gbmV3IFVpbnQxNkFycmF5
KGJ1ZmZlcik7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgYnVmZmVyVmlld1tpXSA9IHN0cmluZy5jaGFyQ29kZUF0KGkpOworICAgIH0KKyAg
ICByZXR1cm4gYnVmZmVyOworfQorCitmdW5jdGlvbiB3cml0ZShhY2Nlc3NIYW5kbGUsIG9mZnNl
dCwgdGV4dCkKK3sKKyAgICB3cml0ZUJ1ZmZlciA9IHN0cmluZ1RvQXJyYXlCdWZmZXIodGV4dCk7
CisgICAgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7ICJhdCIg
OiBvZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoIndyaXRlU2l6ZSIsICJ3cml0ZUJ1ZmZlci5ieXRl
TGVuZ3RoIik7CisgICAgcmV0dXJuIHdyaXRlU2l6ZTsKK30KKworZnVuY3Rpb24gcmVhZChhY2Nl
c3NIYW5kbGUsIG9mZnNldCwgc2l6ZSkKK3sKKyAgICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVm
ZmVyKHNpemUpOworICAgIHJlYWRTaXplID0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwg
eyAiYXQiOiBvZmZzZXQgfSk7CisgICAgc2hvdWxkQmUoInJlYWRTaXplIiwgInJlYWRCdWZmZXIu
Ynl0ZUxlbmd0aCIpOworICAgIHJldHVybiBhcnJheUJ1ZmZlclRvU3RyaW5nKHJlYWRCdWZmZXIp
OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIHRyeSB7CisgICAgICAgIHZhciBy
b290SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7CisgICAg
ICAgIC8vIENyZWF0ZSBhIG5ldyBmaWxlIGZvciB0aGlzIHRlc3QuCisgICAgICAgIGF3YWl0IHJv
b3RIYW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiKS50aGVuKCgpID0+
IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFu
ZGxlLmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhhbmRsZS50eHQiLCB7ICJjcmVhdGUiIDog
dHJ1ZSAgfSk7CisgICAgICAgIGFjY2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRs
ZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICIwIik7CisKKyAgICAg
ICAgZGVidWcoInRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOiIpOworICAgICAgICB0b3RhbFdyaXRl
U2l6ZSArPSB3cml0ZShhY2Nlc3NIYW5kbGUsIDAsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIp
OworICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6
ZSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBm
aXJzdCBzZW50ZW5jZS4iKTsKKyAgICAgICAgdG90YWxSZWFkU2l6ZSArPSByZWFkVGV4dC5sZW5n
dGggKiAyOworCisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwg
dG90YWxXcml0ZVNpemUsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVh
ZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgdG90YWxSZWFkU2l6ZSwgdG90YWxXcml0ZVNpemUg
LSB0b3RhbFJlYWRTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4
dCIsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICByZWFkVGV4dCA9IHJl
YWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5UaGlzIGlzIHNl
Y29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICBkZWJ1ZygidGVzdCBmbHVzaCgpOiIpOworICAg
ICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUgPSBhd2Fp
dCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNpemUiLCAi
dG90YWxXcml0ZVNpemUiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCB0cnVuY2F0ZSgpOiIpOwor
ICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoNCk7CisgICAgICAgIGF3YWl0IGFj
Y2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRs
ZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICI0Iik7CisKKyAgICAg
ICAgZGVidWcoInRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOiIpOworICAgICAg
ICBldmFsQW5kTG9nKCJhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoMCkiKTsKKyAgICAgICAgcmVhZEJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig0KTsKKyAgICAgICAgc2hvdWxkVGhyb3coImFjY2Vzc0hh
bmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgXCJhdFwiIDogMCB9KSIpOworCisgICAgICAgIGF3YWl0
IGFjY2Vzc0hhbmRsZS5jbG9zZSgpOworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBjYXRj
aCAoZXJyb3IpIHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfQorfQorCit0ZXN0
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3lu
Yy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0
ZS13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxY2Q1OWI3MzhmMjE0NDA4ZThkNmEw
YmM5YTc3MGI4MzEyMTAwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitbV29ya2VyXSBUaGlzIHRlc3QgY2hlY2tzIGJh
c2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNvdXJjZXMvc3lu
Yy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMg
MAorW1dvcmtlcl0gdGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6CitQQVNTIFtXb3JrZXJdIHdyaXRl
U2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlz
IHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBp
cyBmaXJzdCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZl
ci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxl
bmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2Uu
IgorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1Mg
W1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuVGhpcyBpcyBzZWNv
bmQgc2VudGVuY2UuIgorW1dvcmtlcl0gdGVzdCBmbHVzaCgpOgorUEFTUyBbV29ya2VyXSBmaWxl
U2l6ZSBpcyB0b3RhbFdyaXRlU2l6ZQorW1dvcmtlcl0gdGVzdCB0cnVuY2F0ZSgpOgorUEFTUyBb
V29ya2VyXSBmaWxlU2l6ZSBpcyA0CitbV29ya2VyXSB0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5n
IG9wZXJhdGlvbjoKK1tXb3JrZXJdIGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKQorUEFTUyBbV29y
a2VyXSBhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7ICJhdCIgOiAwIH0pIHRocmV3IGV4
Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBv
cGVyYXRpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5
bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI3MTZmNzFjODAzMGRjZDEwYzY1ZGEzODM2ZTRkOTVjOGMyNjNl
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nl
c3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0
V29ya2VyKCdyZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMnKTs8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440880</attachid>
            <date>2021-10-11 20:56:11 -0700</date>
            <delta_ts>2021-10-11 22:04:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211011205609.patch</filename>
            <type>text/plain</type>
            <size>80498</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLmUwN2Y2YmUzMmViNzYyMWY1YTU3ODU3ZmE1ZGE1ZmY0MjViYmRk
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9ubHkgbWFyayBuZWVkZWQgSlNPTkltcGw6Ok9i
amVjdEJhc2UgZnVuY3Rpb25zIHdpdGggV1RGX0VYUE9SVF9QUklWQVRFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzgyNmZjMGRlMTY4NTAwMGQ0ZjQwYjBlMzY2MTliNDgyYzJjODE1Ny4uODVmODE2MTFlMjZhNDRk
YjQ2ZmYzMmI4MDMzY2MxNmRlMzk2NWNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisy
MDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlYWQoKSBhbmQgd3JpdGUoKSBhY2Nv
cmRpbmcgdG8gcHJvcG9zYWw6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNzSGFuZGxlLm1kCisKKyAgICAgICAgVGVzdDog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdv
cmtlci5odG1sCisgICAgICAgIEFQSSB0ZXN0OiBGaWxlU3lzdGVtQWNjZXNzLlByb2Nlc3NDcmFz
aER1cmluZ1dyaXRlCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTEgIEtpZXQgSG8gIDx0
aG8yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1ha2Vwcm9wLnBsIHRvIG5vdCB0cmVhdCAi
aW5oZXJpdGVkOiBmYWxzZSIgcHJvcGVydGllcyBhcyBpbmhlcml0ZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBmZDliMTE0OGZjZjVlODBmMThlODgwNDAzOWQ0MjM3ZTkwMTlkZDFlLi42ZWY2Y2Fk
ODEzY2NiMDEzYTQ3YTE5YmRjMjFkYzc3NmNlNTM5OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgp
IGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oOiBB
ZGRlZC4KKwogMjAyMS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU11bR1BVIFByb2Nlc3NdIHN1cHBvcnQgYDxhdHRhY2htZW50PmAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNzMwZDE1MGM5ZGUyZTI2ZDgwY2I5MzUwM2Y1YzdjOWExYjllZjUxMy4uZTQ1MDU1Mjk0
NjdmZTY1OTE0YzYyZjljYjQ5YWI1MGYxNmE0ZDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBA
QAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBuZXR3b3JrIHByb2Nlc3Mgb3BlbiB0aGUg
ZmlsZSBhbmQgcGFzcyBmaWxlIGRlc2NyaXB0b3IgdG8gd2ViIHByb2Nlc3MsIHNvIHRoYXQgd2Vi
IHByb2Nlc3MgY2FuIHJlYWQgYW5kIAorICAgICAgICB3cml0ZSB0aGUgZmlsZSB3aXRob3V0IHNl
bmRpbmcgSVBDIG1lc3NhZ2VzLiBDdXJyZW50bHkgZ2V0dGluZyBmaWxlIHNpemUsIHRydW5jYXRp
bmcgZmlsZSBhbmQgc3luY2luZyBmaWxlIGFyZSAKKyAgICAgICAgc3RpbGwgcGVyZm9ybWVkIGJ5
IG5ldHdvcmsgcHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRp
b24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpj
bG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChJUEM6OlNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaDogQWRkZWQuCisgICAgICAgIChJ
UEM6OlNoYXJlZEZpbGVIYW5kbGU6OmhhbmRsZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVI
YW5kbGU6OlNoYXJlZEZpbGVIYW5kbGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9T
aGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwOiBBZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZF0p
OgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRGaWxlU3lzdGVtQWNjZXNzRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc3RvcmFnZUFQSUVuYWJsZWRdKToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0U3RvcmFnZUFQSUVuYWJsZWQ6XSk6CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX2FjY2Vzc0hhbmRsZUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0QWNjZXNzSGFuZGxlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMjEt
MTAtMTEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVIFByb2Nlc3NdIFVuaXF1ZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzIFBhcnQg
NTogVW5pcXVpZnkgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBhdCBlbnRyeSBwb2ludHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggZTQzMGYzMjUxNGI5MGIxOTM5MTc2MTAzNjY4MmJlYTNmYWU4
YjE4OS4uODNlNzY0ZTBhMWY1YWExMDNmZGYwNWYwNjhhMDM4YzUwNjBjMzJkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTEwNjUsMyArMTA2NSw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2Rl
ZmluZSBIQVZFX1BVQUNUSVZJVFlQUk9HUkVTU0NPTlRST0xMRVIgMQogI2VuZGlmCisKKyNpZiBf
X2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+KQorI2RlZmluZSBIQVZFX0ZJTEVQ
T1JUIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggZTZmZThk
YmZiYmEyM2RjMTRkYzExM2Q4OTc5M2VmNjc4MjQ0MGJiMi4uY2JlNDZmMjAxZjFlMmEwY2JlMzM5
YjAyMWY3N2NjZDE2YWYxM2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBA
IC01NywyOSArNTcsMjQgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3Vs
dC5yZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0VmFsdWUuZmly
c3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25n
TG9uZz4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmdldFNpemUoaWRlbnRpZmllcigpLCBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQp
KTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9p
ZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBz
aXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIGNvbm5lY3Rpb24oKS50cnVuY2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIHNpemUsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwot
ICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS50cnVuY2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIHNpemUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpmbHVzaChGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBt
dXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9
KTsKKyAgICBjb25uZWN0aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aAppbmRleCBhZmNlYTFmNzAxMzc5MDhmZTFjNzQwZTFmZmVlYjFkZTc4MTQ0MTU0Li43NDIwNzY4
Mzg4MjUxYWM2OGE1NWViYjM0ZDBhOGMyZmM1OWQ1ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRGaWxlKERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKLSAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25n
TG9uZz4mJik7Ci0gICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7Ci0gICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZs
dXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDljMDU3NjhkM2JmMThkZDE0MWM1OWRhOTFiZTVhZGM0
NTBhYWNkZDQuLjRiYTljNTgwZGExNmRlZDFkZWVjZmFmOGI0NDJmNjg4MTVmODRkNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcg
KzQ0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyPiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVz
aW5nIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1
c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAg
IHVzaW5nIEludGVnZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dWludDY0X3Q+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5YTg0Yjg0
OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2M2JkZTQy
NzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVh
dGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllcikp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNv
dXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJj
ZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogICAg
IDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAg
LCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+dHJ1
bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRp
bmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIs
IHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
VW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRTaXplKG1f
aWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMt
Pm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RG
TW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBt
X3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3Bl
bmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIs
IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJv
bWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYgKG1faXND
bG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAgICAgbV9z
b3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3ZWFrVGhp
cy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVlOwogfQog
CitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVy
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMg
b3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5k
bGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlmICghYnVm
ZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAg
ICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25zLmF0LCBG
aWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVzdWx0ID09
IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWls
ZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOwor
ICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJyYXlCdWZm
ZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+ZGF0YSgp
OworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVyKSB7Cisg
ICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJTb3VyY2Ug
c291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJjZS5sZW5n
dGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxlLCBkYXRh
LCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3MgfTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4g
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291
cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Rmls
ZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZp
bGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9w
ZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07
CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93
ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmls
ZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7Cisg
ICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAgQnVmZmVy
U291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byogZGF0YSA9
IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNlLmxlbmd0
aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwgZGF0YSwg
c2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsKKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAy
MzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRmMDk2M2U4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1LDE0ICsy
NSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
ewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAg
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRlKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC00OCwx
MyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAg
IHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJl
YWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJl
YWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gd3Jp
dGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJl
YWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhh
bmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9z
b3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1fcGVu
ZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQxMjFlMjVj
NzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVhYmFhZGEz
NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTMz
LDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBj
bG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0gQnVmZmVy
U291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CisgICAg
dW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZl
ciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0aW9uYXJ5
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMzc2NDEzMmFlZjNhYzAwNzEzNjQ4
OGU3MDZlNzk0OWRiODY2NzEwYi4uOGI4Y2E0YWFjNmQ1ODBkNzVjOTI0MzQzNzM4N2NlMGQwZmJh
ZmZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlm
aWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxl
Pj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vzc0hhbmRs
Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRs
ZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAgICAgICBh
dXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUp
IG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAg
Y3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlvbigpKTsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9u
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA2Y2U3ZmY0Njk1ZDlm
MGE2YmJmYTQ5ZDZjMWEzNDdhYzdkMjNjOTRhLi40ZGU0Mzk5MmNkYjgzNjg0MGRlOWExNjk1NjJi
OWYzMDE2MWE4MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZElzU2Ft
ZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAgICAgdm9p
ZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlkQ3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQgZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6
cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJhY2soQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAgdm9pZCBj
b21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVp
bnQ2NF90PiYmIHJlc3VsdCk7CiAgICAgdm9pZCBkaWRHZXRIYW5kbGVOYW1lcyhDYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMjZmMTRiNWNl
OWNhYjkzMWEzMzFlNTJiOTAwMGFhNmFmODQyMzY1Li4zZTkwNTNlNGM4YzI3MjBlNjdlYzI3NzNh
NWEzMjA1OWZlMDI3MDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTQsNiArMTU0LDcgQEAKIAkJNzFCMTE0MjAyNjgyM0FD
RDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQjExNDFGMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1Q
cmV2aWV3U1BJLmggKi87IH07CiAJCTdBMzZEMEY5MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25D
cnlwdG9TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBMzZEMEY4MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25DcnlwdG9TUEkuaCAqLzsgfTsKIAkJ
N0EzQTZBODAyMENBREI0NzAwMzE3QUFFIC8qIE5TSW1hZ2VTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBM0E2QTdGMjBDQURCNDYwMDMxN0FBRSAv
KiBOU0ltYWdlU1BJLmggKi87IH07CisJCTkzNDY4RTY3MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxl
UG9ydFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM0NjhFNjYyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi87IH07CiAJCTkzQjM4
RUJFMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQkQyNTgyMUNCNjAwMTk4RTYzIC8q
IFNwZWVjaFNvZnRMaW5rLmggKi87IH07CiAJCTkzQjM4RUMwMjU4MjFDRDgwMDE5OEU2MyAvKiBT
cGVlY2hTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQjM4RUJGMjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLzsg
fTsKIAkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQzEyNTgyMUQyMjAwMTk4
RTYzIC8qIFNwZWVjaFNQSS5oICovOyB9OwpAQCAtMzc2LDYgKzM3Nyw3IEBACiAJCTcxQjExNDFG
MjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN5c3RlbVByZXZpZXdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0EzNkQwRjgyMjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tb25DcnlwdG9TUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0EzQTZBN0YyMENBREI0NjAwMzE3QUFFIC8qIE5TSW1h
Z2VTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNJbWFnZVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyog
RmlsZVBvcnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVBvcnRT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMzhFQkQyNTgyMUNCNjAwMTk4
RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUJG
MjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0IzOEVDMTI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTM0LDYgKzUzNiw3IEBACiAJCQkJREY4M0UyMDgyNjM3MzRGMTAw
MDgyNUVGIC8qIENyeXB0b0tpdFByaXZhdGVTUEkuaCAqLywKIAkJCQkwQzJEQTEyNTFGM0JFQjQ5
MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVTUEkuaCAqLywKIAkJCQkxRDEyQ0M0QTI0MTFC
Q0FFMDBGREEwQTMgLyogRmVhdHVyZUZsYWdzU1BJLmggKi8sCisJCQkJOTM0NjhFNjYyNzE0QTdD
RDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi8sCiAJCQkJQ0U1NjczODYyMTUxQTdCOTAwMkY5
MkQ3IC8qIElPS2l0U1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLApAQCAtOTAwLDYgKzkwMyw3IEBACiAJCQkJQTExNzVCNTcxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyRDlFNzMx
RUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQx
MkNDNEIyNDExQkNBRTAwRkRBMEEzIC8qIEZlYXR1cmVGbGFnc1NQSS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM0NjhFNjcyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNDQyOTE2MDFGQTUyNjFFMDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFwaGlj
c1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzAyMkVGRjIyQ0ZFQzUzMDA2REYw
MUIgLyogR3VuemlwLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZmUwMDkwYjNmNGIzZGRhM2Y2
NWY4NTY4OTZhMjI0N2YwZGMxMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoRklMRVBPUlQpCisKK2V4dGVybiAiQyIgewor
I2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KK30KKworI2Vsc2UKKworZXh0ZXJuICJD
IiB7CitpbnQgZmlsZXBvcnRfbWFrZXBvcnQoaW50LCBtYWNoX3BvcnRfdCopOworaW50IGZpbGVw
b3J0X21ha2VmZChtYWNoX3BvcnRfdCk7Cit9CisKKyNlbmRpZiAvLyBfX2hhc19pbmNsdWRlKDxT
eXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCAy
ODgyNDRmOGRmMGJhNGM0ZTFiN2IzODBkMzYwOTJkMzViMGI0YzhhLi4wMjc3MzdhMmI0MGIyYzI3
MGVhYTY0YjhhNWY5ZTY0MzAxZWU4Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAg
LTMxLDkgKzMxLDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yIDogdWludDhfdCB7CisgICAgQmFja2VuZE5vdFN1cHBvcnRlZCwKICAg
ICBGaWxlTm90Rm91bmQsCi0gICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNhdGlv
biwKKyAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNo
LAogICAgIFVua25vd24KQEAgLTQyLDE2ICs0MywxOCBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IgOiB1aW50OF90IHsKIGlubGluZSBXZWJDb3JlOjpFeGNlcHRpb24gY29udmVy
dFRvRXhjZXB0aW9uKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgZXJyb3IpCiB7CiAgICAgc3dpdGNo
IChlcnJvcikgeworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1
cHBvcnRlZDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5v
dFN1cHBvcnRlZEVycm9yLCAiQmFja2VuZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9u
IiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kOgogICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9
OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2Rp
ZmljYXRpb25FcnJvciB9OwotICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1p
c21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlw
ZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJv
ciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkludmFsaWRTdGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OkludmFsaWRTdGF0ZUVycm9yIH07CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpUeXBlTWlzbWF0Y2g6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJD
b3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25v
d246CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc0LDkgKzc3LDEwIEBAIG5hbWVzcGFjZSBX
VEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IsCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQsCi0gICAgICAgIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDc3
MmEwMDlmZTFhMDE5MDViMjA1OTQyMzRmYzU2ZmYzNzQwYjZmOWIuLjA4ZjYwY2MxMmRlOTE0OTRj
MmMwN2MwM2Y3YTcwMWY3MjM2MTQxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNoYXJl
ZEZpbGVIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC0xNDMsNyArMTQ0LDcgQEAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHYKICAgICByZXR1
cm4gcmVzdFBhdGguc3BsaXQocGF0aFNlcGFyYXRvcik7CiB9CiAKLUV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQor
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCkKIHsKICAgICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwpAQCAtMTUyLDkgKzE1
MywyMCBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+CiAgICAgaWYgKCFhY3F1aXJlZCkKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRT
dGF0ZSk7CiAKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmls
ZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGlmIChtX2hhbmRsZSA9PSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRv
IGlwY0hhbmRsZSA9IElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKG1faGFuZGxlKTsKKyAg
ICBpZiAoIWlwY0hhbmRsZSkgeworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5k
bGUpOworICAgICAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGU7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkKTsKKyAgICB9CisKICAgICBBU1NFUlQoIW1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSk7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKLSAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICByZXR1cm4g
c3RkOjpwYWlyIHsgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSwgV1RGTW92ZSgqaXBjSGFuZGxl
KSB9OwogfQogCiBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCkBAIC0xODAsMTIgKzE5
Miw4IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdlYkNvcmU6CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nl
c3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsK
IAotICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lz
dGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7Ci0gICAgYXV0byBjbG9zZUZpbGVTY29wZSA9
IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRs
ZSk7Ci0gICAgfSk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmls
ZShoYW5kbGUsIHNpemUpOworICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRy
dW5jYXRlRmlsZShtX2hhbmRsZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCkBAIC0yMDAsNyArMjA4LDEx
IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmZsdXNoKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAot
ICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9y
bSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVt
OjpmbHVzaEZpbGUobV9oYW5kbGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4g
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwogICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiB9CiAKQEAgLTIxMiw2ICsyMjQsMTAgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmkKICAg
ICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFu
ZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duOwogCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0
ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlOworCiAgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBt
X2lkZW50aWZpZXIpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9w
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBkOThlNGU5MzI4ZDIxZjAyNGIx
M2I2MjNjZDQxOTlkZDFjNjZiOTg4Li5iYmRmZDRjZWUxYzcxMjY4MjdiNDBiMTE5NmM0Mzc3YmNm
MTdjOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMzAsNiArMzAsMTAgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgU2hh
cmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjsKQEAgLTUzLDcgKzU3LDggQEAgcHVibGljOgogICAgIEV4cGVjdGVk
PFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRIYW5kbGVOYW1lcygp
OwogICAgIEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgYm9vbD4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEhhbmRsZShJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUlu
Zm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUlu
Zm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAg
ICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CkBAIC02OCw2ICs3Myw3IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5
bmNBY2Nlc3NIYW5kbGU7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFu
ZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDJlY2Zl
NDM3ZDAxOTdjYTIyMWZmNTIyODgyM2U3NzM3MzcyYTZjZTYuLjU1MTZmYmI2Mjk0N2Y5OGRkZGU1
OTIxY2Q3M2ZlYTMwMDQ3YTFhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0y
MjYsNyArMjI2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihoYW5kbGUtPnJlc29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuaAppbmRleCA2YjMzNjA2MDI4ZDgwMWQ0ODQ2MmVhNmU0MDZlNmI0Mjk1
N2NmYTc0Li44ODQ1NTlhZDk3NjgyOTQ3OTVlZGY1Njg2NzU2MmFiYzZkOTExMjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3
ICs3NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25u
ZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwotICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+KT4mJik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFp
cjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hh
cmVkRmlsZUhhbmRsZT47CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVj
dGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAg
dm9pZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNo
Rm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggODZjYjI2YWNhOWVj
YTIzNWMyNDc1YjkxNTc1YjYxNzFkODdjNmQ5My4uZWZlNTc0ODZjMWIyZDcxOGQxMzEyOGRmMDVl
NDUyMmEwNjU5OWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCkBAIC0zMyw3ICszMyw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
dGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
dWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NDJiODg0ZTMxYmY3Nzc2MzMzNzQyYzdhYTVmM2Q1ZmUxMjRmNDcxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRs
ZS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTaGFyZWRGaWxlSGFuZGxlLmgiCisKK25hbWVzcGFjZSBJUEMgeworCitzdGQ6
Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQoreworI2lmIEhBVkUoRklMRVBPUlQp
CisgICAgcmV0dXJuIFNoYXJlZEZpbGVIYW5kbGUgeyBoYW5kbGUgfTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQor
CisjaWYgIVBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNoYXJlZEZpbGVIYW5kbGU6OmVuY29kZShF
bmNvZGVyJikgY29uc3QKK3sKK30KKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBT
aGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUoRGVjb2RlciYpCit7CisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdAorfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFhZjQwYmZkYmU5
NTYyYWM4M2Q2YTY0NGEyMGI0NjliNDdkYTgxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaApAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUg
PHd0Zi9GaWxlU3lzdGVtLmg+CisKK25hbWVzcGFjZSBJUEMgeworCitjbGFzcyBEZWNvZGVyOwor
Y2xhc3MgRW5jb2RlcjsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgU2hhcmVkRmlsZUhhbmRsZSgpID0gZGVmYXVsdDsK
KyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKCkgeyByZXR1cm4gbV9o
YW5kbGU7IH0KKworICAgIHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKworICAgIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGRlY29kZShEZWNvZGVyJik7CisgICAg
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IFNoYXJlZEZpbGVIYW5kbGUoRmlsZVN5c3RlbTo6UGxh
dGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKKyAgICAgICAgOiBtX2hhbmRsZShoYW5kbGUpCisgICAg
eworICAgIH0KKworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIElQQworCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL2Nv
Y29hL1NoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9jb2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMDFmZWE5Nzky
YjA0MjE0OThkNTE4YmJhOTgwYWIyMGMxNWJiN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U2hhcmVkRmlsZUhhbmRsZS5oIgorCisjaW5jbHVkZSAiTWFjaFBvcnQuaCIKKyNpbmNsdWRlIDxw
YWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmg+CisKK25hbWVzcGFjZSBJUEMgeworCit2b2lkIFNo
YXJlZEZpbGVIYW5kbGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIG1h
Y2hfcG9ydF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICBmaWxlcG9ydF9t
YWtlcG9ydChtX2hhbmRsZSwgJmZpbGVwb3J0KTsKKyAgICBlbmNvZGVyIDw8IE1hY2hQb3J0KGZp
bGVwb3J0LCBNQUNIX01TR19UWVBFX01PVkVfU0VORCk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8U2hh
cmVkRmlsZUhhbmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgTWFjaFBvcnQgbWFjaFBvcnQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYWNo
UG9ydCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgCisgICAgcmV0dXJuIFNo
YXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggN2UyM2Q2MDUyYzQ1MjRm
MjdiNzA0MjAyYWEwZTdjOTE3ZjFkYjkwNS4uYTQ1MGFkNTMzYWQ2OWMxZTgxZmQ1N2E2NWU2YzM3
Njg3Y2NkNjhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xNzMsNiArMTczLDcgQEAgUGxhdGZvcm0vSVBD
L1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0
cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbUNv
bm5lY3Rpb25CdWZmZXIuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rp
b25Xb3JrUXVldWUuY3BwIEBuby11bmlmeQorUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUu
Y3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwIEBu
by11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgQG5vLXVuaWZ5CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0K
aW5kZXggNzE2NGY4ODYwMDc4ZTIwNzFhYjhjNWZkNDY2ODhmMzRkZmFhYWYyMi4uNGNmOTY1NDFi
YmQxNGY3ZGI5ZmYwN2FjMzM3YzI4ZTViMmU1ODM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTE1MTcsNiArMTUxNywz
NiBAQCBzdGF0aWMgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FZGl0YWJsZUxpbmtC
ZWhhdmlvcihfV0tFZGl0YWJsZUxpbmtCZWhhdgogICAgIF9wcmVmZXJlbmNlcy0+c2V0UmVxdWly
ZXNQYWdlVmlzaWJpbGl0eVRvUGxheUF1ZGlvKHJlcXVpcmVzKTsKIH0KIAorLSAoQk9PTClfZmls
ZVN5c3RlbUFjY2Vzc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5maWxlU3lz
dGVtQWNjZXNzRW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRGaWxlU3lzdGVtQWNjZXNzRW5h
YmxlZDooQk9PTClmaWxlU3lzdGVtQWNjZXNzRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+
c2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQoZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQpOworfQor
CistIChCT09MKV9zdG9yYWdlQVBJRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMt
PnN0b3JhZ2VBUElFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldFN0b3JhZ2VBUElFbmFibGVk
OihCT09MKXN0b3JhZ2VBUElFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRTdG9yYWdl
QVBJRW5hYmxlZChzdG9yYWdlQVBJRW5hYmxlZCk7Cit9CisKKy0gKEJPT0wpX2FjY2Vzc0hhbmRs
ZUVuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5hY2Nlc3NIYW5kbGVFbmFibGVk
KCk7Cit9CisKKy0gKHZvaWQpX3NldEFjY2Vzc0hhbmRsZUVuYWJsZWQ6KEJPT0wpYWNjZXNzSGFu
ZGxlRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0QWNjZXNzSGFuZGxlRW5hYmxlZChh
Y2Nlc3NIYW5kbGVFbmFibGVkKTsKK30KKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXgg
NTA2MDNhMWI5ZjJmNzg5YjU2MGMwM2ZkYmNiYTk0NzVlNDk0YzJmYy4uNTk5NjliNjRhNjVlYjhl
NWYwMTQwM2JiNmM3MzQ5ZDgzODIyZWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTE3Myw2ICsx
NzMsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdv
cml0aG0pIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhU2Vzc2lvbkVu
YWJsZWQ6KSBCT09MIF9tZWRpYVNlc3Npb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0V4dGVu
c2libGVTU09FbmFibGVkLCBzZXR0ZXI9X3NldEV4dGVuc2libGVTU09FbmFibGVkOikgQk9PTCBf
ZXh0ZW5zaWJsZVNTT0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzUGFnZVZpc2li
aWxpdHlUb1BsYXlBdWRpbzopIEJPT0wgX3JlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlBdWRp
byBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQ6KSBCT09MIF9maWxl
U3lzdGVtQWNjZXNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RvcmFn
ZUFQSUVuYWJsZWQ6KSBCT09MIF9zdG9yYWdlQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QWNjZXNzSGFuZGxlRW5hYmxlZDopIEJPT0wgX2FjY2Vzc0hhbmRsZUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRXZWJHTEVuYWJsZWQ6KSBCT09MIF93ZWJHTEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1YjMyZWJhMjIwOGE0ZDg0OWM0NTcwNzFiY2E0Mzg5NjI1MjE3MGU1Li4x
MTlhYTUzZWNiMzcwY2E4MWMwNjhkOGY5ODA5ZTBmZjdlNTliZWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzIsNiArMTQ3Miw3
IEBACiAJCTkzMDg1RERGMjZFNUJDRjEwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDg1RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJOTMwODVERTAyNkU1QkNGRDAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMwODVEQzQyNkUxQkJCRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFu
YWdlci5oICovOyB9OwogCQk5MzA4NURFMTI2RTVCRDEzMDAwRUM2QTcgLyogTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXJNZXNzYWdlcy5oICovOyB9OworCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyogU2hhcmVk
RmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLzsgfTsK
IAkJOTMxMkJBRDUyNkYzM0MyNjAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTA3NTAy
NkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5
MzEyQkFENjI2RjMzQzI5MDBGRERGNUYgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUzMjZGMDZB
QjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovOyB9OwogCQk5MzFBMUJF
MjI2Rjg3MDA5MDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTFCRTAyNkY4NUMzMjAwODFB
N0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLzsgfTsKQEAgLTE0ODQsNiArMTQ4NSw4
IEBACiAJCTkzM0U4MzVBMjNBMUFFMjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTky
M0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi87IH07CiAJCTkzM0U4
MzVCMjNBMUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0Ex
QURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTkzNDI1ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODk4MjU1
QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsgfTsKKwkJOTM0
NjhFNkIyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NjhFNkEyNzE0QUY0NzAwOTk4
M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwICovOyB9OworCQk5MzQ2OEU2RDI3MTRBRjg4MDA5
OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBTaGFy
ZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovOyB9OwogCQk5MzRCNzI0NDE5RjVCOUJFMDBBRTk2RDYg
LyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51
SXRlbVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTM1NDI0MkMyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oICovOyB9OwogCQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87IH07
CkBAIC00OTQ5LDYgKzQ5NTIsNyBAQAogCQk5MzA4NURDQzI2RTJFOTAyMDAwRUM2QTcgLyogTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDg1RENEMjZFMkU5MDIwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRGaWxlSGFu
ZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUwMjZGMDYzMTAwMDQ0
NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMx
QTA3NTIyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NjcsNiArNDk3MSw4IEBACiAJ
CTkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5MzQyNTg4RjI1NTVEQ0E1MDA1OUVFREQg
LyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVk
aWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2QTI3MTRBRjQ3MDA5OTgzRTMg
LyogU2hhcmVkRmlsZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTaGFyZWRGaWxlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM0NjhFNkMyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlQ29jb2Eu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRCNzI0MzE5RjVCOUJFMDBBRTk2
RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzU0MjQyQTI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU0MjQy
QjI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzU4LDYgKzcz
NjQsOCBAQAogCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5
LmggKi8sCiAJCQkJMkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UuY3BwICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlLmggKi8sCisJCQkJOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8q
IFNoYXJlZEZpbGVIYW5kbGUuY3BwICovLAorCQkJCTkzMTIyQzg1MjcxMENDREUwMDFEODE5RiAv
KiBTaGFyZWRGaWxlSGFuZGxlLmggKi8sCiAJCQkJN0I3MzEyMzYyNUNDODUyNDAwM0IyNzk2IC8q
IFN0cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwICovLAogCQkJCTdCNzMxMjMzMjVDQzg1MjMwMDNC
Mjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJN0I3MzEyMzQyNUNDODUy
NDAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwICovLApAQCAtMTExMzAsNiAr
MTExMzgsNyBAQAogCQkJCTFBNkQ4NkJGMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5j
cHAgKi8sCiAJCQkJMUE2RDg2QzAxREY3NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmggKi8s
CiAJCQkJQkNDNTZGNzcxMTU5OTU3RDAwMUNDQUY5IC8qIE1hY2hQb3J0LmggKi8sCisJCQkJOTM0
NjhFNkMyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEy
NjU0LDYgKzEyNjYzLDcgQEAKIAkJCQlBMTgzNDk0MjI0RUY0Njc4MDBCREM5QTggLyogU2hhcmVk
QnVmZmVyQ29weS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGRjZFRjJBMzEzMEMxMzAxNzY3
IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QTZE
NkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRN
ZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBT
aGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMxRjdE
QUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xNDYxNiw2ICsxNDYyNiw4IEBACiAJCQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNo
YXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3MUM4
OEUzQ0QgLyogU2hhcmVkQnVmZmVyQ29weS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxODEy
NDVCNTQ5MzQzQkM5ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk5MzQ2OEU2QjI3MTRBRjQ3MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRs
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzQ2OEU2RDI3MTRBRjg4MDA5OTgzRTMgLyogU2hh
cmVkRmlsZUhhbmRsZUNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQURBRkI2MjM2OEU2
QTgwMDlDQjc3NiAvKiBTaGFyZWRNZW1vcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFC
QjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNjAzMTI3YmU2
Nzg0OTgxZDMwYWE0YTc2MjE5NzU1ZDNlZjM2MjI1Yy4uOTY4NWZjZmE4ZTljNTZiYTI4NjY5OWJh
MTIxYTA3MGM0MzJiMjNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKQEAgLTEyMSw3ICsxMjEsOCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SAogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVz
dWx0VmFsdWUgPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3Rk
OjpwYWlyIHsgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZC5oYW5kbGUoKSB9
KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5h
cHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IGFhNWE4ZGQxNzQzYTFjYjk0ZDM0YmZhNWFjZGE2
MGY2NWQ1ZjNkM2MuLjZiMzFiNmVkNmI2N2YwYmViMDYxYzdmYTJkY2ViZTI1MTY4ZjQ3Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4KQEAgLTE5MzYsNiArMTkzNiw3IEBACiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNf
Y29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19zZW5kdG9fbm9j
YW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZnNnZXRwYXRoKQorICAgICAgICAo
c3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2VmZCkKICAgICAgICAgKHN5c2NhbGwtbnVt
YmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19n
dWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3VhcmRlZF9jbG9z
ZV9ucCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAzZTQzYmNhMzFiYmZlYWMxMjc1Mzc0NGNjNWYzYzBjMWUwYzllMDBlLi41MTU4NjQ1NjU3MGI0
ZDAxMzQ2ZjJjNmZkNmFlNjZiMTZhOWI4MzU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTEgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5
c3RlbUFjY2Vzcy5tbTogQWRkZWQuCisgICAgICAgICgtW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdl
SGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6
CisgICAgICAgICh0ZXN0KToKKwogMjAyMS0xMC0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2xpZ2h0bHkgYmV0dGVyIGlkaW9tIGZvciBBUkMgZGVidWcgYXV0
b3JlbGVhc2Ugd29ya2Fyb3VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNzVhNWQwZjky
ODk4NzRmYWEwNTYzN2U1YzA4YWUyNmE5ZDY0MzY5Li44MDFlNDc0MDU4NzJlODA5MDU4ZDA0M2Qy
YTZkZjczNWYwY2ViNzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODU0LDYgKzg1NCw3
IEBACiAJCTkzM0Q2MzFEMUZDQjc2MjAwMDMyRUNENiAvKiBIYXNoZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRDYzMUIxRkNCNzYxODAwMzJF
Q0Q2IC8qIEhhc2hlci5jcHAgKi87IH07CiAJCTkzNDI1ODlDMjU1QjYwOUIwMDU5RUVERCAvKiBT
cGVlY2hSZWNvZ25pdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNDI1ODlCMjU1QjYwOUEwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5t
bSAqLzsgfTsKIAkJOTM0MjU4OUUyNTVCNkExMjAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0aW9u
LXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODlEMjU1QjY2QTAwMDU5RUVERCAv
KiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCAqLzsg
fTsKKwkJOTM0NjhFNkYyNzE0QjRGMjAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2RTI3MTRC
NEYxMDA5OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAqLzsgfTsKIAkJOTM1Nzg2Q0MyMEY2
QTI3MDAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNTIwRjY5RkVEMDA0MERD
MUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsICovOyB9OwogCQk5MzU3ODZDRDIwRjZBMjkxMDAw
MENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4
ZWREQi5zcWxpdGUzICovOyB9OwogCQk5MzU3ODZDRTIwRjZBMkExMDAwMENERkMgLyogSW5kZXhl
ZERCLnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRl
My1zaG0gKi87IH07CkBAIC0yNTgyLDYgKzI1ODMsNyBAQAogCQk5MzNENjMxQjFGQ0I3NjE4MDAz
MkVDRDYgLyogSGFzaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhhc2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1ODlCMjU1QjYw
OUEwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzQyNTg5RDI1NUI2NkEwMDA1OUVFREQgLyogc3BlZWNocmVjb2duaXRp
b24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAic3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2RTI3MTRCNEYxMDA5OTgz
RTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEZpbGVTeXN0ZW1BY2Nlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRo
ID0gIkluZGV4ZWREQi5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzNEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0g
IkluZGV4ZWREQi5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NEZBNUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVk
REIuc3FsaXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1MTAsNiArMzUxMiw3
IEBACiAJCQkJNkIyNUE3NTEyNURDOEQ0RTAwNzA3NDRGIC8qIEV2ZW50QXR0cmlidXRpb24ubW0g
Ki8sCiAJCQkJQ0RBMjlCMjgyMEZEMkE5OTAwRjE1Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25FbnRl
clBpUC5tbSAqLywKIAkJCQkxRDEyQkVCRjI0NUJFRjg1MDA0QzBCN0EgLyogRXhpdFBpUE9uU3Vz
cGVuZFZpZGVvRWxlbWVudC5tbSAqLywKKwkJCQk5MzQ2OEU2RTI3MTRCNEYxMDA5OTgzRTMgLyog
RmlsZVN5c3RlbUFjY2Vzcy5tbSAqLywKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERBNDYgLyog
RmluZEluUGFnZS5tbSAqLywKIAkJCQk1MTI0MkNENDIzNzRFNjFFMDBFRUQ5QzEgLyogRmluZElu
UGFnZUFQSS5tbSAqLywKIAkJCQkxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RWaXN1
YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tICovLApAQCAtNTU2OCw2ICs1NTcxLDcgQEAKIAkJCQk3
Q0NFN0VGMTFBNDExQUU2MDA0NDdDNEMgLyogRmFpbGVkTG9hZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1Nzk2NTFFNzIxNkJGREVEMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdBMzJENzRBMUYwMjE1MTUwMDE2MkM0NCAvKiBGaWxlTW9uaXRv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzQ2OEU2RjI3MTRCNEYyMDA5OTgzRTMgLyogRmls
ZVN5c3RlbUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUYzMUE0MTFBRTYwMDQ0
N0M0QyAvKiBGaW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEJCMUQwQTY1MDAwMEZF
QkNGMyAvKiBGaW5kSW5QYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyNDJDRDUyMzc0RTYy
NTAwRUVEOUMxIC8qIEZpbmRJblBhZ2VBUEkubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vz
cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMGZjZDMxYjhjYjM1MTExYWRhNjFhYTcyNDJiZTQ1NjRjNTUyMmE1
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9GaWxlU3lzdGVtQWNjZXNzLm1tCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0
ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFVSTFNjaGVtZUhhbmRsZXIuaCIK
KyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRl
Lmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCitzdGF0aWMgYm9vbCBy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2U7CitzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4g
bGFzdFNjcmlwdE1lc3NhZ2U7CisKK0BpbnRlcmZhY2UgRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VI
YW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIKKworLSAodm9pZCl1c2Vy
Q29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRD
b250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNz
YWdlCit7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKKyAgICBsYXN0U2NyaXB0
TWVzc2FnZSA9IG1lc3NhZ2U7Cit9CisKK0BlbmQKKworc3RhdGljIE5TU3RyaW5nICptYWluRnJh
bWVTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKKyAgICBmdW5jdGlvbiBzdGFydCgpIHsgXAorICAgICAg
ICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcignd29ya2VyLmpzJyk7IFwKKyAgICAgICAgd29ya2Vy
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IFwKKyAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEpOyBc
CisgICAgICAgIH07IFwKKyAgICB9IFwKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGFnZSBpcyBsb2FkZWQnKTsgXAorICAgIDwvc2Ny
aXB0PiI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3b3JrZXJCeXRlcyA9IFIiVEVTVFJFU09VUkNF
KAorYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJvb3RI
YW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAg
dmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoJ2ZpbGUtc3lz
dGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsKKyAgICAgICAgdmFyIGFjY2Vz
c0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAg
ICAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKKyAgICAgICAgdmFyIHdyaXRl
U2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZShidWZmZXIsIHsgImF0IiA6IDAgfSk7CisgICAgICAg
IHNlbGYucG9zdE1lc3NhZ2UoJ3N1Y2Nlc3M6IHdyaXRlICcgKyB3cml0ZVNpemUgKyAnIGJ5dGVz
Jyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ2Vycm9y
OiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlKTsKKyAgICAgICAgY2xvc2UoKTsK
KyAgICB9Cit9Cit0ZXN0KCk7CispVEVTVFJFU09VUkNFIjsKKworVEVTVChGaWxlU3lzdGVtQWNj
ZXNzLCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBh
ZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJd
OworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Cisg
ICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0gWUVTOworICAgIHByZWZl
cmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9zdG9y
YWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNjaGVtZUhhbmRsZXIgPSBhZG9wdE5TKFtb
VGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2NoZW1lSGFuZGxlciBz
ZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1l
VGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9uc2U7
CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGE7CisgICAgICAgIE5TVVJMICpyZXF1ZXN0
VVJMID0gdGFzay5yZXF1ZXN0LlVSTDsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3ZWJraXQ6
Ly93ZWJraXQub3JnL3dvcmtlci5qcyIsIHJlcXVlc3RVUkwuYWJzb2x1dGVTdHJpbmcpOworICAg
ICAgICByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVS
TDpyZXF1ZXN0VVJMIE1JTUVUeXBlOkAidGV4dC9qYXZhc2NyaXB0IiBleHBlY3RlZENvbnRlbnRM
ZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgICAgICBkYXRhID0gW05TRGF0YSBk
YXRhV2l0aEJ5dGVzOndvcmtlckJ5dGVzIGxlbmd0aDpzdHJsZW4od29ya2VyQnl0ZXMpXTsKKyAg
ICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKKyAgICAgICAg
W3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0YS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZEZpbmlz
aF07CisgICAgfV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hl
bWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIndlYmtpdCJdOworCisgICAgLy8gbG9hZCBm
aXJzdCB3ZWIgdmlldyAmIHN0YXJ0IHRlc3QKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOm1haW5GcmFtZVN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
d2Via2l0Oi8vd2Via2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7
CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicGFnZSBpcyBsb2FkZWQiLCBbbGFzdFNjcmlwdE1lc3Nh
Z2UgYm9keV0pOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIg
Y29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7
CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNj
cmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgYXV0byBzZWNvbmRXZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbc2Vjb25kV2ViVmll
dyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAIndlYmtpdDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3Jp
cHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEFjY2VzcyBoYW5kbGUgY2Fubm90IGJlIGNyZWF0
ZWQgd2hlbiB0aGVyZSBpcyBhbiBvcGVuIG9uZS4KKyAgICBbc2Vjb25kV2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJlcnJvcjogSW52
YWxpZFN0YXRlRXJyb3IgLSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIiwgW2xh
c3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIE9wZW4gYWNjZXNzIGhhbmRsZSBzaG91
bGQgYmUgY2xvc2VkIHdoZW4gd2ViIHByb2Nlc3MgY3Jhc2hlcy4KKyAgICBbd2ViVmlldyBfa2ls
bFdlYkNvbnRlbnRQcm9jZXNzXTsKKworICAgIFtzZWNvbmRXZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJF
UShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsK
K30KKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGQyODVhODY5
Y2I2ZWRkYzgwYTRlYzdkOTQxNmVkZWVkZTcxZTJjMy4uZmQ3OGMyOWE2ODdhYjAyODMwM2I1ZjNj
OWQ2ODJmZmU1N2NjMzAxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1yZWFkLXdyaXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgorICAg
ICAgICAoYXJyYXlCdWZmZXJUb1N0cmluZyk6CisgICAgICAgIChzdHJpbmdUb0FycmF5QnVmZmVy
KToKKyAgICAgICAgKHdyaXRlKToKKyAgICAgICAgKHJlYWQpOgorICAgICAgICAoYXN5bmMgdGVz
dCk6CisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIu
aHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ09PUF0gQ3Jhc2ggdW5kZXIgUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU6
OmFkZEVuZHBvaW50RnJvbURpY3Rpb25hcnkoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13
cml0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMv
c3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlOWUwYzJiMDkw
M2IzMjllNGJkYTMwZDlhZWZjZDZjYjBkN2EwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxl
LXJlYWQtd3JpdGUuanMKQEAgLTAsMCArMSw5NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
eworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7Cit9
CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9m
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxl
U2l6ZSwgd3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRU
ZXh0LCByZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0g
MDsKKworZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsKKyAg
ICAgICAgdGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOworfQor
CitmdW5jdGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4gU3Ry
aW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7Cit9
CisKK2Z1bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBidWZm
ZXIgPSBuZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVyVmll
dyA9IG5ldyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3Ry
aW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hhckNv
ZGVBdChpKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3JpdGUo
YWNjZXNzSGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdU
b0FycmF5QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3
cml0ZUJ1ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUi
LCAid3JpdGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisK
K2Z1bmN0aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVhZEJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hhbmRs
ZS5yZWFkKHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJyZWFk
U2l6ZSIsICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZmZXJU
b1N0cmluZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0
cnkgeworICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdl
dERpcmVjdG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0ZXN0
LgorICAgICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1oYW5k
bGUudHh0IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxlSGFu
ZGxlID0gYXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5kbGUu
dHh0IiwgeyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2Fp
dCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNpemUg
PSBhd2FpdCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNp
emUiLCAiMCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToiKTsK
KyAgICAgICAgdG90YWxXcml0ZVNpemUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCAwLCAiVGhpcyBp
cyBmaXJzdCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRs
ZSwgMCwgdG90YWxXcml0ZVNpemUpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
YWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHRvdGFsUmVhZFNp
emUgKz0gcmVhZFRleHQubGVuZ3RoICogMjsKKworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3
cml0ZShhY2Nlc3NIYW5kbGUsIHRvdGFsV3JpdGVTaXplLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVu
Y2UuIik7CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIHRvdGFsUmVhZFNp
emUsIHRvdGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSk7CisgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAg
ICAgICAgcmVhZFRleHQgPSByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90YWxXcml0ZVNpemUpOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgZmlyc3Qg
c2VudGVuY2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIik7CisKKyAgICAgICAgZGVidWcoInRl
c3QgZmx1c2goKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAg
ICAgIGZpbGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hv
dWxkQmUoImZpbGVTaXplIiwgInRvdGFsV3JpdGVTaXplIik7CisKKyAgICAgICAgZGVidWcoInRl
c3QgdHJ1bmNhdGUoKToiKTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLnRydW5jYXRlKDQp
OworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNpemUg
PSBhd2FpdCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmlsZVNp
emUiLCAiNCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHdyaXRlKCkgd2l0aCBwZW5kaW5nIG9w
ZXJhdGlvbjoiKTsKKyAgICAgICAgZXZhbEFuZExvZygiYWNjZXNzSGFuZGxlLnRydW5jYXRlKDAp
Iik7CisgICAgICAgIHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNCk7CisgICAgICAgIHNo
b3VsZFRocm93KCJhY2Nlc3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IFwiYXRcIiA6IDAgfSki
KTsKKworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgZmluaXNo
VGVzdCgpOworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGZpbmlzaFRlc3QoZXJyb3Ip
OworICAgIH0KK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWNk
NTliNzM4ZjIxNDQwOGU4ZDZhMGJjOWE3NzBiODMxMjEwMDQ2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1y
ZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorW1dvcmtlcl0g
VGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBvZiBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdv
cmtlcjogcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCitQQVNTIFtX
b3JrZXJdIGZpbGVTaXplIGlzIDAKK1tXb3JrZXJdIHRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOgor
UEFTUyBbV29ya2VyXSB3cml0ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBb
V29ya2VyXSByZWFkU2l6ZSBpcyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0g
cmVhZFRleHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSB3cml0
ZVNpemUgaXMgd3JpdGVCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBp
cyByZWFkQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMg
aXMgc2Vjb25kIHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZl
ci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNl
bnRlbmNlLlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIKK1tXb3JrZXJdIHRlc3QgZmx1c2goKToK
K1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgdG90YWxXcml0ZVNpemUKK1tXb3JrZXJdIHRlc3Qg
dHJ1bmNhdGUoKToKK1BBU1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgNAorW1dvcmtlcl0gdGVzdCB3
cml0ZSgpIHdpdGggcGVuZGluZyBvcGVyYXRpb246CitbV29ya2VyXSBhY2Nlc3NIYW5kbGUudHJ1
bmNhdGUoMCkKK1BBU1MgW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyAi
YXQiIDogMCB9KSB0aHJldyBleGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEFjY2VzcyBoYW5k
bGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
ZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzE2ZjcxYzgwMzBkY2QxMGM2
NWRhMzgzNmU0ZDk1YzhjMjYzZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtl
ci5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+Cit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1y
ZWFkLXdyaXRlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440889</attachid>
            <date>2021-10-11 22:04:34 -0700</date>
            <delta_ts>2021-10-11 23:36:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211011220433.patch</filename>
            <type>text/plain</type>
            <size>80499</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLmUwN2Y2YmUzMmViNzYyMWY1YTU3ODU3ZmE1ZGE1ZmY0MjViYmRk
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9ubHkgbWFyayBuZWVkZWQgSlNPTkltcGw6Ok9i
amVjdEJhc2UgZnVuY3Rpb25zIHdpdGggV1RGX0VYUE9SVF9QUklWQVRFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzgyNmZjMGRlMTY4NTAwMGQ0ZjQwYjBlMzY2MTliNDgyYzJjODE1Ny4uODVmODE2MTFlMjZhNDRk
YjQ2ZmYzMmI4MDMzY2MxNmRlMzk2NWNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisy
MDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlYWQoKSBhbmQgd3JpdGUoKSBhY2Nv
cmRpbmcgdG8gcHJvcG9zYWw6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNzSGFuZGxlLm1kCisKKyAgICAgICAgVGVzdDog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdv
cmtlci5odG1sCisgICAgICAgIEFQSSB0ZXN0OiBGaWxlU3lzdGVtQWNjZXNzLlByb2Nlc3NDcmFz
aER1cmluZ1dyaXRlCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTEgIEtpZXQgSG8gIDx0
aG8yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1ha2Vwcm9wLnBsIHRvIG5vdCB0cmVhdCAi
aW5oZXJpdGVkOiBmYWxzZSIgcHJvcGVydGllcyBhcyBpbmhlcml0ZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBmZDliMTE0OGZjZjVlODBmMThlODgwNDAzOWQ0MjM3ZTkwMTlkZDFlLi42ZWY2Y2Fk
ODEzY2NiMDEzYTQ3YTE5YmRjMjFkYzc3NmNlNTM5OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgp
IGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oOiBB
ZGRlZC4KKwogMjAyMS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU11bR1BVIFByb2Nlc3NdIHN1cHBvcnQgYDxhdHRhY2htZW50PmAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNzMwZDE1MGM5ZGUyZTI2ZDgwY2I5MzUwM2Y1YzdjOWExYjllZjUxMy4uZTQ1MDU1Mjk0
NjdmZTY1OTE0YzYyZjljYjQ5YWI1MGYxNmE0ZDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBA
QAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBuZXR3b3JrIHByb2Nlc3Mgb3BlbiB0aGUg
ZmlsZSBhbmQgcGFzcyBmaWxlIGRlc2NyaXB0b3IgdG8gd2ViIHByb2Nlc3MsIHNvIHRoYXQgd2Vi
IHByb2Nlc3MgY2FuIHJlYWQgYW5kIAorICAgICAgICB3cml0ZSB0aGUgZmlsZSB3aXRob3V0IHNl
bmRpbmcgSVBDIG1lc3NhZ2VzLiBDdXJyZW50bHkgZ2V0dGluZyBmaWxlIHNpemUsIHRydW5jYXRp
bmcgZmlsZSBhbmQgc3luY2luZyBmaWxlIGFyZSAKKyAgICAgICAgc3RpbGwgcGVyZm9ybWVkIGJ5
IG5ldHdvcmsgcHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRp
b24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpj
bG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChJUEM6OlNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaDogQWRkZWQuCisgICAgICAgIChJ
UEM6OlNoYXJlZEZpbGVIYW5kbGU6OmhhbmRsZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVI
YW5kbGU6OlNoYXJlZEZpbGVIYW5kbGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9T
aGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwOiBBZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZF0p
OgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRGaWxlU3lzdGVtQWNjZXNzRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc3RvcmFnZUFQSUVuYWJsZWRdKToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0U3RvcmFnZUFQSUVuYWJsZWQ6XSk6CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX2FjY2Vzc0hhbmRsZUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0QWNjZXNzSGFuZGxlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMjEt
MTAtMTEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVIFByb2Nlc3NdIFVuaXF1ZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzIFBhcnQg
NTogVW5pcXVpZnkgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBhdCBlbnRyeSBwb2ludHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggZTQzMGYzMjUxNGI5MGIxOTM5MTc2MTAzNjY4MmJlYTNmYWU4
YjE4OS4uODNlNzY0ZTBhMWY1YWExMDNmZGYwNWYwNjhhMDM4YzUwNjBjMzJkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTEwNjUsMyArMTA2NSw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2Rl
ZmluZSBIQVZFX1BVQUNUSVZJVFlQUk9HUkVTU0NPTlRST0xMRVIgMQogI2VuZGlmCisKKyNpZiBf
X2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+KQorI2RlZmluZSBIQVZFX0ZJTEVQ
T1JUIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggZTZmZThk
YmZiYmEyM2RjMTRkYzExM2Q4OTc5M2VmNjc4MjQ0MGJiMi4uY2JlNDZmMjAxZjFlMmEwY2JlMzM5
YjAyMWY3N2NjZDE2YWYxM2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBA
IC01NywyOSArNTcsMjQgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3Vs
dC5yZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0VmFsdWUuZmly
c3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25n
TG9uZz4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmdldFNpemUoaWRlbnRpZmllcigpLCBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQp
KTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9p
ZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBz
aXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIGNvbm5lY3Rpb24oKS50cnVuY2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIHNpemUsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwot
ICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS50cnVuY2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIHNpemUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpmbHVzaChGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBt
dXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9
KTsKKyAgICBjb25uZWN0aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aAppbmRleCBhZmNlYTFmNzAxMzc5MDhmZTFjNzQwZTFmZmVlYjFkZTc4MTQ0MTU0Li43NDIwNzY4
Mzg4MjUxYWM2OGE1NWViYjM0ZDBhOGMyZmM1OWQ1ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRGaWxlKERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKLSAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25n
TG9uZz4mJik7Ci0gICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7Ci0gICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZs
dXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDljMDU3NjhkM2JmMThkZDE0MWM1OWRhOTFiZTVhZGM0
NTBhYWNkZDQuLjRiYTljNTgwZGExNmRlZDFkZWVjZmFmOGI0NDJmNjg4MTVmODRkNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcg
KzQ0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyPiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVz
aW5nIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1
c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAg
IHVzaW5nIEludGVnZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dWludDY0X3Q+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5YTg0Yjg0
OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2M2JkZTQy
NzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVh
dGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllcikp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNv
dXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJj
ZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogICAg
IDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAg
LCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+dHJ1
bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRp
bmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIs
IHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
VW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRTaXplKG1f
aWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMt
Pm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RG
TW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBt
X3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3Bl
bmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIs
IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJv
bWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYgKG1faXND
bG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAgICAgbV9z
b3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3ZWFrVGhp
cy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVlOwogfQog
CitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVy
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMg
b3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5k
bGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlmICghYnVm
ZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAg
ICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25zLmF0LCBG
aWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVzdWx0ID09
IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWls
ZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOwor
ICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJyYXlCdWZm
ZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+ZGF0YSgp
OworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVyKSB7Cisg
ICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJTb3VyY2Ug
c291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJjZS5sZW5n
dGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxlLCBkYXRh
LCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3MgfTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4g
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291
cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Rmls
ZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZp
bGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9w
ZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07
CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93
ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmls
ZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7Cisg
ICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAgQnVmZmVy
U291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byogZGF0YSA9
IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNlLmxlbmd0
aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwgZGF0YSwg
c2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsKKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAy
MzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRmMDk2M2U4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1LDE0ICsy
NSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
ewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAg
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRlKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC00OCwx
MyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAg
IHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJl
YWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJl
YWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gd3Jp
dGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJl
YWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhh
bmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9z
b3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1fcGVu
ZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQxMjFlMjVj
NzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVhYmFhZGEz
NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTMz
LDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBj
bG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0gQnVmZmVy
U291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CisgICAg
dW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZl
ciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0aW9uYXJ5
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMzc2NDEzMmFlZjNhYzAwNzEzNjQ4
OGU3MDZlNzk0OWRiODY2NzEwYi4uOGI4Y2E0YWFjNmQ1ODBkNzVjOTI0MzQzNzM4N2NlMGQwZmJh
ZmZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlm
aWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxl
Pj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vzc0hhbmRs
Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRs
ZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAgICAgICBh
dXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUp
IG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAg
Y3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlvbigpKTsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9u
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA2Y2U3ZmY0Njk1ZDlm
MGE2YmJmYTQ5ZDZjMWEzNDdhYzdkMjNjOTRhLi40ZGU0Mzk5MmNkYjgzNjg0MGRlOWExNjk1NjJi
OWYzMDE2MWE4MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZElzU2Ft
ZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAgICAgdm9p
ZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlkQ3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQgZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6
cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJhY2soQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAgdm9pZCBj
b21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVp
bnQ2NF90PiYmIHJlc3VsdCk7CiAgICAgdm9pZCBkaWRHZXRIYW5kbGVOYW1lcyhDYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMjZmMTRiNWNl
OWNhYjkzMWEzMzFlNTJiOTAwMGFhNmFmODQyMzY1Li4zZTkwNTNlNGM4YzI3MjBlNjdlYzI3NzNh
NWEzMjA1OWZlMDI3MDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTQsNiArMTU0LDcgQEAKIAkJNzFCMTE0MjAyNjgyM0FD
RDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQjExNDFGMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1Q
cmV2aWV3U1BJLmggKi87IH07CiAJCTdBMzZEMEY5MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25D
cnlwdG9TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBMzZEMEY4MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25DcnlwdG9TUEkuaCAqLzsgfTsKIAkJ
N0EzQTZBODAyMENBREI0NzAwMzE3QUFFIC8qIE5TSW1hZ2VTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBM0E2QTdGMjBDQURCNDYwMDMxN0FBRSAv
KiBOU0ltYWdlU1BJLmggKi87IH07CisJCTkzNDY4RTY3MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxl
UG9ydFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM0NjhFNjYyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi87IH07CiAJCTkzQjM4
RUJFMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQkQyNTgyMUNCNjAwMTk4RTYzIC8q
IFNwZWVjaFNvZnRMaW5rLmggKi87IH07CiAJCTkzQjM4RUMwMjU4MjFDRDgwMDE5OEU2MyAvKiBT
cGVlY2hTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQjM4RUJGMjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLzsg
fTsKIAkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQzEyNTgyMUQyMjAwMTk4
RTYzIC8qIFNwZWVjaFNQSS5oICovOyB9OwpAQCAtMzc2LDYgKzM3Nyw3IEBACiAJCTcxQjExNDFG
MjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN5c3RlbVByZXZpZXdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0EzNkQwRjgyMjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tb25DcnlwdG9TUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0EzQTZBN0YyMENBREI0NjAwMzE3QUFFIC8qIE5TSW1h
Z2VTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNJbWFnZVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyog
RmlsZVBvcnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVBvcnRT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMzhFQkQyNTgyMUNCNjAwMTk4
RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUJG
MjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0IzOEVDMTI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTM0LDYgKzUzNiw3IEBACiAJCQkJREY4M0UyMDgyNjM3MzRGMTAw
MDgyNUVGIC8qIENyeXB0b0tpdFByaXZhdGVTUEkuaCAqLywKIAkJCQkwQzJEQTEyNTFGM0JFQjQ5
MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVTUEkuaCAqLywKIAkJCQkxRDEyQ0M0QTI0MTFC
Q0FFMDBGREEwQTMgLyogRmVhdHVyZUZsYWdzU1BJLmggKi8sCisJCQkJOTM0NjhFNjYyNzE0QTdD
RDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi8sCiAJCQkJQ0U1NjczODYyMTUxQTdCOTAwMkY5
MkQ3IC8qIElPS2l0U1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLApAQCAtOTAwLDYgKzkwMyw3IEBACiAJCQkJQTExNzVCNTcxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyRDlFNzMx
RUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQx
MkNDNEIyNDExQkNBRTAwRkRBMEEzIC8qIEZlYXR1cmVGbGFnc1NQSS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM0NjhFNjcyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNDQyOTE2MDFGQTUyNjFFMDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFwaGlj
c1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzAyMkVGRjIyQ0ZFQzUzMDA2REYw
MUIgLyogR3VuemlwLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZmUwMDkwYjNmNGIzZGRhM2Y2
NWY4NTY4OTZhMjI0N2YwZGMxMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoRklMRVBPUlQpCisKK2V4dGVybiAiQyIgewor
I2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KK30KKworI2Vsc2UKKworZXh0ZXJuICJD
IiB7CitpbnQgZmlsZXBvcnRfbWFrZXBvcnQoaW50LCBtYWNoX3BvcnRfdCopOworaW50IGZpbGVw
b3J0X21ha2VmZChtYWNoX3BvcnRfdCk7Cit9CisKKyNlbmRpZiAvLyBfX2hhc19pbmNsdWRlKDxT
eXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCAy
ODgyNDRmOGRmMGJhNGM0ZTFiN2IzODBkMzYwOTJkMzViMGI0YzhhLi4wMjc3MzdhMmI0MGIyYzI3
MGVhYTY0YjhhNWY5ZTY0MzAxZWU4Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAg
LTMxLDkgKzMxLDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yIDogdWludDhfdCB7CisgICAgQmFja2VuZE5vdFN1cHBvcnRlZCwKICAg
ICBGaWxlTm90Rm91bmQsCi0gICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNhdGlv
biwKKyAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNo
LAogICAgIFVua25vd24KQEAgLTQyLDE2ICs0MywxOCBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IgOiB1aW50OF90IHsKIGlubGluZSBXZWJDb3JlOjpFeGNlcHRpb24gY29udmVy
dFRvRXhjZXB0aW9uKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgZXJyb3IpCiB7CiAgICAgc3dpdGNo
IChlcnJvcikgeworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1
cHBvcnRlZDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5v
dFN1cHBvcnRlZEVycm9yLCAiQmFja2VuZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9u
IiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kOgogICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9
OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2Rp
ZmljYXRpb25FcnJvciB9OwotICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1p
c21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlw
ZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJv
ciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkludmFsaWRTdGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OkludmFsaWRTdGF0ZUVycm9yIH07CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpUeXBlTWlzbWF0Y2g6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJD
b3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25v
d246CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc0LDkgKzc3LDEwIEBAIG5hbWVzcGFjZSBX
VEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IsCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQsCi0gICAgICAgIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDc3
MmEwMDlmZTFhMDE5MDViMjA1OTQyMzRmYzU2ZmYzNzQwYjZmOWIuLjA4ZjYwY2MxMmRlOTE0OTRj
MmMwN2MwM2Y3YTcwMWY3MjM2MTQxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNoYXJl
ZEZpbGVIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC0xNDMsNyArMTQ0LDcgQEAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHYKICAgICByZXR1
cm4gcmVzdFBhdGguc3BsaXQocGF0aFNlcGFyYXRvcik7CiB9CiAKLUV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQor
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCkKIHsKICAgICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwpAQCAtMTUyLDkgKzE1
MywyMCBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+CiAgICAgaWYgKCFhY3F1aXJlZCkKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRT
dGF0ZSk7CiAKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmls
ZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGlmIChtX2hhbmRsZSA9PSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRv
IGlwY0hhbmRsZSA9IElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKG1faGFuZGxlKTsKKyAg
ICBpZiAoIWlwY0hhbmRsZSkgeworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5k
bGUpOworICAgICAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGU7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkKTsKKyAgICB9CisKICAgICBBU1NFUlQoIW1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSk7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKLSAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICByZXR1cm4g
c3RkOjpwYWlyIHsgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSwgV1RGTW92ZSgqaXBjSGFuZGxl
KSB9OwogfQogCiBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCkBAIC0xODAsMTIgKzE5
Miw4IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdlYkNvcmU6CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nl
c3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsK
IAotICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lz
dGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7Ci0gICAgYXV0byBjbG9zZUZpbGVTY29wZSA9
IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRs
ZSk7Ci0gICAgfSk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmls
ZShoYW5kbGUsIHNpemUpOworICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRy
dW5jYXRlRmlsZShtX2hhbmRsZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCkBAIC0yMDAsNyArMjA4LDEx
IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmZsdXNoKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAot
ICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9y
bSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVt
OjpmbHVzaEZpbGUobV9oYW5kbGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4g
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwogICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiB9CiAKQEAgLTIxMiw2ICsyMjQsMTAgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmkKICAg
ICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFu
ZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duOwogCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0
ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlOworCiAgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBt
X2lkZW50aWZpZXIpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9w
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBkOThlNGU5MzI4ZDIxZjAyNGIx
M2I2MjNjZDQxOTlkZDFjNjZiOTg4Li5iYmRmZDRjZWUxYzcxMjY4MjdiNDBiMTE5NmM0Mzc3YmNm
MTdjOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMzAsNiArMzAsMTAgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgU2hh
cmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjsKQEAgLTUzLDcgKzU3LDggQEAgcHVibGljOgogICAgIEV4cGVjdGVk
PFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRIYW5kbGVOYW1lcygp
OwogICAgIEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgYm9vbD4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEhhbmRsZShJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUlu
Zm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUlu
Zm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAg
ICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CkBAIC02OCw2ICs3Myw3IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5
bmNBY2Nlc3NIYW5kbGU7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFu
ZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDJlY2Zl
NDM3ZDAxOTdjYTIyMWZmNTIyODgyM2U3NzM3MzcyYTZjZTYuLjU1MTZmYmI2Mjk0N2Y5OGRkZGU1
OTIxY2Q3M2ZlYTMwMDQ3YTFhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0y
MjYsNyArMjI2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihoYW5kbGUtPnJlc29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuaAppbmRleCA2YjMzNjA2MDI4ZDgwMWQ0ODQ2MmVhNmU0MDZlNmI0Mjk1
N2NmYTc0Li44ODQ1NTlhZDk3NjgyOTQ3OTVlZGY1Njg2NzU2MmFiYzZkOTExMjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3
ICs3NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25u
ZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwotICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+KT4mJik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFp
cjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hh
cmVkRmlsZUhhbmRsZT47CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVj
dGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAg
dm9pZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNo
Rm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggODZjYjI2YWNhOWVj
YTIzNWMyNDc1YjkxNTc1YjYxNzFkODdjNmQ5My4uZWZlNTc0ODZjMWIyZDcxOGQxMzEyOGRmMDVl
NDUyMmEwNjU5OWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCkBAIC0zMyw3ICszMyw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
dGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
dWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZDcyNWMwNWY0N2I1ZDM3MmFmMzg4MWZlMDQ1MjI4MGNhNTcwMTk4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRs
ZS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTaGFyZWRGaWxlSGFuZGxlLmgiCisKK25hbWVzcGFjZSBJUEMgeworCitzdGQ6
Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQoreworI2lmIEhBVkUoRklMRVBPUlQp
CisgICAgcmV0dXJuIFNoYXJlZEZpbGVIYW5kbGUgeyBoYW5kbGUgfTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQor
CisjaWYgIVBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNoYXJlZEZpbGVIYW5kbGU6OmVuY29kZShF
bmNvZGVyJikgY29uc3QKK3sKK30KKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBT
aGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUoRGVjb2RlciYpCit7CisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhYWY0MGJmZGJl
OTU2MmFjODNkNmE2NDRhMjBiNDY5YjQ3ZGE4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRl
IDx3dGYvRmlsZVN5c3RlbS5oPgorCituYW1lc3BhY2UgSVBDIHsKKworY2xhc3MgRGVjb2RlcjsK
K2NsYXNzIEVuY29kZXI7CisKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGUgeworcHVibGljOgorICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVt
OjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1f
aGFuZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisKKyAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBkZWNvZGUoRGVjb2RlciYpOworICAg
IAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTaGFyZWRGaWxlSGFuZGxlKEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgICAgIDogbV9oYW5kbGUoaGFuZGxlKQorICAg
IHsKKyAgICB9CisKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUg
eyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBJUEMKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9j
b2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTAxZmVhOTc5
MmIwNDIxNDk4ZDUxOGJiYTk4MGFiMjBjMTViYjdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNoYXJlZEZpbGVIYW5kbGUuaCIKKworI2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjaW5jbHVkZSA8
cGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oPgorCituYW1lc3BhY2UgSVBDIHsKKwordm9pZCBT
aGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBt
YWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0gTUFDSF9QT1JUX05VTEw7CisgICAgZmlsZXBvcnRf
bWFrZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCk7CisgICAgZW5jb2RlciA8PCBNYWNoUG9ydChm
aWxlcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOworfQorCitzdGQ6Om9wdGlvbmFsPFNo
YXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIE1hY2hQb3J0IG1hY2hQb3J0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFj
aFBvcnQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIAorICAgIHJldHVybiBT
aGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoZmlsZXBvcnRfbWFrZWZkKG1hY2hQb3J0LnBvcnQoKSkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDdlMjNkNjA1MmM0NTI0
ZjI3YjcwNDIwMmFhMGU3YzkxN2YxZGI5MDUuLmE0NTBhZDUzM2FkNjljMWU4MWZkNTdhNjVlNmMz
NzY4N2NjZDY4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTczLDYgKzE3Myw3IEBAIFBsYXRmb3JtL0lQ
Qy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9T
dHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1D
b25uZWN0aW9uQnVmZmVyLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0
aW9uV29ya1F1ZXVlLmNwcCBAbm8tdW5pZnkKK1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxl
LmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcCBA
bm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIEBuby11bmlmeQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
cy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1t
CmluZGV4IDcxNjRmODg2MDA3OGUyMDcxYWI4YzVmZDQ2Njg4ZjM0ZGZhYWFmMjIuLjRjZjk2NTQx
YmJkMTRmN2RiOWZmMDdhYzMzN2MyOGU1YjJlNTgzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0xNTE3LDYgKzE1MTcs
MzYgQEAgc3RhdGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRWRpdGFibGVMaW5r
QmVoYXZpb3IoX1dLRWRpdGFibGVMaW5rQmVoYXYKICAgICBfcHJlZmVyZW5jZXMtPnNldFJlcXVp
cmVzUGFnZVZpc2liaWxpdHlUb1BsYXlBdWRpbyhyZXF1aXJlcyk7CiB9CiAKKy0gKEJPT0wpX2Zp
bGVTeXN0ZW1BY2Nlc3NFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+ZmlsZVN5
c3RlbUFjY2Vzc0VuYWJsZWQoKTsKK30KKworLSAodm9pZClfc2V0RmlsZVN5c3RlbUFjY2Vzc0Vu
YWJsZWQ6KEJPT0wpZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMt
PnNldEZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkKGZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkKTsKK30K
KworLSAoQk9PTClfc3RvcmFnZUFQSUVuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2Vz
LT5zdG9yYWdlQVBJRW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRTdG9yYWdlQVBJRW5hYmxl
ZDooQk9PTClzdG9yYWdlQVBJRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0U3RvcmFn
ZUFQSUVuYWJsZWQoc3RvcmFnZUFQSUVuYWJsZWQpOworfQorCistIChCT09MKV9hY2Nlc3NIYW5k
bGVFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YWNjZXNzSGFuZGxlRW5hYmxl
ZCgpOworfQorCistICh2b2lkKV9zZXRBY2Nlc3NIYW5kbGVFbmFibGVkOihCT09MKWFjY2Vzc0hh
bmRsZUVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEFjY2Vzc0hhbmRsZUVuYWJsZWQo
YWNjZXNzSGFuZGxlRW5hYmxlZCk7Cit9CisKIEBlbmQKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4
IDUwNjAzYTFiOWYyZjc4OWI1NjBjMDNmZGJjYmE5NDc1ZTQ5NGMyZmMuLjU5OTY5YjY0YTY1ZWI4
ZTVmMDE0MDNiYjZjNzM0OWQ4MzgyMmVmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0xNzMsNiAr
MTczLDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxn
b3JpdGhtKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNlc3Npb25F
bmFibGVkOikgQk9PTCBfbWVkaWFTZXNzaW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFeHRl
bnNpYmxlU1NPRW5hYmxlZCwgc2V0dGVyPV9zZXRFeHRlbnNpYmxlU1NPRW5hYmxlZDopIEJPT0wg
X2V4dGVuc2libGVTU09FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1BhZ2VWaXNp
YmlsaXR5VG9QbGF5QXVkaW86KSBCT09MIF9yZXF1aXJlc1BhZ2VWaXNpYmlsaXR5VG9QbGF5QXVk
aW8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkOikgQk9PTCBfZmls
ZVN5c3RlbUFjY2Vzc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0b3Jh
Z2VBUElFbmFibGVkOikgQk9PTCBfc3RvcmFnZUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEFjY2Vzc0hhbmRsZUVuYWJsZWQ6KSBCT09MIF9hY2Nlc3NIYW5kbGVFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0V2ViR0xFbmFibGVkOikgQk9PTCBfd2ViR0xFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNWIzMmViYTIyMDhhNGQ4NDljNDU3MDcxYmNhNDM4OTYyNTIxNzBlNS4u
MTE5YWE1M2VjYjM3MGNhODFjMDY4ZDhmOTgwOWUwZmY3ZTU5YmVkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDcyLDYgKzE0NzIs
NyBAQAogCQk5MzA4NURERjI2RTVCQ0YxMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTkzMDg1REUwMjZFNUJDRkQwMDBFQzZBNyAvKiBO
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDg1REM0MjZFMUJCQkQwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1h
bmFnZXIuaCAqLzsgfTsKIAkJOTMwODVERTEyNkU1QkQxMzAwMEVDNkE3IC8qIE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJl
ZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi87IH07
CiAJCTkzMTJCQUQ1MjZGMzNDMjYwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUw
MjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJ
OTMxMkJBRDYyNkYzM0MyOTAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFBMDc1MzI2RjA2
QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLzsgfTsKIAkJOTMxQTFC
RTIyNkY4NzAwOTAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUExQkUwMjZGODVDMzIwMDgx
QTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggKi87IH07CkBAIC0xNDg0LDYgKzE0ODUs
OCBAQAogCQk5MzNFODM1QTIzQTFBRTI4MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU5
MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovOyB9OwogCQk5MzNF
ODM1QjIzQTFCNzUwMDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU4MjNB
MUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owog
CQk5MzQyNTg5QTI1NUI1MzVBMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5ODI1
NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi87IH07CisJCTkz
NDY4RTZCMjcxNEFGNDcwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZBMjcxNEFGNDcwMDk5
ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNwcCAqLzsgfTsKKwkJOTM0NjhFNkQyNzE0QUY4ODAw
OTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2QzI3MTRBRjg4MDA5OTgzRTMgLyogU2hh
cmVkRmlsZUhhbmRsZUNvY29hLmNwcCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2
IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVu
dUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzNTQyNDJDMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNTQyNDJBMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaCAqLzsgfTsKIAkJOTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8qIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovOyB9
OwpAQCAtNDk0OSw2ICs0OTUyLDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2
QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtT
dG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZp
bGVIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhh
bmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0
NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVT
eXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
MUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTY3LDYgKzQ5NzEsOCBAQAog
CQk5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTM0MjU4OEYyNTU1RENBNTAwNTlFRURE
IC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1l
ZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM0MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0Uz
IC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2hhcmVkRmlsZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZUNvY29h
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5
NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NDI0
MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzM1OCw2ICs3
MzY0LDggQEAKIAkJCQk1Q0M1REI5MTIxNDg4RTE2MDA2Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29w
eS5oICovLAogCQkJCTJEQzE4NTVFREJGQjg1MEJBMEI2RDA2RCAvKiBTaGFyZWRCdWZmZXJEYXRh
UmVmZXJlbmNlLmNwcCAqLywKIAkJCQkyREMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogU2hhcmVk
QnVmZmVyRGF0YVJlZmVyZW5jZS5oICovLAorCQkJCTkzNDY4RTZBMjcxNEFGNDcwMDk5ODNFMyAv
KiBTaGFyZWRGaWxlSGFuZGxlLmNwcCAqLywKKwkJCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYg
LyogU2hhcmVkRmlsZUhhbmRsZS5oICovLAogCQkJCTdCNzMxMjM2MjVDQzg1MjQwMDNCMjc5NiAv
KiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk3QjczMTIzMzI1Q0M4NTIzMDAz
QjI3OTYgLyogU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oICovLAogCQkJCTdCNzMxMjM0MjVDQzg1
MjQwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcCAqLywKQEAgLTExMTMwLDYg
KzExMTM4LDcgQEAKIAkJCQkxQTZEODZCRjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2Uu
Y3BwICovLAogCQkJCTFBNkQ4NkMwMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5oICov
LAogCQkJCUJDQzU2Rjc3MTE1OTk1N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oICovLAorCQkJCTkz
NDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovLAog
CQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0x
MjY1NCw2ICsxMjY2Myw3IEBACiAJCQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJl
ZEJ1ZmZlckNvcHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2
NyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2
RDZCQzI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzMTIyQzg2MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVk
TWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyog
U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3
REFFMDgwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApA
QCAtMTQ2MTYsNiArMTQ2MjYsOCBAQAogCQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0OTNGRCAvKiBT
aGFyZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGRUJGMzM3Qjk2NzFD
ODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMTgx
MjQ1QjU0OTM0M0JDOTgxNjRDIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTM0NjhFNkIyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NjhFNkQyNzE0QUY4ODAwOTk4M0UzIC8qIFNo
YXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUFEQUZCNjIzNjhF
NkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIx
QkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDYwMzEyN2Jl
Njc4NDk4MWQzMGFhNGE3NjIxOTc1NWQzZWYzNjIyNWMuLjk2ODVmY2ZhOGU5YzU2YmEyODY2OTli
YTEyMWEwNzBjNDMyYjIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCkBAIC0xMjEsNyArMTIxLDggQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUgKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOworICAgICAgICBhdXRvIHJl
c3VsdFZhbHVlID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
ZDo6cGFpciB7IHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQuaGFuZGxlKCkg
fSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20u
YXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCBhYTVhOGRkMTc0M2ExY2I5NGQzNGJmYTVhY2Rh
NjBmNjVkNWYzZDNjLi42YjMxYjZlZDZiNjdmMGJlYjA2MWM3ZmEyZGNlYmUyNTE2OGY0N2NlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiLmluCkBAIC0xOTM2LDYgKzE5MzYsNyBAQAogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lT
X2Nvbm5lY3Rfbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2VuZHRvX25v
Y2FuY2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAgICAgICAg
KHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNjYWxsLW51
bWJlciBTWVNfZmlsZXBvcnRfbWFrZXBvcnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNf
Z3VhcmRlZF9vcGVuX25wKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfY2xv
c2VfbnApCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggM2U0M2JjYTMxYmJmZWFjMTI3NTM3NDRjYzVmM2MwYzFlMGM5ZTAwZS4uNTE1ODY0NTY1NzBi
NGQwMTM0NmYyYzZmZDZhZTY2YjE2YTliODM1OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVT
eXN0ZW1BY2Nlc3MubW06IEFkZGVkLgorICAgICAgICAoLVtGaWxlU3lzdGVtQWNjZXNzTWVzc2Fn
ZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0p
OgorICAgICAgICAodGVzdCk6CisKIDIwMjEtMTAtMTEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFNsaWdodGx5IGJldHRlciBpZGlvbSBmb3IgQVJDIGRlYnVnIGF1
dG9yZWxlYXNlIHdvcmthcm91bmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjc1YTVkMGY5
Mjg5ODc0ZmFhMDU2MzdlNWMwOGFlMjZhOWQ2NDM2OS4uODAxZTQ3NDA1ODcyZTgwOTA1OGQwNDNk
MmE2ZGY3MzVmMGNlYjc4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg1NCw2ICs4NTQs
NyBAQAogCQk5MzNENjMxRDFGQ0I3NjIwMDAzMkVDRDYgLyogSGFzaGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0Q2MzFCMUZDQjc2MTgwMDMy
RUNENiAvKiBIYXNoZXIuY3BwICovOyB9OwogCQk5MzQyNTg5QzI1NUI2MDlCMDA1OUVFREQgLyog
U3BlZWNoUmVjb2duaXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzQyNTg5QjI1NUI2MDlBMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXRpb24u
bW0gKi87IH07CiAJCTkzNDI1ODlFMjU1QjZBMTIwMDU5RUVERCAvKiBzcGVlY2hyZWNvZ25pdGlv
bi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5RDI1NUI2NkEwMDA1OUVFREQg
Lyogc3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgKi87
IH07CisJCTkzNDY4RTZGMjcxNEI0RjIwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NjhFNkUyNzE0
QjRGMTAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gKi87IH07CiAJCTkzNTc4NkNDMjBG
NkEyNzAwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzUyMEY2OUZFRDAwNDBE
QzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCAqLzsgfTsKIAkJOTM1Nzg2Q0QyMEY2QTI5MTAw
MDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRl
eGVkREIuc3FsaXRlMyAqLzsgfTsKIAkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8qIEluZGV4
ZWREQi5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0
ZTMtc2htICovOyB9OwpAQCAtMjU4Miw2ICsyNTgzLDcgQEAKIAkJOTMzRDYzMUIxRkNCNzYxODAw
MzJFQ0Q2IC8qIEhhc2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIYXNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5QjI1NUI2
MDlBMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OUQyNTVCNjZBMDAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0
aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gInNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkUyNzE0QjRGMTAwOTk4
M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBGaWxlU3lzdGVtQWNjZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzRGQTVDNTIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICJJbmRleGVkREIuc3FsaXRlMy13YWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9
ICJJbmRleGVkREIuc3FsaXRlMy1zaG0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzRGQTVDNzIwRjY5RkVFMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gSW5kZXhl
ZERCLnNxbGl0ZTM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTEwLDYgKzM1MTIs
NyBAQAogCQkJCTZCMjVBNzUxMjVEQzhENEUwMDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0aW9uLm1t
ICovLAogCQkJCUNEQTI5QjI4MjBGRDJBOTkwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9uRW50
ZXJQaVAubW0gKi8sCiAJCQkJMUQxMkJFQkYyNDVCRUY4NTAwNEMwQjdBIC8qIEV4aXRQaVBPblN1
c3BlbmRWaWRlb0VsZW1lbnQubW0gKi8sCisJCQkJOTM0NjhFNkUyNzE0QjRGMTAwOTk4M0UzIC8q
IEZpbGVTeXN0ZW1BY2Nlc3MubW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNFNzAwMjBEQTQ2IC8q
IEZpbmRJblBhZ2UubW0gKi8sCiAJCQkJNTEyNDJDRDQyMzc0RTYxRTAwRUVEOUMxIC8qIEZpbmRJ
blBhZ2VBUEkubW0gKi8sCiAJCQkJMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0Vmlz
dWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbSAqLywKQEAgLTU1NjgsNiArNTU3MSw3IEBACiAJCQkJ
N0NDRTdFRjExQTQxMUFFNjAwNDQ3QzRDIC8qIEZhaWxlZExvYWQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTc5NjUxRTcyMTZCRkRFRDAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3QTMyRDc0QTFGMDIxNTE1MDAxNjJDNDQgLyogRmlsZU1vbml0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NjhFNkYyNzE0QjRGMjAwOTk4M0UzIC8qIEZp
bGVTeXN0ZW1BY2Nlc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGMzFBNDExQUU2MDA0
NDdDNEMgLyogRmluZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCQjFEMEE2NTAwMDBG
RUJDRjMgLyogRmluZEluUGFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMjQyQ0Q1MjM3NEU2
MjUwMEVFRDlDMSAvKiBGaW5kSW5QYWdlQVBJLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3Mu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nl
c3MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjBmY2QzMWI4Y2IzNTExMWFkYTYxYWE3MjQyYmU0NTY0YzU1MjJh
NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQpAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RVUkxTY2hlbWVIYW5kbGVyLmgi
CisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKworc3RhdGljIGJvb2wg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlOworc3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+
IGxhc3RTY3JpcHRNZXNzYWdlOworCitAaW50ZXJmYWNlIEZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdl
SGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorQGVuZAorCitAaW1w
bGVtZW50YXRpb24gRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyCisKKy0gKHZvaWQpdXNl
ckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50
Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVz
c2FnZQoreworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgbGFzdFNjcmlw
dE1lc3NhZ2UgPSBtZXNzYWdlOworfQorCitAZW5kCisKK3N0YXRpYyBOU1N0cmluZyAqbWFpbkZy
YW1lU3RyaW5nID0gQCI8c2NyaXB0PiBcCisgICAgZnVuY3Rpb24gc3RhcnQoKSB7IFwKKyAgICAg
ICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3dvcmtlci5qcycpOyBcCisgICAgICAgIHdvcmtl
ci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyBcCisgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC5kYXRhKTsg
XAorICAgICAgICB9OyBcCisgICAgfSBcCisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BhZ2UgaXMgbG9hZGVkJyk7IFwKKyAgICA8L3Nj
cmlwdD4iOworCitzdGF0aWMgY29uc3QgY2hhciogd29ya2VyQnl0ZXMgPSBSIlRFU1RSRVNPVVJD
RSgKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIHZhciByb290
SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7CisgICAgICAg
IHZhciBmaWxlSGFuZGxlID0gYXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCdmaWxlLXN5
c3RlbS1hY2Nlc3MudHh0JywgeyAnY3JlYXRlJyA6IHRydWUgfSk7CisgICAgICAgIHZhciBhY2Nl
c3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAg
ICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxMCk7CisgICAgICAgIHZhciB3cml0
ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiAwIH0pOworICAgICAg
ICBzZWxmLnBvc3RNZXNzYWdlKCdzdWNjZXNzOiB3cml0ZSAnICsgd3JpdGVTaXplICsgJyBieXRl
cycpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdlcnJv
cjogJyArIGVyci5uYW1lICsgJyAtICcgKyBlcnIubWVzc2FnZSk7CisgICAgICAgIGNsb3NlKCk7
CisgICAgfQorfQordGVzdCgpOworKVRFU1RSRVNPVVJDRSI7CisKK1RFU1QoRmlsZVN5c3RlbUFj
Y2VzcywgUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCit7CisgICAgYXV0byBoYW5kbGVyID0gYWRv
cHROUyhbW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0g
YWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIi
XTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwor
ICAgIHByZWZlcmVuY2VzLl9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVm
ZXJlbmNlcy5fYWNjZXNzSGFuZGxlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fc3Rv
cmFnZUFQSUVuYWJsZWQgPSBZRVM7CisgICAgYXV0byBzY2hlbWVIYW5kbGVyID0gYWRvcHROUyhb
W1Rlc3RVUkxTY2hlbWVIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW3NjaGVtZUhhbmRsZXIg
c2V0U3RhcnRVUkxTY2hlbWVUYXNrSGFuZGxlcjpeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVt
ZVRhc2s+IHRhc2spIHsKKyAgICAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNl
OworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhOworICAgICAgICBOU1VSTCAqcmVxdWVz
dFVSTCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSgid2Via2l0
Oi8vd2Via2l0Lm9yZy93b3JrZXIuanMiLCByZXF1ZXN0VVJMLmFic29sdXRlU3RyaW5nKTsKKyAg
ICAgICAgcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhV
Ukw6cmVxdWVzdFVSTCBNSU1FVHlwZTpAInRleHQvamF2YXNjcmlwdCIgZXhwZWN0ZWRDb250ZW50
TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAgICAgICAgZGF0YSA9IFtOU0RhdGEg
ZGF0YVdpdGhCeXRlczp3b3JrZXJCeXRlcyBsZW5ndGg6c3RybGVuKHdvcmtlckJ5dGVzKV07Cisg
ICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CisgICAgICAg
IFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGEuZ2V0KCldOworICAgICAgICBbdGFzayBkaWRGaW5p
c2hdOworICAgIH1dOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2No
ZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ3ZWJraXQiXTsKKworICAgIC8vIGxvYWQg
Zmlyc3Qgd2ViIHZpZXcgJiBzdGFydCB0ZXN0CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2Fk
SFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
IndlYmtpdDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OworICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRNZXNz
YWdlIGJvZHldKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCki
IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OworICAgIEVYUEVDVF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIGF1dG8gc2Vjb25kV2ViVmlldyA9IGFkb3B0TlMo
W1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3NlY29uZFdlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJ3ZWJraXQ6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2Ug
PSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwYWdlIGlzIGxvYWRlZCIsIFtsYXN0U2Ny
aXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBBY2Nlc3MgaGFuZGxlIGNhbm5vdCBiZSBjcmVh
dGVkIHdoZW4gdGhlcmUgaXMgYW4gb3BlbiBvbmUuCisgICAgW3NlY29uZFdlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiZXJyb3I6IElu
dmFsaWRTdGF0ZUVycm9yIC0gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIsIFts
YXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBPcGVuIGFjY2VzcyBoYW5kbGUgc2hv
dWxkIGJlIGNsb3NlZCB3aGVuIHdlYiBwcm9jZXNzIGNyYXNoZXMuCisgICAgW3dlYlZpZXcgX2tp
bGxXZWJDb250ZW50UHJvY2Vzc107CisKKyAgICBbc2Vjb25kV2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7
Cit9CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhkMjg1YTg2
OWNiNmVkZGM4MGE0ZWM3ZDk0MTZlZGVlZGU3MWUyYzMuLmZkNzhjMjlhNjg3YWIwMjgzMDNiNWYz
YzlkNjgyZmZlNTdjYzMwMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMC0xMSAgU2lo
dWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hUZXN0KToKKyAg
ICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9BcnJheUJ1ZmZl
cik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAgKGFzeW5jIHRl
c3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5k
bGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2Vy
Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NPT1BdIENyYXNoIHVuZGVyIFJlcG9ydGluZ0VuZHBvaW50c0NhY2hl
OjphZGRFbmRwb2ludEZyb21EaWN0aW9uYXJ5KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2Vz
L3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZTllMGMyYjA5
MDNiMzI5ZTRiZGEzMGQ5YWVmY2Q2Y2IwZDdhMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1yZWFkLXdyaXRlLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2lmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcycpOwor
fQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxpdGllcyBv
ZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4iKTsKKwordmFyIGFjY2Vzc0hhbmRsZSwgZmls
ZVNpemUsIHdyaXRlQnVmZmVyLCB3cml0ZVNpemUsIHJlYWRCdWZmZXIsIHJlYWRTaXplLCByZWFk
VGV4dCwgcmVhZEVycm9yOwordmFyIHRvdGFsUmVhZFNpemUgPSAwLCB0b3RhbFdyaXRlU2l6ZSA9
IDA7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
KworZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0cmluZyhidWZmZXIpCit7CisgICAgcmV0dXJuIFN0
cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcikpOwor
fQorCitmdW5jdGlvbiBzdHJpbmdUb0FycmF5QnVmZmVyKHN0cmluZykKK3sKKyAgICB2YXIgYnVm
ZmVyID0gbmV3IEFycmF5QnVmZmVyKHN0cmluZy5sZW5ndGgqMik7CisgICAgdmFyIGJ1ZmZlclZp
ZXcgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0
cmluZy5sZW5ndGg7IGkrKykgeworICAgICAgICBidWZmZXJWaWV3W2ldID0gc3RyaW5nLmNoYXJD
b2RlQXQoaSk7CisgICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9uIHdyaXRl
KGFjY2Vzc0hhbmRsZSwgb2Zmc2V0LCB0ZXh0KQoreworICAgIHdyaXRlQnVmZmVyID0gc3RyaW5n
VG9BcnJheUJ1ZmZlcih0ZXh0KTsKKyAgICB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUo
d3JpdGVCdWZmZXIsIHsgImF0IiA6IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgid3JpdGVTaXpl
IiwgIndyaXRlQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gd3JpdGVTaXplOworfQor
CitmdW5jdGlvbiByZWFkKGFjY2Vzc0hhbmRsZSwgb2Zmc2V0LCBzaXplKQoreworICAgIHJlYWRC
dWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisgICAgcmVhZFNpemUgPSBhY2Nlc3NIYW5k
bGUucmVhZChyZWFkQnVmZmVyLCB7ICJhdCI6IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgicmVh
ZFNpemUiLCAicmVhZEJ1ZmZlci5ieXRlTGVuZ3RoIik7CisgICAgcmV0dXJuIGFycmF5QnVmZmVy
VG9TdHJpbmcocmVhZEJ1ZmZlcik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAg
dHJ5IHsKKyAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5n
ZXREaXJlY3RvcnkoKTsKKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGZpbGUgZm9yIHRoaXMgdGVz
dC4KKyAgICAgICAgYXdhaXQgcm9vdEhhbmRsZS5yZW1vdmVFbnRyeSgic3luYy1hY2Nlc3MtaGFu
ZGxlLnR4dCIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgICAgICB2YXIgZmlsZUhh
bmRsZSA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0RmlsZUhhbmRsZSgic3luYy1hY2Nlc3MtaGFuZGxl
LnR4dCIsIHsgImNyZWF0ZSIgOiB0cnVlICB9KTsKKyAgICAgICAgYWNjZXNzSGFuZGxlID0gYXdh
aXQgZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAgICAgIGZpbGVTaXpl
ID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVT
aXplIiwgIjAiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6Iik7
CisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgMCwgIlRoaXMg
aXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5k
bGUsIDAsIHRvdGFsV3JpdGVTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICB0b3RhbFJlYWRT
aXplICs9IHJlYWRUZXh0Lmxlbmd0aCAqIDI7CisKKyAgICAgICAgdG90YWxXcml0ZVNpemUgKz0g
d3JpdGUoYWNjZXNzSGFuZGxlLCB0b3RhbFdyaXRlU2l6ZSwgIlRoaXMgaXMgc2Vjb25kIHNlbnRl
bmNlLiIpOworICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCB0b3RhbFJlYWRT
aXplLCB0b3RhbFdyaXRlU2l6ZSAtIHRvdGFsUmVhZFNpemUpOworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworCisg
ICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVTaXplKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0
IHNlbnRlbmNlLlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworCisgICAgICAgIGRlYnVnKCJ0
ZXN0IGZsdXNoKCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAg
ICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNo
b3VsZEJlKCJmaWxlU2l6ZSIsICJ0b3RhbFdyaXRlU2l6ZSIpOworCisgICAgICAgIGRlYnVnKCJ0
ZXN0IHRydW5jYXRlKCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSg0
KTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZpbGVTaXpl
ID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVT
aXplIiwgIjQiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCB3cml0ZSgpIHdpdGggcGVuZGluZyBv
cGVyYXRpb246Iik7CisgICAgICAgIGV2YWxBbmRMb2coImFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgw
KSIpOworICAgICAgICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDQpOworICAgICAgICBz
aG91bGRUaHJvdygiYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyBcImF0XCIgOiAwIH0p
Iik7CisKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmNsb3NlKCk7CisgICAgICAgIGZpbmlz
aFRlc3QoKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBmaW5pc2hUZXN0KGVycm9y
KTsKKyAgICB9Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
ZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNj
ZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFj
ZDU5YjczOGYyMTQ0MDhlOGQ2YTBiYzlhNzcwYjgzMTIxMDA0NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
cmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK1tXb3JrZXJd
IFRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3
b3JrZXI6IHJlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcworUEFTUyBb
V29ya2VyXSBmaWxlU2l6ZSBpcyAwCitbV29ya2VyXSB0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToK
K1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1Mg
W1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJd
IHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gd3Jp
dGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUg
aXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlz
IGlzIHNlY29uZCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZm
ZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBz
ZW50ZW5jZS5UaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iCitbV29ya2VyXSB0ZXN0IGZsdXNoKCk6
CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIHRvdGFsV3JpdGVTaXplCitbV29ya2VyXSB0ZXN0
IHRydW5jYXRlKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIDQKK1tXb3JrZXJdIHRlc3Qg
d3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOgorW1dvcmtlcl0gYWNjZXNzSGFuZGxlLnRy
dW5jYXRlKDApCitQQVNTIFtXb3JrZXJdIGFjY2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsg
ImF0IiA6IDAgfSkgdGhyZXcgZXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBBY2Nlc3MgaGFu
ZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcxNmY3MWM4MDMwZGNkMTBj
NjVkYTM4MzZlNGQ5NWM4YzI2M2VlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
cmVhZC13cml0ZS5qcycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440898</attachid>
            <date>2021-10-11 23:36:14 -0700</date>
            <delta_ts>2021-10-12 10:30:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211011233613.patch</filename>
            <type>text/plain</type>
            <size>80676</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLmUwN2Y2YmUzMmViNzYyMWY1YTU3ODU3ZmE1ZGE1ZmY0MjViYmRk
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9ubHkgbWFyayBuZWVkZWQgSlNPTkltcGw6Ok9i
amVjdEJhc2UgZnVuY3Rpb25zIHdpdGggV1RGX0VYUE9SVF9QUklWQVRFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzgyNmZjMGRlMTY4NTAwMGQ0ZjQwYjBlMzY2MTliNDgyYzJjODE1Ny4uODVmODE2MTFlMjZhNDRk
YjQ2ZmYzMmI4MDMzY2MxNmRlMzk2NWNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisy
MDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlYWQoKSBhbmQgd3JpdGUoKSBhY2Nv
cmRpbmcgdG8gcHJvcG9zYWw6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNzSGFuZGxlLm1kCisKKyAgICAgICAgVGVzdDog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdv
cmtlci5odG1sCisgICAgICAgIEFQSSB0ZXN0OiBGaWxlU3lzdGVtQWNjZXNzLlByb2Nlc3NDcmFz
aER1cmluZ1dyaXRlCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTEgIEtpZXQgSG8gIDx0
aG8yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1ha2Vwcm9wLnBsIHRvIG5vdCB0cmVhdCAi
aW5oZXJpdGVkOiBmYWxzZSIgcHJvcGVydGllcyBhcyBpbmhlcml0ZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBmZDliMTE0OGZjZjVlODBmMThlODgwNDAzOWQ0MjM3ZTkwMTlkZDFlLi42ZWY2Y2Fk
ODEzY2NiMDEzYTQ3YTE5YmRjMjFkYzc3NmNlNTM5OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgp
IGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oOiBB
ZGRlZC4KKwogMjAyMS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU11bR1BVIFByb2Nlc3NdIHN1cHBvcnQgYDxhdHRhY2htZW50PmAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNzMwZDE1MGM5ZGUyZTI2ZDgwY2I5MzUwM2Y1YzdjOWExYjllZjUxMy4uZTQ1MDU1Mjk0
NjdmZTY1OTE0YzYyZjljYjQ5YWI1MGYxNmE0ZDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBA
QAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBuZXR3b3JrIHByb2Nlc3Mgb3BlbiB0aGUg
ZmlsZSBhbmQgcGFzcyBmaWxlIGRlc2NyaXB0b3IgdG8gd2ViIHByb2Nlc3MsIHNvIHRoYXQgd2Vi
IHByb2Nlc3MgY2FuIHJlYWQgYW5kIAorICAgICAgICB3cml0ZSB0aGUgZmlsZSB3aXRob3V0IHNl
bmRpbmcgSVBDIG1lc3NhZ2VzLiBDdXJyZW50bHkgZ2V0dGluZyBmaWxlIHNpemUsIHRydW5jYXRp
bmcgZmlsZSBhbmQgc3luY2luZyBmaWxlIGFyZSAKKyAgICAgICAgc3RpbGwgcGVyZm9ybWVkIGJ5
IG5ldHdvcmsgcHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRp
b24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpj
bG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChJUEM6OlNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaDogQWRkZWQuCisgICAgICAgIChJ
UEM6OlNoYXJlZEZpbGVIYW5kbGU6OmhhbmRsZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVI
YW5kbGU6OlNoYXJlZEZpbGVIYW5kbGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9T
aGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwOiBBZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZF0p
OgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRGaWxlU3lzdGVtQWNjZXNzRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc3RvcmFnZUFQSUVuYWJsZWRdKToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0U3RvcmFnZUFQSUVuYWJsZWQ6XSk6CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX2FjY2Vzc0hhbmRsZUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0QWNjZXNzSGFuZGxlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMjEt
MTAtMTEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVIFByb2Nlc3NdIFVuaXF1ZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzIFBhcnQg
NTogVW5pcXVpZnkgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBhdCBlbnRyeSBwb2ludHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm1IYXZlLmgKaW5kZXggZTQzMGYzMjUxNGI5MGIxOTM5MTc2MTAzNjY4MmJlYTNmYWU4
YjE4OS4uODNlNzY0ZTBhMWY1YWExMDNmZGYwNWYwNjhhMDM4YzUwNjBjMzJkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKQEAgLTEwNjUsMyArMTA2NSw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2Rl
ZmluZSBIQVZFX1BVQUNUSVZJVFlQUk9HUkVTU0NPTlRST0xMRVIgMQogI2VuZGlmCisKKyNpZiBf
X2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+KQorI2RlZmluZSBIQVZFX0ZJTEVQ
T1JUIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggZTZmZThk
YmZiYmEyM2RjMTRkYzExM2Q4OTc5M2VmNjc4MjQ0MGJiMi4uY2JlNDZmMjAxZjFlMmEwY2JlMzM5
YjAyMWY3N2NjZDE2YWYxM2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBA
IC01NywyOSArNTcsMjQgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3Vs
dC5yZXR1cm5WYWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0VmFsdWUuZmly
c3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25n
TG9uZz4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmdldFNpemUoaWRlbnRpZmllcigpLCBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQp
KTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkuZ2V0U2l6ZShpZGVudGlmaWVyKCksIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9p
ZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBz
aXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIGNvbm5lY3Rpb24oKS50cnVuY2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIHNpemUsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwot
ICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS50cnVuY2F0ZShpZGVudGlmaWVyKCksIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIHNpemUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDx2
b2lkPiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpmbHVzaChGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBt
dXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9
KTsKKyAgICBjb25uZWN0aW9uKCkuZmx1c2goaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aAppbmRleCBhZmNlYTFmNzAxMzc5MDhmZTFjNzQwZTFmZmVlYjFkZTc4MTQ0MTU0Li43NDIwNzY4
Mzg4MjUxYWM2OGE1NWViYjM0ZDBhOGMyZmM1OWQ1ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaApAQCAtNDEsOSArNDEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRGaWxlKERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKLSAgICB2b2lkIGdldFNpemUoRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMVW5zaWduZWRMb25n
TG9uZz4mJik7Ci0gICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7Ci0gICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIGdldFNpemUoRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT4mJik7CisgICAgdm9pZCB0cnVuY2F0ZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lkIGZs
dXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCBjbG9zZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDljMDU3NjhkM2JmMThkZDE0MWM1OWRhOTFiZTVhZGM0
NTBhYWNkZDQuLjRiYTljNTgwZGExNmRlZDFkZWVjZmFmOGI0NDJmNjg4MTVmODRkNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcg
KzQ0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxl
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyPiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwotICAgIHVz
aW5nIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYpPjsKKyAgICB1
c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwogICAg
IHVzaW5nIEludGVnZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dWludDY0X3Q+JiYpPjsKICAgICB1c2luZyBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggZmFkNGI5YTg0Yjg0
OWQ1YmNlNDdjMzRhM2YwYjZkNjFkZTc2ZDJhYi4uNDg5M2NmZTQyMDcxNWY5ZGVhYTU2M2JkZTQy
NzcwY2Q0NjJjM2RmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwCkBAIC0zNCwxNCArMzQsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVh
dGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllcikp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNv
dXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJj
ZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpCitGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogICAg
IDogbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAg
LCBtX2ZpbGUoZmlsZSkKIHsKIH0KIApAQCAtNTMsMTcgKzU0LDM1IEBAIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlOjp+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKQogCiB2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+dHJ1
bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRp
bmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIs
IHNpemUsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQor
ICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAg
ICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
VW5zaWduZWRMb25nTG9uZz4mJiBwcm9taXNlKQogewotICAgIG1fc291cmNlLT5nZXRTaXplKG1f
aWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQrKzsKKyAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMt
Pm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RG
TW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKLSAgICBt
X3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3Bl
bmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIs
IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisKKyAgICAgICAgcHJv
bWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKQEAgLTcxLDkgKzkwLDEyIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgaWYgKG1faXND
bG9zZWQpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciB9KTsKIAorICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CiAgICAgbV9z
b3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgIGlmICh3ZWFrVGhpcykgeworICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CiAgICAgICAgICAgICB3ZWFrVGhp
cy0+ZGlkQ2xvc2UoKTsKKyAgICAgICAgfQogCiAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7CiAgICAgfSk7CkBAIC04NCw0ICsxMDYsNTkgQEAgdm9pZCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6ZGlkQ2xvc2UoKQogICAgIG1faXNDbG9zZWQgPSB0cnVlOwogfQog
CitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpyZWFkKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVy
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMg
b3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5k
bGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisgICAgICAgIAorICAgIGlmICghYnVm
ZmVyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH07CisKKyAg
ICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25zLmF0LCBG
aWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVzdWx0ID09
IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWls
ZWQgdG8gcmVhZCBhdCBvZmZzZXQiX3MgfTsKKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOwor
ICAgIFdURjo6c3dpdGNoT24oKmJ1ZmZlciwgWyZkYXRhXSAoUmVmUHRyPEpTQzo6QXJyYXlCdWZm
ZXJWaWV3PiYgYnVmZmVyVmlldykgeworICAgICAgICBkYXRhID0gYnVmZmVyVmlldy0+ZGF0YSgp
OworICAgIH0sIFsmZGF0YV0gKFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiYgYnVmZmVyKSB7Cisg
ICAgICAgIGRhdGEgPSBidWZmZXItPmRhdGEoKTsKKyAgICB9KTsKKyAgICBCdWZmZXJTb3VyY2Ug
c291cmNlIHsgV1RGTW92ZSgqYnVmZmVyKSB9OworICAgIGF1dG8gc2l6ZSA9IHNvdXJjZS5sZW5n
dGgoKTsKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxlLCBkYXRh
LCBzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3MgfTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4g
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKHN0ZDo6b3B0aW9uYWw8QnVmZmVyU291
cmNlOjpWYXJpYW50VHlwZT4gYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Rmls
ZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBpZiAobV9maWxlID09IEZp
bGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9w
ZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07
CisKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEFsbG93
ZWRFcnJvciB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmls
ZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7Cisg
ICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAgQnVmZmVy
U291cmNlIGJ1ZmZlclNvdXJjZSA9IFdURk1vdmUoKmJ1ZmZlcik7CisgICAgYXV0byogZGF0YSA9
IGJ1ZmZlclNvdXJjZS5kYXRhKCk7CisgICAgYXV0byBzaXplID0gYnVmZmVyU291cmNlLmxlbmd0
aCgpOworICAgIHJlc3VsdCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKG1fZmlsZSwgZGF0YSwg
c2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsKKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAy
MzdmMGNmMjE1ZDAzYzNiZi4uZTExNGI4NjNkODFlZjdiZmRlNzM1ZjYwZDBkNDNmYzRmMDk2M2U4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1LDE0ICsy
NSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
ewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAg
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRlKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC00OCwx
MyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAg
IHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJl
YWQoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJl
YWRXcml0ZU9wdGlvbnMpOworICAgIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gd3Jp
dGUoc3RkOjpvcHRpb25hbDxCdWZmZXJTb3VyY2U6OlZhcmlhbnRUeXBlPiwgRmlsZXN5c3RlbVJl
YWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhh
bmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9z
b3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1fcGVu
ZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQxMjFlMjVj
NzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVhYmFhZGEz
NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTMz
LDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBj
bG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0gQnVmZmVy
U291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CisgICAg
dW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZl
ciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0aW9uYXJ5
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMzc2NDEzMmFlZjNhYzAwNzEzNjQ4
OGU3MDZlNzk0OWRiODY2NzEwYi4uOGI4Y2E0YWFjNmQ1ODBkNzVjOTI0MzQzNzM4N2NlMGQwZmJh
ZmZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlm
aWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxl
Pj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vzc0hhbmRs
Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRs
ZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAgICAgICBh
dXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUp
IG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAg
Y3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlvbigpKTsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9u
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA2Y2U3ZmY0Njk1ZDlm
MGE2YmJmYTQ5ZDZjMWEzNDdhYzdkMjNjOTRhLi40ZGU0Mzk5MmNkYjgzNjg0MGRlOWExNjk1NjJi
OWYzMDE2MWE4MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZElzU2Ft
ZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAgICAgdm9p
ZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlkQ3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQgZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6
cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJhY2soQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAgdm9pZCBj
b21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVp
bnQ2NF90PiYmIHJlc3VsdCk7CiAgICAgdm9pZCBkaWRHZXRIYW5kbGVOYW1lcyhDYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMjZmMTRiNWNl
OWNhYjkzMWEzMzFlNTJiOTAwMGFhNmFmODQyMzY1Li4zZTkwNTNlNGM4YzI3MjBlNjdlYzI3NzNh
NWEzMjA1OWZlMDI3MDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTQsNiArMTU0LDcgQEAKIAkJNzFCMTE0MjAyNjgyM0FD
RDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQjExNDFGMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1Q
cmV2aWV3U1BJLmggKi87IH07CiAJCTdBMzZEMEY5MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25D
cnlwdG9TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBMzZEMEY4MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25DcnlwdG9TUEkuaCAqLzsgfTsKIAkJ
N0EzQTZBODAyMENBREI0NzAwMzE3QUFFIC8qIE5TSW1hZ2VTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBM0E2QTdGMjBDQURCNDYwMDMxN0FBRSAv
KiBOU0ltYWdlU1BJLmggKi87IH07CisJCTkzNDY4RTY3MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxl
UG9ydFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM0NjhFNjYyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi87IH07CiAJCTkzQjM4
RUJFMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQkQyNTgyMUNCNjAwMTk4RTYzIC8q
IFNwZWVjaFNvZnRMaW5rLmggKi87IH07CiAJCTkzQjM4RUMwMjU4MjFDRDgwMDE5OEU2MyAvKiBT
cGVlY2hTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQjM4RUJGMjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLzsg
fTsKIAkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQzEyNTgyMUQyMjAwMTk4
RTYzIC8qIFNwZWVjaFNQSS5oICovOyB9OwpAQCAtMzc2LDYgKzM3Nyw3IEBACiAJCTcxQjExNDFG
MjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN5c3RlbVByZXZpZXdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0EzNkQwRjgyMjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tb25DcnlwdG9TUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0EzQTZBN0YyMENBREI0NjAwMzE3QUFFIC8qIE5TSW1h
Z2VTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNJbWFnZVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyog
RmlsZVBvcnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVBvcnRT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMzhFQkQyNTgyMUNCNjAwMTk4
RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUJG
MjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0IzOEVDMTI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTM0LDYgKzUzNiw3IEBACiAJCQkJREY4M0UyMDgyNjM3MzRGMTAw
MDgyNUVGIC8qIENyeXB0b0tpdFByaXZhdGVTUEkuaCAqLywKIAkJCQkwQzJEQTEyNTFGM0JFQjQ5
MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVTUEkuaCAqLywKIAkJCQkxRDEyQ0M0QTI0MTFC
Q0FFMDBGREEwQTMgLyogRmVhdHVyZUZsYWdzU1BJLmggKi8sCisJCQkJOTM0NjhFNjYyNzE0QTdD
RDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi8sCiAJCQkJQ0U1NjczODYyMTUxQTdCOTAwMkY5
MkQ3IC8qIElPS2l0U1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLApAQCAtOTAwLDYgKzkwMyw3IEBACiAJCQkJQTExNzVCNTcxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyRDlFNzMx
RUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQx
MkNDNEIyNDExQkNBRTAwRkRBMEEzIC8qIEZlYXR1cmVGbGFnc1NQSS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM0NjhFNjcyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNDQyOTE2MDFGQTUyNjFFMDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFwaGlj
c1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzAyMkVGRjIyQ0ZFQzUzMDA2REYw
MUIgLyogR3VuemlwLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZmUwMDkwYjNmNGIzZGRhM2Y2
NWY4NTY4OTZhMjI0N2YwZGMxMzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoRklMRVBPUlQpCisKK2V4dGVybiAiQyIgewor
I2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KK30KKworI2Vsc2UKKworZXh0ZXJuICJD
IiB7CitpbnQgZmlsZXBvcnRfbWFrZXBvcnQoaW50LCBtYWNoX3BvcnRfdCopOworaW50IGZpbGVw
b3J0X21ha2VmZChtYWNoX3BvcnRfdCk7Cit9CisKKyNlbmRpZiAvLyBfX2hhc19pbmNsdWRlKDxT
eXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCAy
ODgyNDRmOGRmMGJhNGM0ZTFiN2IzODBkMzYwOTJkMzViMGI0YzhhLi4wMjc3MzdhMmI0MGIyYzI3
MGVhYTY0YjhhNWY5ZTY0MzAxZWU4Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAg
LTMxLDkgKzMxLDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yIDogdWludDhfdCB7CisgICAgQmFja2VuZE5vdFN1cHBvcnRlZCwKICAg
ICBGaWxlTm90Rm91bmQsCi0gICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNhdGlv
biwKKyAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNo
LAogICAgIFVua25vd24KQEAgLTQyLDE2ICs0MywxOCBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IgOiB1aW50OF90IHsKIGlubGluZSBXZWJDb3JlOjpFeGNlcHRpb24gY29udmVy
dFRvRXhjZXB0aW9uKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgZXJyb3IpCiB7CiAgICAgc3dpdGNo
IChlcnJvcikgeworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1
cHBvcnRlZDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5v
dFN1cHBvcnRlZEVycm9yLCAiQmFja2VuZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9u
IiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kOgogICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9
OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2Rp
ZmljYXRpb25FcnJvciB9OwotICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1p
c21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlw
ZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJv
ciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkludmFsaWRTdGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OkludmFsaWRTdGF0ZUVycm9yIH07CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpUeXBlTWlzbWF0Y2g6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJD
b3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25v
d246CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc0LDkgKzc3LDEwIEBAIG5hbWVzcGFjZSBX
VEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJL
aXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IsCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQsCi0gICAgICAgIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDc3
MmEwMDlmZTFhMDE5MDViMjA1OTQyMzRmYzU2ZmYzNzQwYjZmOWIuLjA4ZjYwY2MxMmRlOTE0OTRj
MmMwN2MwM2Y3YTcwMWY3MjM2MTQxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNoYXJl
ZEZpbGVIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC0xNDMsNyArMTQ0LDcgQEAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHYKICAgICByZXR1
cm4gcmVzdFBhdGguc3BsaXQocGF0aFNlcGFyYXRvcik7CiB9CiAKLUV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQor
RXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCkKIHsKICAgICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwpAQCAtMTUyLDkgKzE1
MywyMCBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+CiAgICAgaWYgKCFhY3F1aXJlZCkKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRT
dGF0ZSk7CiAKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmls
ZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGlmIChtX2hhbmRsZSA9PSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRv
IGlwY0hhbmRsZSA9IElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKG1faGFuZGxlKTsKKyAg
ICBpZiAoIWlwY0hhbmRsZSkgeworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5k
bGUpOworICAgICAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGU7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkKTsKKyAgICB9CisKICAgICBBU1NFUlQoIW1fYWN0aXZl
U3luY0FjY2Vzc0hhbmRsZSk7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNh
ZmUoKTsKLSAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICByZXR1cm4g
c3RkOjpwYWlyIHsgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSwgV1RGTW92ZSgqaXBjSGFuZGxl
KSB9OwogfQogCiBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCkBAIC0xODAsMTIgKzE5
Miw4IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdlYkNvcmU6CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nl
c3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsK
IAotICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lz
dGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7Ci0gICAgYXV0byBjbG9zZUZpbGVTY29wZSA9
IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRs
ZSk7Ci0gICAgfSk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmls
ZShoYW5kbGUsIHNpemUpOworICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRy
dW5jYXRlRmlsZShtX2hhbmRsZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCkBAIC0yMDAsNyArMjA4LDEx
IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmZsdXNoKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAot
ICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9y
bSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVt
OjpmbHVzaEZpbGUobV9oYW5kbGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4g
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwogICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiB9CiAKQEAgLTIxMiw2ICsyMjQsMTAgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmkKICAg
ICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFu
ZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duOwogCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0
ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlOworCiAgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBt
X2lkZW50aWZpZXIpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9w
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBkOThlNGU5MzI4ZDIxZjAyNGIx
M2I2MjNjZDQxOTlkZDFjNjZiOTg4Li5iYmRmZDRjZWUxYzcxMjY4MjdiNDBiMTE5NmM0Mzc3YmNm
MTdjOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMzAsNiArMzAsMTAgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgU2hh
cmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEZpbGVTeXN0
ZW1TdG9yYWdlTWFuYWdlcjsKQEAgLTUzLDcgKzU3LDggQEAgcHVibGljOgogICAgIEV4cGVjdGVk
PFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRIYW5kbGVOYW1lcygp
OwogICAgIEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgYm9vbD4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEhhbmRsZShJUEM6OkNvbm5l
Y3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUlu
Zm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUlu
Zm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAg
ICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CkBAIC02OCw2ICs3Myw3IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5
bmNBY2Nlc3NIYW5kbGU7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFu
ZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDJlY2Zl
NDM3ZDAxOTdjYTIyMWZmNTIyODgyM2U3NzM3MzcyYTZjZTYuLjU1MTZmYmI2Mjk0N2Y5OGRkZGU1
OTIxY2Q3M2ZlYTMwMDQ3YTFhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0y
MjYsNyArMjI2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihoYW5kbGUtPnJlc29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuaAppbmRleCA2YjMzNjA2MDI4ZDgwMWQ0ODQ2MmVhNmU0MDZlNmI0Mjk1
N2NmYTc0Li44ODQ1NTlhZDk3NjgyOTQ3OTVlZGY1Njg2NzU2MmFiYzZkOTExMjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3
ICs3NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25u
ZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5h
bWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwotICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+KT4mJik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFp
cjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hh
cmVkRmlsZUhhbmRsZT47CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVj
dGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAg
dm9pZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNo
Rm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggODZjYjI2YWNhOWVj
YTIzNWMyNDc1YjkxNTc1YjYxNzFkODdjNmQ5My4uZWZlNTc0ODZjMWIyZDcxOGQxMzEyOGRmMDVl
NDUyMmEwNjU5OWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2Vz
LmluCkBAIC0zMyw3ICszMyw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
dGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
dWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3lu
YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZDcyNWMwNWY0N2I1ZDM3MmFmMzg4MWZlMDQ1MjI4MGNhNTcwMTk4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRs
ZS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTaGFyZWRGaWxlSGFuZGxlLmgiCisKK25hbWVzcGFjZSBJUEMgeworCitzdGQ6
Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlKQoreworI2lmIEhBVkUoRklMRVBPUlQp
CisgICAgcmV0dXJuIFNoYXJlZEZpbGVIYW5kbGUgeyBoYW5kbGUgfTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQor
CisjaWYgIVBMQVRGT1JNKENPQ09BKQorCit2b2lkIFNoYXJlZEZpbGVIYW5kbGU6OmVuY29kZShF
bmNvZGVyJikgY29uc3QKK3sKK30KKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBT
aGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUoRGVjb2RlciYpCit7CisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhYWY0MGJmZGJl
OTU2MmFjODNkNmE2NDRhMjBiNDY5YjQ3ZGE4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRl
IDx3dGYvRmlsZVN5c3RlbS5oPgorCituYW1lc3BhY2UgSVBDIHsKKworY2xhc3MgRGVjb2RlcjsK
K2NsYXNzIEVuY29kZXI7CisKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGUgeworcHVibGljOgorICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IGNyZWF0ZShGaWxlU3lzdGVt
OjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1f
aGFuZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisKKyAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBkZWNvZGUoRGVjb2RlciYpOworICAg
IAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTaGFyZWRGaWxlSGFuZGxlKEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgICAgIDogbV9oYW5kbGUoaGFuZGxlKQorICAg
IHsKKyAgICB9CisKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUg
eyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBJUEMKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9j
b2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDZhOGYxYTM3
ODliNzZlNDYwM2M5OWY5YTIxZjM0NzNhMDdkODgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNoYXJlZEZpbGVIYW5kbGUuaCIKKworI2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjaW5jbHVkZSA8
cGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oPgorCituYW1lc3BhY2UgSVBDIHsKKwordm9pZCBT
aGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBt
YWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0gTUFDSF9QT1JUX05VTEw7CisgICAgaWYgKGZpbGVw
b3J0X21ha2Vwb3J0KG1faGFuZGxlLCAmZmlsZXBvcnQpID09IC0xKSB7CisgICAgICAgIGVuY29k
ZXIgPDwgTWFjaFBvcnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVuY29kZXIg
PDwgTWFjaFBvcnQoZmlsZXBvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKK30KKworc3Rk
OjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBTaGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBNYWNoUG9ydCBtYWNoUG9ydDsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1hY2hQb3J0KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAK
KyAgICBpbnQgZmQgPSBmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKTsKKyAgICBpZiAo
ZmQgPT0gLTEpCisgICAgICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlIHsgfTsKKworICAgIHJl
dHVybiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoZmlsZXBvcnRfbWFrZWZkKG1hY2hQb3J0LnBv
cnQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDdlMjNkNjA1
MmM0NTI0ZjI3YjcwNDIwMmFhMGU3YzkxN2YxZGI5MDUuLmE0NTBhZDUzM2FkNjljMWU4MWZkNTdh
NjVlNmMzNzY4N2NjZDY4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMTczLDYgKzE3Myw3IEBAIFBsYXRm
b3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3Jt
L0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9T
dHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1D
b25uZWN0aW9uV29ya1F1ZXVlLmNwcCBAbm8tdW5pZnkKK1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxl
SGFuZGxlLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
LmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJpbmdSZWZlcmVuY2UuY3BwIEBuby11bmlm
eQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzLm1tCmluZGV4IDcxNjRmODg2MDA3OGUyMDcxYWI4YzVmZDQ2Njg4ZjM0ZGZhYWFmMjIuLjRj
Zjk2NTQxYmJkMTRmN2RiOWZmMDdhYzMzN2MyOGU1YjJlNTgzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0xNTE3LDYg
KzE1MTcsMzYgQEAgc3RhdGljIFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yIHRvRWRpdGFi
bGVMaW5rQmVoYXZpb3IoX1dLRWRpdGFibGVMaW5rQmVoYXYKICAgICBfcHJlZmVyZW5jZXMtPnNl
dFJlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlBdWRpbyhyZXF1aXJlcyk7CiB9CiAKKy0gKEJP
T0wpX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+
ZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQoKTsKK30KKworLSAodm9pZClfc2V0RmlsZVN5c3RlbUFj
Y2Vzc0VuYWJsZWQ6KEJPT0wpZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQKK3sKKyAgICBfcHJlZmVy
ZW5jZXMtPnNldEZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkKGZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVk
KTsKK30KKworLSAoQk9PTClfc3RvcmFnZUFQSUVuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZl
cmVuY2VzLT5zdG9yYWdlQVBJRW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRTdG9yYWdlQVBJ
RW5hYmxlZDooQk9PTClzdG9yYWdlQVBJRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0
U3RvcmFnZUFQSUVuYWJsZWQoc3RvcmFnZUFQSUVuYWJsZWQpOworfQorCistIChCT09MKV9hY2Nl
c3NIYW5kbGVFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YWNjZXNzSGFuZGxl
RW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRBY2Nlc3NIYW5kbGVFbmFibGVkOihCT09MKWFj
Y2Vzc0hhbmRsZUVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEFjY2Vzc0hhbmRsZUVu
YWJsZWQoYWNjZXNzSGFuZGxlRW5hYmxlZCk7Cit9CisKIEBlbmQKIAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IDUwNjAzYTFiOWYyZjc4OWI1NjBjMDNmZGJjYmE5NDc1ZTQ5NGMyZmMuLjU5OTY5YjY0
YTY1ZWI4ZTVmMDE0MDNiYjZjNzM0OWQ4MzgyMmVmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0x
NzMsNiArMTczLDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0
aW9uQWxnb3JpdGhtKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNl
c3Npb25FbmFibGVkOikgQk9PTCBfbWVkaWFTZXNzaW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1f
aXNFeHRlbnNpYmxlU1NPRW5hYmxlZCwgc2V0dGVyPV9zZXRFeHRlbnNpYmxlU1NPRW5hYmxlZDop
IEJPT0wgX2V4dGVuc2libGVTU09FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCks
IGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1Bh
Z2VWaXNpYmlsaXR5VG9QbGF5QXVkaW86KSBCT09MIF9yZXF1aXJlc1BhZ2VWaXNpYmlsaXR5VG9Q
bGF5QXVkaW8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkOikgQk9P
TCBfZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFN0b3JhZ2VBUElFbmFibGVkOikgQk9PTCBfc3RvcmFnZUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFjY2Vzc0hhbmRsZUVuYWJsZWQ6KSBCT09MIF9hY2Nlc3NIYW5k
bGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0V2ViR0xFbmFibGVkOikgQk9PTCBfd2ViR0xFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNWIzMmViYTIyMDhhNGQ4NDljNDU3MDcxYmNhNDM4OTYyNTIx
NzBlNS4uMTE5YWE1M2VjYjM3MGNhODFjMDY4ZDhmOTgwOWUwZmY3ZTU5YmVkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDcyLDYg
KzE0NzIsNyBAQAogCQk5MzA4NURERjI2RTVCQ0YxMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTkzMDg1REUwMjZFNUJDRkQwMDBFQzZB
NyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1REM0MjZFMUJCQkQwMDBFQzZBNyAvKiBOZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMwODVERTEyNkU1QkQxMzAwMEVDNkE3IC8qIE5ldHdv
cmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8q
IFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmgg
Ki87IH07CiAJCTkzMTJCQUQ1MjZGMzNDMjYwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLzsg
fTsKIAkJOTMxMkJBRDYyNkYzM0MyOTAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFBMDc1
MzI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCAqLzsgfTsKIAkJ
OTMxQTFCRTIyNkY4NzAwOTAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUExQkUwMjZGODVD
MzIwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yLmggKi87IH07CkBAIC0xNDg0LDYg
KzE0ODUsOCBAQAogCQk5MzNFODM1QTIzQTFBRTI4MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
M0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovOyB9Owog
CQk5MzNFODM1QjIzQTFCNzUwMDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4
MzU4MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQk5MzQyNTg5QTI1NUI1MzVBMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQy
NTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi87IH07
CisJCTkzNDY4RTZCMjcxNEFGNDcwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZBMjcxNEFG
NDcwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNwcCAqLzsgfTsKKwkJOTM0NjhFNkQyNzE0
QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2QzI3MTRBRjg4MDA5OTgzRTMg
LyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAw
QUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0
aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzNTQyNDJDMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNTQyNDJBMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREMyMTUyQjZCNTAwRTZENURGIC8qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
ICovOyB9OwpAQCAtNDk0OSw2ICs0OTUyLDcgQEAKIAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3
IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAy
MDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5l
dHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNo
YXJlZEZpbGVIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVk
RmlsZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2
MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MTI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzMUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00OTY3LDYgKzQ5NzEs
OCBAQAogCQk5MzNFODM1OTIzQTFBREY1MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSURCU2VydmVyTWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSURCU2VydmVyTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTM0MjU4OEYyNTU1RENBNTAw
NTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTM0MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBlcm1pc3Npb25VdGls
aXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkEyNzE0QUY0NzAw
OTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2Eu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRs
ZUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlC
RTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzM1
OCw2ICs3MzY0LDggQEAKIAkJCQk1Q0M1REI5MTIxNDg4RTE2MDA2Q0I4QTggLyogU2hhcmVkQnVm
ZmVyQ29weS5oICovLAogCQkJCTJEQzE4NTVFREJGQjg1MEJBMEI2RDA2RCAvKiBTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlLmNwcCAqLywKIAkJCQkyREMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyog
U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICovLAorCQkJCTkzNDY4RTZBMjcxNEFGNDcwMDk5
ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNwcCAqLywKKwkJCQk5MzEyMkM4NTI3MTBDQ0RFMDAx
RDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICovLAogCQkJCTdCNzMxMjM2MjVDQzg1MjQwMDNC
Mjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk3QjczMTIzMzI1Q0M4
NTIzMDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oICovLAogCQkJCTdCNzMxMjM0
MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcCAqLywKQEAgLTEx
MTMwLDYgKzExMTM4LDcgQEAKIAkJCQkxQTZEODZCRjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1l
c3NhZ2UuY3BwICovLAogCQkJCTFBNkQ4NkMwMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2Fn
ZS5oICovLAogCQkJCUJDQzU2Rjc3MTE1OTk1N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oICovLAor
CQkJCTkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3Bw
ICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xMjY1NCw2ICsxMjY2Myw3IEBACiAJCQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8q
IFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBD
MTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxl
SGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyog
U2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcw
OTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNG
N0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTQ2MTYsNiArMTQ2MjYsOCBAQAogCQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0OTNG
RCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGRUJGMzM3
Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNvcHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkRDMTgxMjQ1QjU0OTM0M0JDOTgxNjRDIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NjhFNkIyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZp
bGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NjhFNkQyNzE0QUY4ODAwOTk4M0Uz
IC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUFEQUZC
NjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0QxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDYw
MzEyN2JlNjc4NDk4MWQzMGFhNGE3NjIxOTc1NWQzZWYzNjIyNWMuLjk2ODVmY2ZhOGU5YzU2YmEy
ODY2OTliYTEyMWEwNzBjNDMyYjIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xMjEsNyArMTIxLDggQEAgdm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUgKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOworICAgICAgICBh
dXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnZhbHVlKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHN0ZDo6cGFpciB7IHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQuaGFu
ZGxlKCkgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCBhYTVhOGRkMTc0M2ExY2I5NGQzNGJm
YTVhY2RhNjBmNjVkNWYzZDNjLi42YjMxYjZlZDZiNjdmMGJlYjA2MWM3ZmEyZGNlYmUyNTE2OGY0
N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiLmluCkBAIC0xOTM2LDYgKzE5MzYsNyBAQAogICAgICAgICAoc3lzY2FsbC1udW1i
ZXIgU1lTX2Nvbm5lY3Rfbm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2Vu
ZHRvX25vY2FuY2VsKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAg
ICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNj
YWxsLW51bWJlciBTWVNfZmlsZXBvcnRfbWFrZXBvcnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJl
ciBTWVNfZ3VhcmRlZF9vcGVuX25wKQogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJk
ZWRfY2xvc2VfbnApCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggM2U0M2JjYTMxYmJmZWFjMTI3NTM3NDRjYzVmM2MwYzFlMGM5ZTAwZS4uNTE1ODY0
NTY1NzBiNGQwMTM0NmYyYzZmZDZhZTY2YjE2YTliODM1OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTEx
ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0ZpbGVTeXN0ZW1BY2Nlc3MubW06IEFkZGVkLgorICAgICAgICAoLVtGaWxlU3lzdGVtQWNjZXNz
TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNz
YWdlOl0pOgorICAgICAgICAodGVzdCk6CisKIDIwMjEtMTAtMTEgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNsaWdodGx5IGJldHRlciBpZGlvbSBmb3IgQVJDIGRl
YnVnIGF1dG9yZWxlYXNlIHdvcmthcm91bmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjc1
YTVkMGY5Mjg5ODc0ZmFhMDU2MzdlNWMwOGFlMjZhOWQ2NDM2OS4uODAxZTQ3NDA1ODcyZTgwOTA1
OGQwNDNkMmE2ZGY3MzVmMGNlYjc4NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg1NCw2
ICs4NTQsNyBAQAogCQk5MzNENjMxRDFGQ0I3NjIwMDAzMkVDRDYgLyogSGFzaGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0Q2MzFCMUZDQjc2
MTgwMDMyRUNENiAvKiBIYXNoZXIuY3BwICovOyB9OwogCQk5MzQyNTg5QzI1NUI2MDlCMDA1OUVF
REQgLyogU3BlZWNoUmVjb2duaXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5QjI1NUI2MDlBMDA1OUVFREQgLyogU3BlZWNoUmVjb2du
aXRpb24ubW0gKi87IH07CiAJCTkzNDI1ODlFMjU1QjZBMTIwMDU5RUVERCAvKiBzcGVlY2hyZWNv
Z25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5RDI1NUI2NkEwMDA1
OUVFREQgLyogc3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0
bWwgKi87IH07CisJCTkzNDY4RTZGMjcxNEI0RjIwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NjhF
NkUyNzE0QjRGMTAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gKi87IH07CiAJCTkzNTc4
NkNDMjBGNkEyNzAwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzUyMEY2OUZF
RDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCAqLzsgfTsKIAkJOTM1Nzg2Q0QyMEY2
QTI5MTAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAv
KiBJbmRleGVkREIuc3FsaXRlMyAqLzsgfTsKIAkJOTM1Nzg2Q0UyMEY2QTJBMTAwMDBDREZDIC8q
IEluZGV4ZWREQi5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERC
LnNxbGl0ZTMtc2htICovOyB9OwpAQCAtMjU4Miw2ICsyNTgzLDcgQEAKIAkJOTMzRDYzMUIxRkNC
NzYxODAwMzJFQ0Q2IC8qIEhhc2hlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIYXNoZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5
QjI1NUI2MDlBMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXRpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OUQyNTVCNjZBMDAwNTlFRUREIC8qIHNwZWVjaHJl
Y29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gInNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0
ZW5jZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkUyNzE0QjRG
MTAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBGaWxlU3lzdGVtQWNjZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzRGQTVDNTIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMt
d2FsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmls
ZTsgcGF0aCA9ICJJbmRleGVkREIuc3FsaXRlMy13YWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2ht
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsg
cGF0aCA9ICJJbmRleGVkREIuc3FsaXRlMy1zaG0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzRGQTVDNzIwRjY5RkVFMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0g
SW5kZXhlZERCLnNxbGl0ZTM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTEwLDYg
KzM1MTIsNyBAQAogCQkJCTZCMjVBNzUxMjVEQzhENEUwMDcwNzQ0RiAvKiBFdmVudEF0dHJpYnV0
aW9uLm1tICovLAogCQkJCUNEQTI5QjI4MjBGRDJBOTkwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVl
bk9uRW50ZXJQaVAubW0gKi8sCiAJCQkJMUQxMkJFQkYyNDVCRUY4NTAwNEMwQjdBIC8qIEV4aXRQ
aVBPblN1c3BlbmRWaWRlb0VsZW1lbnQubW0gKi8sCisJCQkJOTM0NjhFNkUyNzE0QjRGMTAwOTk4
M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNFNzAwMjBE
QTQ2IC8qIEZpbmRJblBhZ2UubW0gKi8sCiAJCQkJNTEyNDJDRDQyMzc0RTYxRTAwRUVEOUMxIC8q
IEZpbmRJblBhZ2VBUEkubW0gKi8sCiAJCQkJMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZp
cnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdG9uZS5tbSAqLywKQEAgLTU1NjgsNiArNTU3MSw3IEBA
CiAJCQkJN0NDRTdFRjExQTQxMUFFNjAwNDQ3QzRDIC8qIEZhaWxlZExvYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTc5NjUxRTcyMTZCRkRFRDAwNkVCRkU1IC8qIEZpZG9IaWRNZXNzYWdlVGVz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTMyRDc0QTFGMDIxNTE1MDAxNjJDNDQgLyogRmls
ZU1vbml0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NjhFNkYyNzE0QjRGMjAwOTk4M0Uz
IC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGMzFBNDEx
QUU2MDA0NDdDNEMgLyogRmluZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCQjFEMEE2
NTAwMDBGRUJDRjMgLyogRmluZEluUGFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMjQyQ0Q1
MjM3NEU2MjUwMEVFRDlDMSAvKiBGaW5kSW5QYWdlQVBJLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1B
Y2Nlc3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0
ZW1BY2Nlc3MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBmY2QzMWI4Y2IzNTExMWFkYTYxYWE3MjQyYmU0NTY0
YzU1MjJhNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQpAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwor
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RVUkxTY2hlbWVIYW5k
bGVyLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKworc3RhdGlj
IGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlOworc3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1l
c3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOworCitAaW50ZXJmYWNlIEZpbGVTeXN0ZW1BY2Nlc3NN
ZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyCisKKy0gKHZv
aWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJD
b250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdl
ICopbWVzc2FnZQoreworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgbGFz
dFNjcmlwdE1lc3NhZ2UgPSBtZXNzYWdlOworfQorCitAZW5kCisKK3N0YXRpYyBOU1N0cmluZyAq
bWFpbkZyYW1lU3RyaW5nID0gQCI8c2NyaXB0PiBcCisgICAgZnVuY3Rpb24gc3RhcnQoKSB7IFwK
KyAgICAgICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoJ3dvcmtlci5qcycpOyBcCisgICAgICAg
IHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyBcCisgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC5k
YXRhKTsgXAorICAgICAgICB9OyBcCisgICAgfSBcCisgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BhZ2UgaXMgbG9hZGVkJyk7IFwKKyAg
ICA8L3NjcmlwdD4iOworCitzdGF0aWMgY29uc3QgY2hhciogd29ya2VyQnl0ZXMgPSBSIlRFU1RS
RVNPVVJDRSgKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIHZh
ciByb290SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7Cisg
ICAgICAgIHZhciBmaWxlSGFuZGxlID0gYXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCdm
aWxlLXN5c3RlbS1hY2Nlc3MudHh0JywgeyAnY3JlYXRlJyA6IHRydWUgfSk7CisgICAgICAgIHZh
ciBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
KTsKKyAgICAgICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcigxMCk7CisgICAgICAgIHZh
ciB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUud3JpdGUoYnVmZmVyLCB7ICJhdCIgOiAwIH0pOwor
ICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdzdWNjZXNzOiB3cml0ZSAnICsgd3JpdGVTaXplICsg
JyBieXRlcycpOworICAgIH0gY2F0Y2ggKGVycikgeworICAgICAgICBzZWxmLnBvc3RNZXNzYWdl
KCdlcnJvcjogJyArIGVyci5uYW1lICsgJyAtICcgKyBlcnIubWVzc2FnZSk7CisgICAgICAgIGNs
b3NlKCk7CisgICAgfQorfQordGVzdCgpOworKVRFU1RSRVNPVVJDRSI7CisKK1RFU1QoRmlsZVN5
c3RlbUFjY2VzcywgUHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCit7CisgICAgYXV0byBoYW5kbGVy
ID0gYWRvcHROUyhbW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJv
bGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhh
bmRsZXIiXTsKKyAgICBhdXRvIHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdOworICAgIHByZWZlcmVuY2VzLl9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZCA9IFlFUzsKKyAg
ICBwcmVmZXJlbmNlcy5fYWNjZXNzSGFuZGxlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNl
cy5fc3RvcmFnZUFQSUVuYWJsZWQgPSBZRVM7CisgICAgYXV0byBzY2hlbWVIYW5kbGVyID0gYWRv
cHROUyhbW1Rlc3RVUkxTY2hlbWVIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW3NjaGVtZUhh
bmRsZXIgc2V0U3RhcnRVUkxTY2hlbWVUYXNrSGFuZGxlcjpeKFdLV2ViVmlldyAqLCBpZDxXS1VS
TFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJl
c3BvbnNlOworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhOworICAgICAgICBOU1VSTCAq
cmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSgi
d2Via2l0Oi8vd2Via2l0Lm9yZy93b3JrZXIuanMiLCByZXF1ZXN0VVJMLmFic29sdXRlU3RyaW5n
KTsKKyAgICAgICAgcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5p
dFdpdGhVUkw6cmVxdWVzdFVSTCBNSU1FVHlwZTpAInRleHQvamF2YXNjcmlwdCIgZXhwZWN0ZWRD
b250ZW50TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAgICAgICAgZGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhCeXRlczp3b3JrZXJCeXRlcyBsZW5ndGg6c3RybGVuKHdvcmtlckJ5dGVz
KV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07Cisg
ICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGEuZ2V0KCldOworICAgICAgICBbdGFzayBk
aWRGaW5pc2hdOworICAgIH1dOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6c2NoZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ3ZWJraXQiXTsKKworICAgIC8v
IGxvYWQgZmlyc3Qgd2ViIHZpZXcgJiBzdGFydCB0ZXN0CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAIndlYmtpdDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3Jp
cHRNZXNzYWdlIGJvZHldKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0
YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwg
W2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIGF1dG8gc2Vjb25kV2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3NlY29u
ZFdlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJ3ZWJraXQ6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1l
c3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwYWdlIGlzIGxvYWRlZCIsIFts
YXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBBY2Nlc3MgaGFuZGxlIGNhbm5vdCBi
ZSBjcmVhdGVkIHdoZW4gdGhlcmUgaXMgYW4gb3BlbiBvbmUuCisgICAgW3NlY29uZFdlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiZXJy
b3I6IEludmFsaWRTdGF0ZUVycm9yIC0gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRl
LiIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICAvLyBPcGVuIGFjY2VzcyBoYW5k
bGUgc2hvdWxkIGJlIGNsb3NlZCB3aGVuIHdlYiBwcm9jZXNzIGNyYXNoZXMuCisgICAgW3dlYlZp
ZXcgX2tpbGxXZWJDb250ZW50UHJvY2Vzc107CisKKyAgICBbc2Vjb25kV2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBi
b2R5XSk7Cit9CisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhk
Mjg1YTg2OWNiNmVkZGM4MGE0ZWM3ZDk0MTZlZGVlZGU3MWUyYzMuLmZkNzhjMjlhNjg3YWIwMjgz
MDNiNWYzYzlkNjgyZmZlNTdjYzMwMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0xMC0x
MSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChmaW5pc2hUZXN0
KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9BcnJh
eUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAgICAgICAgKGFz
eW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUt
d29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NPT1BdIENyYXNoIHVuZGVyIFJlcG9ydGluZ0VuZHBvaW50
c0NhY2hlOjphZGRFbmRwb2ludEZyb21EaWN0aW9uYXJ5KCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxl
LXJlYWQtd3JpdGUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVz
b3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZTll
MGMyYjA5MDNiMzI5ZTRiZGEzMGQ5YWVmY2Q2Y2IwZDdhMDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNz
LWhhbmRsZS1yZWFkLXdyaXRlLmpzCkBAIC0wLDAgKzEsOTUgQEAKK2lmICh0aGlzLmltcG9ydFNj
cmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5q
cycpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBiYXNpYyBmdW50aW9uYWxp
dGllcyBvZiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS4iKTsKKwordmFyIGFjY2Vzc0hhbmRs
ZSwgZmlsZVNpemUsIHdyaXRlQnVmZmVyLCB3cml0ZVNpemUsIHJlYWRCdWZmZXIsIHJlYWRTaXpl
LCByZWFkVGV4dCwgcmVhZEVycm9yOwordmFyIHRvdGFsUmVhZFNpemUgPSAwLCB0b3RhbFdyaXRl
U2l6ZSA9IDA7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9y
KSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKworZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0cmluZyhidWZmZXIpCit7CisgICAgcmV0
dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgbmV3IFVpbnQxNkFycmF5KGJ1ZmZl
cikpOworfQorCitmdW5jdGlvbiBzdHJpbmdUb0FycmF5QnVmZmVyKHN0cmluZykKK3sKKyAgICB2
YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHN0cmluZy5sZW5ndGgqMik7CisgICAgdmFyIGJ1
ZmZlclZpZXcgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsKKyAgICBmb3IgKGxldCBpID0gMDsg
aSA8IHN0cmluZy5sZW5ndGg7IGkrKykgeworICAgICAgICBidWZmZXJWaWV3W2ldID0gc3RyaW5n
LmNoYXJDb2RlQXQoaSk7CisgICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CisKK2Z1bmN0aW9u
IHdyaXRlKGFjY2Vzc0hhbmRsZSwgb2Zmc2V0LCB0ZXh0KQoreworICAgIHdyaXRlQnVmZmVyID0g
c3RyaW5nVG9BcnJheUJ1ZmZlcih0ZXh0KTsKKyAgICB3cml0ZVNpemUgPSBhY2Nlc3NIYW5kbGUu
d3JpdGUod3JpdGVCdWZmZXIsIHsgImF0IiA6IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgid3Jp
dGVTaXplIiwgIndyaXRlQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gd3JpdGVTaXpl
OworfQorCitmdW5jdGlvbiByZWFkKGFjY2Vzc0hhbmRsZSwgb2Zmc2V0LCBzaXplKQoreworICAg
IHJlYWRCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisgICAgcmVhZFNpemUgPSBhY2Nl
c3NIYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7ICJhdCI6IG9mZnNldCB9KTsKKyAgICBzaG91bGRC
ZSgicmVhZFNpemUiLCAicmVhZEJ1ZmZlci5ieXRlTGVuZ3RoIik7CisgICAgcmV0dXJuIGFycmF5
QnVmZmVyVG9TdHJpbmcocmVhZEJ1ZmZlcik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7
CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3Rv
cmFnZS5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGZpbGUgZm9yIHRo
aXMgdGVzdC4KKyAgICAgICAgYXdhaXQgcm9vdEhhbmRsZS5yZW1vdmVFbnRyeSgic3luYy1hY2Nl
c3MtaGFuZGxlLnR4dCIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgICAgICB2YXIg
ZmlsZUhhbmRsZSA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0RmlsZUhhbmRsZSgic3luYy1hY2Nlc3Mt
aGFuZGxlLnR4dCIsIHsgImNyZWF0ZSIgOiB0cnVlICB9KTsKKyAgICAgICAgYWNjZXNzSGFuZGxl
ID0gYXdhaXQgZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgIjAiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCByZWFkKCkgYW5kIHdyaXRl
KCk6Iik7CisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgMCwg
IlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7CisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nl
c3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVTaXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWFkVGV4dCIsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICB0b3Rh
bFJlYWRTaXplICs9IHJlYWRUZXh0Lmxlbmd0aCAqIDI7CisKKyAgICAgICAgdG90YWxXcml0ZVNp
emUgKz0gd3JpdGUoYWNjZXNzSGFuZGxlLCB0b3RhbFdyaXRlU2l6ZSwgIlRoaXMgaXMgc2Vjb25k
IHNlbnRlbmNlLiIpOworICAgICAgICByZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCB0b3Rh
bFJlYWRTaXplLCB0b3RhbFdyaXRlU2l6ZSAtIHRvdGFsUmVhZFNpemUpOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlYWRUZXh0IiwgIlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIp
OworCisgICAgICAgIHJlYWRUZXh0ID0gcmVhZChhY2Nlc3NIYW5kbGUsIDAsIHRvdGFsV3JpdGVT
aXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlz
IGZpcnN0IHNlbnRlbmNlLlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworCisgICAgICAgIGRl
YnVnKCJ0ZXN0IGZsdXNoKCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgp
OworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAg
ICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICJ0b3RhbFdyaXRlU2l6ZSIpOworCisgICAgICAgIGRl
YnVnKCJ0ZXN0IHRydW5jYXRlKCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS50cnVu
Y2F0ZSg0KTsKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZp
bGVTaXplID0gYXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUo
ImZpbGVTaXplIiwgIjQiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCB3cml0ZSgpIHdpdGggcGVu
ZGluZyBvcGVyYXRpb246Iik7CisgICAgICAgIGV2YWxBbmRMb2coImFjY2Vzc0hhbmRsZS50cnVu
Y2F0ZSgwKSIpOworICAgICAgICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDQpOworICAg
ICAgICBzaG91bGRUaHJvdygiYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyBcImF0XCIg
OiAwIH0pIik7CisKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmNsb3NlKCk7CisgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBmaW5pc2hUZXN0
KGVycm9yKTsKKyAgICB9Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5
bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDFjZDU5YjczOGYyMTQ0MDhlOGQ2YTBiYzlhNzcwYjgzMTIxMDA0NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1o
YW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK1tX
b3JrZXJdIFRoaXMgdGVzdCBjaGVja3MgYmFzaWMgZnVudGlvbmFsaXRpZXMgb2YgRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFy
dGluZyB3b3JrZXI6IHJlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcwor
UEFTUyBbV29ya2VyXSBmaWxlU2l6ZSBpcyAwCitbV29ya2VyXSB0ZXN0IHJlYWQoKSBhbmQgd3Jp
dGUoKToKK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVMZW5ndGgK
K1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtX
b3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIKK1BBU1MgW1dvcmtl
cl0gd3JpdGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVh
ZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlz
ICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJl
YWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBm
aXJzdCBzZW50ZW5jZS5UaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iCitbV29ya2VyXSB0ZXN0IGZs
dXNoKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIHRvdGFsV3JpdGVTaXplCitbV29ya2Vy
XSB0ZXN0IHRydW5jYXRlKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIDQKK1tXb3JrZXJd
IHRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOgorW1dvcmtlcl0gYWNjZXNzSGFu
ZGxlLnRydW5jYXRlKDApCitQQVNTIFtXb3JrZXJdIGFjY2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZm
ZXIsIHsgImF0IiA6IDAgfSkgdGhyZXcgZXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBBY2Nl
c3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcxNmY3MWM4MDMw
ZGNkMTBjNjVkYTM4MzZlNGQ5NWM4YzI2M2VlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0
ZS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1o
YW5kbGUtcmVhZC13cml0ZS5qcycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440954</attachid>
            <date>2021-10-12 10:30:07 -0700</date>
            <delta_ts>2021-10-12 14:02:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231466-20211012103006.patch</filename>
            <type>text/plain</type>
            <size>80904</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLmUwN2Y2YmUzMmViNzYyMWY1YTU3ODU3ZmE1ZGE1ZmY0MjViYmRk
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9ubHkgbWFyayBuZWVkZWQgSlNPTkltcGw6Ok9i
amVjdEJhc2UgZnVuY3Rpb25zIHdpdGggV1RGX0VYUE9SVF9QUklWQVRFCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzgyNmZjMGRlMTY4NTAwMGQ0ZjQwYjBlMzY2MTliNDgyYzJjODE1Ny4uODVmODE2MTFlMjZhNDRk
YjQ2ZmYzMmI4MDMzY2MxNmRlMzk2NWNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisy
MDIxLTEwLTExICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlYWQoKSBhbmQgd3JpdGUoKSBhY2Nv
cmRpbmcgdG8gcHJvcG9zYWw6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9ibG9iL21haW4vQWNjZXNzSGFuZGxlLm1kCisKKyAgICAgICAgVGVzdDog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLXdv
cmtlci5odG1sCisgICAgICAgIEFQSSB0ZXN0OiBGaWxlU3lzdGVtQWNjZXNzLlByb2Nlc3NDcmFz
aER1cmluZ1dyaXRlCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpmbHVzaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTAtMTEgIEtpZXQgSG8gIDx0
aG8yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1ha2Vwcm9wLnBsIHRvIG5vdCB0cmVhdCAi
aW5oZXJpdGVkOiBmYWxzZSIgcHJvcGVydGllcyBhcyBpbmhlcml0ZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBmZDliMTE0OGZjZjVlODBmMThlODgwNDAzOWQ0MjM3ZTkwMTlkZDFlLi42ZWY2Y2Fk
ODEzY2NiMDEzYTQ3YTE5YmRjMjFkYzc3NmNlNTM5OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgp
IGFuZCB3cml0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oOiBB
ZGRlZC4KKwogMjAyMS0xMC0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU11bR1BVIFByb2Nlc3NdIHN1cHBvcnQgYDxhdHRhY2htZW50PmAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNzMwZDE1MGM5ZGUyZTI2ZDgwY2I5MzUwM2Y1YzdjOWExYjllZjUxMy4uZTQ1MDU1Mjk0
NjdmZTY1OTE0YzYyZjljYjQ5YWI1MGYxNmE0ZDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBA
QAorMjAyMS0xMC0xMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBuZXR3b3JrIHByb2Nlc3Mgb3BlbiB0aGUg
ZmlsZSBhbmQgcGFzcyBmaWxlIGRlc2NyaXB0b3IgdG8gd2ViIHByb2Nlc3MsIHNvIHRoYXQgd2Vi
IHByb2Nlc3MgY2FuIHJlYWQgYW5kIAorICAgICAgICB3cml0ZSB0aGUgZmlsZSB3aXRob3V0IHNl
bmRpbmcgSVBDIG1lc3NhZ2VzLiBDdXJyZW50bHkgZ2V0dGluZyBmaWxlIHNpemUsIHRydW5jYXRp
bmcgZmlsZSBhbmQgc3luY2luZyBmaWxlIGFyZSAKKyAgICAgICAgc3RpbGwgcGVyZm9ybWVkIGJ5
IG5ldHdvcmsgcHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9FeGNlcHRp
b24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpj
bG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChJUEM6OlNoYXJlZEZp
bGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaDogQWRkZWQuCisgICAgICAgIChJ
UEM6OlNoYXJlZEZpbGVIYW5kbGU6OmhhbmRsZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVI
YW5kbGU6OlNoYXJlZEZpbGVIYW5kbGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9jb2NvYS9T
aGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwOiBBZGRlZC4KKyAgICAgICAgKElQQzo6U2hhcmVkRmls
ZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQuc2IuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZF0p
OgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRGaWxlU3lzdGVtQWNjZXNzRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc3RvcmFnZUFQSUVuYWJsZWRdKToKKyAgICAg
ICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0U3RvcmFnZUFQSUVuYWJsZWQ6XSk6CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX2FjY2Vzc0hhbmRsZUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0QWNjZXNzSGFuZGxlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMjEt
MTAtMTEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbR1BVIFByb2Nlc3NdIFVuaXF1ZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzIFBhcnQg
NTogVW5pcXVpZnkgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBhdCBlbnRyeSBwb2ludHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IGU2ZmU4ZGJmYmJhMjNkYzE0ZGMxMTNk
ODk3OTNlZjY3ODI0NDBiYjIuLmNiZTQ2ZjIwMWYxZTJhMGNiZTMzOWIwMjFmNzdjY2QxNmFmMTNm
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBA
IHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKSk7CiAKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkp
OworICAgICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3Jl
YXRlKHByb3RlY3RlZFRoaXMuZ2V0KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5z
ZWNvbmQpKTsKICAgICB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6
ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkK
K3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAg
Y29ubmVjdGlvbigpLmdldFNpemUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5j
YXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0
aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXpl
LCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAg
ICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICBjb25u
ZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBz
aXplLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZp
bGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQor
dm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29u
bmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlv
bigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9z
ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggYWZjZWExZjcw
MTM3OTA4ZmUxYzc0MGUxZmZlZWIxZGU3ODE0NDE1NC4uNzQyMDc2ODM4ODI1MWFjNjhhNTVlYmIz
NGQwYThjMmZjNTlkNWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTQxLDkg
KzQxLDkgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGU+PiYmKTsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShE
T01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Pj4mJik7Ci0gICAgdm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwotICAgIHZv
aWQgdHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAgIHZvaWQg
Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRf
dD4mJik+JiYpOworICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dm9pZD4mJik+JiYpOwogICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYp
PiYmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aAppbmRleCA5YzA1NzY4ZDNiZjE4ZGQxNDFjNTlkYTkxYmU1YWRjNDUwYWFjZGQ0Li40YmE5YzU4
MGRhMTZkZWQxZGVlY2ZhZjhiNDQyZjY4ODE1Zjg0ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8Ym9vbD4mJik+OwogICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4m
Jik+OwogICAgIHVzaW5nIFJlc29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPjsKLSAgICB1c2luZyBHZXRBY2Nlc3NIYW5k
bGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmKT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFu
ZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFp
cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRm
b3JtRmlsZUhhbmRsZT4+JiYpPjsKICAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBJbnRlZ2VyQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47
CiAgICAgdXNpbmcgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IGZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNmMGI2
ZDYxZGU3NmQyYWIuLmQyMmUyMDgwYjZjYzY0N2MzZTViZmU5MWVjNTI0NzZjYWE5ZDQ4OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzQsMTQgKzM0
LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyKQorUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0
Zm9ybUZpbGVIYW5kbGUgZmlsZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIs
IGZpbGUpKTsKIH0KIAotRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBz
b3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBG
aWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKICAgICA6IG1fc291cmNlKHNvdXJj
ZSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9maWxlKGZpbGUpCiB7
CiB9CiAKQEAgLTUzLDE3ICs1NCwzNSBAQCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmll
ciwgc2l6ZSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQr
KzsKKyAgICBtX3NvdXJjZS0+dHJ1bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJl
c3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtU
aGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OmdldFNpemUoRE9NUHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+
JiYgcHJvbWlzZSkKIHsKLSAgICBtX3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdURk1v
dmUocHJvbWlzZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3Vy
Y2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRp
b25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Cisg
ICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmZsdXNoKG1f
aWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQrKzsKKyAgICBtX3NvdXJjZS0+Zmx1c2gobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5t
X3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU6OmNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCkBAIC03MSw5ICs5
MCwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNl
RGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAK
KyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwogICAgIG1fc291cmNlLT5jbG9zZShtX2lk
ZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKHdlYWtUaGlz
KQorICAgICAgICBpZiAod2Vha1RoaXMpIHsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRp
bmdPcGVyYXRpb25Db3VudC0tOwogICAgICAgICAgICAgd2Vha1RoaXMtPmRpZENsb3NlKCk7Cisg
ICAgICAgIH0KIAogICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAg
IH0pOwpAQCAtODQsNCArMTA2LDQ2IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmRpZENsb3NlKCkKICAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKIH0KIAorRXhjZXB0aW9uT3I8dW5z
aWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZChCdWZmZXJT
b3VyY2UmJiBidWZmZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlc3lzdGVtUmVh
ZFdyaXRlT3B0aW9ucyBvcHRpb25zKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
CisgICAgaWYgKG1fZmlsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
IHx8IG1faXNDbG9zZWQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OworCisgICAgaWYgKG1fcGVuZGluZ09wZXJhdGlvbkNvdW50KQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJBY2Nlc3MgaGFuZGxlIGhhcyB1bmZp
bmlzaGVkIG9wZXJhdGlvbiJfcyB9OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNl
ZWtGaWxlKG1fZmlsZSwgb3B0aW9ucy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJl
Z2lubmluZyk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQgYXQgb2Zmc2V0Il9zIH07CisK
KyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjpyZWFkRnJvbUZpbGUobV9maWxlLCBidWZmZXIubXV0
YWJsZURhdGEoKSwgYnVmZmVyLmxlbmd0aCgpKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVh
ZCBmcm9tIGZpbGUiX3MgfTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9y
PHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKEJ1
ZmZlclNvdXJjZSYmIGJ1ZmZlciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVzeXN0
ZW1SZWFkV3JpdGVPcHRpb25zIG9wdGlvbnMpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CisKKyAgICBpZiAobV9maWxlID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVI
YW5kbGUgfHwgbV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07CisKKyAgICBpZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFz
IHVuZmluaXNoZWQgb3BlcmF0aW9uIl9zIH07CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3Rl
bTo6c2Vla0ZpbGUobV9maWxlLCBvcHRpb25zLmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdp
bjo6QmVnaW5uaW5nKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gd3JpdGUgYXQgb2Zmc2V0Il9z
IH07CisKKyAgICByZXN1bHQgPSBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX2ZpbGUsIGJ1ZmZl
ci5kYXRhKCksIGJ1ZmZlci5sZW5ndGgoKSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRl
IHRvIGZpbGUiX3MgfTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjll
NDE1N2I2NTQxYjkzZTZlYTVmZTAyMzdmMGNmMjE1ZDAzYzNiZi4uMWZkOTI2YzMzMTM2M2Y3MWZm
NDg3MTRkNGU4YmNkZjU2MmQwN2VmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmgKQEAgLTI1LDE0ICsyNSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0
ZW0uaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERP
TVByb21pc2VEZWZlcnJlZDsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsK
IAogY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZT4gewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJl
ZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxl
JiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVm
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRm
b3JtRmlsZUhhbmRsZSk7CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAg
ICB2b2lkIHRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJik7CkBAIC00OCwxMyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2go
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1
bnNpZ25lZCBsb25nIGxvbmc+IHJlYWQoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3Jp
dGVPcHRpb25zKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKEJ1
ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CiAKIHByaXZhdGU6Ci0g
ICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogCiAgICAgUmVm
PEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBtX3NvdXJjZTsKICAgICBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZh
bHNlIH07CisgICAgdWludDY0X3QgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQgeyAwIH07CisgICAg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZmlsZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCmlu
ZGV4IDExMjA2NGE2ZGY2MTFjNDEyMWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEuLjZlYTU0Mzk3ZWVh
ZjM5MGQ2YzE3ODUxOGY3MjE2NWFiYWFkYTM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmlkbApAQCAtMzMsNiArMzMsOCBAQAogICAgIFByb21pc2U8dW5zaWdu
ZWQgbG9uZyBsb25nPiBnZXRTaXplKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGZsdXNoKCk7
CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGNsb3NlKCk7CisgICAgdW5zaWduZWQgbG9uZyBsb25n
IHJlYWQoW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2UgYnVmZmVyLCBGaWxlc3lzdGVtUmVhZFdy
aXRlT3B0aW9ucyBvcHRpb25zKTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgd3JpdGUoW0FsbG93
U2hhcmVkXSBCdWZmZXJTb3VyY2UgYnVmZmVyLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBv
cHRpb25zKTsKIH07CiAKIGRpY3Rpb25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApp
bmRleCAzNzY0MTMyYWVmM2FjMDA3MTM2NDg4ZTcwNmU3OTQ5ZGI4NjY3MTBiLi44YjhjYTRhYWM2
ZDU4MGQ3NWM5MjQzNDM3Mzg3Y2UwZDBmYmFmZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIHZv
aWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNr
SWRlbnRpZmllciBjYWxsYmFja0lkCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7
CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4
Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQp
Cit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRp
b25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmIHJlc3VsdCkKIHsKICAgICBpZiAoYXV0byBj
YWxsYmFjayA9IG1fZ2V0QWNjZXNzSGFuZGxDYWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50aWZp
ZXIpKQogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMjIxLDcgKzIyMSwx
MCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSQogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2Fs
bGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9
LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZp
ZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxi
YWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRv
IHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5w
b3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRD
b3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNy
b3NzVGhyZWFkUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgICAgICBjcm9zc1RocmVhZFJlc3VsdCA9IGNyb3NzVGhyZWFk
Q29weShyZXN1bHQuZXhjZXB0aW9uKCkpOworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IFdURk1v
dmUoY3Jvc3NUaHJlYWRSZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAg
ICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4o
c2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQogICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLT5kaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmll
ciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCmluZGV4IDZjZTdmZjQ2OTVkOWYwYTZiYmZhNDlkNmMxYTM0N2FjN2QyM2M5NGEuLjRk
ZTQzOTkyY2RiODM2ODQwZGU5YTE2OTU2MmI5ZjMwMTYxYTgwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkSXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25Pcjxib29sPiYmKTsKICAgICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZp
ZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKICAgICB2b2lk
IGRpZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5n
Pj4mJik7Ci0gICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYm
IHJlc3VsdCk7CisgICAgdm9pZCBkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRl
bnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik7CiAgICAgdm9p
ZCBjb21wbGV0ZVZvaWRDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZv
aWQ+JiYgcmVzdWx0KTsKICAgICB2b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNr
SWRlbnRpZmllciwgRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKICAgICB2b2lkIGRp
ZEdldEhhbmRsZU5hbWVzKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0
cmluZz4+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDAyNmYxNGI1Y2U5Y2FiOTMxYTMzMWU1MmI5MDAwYWE2YWY4NDIzNjUu
LjNlOTA1M2U0YzhjMjcyMGU2N2VjMjc3M2E1YTMyMDU5ZmUwMjcwNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1NCw2ICsx
NTQsNyBAQAogCQk3MUIxMTQyMDI2ODIzQUNEMDA0RDY3MDEgLyogU3lzdGVtUHJldmlld1NQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFCMTE0MUYy
NjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCAqLzsgfTsKIAkJN0EzNkQwRjky
MjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EzNkQwRjgyMjNBRDlBQjAwQjA1MjJFIC8qIENv
bW1vbkNyeXB0b1NQSS5oICovOyB9OwogCQk3QTNBNkE4MDIwQ0FEQjQ3MDAzMTdBQUUgLyogTlNJ
bWFnZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0EzQTZBN0YyMENBREI0NjAwMzE3QUFFIC8qIE5TSW1hZ2VTUEkuaCAqLzsgfTsKKwkJOTM0NjhF
NjcyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyogRmls
ZVBvcnRTUEkuaCAqLzsgfTsKIAkJOTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8qIFNwZWVjaFNv
ZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCAqLzsgfTsKIAkJOTNC
MzhFQzAyNTgyMUNEODAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQkYyNTgyMUNENzAwMTk4RTYz
IC8qIFNwZWVjaFNvZnRMaW5rLm1tICovOyB9OwogCQk5M0IzOEVDMjI1ODIxRDIyMDAxOThFNjMg
LyogU3BlZWNoU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0IzOEVDMTI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi87IH07CkBAIC0z
NzYsNiArMzc3LDcgQEAKIAkJNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZp
ZXdTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtUHJldmlld1NQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTM2RDBGODIyM0FEOUFCMDBCMDUy
MkUgLyogQ29tbW9uQ3J5cHRvU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvbW1vbkNyeXB0b1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTNBNkE3
RjIwQ0FEQjQ2MDAzMTdBQUUgLyogTlNJbWFnZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOU0ltYWdlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
NDY4RTY2MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxlUG9ydFNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGaWxlUG9ydFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0IzOEVCRDI1ODIxQ0I2MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoU29mdExpbmsuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMzhFQkYyNTgyMUNENzAwMTk4RTYzIC8qIFNwZWVjaFNvZnRM
aW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3BlZWNoU29m
dExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUMxMjU4MjFEMjIw
MDE5OEU2MyAvKiBTcGVlY2hTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzQsNiArNTM2LDcg
QEAKIAkJCQlERjgzRTIwODI2MzczNEYxMDAwODI1RUYgLyogQ3J5cHRvS2l0UHJpdmF0ZVNQSS5o
ICovLAogCQkJCTBDMkRBMTI1MUYzQkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNQ
SS5oICovLAogCQkJCTFEMTJDQzRBMjQxMUJDQUUwMEZEQTBBMyAvKiBGZWF0dXJlRmxhZ3NTUEku
aCAqLywKKwkJCQk5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyogRmlsZVBvcnRTUEkuaCAqLywK
IAkJCQlDRTU2NzM4NjIxNTFBN0I5MDAyRjkyRDcgLyogSU9LaXRTUEkuaCAqLywKIAkJCQkwQzJE
QTEyNjFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QTUxpYlNQSS5oICovLAogCQkJCTBDMkRBMTI3MUYz
QkVCNDkwMERCQzMxNyAvKiBJT1BTTGliU1BJLmggKi8sCkBAIC05MDAsNiArOTAzLDcgQEAKIAkJ
CQlBMTE3NUI1NzFGNkI0NzA1MDBDNEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwQzJEOUU3MzFFRUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0TWFjcm9z
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDEyQ0M0QjI0MTFCQ0FFMDBGREEwQTMgLyogRmVhdHVy
ZUZsYWdzU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQ2OEU2NzI3MTRBN0NEMDA5OTgzRTMg
LyogRmlsZVBvcnRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NDI5MTYwMUZBNTI2MUUwMDJD
QzkzRSAvKiBGaWxlU2l6ZUZvcm1hdHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUIx
RjQzQTRDNzAwMkVBQzAyIC8qIEdyYXBoaWNzU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFDMDIyRUZGMjJDRkVDNTMwMDZERjAxQiAvKiBHdW56aXAuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvRmlsZVBvcnRTUEku
aCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTQ1OTA1ZTZjMWRjNjY2OGYzYjI4NGI0NTBjOWIzNjNhOWM2MjQ2OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmgK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKwor
I2Vsc2UKKworZXh0ZXJuICJDIiB7CitpbnQgZmlsZXBvcnRfbWFrZXBvcnQoaW50LCBtYWNoX3Bv
cnRfdCopOworaW50IGZpbGVwb3J0X21ha2VmZChtYWNoX3BvcnRfdCk7Cit9CisKKyNlbmRpZiAv
LyAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQnVmZmVyU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9CdWZmZXJTb3VyY2UuaAppbmRleCA5MGU0N2M5ZWU1MDRkZjY0YjMzNDMzZDc1MDVjODRmYjc0
MzBmZmI4Li4wODZiNTU3Nzc0NzAxMDg1N2ZkYjFjN2EwODg1ZGU4NzVkMTk0YTA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaApAQCAtNDksNiArNDksMTMgQEAg
cHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlciA/IHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQ4X3QqPihidWZmZXItPmRhdGEoKSkgOiBudWxscHRyOwogICAgICAgICB9LCBtX3ZhcmlhbnQp
OwogICAgIH0KKyAgICAKKyAgICB2b2lkKiBtdXRhYmxlRGF0YSgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gV1RGOjp2aXNpdChbXShhdXRvJiBidWZmZXIpIC0+IHZvaWQqIHsKKyAgICAg
ICAgICAgIHJldHVybiBidWZmZXItPmRhdGEoKTsKKyAgICAgICAgfSwgbV92YXJpYW50KTsKKyAg
ICB9CiAKICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3IuaAppbmRleCAyODgyNDRmOGRmMGJhNGM0ZTFiN2IzODBkMzYwOTJkMzViMGI0YzhhLi4w
Mjc3MzdhMmI0MGIyYzI3MGVhYTY0YjhhNWY5ZTY0MzAxZWU4Nzk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUVycm9yLmgKQEAgLTMxLDkgKzMxLDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51
bSBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUVycm9yIDogdWludDhfdCB7CisgICAgQmFja2VuZE5v
dFN1cHBvcnRlZCwKICAgICBGaWxlTm90Rm91bmQsCi0gICAgSW52YWxpZE5hbWUsCiAgICAgSW52
YWxpZE1vZGlmaWNhdGlvbiwKKyAgICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkU3RhdGUsCiAg
ICAgVHlwZU1pc21hdGNoLAogICAgIFVua25vd24KQEAgLTQyLDE2ICs0MywxOCBAQCBlbnVtIGNs
YXNzIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgOiB1aW50OF90IHsKIGlubGluZSBXZWJDb3JlOjpF
eGNlcHRpb24gY29udmVydFRvRXhjZXB0aW9uKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgZXJyb3Ip
CiB7CiAgICAgc3dpdGNoIChlcnJvcikgeworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6QmFja2VuZE5vdFN1cHBvcnRlZDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlv
biB7IFdlYkNvcmU6Ok5vdFN1cHBvcnRlZEVycm9yLCAiQmFja2VuZCBkb2VzIG5vdCBzdXBwb3J0
IHRoaXMgb3BlcmF0aW9uIiB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6Rmls
ZU5vdEZvdW5kOgogICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
Tm90Rm91bmRFcnJvciB9OwogICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZE1vZGlmaWNhdGlvbjoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OkludmFsaWRNb2RpZmljYXRpb25FcnJvciB9OwotICAgIGNhc2UgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6VHlwZU1pc21hdGNoOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9u
IHsgV2ViQ29yZTo6VHlwZUVycm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpJbnZhbGlkTmFtZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNv
cmU6OlVua25vd25FcnJvciwgIk5hbWUgaXMgaW52YWxpZCIgfTsKICAgICBjYXNlIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4
Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRTdGF0ZUVycm9yIH07CisgICAgY2FzZSBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
eGNlcHRpb24geyBXZWJDb3JlOjpUeXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OlVua25vd246CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc0LDkgKzc3LDEw
IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IsCisgICAgICAgIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICAgICAg
V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpGaWxlTm90Rm91bmQsCi0gICAgICAgIFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICAgICAg
V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUsCiAgICAgICAgIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNoLAogICAgICAgICBXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUuY3BwCmluZGV4IDc3MmEwMDlmZTFhMDE5MDViMjA1OTQyMzRmYzU2ZmYzNzQwYjZmOWIuLjA4
ZjYwY2MxMmRlOTE0OTRjMmMwN2MwM2Y3YTcwMWY3MjM2MTQxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgor
I2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDMsNyArMTQ0LDcgQEAgRXhwZWN0ZWQ8VmVjdG9yPFN0
cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpy
ZXNvbHYKICAgICByZXR1cm4gcmVzdFBhdGguc3BsaXQocGF0aFNlcGFyYXRvcik7CiB9CiAKLUV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoKQorRXhwZWN0ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hh
bmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKIHsKICAgICBpZiAoIW1fbWFuYWdlcikKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24p
OwpAQCAtMTUyLDkgKzE1MywyMCBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+CiAgICAgaWYgKCFh
Y3F1aXJlZCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OkludmFsaWRTdGF0ZSk7CiAKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5G
aWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGlm
IChtX2hhbmRsZSA9PSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93
bik7CisKKyAgICBhdXRvIGlwY0hhbmRsZSA9IElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRl
KG1faGFuZGxlKTsKKyAgICBpZiAoIWlwY0hhbmRsZSkgeworICAgICAgICBGaWxlU3lzdGVtOjpj
bG9zZUZpbGUobV9oYW5kbGUpOworICAgICAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFs
aWRQbGF0Zm9ybUZpbGVIYW5kbGU7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpCYWNrZW5kTm90U3VwcG9ydGVkKTsKKyAgICB9CisKICAgICBB
U1NFUlQoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSk7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNz
SGFuZGxlID0gV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpn
ZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRs
ZTsKKyAgICByZXR1cm4gc3RkOjpwYWlyIHsgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSwgV1RG
TW92ZSgqaXBjSGFuZGxlKSB9OwogfQogCiBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
CkBAIC0xODAsMTIgKzE5Miw4IEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnRydW5jYXRlKFdlYkNvcmU6CiAgICAgaWYgKCFt
X2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VW5rbm93bjsKIAotICAgIGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUo
bV9wYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7Ci0gICAgYXV0byBj
bG9zZUZpbGVTY29wZSA9IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3RlbTo6
Y2xvc2VGaWxlKGhhbmRsZSk7Ci0gICAgfSk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0
ZW06OnRydW5jYXRlRmlsZShoYW5kbGUsIHNpemUpOworICAgIEFTU0VSVChtX2hhbmRsZSAhPSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9
IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShtX2hhbmRsZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1
bHQpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCkBA
IC0yMDAsNyArMjA4LDExIEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmZsdXNoKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFtX2Fj
dGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6VW5rbm93bjsKIAotICAgIC8vIEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBs
ZW1lbnRlZCwgcGVyZm9ybSBhY3R1YWwgZmx1c2ggaGVyZS4KKyAgICBBU1NFUlQobV9oYW5kbGUg
IT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgYXV0byByZXN1
bHQgPSBGaWxlU3lzdGVtOjpmbHVzaEZpbGUobV9oYW5kbGUpOworICAgIGlmICghcmVzdWx0KQor
ICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwogICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTIxMiw2ICsyMjQsMTAgQEAgc3RkOjpvcHRpb25h
bDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2Uo
V2ViQ29yZTo6RmkKICAgICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCisgICAgQVNTRVJUKG1faGFu
ZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZpbGVT
eXN0ZW06OmNsb3NlRmlsZShtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjpp
bnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworCiAgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0Zv
ckZpbGUobV9wYXRoLCBtX2lkZW50aWZpZXIpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRs
ZSA9IHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBkOThl
NGU5MzI4ZDIxZjAyNGIxM2I2MjNjZDQxOTlkZDFjNjZiOTg4Li5iYmRmZDRjZWUxYzcxMjY4Mjdi
NDBiMTE5NmM0Mzc3YmNmMTdjOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAt
MzAsNiArMzAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJ
UEMgeworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjsKQEAgLTUzLDcgKzU3LDggQEAgcHVibGlj
OgogICAgIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBn
ZXRIYW5kbGVOYW1lcygpOwogICAgIEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEhh
bmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5n
IEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVk
PEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoKTsKICAgICBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
OwogICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXpl
KTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CkBAIC02OCw2ICs3Myw3
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyPiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1G
aWxlSGFuZGxlIG1faGFuZGxlIHsgRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
Y3BwCmluZGV4IDJlY2ZlNDM3ZDAxOTdjYTIyMWZmNTIyODgyM2U3NzM3MzcyYTZjZTYuLjU1MTZm
YmI2Mjk0N2Y5OGRkZGU1OTIxY2Q3M2ZlYTMwMDQ3YTFhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OnJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAg
ICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPnJlc29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwog
fQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCA2YjMzNjA2MDI4ZDgwMWQ0ODQ2
MmVhNmU0MDZlNmI0Mjk1N2NmYTc0Li44ODQ1NTlhZDk3NjgyOTQ3OTVlZGY1Njg2NzU2MmFiYzZk
OTExMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJl
ZEZpbGVIYW5kbGU7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmln
aW47CiB9CkBAIC03MCw3ICs3NCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlI
YW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRl
bGV0ZVJlY3Vyc2l2ZWx5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxl
SW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJik7CiAgICAgdm9pZCBnZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsK
ICAgICB2b2lkIGZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5k
ZXggODZjYjI2YWNhOWVjYTIzNWMyNDc1YjkxNTc1YjYxNzFkODdjNmQ5My4uZWZlNTc0ODZjMWIy
ZDcxOGQxMzEyOGRmMDVlNDUyMmEwNjU5OWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUs
IGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJp
bmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAg
IENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCisgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFu
ZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAg
R2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFj
Y2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
U2hhcmVkRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRG
aWxlSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWJjZTk4MDA4N2MwNzViMDIzYjU4YWVhMmUxNTU4
NjBkNzY5NDY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
U2hhcmVkRmlsZUhhbmRsZS5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFyZWRGaWxlSGFuZGxlLmgiCisKK25hbWVzcGFj
ZSBJUEMgeworCisjaWYgIVBMQVRGT1JNKENPQ09BKQorCitzdGQ6Om9wdGlvbmFsPFNoYXJlZEZp
bGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGUpCit7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwordm9pZCBTaGFyZWRG
aWxlSGFuZGxlOjplbmNvZGUoRW5jb2RlciYpIGNvbnN0Cit7Cit9CisKK3N0ZDo6b3B0aW9uYWw8
U2hhcmVkRmlsZUhhbmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKERlY29kZXImKQorewor
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBJ
UEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5k
bGUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNDZhYzg5MDUwN2ViNjkzYTEwN2I0OTllNTQzNjA2YTc5N2U0NDlhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5o
CkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PGZjbnRsLmg+CisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KKworbmFtZXNwYWNlIElQQyB7
CisKK2NsYXNzIERlY29kZXI7CitjbGFzcyBFbmNvZGVyOworCitjbGFzcyBTaGFyZWRGaWxlSGFu
ZGxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxl
PiBjcmVhdGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKKworICAgIFNoYXJlZEZp
bGVIYW5kbGUoKSA9IGRlZmF1bHQ7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxl
IGhhbmRsZSgpIHsgcmV0dXJuIG1faGFuZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBk
ZWNvZGUoRGVjb2RlciYpOworICAgIAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTaGFyZWRGaWxl
SGFuZGxlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgICAgIDog
bV9oYW5kbGUoaGFuZGxlKQorICAgIHsKKyAgICB9CisKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYW5kbGUgbV9oYW5kbGUgeyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBJUEMKKworCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZjgyMjhhNzQ1ZmQzNWMyZGMzZWM3MTA1NzI2OTVkOTM4OTg0ZDEzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmls
ZUhhbmRsZUNvY29hLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVIYW5kbGUuaCIKKworI2luY2x1ZGUgIk1h
Y2hQb3J0LmgiCisjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oPgorCituYW1l
c3BhY2UgSVBDIHsKKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBTaGFyZWRGaWxl
SGFuZGxlOjpjcmVhdGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sK
KyAgICByZXR1cm4gU2hhcmVkRmlsZUhhbmRsZSB7IGhhbmRsZSB9OworfQorCit2b2lkIFNoYXJl
ZEZpbGVIYW5kbGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIG1hY2hf
cG9ydF9uYW1lX3QgZmlsZXBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKKyAgICBpZiAoZmlsZXBvcnRf
bWFrZXBvcnQobV9oYW5kbGUsICZmaWxlcG9ydCkgPT0gLTEpIHsKKyAgICAgICAgZW5jb2RlciA8
PCBNYWNoUG9ydCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZW5jb2RlciA8PCBN
YWNoUG9ydChmaWxlcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOworfQorCitzdGQ6Om9w
dGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIE1hY2hQb3J0IG1hY2hQb3J0OworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWFjaFBvcnQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIAorICAg
IGludCBmZCA9IGZpbGVwb3J0X21ha2VmZChtYWNoUG9ydC5wb3J0KCkpOworICAgIGlmIChmZCA9
PSAtMSkKKyAgICAgICAgcmV0dXJuIFNoYXJlZEZpbGVIYW5kbGUgeyB9OworCisgICAgcmV0dXJu
IFNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgp
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggN2UyM2Q2MDUyYzQ1
MjRmMjdiNzA0MjAyYWEwZTdjOTE3ZjFkYjkwNS4uYTQ1MGFkNTMzYWQ2OWMxZTgxZmQ1N2E2NWU2
YzM3Njg3Y2NkNjhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0xNzMsNiArMTczLDcgQEAgUGxhdGZvcm0v
SVBDL1NoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBD
L1N0cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVh
bUNvbm5lY3Rpb25CdWZmZXIuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5l
Y3Rpb25Xb3JrUXVldWUuY3BwIEBuby11bmlmeQorUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5k
bGUuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3Bw
IEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgQG5vLXVuaWZ5CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KaW5kZXggNzE2NGY4ODYwMDc4ZTIwNzFhYjhjNWZkNDY2ODhmMzRkZmFhYWYyMi4uNGNmOTY1
NDFiYmQxNGY3ZGI5ZmYwN2FjMzM3YzI4ZTViMmU1ODM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTE1MTcsNiArMTUx
NywzNiBAQCBzdGF0aWMgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FZGl0YWJsZUxp
bmtCZWhhdmlvcihfV0tFZGl0YWJsZUxpbmtCZWhhdgogICAgIF9wcmVmZXJlbmNlcy0+c2V0UmVx
dWlyZXNQYWdlVmlzaWJpbGl0eVRvUGxheUF1ZGlvKHJlcXVpcmVzKTsKIH0KIAorLSAoQk9PTClf
ZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5maWxl
U3lzdGVtQWNjZXNzRW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRGaWxlU3lzdGVtQWNjZXNz
RW5hYmxlZDooQk9PTClmaWxlU3lzdGVtQWNjZXNzRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNl
cy0+c2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQoZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQpOwor
fQorCistIChCT09MKV9zdG9yYWdlQVBJRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5j
ZXMtPnN0b3JhZ2VBUElFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldFN0b3JhZ2VBUElFbmFi
bGVkOihCT09MKXN0b3JhZ2VBUElFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRTdG9y
YWdlQVBJRW5hYmxlZChzdG9yYWdlQVBJRW5hYmxlZCk7Cit9CisKKy0gKEJPT0wpX2FjY2Vzc0hh
bmRsZUVuYWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5hY2Nlc3NIYW5kbGVFbmFi
bGVkKCk7Cit9CisKKy0gKHZvaWQpX3NldEFjY2Vzc0hhbmRsZUVuYWJsZWQ6KEJPT0wpYWNjZXNz
SGFuZGxlRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0QWNjZXNzSGFuZGxlRW5hYmxl
ZChhY2Nlc3NIYW5kbGVFbmFibGVkKTsKK30KKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5k
ZXggNTA2MDNhMWI5ZjJmNzg5YjU2MGMwM2ZkYmNiYTk0NzVlNDk0YzJmYy4uNTk5NjliNjRhNjVl
YjhlNWYwMTQwM2JiNmM3MzQ5ZDgzODIyZWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTE3Myw2
ICsxNzMsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25B
bGdvcml0aG0pIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhU2Vzc2lv
bkVuYWJsZWQ6KSBCT09MIF9tZWRpYVNlc3Npb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0V4
dGVuc2libGVTU09FbmFibGVkLCBzZXR0ZXI9X3NldEV4dGVuc2libGVTU09FbmFibGVkOikgQk9P
TCBfZXh0ZW5zaWJsZVNTT0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzUGFnZVZp
c2liaWxpdHlUb1BsYXlBdWRpbzopIEJPT0wgX3JlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlB
dWRpbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQ6KSBCT09MIF9m
aWxlU3lzdGVtQWNjZXNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3Rv
cmFnZUFQSUVuYWJsZWQ6KSBCT09MIF9zdG9yYWdlQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QWNjZXNzSGFuZGxlRW5hYmxlZDopIEJPT0wgX2FjY2Vzc0hhbmRsZUVu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRXZWJHTEVuYWJsZWQ6KSBCT09MIF93ZWJHTEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1YjMyZWJhMjIwOGE0ZDg0OWM0NTcwNzFiY2E0Mzg5NjI1MjE3MGU1
Li4xMTlhYTUzZWNiMzcwY2E4MWMwNjhkOGY5ODA5ZTBmZjdlNTliZWRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzIsNiArMTQ3
Miw3IEBACiAJCTkzMDg1RERGMjZFNUJDRjEwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMDg1RENFMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKIAkJOTMwODVERTAyNkU1QkNGRDAwMEVDNkE3IC8q
IE5ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwODVEQzQyNkUxQkJCRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdl
TWFuYWdlci5oICovOyB9OwogCQk5MzA4NURFMTI2RTVCRDEzMDAwRUM2QTcgLyogTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1h
bmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyogU2hh
cmVkRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTMxMjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLzsg
fTsKIAkJOTMxMkJBRDUyNkYzM0MyNjAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTA3
NTAyNkYwNjMxMDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oICovOyB9Owog
CQk5MzEyQkFENjI2RjMzQzI5MDBGRERGNUYgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUzMjZG
MDZBQjQwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oICovOyB9OwogCQk5MzFB
MUJFMjI2Rjg3MDA5MDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTFCRTAyNkY4NUMzMjAw
ODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCAqLzsgfTsKQEAgLTE0ODQsNiArMTQ4
NSw4IEBACiAJCTkzM0U4MzVBMjNBMUFFMjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgz
NTkyM0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi87IH07CiAJCTkz
M0U4MzVCMjNBMUI3NTAwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgy
M0ExQURGNTAwREVGMjg5IC8qIFdlYklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CiAJCTkzNDI1ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODk4
MjU1QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsgfTsKKwkJ
OTM0NjhFNkIyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NjhFNkEyNzE0QUY0NzAw
OTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwICovOyB9OworCQk5MzQ2OEU2RDI3MTRBRjg4
MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBT
aGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovOyB9OwogCQk5MzRCNzI0NDE5RjVCOUJFMDBBRTk2
RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25N
ZW51SXRlbVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTM1NDI0MkMyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM1NDI0MkEyNzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oICovOyB9OwogCQk5MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRD
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTdBNTMwMjFGNDc5M0IyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87
IH07CkBAIC00OTQ5LDYgKzQ5NTIsNyBAQAogCQk5MzA4NURDQzI2RTJFOTAyMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDg1RENEMjZFMkU5MDIwMDBF
QzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVk
RmlsZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRGaWxl
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUwMjZGMDYzMTAw
MDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzMUEwNzUxMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTMxQTA3NTIyNkYwNkFCNDAwNDQ3NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NjcsNiArNDk3MSw4IEBA
CiAJCTkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk5MzQyNTg4RjI1NTVEQ0E1MDA1OUVF
REQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2QTI3MTRBRjQ3MDA5OTgz
RTMgLyogU2hhcmVkRmlsZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0NjhFNkMyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlQ29j
b2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRCNzI0MzE5RjVCOUJFMDBB
RTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzU0MjQyQTI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU0
MjQyQjI3MDNCRENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzU4LDYg
KzczNjQsOCBAQAogCQkJCTVDQzVEQjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJD
b3B5LmggKi8sCiAJCQkJMkRDMTg1NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuY3BwICovLAogCQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFy
ZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmggKi8sCisJCQkJOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0Uz
IC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwICovLAorCQkJCTkzMTIyQzg1MjcxMENDREUwMDFEODE5
RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi8sCiAJCQkJN0I3MzEyMzYyNUNDODUyNDAwM0IyNzk2
IC8qIFN0cmVhbUNsaWVudENvbm5lY3Rpb24uY3BwICovLAogCQkJCTdCNzMxMjMzMjVDQzg1MjMw
MDNCMjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJN0I3MzEyMzQyNUND
ODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3BwICovLApAQCAtMTExMzAs
NiArMTExMzgsNyBAQAogCQkJCTFBNkQ4NkJGMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2Fn
ZS5jcHAgKi8sCiAJCQkJMUE2RDg2QzAxREY3NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmgg
Ki8sCiAJCQkJQkNDNTZGNzcxMTU5OTU3RDAwMUNDQUY5IC8qIE1hY2hQb3J0LmggKi8sCisJCQkJ
OTM0NjhFNkMyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi8s
CiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTEyNjU0LDYgKzEyNjYzLDcgQEAKIAkJCQlBMTgzNDk0MjI0RUY0Njc4MDBCREM5QTggLyogU2hh
cmVkQnVmZmVyQ29weS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGRjZFRjJBMzEzMEMxMzAx
NzY3IC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0
QTZENkJDMjU0Q0EzRTkwMEI2NUZBQSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5k
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFy
ZWRNZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAv
KiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMx
RjdEQUUwODAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNDYxNiw2ICsxNDYyNiw4IEBACiAJCQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8q
IFNoYXJlYWJsZUJpdG1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3
MUM4OEUzQ0QgLyogU2hhcmVkQnVmZmVyQ29weS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMx
ODEyNDVCNTQ5MzQzQkM5ODE2NEMgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5MzQ2OEU2QjI3MTRBRjQ3MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhh
bmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzQ2OEU2RDI3MTRBRjg4MDA5OTgzRTMgLyog
U2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQURBRkI2MjM2
OEU2QTgwMDlDQjc3NiAvKiBTaGFyZWRNZW1vcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1
QjFCQjkyM0NFOUMwQjAwMjA2MzlBIC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyREU2OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZp
Y2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNjAzMTI3
YmU2Nzg0OTgxZDMwYWE0YTc2MjE5NzU1ZDNlZjM2MjI1Yy4uOTY4NWZjZmE4ZTljNTZiYTI4NjY5
OWJhMTIxYTA3MGM0MzJiMjNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5jcHAKQEAgLTEyMSw3ICsxMjEsOCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSAogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIGF1dG8g
cmVzdWx0VmFsdWUgPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
c3RkOjpwYWlyIHsgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZC5oYW5kbGUo
KSB9KTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IGFhNWE4ZGQxNzQzYTFjYjk0ZDM0YmZhNWFj
ZGE2MGY2NWQ1ZjNkM2MuLjZiMzFiNmVkNmI2N2YwYmViMDYxYzdmYTJkY2ViZTI1MTY4ZjQ3Y2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KQEAgLTE5MzYsNiArMTkzNiw3IEBACiAgICAgICAgIChzeXNjYWxsLW51bWJlciBT
WVNfY29ubmVjdF9ub2NhbmNlbCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19zZW5kdG9f
bm9jYW5jZWwpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZnNnZXRwYXRoKQorICAgICAg
ICAoc3lzY2FsbC1udW1iZXIgU1lTX2ZpbGVwb3J0X21ha2VmZCkKICAgICAgICAgKHN5c2NhbGwt
bnVtYmVyIFNZU19maWxlcG9ydF9tYWtlcG9ydCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZ
U19ndWFyZGVkX29wZW5fbnApCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3VhcmRlZF9j
bG9zZV9ucCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAzZTQzYmNhMzFiYmZlYWMxMjc1Mzc0NGNjNWYzYzBjMWUwYzllMDBlLi41MTU4NjQ1NjU3
MGI0ZDAxMzQ2ZjJjNmZkNmFlNjZiMTZhOWI4MzU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTEgIFNp
aHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmls
ZVN5c3RlbUFjY2Vzcy5tbTogQWRkZWQuCisgICAgICAgICgtW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNz
YWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6
XSk6CisgICAgICAgICh0ZXN0KToKKwogMjAyMS0xMC0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU2xpZ2h0bHkgYmV0dGVyIGlkaW9tIGZvciBBUkMgZGVidWcg
YXV0b3JlbGVhc2Ugd29ya2Fyb3VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNzVhNWQw
ZjkyODk4NzRmYWEwNTYzN2U1YzA4YWUyNmE5ZDY0MzY5Li44MDFlNDc0MDU4NzJlODA5MDU4ZDA0
M2QyYTZkZjczNWYwY2ViNzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODU0LDYgKzg1
NCw3IEBACiAJCTkzM0Q2MzFEMUZDQjc2MjAwMDMyRUNENiAvKiBIYXNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRDYzMUIxRkNCNzYxODAw
MzJFQ0Q2IC8qIEhhc2hlci5jcHAgKi87IH07CiAJCTkzNDI1ODlDMjU1QjYwOUIwMDU5RUVERCAv
KiBTcGVlY2hSZWNvZ25pdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNDI1ODlCMjU1QjYwOUEwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlv
bi5tbSAqLzsgfTsKIAkJOTM0MjU4OUUyNTVCNkExMjAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0
aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODlEMjU1QjY2QTAwMDU5RUVE
RCAvKiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCAq
LzsgfTsKKwkJOTM0NjhFNkYyNzE0QjRGMjAwOTk4M0UzIC8qIEZpbGVTeXN0ZW1BY2Nlc3MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ2OEU2RTI3
MTRCNEYxMDA5OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAqLzsgfTsKIAkJOTM1Nzg2Q0My
MEY2QTI3MDAwMDBDREZDIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNTIwRjY5RkVEMDA0
MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsICovOyB9OwogCQk5MzU3ODZDRDIwRjZBMjkx
MDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIElu
ZGV4ZWREQi5zcWxpdGUzICovOyB9OwogCQk5MzU3ODZDRTIwRjZBMkExMDAwMENERkMgLyogSW5k
ZXhlZERCLnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3Fs
aXRlMy1zaG0gKi87IH07CkBAIC0yNTgyLDYgKzI1ODMsNyBAQAogCQk5MzNENjMxQjFGQ0I3NjE4
MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhhc2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1ODlCMjU1
QjYwOUEwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzQyNTg5RDI1NUI2NkEwMDA1OUVFREQgLyogc3BlZWNocmVjb2du
aXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAic3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNl
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2RTI3MTRCNEYxMDA5
OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1BY2Nlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBw
YXRoID0gIkluZGV4ZWREQi5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNEZBNUM2MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRo
ID0gIkluZGV4ZWREQi5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRl
eGVkREIuc3FsaXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1MTAsNiArMzUx
Miw3IEBACiAJCQkJNkIyNUE3NTEyNURDOEQ0RTAwNzA3NDRGIC8qIEV2ZW50QXR0cmlidXRpb24u
bW0gKi8sCiAJCQkJQ0RBMjlCMjgyMEZEMkE5OTAwRjE1Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25F
bnRlclBpUC5tbSAqLywKIAkJCQkxRDEyQkVCRjI0NUJFRjg1MDA0QzBCN0EgLyogRXhpdFBpUE9u
U3VzcGVuZFZpZGVvRWxlbWVudC5tbSAqLywKKwkJCQk5MzQ2OEU2RTI3MTRCNEYxMDA5OTgzRTMg
LyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAqLywKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERBNDYg
LyogRmluZEluUGFnZS5tbSAqLywKIAkJCQk1MTI0MkNENDIzNzRFNjFFMDBFRUQ5QzEgLyogRmlu
ZEluUGFnZUFQSS5tbSAqLywKIAkJCQkxMTgxNTM0NzIyMDhCQURGMDBCMkNDRDIgLyogRmlyc3RW
aXN1YWxseU5vbkVtcHR5TWlsZXN0b25lLm1tICovLApAQCAtNTU2OCw2ICs1NTcxLDcgQEAKIAkJ
CQk3Q0NFN0VGMTFBNDExQUU2MDA0NDdDNEMgLyogRmFpbGVkTG9hZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1Nzk2NTFFNzIxNkJGREVEMDA2RUJGRTUgLyogRmlkb0hpZE1lc3NhZ2VUZXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdBMzJENzRBMUYwMjE1MTUwMDE2MkM0NCAvKiBGaWxlTW9u
aXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzQ2OEU2RjI3MTRCNEYyMDA5OTgzRTMgLyog
RmlsZVN5c3RlbUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUYzMUE0MTFBRTYw
MDQ0N0M0QyAvKiBGaW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEJCMUQwQTY1MDAw
MEZFQkNGMyAvKiBGaW5kSW5QYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyNDJDRDUyMzc0
RTYyNTAwRUVEOUMxIC8qIEZpbmRJblBhZ2VBUEkubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vz
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFj
Y2Vzcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMGZjZDMxYjhjYjM1MTExYWRhNjFhYTcyNDJiZTQ1NjRjNTUy
MmE1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFVSTFNjaGVtZUhhbmRsZXIu
aCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCitzdGF0aWMgYm9v
bCByZWNlaXZlZFNjcmlwdE1lc3NhZ2U7CitzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2Fn
ZT4gbGFzdFNjcmlwdE1lc3NhZ2U7CisKK0BpbnRlcmZhY2UgRmlsZVN5c3RlbUFjY2Vzc01lc3Nh
Z2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIKKworLSAodm9pZCl1
c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRl
bnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKilt
ZXNzYWdlCit7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKKyAgICBsYXN0U2Ny
aXB0TWVzc2FnZSA9IG1lc3NhZ2U7Cit9CisKK0BlbmQKKworc3RhdGljIE5TU3RyaW5nICptYWlu
RnJhbWVTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKKyAgICBmdW5jdGlvbiBzdGFydCgpIHsgXAorICAg
ICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcignd29ya2VyLmpzJyk7IFwKKyAgICAgICAgd29y
a2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IFwKKyAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEp
OyBcCisgICAgICAgIH07IFwKKyAgICB9IFwKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGFnZSBpcyBsb2FkZWQnKTsgXAorICAgIDwv
c2NyaXB0PiI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3b3JrZXJCeXRlcyA9IFIiVEVTVFJFU09V
UkNFKAorYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJv
b3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsKKyAgICAg
ICAgdmFyIGZpbGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoJ2ZpbGUt
c3lzdGVtLWFjY2Vzcy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsKKyAgICAgICAgdmFyIGFj
Y2Vzc0hhbmRsZSA9IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwor
ICAgICAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDEwKTsKKyAgICAgICAgdmFyIHdy
aXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZShidWZmZXIsIHsgImF0IiA6IDAgfSk7CisgICAg
ICAgIHNlbGYucG9zdE1lc3NhZ2UoJ3N1Y2Nlc3M6IHdyaXRlICcgKyB3cml0ZVNpemUgKyAnIGJ5
dGVzJyk7CisgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoJ2Vy
cm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlKTsKKyAgICAgICAgY2xvc2Uo
KTsKKyAgICB9Cit9Cit0ZXN0KCk7CispVEVTVFJFU09VUkNFIjsKKworVEVTVChGaWxlU3lzdGVt
QWNjZXNzLCBQcm9jZXNzQ3Jhc2hEdXJpbmdXcml0ZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBh
ZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7Cisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVy
XSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxl
ciJdOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107
CisgICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0gWUVTOworICAgIHBy
ZWZlcmVuY2VzLl9hY2Nlc3NIYW5kbGVFbmFibGVkID0gWUVTOworICAgIHByZWZlcmVuY2VzLl9z
dG9yYWdlQVBJRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHNjaGVtZUhhbmRsZXIgPSBhZG9wdE5T
KFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2NoZW1lSGFuZGxl
ciBzZXRTdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlkPFdLVVJMU2No
ZW1lVGFzaz4gdGFzaykgeworICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9u
c2U7CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGE7CisgICAgICAgIE5TVVJMICpyZXF1
ZXN0VVJMID0gdGFzay5yZXF1ZXN0LlVSTDsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3ZWJr
aXQ6Ly93ZWJraXQub3JnL3dvcmtlci5qcyIsIHJlcXVlc3RVUkwuYWJzb2x1dGVTdHJpbmcpOwor
ICAgICAgICByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0
aFVSTDpyZXF1ZXN0VVJMIE1JTUVUeXBlOkAidGV4dC9qYXZhc2NyaXB0IiBleHBlY3RlZENvbnRl
bnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgICAgICBkYXRhID0gW05TRGF0
YSBkYXRhV2l0aEJ5dGVzOndvcmtlckJ5dGVzIGxlbmd0aDpzdHJsZW4od29ya2VyQnl0ZXMpXTsK
KyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKKyAgICAg
ICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0YS5nZXQoKV07CisgICAgICAgIFt0YXNrIGRpZEZp
bmlzaF07CisgICAgfV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpz
Y2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIndlYmtpdCJdOworCisgICAgLy8gbG9h
ZCBmaXJzdCB3ZWIgdmlldyAmIHN0YXJ0IHRlc3QKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxv
YWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAid2Via2l0Oi8vd2Via2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFs
c2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicGFnZSBpcyBsb2FkZWQiLCBbbGFzdFNjcmlwdE1l
c3NhZ2UgYm9keV0pOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQo
KSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFs
c2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFz
dFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgYXV0byBzZWNvbmRXZWJWaWV3ID0gYWRvcHRO
UyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbc2Vjb25kV2Vi
VmlldyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAIndlYmtpdDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSA9IGZhbHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIEFjY2VzcyBoYW5kbGUgY2Fubm90IGJlIGNy
ZWF0ZWQgd2hlbiB0aGVyZSBpcyBhbiBvcGVuIG9uZS4KKyAgICBbc2Vjb25kV2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNl
aXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJlcnJvcjog
SW52YWxpZFN0YXRlRXJyb3IgLSBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIiwg
W2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKworICAgIC8vIE9wZW4gYWNjZXNzIGhhbmRsZSBz
aG91bGQgYmUgY2xvc2VkIHdoZW4gd2ViIHByb2Nlc3MgY3Jhc2hlcy4KKyAgICBbd2ViVmlldyBf
a2lsbFdlYkNvbnRlbnRQcm9jZXNzXTsKKworICAgIFtzZWNvbmRXZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19T
VFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
KTsKK30KKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGQyODVh
ODY5Y2I2ZWRkYzgwYTRlYzdkOTQxNmVkZWVkZTcxZTJjMy4uZmQ3OGMyOWE2ODdhYjAyODMwM2I1
ZjNjOWQ2ODJmZmU1N2NjMzAxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTExICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNj
ZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgor
ICAgICAgICAoYXJyYXlCdWZmZXJUb1N0cmluZyk6CisgICAgICAgIChzdHJpbmdUb0FycmF5QnVm
ZmVyKToKKyAgICAgICAgKHdyaXRlKToKKyAgICAgICAgKHJlYWQpOgorICAgICAgICAoYXN5bmMg
dGVzdCk6CisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhh
bmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ09PUF0gQ3Jhc2ggdW5kZXIgUmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGU6OmFkZEVuZHBvaW50RnJvbURpY3Rpb25hcnkoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJj
ZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc0ZDQ0ZjQw
MDU2Yzg2MGMyYzBkOTYwM2Q3YWNjODdhMmE5OTA5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFu
ZGxlLXJlYWQtd3JpdGUuanMKQEAgLTAsMCArMSw5OSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7
Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVz
IG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBm
aWxlU2l6ZSwgd3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJl
YWRUZXh0LCByZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXpl
ID0gMDsKKworZnVuY3Rpb24gZmluaXNoVGVzdChlcnJvcikKK3sKKyAgICBpZiAoZXJyb3IpIHsK
KyAgICAgICAgdGVzdEZhaWxlZChlcnJvcik7CisgICAgfQorICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorCitmdW5jdGlvbiBhcnJheUJ1ZmZlclRvU3RyaW5nKGJ1ZmZlcikKK3sKKyAgICByZXR1cm4g
U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkoYnVmZmVyKSk7
Cit9CisKK2Z1bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIHZhciBi
dWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc3RyaW5nLmxlbmd0aCoyKTsKKyAgICB2YXIgYnVmZmVy
VmlldyA9IG5ldyBVaW50MTZBcnJheShidWZmZXIpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
c3RyaW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlclZpZXdbaV0gPSBzdHJpbmcuY2hh
ckNvZGVBdChpKTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworZnVuY3Rpb24gd3Jp
dGUoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJp
bmdUb0FycmF5QnVmZmVyKHRleHQpOworICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0
ZSh3cml0ZUJ1ZmZlciwgeyAiYXQiIDogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNp
emUiLCAid3JpdGVCdWZmZXIuYnl0ZUxlbmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9
CisKK2Z1bmN0aW9uIHJlYWQoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHNpemUpCit7CisgICAgcmVh
ZEJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKKyAgICByZWFkU2l6ZSA9IGFjY2Vzc0hh
bmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgImF0Ijogb2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJy
ZWFkU2l6ZSIsICJyZWFkQnVmZmVyLmJ5dGVMZW5ndGgiKTsKKyAgICByZXR1cm4gYXJyYXlCdWZm
ZXJUb1N0cmluZyhyZWFkQnVmZmVyKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAg
ICB0cnkgeworICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdl
LmdldERpcmVjdG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZmlsZSBmb3IgdGhpcyB0
ZXN0LgorICAgICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJzeW5jLWFjY2Vzcy1o
YW5kbGUudHh0IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIHZhciBmaWxl
SGFuZGxlID0gYXdhaXQgcm9vdEhhbmRsZS5nZXRGaWxlSGFuZGxlKCJzeW5jLWFjY2Vzcy1oYW5k
bGUudHh0IiwgeyAiY3JlYXRlIiA6IHRydWUgIH0pOworICAgICAgICBhY2Nlc3NIYW5kbGUgPSBh
d2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgZmlsZVNp
emUgPSBhd2FpdCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmls
ZVNpemUiLCAiMCIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHJlYWQoKSBhbmQgd3JpdGUoKToi
KTsKKyAgICAgICAgLy8gV3Jvbmcgb2Zmc2V0IHRvIHdyaXRlLgorICAgICAgICBzaG91bGRUaHJv
dygiYWNjZXNzSGFuZGxlLndyaXRlKG5ldyBBcnJheUJ1ZmZlcigxKSwgeyBcImF0XCIgOiBOdW1i
ZXIuTUFYX1NBRkVfSU5URUdFUiB9KSIpOworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0
ZShhY2Nlc3NIYW5kbGUsIDAsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICBy
ZWFkVGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJzdCBzZW50ZW5j
ZS4iKTsKKyAgICAgICAgdG90YWxSZWFkU2l6ZSArPSByZWFkVGV4dC5sZW5ndGggKiAyOworCisg
ICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgdG90YWxXcml0ZVNp
emUsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZFRleHQgPSByZWFk
KGFjY2Vzc0hhbmRsZSwgdG90YWxSZWFkU2l6ZSwgdG90YWxXcml0ZVNpemUgLSB0b3RhbFJlYWRT
aXplKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsICJUaGlzIGlz
IHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICAvLyBXcm9uZyBvZmZzZXQgdG8gcmVhZC4K
KyAgICAgICAgc2hvdWxkVGhyb3coImFjY2Vzc0hhbmRsZS5yZWFkKG5ldyBBcnJheUJ1ZmZlcigx
KSwgeyBcImF0XCIgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9KSIpOworICAgICAgICByZWFk
VGV4dCA9IHJlYWQoYWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSk7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVhZFRleHQiLCAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS5U
aGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKworICAgICAgICBkZWJ1ZygidGVzdCBmbHVzaCgp
OiIpOworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUuZmx1c2goKTsKKyAgICAgICAgZmlsZVNp
emUgPSBhd2FpdCBhY2Nlc3NIYW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBzaG91bGRCZSgiZmls
ZVNpemUiLCAidG90YWxXcml0ZVNpemUiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCB0cnVuY2F0
ZSgpOiIpOworICAgICAgICBhd2FpdCBhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoNCk7CisgICAgICAg
IGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxlU2l6ZSA9IGF3YWl0IGFj
Y2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6ZSIsICI0Iik7
CisKKyAgICAgICAgZGVidWcoInRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOiIp
OworICAgICAgICBldmFsQW5kTG9nKCJhY2Nlc3NIYW5kbGUudHJ1bmNhdGUoMCkiKTsKKyAgICAg
ICAgcmVhZEJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig0KTsKKyAgICAgICAgc2hvdWxkVGhyb3co
ImFjY2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZmZXIsIHsgXCJhdFwiIDogMCB9KSIpOworCisgICAg
ICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5jbG9zZSgpOworICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgZmluaXNoVGVzdChlcnJvcik7CisgICAgfQor
fQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1h
Y2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
cmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxNTNiYWRmN2M3MDkx
YmJmNjBlMjFhMGNjZTgwOWI1MDBjZjMwZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUt
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACitbV29ya2VyXSBUaGlzIHRlc3Qg
Y2hlY2tzIGJhc2ljIGZ1bnRpb25hbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29ya2VyOiByZXNv
dXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKK1BBU1MgW1dvcmtlcl0gZmls
ZVNpemUgaXMgMAorW1dvcmtlcl0gdGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6CitQQVNTIFtXb3Jr
ZXJdIGFjY2Vzc0hhbmRsZS53cml0ZShuZXcgQXJyYXlCdWZmZXIoMSksIHsgImF0IiA6IE51bWJl
ci5NQVhfU0FGRV9JTlRFR0VSIH0pIHRocmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjog
RmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldC4KK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlzIHdy
aXRlQnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZl
ci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIGZpcnN0IHNl
bnRlbmNlLiIKK1BBU1MgW1dvcmtlcl0gd3JpdGVTaXplIGlzIHdyaXRlQnVmZmVyLmJ5dGVMZW5n
dGgKK1BBU1MgW1dvcmtlcl0gcmVhZFNpemUgaXMgcmVhZEJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNT
IFtXb3JrZXJdIHJlYWRUZXh0IGlzICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iCitQQVNTIFtX
b3JrZXJdIGFjY2Vzc0hhbmRsZS5yZWFkKG5ldyBBcnJheUJ1ZmZlcigxKSwgeyAiYXQiIDogTnVt
YmVyLk1BWF9TQUZFX0lOVEVHRVIgfSkgdGhyZXcgZXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9y
OiBGYWlsZWQgdG8gcmVhZCBhdCBvZmZzZXQuCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJl
YWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBm
aXJzdCBzZW50ZW5jZS5UaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iCitbV29ya2VyXSB0ZXN0IGZs
dXNoKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIHRvdGFsV3JpdGVTaXplCitbV29ya2Vy
XSB0ZXN0IHRydW5jYXRlKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIDQKK1tXb3JrZXJd
IHRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOgorW1dvcmtlcl0gYWNjZXNzSGFu
ZGxlLnRydW5jYXRlKDApCitQQVNTIFtXb3JrZXJdIGFjY2Vzc0hhbmRsZS5yZWFkKHJlYWRCdWZm
ZXIsIHsgImF0IiA6IDAgfSkgdGhyZXcgZXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBBY2Nl
c3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29y
a2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nl
c3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcxNmY3MWM4MDMw
ZGNkMTBjNjVkYTM4MzZlNGQ5NWM4YzI2M2VlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0
ZS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1o
YW5kbGUtcmVhZC13cml0ZS5qcycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440976</attachid>
            <date>2021-10-12 14:02:55 -0700</date>
            <delta_ts>2021-10-12 15:29:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231466-20211012140254.patch</filename>
            <type>text/plain</type>
            <size>93282</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzOTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyNmM4MWZlZmFmNjQwOGI2MTBhZDI2
MTZiNjM2N2VlMzc5YWNlNTUuLjJiZThjNTljNGU2Mzg5NmFiYmFiNDkxNzZiNDIxYTI0MGU3ZWJl
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtSGF2ZS5oOgorCiAyMDIxLTEwLTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgT25seSBtYXJrIG5lZWRlZCBKU09OSW1wbDo6T2Jq
ZWN0QmFzZSBmdW5jdGlvbnMgd2l0aCBXVEZfRVhQT1JUX1BSSVZBVEUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBj
ODI2ZmMwZGUxNjg1MDAwZDRmNDBiMGUzNjYxOWI0ODJjMmM4MTU3Li5lYzFiOTY3MWFiYjFiZDg0
YTM5Y2FkNzkwY2JmNWMzMzVlYzZiYTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIw
MjEtMTAtMTIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vl
bm4gRmFibGV0LgorCisgICAgICAgIEltcGxlbWVudCByZWFkKCkgYW5kIHdyaXRlKCkgYWNjb3Jk
aW5nIHRvIHByb3Bvc2FsOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9maWxlLXN5
c3RlbS1hY2Nlc3MvYmxvYi9tYWluL0FjY2Vzc0hhbmRsZS5tZAorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3Jr
ZXIuaHRtbAorICAgICAgICBBUEkgdGVzdDogRmlsZVN5c3RlbUFjY2Vzcy5Qcm9jZXNzQ3Jhc2hE
dXJpbmdXcml0ZQorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
Zmx1c2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaCk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0J1ZmZl
clNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6QnVmZmVyU291cmNlOjptdXRhYmxlRGF0YSBj
b25zdCk6CisKIDIwMjEtMTAtMTEgIEtpZXQgSG8gIDx0aG8yMkBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IG1ha2Vwcm9wLnBsIHRvIG5vdCB0cmVhdCAiaW5oZXJpdGVkOiBmYWxzZSIgcHJvcGVy
dGllcyBhcyBpbmhlcml0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBmZDliMTE0OGZjZjVlODBm
MThlODgwNDAzOWQ0MjM3ZTkwMTlkZDFlLi5iOTkwNmNhNGIwYTc2NGYwN2RhZDQ0OGM4NjliNmFm
MTJkY2QzNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0x
MiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgcmVhZCgpIGFuZCB3cml0ZSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE0NjYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg0MDUwMzk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBwYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmg6IEFkZGVkLgorCiAyMDIxLTEwLTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtHUFUgUHJvY2Vz
c10gc3VwcG9ydCBgPGF0dGFjaG1lbnQ+YApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MzBkMTUwYzlkZTJlMjZkODBj
YjkzNTAzZjVjN2M5YTFiOWVmNTEzLi4xZWI5MWYzM2Q4Yzk3YzkwZWFmNTYzNmRiMWM2NjNlODJk
MGNhNmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTEwLTEyICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBMZXQgbmV0d29yayBwcm9jZXNzIG9wZW4gdGhlIGZpbGUgYW5kIHBhc3MgZmlsZSBkZXNjcmlw
dG9yIHRvIHdlYiBwcm9jZXNzLCBzbyB0aGF0IHdlYiBwcm9jZXNzIGNhbiByZWFkIGFuZCAKKyAg
ICAgICAgd3JpdGUgdGhlIGZpbGUgd2l0aG91dCBzZW5kaW5nIElQQyBtZXNzYWdlcy4gQ3VycmVu
dGx5IGdldHRpbmcgZmlsZSBzaXplLCB0cnVuY2F0aW5nIGZpbGUgYW5kIHN5bmNpbmcgZmlsZSBh
cmUgCisgICAgICAgIHN0aWxsIHBlcmZvcm1lZCBieSBuZXR3b3JrIHByb2Nlc3MuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaDoKKyAg
ICAgICAgKFdlYktpdDo6Y29udmVydFRvRXhjZXB0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Zmx1c2gpOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5jcHA6
IEFkZGVkLgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUpOgorICAgICAg
ICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpT
aGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9TaGFyZWRG
aWxlSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpoYW5k
bGUpOgorICAgICAgICAoSVBDOjpTaGFyZWRGaWxlSGFuZGxlOjpTaGFyZWRGaWxlSGFuZGxlKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcDog
QWRkZWQuCisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAg
IChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNo
YXJlZEZpbGVIYW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1By
ZWZlcmVuY2VzIF9maWxlU3lzdGVtQWNjZXNzRW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZl
cmVuY2VzIF9zZXRGaWxlU3lzdGVtQWNjZXNzRW5hYmxlZDpdKToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc3RvcmFnZUFQSUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
c2V0U3RvcmFnZUFQSUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2FjY2Vz
c0hhbmRsZUVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0QWNjZXNzSGFu
ZGxlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMjEtMTAtMTEgIE15bGVzIEMuIE1heGZp
ZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIFVuaXF1
ZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXJzIFBhcnQgNTogVW5pcXVpZnkgUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlciBhdCBlbnRyeSBwb2ludHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwCmluZGV4IGU2ZmU4ZGJmYmJhMjNkYzE0ZGMxMTNkODk3OTNlZjY3ODI0NDBiYjIuLmNi
ZTQ2ZjIwMWYxZTJhMGNiZTMzOWIwMjFmNzdjY2QxNmFmMTNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTcsMjkgKzU3LDI0IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
cHJvbWlzZS5zZXR0bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0
ZWRUaGlzLmdldCgpLCByZXN1bHQucmV0dXJuVmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3Vs
dFZhbHVlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBwcm9taXNlLnNl
dHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMuZ2V0
KCksIHJlc3VsdFZhbHVlLmZpcnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQpKTsKICAgICB9KTsKIH0K
IAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWlu
dDY0X3Q+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0
dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmdldFNpemUo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1
bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlz
ZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25n
IGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRp
ZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUo
V1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRl
bnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Zmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50
aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIo
KSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
RmlsZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgKaW5kZXggYWZjZWExZjcwMTM3OTA4ZmUxYzc0MGUxZmZlZWIx
ZGU3ODE0NDE1NC4uNzQyMDc2ODM4ODI1MWFjNjhhNTVlYmIzNGQwYThjMmZjNTlkNWVjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAg
IHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmKTsK
IAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7Ci0gICAgdm9pZCBnZXRT
aXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVy
cmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYpOwotICAgIHZvaWQgdHJ1bmNhdGUoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwotICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAg
dm9pZCBnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+JiYpOworICAgIHZvaWQg
dHJ1bmNhdGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYm
KT4mJik7CisgICAgdm9pZCBmbHVzaChGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogICAg
IHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5YzA1NzY4ZDNiZjE4
ZGQxNDFjNTlkYTkxYmU1YWRjNDUwYWFjZGQ0Li40YmE5YzU4MGRhMTZkZWQxZGVlY2ZhZjhiNDQy
ZjY4ODE1Zjg0ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBTYW1lRW50cnlD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+Owog
ICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OwogICAgIHVzaW5nIFJlc29s
dmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0
cmluZz4+JiYpPjsKLSAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyPiYmKT47CisgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpPjsK
ICAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPjsKICAgICB1c2luZyBJbnRlZ2VyQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT47CiAgICAgdXNpbmcgR2V0SGFuZGxl
TmFtZXNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9y
PFN0cmluZz4+JiYpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3Bw
CmluZGV4IGZhZDRiOWE4NGI4NDlkNWJjZTQ3YzM0YTNmMGI2ZDYxZGU3NmQyYWIuLmQyMmUyMDgw
YjZjYzY0N2MzZTViZmU5MWVjNTI0NzZjYWE5ZDQ4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMzQsMTQgKzM0LDE1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQorUmVmPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKEZp
bGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShz
b3VyY2UsIGlkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZShzb3VyY2UsIGlkZW50aWZpZXIsIGZpbGUpKTsKIH0KIAotRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0
ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQorRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGUgZmlsZSkKICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAsIG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICwgbV9maWxlKGZpbGUpCiB7CiB9CiAKQEAgLTUzLDE3ICs1NCwz
NSBAQCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKCkKIAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6dHJ1bmNhdGUodW5zaWdu
ZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7
Ci0gICAgbV9zb3VyY2UtPnRydW5jYXRlKG1faWRlbnRpZmllciwgc2l6ZSwgV1RGTW92ZShwcm9t
aXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+dHJ1
bmNhdGUobV9pZGVudGlmaWVyLCBzaXplLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRp
b25Db3VudC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Cisg
ICAgfSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmdldFNpemUoRE9N
UHJvbWlzZURlZmVycmVkPElETFVuc2lnbmVkTG9uZ0xvbmc+JiYgcHJvbWlzZSkKIHsKLSAgICBt
X3NvdXJjZS0+Z2V0U2l6ZShtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1f
cGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPmdldFNpemUobV9pZGVudGlm
aWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAg
ICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworCisgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CiB9CiAKIHZvaWQgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
IHByb21pc2UpCiB7Ci0gICAgbV9zb3VyY2UtPmZsdXNoKG1faWRlbnRpZmllciwgV1RGTW92ZShw
cm9taXNlKSk7CisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291bnQrKzsKKyAgICBtX3NvdXJjZS0+
Zmx1c2gobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3Vu
dC0tOworCisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7
CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlKERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCkBAIC03MSw5ICs5MCwxMiBAQCB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKKyAgICBtX3BlbmRpbmdPcGVyYXRp
b25Db3VudCsrOwogICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICBpZiAod2Vha1Ro
aXMpIHsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOwog
ICAgICAgICAgICAgd2Vha1RoaXMtPmRpZENsb3NlKCk7CisgICAgICAgIH0KIAogICAgICAgICBw
cm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwpAQCAtODQsNCArMTA2LDQ2
IEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKCkKICAgICBtX2lz
Q2xvc2VkID0gdHJ1ZTsKIH0KIAorRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6cmVhZChCdWZmZXJTb3VyY2UmJiBidWZmZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25z
KQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fZmlsZSA9PSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8IG1faXNDbG9zZWQpCisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYgKG1f
cGVuZGluZ09wZXJhdGlvbkNvdW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbiJfcyB9
OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmlsZSwgb3B0aW9u
cy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7CisgICAgaWYgKHJl
c3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRmFpbGVkIHRvIHJlYWQgYXQgb2Zmc2V0Il9zIH07CisKKyAgICByZXN1bHQgPSBGaWxlU3lz
dGVtOjpyZWFkRnJvbUZpbGUobV9maWxlLCBidWZmZXIubXV0YWJsZURhdGEoKSwgYnVmZmVyLmxl
bmd0aCgpKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJGYWlsZWQgdG8gcmVhZCBmcm9tIGZpbGUiX3MgfTsKKwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4g
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OndyaXRlKEJ1ZmZlclNvdXJjZSYmIGJ1ZmZlciwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIG9w
dGlvbnMpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9maWxl
ID09IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfHwgbV9pc0Nsb3NlZCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBp
ZiAobV9wZW5kaW5nT3BlcmF0aW9uQ291bnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkFjY2VzcyBoYW5kbGUgaGFzIHVuZmluaXNoZWQgb3BlcmF0aW9u
Il9zIH07CisKKyAgICBpbnQgcmVzdWx0ID0gRmlsZVN5c3RlbTo6c2Vla0ZpbGUobV9maWxlLCBv
cHRpb25zLmF0LCBGaWxlU3lzdGVtOjpGaWxlU2Vla09yaWdpbjo6QmVnaW5uaW5nKTsKKyAgICBp
ZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJGYWlsZWQgdG8gd3JpdGUgYXQgb2Zmc2V0Il9zIH07CisKKyAgICByZXN1bHQgPSBG
aWxlU3lzdGVtOjp3cml0ZVRvRmlsZShtX2ZpbGUsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5sZW5n
dGgoKSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHdyaXRlIHRvIGZpbGUiX3MgfTsKKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKaW5kZXggMjllNDE1N2I2NTQxYjkzZTZlYTVmZTAy
MzdmMGNmMjE1ZDAzYzNiZi4uMWZkOTI2YzMzMTM2M2Y3MWZmNDg3MTRkNGU4YmNkZjU2MmQwN2Vm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgKQEAgLTI1LDE0ICsy
NSwxNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IklETFR5cGVzLmgiCisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIAogY2xhc3MgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
ewogcHVibGljOgpAQCAtNDAsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CiAgICAg
fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lkIHRydW5jYXRlKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC00OCwx
MyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYpOwogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAg
IHZvaWQgZGlkQ2xvc2UoKTsKKyAgICBFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHJl
YWQoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zKTsKKyAgICBFeGNl
cHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IHdyaXRlKEJ1ZmZlclNvdXJjZSYmLCBGaWxlc3lz
dGVtUmVhZFdyaXRlT3B0aW9ucyk7CiAKIHByaXZhdGU6Ci0gICAgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIpOworICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogCiAgICAgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxl
PiBtX3NvdXJjZTsKICAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CisgICAgdWludDY0X3Qg
bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQgeyAwIH07CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1G
aWxlSGFuZGxlIG1fZmlsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCmluZGV4IDExMjA2NGE2ZGY2MTFjNDEy
MWUyNWM3MTAyZjAzMzAzY2U0NDk0YWEuLjZlYTU0Mzk3ZWVhZjM5MGQ2YzE3ODUxOGY3MjE2NWFi
YWFkYTM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApA
QCAtMzMsNiArMzMsOCBAQAogICAgIFByb21pc2U8dW5zaWduZWQgbG9uZyBsb25nPiBnZXRTaXpl
KCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGZsdXNoKCk7CiAgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IGNsb3NlKCk7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHJlYWQoW0FsbG93U2hhcmVkXSBC
dWZmZXJTb3VyY2UgYnVmZmVyLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKTsK
KyAgICB1bnNpZ25lZCBsb25nIGxvbmcgd3JpdGUoW0FsbG93U2hhcmVkXSBCdWZmZXJTb3VyY2Ug
YnVmZmVyLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25zKTsKIH07CiAKIGRpY3Rp
b25hcnkgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAzNzY0MTMyYWVmM2FjMDA3
MTM2NDg4ZTcwNmU3OTQ5ZGI4NjY3MTBiLi44YjhjYTRhYWM2ZDU4MGQ3NWM5MjQzNDM3Mzg3Y2Uw
ZDBmYmFmZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lk
CiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxi
YWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpCit2b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVI
YW5kbGU+PiYmIHJlc3VsdCkKIHsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fZ2V0QWNjZXNz
SGFuZGxDYWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQogICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMjIxLDcgKzIyMSwxMCBAQCB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
SGFuZGxlSQogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3Jr
ZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlv
biA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAg
ICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2Vy
VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxi
YWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBz
Y29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNyb3NzVGhyZWFkUmVzdWx0ID0gcmVz
dWx0OworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAg
ICAgICBjcm9zc1RocmVhZFJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQuZXhjZXB0aW9u
KCkpOworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2Rl
KFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IFdURk1vdmUoY3Jvc3NUaHJlYWRSZXN1bHQp
XSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5l
Y3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbigpKQogICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRDcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsK
ICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDZjZTdmZjQ2
OTVkOWYwYTZiYmZhNDlkNmMxYTM0N2FjN2QyM2M5NGEuLjRkZTQzOTkyY2RiODM2ODQwZGU5YTE2
OTU2MmI5ZjMwMTYxYTgwNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
SXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYmKTsKICAg
ICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2FsbGJhY2tJ
ZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7Ci0gICAgdm9pZCBkaWRD
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiYmIHJlc3VsdCk7CisgICAgdm9pZCBk
aWRDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
c3RkOjpwYWlyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bTo6UGxhdGZvcm1GaWxlSGFuZGxlPj4mJik7CiAgICAgdm9pZCBjb21wbGV0ZVZvaWRDYWxsYmFj
ayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KTsKICAgICB2
b2lkIGNvbXBsZXRlSW50ZWdlckNhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9u
T3I8dWludDY0X3Q+JiYgcmVzdWx0KTsKICAgICB2b2lkIGRpZEdldEhhbmRsZU5hbWVzKENhbGxi
YWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAyNmYx
NGI1Y2U5Y2FiOTMxYTMzMWU1MmI5MDAwYWE2YWY4NDIzNjUuLjNlOTA1M2U0YzhjMjcyMGU2N2Vj
Mjc3M2E1YTMyMDU5ZmUwMjcwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1NCw2ICsxNTQsNyBAQAogCQk3MUIxMTQyMDI2
ODIzQUNEMDA0RDY3MDEgLyogU3lzdGVtUHJldmlld1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFCMTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5
c3RlbVByZXZpZXdTUEkuaCAqLzsgfTsKIAkJN0EzNkQwRjkyMjNBRDlBQjAwQjA1MjJFIC8qIENv
bW1vbkNyeXB0b1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0EzNkQwRjgyMjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oICovOyB9
OwogCQk3QTNBNkE4MDIwQ0FEQjQ3MDAzMTdBQUUgLyogTlNJbWFnZVNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0EzQTZBN0YyMENBREI0NjAwMzE3
QUFFIC8qIE5TSW1hZ2VTUEkuaCAqLzsgfTsKKwkJOTM0NjhFNjcyNzE0QTdDRDAwOTk4M0UzIC8q
IEZpbGVQb3J0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyogRmlsZVBvcnRTUEkuaCAqLzsgfTsKIAkJ
OTNCMzhFQkUyNTgyMUNCNjAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IzOEVCRDI1ODIxQ0I2MDAxOThF
NjMgLyogU3BlZWNoU29mdExpbmsuaCAqLzsgfTsKIAkJOTNCMzhFQzAyNTgyMUNEODAwMTk4RTYz
IC8qIFNwZWVjaFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNCMzhFQkYyNTgyMUNENzAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLm1t
ICovOyB9OwogCQk5M0IzOEVDMjI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0IzOEVDMTI1ODIxRDIy
MDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi87IH07CkBAIC0zNzYsNiArMzc3LDcgQEAKIAkJNzFC
MTE0MUYyNjgyM0FDRDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtUHJldmlld1NQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QTM2RDBGODIyM0FEOUFCMDBCMDUyMkUgLyogQ29tbW9uQ3J5cHRvU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbW1vbkNyeXB0b1NQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTNBNkE3RjIwQ0FEQjQ2MDAzMTdBQUUgLyog
TlNJbWFnZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0ltYWdlU1BJ
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDY4RTY2MjcxNEE3Q0QwMDk5ODNF
MyAvKiBGaWxlUG9ydFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxl
UG9ydFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0IzOEVCRDI1ODIxQ0I2
MDAxOThFNjMgLyogU3BlZWNoU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3BlZWNoU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNC
MzhFQkYyNTgyMUNENzAwMTk4RTYzIC8qIFNwZWVjaFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3BlZWNoU29mdExpbmsubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUMxMjU4MjFEMjIwMDE5OEU2MyAvKiBTcGVlY2hTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzQsNiArNTM2LDcgQEAKIAkJCQlERjgzRTIwODI2Mzcz
NEYxMDAwODI1RUYgLyogQ3J5cHRvS2l0UHJpdmF0ZVNQSS5oICovLAogCQkJCTBDMkRBMTI1MUYz
QkVCNDkwMERCQzMxNyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNQSS5oICovLAogCQkJCTFEMTJDQzRB
MjQxMUJDQUUwMEZEQTBBMyAvKiBGZWF0dXJlRmxhZ3NTUEkuaCAqLywKKwkJCQk5MzQ2OEU2NjI3
MTRBN0NEMDA5OTgzRTMgLyogRmlsZVBvcnRTUEkuaCAqLywKIAkJCQlDRTU2NzM4NjIxNTFBN0I5
MDAyRjkyRDcgLyogSU9LaXRTUEkuaCAqLywKIAkJCQkwQzJEQTEyNjFGM0JFQjQ5MDBEQkMzMTcg
LyogSU9QTUxpYlNQSS5oICovLAogCQkJCTBDMkRBMTI3MUYzQkVCNDkwMERCQzMxNyAvKiBJT1BT
TGliU1BJLmggKi8sCkBAIC05MDAsNiArOTAzLDcgQEAKIAkJCQlBMTE3NUI1NzFGNkI0NzA1MDBD
NEI5RjAgLyogRGVmYXVsdFNlYXJjaFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJE
OUU3MzFFRUY1QUY2MDBEQkMzMTcgLyogRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxRDEyQ0M0QjI0MTFCQ0FFMDBGREEwQTMgLyogRmVhdHVyZUZsYWdzU1BJLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MzQ2OEU2NzI3MTRBN0NEMDA5OTgzRTMgLyogRmlsZVBvcnRTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0NDI5MTYwMUZBNTI2MUUwMDJDQzkzRSAvKiBGaWxlU2l6ZUZvcm1h
dHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MUIxRjQzQTRDNzAwMkVBQzAyIC8qIEdy
YXBoaWNzU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMDIyRUZGMjJDRkVDNTMw
MDZERjAxQiAvKiBHdW56aXAuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvRmlsZVBvcnRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ1OTA1ZTZjMWRjNjY2
OGYzYjI4NGI0NTBjOWIzNjNhOWM2MjQ2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmgKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKwor
I2luY2x1ZGUgPFN5c3RlbS9zeXMvZmlsZXBvcnQuaD4KKworI2Vsc2UKKworZXh0ZXJuICJDIiB7
CitpbnQgZmlsZXBvcnRfbWFrZXBvcnQoaW50LCBtYWNoX3BvcnRfdCopOworaW50IGZpbGVwb3J0
X21ha2VmZChtYWNoX3BvcnRfdCk7Cit9CisKKyNlbmRpZiAvLyAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQnVmZmVy
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaAppbmRl
eCA5MGU0N2M5ZWU1MDRkZjY0YjMzNDMzZDc1MDVjODRmYjc0MzBmZmI4Li4wODZiNTU3Nzc0NzAx
MDg1N2ZkYjFjN2EwODg1ZGU4NzVkMTk0YTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9CdWZmZXJTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9CdWZmZXJTb3VyY2UuaApAQCAtNDksNiArNDksMTMgQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIGJ1ZmZlciA/IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEo
KSkgOiBudWxscHRyOwogICAgICAgICB9LCBtX3ZhcmlhbnQpOwogICAgIH0KKyAgICAKKyAgICB2
b2lkKiBtdXRhYmxlRGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjp2aXNp
dChbXShhdXRvJiBidWZmZXIpIC0+IHZvaWQqIHsKKyAgICAgICAgICAgIHJldHVybiBidWZmZXIt
PmRhdGEoKTsKKyAgICAgICAgfSwgbV92YXJpYW50KTsKKyAgICB9CiAKICAgICBzaXplX3QgbGVu
Z3RoKCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAppbmRleCAyODgyNDRm
OGRmMGJhNGM0ZTFiN2IzODBkMzYwOTJkMzViMGI0YzhhLi4wMjc3MzdhMmI0MGIyYzI3MGVhYTY0
YjhhNWY5ZTY0MzAxZWU4Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKQEAgLTMxLDkg
KzMxLDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBjbGFzcyBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yIDogdWludDhfdCB7CisgICAgQmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICBGaWxl
Tm90Rm91bmQsCi0gICAgSW52YWxpZE5hbWUsCiAgICAgSW52YWxpZE1vZGlmaWNhdGlvbiwKKyAg
ICBJbnZhbGlkTmFtZSwKICAgICBJbnZhbGlkU3RhdGUsCiAgICAgVHlwZU1pc21hdGNoLAogICAg
IFVua25vd24KQEAgLTQyLDE2ICs0MywxOCBAQCBlbnVtIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3IgOiB1aW50OF90IHsKIGlubGluZSBXZWJDb3JlOjpFeGNlcHRpb24gY29udmVydFRvRXhj
ZXB0aW9uKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IgZXJyb3IpCiB7CiAgICAgc3dpdGNoIChlcnJv
cikgeworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2VuZE5vdFN1cHBvcnRl
ZDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5vdFN1cHBv
cnRlZEVycm9yLCAiQmFja2VuZCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIiB9Owog
ICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6RmlsZU5vdEZvdW5kOgogICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6Tm90Rm91bmRFcnJvciB9OwogICAg
IGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbjoKICAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OkludmFsaWRNb2RpZmljYXRp
b25FcnJvciB9OwotICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21hdGNo
OgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVycm9y
IH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZToKICAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIk5h
bWUgaXMgaW52YWxpZCIgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFs
aWRTdGF0ZToKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Oklu
dmFsaWRTdGF0ZUVycm9yIH07CisgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBl
TWlzbWF0Y2g6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpU
eXBlRXJyb3IgfTsKICAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd246CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc0LDkgKzc3LDEwIEBAIG5hbWVzcGFjZSBXVEYgewog
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAogICAgICAgICBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3IsCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6QmFja2VuZE5vdFN1cHBvcnRlZCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpGaWxlTm90Rm91bmQsCi0gICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6SW52YWxpZE1vZGlmaWNhdGlvbiwKKyAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpJbnZhbGlkTmFtZSwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpJbnZhbGlkU3RhdGUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6VHlwZU1pc21hdGNoLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OlVua25vd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDc3MmEwMDlm
ZTFhMDE5MDViMjA1OTQyMzRmYzU2ZmYzNzQwYjZmOWIuLjA4ZjYwY2MxMmRlOTE0OTRjMmMwN2Mw
M2Y3YTcwMWY3MjM2MTQxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIgogI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIlNoYXJlZEZpbGVI
YW5kbGUuaCIKICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC0xNDMsNyArMTQ0LDcgQEAgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXNvbHYKICAgICByZXR1cm4gcmVz
dFBhdGguc3BsaXQocGF0aFNlcGFyYXRvcik7CiB9CiAKLUV4cGVjdGVkPFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKQorRXhwZWN0
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKCkKIHsKICAgICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwpAQCAtMTUyLDkgKzE1MywyMCBA
QCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+CiAgICAgaWYgKCFhY3F1aXJlZCkKICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZSk7
CiAKKyAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3Rl
bTo6RmlsZU9wZW5Nb2RlOjpSZWFkV3JpdGUpOworICAgIGlmIChtX2hhbmRsZSA9PSBGaWxlU3lz
dGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CisKKyAgICBhdXRvIGlwY0hh
bmRsZSA9IElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKG1faGFuZGxlKTsKKyAgICBpZiAo
IWlwY0hhbmRsZSkgeworICAgICAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5kbGUpOwor
ICAgICAgICBtX2hhbmRsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7
CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpC
YWNrZW5kTm90U3VwcG9ydGVkKTsKKyAgICB9CisKICAgICBBU1NFUlQoIW1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSk7CiAgICAgbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlID0gV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsK
LSAgICByZXR1cm4gKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsKKyAgICByZXR1cm4gc3RkOjpw
YWlyIHsgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSwgV1RGTW92ZSgqaXBjSGFuZGxlKSB9Owog
fQogCiBFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OmdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCkBAIC0xODAsMTIgKzE5Miw4IEBA
IHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OnRydW5jYXRlKFdlYkNvcmU6CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5k
bGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAotICAg
IGF1dG8gaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUobV9wYXRoLCBGaWxlU3lzdGVtOjpG
aWxlT3Blbk1vZGU6OlJlYWRXcml0ZSk7Ci0gICAgYXV0byBjbG9zZUZpbGVTY29wZSA9IG1ha2VT
Y29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGhhbmRsZSk7Ci0g
ICAgfSk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRlRmlsZShoYW5k
bGUsIHNpemUpOworICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxh
dGZvcm1GaWxlSGFuZGxlKTsKKyAgICBhdXRvIHJlc3VsdCA9IEZpbGVTeXN0ZW06OnRydW5jYXRl
RmlsZShtX2hhbmRsZSwgc2l6ZSk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOwogCkBAIC0yMDAsNyArMjA4LDExIEBAIHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OmZsdXNoKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUg
fHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQog
ICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIAotICAgIC8v
IEZJWE1FOiB3aGVuIHdyaXRlIG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZCwgcGVyZm9ybSBhY3R1
YWwgZmx1c2ggaGVyZS4KKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjpmbHVz
aEZpbGUobV9oYW5kbGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9
CiAKQEAgLTIxMiw2ICsyMjQsMTAgQEAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmkKICAgICBpZiAo
IW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpVbmtub3duOwogCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2hh
bmRsZSk7CisgICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlOworCiAgICAgbV9tYW5hZ2VyLT5yZWxlYXNlTG9ja0ZvckZpbGUobV9wYXRoLCBtX2lkZW50
aWZpZXIpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IHN0ZDo6bnVsbG9wdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCBkOThlNGU5MzI4ZDIxZjAyNGIxM2I2MjNj
ZDQxOTlkZDFjNjZiOTg4Li5iYmRmZDRjZWUxYzcxMjY4MjdiNDBiMTE5NmM0Mzc3YmNmMTdjOTI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtMzAsNiArMzAsMTAgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgU2hhcmVkRmls
ZUhhbmRsZTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlcjsKQEAgLTUzLDcgKzU3LDggQEAgcHVibGljOgogICAgIEV4cGVjdGVkPFZlY3Rv
cjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRIYW5kbGVOYW1lcygpOwogICAg
IEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Ym9vbD4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEhhbmRsZShJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lKTsKIAotICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBz
dGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJ
UEM6OlNoYXJlZEZpbGVIYW5kbGU+OworICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKICAgICBFeHBl
Y3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0U2l6ZShXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gdHJ1bmNhdGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCB1aW50NjRfdCBzaXplKTsKICAgICBzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGZsdXNoKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcik7CkBAIC02OCw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG1fcGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyPiBtX2FjdGl2ZVN5bmNBY2Nl
c3NIYW5kbGU7CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsg
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDJlY2ZlNDM3ZDAx
OTdjYTIyMWZmNTIyODgyM2U3NzM3MzcyYTZjZTYuLjU1MTZmYmI2Mjk0N2Y5OGRkZGU1OTIxY2Q3
M2ZlYTMwMDQ3YTFhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yMjYsNyAr
MjI2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc29sdmUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmkKICAgICBjb21wbGV0aW9uSGFuZGxlciho
YW5kbGUtPnJlc29sdmUodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCi12b2lkIE5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxB
Y2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaAppbmRleCA2YjMzNjA2MDI4ZDgwMWQ0ODQ2MmVhNmU0MDZlNmI0Mjk1N2NmYTc0
Li44ODQ1NTlhZDk3NjgyOTQ3OTVlZGY1Njg2NzU2MmFiYzZkOTExMjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5oCkBAIC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25J
RC5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5kbGU7Cit9CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDbGllbnRPcmlnaW47CiB9CkBAIC03MCw3ICs3NCw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9u
JiwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJv
b2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmKTsKICAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYpOwotICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CisgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmls
ZUhhbmRsZT47CisgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFj
Y2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBn
ZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CiAgICAgdm9pZCB0cnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGZsdXNoRm9yQWNj
ZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggODZjYjI2YWNhOWVjYTIzNWMy
NDc1YjkxNTc1YjYxNzFkODdjNmQ5My4uZWZlNTc0ODZjMWIyZDcxOGQxMzEyOGRmMDVlNDUyMmEw
NjU5OWU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBA
IC0zMyw3ICszMyw3IEBACiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZl
bHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVz
dWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0
SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKIAotICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4
cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IHJlc3VsdCkgQXN5bmMKICAgICBUcnVuY2F0ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdWludDY0
X3Qgc2l6ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiByZXN1bHQpIEFzeW5jCiAgICAgRmx1c2hGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ZWJjZTk4MDA4N2MwNzViMDIzYjU4YWVhMmUxNTU4NjBkNzY5NDY0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5jcHAK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTaGFyZWRGaWxlSGFuZGxlLmgiCisKK25hbWVzcGFjZSBJUEMgeworCisjaWYgIVBMQVRG
T1JNKENPQ09BKQorCitzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZpbGVI
YW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpCit7CisgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwordm9pZCBTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5j
b2RlciYpIGNvbnN0Cit7Cit9CisKK3N0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gU2hh
cmVkRmlsZUhhbmRsZTo6ZGVjb2RlKERlY29kZXImKQoreworICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDZhYzg5MDUwN2Vi
NjkzYTEwN2I0OTllNTQzNjA2YTc5N2U0NDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5oCkBAIC0wLDAgKzEsNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8
d3RmL0ZpbGVTeXN0ZW0uaD4KKworbmFtZXNwYWNlIElQQyB7CisKK2NsYXNzIERlY29kZXI7Citj
bGFzcyBFbmNvZGVyOworCitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlKTsKKworICAgIFNoYXJlZEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSgpIHsgcmV0dXJuIG1f
aGFuZGxlOyB9CisKKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisKKyAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBkZWNvZGUoRGVjb2RlciYpOworICAg
IAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTaGFyZWRGaWxlSGFuZGxlKEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCisgICAgICAgIDogbV9oYW5kbGUoaGFuZGxlKQorICAg
IHsKKyAgICB9CisKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9oYW5kbGUg
eyBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBJUEMKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9j
b2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjgyMjhhNzQ1
ZmQzNWMyZGMzZWM3MTA1NzI2OTVkOTM4OTg0ZDEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNoYXJlZEZpbGVIYW5kbGUuaCIKKworI2luY2x1ZGUgIk1hY2hQb3J0LmgiCisjaW5jbHVkZSA8
cGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oPgorCituYW1lc3BhY2UgSVBDIHsKKworc3RkOjpv
cHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUoRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKK3sKKyAgICByZXR1cm4gU2hhcmVkRmls
ZUhhbmRsZSB7IGhhbmRsZSB9OworfQorCit2b2lkIFNoYXJlZEZpbGVIYW5kbGU6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIG1hY2hfcG9ydF9uYW1lX3QgZmlsZXBvcnQg
PSBNQUNIX1BPUlRfTlVMTDsKKyAgICBpZiAoZmlsZXBvcnRfbWFrZXBvcnQobV9oYW5kbGUsICZm
aWxlcG9ydCkgPT0gLTEpIHsKKyAgICAgICAgZW5jb2RlciA8PCBNYWNoUG9ydCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgZW5jb2RlciA8PCBNYWNoUG9ydChmaWxlcG9ydCwgTUFD
SF9NU0dfVFlQRV9NT1ZFX1NFTkQpOworfQorCitzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5k
bGU+IFNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE1h
Y2hQb3J0IG1hY2hQb3J0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFjaFBvcnQpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIAorICAgIGludCBmZCA9IGZpbGVwb3J0X21h
a2VmZChtYWNoUG9ydC5wb3J0KCkpOworICAgIGlmIChmZCA9PSAtMSkKKyAgICAgICAgcmV0dXJu
IFNoYXJlZEZpbGVIYW5kbGUgeyB9OworCisgICAgcmV0dXJuIFNoYXJlZEZpbGVIYW5kbGU6OmNy
ZWF0ZShmaWxlcG9ydF9tYWtlZmQobWFjaFBvcnQucG9ydCgpKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKaW5kZXggN2UyM2Q2MDUyYzQ1MjRmMjdiNzA0MjAyYWEwZTdjOTE3
ZjFkYjkwNS4uYTQ1MGFkNTMzYWQ2OWMxZTgxZmQ1N2E2NWU2YzM3Njg3Y2NkNjhjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CkBAIC0xNzMsNiArMTczLDcgQEAgUGxhdGZvcm0vSVBDL1NoYXJlZEJ1ZmZlckRhdGFS
ZWZlcmVuY2UuY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rp
b24uY3BwIEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25CdWZmZXIuY3Bw
IEBuby11bmlmeQogUGxhdGZvcm0vSVBDL1N0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuY3BwIEBu
by11bmlmeQorUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwIEBuby11bmlmeQogUGxh
dGZvcm0vSVBDL1N0cmVhbVNlcnZlckNvbm5lY3Rpb24uY3BwIEBuby11bmlmeQogUGxhdGZvcm0v
SVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAgQG5vLXVuaWZ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5kZXggNzE2NGY4ODYwMDc4
ZTIwNzFhYjhjNWZkNDY2ODhmMzRkZmFhYWYyMi4uNGNmOTY1NDFiYmQxNGY3ZGI5ZmYwN2FjMzM3
YzI4ZTViMmU1ODM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTE1MTcsNiArMTUxNywzNiBAQCBzdGF0aWMgV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FZGl0YWJsZUxpbmtCZWhhdmlvcihfV0tFZGl0YWJs
ZUxpbmtCZWhhdgogICAgIF9wcmVmZXJlbmNlcy0+c2V0UmVxdWlyZXNQYWdlVmlzaWJpbGl0eVRv
UGxheUF1ZGlvKHJlcXVpcmVzKTsKIH0KIAorLSAoQk9PTClfZmlsZVN5c3RlbUFjY2Vzc0VuYWJs
ZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5maWxlU3lzdGVtQWNjZXNzRW5hYmxlZCgp
OworfQorCistICh2b2lkKV9zZXRGaWxlU3lzdGVtQWNjZXNzRW5hYmxlZDooQk9PTClmaWxlU3lz
dGVtQWNjZXNzRW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0RmlsZVN5c3RlbUFjY2Vz
c0VuYWJsZWQoZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQpOworfQorCistIChCT09MKV9zdG9yYWdl
QVBJRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnN0b3JhZ2VBUElFbmFibGVk
KCk7Cit9CisKKy0gKHZvaWQpX3NldFN0b3JhZ2VBUElFbmFibGVkOihCT09MKXN0b3JhZ2VBUElF
bmFibGVkCit7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRTdG9yYWdlQVBJRW5hYmxlZChzdG9yYWdl
QVBJRW5hYmxlZCk7Cit9CisKKy0gKEJPT0wpX2FjY2Vzc0hhbmRsZUVuYWJsZWQKK3sKKyAgICBy
ZXR1cm4gX3ByZWZlcmVuY2VzLT5hY2Nlc3NIYW5kbGVFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQp
X3NldEFjY2Vzc0hhbmRsZUVuYWJsZWQ6KEJPT0wpYWNjZXNzSGFuZGxlRW5hYmxlZAoreworICAg
IF9wcmVmZXJlbmNlcy0+c2V0QWNjZXNzSGFuZGxlRW5hYmxlZChhY2Nlc3NIYW5kbGVFbmFibGVk
KTsKK30KKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNTA2MDNhMWI5ZjJmNzg5YjU2
MGMwM2ZkYmNiYTk0NzVlNDk0YzJmYy4uNTk5NjliNjRhNjVlYjhlNWYwMTQwM2JiNmM3MzQ5ZDgz
ODIyZWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTE3Myw2ICsxNzMsOSBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhU2Vzc2lvbkVuYWJsZWQ6KSBCT09MIF9tZWRp
YVNlc3Npb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0V4dGVuc2libGVTU09FbmFibGVkLCBz
ZXR0ZXI9X3NldEV4dGVuc2libGVTU09FbmFibGVkOikgQk9PTCBfZXh0ZW5zaWJsZVNTT0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlBdWRpbzop
IEJPT0wgX3JlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlBdWRpbyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQ6KSBCT09MIF9maWxlU3lzdGVtQWNjZXNzRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RvcmFnZUFQSUVuYWJsZWQ6KSBCT09M
IF9zdG9yYWdlQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWNjZXNz
SGFuZGxlRW5hYmxlZDopIEJPT0wgX2FjY2Vzc0hhbmRsZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmICFUQVJHRVRfT1Nf
SVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJHTEVuYWJsZWQ6KSBC
T09MIF93ZWJHTEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YjMy
ZWJhMjIwOGE0ZDg0OWM0NTcwNzFiY2E0Mzg5NjI1MjE3MGU1Li4xMTlhYTUzZWNiMzcwY2E4MWMw
NjhkOGY5ODA5ZTBmZjdlNTliZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzIsNiArMTQ3Miw3IEBACiAJCTkzMDg1RERGMjZF
NUJDRjEwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1RENFMjZF
MkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAq
LzsgfTsKIAkJOTMwODVERTAyNkU1QkNGRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwODVE
QzQyNkUxQkJCRDAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5
MzA4NURFMTI2RTVCRDEzMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1RENE
MjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9
OworCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxMjJDODUyNzEwQ0NE
RTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLzsgfTsKIAkJOTMxMkJBRDUyNkYzM0My
NjAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMxQTA3NTAyNkYwNjMxMDAwNDQ3NENEIC8q
IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQk5MzEyQkFENjI2RjMzQzI5MDBG
RERGNUYgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUzMjZGMDZBQjQwMDQ0NzRDRCAvKiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5oICovOyB9OwogCQk5MzFBMUJFMjI2Rjg3MDA5MDA4MUE3RTUg
LyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTMxQTFCRTAyNkY4NUMzMjAwODFBN0U1IC8qIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3IuaCAqLzsgfTsKQEAgLTE0ODQsNiArMTQ4NSw4IEBACiAJCTkzM0U4MzVBMjNB
MUFFMjgwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTkyM0ExQURGNTAwREVGMjg5IC8q
IFdlYklEQlNlcnZlck1lc3NhZ2VzLmggKi87IH07CiAJCTkzM0U4MzVCMjNBMUI3NTAwMERFRjI4
OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRTgzNTgyM0ExQURGNTAwREVGMjg5IC8qIFdl
YklEQlNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTkzNDI1ODlBMjU1QjUzNUEw
MDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODk4MjU1QjUzNEIwMDU5RUVERCAvKiBN
ZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLzsgfTsKKwkJOTM0NjhFNkIyNzE0QUY0NzAwOTk4
M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVI
YW5kbGUuY3BwICovOyB9OworCQk5MzQ2OEU2RDI3MTRBRjg4MDA5OTgzRTMgLyogU2hhcmVkRmls
ZUhhbmRsZUNvY29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2Eu
Y3BwICovOyB9OwogCQk5MzRCNzI0NDE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRl
bVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51SXRlbVR5cGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1NDI0MkMyNzAz
QkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MkEyNzAzQkRDQjAw
NUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyB9OwogCQk5MzU2
RjJEQzIxNTJCNkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwMjFGNDc5M0IyMDBE
Q0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87IH07CkBAIC00OTQ5LDYgKzQ5NTIs
NyBAQAogCQk5MzA4NURDQzI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3
b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2Fn
ZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN5
c3RlbVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEw
NzUxMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMxQTA3NTIyNkYwNkFCNDAwNDQ3
NENEIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NjcsNiArNDk3MSw4IEBACiAJCTkzM0U4MzU5MjNBMUFERjUw
MERFRjI4OSAvKiBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJREJTZXJ2ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQk5MzQyNTg4RjI1NTVEQ0E1MDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9u
VXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQZXJtaXNzaW9uVXRpbGl0
aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5ODI1NUI1MzRCMDA1
OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzQ2OEU2QTI3MTRBRjQ3MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRGaWxlSGFu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NjhFNkMyNzE0QUY4ODAw
OTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzRCNzI0MzE5RjVCOUJFMDBBRTk2RDYgLyogV0tBY3Rpb25NZW51
SXRlbVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVu
dUl0ZW1UeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU0MjQyQTI3MDNC
RENCMDA1Q0E3MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzU0MjQyQjI3MDNCRENCMDA1Q0E3MkMg
LyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzU4LDYgKzczNjQsOCBAQAogCQkJCTVDQzVE
QjkxMjE0ODhFMTYwMDZDQjhBOCAvKiBTaGFyZWRCdWZmZXJDb3B5LmggKi8sCiAJCQkJMkRDMTg1
NUVEQkZCODUwQkEwQjZEMDZEIC8qIFNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwICovLAog
CQkJCTJEQzE4ODFBQ0JDQUI1RDU3QzVDNkVGMCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmggKi8sCisJCQkJOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUu
Y3BwICovLAorCQkJCTkzMTIyQzg1MjcxMENDREUwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxl
LmggKi8sCiAJCQkJN0I3MzEyMzYyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVhbUNsaWVudENvbm5l
Y3Rpb24uY3BwICovLAogCQkJCTdCNzMxMjMzMjVDQzg1MjMwMDNCMjc5NiAvKiBTdHJlYW1DbGll
bnRDb25uZWN0aW9uLmggKi8sCiAJCQkJN0I3MzEyMzQyNUNDODUyNDAwM0IyNzk2IC8qIFN0cmVh
bUNvbm5lY3Rpb25CdWZmZXIuY3BwICovLApAQCAtMTExMzAsNiArMTExMzgsNyBAQAogCQkJCTFB
NkQ4NkJGMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5jcHAgKi8sCiAJCQkJMUE2RDg2
QzAxREY3NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmggKi8sCiAJCQkJQkNDNTZGNzcxMTU5
OTU3RDAwMUNDQUY5IC8qIE1hY2hQb3J0LmggKi8sCisJCQkJOTM0NjhFNkMyNzE0QUY4ODAwOTk4
M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNv
Y29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyNjU0LDYgKzEyNjYzLDcgQEAK
IAkJCQlBMTgzNDk0MjI0RUY0Njc4MDBCREM5QTggLyogU2hhcmVkQnVmZmVyQ29weS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkRDMThGRjZFRjJBMzEzMEMxMzAxNzY3IC8qIFNoYXJlZEJ1ZmZlckRh
dGFSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0QTZENkJDMjU0Q0EzRTkwMEI2NUZB
QSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTMxMjJD
ODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBMjRCRUQ1MTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNENEI0RDlEMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxM0Y3RUMxRjdEQUUwODAwQjk0NEVCIC8qIFNo
YXJlZFN0cmluZ0hhc2hTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDYxNiw2ICsxNDYyNiw4
IEBACiAJCQkJMkQ5MkE3ODcyMTJCNkFCMTAwRjQ5M0ZEIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZFQkYzMzdCOTY3MUM4OEUzQ0QgLyogU2hhcmVkQnVm
ZmVyQ29weS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxODEyNDVCNTQ5MzQzQkM5ODE2NEMg
LyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzQ2
OEU2QjI3MTRBRjQ3MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5MzQ2OEU2RDI3MTRBRjg4MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29h
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQURBRkI2MjM2OEU2QTgwMDlDQjc3NiAvKiBTaGFy
ZWRNZW1vcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFCQjkyM0NFOUMwQjAwMjA2MzlB
IC8qIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREU2
OTQzRDE4QkQyQTY4MDA1QzE1RTUgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggNjAzMTI3YmU2Nzg0OTgxZDMwYWE0YTc2MjE5
NzU1ZDNlZjM2MjI1Yy4uOTY4NWZjZmE4ZTljNTZiYTI4NjY5OWJhMTIxYTA3MGM0MzJiMjNhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAg
LTEyMSw3ICsxMjEsOCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSAogICAgICAgICBpZiAoIXJl
c3VsdCkKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNl
cHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHJlc3VsdC52YWx1ZSgpKSk7CisgICAgICAgIGF1dG8gcmVzdWx0VmFsdWUgPSByZXN1bHQu
dmFsdWUoKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpwYWlyIHsgcmVzdWx0VmFs
dWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZC5oYW5kbGUoKSB9KTsKICAgICB9KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
LmluCmluZGV4IGFhNWE4ZGQxNzQzYTFjYjk0ZDM0YmZhNWFjZGE2MGY2NWQ1ZjNkM2MuLjZiMzFi
NmVkNmI2N2YwYmViMDYxYzdmYTJkY2ViZTI1MTY4ZjQ3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KQEAgLTE5MzYsNiAr
MTkzNiw3IEBACiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfY29ubmVjdF9ub2NhbmNlbCkK
ICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19zZW5kdG9fbm9jYW5jZWwpCiAgICAgICAgIChz
eXNjYWxsLW51bWJlciBTWVNfZnNnZXRwYXRoKQorICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lT
X2ZpbGVwb3J0X21ha2VmZCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxlcG9ydF9t
YWtlcG9ydCkKICAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19ndWFyZGVkX29wZW5fbnApCiAg
ICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3VhcmRlZF9jbG9zZV9ucCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzZTQzYmNhMzFiYmZlYWMx
Mjc1Mzc0NGNjNWYzYzBjMWUwYzllMDBlLi41Nzc0NWJjYzQ5MTQ0OWU2MDliNTU0YTI4MjVlMjFh
ZTFhNGMzZWZhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
IHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tOiBBZGRl
ZC4KKyAgICAgICAgKC1bRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50
Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKyAgICAgICAgKHRlc3QpOgor
CiAyMDIxLTEwLTExICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBT
bGlnaHRseSBiZXR0ZXIgaWRpb20gZm9yIEFSQyBkZWJ1ZyBhdXRvcmVsZWFzZSB3b3JrYXJvdW5k
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI3NWE1ZDBmOTI4OTg3NGZhYTA1NjM3ZTVjMDhh
ZTI2YTlkNjQzNjkuLjgwMWU0NzQwNTg3MmU4MDkwNThkMDQzZDJhNmRmNzM1ZjBjZWI3ODYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NTQsNiArODU0LDcgQEAKIAkJOTMzRDYzMUQxRkNC
NzYyMDAwMzJFQ0Q2IC8qIEhhc2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzNENjMxQjFGQ0I3NjE4MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAq
LzsgfTsKIAkJOTM0MjU4OUMyNTVCNjA5QjAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml0aW9uLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0MjU4OUIy
NTVCNjA5QTAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml0aW9uLm1tICovOyB9OwogCQk5MzQyNTg5
RTI1NUI2QTEyMDA1OUVFREQgLyogc3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBl
cnNpc3RlbmNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM0MjU4OUQyNTVCNjZBMDAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0aW9u
LXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sICovOyB9OworCQk5MzQ2OEU2RjI3MTRC
NEYyMDA5OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDY4RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxl
U3lzdGVtQWNjZXNzLm1tICovOyB9OwogCQk5MzU3ODZDQzIwRjZBMjcwMDAwMENERkMgLyogSW5k
ZXhlZERCLnNxbGl0ZTMtd2FsIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3Fs
aXRlMy13YWwgKi87IH07CiAJCTkzNTc4NkNEMjBGNkEyOTEwMDAwQ0RGQyAvKiBJbmRleGVkREIu
c3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzRGQTVDNzIwRjY5RkVFMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi87IH07
CiAJCTkzNTc4NkNFMjBGNkEyQTEwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1
QzYyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLzsgfTsKQEAgLTI1
ODIsNiArMjU4Myw3IEBACiAJCTkzM0Q2MzFCMUZDQjc2MTgwMDMyRUNENiAvKiBIYXNoZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGFzaGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OUIyNTVCNjA5QTAwNTlFRUREIC8qIFNwZWVj
aFJlY29nbml0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1
ODlEMjU1QjY2QTAwMDU5RUVERCAvKiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Npb24t
cGVyc2lzdGVuY2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJzcGVlY2hyZWNv
Z25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzNDY4RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNj
ZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZVN5c3Rl
bUFjY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzUyMEY2OUZF
RDAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNxbGl0
ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzYyMEY2OUZFRDAw
NDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNxbGl0ZTMt
c2htIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzcyMEY2OUZFRTAwNDBE
QzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEluZGV4ZWREQi5zcWxpdGUzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzUxMCw2ICszNTEyLDcgQEAKIAkJCQk2QjI1QTc1MTI1
REM4RDRFMDA3MDc0NEYgLyogRXZlbnRBdHRyaWJ1dGlvbi5tbSAqLywKIAkJCQlDREEyOUIyODIw
RkQyQTk5MDBGMTVDRUQgLyogRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQLm1tICovLAogCQkJCTFE
MTJCRUJGMjQ1QkVGODUwMDRDMEI3QSAvKiBFeGl0UGlQT25TdXNwZW5kVmlkZW9FbGVtZW50Lm1t
ICovLAorCQkJCTkzNDY4RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1t
ICovLAogCQkJCTJEODEwNENCMUJFQzEzRTcwMDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICovLAog
CQkJCTUxMjQyQ0Q0MjM3NEU2MUUwMEVFRDlDMSAvKiBGaW5kSW5QYWdlQVBJLm1tICovLAogCQkJ
CTExODE1MzQ3MjIwOEJBREYwMEIyQ0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3Rv
bmUubW0gKi8sCkBAIC01NTY4LDYgKzU1NzEsNyBAQAogCQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0
N0M0QyAvKiBGYWlsZWRMb2FkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3OTY1MUU3MjE2QkZE
RUQwMDZFQkZFNSAvKiBGaWRvSGlkTWVzc2FnZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0EzMkQ3NEExRjAyMTUxNTAwMTYyQzQ0IC8qIEZpbGVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTkzNDY4RTZGMjcxNEI0RjIwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRjMxQTQxMUFFNjAwNDQ3QzRDIC8qIEZpbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQkIxRDBBNjUwMDAwRkVCQ0YzIC8qIEZpbmRJblBhZ2Uu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTI0MkNENTIzNzRFNjI1MDBFRUQ5QzEgLyogRmluZElu
UGFnZUFQSS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIw
ZmNkMzFiOGNiMzUxMTFhZGE2MWFhNzI0MmJlNDU2NGM1NTIyYTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3Mu
bW0KQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCisjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CisKK3N0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZTsKK3N0YXRpYyBSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsK
KworQGludGVyZmFjZSBGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8
V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEZpbGVTeXN0
ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlcgorCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjoo
V0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2
ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOworICAgIGxhc3RTY3JpcHRNZXNzYWdlID0gbWVzc2FnZTsK
K30KKworQGVuZAorCitzdGF0aWMgTlNTdHJpbmcgKm1haW5GcmFtZVN0cmluZyA9IEAiPHNjcmlw
dD4gXAorICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeyBcCisgICAgICAgIHZhciB3b3JrZXIgPSBuZXcg
V29ya2VyKCd3b3JrZXIuanMnKTsgXAorICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsgXAorICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSk7IFwKKyAgICAgICAgfTsgXAorICAg
IH0gXAorICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCdwYWdlIGlzIGxvYWRlZCcpOyBcCisgICAgPC9zY3JpcHQ+IjsKKworc3RhdGljIGNv
bnN0IGNoYXIqIHdvcmtlckJ5dGVzID0gUiJURVNUUkVTT1VSQ0UoCithc3luYyBmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmln
YXRvci5zdG9yYWdlLmdldERpcmVjdG9yeSgpOworICAgICAgICB2YXIgZmlsZUhhbmRsZSA9IGF3
YWl0IHJvb3RIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnZmlsZS1zeXN0ZW0tYWNjZXNzLnR4dCcsIHsg
J2NyZWF0ZScgOiB0cnVlIH0pOworICAgICAgICB2YXIgYWNjZXNzSGFuZGxlID0gYXdhaXQgZmls
ZUhhbmRsZS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CisgICAgICAgIHZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoMTApOworICAgICAgICB2YXIgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxl
LndyaXRlKGJ1ZmZlciwgeyAiYXQiIDogMCB9KTsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgn
c3VjY2Vzczogd3JpdGUgJyArIHdyaXRlU2l6ZSArICcgYnl0ZXMnKTsKKyAgICB9IGNhdGNoIChl
cnIpIHsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnZXJyb3I6ICcgKyBlcnIubmFtZSArICcg
LSAnICsgZXJyLm1lc3NhZ2UpOworICAgICAgICBjbG9zZSgpOworICAgIH0KK30KK3Rlc3QoKTsK
KylURVNUUkVTT1VSQ0UiOworCitURVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIFByb2Nlc3NDcmFzaER1
cmluZ1dyaXRlKQoreworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tGaWxlU3lzdGVtQWNj
ZXNzTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgYXV0byBwcmVmZXJl
bmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5fZmls
ZVN5c3RlbUFjY2Vzc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2FjY2Vzc0hhbmRs
ZUVuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX3N0b3JhZ2VBUElFbmFibGVkID0gWUVT
OworICAgIGF1dG8gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxl
ciBhbGxvY10gaW5pdF0pOworICAgIFtzY2hlbWVIYW5kbGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFz
a0hhbmRsZXI6XihXS1dlYlZpZXcgKiwgaWQ8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAg
ICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZTsKKyAgICAgICAgUmV0YWluUHRy
PE5TRGF0YT4gZGF0YTsKKyAgICAgICAgTlNVUkwgKnJlcXVlc3RVUkwgPSB0YXNrLnJlcXVlc3Qu
VVJMOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIndlYmtpdDovL3dlYmtpdC5vcmcvd29ya2Vy
LmpzIiwgcmVxdWVzdFVSTC5hYnNvbHV0ZVN0cmluZyk7CisgICAgICAgIHJlc3BvbnNlID0gYWRv
cHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnJlcXVlc3RVUkwgTUlNRVR5
cGU6QCJ0ZXh0L2phdmFzY3JpcHQiIGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGlu
Z05hbWU6bmlsXSk7CisgICAgICAgIGRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6d29ya2Vy
Qnl0ZXMgbGVuZ3RoOnN0cmxlbih3b3JrZXJCeXRlcyldOworICAgICAgICBbdGFzayBkaWRSZWNl
aXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0
YTpkYXRhLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkRmluaXNoXTsKKyAgICB9XTsKKyAgICBb
Y29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOnNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9y
VVJMU2NoZW1lOkAid2Via2l0Il07CisKKyAgICAvLyBsb2FkIGZpcnN0IHdlYiB2aWV3ICYgc3Rh
cnQgdGVzdAorICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1l
U3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ3ZWJraXQ6Ly93ZWJraXQub3Jn
Il1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
KTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJwYWdlIGlzIGxvYWRlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpu
aWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
KTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJzdWNjZXNzOiB3cml0ZSAxMCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7
CisKKyAgICBhdXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtzZWNvbmRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1h
aW5GcmFtZVN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAid2Via2l0Oi8vd2Vi
a2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNU
X1dLX1NUUkVRKEAicGFnZSBpcyBsb2FkZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwor
CisgICAgLy8gQWNjZXNzIGhhbmRsZSBjYW5ub3QgYmUgY3JlYXRlZCB3aGVuIHRoZXJlIGlzIGFu
IG9wZW4gb25lLgorICAgIFtzZWNvbmRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOworICAgIEVYUEVDVF9XS19TVFJFUShAImVycm9yOiBJbnZhbGlkU3RhdGVFcnJvciAtIFRo
ZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9k
eV0pOworCisgICAgLy8gT3BlbiBhY2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiB3
ZWIgcHJvY2VzcyBjcmFzaGVzLgorICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3Nd
OworCisgICAgW3NlY29uZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUg
MTAgYnl0ZXMiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworfQorCisjZW5kaWYgLy8gVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZDI4NWE4NjljYjZlZGRjODBhNGVjN2Q5NDE2
ZWRlZWRlNzFlMmMzLi4zOGYwOTM3MWJmNTUyZTc5YzQ0NmJlNmVmZmYzMDQzZTdlMmQ2M2VjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTAtMTIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
IHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogc3RvcmFnZS9m
aWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5q
czogQWRkZWQuCisgICAgICAgIChmaW5pc2hUZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9T
dHJpbmcpOgorICAgICAgICAoc3RyaW5nVG9BcnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6
CisgICAgICAgIChyZWFkKToKKyAgICAgICAgKGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3Jh
Z2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
c3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIx
LTEwLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NPT1Bd
IENyYXNoIHVuZGVyIFJlcG9ydGluZ0VuZHBvaW50c0NhY2hlOjphZGRFbmRwb2ludEZyb21EaWN0
aW9uYXJ5KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDVjNzI3NDBkNmJmYWJl
MTE2NmYzNDJkMjVjY2EzYjEzY2EwOTZiODUuLmM5MTNjNWExY2U5YWExNDBjOTg1ZTM0YjI0MzA0
ZThiMGI2YTEyMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTEwLTEyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRl
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5
c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLWNsb3NlLmh0
dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLWZsdXNoLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLWdldFNpemUuaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vz
cy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtcmVhZC13cml0ZS5odHRwcy50
ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS10cnVuY2F0ZS5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0x
MC0xMSAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBu
ZXcgYXV0b2ZvY3VzIGJlaGF2aW9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUtY2xvc2UuaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtY2xvc2Uu
aHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZTZiOWVhOTEyOGE3ZWNi
ZDkyNzlmMzdjMDY5MTMyMjhiM2ZiZGJmZi4uYmI3N2E0OTliYTFjOGM5ZTgyNzc2MzA1MzVhMzc3
NjVmMjM5ODhlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLWNsb3NlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0t
YWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1jbG9zZS5odHRwcy50
ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAogCiBGQUlMIFN5
bmNBY2Nlc3NIYW5kbGUuY2xvc2UgaXMgaWRlbXBvdGVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9i
amVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKIEZBSUwgU3luY0FjY2Vzc0hhbmRsZS5jbG9z
ZSBpcyBpZGVtcG90ZW50IHdoZW4gY2FsbGVkIGltbWVkaWF0ZWx5IHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogVGhlIG9w
ZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25vd24gdHJhbnNpZW50IHJlYXNvbiAoZS5nLiBvdXQg
b2YgbWVtb3J5KS4iCi1GQUlMIFN5bmNBY2Nlc3NIYW5kbGUucmVhZCBmYWlscyBhZnRlciBTeW5j
QWNjZXNzSGFuZGxlLmNsb3NlIHNldHRsZXMgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIo
KSA9PiBoYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7YXQ6IDB9KSIgdGhyZXcgb2JqZWN0ICJUeXBl
RXJyb3I6IGhhbmRsZS5yZWFkIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2hhbmRsZS5yZWFkKHJl
YWRCdWZmZXIsIHthdDogMH0pJywgJ2hhbmRsZS5yZWFkJyBpcyB1bmRlZmluZWQpIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlz
IGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgMTEKLUZBSUwgU3luY0FjY2Vzc0hhbmRsZS5y
ZWFkIGZhaWxzIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcgU3luY0FjY2Vzc0hhbmRsZS5jbG9z
ZSBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGhhbmRsZS5yZWFkKHJlYWRCdWZm
ZXIsIHthdDogMH0pIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogaGFuZGxlLnJlYWQgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwge2F0OiAwfSknLCAnaGFu
ZGxlLnJlYWQnIGlzIHVuZGVmaW5lZCkiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFs
aWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBl
Y3RlZCAxMQotRkFJTCBTeW5jQWNjZXNzSGFuZGxlLndyaXRlIGZhaWxzIGFmdGVyIFN5bmNBY2Nl
c3NIYW5kbGUuY2xvc2Ugc2V0dGxlcyBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+
IGhhbmRsZS53cml0ZSh3cml0ZUJ1ZmZlciwge2F0OiAwfSkiIHRocmV3IG9iamVjdCAiVHlwZUVy
cm9yOiBoYW5kbGUud3JpdGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLndyaXRlKHdy
aXRlQnVmZmVyLCB7YXQ6IDB9KScsICdoYW5kbGUud3JpdGUnIGlzIHVuZGVmaW5lZCkiIHRoYXQg
aXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIg
aXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAxMQotRkFJTCBTeW5jQWNjZXNzSGFuZGxl
LndyaXRlIGZhaWxzIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcgU3luY0FjY2Vzc0hhbmRsZS5j
bG9zZSBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGhhbmRsZS53cml0ZSh3cml0
ZUJ1ZmZlciwge2F0OiAwfSkiIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBoYW5kbGUud3JpdGUg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7YXQ6IDB9
KScsICdoYW5kbGUud3JpdGUnIGlzIHVuZGVmaW5lZCkiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0
aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZp
bmVkLCBleHBlY3RlZCAxMQorRkFJTCBTeW5jQWNjZXNzSGFuZGxlLnJlYWQgZmFpbHMgYWZ0ZXIg
U3luY0FjY2Vzc0hhbmRsZS5jbG9zZSBzZXR0bGVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0
IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorRkFJTCBTeW5jQWNjZXNzSGFuZGxlLnJlYWQgZmFp
bHMgaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZyBTeW5jQWNjZXNzSGFuZGxlLmNsb3NlIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRT
dGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorRkFJTCBTeW5j
QWNjZXNzSGFuZGxlLndyaXRlIGZhaWxzIGFmdGVyIFN5bmNBY2Nlc3NIYW5kbGUuY2xvc2Ugc2V0
dGxlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIK
K0ZBSUwgU3luY0FjY2Vzc0hhbmRsZS53cml0ZSBmYWlscyBpbW1lZGlhdGVseSBhZnRlciBjYWxs
aW5nIFN5bmNBY2Nlc3NIYW5kbGUuY2xvc2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMg
aW4gYW4gaW52YWxpZCBzdGF0ZS4iCiBGQUlMIFN5bmNBY2Nlc3NIYW5kbGUuZmx1c2ggZmFpbHMg
YWZ0ZXIgU3luY0FjY2Vzc0hhbmRsZS5jbG9zZSBzZXR0bGVzIHByb21pc2VfcmVqZWN0c19kb206
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJVbmtub3du
RXJyb3I6IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiB1bmtub3duIHRyYW5zaWVudCByZWFz
b24gKGUuZy4gb3V0IG9mIG1lbW9yeSkuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZh
bGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDEx
CiBGQUlMIFN5bmNBY2Nlc3NIYW5kbGUuZmx1c2ggZmFpbHMgaW1tZWRpYXRlbHkgYWZ0ZXIgY2Fs
bGluZyBTeW5jQWNjZXNzSGFuZGxlLmNsb3NlIHByb21pc2VfcmVqZWN0c19kb206IGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJVbmtub3duRXJyb3I6IFRo
ZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiB1bmtub3duIHRyYW5zaWVudCByZWFzb24gKGUuZy4g
b3V0IG9mIG1lbW9yeSkuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVF
cnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCiBGQUlMIFN5
bmNBY2Nlc3NIYW5kbGUuZ2V0U2l6ZSBmYWlscyBhZnRlciBTeW5jQWNjZXNzSGFuZGxlLmNsb3Nl
IHNldHRsZXMgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhy
b3cgZSB9IiB0aHJldyBvYmplY3QgIlVua25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQg
Zm9yIGFuIHVua25vd24gdHJhbnNpZW50IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5KS4iIHRo
YXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29k
ZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hl
ZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1mbHVzaC5odHRwcy50ZW50YXRpdmUud29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS1mbHVzaC5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAxMjdlOWNm
ZWU0MmUyNDdhZDY4NmM4ZWZhMTJmYmVhYmNiNzA4ZjdjLi42ZWE1NjRjY2FhYmQwNmYyZWI4MTdk
NDZiNzRjMzJhNTRlZTZhMjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUtZmx1c2guaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxl
LXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLWZsdXNo
Lmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCiBQ
QVNTIFRlc3QgZmx1c2ggb24gYW4gZW1wdHkgZmlsZS4KLUZBSUwgU3luY0FjY2Vzc0hhbmRsZS5y
ZWFkIHJldHVybnMgYnl0ZXMgd3JpdHRlbiBieSBTeW5jQWNjZXNzSGFuZGxlLndyaXRlIGFmdGVy
IFN5bmNBY2Nlc3NIYW5kbGUuZmx1c2ggcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBoYW5kbGUud3JpdGUgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAnaGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7YXQ6IDB9KScsICdoYW5kbGUu
d3JpdGUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIFN5bmNBY2Nlc3NIYW5kbGUucmVhZCBmYWlscyB3
aGVuIHRoZXJlIGlzIGEgcGVuZGluZyBTeW5jQWNjZXNzSGFuZGxlLmZsdXNoIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVy
cm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgotRkFJTCBTeW5jQWNjZXNz
SGFuZGxlLndyaXRlIGZhaWxzIHdoZW4gdGhlcmUgaXMgYSBwZW5kaW5nIFN5bmNBY2Nlc3NIYW5k
bGUuZmx1c2ggcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0
ZS4iCitQQVNTIFN5bmNBY2Nlc3NIYW5kbGUucmVhZCByZXR1cm5zIGJ5dGVzIHdyaXR0ZW4gYnkg
U3luY0FjY2Vzc0hhbmRsZS53cml0ZSBhZnRlciBTeW5jQWNjZXNzSGFuZGxlLmZsdXNoCitQQVNT
IFN5bmNBY2Nlc3NIYW5kbGUucmVhZCBmYWlscyB3aGVuIHRoZXJlIGlzIGEgcGVuZGluZyBTeW5j
QWNjZXNzSGFuZGxlLmZsdXNoCitQQVNTIFN5bmNBY2Nlc3NIYW5kbGUud3JpdGUgZmFpbHMgd2hl
biB0aGVyZSBpcyBhIHBlbmRpbmcgU3luY0FjY2Vzc0hhbmRsZS5mbHVzaAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVt
LWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtZ2V0U2l6ZS5odHRw
cy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS1nZXRTaXplLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IDBkMWM3OTg0MDA1MDk2NTc1NjUyYWUzYzcxNDRjMWFkZTA1MzAwNzYuLjRl
NWI5YjJlYTg1ZmIzZjkxOGE5MmU1MjZkOTIyYzJkZTdkNzcwYWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNz
L3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1nZXRTaXplLmh0dHBzLnRlbnRh
dGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZS1nZXRTaXplLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIHRlc3QgU3luY0FjY2Vzc0hhbmRsZS5nZXRTaXpl
IGFmdGVyIFN5bmNBY2Nlc3NIYW5kbGUud3JpdGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBoYW5kbGUud3JpdGUgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7YXQ6IDB9KScsICdo
YW5kbGUud3JpdGUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIHRlc3QgY3JlYXRlU3luY0FjY2Vzc0hh
bmRsZS5nZXRTaXplIHdpdGggcGVuZGluZyBvcGVyYXRpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBv
YmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCitQQVNTIHRlc3QgU3luY0FjY2Vzc0hhbmRs
ZS5nZXRTaXplIGFmdGVyIFN5bmNBY2Nlc3NIYW5kbGUud3JpdGUKK0ZBSUwgdGVzdCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlLmdldFNpemUgd2l0aCBwZW5kaW5nIG9wZXJhdGlvbiBhc3NlcnRfdW5y
ZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUtcmVhZC13cml0ZS5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0t
YWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1yZWFkLXdyaXRlLmh0
dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDcyYjNjNGViZmZlZWJjMzg1
NWQ2YTEwNDNiZTI0YjkxZWVmMWUxYzMuLmM1ZmNjMDg1ZDM4OGEyNGYxMTdlOTI3ZmIzMzMwNzg1
MTkxZWY1YmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS1yZWFkLXdyaXRlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0
ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1yZWFkLXdyaXRl
Lmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACiAK
LUZBSUwgVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgdGhyb3VnaCBhIHN5bmMgYWNjZXNzIGhh
bmRsZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiVHlwZUVycm9yOiBoYW5kbGUucmVhZCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdoYW5kbGUu
cmVhZChyZWFkQnVmZmVyLCB7YXQ6IDB9KScsICdoYW5kbGUucmVhZCcgaXMgdW5kZWZpbmVkKSIK
LUZBSUwgVGVzdCB3cml0aW5nIGFuZCByZWFkaW5nIHRocm91Z2ggYSBzeW5jIGFjY2VzcyBoYW5k
bGUuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgot
RkFJTCBUZXN0IHNlY29uZCB3cml0ZSB0aGF0IGlzIGJpZ2dlciB0aGFuIHRoZSBmaXJzdCB3cml0
ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJ
bnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKLUZB
SUwgVGVzdCBzZWNvbmQgd3JpdGUgdGhhdCBpcyBzbWFsbGVyIHRoYW4gdGhlIGZpcnN0IHdyaXRl
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIklu
dmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgotRkFJ
TCBUZXN0IGluaXRpYWwgd3JpdGUgd2l0aCBhbiBvZmZzZXQgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBv
YmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCi1GQUlMIFRlc3Qgb3ZlcndyaXRpbmcgdGhl
IGZpbGUgYXQgYW4gb2Zmc2V0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGlu
dmFsaWQgc3RhdGUuIgotRkFJTCBUZXN0IHJlYWQgYXQgYW4gb2Zmc2V0IHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9y
OiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgotRkFJTCBUZXN0IHJlYWRpbmcg
YXQgYSBuZWdhdGl2ZSBvZmZzZXQgZmFpbHMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlz
IGluIGFuIGludmFsaWQgc3RhdGUuIgorUEFTUyBUZXN0IHJlYWRpbmcgYW4gZW1wdHkgZmlsZSB0
aHJvdWdoIGEgc3luYyBhY2Nlc3MgaGFuZGxlLgorUEFTUyBUZXN0IHdyaXRpbmcgYW5kIHJlYWRp
bmcgdGhyb3VnaCBhIHN5bmMgYWNjZXNzIGhhbmRsZS4KK1BBU1MgVGVzdCBzZWNvbmQgd3JpdGUg
dGhhdCBpcyBiaWdnZXIgdGhhbiB0aGUgZmlyc3Qgd3JpdGUKK1BBU1MgVGVzdCBzZWNvbmQgd3Jp
dGUgdGhhdCBpcyBzbWFsbGVyIHRoYW4gdGhlIGZpcnN0IHdyaXRlCitQQVNTIFRlc3QgaW5pdGlh
bCB3cml0ZSB3aXRoIGFuIG9mZnNldAorUEFTUyBUZXN0IG92ZXJ3cml0aW5nIHRoZSBmaWxlIGF0
IGFuIG9mZnNldAorUEFTUyBUZXN0IHJlYWQgYXQgYW4gb2Zmc2V0CitGQUlMIFRlc3QgcmVhZGlu
ZyBhdCBhIG5lZ2F0aXZlIG9mZnNldCBmYWlscy4gYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9u
ICIoKSA9PiBoYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IGF0OiAtMSB9KSIgdGhyZXcgb2JqZWN0
ICJUeXBlRXJyb3I6IFZhbHVlIC0xIGlzIG91dHNpZGUgdGhlIHJhbmdlIFswLCA5MDA3MTk5MjU0
NzQwOTkxXSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IHBy
b3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDkKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5
c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLXRydW5jYXRl
Lmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLXRydW5jYXRlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXIt
ZXhwZWN0ZWQudHh0CmluZGV4IDRjNDlmYmFlMDMyNWYwMmNhM2U2ZGIzYWRiZTQ1NzE5N2Q3YTQy
YjAuLjE1YmM4ZWIxYWRlNDg2MWI5NzliMWFhMDI5ZjNiYjU5ODM1Y2FlYmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0t
YWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS10cnVuY2F0ZS5odHRw
cy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIEZBSUwgdGVzdCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlLnRydW5jYXRlIHdpdGggcGVuZGluZyBvcGVyYXRpb24gYXNzZXJ0X3VucmVhY2hlZDog
U2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUK
IFBBU1MgdGVzdCBTeW5jQWNjZXNzSGFuZGxlLnRydW5jYXRlIHdpdGggZGlmZmVyZW50IHNpemVz
Ci1GQUlMIHRlc3QgU3luY0FjY2Vzc0hhbmRsZS50cnVuY2F0ZSBhZnRlciBTeW5jQWNjZXNzSGFu
ZGxlLndyaXRlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogaGFuZGxlLndyaXRlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2hh
bmRsZS53cml0ZSh3cml0ZUJ1ZmZlciwge2F0OiAwfSknLCAnaGFuZGxlLndyaXRlJyBpcyB1bmRl
ZmluZWQpIgorUEFTUyB0ZXN0IFN5bmNBY2Nlc3NIYW5kbGUudHJ1bmNhdGUgYWZ0ZXIgU3luY0Fj
Y2Vzc0hhbmRsZS53cml0ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRlLmpzIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vz
cy1oYW5kbGUtcmVhZC13cml0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2JmYzQ3OTFmODRkZWM3ODEyMzNh
MTM3ZTczZWM0MmE1MTBhZGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0
ZS5qcwpAQCAtMCwwICsxLDk3IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1w
b3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCBjaGVja3MgcmVhZCBhbmQgd3JpdGUgY2FwYWJpbGl0aWVzIG9mIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBmaWxlU2l6
ZSwgd3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJlYWRUZXh0
LCByZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXplID0gMDsK
KwordmFyIHRlc3RTdHJpbmc7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAg
aWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0cmluZyhidWZmZXIpCit7
CisgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpOworICAgIHZhciB2aWV3ID0g
bmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUodmlldyk7
Cit9CisKK2Z1bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAgIGNvbnN0
IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTsKKyAgICByZXR1cm4gZW5jb2Rlci5lbmNvZGUo
c3RyaW5nKTsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNzSGFuZGxlLCBvZmZzZXQsIHRleHQp
Cit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5QnVmZmVyKHRleHQpOworICAgIHdy
aXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1ZmZlciwgeyAiYXQiIDogb2Zmc2V0
IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3JpdGVCdWZmZXIuYnl0ZUxlbmd0aCIp
OworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0aW9uIHJlYWQoYWNjZXNzSGFuZGxl
LCBvZmZzZXQsIHNpemUsIGV4cGVjdGVkU3RyaW5nKQoreworICAgIHJlYWRCdWZmZXIgPSBuZXcg
QXJyYXlCdWZmZXIoc2l6ZSk7CisgICAgcmVhZFNpemUgPSBhY2Nlc3NIYW5kbGUucmVhZChyZWFk
QnVmZmVyLCB7ICJhdCI6IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgicmVhZFNpemUiLCAicmVh
ZEJ1ZmZlci5ieXRlTGVuZ3RoIik7CisgICAgaWYgKGV4cGVjdGVkU3RyaW5nKSB7CisgICAgICAg
IHJlYWRUZXh0ID0gYXJyYXlCdWZmZXJUb1N0cmluZyhyZWFkQnVmZmVyKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsIGV4cGVjdGVkU3RyaW5nKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHJlYWRTaXplOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIHRy
eSB7CisgICAgICAgIHZhciByb290SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0
RGlyZWN0b3J5KCk7CisgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBmaWxlIGZvciB0aGlzIHRlc3Qu
CisgICAgICAgIGF3YWl0IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNzLWhhbmRs
ZS50eHQiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgdmFyIGZpbGVIYW5k
bGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhhbmRsZS50
eHQiLCB7ICJjcmVhdGUiIDogdHJ1ZSAgfSk7CisgICAgICAgIGFjY2Vzc0hhbmRsZSA9IGF3YWl0
IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBmaWxlU2l6ZSA9
IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJmaWxlU2l6
ZSIsICIwIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgcmVhZCgpIGFuZCB3cml0ZSgpOiIpOwor
ICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShhY2Nlc3NIYW5kbGUsIDAsICJUaGlzIGlz
IGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICB0b3RhbFJlYWRTaXplICs9IHJlYWQoYWNjZXNz
SGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2UuIik7Cisg
ICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgdG90YWxXcml0ZVNp
emUsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZChhY2Nlc3NIYW5k
bGUsIHRvdGFsUmVhZFNpemUsIHRvdGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSwgIlRoaXMg
aXMgc2Vjb25kIHNlbnRlbmNlLiIpOworICAgICAgICByZWFkKGFjY2Vzc0hhbmRsZSwgMCwgdG90
YWxXcml0ZVNpemUsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLlRoaXMgaXMgc2Vjb25kIHNlbnRl
bmNlLiIpOworCisgICAgICAgIC8vIFdyb25nIG9mZnNldCB0byByZWFkIGFuZCB3cml0ZS4KKyAg
ICAgICAgc2hvdWxkVGhyb3coImFjY2Vzc0hhbmRsZS5yZWFkKG5ldyBBcnJheUJ1ZmZlcigxKSwg
eyBcImF0XCIgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9KSIpOworICAgICAgICBzaG91bGRU
aHJvdygiYWNjZXNzSGFuZGxlLndyaXRlKG5ldyBBcnJheUJ1ZmZlcigxKSwgeyBcImF0XCIgOiBO
dW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9KSIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IGZsdXNo
KCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAgICBmaWxl
U2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJm
aWxlU2l6ZSIsICJ0b3RhbFdyaXRlU2l6ZSIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0IHRydW5j
YXRlKCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSg0KTsKKyAgICAg
ICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZpbGVTaXplID0gYXdhaXQg
YWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXplIiwgIjQi
KTsKKworICAgICAgICBkZWJ1ZygidGVzdCB3cml0ZSgpIHdpdGggcGVuZGluZyBvcGVyYXRpb246
Iik7CisgICAgICAgIGV2YWxBbmRMb2coImFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKSIpOworICAg
ICAgICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDQpOworICAgICAgICBzaG91bGRUaHJv
dygiYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyBcImF0XCIgOiAwIH0pIik7CisKKyAg
ICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmNsb3NlKCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsK
KyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9
Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3Rl
bWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNzLWhhbmRs
ZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVmNmJkMWE5NzA2
NTlhMDQ4NTIxNGMxZDJiM2M5Yzk1YTRiNWZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0
ZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK1tXb3JrZXJdIFRoaXMgdGVz
dCBjaGVja3MgcmVhZCBhbmQgd3JpdGUgY2FwYWJpbGl0aWVzIG9mIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRpbmcgd29y
a2VyOiByZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKK1BBU1MgW1dv
cmtlcl0gZmlsZVNpemUgaXMgMAorW1dvcmtlcl0gdGVzdCByZWFkKCkgYW5kIHdyaXRlKCk6CitQ
QVNTIFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtX
b3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSBy
ZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJdIHdyaXRl
U2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRTaXplIGlz
IHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAiVGhpcyBp
cyBzZWNvbmQgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFkQnVmZmVy
LmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgZmlyc3Qgc2Vu
dGVuY2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSBhY2Nlc3NIYW5k
bGUucmVhZChuZXcgQXJyYXlCdWZmZXIoMSksIHsgImF0IiA6IE51bWJlci5NQVhfU0FGRV9JTlRF
R0VSIH0pIHRocmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogRmFpbGVkIHRvIHJlYWQg
YXQgb2Zmc2V0LgorUEFTUyBbV29ya2VyXSBhY2Nlc3NIYW5kbGUud3JpdGUobmV3IEFycmF5QnVm
ZmVyKDEpLCB7ICJhdCIgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9KSB0aHJldyBleGNlcHRp
b24gSW52YWxpZFN0YXRlRXJyb3I6IEZhaWxlZCB0byB3cml0ZSBhdCBvZmZzZXQuCitbV29ya2Vy
XSB0ZXN0IGZsdXNoKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIHRvdGFsV3JpdGVTaXpl
CitbV29ya2VyXSB0ZXN0IHRydW5jYXRlKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIDQK
K1tXb3JrZXJdIHRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOgorW1dvcmtlcl0g
YWNjZXNzSGFuZGxlLnRydW5jYXRlKDApCitQQVNTIFtXb3JrZXJdIGFjY2Vzc0hhbmRsZS5yZWFk
KHJlYWRCdWZmZXIsIHsgImF0IiA6IDAgfSkgdGhyZXcgZXhjZXB0aW9uIEludmFsaWRTdGF0ZUVy
cm9yOiBBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbi4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQt
d3JpdGUtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
c3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcx
NmY3MWM4MDMwZGNkMTBjNjVkYTM4MzZlNGQ5NWM4YzI2M2VlNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUt
cmVhZC13cml0ZS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcycpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="465109"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440997</attachid>
            <date>2021-10-12 15:16:34 -0700</date>
            <delta_ts>2021-10-12 16:36:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231466-20211012151632.patch</filename>
            <type>text/plain</type>
            <size>93345</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdmMTU3YzFlMjAzZWM4OGJhZmFkMmQx
YTM3ZGYxZTg0NDBmZWY0MmQuLjAwMDYwYTNlNjBmNzRlZjE3ZTlhY2U0NWUwMTNlYTk0MzgxZGNk
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTAtMTIgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtSGF2ZS5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBTY3JvbGxPcHRpb25zJyBTY3Jv
bGxCZWhhdmlvciBhbmQgQ1NTIHNjcm9sbC1iZWhhdmlvciBwcm9wZXJ0aWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggN2ZmMzZhMjg4YjE2MTNhYjgyMTczNjkyZmNiNTEyN2Q0OTE1NzcyZi4uNGQ0ZDFlYWY1Y2I3
ZGY1OTZmZjNmZDdmMjRmMjc3MTc4OWU2ZjQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBA
CisyMDIxLTEwLTEyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2Ngor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICBJbXBsZW1lbnQgcmVhZCgpIGFuZCB3cml0ZSgpIGFj
Y29yZGluZyB0byBwcm9wb3NhbDoKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvZmls
ZS1zeXN0ZW0tYWNjZXNzL2Jsb2IvbWFpbi9BY2Nlc3NIYW5kbGUubWQKKworICAgICAgICBUZXN0
OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUt
d29ya2VyLmh0bWwKKyAgICAgICAgQVBJIHRlc3Q6IEZpbGVTeXN0ZW1BY2Nlc3MuUHJvY2Vzc0Ny
YXNoRHVyaW5nV3JpdGUKKworICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6dHJ1bmNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmZsdXNoKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp0cnVuY2F0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Z2V0U2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Zmx1c2gpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp3cml0ZSk6CisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmg6Cisg
ICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9C
dWZmZXJTb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJ1ZmZlclNvdXJjZTo6bXV0YWJsZURh
dGEgY29uc3QpOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFNjcm9sbGluZyB0aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNv
bW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4
IGQ0MDk2ZjExYTE2YTgzOTc4N2QwMTk3NTFlNjQ5MDY4MTUxMjM3NGMuLjhhM2E2MTE4MmY1MGJl
YWNhZThiMmExMzgxZjA4MGNmOTNlMmIzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIxLTEwLTEyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdy
aXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvRmlsZVBvcnRTUEkuaDogQWRkZWQuCisK
IDIwMjEtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBB
bGxvdyBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFdlYWtQdHIgd2l0aG91dCBtYWtlV2Vha1B0cigp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDcxMmRhYWUwNzdlM2RiZDNiMjg2NDRkMDBhZmNhMTRhYmRmYzAwMGYuLjI3
ODM4NTgzN2NmYjNmMmQzOTdlMzFkODMxZGQ2N2MwMDRiNjEyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTIgQEAKKzIwMjEtMTAtMTIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQg
d3JpdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNDY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIExldCBuZXR3b3JrIHByb2Nlc3Mgb3Bl
biB0aGUgZmlsZSBhbmQgcGFzcyBmaWxlIGRlc2NyaXB0b3IgdG8gd2ViIHByb2Nlc3MsIHNvIHRo
YXQgd2ViIHByb2Nlc3MgY2FuIHJlYWQgYW5kIAorICAgICAgICB3cml0ZSB0aGUgZmlsZSB3aXRo
b3V0IHNlbmRpbmcgSVBDIG1lc3NhZ2VzLiBDdXJyZW50bHkgZ2V0dGluZyBmaWxlIHNpemUsIHRy
dW5jYXRpbmcgZmlsZSBhbmQgc3luY2luZyBmaWxlIGFyZSAKKyAgICAgICAgc3RpbGwgcGVyZm9y
bWVkIGJ5IG5ldHdvcmsgcHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VG9F
eGNlcHRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpmbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpjbG9zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChJUEM6OlNo
YXJlZEZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmRlY29kZSk6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaDogQWRkZWQuCisgICAg
ICAgIChJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmhhbmRsZSk6CisgICAgICAgIChJUEM6OlNoYXJl
ZEZpbGVIYW5kbGU6OlNoYXJlZEZpbGVIYW5kbGUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9j
b2NvYS9TaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwOiBBZGRlZC4KKyAgICAgICAgKElQQzo6U2hh
cmVkRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKElQQzo6U2hhcmVkRmlsZUhhbmRsZTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2ZpbGVTeXN0ZW1BY2Nl
c3NFbmFibGVkXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEZpbGVTeXN0ZW1BY2Nl
c3NFbmFibGVkOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zdG9yYWdlQVBJRW5hYmxl
ZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRTdG9yYWdlQVBJRW5hYmxlZDpdKToK
KyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfYWNjZXNzSGFuZGxlRW5hYmxlZF0pOgorICAgICAg
ICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRBY2Nlc3NIYW5kbGVFbmFibGVkOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5p
bjoKKwogMjAyMS0xMC0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIGFuaW1hdGlvbnMgbmVlZCB0byBjb21taXQgbGF5
ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNw
cAppbmRleCBlNmZlOGRiZmJiYTIzZGMxNGRjMTEzZDg5NzkzZWY2NzgyNDQwYmIyLi5jYmU0NmYy
MDFmMWUyYTBjYmUzMzliMDIxZjc3Y2NkMTZhZjEzZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5jcHAKQEAgLTU3LDI5ICs1NywyNCBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhYwog
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21p
c2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhp
cy5nZXQoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkpKTsKKyAgICAgICAgYXV0byByZXN1bHRWYWx1
ZSA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShwcm90ZWN0ZWRUaGlzLmdldCgpLCBy
ZXN1bHRWYWx1ZS5maXJzdCwgcmVzdWx0VmFsdWUuc2Vjb25kKSk7CiAgICAgfSk7CiB9CiAKLXZv
aWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNpemUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDxJ
RExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZ2V0U2l6ZShp
ZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50
aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWdu
ZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25n
IHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgY29ubmVjdGlvbigpLnRydW5jYXRlKGlkZW50aWZpZXIo
KSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgY29ubmVjdGlvbigpLnRydW5jYXRlKGlkZW50aWZp
ZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgc2l6ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpmbHVzaChGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5mbHVzaChpZGVudGlmaWVy
KCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJl
c3VsdCkpOwotICAgIH0pOworICAgIGNvbm5lY3Rpb24oKS5mbHVzaChpZGVudGlmaWVyKCksIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAog
dm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5oCmluZGV4IGFmY2VhMWY3MDEzNzkwOGZlMWM3NDBlMWZmZWViMWRlNzgx
NDQxNTQuLjc0MjA3NjgzODgyNTFhYzY4YTU1ZWJiMzRkMGE4YzJmYzU5ZDVlY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJik7CiAKICAg
ICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYpOwotICAgIHZvaWQgZ2V0U2l6ZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIERPTVByb21pc2VEZWZlcnJlZDxJ
RExVbnNpZ25lZExvbmdMb25nPiYmKTsKLSAgICB2b2lkIHRydW5jYXRlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2b2lkIGZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQg
Z2V0U2l6ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dWludDY0X3Q+JiYpPiYmKTsKKyAgICB2b2lkIHRydW5j
YXRlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBs
b25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYp
OworICAgIHZvaWQgZmx1c2goRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKICAgICB2b2lk
IGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggOWMwNTc2OGQzYmYxOGRkMTQx
YzU5ZGE5MWJlNWFkYzQ1MGFhY2RkNC4uNGJhOWM1ODBkYTE2ZGVkMWRlZWNmYWY4YjQ0MmY2ODgx
NWY4NGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU2FtZUVudHJ5Q2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPjsKICAgICB1
c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYpPjsKICAgICB1c2luZyBSZXNvbHZlQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+
PiYmKT47Ci0gICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cj4mJik+OworICAgIHVzaW5nIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmKT47CiAgICAg
dXNpbmcgVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT47CiAgICAgdXNpbmcgSW50ZWdlckNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeGNlcHRpb25Pcjx1aW50NjRfdD4mJik+OwogICAgIHVzaW5nIEdldEhhbmRsZU5hbWVz
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJp
bmc+PiYmKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRl
eCBmYWQ0YjlhODRiODQ5ZDViY2U0N2MzNGEzZjBiNmQ2MWRlNzZkMmFiLi5kMjJlMjA4MGI2Y2M2
NDdjM2U1YmZlOTFlYzUyNDc2Y2FhOWQ0ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTM0LDE0ICszNCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK1JlZjxGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lz
dGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoc291cmNl
LCBpZGVudGlmaWVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGUoc291cmNlLCBpZGVudGlmaWVyLCBmaWxlKSk7CiB9CiAKLUZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmls
ZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikKK0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFu
ZGxlIGZpbGUpCiAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKKyAgICAsIG1fZmlsZShmaWxlKQogewogfQogCkBAIC01MywxNyArNTQsMzUgQEAg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgp
CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxv
bmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewotICAg
IG1fc291cmNlLT50cnVuY2F0ZShtX2lkZW50aWZpZXIsIHNpemUsIFdURk1vdmUocHJvbWlzZSkp
OworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPnRydW5jYXRl
KG1faWRlbnRpZmllciwgc2l6ZSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBp
ZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQtLTsKKworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0p
OwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpnZXRTaXplKERPTVByb21p
c2VEZWZlcnJlZDxJRExVbnNpZ25lZExvbmdMb25nPiYmIHByb21pc2UpCiB7Ci0gICAgbV9zb3Vy
Y2UtPmdldFNpemUobV9pZGVudGlmaWVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3BlbmRp
bmdPcGVyYXRpb25Db3VudCsrOworICAgIG1fc291cmNlLT5nZXRTaXplKG1faWRlbnRpZmllciwg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAg
ICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKKworICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpmbHVzaChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQogewotICAgIG1fc291cmNlLT5mbHVzaChtX2lkZW50aWZpZXIsIFdURk1vdmUocHJvbWlz
ZSkpOworICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50Kys7CisgICAgbV9zb3VyY2UtPmZsdXNo
KG1faWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vh
a1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsK
KworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwogfQog
CiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZShET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtNzEsOSArOTAsMTIgQEAgdm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
ICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwogCisgICAgbV9wZW5kaW5nT3BlcmF0aW9uQ291
bnQrKzsKICAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7Ci0gICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgaWYgKHdlYWtUaGlzKSB7
CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nT3BlcmF0aW9uQ291bnQtLTsKICAgICAg
ICAgICAgIHdlYWtUaGlzLT5kaWRDbG9zZSgpOworICAgICAgICB9CiAKICAgICAgICAgcHJvbWlz
ZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsKQEAgLTg0LDQgKzEwNiw0NiBAQCB2
b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSgpCiAgICAgbV9pc0Nsb3Nl
ZCA9IHRydWU7CiB9CiAKK0V4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQoQnVmZmVyU291cmNlJiYgYnVmZmVyLCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKK3sK
KyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKworICAgIGlmIChtX2ZpbGUgPT0gRmlsZVN5
c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB8fCBtX2lzQ2xvc2VkKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmIChtX3BlbmRp
bmdPcGVyYXRpb25Db3VudCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQWNjZXNzIGhhbmRsZSBoYXMgdW5maW5pc2hlZCBvcGVyYXRpb24iX3MgfTsKKwor
ICAgIGludCByZXN1bHQgPSBGaWxlU3lzdGVtOjpzZWVrRmlsZShtX2ZpbGUsIG9wdGlvbnMuYXQs
IEZpbGVTeXN0ZW06OkZpbGVTZWVrT3JpZ2luOjpCZWdpbm5pbmcpOworICAgIGlmIChyZXN1bHQg
PT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkZh
aWxlZCB0byByZWFkIGF0IG9mZnNldCJfcyB9OworCisgICAgcmVzdWx0ID0gRmlsZVN5c3RlbTo6
cmVhZEZyb21GaWxlKG1fZmlsZSwgYnVmZmVyLm11dGFibGVEYXRhKCksIGJ1ZmZlci5sZW5ndGgo
KSk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQgZnJvbSBmaWxlIl9zIH07CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitFeGNlcHRpb25Pcjx1bnNpZ25lZCBsb25nIGxvbmc+IEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjp3cml0ZShCdWZmZXJTb3VyY2UmJiBidWZmZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyBvcHRpb25z
KQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKG1fZmlsZSA9PSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIHx8IG1faXNDbG9zZWQpCisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworCisgICAgaWYgKG1f
cGVuZGluZ09wZXJhdGlvbkNvdW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbiJfcyB9
OworCisgICAgaW50IHJlc3VsdCA9IEZpbGVTeXN0ZW06OnNlZWtGaWxlKG1fZmlsZSwgb3B0aW9u
cy5hdCwgRmlsZVN5c3RlbTo6RmlsZVNlZWtPcmlnaW46OkJlZ2lubmluZyk7CisgICAgaWYgKHJl
c3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRmFpbGVkIHRvIHdyaXRlIGF0IG9mZnNldCJfcyB9OworCisgICAgcmVzdWx0ID0gRmlsZVN5
c3RlbTo6d3JpdGVUb0ZpbGUobV9maWxlLCBidWZmZXIuZGF0YSgpLCBidWZmZXIubGVuZ3RoKCkp
OworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIkZhaWxlZCB0byB3cml0ZSB0byBmaWxlIl9zIH07CisKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5oCmluZGV4IDI5ZTQxNTdiNjU0MWI5M2U2ZWE1ZmUwMjM3ZjBj
ZjIxNWQwM2MzYmYuLjFmZDkyNmMzMzEzNjNmNzFmZjQ4NzE0ZDRlOGJjZGY1NjJkMDdlZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCkBAIC0yNSwxNCArMjUsMTcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKICNpbmNsdWRl
ICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJRExU
eXBlcy5oIgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Cit0ZW1wbGF0
ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IHsKIHB1
YmxpYzoKQEAgLTQwLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBsb25nIGxv
bmcgYXQ7CiAgICAgfTsKIAotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGU+IGNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOwogICAgIH5GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSgpOwogCiAgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBs
b25nIGxvbmcgc2l6ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwpAQCAtNDgsMTMgKzUx
LDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
KTsKICAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lk
IGRpZENsb3NlKCk7CisgICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiByZWFkKEJ1
ZmZlclNvdXJjZSYmLCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyk7CisgICAgRXhjZXB0aW9u
T3I8dW5zaWduZWQgbG9uZyBsb25nPiB3cml0ZShCdWZmZXJTb3VyY2UmJiwgRmlsZXN5c3RlbVJl
YWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtRmlsZUhh
bmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9z
b3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAgIHVpbnQ2NF90IG1fcGVu
ZGluZ09wZXJhdGlvbkNvdW50IHsgMCB9OworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhh
bmRsZSBtX2ZpbGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAppbmRleCAxMTIwNjRhNmRmNjExYzQxMjFlMjVj
NzEwMmYwMzMwM2NlNDQ5NGFhLi42ZWE1NDM5N2VlYWYzOTBkNmMxNzg1MThmNzIxNjVhYmFhZGEz
NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKQEAgLTMz
LDYgKzMzLDggQEAKICAgICBQcm9taXNlPHVuc2lnbmVkIGxvbmcgbG9uZz4gZ2V0U2l6ZSgpOwog
ICAgIFByb21pc2U8dW5kZWZpbmVkPiBmbHVzaCgpOwogICAgIFByb21pc2U8dW5kZWZpbmVkPiBj
bG9zZSgpOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZWFkKFtBbGxvd1NoYXJlZF0gQnVmZmVy
U291cmNlIGJ1ZmZlciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CisgICAg
dW5zaWduZWQgbG9uZyBsb25nIHdyaXRlKFtBbGxvd1NoYXJlZF0gQnVmZmVyU291cmNlIGJ1ZmZl
ciwgRmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucyk7CiB9OwogCiBkaWN0aW9uYXJ5
IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMzc2NDEzMmFlZjNhYzAwNzEzNjQ4
OGU3MDZlNzk0OWRiODY2NzEwYi4uOGI4Y2E0YWFjNmQ1ODBkNzVjOTI0MzQzNzM4N2NlMGQwZmJh
ZmZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZAogICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lk
ZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlm
aWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxl
Pj4mJiByZXN1bHQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2dldEFjY2Vzc0hhbmRs
Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKQEAgLTIyMSw3ICsyMjEsMTAgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRs
ZUkKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhy
ZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyXSgpIG11dGFibGUgewogICAgICAgICBh
dXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUp
IG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgICAgICAgICAg
Y3Jvc3NUaHJlYWRSZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlvbigpKTsK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2Fs
bGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9u
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkQ3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA2Y2U3ZmY0Njk1ZDlm
MGE2YmJmYTQ5ZDZjMWEzNDdhYzdkMjNjOTRhLi40ZGU0Mzk5MmNkYjgzNjg0MGRlOWExNjk1NjJi
OWYzMDE2MWE4MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZElzU2Ft
ZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7CiAgICAgdm9p
ZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4mJik7CiAgICAgdm9pZCBkaWRSZXNvbHZlKENhbGxiYWNrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpOwotICAgIHZvaWQgZGlkQ3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpOworICAgIHZvaWQgZGlkQ3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6
cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBs
YXRmb3JtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgY29tcGxldGVWb2lkQ2FsbGJhY2soQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCk7CiAgICAgdm9pZCBj
b21wbGV0ZUludGVnZXJDYWxsYmFjayhDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPHVp
bnQ2NF90PiYmIHJlc3VsdCk7CiAgICAgdm9pZCBkaWRHZXRIYW5kbGVOYW1lcyhDYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMjZmMTRiNWNl
OWNhYjkzMWEzMzFlNTJiOTAwMGFhNmFmODQyMzY1Li4zZTkwNTNlNGM4YzI3MjBlNjdlYzI3NzNh
NWEzMjA1OWZlMDI3MDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTQsNiArMTU0LDcgQEAKIAkJNzFCMTE0MjAyNjgyM0FD
RDAwNEQ2NzAxIC8qIFN5c3RlbVByZXZpZXdTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQjExNDFGMjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1Q
cmV2aWV3U1BJLmggKi87IH07CiAJCTdBMzZEMEY5MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25D
cnlwdG9TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdBMzZEMEY4MjIzQUQ5QUIwMEIwNTIyRSAvKiBDb21tb25DcnlwdG9TUEkuaCAqLzsgfTsKIAkJ
N0EzQTZBODAyMENBREI0NzAwMzE3QUFFIC8qIE5TSW1hZ2VTUEkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBM0E2QTdGMjBDQURCNDYwMDMxN0FBRSAv
KiBOU0ltYWdlU1BJLmggKi87IH07CisJCTkzNDY4RTY3MjcxNEE3Q0QwMDk5ODNFMyAvKiBGaWxl
UG9ydFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM0NjhFNjYyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi87IH07CiAJCTkzQjM4
RUJFMjU4MjFDQjYwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQkQyNTgyMUNCNjAwMTk4RTYzIC8q
IFNwZWVjaFNvZnRMaW5rLmggKi87IH07CiAJCTkzQjM4RUMwMjU4MjFDRDgwMDE5OEU2MyAvKiBT
cGVlY2hTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQjM4RUJGMjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLzsg
fTsKIAkJOTNCMzhFQzIyNTgyMUQyMjAwMTk4RTYzIC8qIFNwZWVjaFNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCMzhFQzEyNTgyMUQyMjAwMTk4
RTYzIC8qIFNwZWVjaFNQSS5oICovOyB9OwpAQCAtMzc2LDYgKzM3Nyw3IEBACiAJCTcxQjExNDFG
MjY4MjNBQ0QwMDRENjcwMSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN5c3RlbVByZXZpZXdTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0EzNkQwRjgyMjNBRDlBQjAwQjA1MjJFIC8qIENvbW1vbkNyeXB0b1NQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tb25DcnlwdG9TUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0EzQTZBN0YyMENBREI0NjAwMzE3QUFFIC8qIE5TSW1h
Z2VTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNJbWFnZVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQ2OEU2NjI3MTRBN0NEMDA5OTgzRTMgLyog
RmlsZVBvcnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVBvcnRT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCMzhFQkQyNTgyMUNCNjAwMTk4
RTYzIC8qIFNwZWVjaFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjM4RUJG
MjU4MjFDRDcwMDE5OEU2MyAvKiBTcGVlY2hTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0IzOEVDMTI1ODIxRDIyMDAxOThFNjMgLyogU3BlZWNoU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTM0LDYgKzUzNiw3IEBACiAJCQkJREY4M0UyMDgyNjM3MzRGMTAw
MDgyNUVGIC8qIENyeXB0b0tpdFByaXZhdGVTUEkuaCAqLywKIAkJCQkwQzJEQTEyNTFGM0JFQjQ5
MDBEQkMzMTcgLyogRGF0YURldGVjdG9yc0NvcmVTUEkuaCAqLywKIAkJCQkxRDEyQ0M0QTI0MTFC
Q0FFMDBGREEwQTMgLyogRmVhdHVyZUZsYWdzU1BJLmggKi8sCisJCQkJOTM0NjhFNjYyNzE0QTdD
RDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggKi8sCiAJCQkJQ0U1NjczODYyMTUxQTdCOTAwMkY5
MkQ3IC8qIElPS2l0U1BJLmggKi8sCiAJCQkJMEMyREExMjYxRjNCRUI0OTAwREJDMzE3IC8qIElP
UE1MaWJTUEkuaCAqLywKIAkJCQkwQzJEQTEyNzFGM0JFQjQ5MDBEQkMzMTcgLyogSU9QU0xpYlNQ
SS5oICovLApAQCAtOTAwLDYgKzkwMyw3IEBACiAJCQkJQTExNzVCNTcxRjZCNDcwNTAwQzRCOUYw
IC8qIERlZmF1bHRTZWFyY2hQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyRDlFNzMx
RUVGNUFGNjAwREJDMzE3IC8qIEV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQx
MkNDNEIyNDExQkNBRTAwRkRBMEEzIC8qIEZlYXR1cmVGbGFnc1NQSS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM0NjhFNjcyNzE0QTdDRDAwOTk4M0UzIC8qIEZpbGVQb3J0U1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNDQyOTE2MDFGQTUyNjFFMDAyQ0M5M0UgLyogRmlsZVNpemVGb3JtYXR0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTFCMUY0M0E0QzcwMDJFQUMwMiAvKiBHcmFwaGlj
c1NlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzAyMkVGRjIyQ0ZFQzUzMDA2REYw
MUIgLyogR3VuemlwLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0ZpbGVQb3J0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0NTkwNWU2YzFkYzY2NjhmM2Iy
ODRiNDUwYzliMzYzYTljNjI0NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9GaWxlUG9ydFNQSS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbmNs
dWRlIDxTeXN0ZW0vc3lzL2ZpbGVwb3J0Lmg+CisKKyNlbHNlCisKK2V4dGVybiAiQyIgeworaW50
IGZpbGVwb3J0X21ha2Vwb3J0KGludCwgbWFjaF9wb3J0X3QqKTsKK2ludCBmaWxlcG9ydF9tYWtl
ZmQobWFjaF9wb3J0X3QpOworfQorCisjZW5kaWYgLy8gI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0J1ZmZlclNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQnVmZmVyU291cmNlLmgKaW5kZXggYjJm
MWM2MzVmYmY3N2Q0NGNkNjIyMmMwNDQxMDhjMTM1MTVmYjQxZC4uNmQyYzU3OTQ3YWNkYWNiMzE1
ZjBmYmM5OTk2OWIyMjZjNjMwNjNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQnVmZmVyU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQnVm
ZmVyU291cmNlLmgKQEAgLTQ5LDYgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
biBidWZmZXIgPyBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYnVmZmVyLT5kYXRhKCkpIDog
bnVsbHB0cjsKICAgICAgICAgfSwgbV92YXJpYW50KTsKICAgICB9CisgICAgCisgICAgdm9pZCog
bXV0YWJsZURhdGEoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6dmlzaXQoW10o
YXV0byYgYnVmZmVyKSAtPiB2b2lkKiB7CisgICAgICAgICAgICByZXR1cm4gYnVmZmVyLT5kYXRh
KCk7CisgICAgICAgIH0sIG1fdmFyaWFudCk7CisgICAgfQogCiAgICAgc2l6ZV90IGxlbmd0aCgp
IGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUVycm9yLmgKaW5kZXggMjg4MjQ0ZjhkZjBi
YTRjNGUxYjdiMzgwZDM2MDkyZDM1YjBiNGM4YS4uMDI3NzM3YTJiNDBiMmMyNzBlYWE2NGI4YTVm
OWU2NDMwMWVlODc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oCkBAIC0zMSw5ICszMSwx
MCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGVudW0gY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvciA6IHVpbnQ4X3QgeworICAgIEJhY2tlbmROb3RTdXBwb3J0ZWQsCiAgICAgRmlsZU5vdEZv
dW5kLAotICAgIEludmFsaWROYW1lLAogICAgIEludmFsaWRNb2RpZmljYXRpb24sCisgICAgSW52
YWxpZE5hbWUsCiAgICAgSW52YWxpZFN0YXRlLAogICAgIFR5cGVNaXNtYXRjaCwKICAgICBVbmtu
b3duCkBAIC00MiwxNiArNDMsMTggQEAgZW51bSBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
IDogdWludDhfdCB7CiBpbmxpbmUgV2ViQ29yZTo6RXhjZXB0aW9uIGNvbnZlcnRUb0V4Y2VwdGlv
bihGaWxlU3lzdGVtU3RvcmFnZUVycm9yIGVycm9yKQogewogICAgIHN3aXRjaCAoZXJyb3IpIHsK
KyAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkJhY2tlbmROb3RTdXBwb3J0ZWQ6Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpOb3RTdXBwb3J0ZWRF
cnJvciwgIkJhY2tlbmQgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wZXJhdGlvbiIgfTsKICAgICBj
YXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkZpbGVOb3RGb3VuZDoKICAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6Ok5vdEZvdW5kRXJyb3IgfTsKICAgICBjYXNl
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRNb2RpZmljYXRpb246CiAgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3IgfTsKLSAgICBjYXNlIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaDoKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlR5cGVFcnJvciB9Owog
ICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZE5hbWU6CiAgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJOYW1lIGlz
IGludmFsaWQiIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3Rh
dGU6CiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpJbnZhbGlk
U3RhdGVFcnJvciB9OworICAgIGNhc2UgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VHlwZU1pc21h
dGNoOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VHlwZUVy
cm9yIH07CiAgICAgY2FzZSBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOgogICAgICAg
ICBicmVhazsKICAgICB9CkBAIC03NCw5ICs3NywxMCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiB7
CiAgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yLAorICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkJhY2tlbmROb3RTdXBwb3J0ZWQsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6RmlsZU5vdEZvdW5kLAotICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I6OkludmFsaWROYW1lLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OkludmFsaWRNb2RpZmljYXRpb24sCisgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6SW52YWxpZE5hbWUsCiAgICAgICAgIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6SW52YWxpZFN0YXRlLAogICAgICAgICBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6
OlR5cGVNaXNtYXRjaCwKICAgICAgICAgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCA3NzJhMDA5ZmUxYTAx
OTA1YjIwNTk0MjM0ZmM1NmZmMzc0MGI2ZjliLi4wOGY2MGNjMTJkZTkxNDk0YzJjMDdjMDNmN2E3
MDFmNzIzNjE0MTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCIKICNpbmNsdWRl
ICJGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJTaGFyZWRGaWxlSGFuZGxl
LmgiCiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTQz
LDcgKzE0NCw3IEBAIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVzb2x2CiAgICAgcmV0dXJuIHJlc3RQYXRo
LnNwbGl0KHBhdGhTZXBhcmF0b3IpOwogfQogCi1FeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCkKK0V4cGVjdGVkPEZp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgp
CiB7CiAgICAgaWYgKCFtX21hbmFnZXIpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKQEAgLTE1Miw5ICsxNTMsMjAgQEAgRXhw
ZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPgogICAgIGlmICghYWNxdWlyZWQpCiAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGUpOwogCisg
ICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShtX3BhdGgsIEZpbGVTeXN0ZW06OkZp
bGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKKyAgICBpZiAobV9oYW5kbGUgPT0gRmlsZVN5c3RlbTo6
aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOworCisgICAgYXV0byBpcGNIYW5kbGUg
PSBJUEM6OlNoYXJlZEZpbGVIYW5kbGU6OmNyZWF0ZShtX2hhbmRsZSk7CisgICAgaWYgKCFpcGNI
YW5kbGUpIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1faGFuZGxlKTsKKyAgICAg
ICAgbV9oYW5kbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6QmFja2Vu
ZE5vdFN1cHBvcnRlZCk7CisgICAgfQorCiAgICAgQVNTRVJUKCFtX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUpOwogICAgIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSA9IFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Ci0gICAg
cmV0dXJuICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7CisgICAgcmV0dXJuIHN0ZDo6cGFpciB7
ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUsIFdURk1vdmUoKmlwY0hhbmRsZSkgfTsKIH0KIAog
RXhwZWN0ZWQ8dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpnZXRTaXplKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQpAQCAtMTgwLDEyICsxOTIsOCBAQCBzdGQ6
Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
Ojp0cnVuY2F0ZShXZWJDb3JlOgogICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8
ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAg
ICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKLSAgICBhdXRv
IGhhbmRsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKG1fcGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9w
ZW5Nb2RlOjpSZWFkV3JpdGUpOwotICAgIGF1dG8gY2xvc2VGaWxlU2NvcGUgPSBtYWtlU2NvcGVF
eGl0KFsmXSB7Ci0gICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShoYW5kbGUpOwotICAgIH0p
OwotCi0gICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUoaGFuZGxlLCBz
aXplKTsKKyAgICBBU1NFUlQobV9oYW5kbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZSk7CisgICAgYXV0byByZXN1bHQgPSBGaWxlU3lzdGVtOjp0cnVuY2F0ZUZpbGUo
bV9oYW5kbGUsIHNpemUpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKIApAQCAtMjAwLDcgKzIwOCwxMSBAQCBzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpm
bHVzaChXZWJDb3JlOjpGaQogICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICpt
X2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAg
ICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CiAKLSAgICAvLyBGSVhN
RTogd2hlbiB3cml0ZSBvcGVyYXRpb24gaXMgaW1wbGVtZW50ZWQsIHBlcmZvcm0gYWN0dWFsIGZs
dXNoIGhlcmUuCisgICAgQVNTRVJUKG1faGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGUpOworICAgIGF1dG8gcmVzdWx0ID0gRmlsZVN5c3RlbTo6Zmx1c2hGaWxl
KG1faGFuZGxlKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I6OlVua25vd247CisKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCkBA
IC0yMTIsNiArMjI0LDEwIEBAIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKFdlYkNvcmU6OkZpCiAgICAgaWYgKCFtX2Fj
dGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cjo6VW5rbm93bjsKIAorICAgIEFTU0VSVChtX2hhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlk
UGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUobV9oYW5kbGUp
OworICAgIG1faGFuZGxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsK
KwogICAgIG1fbWFuYWdlci0+cmVsZWFzZUxvY2tGb3JGaWxlKG1fcGF0aCwgbV9pZGVudGlmaWVy
KTsKICAgICBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgPSBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggZDk4ZTRlOTMyOGQyMWYwMjRiMTNiNjIzY2Q0MTk5
ZGQxYzY2Yjk4OC4uYmJkZmQ0Y2VlMWM3MTI2ODI3YjQwYjExOTZjNDM3N2JjZjE3YzkyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIFNoYXJlZEZpbGVIYW5k
bGU7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZU1h
bmFnZXI7CkBAIC01Myw3ICs1Nyw4IEBAIHB1YmxpYzoKICAgICBFeHBlY3RlZDxWZWN0b3I8U3Ry
aW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gZ2V0SGFuZGxlTmFtZXMoKTsKICAgICBFeHBl
Y3RlZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+
LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCwgU3RyaW5nJiYgbmFtZSk7CiAKLSAgICBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpw
YWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpT
aGFyZWRGaWxlSGFuZGxlPjsKKyAgICBFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7CiAgICAgRXhwZWN0ZWQ8
dWludDY0X3QsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldFNpemUoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+IHRydW5jYXRlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgdWludDY0X3Qgc2l6ZSk7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiBmbHVzaChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpOwpAQCAtNjgsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X3BhdGg7CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4gbV9hY3RpdmVTeW5jQWNjZXNzSGFu
ZGxlOworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2hhbmRsZSB7IEZpbGVT
eXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAyZWNmZTQzN2QwMTk3Y2Ey
MjFmZjUyMjg4MjNlNzczNzM3MmE2Y2U2Li41NTE2ZmJiNjI5NDdmOThkZGRlNTkyMWNkNzNmZWEz
MDA0N2ExYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMjI2LDcgKzIyNiw3
IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxl
LT5yZXNvbHZlKHRhcmdldElkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNz
SGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmgKaW5kZXggNmIzMzYwNjAyOGQ4MDFkNDg0NjJlYTZlNDA2ZTZiNDI5NTdjZmE3NC4uODg0
NTU5YWQ5NzY4Mjk0Nzk1ZWRmNTY4Njc1NjJhYmM2ZDkxMTI0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIuaApAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4K
IAorbmFtZXNwYWNlIElQQyB7CitjbGFzcyBTaGFyZWRGaWxlSGFuZGxlOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogfQpAQCAtNzAsNyArNzQsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNy
ZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYp
OwogICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7
CiAgICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsK
LSAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
Pik+JiYpOworICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5k
bGU+OworICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NI
YW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0U2l6
ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYp
OwogICAgIHZvaWQgdHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgdWludDY0X3Qgc2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBmbHVzaEZvckFjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDg2Y2IyNmFjYTllY2EyMzVjMjQ3NWI5
MTU3NWI2MTcxZDg3YzZkOTMuLmVmZTU3NDg2YzFiMmQ3MThkMTMxMjhkZjA1ZTQ1MjJhMDY1OTll
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzMs
NyArMzMsNyBAQAogICAgIFJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMKICAgICBSZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIHRhcmdldElkZW50
aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAKLSAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3Rl
ZDxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIENyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT4sIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
IC0+IChFeHBlY3RlZDx1aW50NjRfdCwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCiAgICAgVHJ1bmNhdGVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIHVpbnQ2NF90IHNp
emUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVz
dWx0KSBBc3luYwogICAgIEZsdXNoRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvU2hhcmVkRmlsZUhhbmRsZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGViY2U5ODAwODdjMDc1YjAyM2I1OGFlYTJlMTU1ODYwZDc2OTQ2NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuY3BwCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U2hhcmVkRmlsZUhhbmRsZS5oIgorCituYW1lc3BhY2UgSVBDIHsKKworI2lmICFQTEFURk9STShD
T0NPQSkKKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBTaGFyZWRGaWxlSGFuZGxl
OjpjcmVhdGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKQoreworICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Cit9CisKK3ZvaWQgU2hhcmVkRmlsZUhhbmRsZTo6ZW5jb2RlKEVuY29kZXIm
KSBjb25zdAoreworfQorCitzdGQ6Om9wdGlvbmFsPFNoYXJlZEZpbGVIYW5kbGU+IFNoYXJlZEZp
bGVIYW5kbGU6OmRlY29kZShEZWNvZGVyJikKK3sKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
fQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ2YWM4OTA1MDdlYjY5M2Ex
MDdiNDk5ZTU0MzYwNmE3OTdlNDQ5YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL1NoYXJlZEZpbGVIYW5kbGUuaApAQCAtMCwwICsxLDU4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHd0Zi9G
aWxlU3lzdGVtLmg+CisKK25hbWVzcGFjZSBJUEMgeworCitjbGFzcyBEZWNvZGVyOworY2xhc3Mg
RW5jb2RlcjsKKworY2xhc3MgU2hhcmVkRmlsZUhhbmRsZSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW06OlBsYXRm
b3JtRmlsZUhhbmRsZSk7CisKKyAgICBTaGFyZWRGaWxlSGFuZGxlKCkgPSBkZWZhdWx0OworICAg
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUoKSB7IHJldHVybiBtX2hhbmRs
ZTsgfQorCisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworCisgICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8U2hhcmVkRmlsZUhhbmRsZT4gZGVjb2RlKERlY29kZXImKTsKKyAgICAKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgU2hhcmVkRmlsZUhhbmRsZShGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYW5kbGUgaGFuZGxlKQorICAgICAgICA6IG1faGFuZGxlKGhhbmRsZSkKKyAgICB7Cisg
ICAgfQorCisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1faGFuZGxlIHsgRmls
ZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgSVBDCisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2Ev
U2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL2Nv
Y29hL1NoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y4MjI4YTc0NWZkMzVj
MmRjM2VjNzEwNTcyNjk1ZDkzODk4NGQxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL2NvY29hL1NoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAKQEAgLTAsMCAr
MSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFy
ZWRGaWxlSGFuZGxlLmgiCisKKyNpbmNsdWRlICJNYWNoUG9ydC5oIgorI2luY2x1ZGUgPHBhbC9z
cGkvY29jb2EvRmlsZVBvcnRTUEkuaD4KKworbmFtZXNwYWNlIElQQyB7CisKK3N0ZDo6b3B0aW9u
YWw8U2hhcmVkRmlsZUhhbmRsZT4gU2hhcmVkRmlsZUhhbmRsZTo6Y3JlYXRlKEZpbGVTeXN0ZW06
OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCit7CisgICAgcmV0dXJuIFNoYXJlZEZpbGVIYW5k
bGUgeyBoYW5kbGUgfTsKK30KKwordm9pZCBTaGFyZWRGaWxlSGFuZGxlOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBtYWNoX3BvcnRfbmFtZV90IGZpbGVwb3J0ID0gTUFD
SF9QT1JUX05VTEw7CisgICAgaWYgKGZpbGVwb3J0X21ha2Vwb3J0KG1faGFuZGxlLCAmZmlsZXBv
cnQpID09IC0xKSB7CisgICAgICAgIGVuY29kZXIgPDwgTWFjaFBvcnQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGVuY29kZXIgPDwgTWFjaFBvcnQoZmlsZXBvcnQsIE1BQ0hfTVNH
X1RZUEVfTU9WRV9TRU5EKTsKK30KKworc3RkOjpvcHRpb25hbDxTaGFyZWRGaWxlSGFuZGxlPiBT
aGFyZWRGaWxlSGFuZGxlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBNYWNoUG9y
dCBtYWNoUG9ydDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1hY2hQb3J0KSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAKKyAgICBpbnQgZmQgPSBmaWxlcG9ydF9tYWtlZmQo
bWFjaFBvcnQucG9ydCgpKTsKKyAgICBpZiAoZmQgPT0gLTEpCisgICAgICAgIHJldHVybiBTaGFy
ZWRGaWxlSGFuZGxlIHsgfTsKKworICAgIHJldHVybiBTaGFyZWRGaWxlSGFuZGxlOjpjcmVhdGUo
ZmlsZXBvcnRfbWFrZWZkKG1hY2hQb3J0LnBvcnQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBJ
UEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CmluZGV4IDdlMjNkNjA1MmM0NTI0ZjI3YjcwNDIwMmFhMGU3YzkxN2YxZGI5
MDUuLmE0NTBhZDUzM2FkNjljMWU4MWZkNTdhNjVlNmMzNzY4N2NjZDY4YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dApAQCAtMTczLDYgKzE3Myw3IEBAIFBsYXRmb3JtL0lQQy9TaGFyZWRCdWZmZXJEYXRhUmVmZXJl
bmNlLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1DbGllbnRDb25uZWN0aW9uLmNw
cCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uQnVmZmVyLmNwcCBAbm8t
dW5pZnkKIFBsYXRmb3JtL0lQQy9TdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmNwcCBAbm8tdW5p
ZnkKK1BsYXRmb3JtL0lQQy9TaGFyZWRGaWxlSGFuZGxlLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3Jt
L0lQQy9TdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKIFBsYXRmb3JtL0lQQy9T
dHJpbmdSZWZlcmVuY2UuY3BwIEBuby11bmlmeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDcxNjRmODg2MDA3OGUyMDcx
YWI4YzVmZDQ2Njg4ZjM0ZGZhYWFmMjIuLjRjZjk2NTQxYmJkMTRmN2RiOWZmMDdhYzMzN2MyOGU1
YjJlNTgzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCkBAIC0xNTE3LDYgKzE1MTcsMzYgQEAgc3RhdGljIFdlYkNvcmU6OkVk
aXRhYmxlTGlua0JlaGF2aW9yIHRvRWRpdGFibGVMaW5rQmVoYXZpb3IoX1dLRWRpdGFibGVMaW5r
QmVoYXYKICAgICBfcHJlZmVyZW5jZXMtPnNldFJlcXVpcmVzUGFnZVZpc2liaWxpdHlUb1BsYXlB
dWRpbyhyZXF1aXJlcyk7CiB9CiAKKy0gKEJPT0wpX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkCit7
CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+ZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQoKTsKK30K
KworLSAodm9pZClfc2V0RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQ6KEJPT0wpZmlsZVN5c3RlbUFj
Y2Vzc0VuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEZpbGVTeXN0ZW1BY2Nlc3NFbmFi
bGVkKGZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkKTsKK30KKworLSAoQk9PTClfc3RvcmFnZUFQSUVu
YWJsZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5zdG9yYWdlQVBJRW5hYmxlZCgpOwor
fQorCistICh2b2lkKV9zZXRTdG9yYWdlQVBJRW5hYmxlZDooQk9PTClzdG9yYWdlQVBJRW5hYmxl
ZAoreworICAgIF9wcmVmZXJlbmNlcy0+c2V0U3RvcmFnZUFQSUVuYWJsZWQoc3RvcmFnZUFQSUVu
YWJsZWQpOworfQorCistIChCT09MKV9hY2Nlc3NIYW5kbGVFbmFibGVkCit7CisgICAgcmV0dXJu
IF9wcmVmZXJlbmNlcy0+YWNjZXNzSGFuZGxlRW5hYmxlZCgpOworfQorCistICh2b2lkKV9zZXRB
Y2Nlc3NIYW5kbGVFbmFibGVkOihCT09MKWFjY2Vzc0hhbmRsZUVuYWJsZWQKK3sKKyAgICBfcHJl
ZmVyZW5jZXMtPnNldEFjY2Vzc0hhbmRsZUVuYWJsZWQoYWNjZXNzSGFuZGxlRW5hYmxlZCk7Cit9
CisKIEBlbmQKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDUwNjAzYTFiOWYyZjc4OWI1NjBjMDNm
ZGJjYmE5NDc1ZTQ5NGMyZmMuLjU5OTY5YjY0YTY1ZWI4ZTVmMDE0MDNiYjZjNzM0OWQ4MzgyMmVm
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0xNzMsNiArMTczLDkgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNlc3Npb25FbmFibGVkOikgQk9PTCBfbWVkaWFTZXNz
aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFeHRlbnNpYmxlU1NPRW5hYmxlZCwgc2V0dGVy
PV9zZXRFeHRlbnNpYmxlU1NPRW5hYmxlZDopIEJPT0wgX2V4dGVuc2libGVTU09FbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1BhZ2VWaXNpYmlsaXR5VG9QbGF5QXVkaW86KSBCT09M
IF9yZXF1aXJlc1BhZ2VWaXNpYmlsaXR5VG9QbGF5QXVkaW8gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZp
bGVTeXN0ZW1BY2Nlc3NFbmFibGVkOikgQk9PTCBfZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0b3JhZ2VBUElFbmFibGVkOikgQk9PTCBfc3Rv
cmFnZUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2Vzc0hhbmRs
ZUVuYWJsZWQ6KSBCT09MIF9hY2Nlc3NIYW5kbGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiAhVEFSR0VUX09TX0lQSE9O
RQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2ViR0xFbmFibGVkOikgQk9PTCBf
d2ViR0xFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGUzMWMzMGQ0
OGJmZmEzYmE5MGQ4OTc3ZjBjMGMxZWY2YzQyN2Q5ZC4uYWZiYjFlZWRhYzBiMWM5ODgyODNiYjg0
NjFlODc2NzU5ODAwMzg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNDcyLDYgKzE0NzIsNyBAQAogCQk5MzA4NURERjI2RTVCQ0Yx
MDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRTI2RTJFOTAy
MDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07
CiAJCTkzMDg1REUwMjZFNUJDRkQwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDg1REM0MjZF
MUJCQkQwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMwODVE
RTEyNkU1QkQxMzAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA4NURDRDI2RTJF
OTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJ
OTMxMjJDODYyNzEwQ0NERjAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTIyQzg1MjcxMENDREUwMDFE
ODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggKi87IH07CiAJCTkzMTJCQUQ1MjZGMzNDMjYwMEZE
REY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMUEwNzUwMjZGMDYzMTAwMDQ0NzRDRCAvKiBGaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXIuaCAqLzsgfTsKIAkJOTMxMkJBRDYyNkYzM0MyOTAwRkRERjVG
IC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzFBMDc1MzI2RjA2QUI0MDA0NDc0Q0QgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuaCAqLzsgfTsKIAkJOTMxQTFCRTIyNkY4NzAwOTAwODFBN0U1IC8qIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMUExQkUwMjZGODVDMzIwMDgxQTdFNSAvKiBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yLmggKi87IH07CkBAIC0xNDg0LDYgKzE0ODUsOCBAQAogCQk5MzNFODM1QTIzQTFBRTI4
MDBERUYyODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU5MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJ
REJTZXJ2ZXJNZXNzYWdlcy5oICovOyB9OwogCQk5MzNFODM1QjIzQTFCNzUwMDBERUYyODkgLyog
V2ViSURCU2VydmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0U4MzU4MjNBMUFERjUwMERFRjI4OSAvKiBXZWJJREJT
ZXJ2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk5MzQyNTg5QTI1NUI1MzVBMDA1OUVF
REQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQ
ZXJtaXNzaW9uVXRpbGl0aWVzLmggKi87IH07CisJCTkzNDY4RTZCMjcxNEFGNDcwMDk5ODNFMyAv
KiBTaGFyZWRGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzNDY4RTZBMjcxNEFGNDcwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxl
LmNwcCAqLzsgfTsKKwkJOTM0NjhFNkQyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5k
bGVDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzQ2OEU2QzI3MTRBRjg4MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcCAq
LzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0Qjcy
NDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNTQyNDJDMjcwM0JEQ0Iw
MDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTQyNDJBMjcwM0JEQ0IwMDVDQTcy
QyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREMy
MTUyQjZCNTAwRTZENURGIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBB
IC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oICovOyB9OwpAQCAtNDk1MSw2ICs0OTU0LDcgQEAK
IAkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMw
ODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzUmVw
bGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrU3RvcmFnZU1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMx
MjJDODUyNzEwQ0NERTAwMUQ4MTlGIC8qIFNoYXJlZEZpbGVIYW5kbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzFBMDc1MDI2RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1T
dG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzFBMDc1MTI2
RjA2MzEwMDA0NDc0Q0QgLyogRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMUEwNzUyMjZGMDZBQjQwMDQ0NzRDRCAv
KiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00OTY5LDYgKzQ5NzMsOCBAQAogCQk5MzNFODM1OTIzQTFBREY1MDBERUYy
ODkgLyogV2ViSURCU2VydmVyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViSURCU2VydmVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJOTM0MjU4OEYyNTU1RENBNTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxp
dGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0MjU4OTgyNTVCNTM0QjAwNTlFRURE
IC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM0NjhFNkEyNzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDY4RTZDMjcxNEFGODgwMDk5ODNF
MyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM0QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1U
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1lbnVJdGVt
VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NDI0MkEyNzAzQkRDQjAw
NUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1NDI0MkIyNzAzQkRDQjAwNUNBNzJDIC8qIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzM2MCw2ICs3MzY2LDggQEAKIAkJCQk1Q0M1REI5MTIx
NDg4RTE2MDA2Q0I4QTggLyogU2hhcmVkQnVmZmVyQ29weS5oICovLAogCQkJCTJEQzE4NTVFREJG
Qjg1MEJBMEI2RDA2RCAvKiBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmNwcCAqLywKIAkJCQky
REMxODgxQUNCQ0FCNUQ1N0M1QzZFRjAgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oICov
LAorCQkJCTkzNDY4RTZBMjcxNEFGNDcwMDk5ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlLmNwcCAq
LywKKwkJCQk5MzEyMkM4NTI3MTBDQ0RFMDAxRDgxOUYgLyogU2hhcmVkRmlsZUhhbmRsZS5oICov
LAogCQkJCTdCNzMxMjM2MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1DbGllbnRDb25uZWN0aW9u
LmNwcCAqLywKIAkJCQk3QjczMTIzMzI1Q0M4NTIzMDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50Q29u
bmVjdGlvbi5oICovLAogCQkJCTdCNzMxMjM0MjVDQzg1MjQwMDNCMjc5NiAvKiBTdHJlYW1Db25u
ZWN0aW9uQnVmZmVyLmNwcCAqLywKQEAgLTExMTM0LDYgKzExMTQyLDcgQEAKIAkJCQkxQTZEODZC
RjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2UuY3BwICovLAogCQkJCTFBNkQ4NkMwMURG
NzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5oICovLAogCQkJCUJDQzU2Rjc3MTE1OTk1N0Qw
MDFDQ0FGOSAvKiBNYWNoUG9ydC5oICovLAorCQkJCTkzNDY4RTZDMjcxNEFGODgwMDk5ODNFMyAv
KiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjY1OCw2ICsxMjY2Nyw3IEBACiAJCQkJ
QTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZmZXJEYXRhUmVm
ZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEE2RDZCQzI1NENBM0U5MDBCNjVGQUEgLyog
U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMTIyQzg2Mjcx
MENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTNGN0VDMUY3REFFMDgwMEI5NDRFQiAvKiBTaGFyZWRT
dHJpbmdIYXNoU3RvcmUuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2MjAsNiArMTQ2MzAsOCBAQAog
CQkJCTJEOTJBNzg3MjEyQjZBQjEwMEY0OTNGRCAvKiBTaGFyZWFibGVCaXRtYXAuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkRDMThGRUJGMzM3Qjk2NzFDODhFM0NEIC8qIFNoYXJlZEJ1ZmZlckNv
cHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMTgxMjQ1QjU0OTM0M0JDOTgxNjRDIC8qIFNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM0NjhFNkIy
NzE0QUY0NzAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOTM0NjhFNkQyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVIYW5kbGVDb2NvYS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBMUFEQUZCNjIzNjhFNkE4MDA5Q0I3NzYgLyogU2hhcmVkTWVt
b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI5MjNDRTlDMEIwMDIwNjM5QSAvKiBT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFNjk0M0Qx
OEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDYwMzEyN2JlNjc4NDk4MWQzMGFhNGE3NjIxOTc1NWQz
ZWYzNjIyNWMuLjk2ODVmY2ZhOGU5YzU2YmEyODY2OTliYTEyMWEwNzBjNDMyYjIzYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xMjEs
NyArMTIxLDggQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUgKICAgICAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9u
KHJlc3VsdC5lcnJvcigpKSk7CiAKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShy
ZXN1bHQudmFsdWUoKSkpOworICAgICAgICBhdXRvIHJlc3VsdFZhbHVlID0gcmVzdWx0LnZhbHVl
KCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6cGFpciB7IHJlc3VsdFZhbHVlLmZp
cnN0LCByZXN1bHRWYWx1ZS5zZWNvbmQuaGFuZGxlKCkgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpp
bmRleCAzYWM2MTc3NTY2MTdmZjAwMTIyODA4NDQ3MDFmZDFjNTc3MGQzYmE4Li4yOTgyYjgzYzZj
ODllYTc0NjY0YTk5YWFmNzZmYTY5ZDQxNmJjMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCkBAIC0xOTc4LDYgKzE5Nzgs
NyBAQAogICAgICAgICAoc3lzY2FsbC1udW1iZXIgU1lTX2Nvbm5lY3Rfbm9jYW5jZWwpCiAgICAg
ICAgIChzeXNjYWxsLW51bWJlciBTWVNfc2VuZHRvX25vY2FuY2VsKQogICAgICAgICAoc3lzY2Fs
bC1udW1iZXIgU1lTX2ZzZ2V0cGF0aCkKKyAgICAgICAgKHN5c2NhbGwtbnVtYmVyIFNZU19maWxl
cG9ydF9tYWtlZmQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZmlsZXBvcnRfbWFrZXBv
cnQpCiAgICAgICAgIChzeXNjYWxsLW51bWJlciBTWVNfZ3VhcmRlZF9vcGVuX25wKQogICAgICAg
ICAoc3lzY2FsbC1udW1iZXIgU1lTX2d1YXJkZWRfY2xvc2VfbnApCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTUxNDU3YWIzZjg0MTg0NzYzODVm
MjFiMmEzNDI0YzE2MTc1ODdhNS4uNjhiNjJiODgyMWM5ODAzODBkNTVmZmRlYTk2NDE3OWZiYWZk
ZTg3NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTEyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFk
KCkgYW5kIHdyaXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTQ2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbTogQWRkZWQuCisg
ICAgICAgICgtW0ZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRy
b2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgICh0ZXN0KToKKwogMjAy
MS0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVzZSBTVEwgaW5zdGVhZCBvZiBXVEY6OmdldF9pZiwgV1RGOjpNb25vc3RhdGUsIFdU
Rjo6dmlzaXQsIGFuZCBXVEY6OmhvbGRzX2FsdGVybmF0aXZlCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGI3NWE1ZDBmOTI4OTg3NGZhYTA1NjM3ZTVjMDhhZTI2YTlkNjQzNjkuLjgwMWU0NzQw
NTg3MmU4MDkwNThkMDQzZDJhNmRmNzM1ZjBjZWI3ODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC04NTQsNiArODU0LDcgQEAKIAkJOTMzRDYzMUQxRkNCNzYyMDAwMzJFQ0Q2IC8qIEhhc2hl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNE
NjMxQjFGQ0I3NjE4MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAqLzsgfTsKIAkJOTM0MjU4OUMyNTVC
NjA5QjAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0MjU4OUIyNTVCNjA5QTAwNTlFRUREIC8qIFNw
ZWVjaFJlY29nbml0aW9uLm1tICovOyB9OwogCQk5MzQyNTg5RTI1NUI2QTEyMDA1OUVFREQgLyog
c3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0MjU4OUQy
NTVCNjZBMDAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJz
aXN0ZW5jZS5odG1sICovOyB9OworCQk5MzQ2OEU2RjI3MTRCNEYyMDA5OTgzRTMgLyogRmlsZVN5
c3RlbUFjY2Vzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNDY4RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tICovOyB9
OwogCQk5MzU3ODZDQzIwRjZBMjcwMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2FsIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEZB
NUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi87IH07CiAJCTkz
NTc4NkNEMjBGNkEyOTEwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMyBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNzIwRjY5RkVF
MDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMgKi87IH07CiAJCTkzNTc4NkNFMjBGNkEyQTEw
MDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RkE1QzYyMEY2OUZFRDAwNDBEQzFCIC8q
IEluZGV4ZWREQi5zcWxpdGUzLXNobSAqLzsgfTsKQEAgLTI1ODIsNiArMjU4Myw3IEBACiAJCTkz
M0Q2MzFCMUZDQjc2MTgwMDMyRUNENiAvKiBIYXNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSGFzaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM0MjU4OUIyNTVCNjA5QTAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb24ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1ODlEMjU1QjY2QTAwMDU5RUVERCAv
KiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Np
b24tcGVyc2lzdGVuY2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDY4
RTZFMjcxNEI0RjEwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmlsZVN5c3RlbUFjY2Vzcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzUyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWRE
Qi5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNxbGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzYyMEY2OUZFRDAwNDBEQzFCIC8qIEluZGV4ZWREQi5z
cWxpdGUzLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCLnNxbGl0ZTMtc2htIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM0RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxp
dGUzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmls
ZTsgcGF0aCA9IEluZGV4ZWREQi5zcWxpdGUzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzUxMCw2ICszNTEyLDcgQEAKIAkJCQk2QjI1QTc1MTI1REM4RDRFMDA3MDc0NEYgLyogRXZl
bnRBdHRyaWJ1dGlvbi5tbSAqLywKIAkJCQlDREEyOUIyODIwRkQyQTk5MDBGMTVDRUQgLyogRXhp
dEZ1bGxzY3JlZW5PbkVudGVyUGlQLm1tICovLAogCQkJCTFEMTJCRUJGMjQ1QkVGODUwMDRDMEI3
QSAvKiBFeGl0UGlQT25TdXNwZW5kVmlkZW9FbGVtZW50Lm1tICovLAorCQkJCTkzNDY4RTZFMjcx
NEI0RjEwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tICovLAogCQkJCTJEODEwNENCMUJF
QzEzRTcwMDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICovLAogCQkJCTUxMjQyQ0Q0MjM3NEU2MUUw
MEVFRDlDMSAvKiBGaW5kSW5QYWdlQVBJLm1tICovLAogCQkJCTExODE1MzQ3MjIwOEJBREYwMEIy
Q0NEMiAvKiBGaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmUubW0gKi8sCkBAIC01NTY4LDYg
KzU1NzEsNyBAQAogCQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0N0M0QyAvKiBGYWlsZWRMb2FkLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTU3OTY1MUU3MjE2QkZERUQwMDZFQkZFNSAvKiBGaWRvSGlk
TWVzc2FnZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EzMkQ3NEExRjAyMTUxNTAwMTYy
QzQ0IC8qIEZpbGVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzNDY4RTZGMjcxNEI0
RjIwMDk5ODNFMyAvKiBGaWxlU3lzdGVtQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdFRjMxQTQxMUFFNjAwNDQ3QzRDIC8qIEZpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4
M0UwQkIxRDBBNjUwMDAwRkVCQ0YzIC8qIEZpbmRJblBhZ2UubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MTI0MkNENTIzNzRFNjI1MDBFRUQ5QzEgLyogRmluZEluUGFnZUFQSS5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9G
aWxlU3lzdGVtQWNjZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9GaWxlU3lzdGVtQWNjZXNzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwZmNkMzFiOGNiMzUxMTFhZGE2MWFh
NzI0MmJlNDU2NGM1NTIyYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KQEAgLTAsMCArMSwxMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0VVJM
U2NoZW1lSGFuZGxlci5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+
CisKK3N0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKK3N0YXRpYyBSZXRhaW5QdHI8
V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKKworQGludGVyZmFjZSBGaWxlU3lz
dGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxl
cj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEZpbGVTeXN0ZW1BY2Nlc3NNZXNzYWdlSGFuZGxl
cgorCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2Ny
aXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSB0cnVl
OworICAgIGxhc3RTY3JpcHRNZXNzYWdlID0gbWVzc2FnZTsKK30KKworQGVuZAorCitzdGF0aWMg
TlNTdHJpbmcgKm1haW5GcmFtZVN0cmluZyA9IEAiPHNjcmlwdD4gXAorICAgIGZ1bmN0aW9uIHN0
YXJ0KCkgeyBcCisgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCd3b3JrZXIuanMnKTsg
XAorICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsgXAorICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoZXZlbnQuZGF0YSk7IFwKKyAgICAgICAgfTsgXAorICAgIH0gXAorICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwYWdlIGlzIGxvYWRl
ZCcpOyBcCisgICAgPC9zY3JpcHQ+IjsKKworc3RhdGljIGNvbnN0IGNoYXIqIHdvcmtlckJ5dGVz
ID0gUiJURVNUUkVTT1VSQ0UoCithc3luYyBmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB0cnkgewor
ICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVj
dG9yeSgpOworICAgICAgICB2YXIgZmlsZUhhbmRsZSA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0Rmls
ZUhhbmRsZSgnZmlsZS1zeXN0ZW0tYWNjZXNzLnR4dCcsIHsgJ2NyZWF0ZScgOiB0cnVlIH0pOwor
ICAgICAgICB2YXIgYWNjZXNzSGFuZGxlID0gYXdhaXQgZmlsZUhhbmRsZS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKCk7CisgICAgICAgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMTApOwor
ICAgICAgICB2YXIgd3JpdGVTaXplID0gYWNjZXNzSGFuZGxlLndyaXRlKGJ1ZmZlciwgeyAiYXQi
IDogMCB9KTsKKyAgICAgICAgc2VsZi5wb3N0TWVzc2FnZSgnc3VjY2Vzczogd3JpdGUgJyArIHdy
aXRlU2l6ZSArICcgYnl0ZXMnKTsKKyAgICB9IGNhdGNoIChlcnIpIHsKKyAgICAgICAgc2VsZi5w
b3N0TWVzc2FnZSgnZXJyb3I6ICcgKyBlcnIubmFtZSArICcgLSAnICsgZXJyLm1lc3NhZ2UpOwor
ICAgICAgICBjbG9zZSgpOworICAgIH0KK30KK3Rlc3QoKTsKKylURVNUUkVTT1VSQ0UiOworCitU
RVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIFByb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQoreworICAgIGF1
dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgYWxs
b2NdIGluaXRdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29u
dGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFt
ZTpAInRlc3RIYW5kbGVyIl07CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXTsKKyAgICBwcmVmZXJlbmNlcy5fZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQg
PSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2FjY2Vzc0hhbmRsZUVuYWJsZWQgPSBZRVM7CisgICAg
cHJlZmVyZW5jZXMuX3N0b3JhZ2VBUElFbmFibGVkID0gWUVTOworICAgIGF1dG8gc2NoZW1lSGFu
ZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAg
IFtzY2hlbWVIYW5kbGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXI6XihXS1dlYlZpZXcg
KiwgaWQ8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAgICAgIFJldGFpblB0cjxOU1VSTFJl
c3BvbnNlPiByZXNwb25zZTsKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gZGF0YTsKKyAgICAg
ICAgTlNVUkwgKnJlcXVlc3RVUkwgPSB0YXNrLnJlcXVlc3QuVVJMOworICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoIndlYmtpdDovL3dlYmtpdC5vcmcvd29ya2VyLmpzIiwgcmVxdWVzdFVSTC5hYnNv
bHV0ZVN0cmluZyk7CisgICAgICAgIHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOnJlcXVlc3RVUkwgTUlNRVR5cGU6QCJ0ZXh0L2phdmFzY3JpcHQi
IGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CisgICAgICAg
IGRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6d29ya2VyQnl0ZXMgbGVuZ3RoOnN0cmxlbih3
b3JrZXJCeXRlcyldOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2Uu
Z2V0KCldOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpkYXRhLmdldCgpXTsKKyAgICAg
ICAgW3Rhc2sgZGlkRmluaXNoXTsKKyAgICB9XTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxT
Y2hlbWVIYW5kbGVyOnNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAid2Via2l0Il07
CisKKyAgICAvLyBsb2FkIGZpcnN0IHdlYiB2aWV3ICYgc3RhcnQgdGVzdAorICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Cisg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJ3ZWJraXQ6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlw
dE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwYWdlIGlzIGxvYWRlZCIs
IFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlw
dE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzdWNjZXNzOiB3cml0ZSAx
MCBieXRlcyIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisKKyAgICBhdXRvIHNlY29uZFdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwor
ICAgIFtzZWNvbmRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0cmluZyBiYXNlVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAid2Via2l0Oi8vd2Via2l0Lm9yZyJdXTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicGFnZSBpcyBs
b2FkZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgLy8gQWNjZXNzIGhhbmRs
ZSBjYW5ub3QgYmUgY3JlYXRlZCB3aGVuIHRoZXJlIGlzIGFuIG9wZW4gb25lLgorICAgIFtzZWNv
bmRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVy
Om5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgIEVYUEVDVF9XS19T
VFJFUShAImVycm9yOiBJbnZhbGlkU3RhdGVFcnJvciAtIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52
YWxpZCBzdGF0ZS4iLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworCisgICAgLy8gT3BlbiBh
Y2Nlc3MgaGFuZGxlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiB3ZWIgcHJvY2VzcyBjcmFzaGVzLgor
ICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3NdOworCisgICAgW3NlY29uZFdlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKEAic3VjY2Vzczogd3JpdGUgMTAgYnl0ZXMiLCBbbGFzdFNjcmlw
dE1lc3NhZ2UgYm9keV0pOworfQorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMzIzMmU1NzY5OGQ5YmFiN2RjNzI3MTlkODdlMTg1ZTAwYWIyODg4Li43MTc3MWM2
ZDI0MDE4OGU5NDQ4N2ViNzczMmE3YWFmMjlmMGRkOTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMjEtMTAtMTIgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlIHJlYWQoKSBhbmQgd3JpdGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNDY2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDA1MDM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBZ
b3Vlbm4gRmFibGV0LgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291
cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qczogQWRkZWQuCisgICAgICAgIChm
aW5pc2hUZXN0KToKKyAgICAgICAgKGFycmF5QnVmZmVyVG9TdHJpbmcpOgorICAgICAgICAoc3Ry
aW5nVG9BcnJheUJ1ZmZlcik6CisgICAgICAgICh3cml0ZSk6CisgICAgICAgIChyZWFkKToKKyAg
ICAgICAgKGFzeW5jIHRlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9z
eW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJl
YWQtd3JpdGUtd29ya2VyLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTEyICBBeXVtaSBLb2ppbWEg
IDxheXVtaV9rb2ppbWFAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIF0gZmFzdC9tZWRpYXN0
cmVhbS9hcHBseS1jb25zdHJhaW50cy12aWRlby5odG1sIGlzIGEgZmxha3kgZmFpbHVyZS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGMwZGRjNzc4ZmY2ZDE5ZWQ5MmI2ZjJhYzc2
OTRlNWUxZjBhNzcxNmIuLmRmMjkzZGQ3NjllMzQ3ZjU2Y2U2YTVmMmRjNWRjMmQ3OTA2ZDNmZWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEw
LTEyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSByZWFkKCkgYW5kIHdyaXRlKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTQ2NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODQwNTAzOTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZh
YmxldC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mv
c2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLWNsb3NlLmh0dHBzLnRlbnRhdGl2
ZS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9maWxl
LXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLWZsdXNo
Lmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLWdldFNpemUuaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRf
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtcmVhZC13cml0ZS5odHRwcy50ZW50YXRpdmUud29y
a2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0
ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS10cnVuY2F0ZS5o
dHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0xMC0xMiAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2Nzcy11aV0gRml4IGlu
dGVycG9sYXRpb24gb2YgYWNjZW50LWNvbG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRf
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtY2xvc2UuaHR0cHMudGVudGF0aXZlLndvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUt
Y2xvc2UuaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZTZiOWVhOTEy
OGE3ZWNiZDkyNzlmMzdjMDY5MTMyMjhiM2ZiZGJmZi4uYmI3N2E0OTliYTFjOGM5ZTgyNzc2MzA1
MzVhMzc3NjVmMjM5ODhlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLWNsb3NlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1z
eXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1jbG9zZS5o
dHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAogCiBG
QUlMIFN5bmNBY2Nlc3NIYW5kbGUuY2xvc2UgaXMgaWRlbXBvdGVudCBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjog
VGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKIEZBSUwgU3luY0FjY2Vzc0hhbmRs
ZS5jbG9zZSBpcyBpZGVtcG90ZW50IHdoZW4gY2FsbGVkIGltbWVkaWF0ZWx5IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjog
VGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25vd24gdHJhbnNpZW50IHJlYXNvbiAoZS5n
LiBvdXQgb2YgbWVtb3J5KS4iCi1GQUlMIFN5bmNBY2Nlc3NIYW5kbGUucmVhZCBmYWlscyBhZnRl
ciBTeW5jQWNjZXNzSGFuZGxlLmNsb3NlIHNldHRsZXMgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0
aW9uICIoKSA9PiBoYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7YXQ6IDB9KSIgdGhyZXcgb2JqZWN0
ICJUeXBlRXJyb3I6IGhhbmRsZS5yZWFkIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2hhbmRsZS5y
ZWFkKHJlYWRCdWZmZXIsIHthdDogMH0pJywgJ2hhbmRsZS5yZWFkJyBpcyB1bmRlZmluZWQpIiB0
aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNv
ZGUiIGlzIGVxdWFsIHRvIHVuZGVmaW5lZCwgZXhwZWN0ZWQgMTEKLUZBSUwgU3luY0FjY2Vzc0hh
bmRsZS5yZWFkIGZhaWxzIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcgU3luY0FjY2Vzc0hhbmRs
ZS5jbG9zZSBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGhhbmRsZS5yZWFkKHJl
YWRCdWZmZXIsIHthdDogMH0pIiB0aHJldyBvYmplY3QgIlR5cGVFcnJvcjogaGFuZGxlLnJlYWQg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwge2F0OiAwfSkn
LCAnaGFuZGxlLnJlYWQnIGlzIHVuZGVmaW5lZCkiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9u
IEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVk
LCBleHBlY3RlZCAxMQotRkFJTCBTeW5jQWNjZXNzSGFuZGxlLndyaXRlIGZhaWxzIGFmdGVyIFN5
bmNBY2Nlc3NIYW5kbGUuY2xvc2Ugc2V0dGxlcyBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24g
IigpID0+IGhhbmRsZS53cml0ZSh3cml0ZUJ1ZmZlciwge2F0OiAwfSkiIHRocmV3IG9iamVjdCAi
VHlwZUVycm9yOiBoYW5kbGUud3JpdGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLndy
aXRlKHdyaXRlQnVmZmVyLCB7YXQ6IDB9KScsICdoYW5kbGUud3JpdGUnIGlzIHVuZGVmaW5lZCki
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAi
Y29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAxMQotRkFJTCBTeW5jQWNjZXNz
SGFuZGxlLndyaXRlIGZhaWxzIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcgU3luY0FjY2Vzc0hh
bmRsZS5jbG9zZSBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IGhhbmRsZS53cml0
ZSh3cml0ZUJ1ZmZlciwge2F0OiAwfSkiIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBoYW5kbGUu
d3JpdGUgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7
YXQ6IDB9KScsICdoYW5kbGUud3JpdGUnIGlzIHVuZGVmaW5lZCkiIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8g
dW5kZWZpbmVkLCBleHBlY3RlZCAxMQorRkFJTCBTeW5jQWNjZXNzSGFuZGxlLnJlYWQgZmFpbHMg
YWZ0ZXIgU3luY0FjY2Vzc0hhbmRsZS5jbG9zZSBzZXR0bGVzIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUg
b2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorRkFJTCBTeW5jQWNjZXNzSGFuZGxlLnJl
YWQgZmFpbHMgaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZyBTeW5jQWNjZXNzSGFuZGxlLmNsb3Nl
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIklu
dmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorRkFJ
TCBTeW5jQWNjZXNzSGFuZGxlLndyaXRlIGZhaWxzIGFmdGVyIFN5bmNBY2Nlc3NIYW5kbGUuY2xv
c2Ugc2V0dGxlcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0
YXRlLiIKK0ZBSUwgU3luY0FjY2Vzc0hhbmRsZS53cml0ZSBmYWlscyBpbW1lZGlhdGVseSBhZnRl
ciBjYWxsaW5nIFN5bmNBY2Nlc3NIYW5kbGUuY2xvc2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmpl
Y3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCiBGQUlMIFN5bmNBY2Nlc3NIYW5kbGUuZmx1c2gg
ZmFpbHMgYWZ0ZXIgU3luY0FjY2Vzc0hhbmRsZS5jbG9zZSBzZXR0bGVzIHByb21pc2VfcmVqZWN0
c19kb206IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJV
bmtub3duRXJyb3I6IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiB1bmtub3duIHRyYW5zaWVu
dCByZWFzb24gKGUuZy4gb3V0IG9mIG1lbW9yeSkuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlv
biBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVj
dGVkIDExCiBGQUlMIFN5bmNBY2Nlc3NIYW5kbGUuZmx1c2ggZmFpbHMgaW1tZWRpYXRlbHkgYWZ0
ZXIgY2FsbGluZyBTeW5jQWNjZXNzSGFuZGxlLmNsb3NlIHByb21pc2VfcmVqZWN0c19kb206IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJVbmtub3duRXJy
b3I6IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiB1bmtub3duIHRyYW5zaWVudCByZWFzb24g
KGUuZy4gb3V0IG9mIG1lbW9yeSkuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlk
U3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCiBG
QUlMIFN5bmNBY2Nlc3NIYW5kbGUuZ2V0U2l6ZSBmYWlscyBhZnRlciBTeW5jQWNjZXNzSGFuZGxl
LmNsb3NlIHNldHRsZXMgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlVua25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBm
YWlsZWQgZm9yIGFuIHVua25vd24gdHJhbnNpZW50IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5
KS4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0
eSAiY29kZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3Nh
bmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1mbHVzaC5odHRwcy50ZW50YXRpdmUu
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS1mbHVzaC5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCAx
MjdlOWNmZWU0MmUyNDdhZDY4NmM4ZWZhMTJmYmVhYmNiNzA4ZjdjLi42ZWE1NjRjY2FhYmQwNmYy
ZWI4MTdkNDZiNzRjMzJhNTRlZTZhMjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtZmx1c2guaHR0cHMudGVudGF0aXZlLndvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LWZsdXNoLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBA
QAogCiBQQVNTIFRlc3QgZmx1c2ggb24gYW4gZW1wdHkgZmlsZS4KLUZBSUwgU3luY0FjY2Vzc0hh
bmRsZS5yZWFkIHJldHVybnMgYnl0ZXMgd3JpdHRlbiBieSBTeW5jQWNjZXNzSGFuZGxlLndyaXRl
IGFmdGVyIFN5bmNBY2Nlc3NIYW5kbGUuZmx1c2ggcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBoYW5kbGUud3JpdGUgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7YXQ6IDB9KScsICdo
YW5kbGUud3JpdGUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIFN5bmNBY2Nlc3NIYW5kbGUucmVhZCBm
YWlscyB3aGVuIHRoZXJlIGlzIGEgcGVuZGluZyBTeW5jQWNjZXNzSGFuZGxlLmZsdXNoIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRT
dGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgotRkFJTCBTeW5j
QWNjZXNzSGFuZGxlLndyaXRlIGZhaWxzIHdoZW4gdGhlcmUgaXMgYSBwZW5kaW5nIFN5bmNBY2Nl
c3NIYW5kbGUuZmx1c2ggcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxp
ZCBzdGF0ZS4iCitQQVNTIFN5bmNBY2Nlc3NIYW5kbGUucmVhZCByZXR1cm5zIGJ5dGVzIHdyaXR0
ZW4gYnkgU3luY0FjY2Vzc0hhbmRsZS53cml0ZSBhZnRlciBTeW5jQWNjZXNzSGFuZGxlLmZsdXNo
CitQQVNTIFN5bmNBY2Nlc3NIYW5kbGUucmVhZCBmYWlscyB3aGVuIHRoZXJlIGlzIGEgcGVuZGlu
ZyBTeW5jQWNjZXNzSGFuZGxlLmZsdXNoCitQQVNTIFN5bmNBY2Nlc3NIYW5kbGUud3JpdGUgZmFp
bHMgd2hlbiB0aGVyZSBpcyBhIHBlbmRpbmcgU3luY0FjY2Vzc0hhbmRsZS5mbHVzaAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUt
c3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtZ2V0U2l6
ZS5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9G
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1nZXRTaXplLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXIt
ZXhwZWN0ZWQudHh0CmluZGV4IDBkMWM3OTg0MDA1MDk2NTc1NjUyYWUzYzcxNDRjMWFkZTA1MzAw
NzYuLjRlNWI5YjJlYTg1ZmIzZjkxOGE5MmU1MjZkOTIyYzJkZTdkNzcwYWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0t
YWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1nZXRTaXplLmh0dHBz
LnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1nZXRTaXplLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIHRlc3QgU3luY0FjY2Vzc0hhbmRsZS5n
ZXRTaXplIGFmdGVyIFN5bmNBY2Nlc3NIYW5kbGUud3JpdGUgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBoYW5kbGUud3JpdGUg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaGFuZGxlLndyaXRlKHdyaXRlQnVmZmVyLCB7YXQ6IDB9
KScsICdoYW5kbGUud3JpdGUnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIHRlc3QgY3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZS5nZXRTaXplIHdpdGggcGVuZGluZyBvcGVyYXRpb24gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6
IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCitQQVNTIHRlc3QgU3luY0FjY2Vz
c0hhbmRsZS5nZXRTaXplIGFmdGVyIFN5bmNBY2Nlc3NIYW5kbGUud3JpdGUKK0ZBSUwgdGVzdCBj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlLmdldFNpemUgd2l0aCBwZW5kaW5nIG9wZXJhdGlvbiBhc3Nl
cnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5y
ZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUtcmVhZC13cml0ZS5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1z
eXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1yZWFkLXdy
aXRlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDcyYjNjNGViZmZl
ZWJjMzg1NWQ2YTEwNDNiZTI0YjkxZWVmMWUxYzMuLmM1ZmNjMDg1ZDM4OGEyNGYxMTdlOTI3ZmIz
MzMwNzg1MTkxZWY1YmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZS1yZWFkLXdyaXRlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmls
ZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS1yZWFk
LXdyaXRlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEw
IEBACiAKLUZBSUwgVGVzdCByZWFkaW5nIGFuIGVtcHR5IGZpbGUgdGhyb3VnaCBhIHN5bmMgYWNj
ZXNzIGhhbmRsZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiBoYW5kbGUucmVhZCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdo
YW5kbGUucmVhZChyZWFkQnVmZmVyLCB7YXQ6IDB9KScsICdoYW5kbGUucmVhZCcgaXMgdW5kZWZp
bmVkKSIKLUZBSUwgVGVzdCB3cml0aW5nIGFuZCByZWFkaW5nIHRocm91Z2ggYSBzeW5jIGFjY2Vz
cyBoYW5kbGUuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3Rh
dGUuIgotRkFJTCBUZXN0IHNlY29uZCB3cml0ZSB0aGF0IGlzIGJpZ2dlciB0aGFuIHRoZSBmaXJz
dCB3cml0ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRl
LiIKLUZBSUwgVGVzdCBzZWNvbmQgd3JpdGUgdGhhdCBpcyBzbWFsbGVyIHRoYW4gdGhlIGZpcnN0
IHdyaXRlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUu
IgotRkFJTCBUZXN0IGluaXRpYWwgd3JpdGUgd2l0aCBhbiBvZmZzZXQgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6
IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCi1GQUlMIFRlc3Qgb3ZlcndyaXRp
bmcgdGhlIGZpbGUgYXQgYW4gb2Zmc2V0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGlu
IGFuIGludmFsaWQgc3RhdGUuIgotRkFJTCBUZXN0IHJlYWQgYXQgYW4gb2Zmc2V0IHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0
ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgotRkFJTCBUZXN0IHJl
YWRpbmcgYXQgYSBuZWdhdGl2ZSBvZmZzZXQgZmFpbHMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2Jq
ZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorUEFTUyBUZXN0IHJlYWRpbmcgYW4gZW1wdHkg
ZmlsZSB0aHJvdWdoIGEgc3luYyBhY2Nlc3MgaGFuZGxlLgorUEFTUyBUZXN0IHdyaXRpbmcgYW5k
IHJlYWRpbmcgdGhyb3VnaCBhIHN5bmMgYWNjZXNzIGhhbmRsZS4KK1BBU1MgVGVzdCBzZWNvbmQg
d3JpdGUgdGhhdCBpcyBiaWdnZXIgdGhhbiB0aGUgZmlyc3Qgd3JpdGUKK1BBU1MgVGVzdCBzZWNv
bmQgd3JpdGUgdGhhdCBpcyBzbWFsbGVyIHRoYW4gdGhlIGZpcnN0IHdyaXRlCitQQVNTIFRlc3Qg
aW5pdGlhbCB3cml0ZSB3aXRoIGFuIG9mZnNldAorUEFTUyBUZXN0IG92ZXJ3cml0aW5nIHRoZSBm
aWxlIGF0IGFuIG9mZnNldAorUEFTUyBUZXN0IHJlYWQgYXQgYW4gb2Zmc2V0CitGQUlMIFRlc3Qg
cmVhZGluZyBhdCBhIG5lZ2F0aXZlIG9mZnNldCBmYWlscy4gYXNzZXJ0X3Rocm93c19kb206IGZ1
bmN0aW9uICIoKSA9PiBoYW5kbGUucmVhZChyZWFkQnVmZmVyLCB7IGF0OiAtMSB9KSIgdGhyZXcg
b2JqZWN0ICJUeXBlRXJyb3I6IFZhbHVlIC0xIGlzIG91dHNpZGUgdGhlIHJhbmdlIFswLCA5MDA3
MTk5MjU0NzQwOTkxXSIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gTm90U3VwcG9ydGVkRXJy
b3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4cGVjdGVkIDkKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
aWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJveGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLXRy
dW5jYXRlLmh0dHBzLnRlbnRhdGl2ZS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9maWxlLXN5c3RlbS1hY2Nlc3Mvc2FuZGJv
eGVkX0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLXRydW5jYXRlLmh0dHBzLnRlbnRhdGl2ZS53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDRjNDlmYmFlMDMyNWYwMmNhM2U2ZGIzYWRiZTQ1NzE5
N2Q3YTQyYjAuLjE1YmM4ZWIxYWRlNDg2MWI5NzliMWFhMDI5ZjNiYjU5ODM1Y2FlYmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1z
eXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS10cnVuY2F0
ZS5odHRwcy50ZW50YXRpdmUud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94
ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndv
cmtlci1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIEZBSUwgdGVzdCBjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlLnRydW5jYXRlIHdpdGggcGVuZGluZyBvcGVyYXRpb24gYXNzZXJ0X3VucmVh
Y2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKIFBBU1MgdGVzdCBTeW5jQWNjZXNzSGFuZGxlLnRydW5jYXRlIHdpdGggZGlmZmVyZW50
IHNpemVzCi1GQUlMIHRlc3QgU3luY0FjY2Vzc0hhbmRsZS50cnVuY2F0ZSBhZnRlciBTeW5jQWNj
ZXNzSGFuZGxlLndyaXRlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaGFuZGxlLndyaXRlIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ2hhbmRsZS53cml0ZSh3cml0ZUJ1ZmZlciwge2F0OiAwfSknLCAnaGFuZGxlLndyaXRlJyBp
cyB1bmRlZmluZWQpIgorUEFTUyB0ZXN0IFN5bmNBY2Nlc3NIYW5kbGUudHJ1bmNhdGUgYWZ0ZXIg
U3luY0FjY2Vzc0hhbmRsZS53cml0ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL3N5bmMtYWNjZXNzLWhhbmRsZS1yZWFkLXdyaXRl
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2JmYzQ3OTFmODRkZWM3
ODEyMzNhMTM3ZTczZWM0MmE1MTBhZGRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS5qcwpAQCAtMCwwICsxLDk3IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7Cisg
ICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKwor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgcmVhZCBhbmQgd3JpdGUgY2FwYWJpbGl0aWVz
IG9mIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLiIpOworCit2YXIgYWNjZXNzSGFuZGxlLCBm
aWxlU2l6ZSwgd3JpdGVCdWZmZXIsIHdyaXRlU2l6ZSwgcmVhZEJ1ZmZlciwgcmVhZFNpemUsIHJl
YWRUZXh0LCByZWFkRXJyb3I7Cit2YXIgdG90YWxSZWFkU2l6ZSA9IDAsIHRvdGFsV3JpdGVTaXpl
ID0gMDsKKwordmFyIHRlc3RTdHJpbmc7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7
CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0cmluZyhidWZm
ZXIpCit7CisgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpOworICAgIHZhciB2
aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUo
dmlldyk7Cit9CisKK2Z1bmN0aW9uIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyaW5nKQoreworICAg
IGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTsKKyAgICByZXR1cm4gZW5jb2Rlci5l
bmNvZGUoc3RyaW5nKTsKK30KKworZnVuY3Rpb24gd3JpdGUoYWNjZXNzSGFuZGxlLCBvZmZzZXQs
IHRleHQpCit7CisgICAgd3JpdGVCdWZmZXIgPSBzdHJpbmdUb0FycmF5QnVmZmVyKHRleHQpOwor
ICAgIHdyaXRlU2l6ZSA9IGFjY2Vzc0hhbmRsZS53cml0ZSh3cml0ZUJ1ZmZlciwgeyAiYXQiIDog
b2Zmc2V0IH0pOworICAgIHNob3VsZEJlKCJ3cml0ZVNpemUiLCAid3JpdGVCdWZmZXIuYnl0ZUxl
bmd0aCIpOworICAgIHJldHVybiB3cml0ZVNpemU7Cit9CisKK2Z1bmN0aW9uIHJlYWQoYWNjZXNz
SGFuZGxlLCBvZmZzZXQsIHNpemUsIGV4cGVjdGVkU3RyaW5nKQoreworICAgIHJlYWRCdWZmZXIg
PSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisgICAgcmVhZFNpemUgPSBhY2Nlc3NIYW5kbGUucmVh
ZChyZWFkQnVmZmVyLCB7ICJhdCI6IG9mZnNldCB9KTsKKyAgICBzaG91bGRCZSgicmVhZFNpemUi
LCAicmVhZEJ1ZmZlci5ieXRlTGVuZ3RoIik7CisgICAgaWYgKGV4cGVjdGVkU3RyaW5nKSB7Cisg
ICAgICAgIHJlYWRUZXh0ID0gYXJyYXlCdWZmZXJUb1N0cmluZyhyZWFkQnVmZmVyKTsKKyAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWFkVGV4dCIsIGV4cGVjdGVkU3RyaW5nKTsKKyAg
ICB9CisgICAgcmV0dXJuIHJlYWRTaXplOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIHRyeSB7CisgICAgICAgIHZhciByb290SGFuZGxlID0gYXdhaXQgbmF2aWdhdG9yLnN0b3Jh
Z2UuZ2V0RGlyZWN0b3J5KCk7CisgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBmaWxlIGZvciB0aGlz
IHRlc3QuCisgICAgICAgIGF3YWl0IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoInN5bmMtYWNjZXNz
LWhhbmRsZS50eHQiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgdmFyIGZp
bGVIYW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoInN5bmMtYWNjZXNzLWhh
bmRsZS50eHQiLCB7ICJjcmVhdGUiIDogdHJ1ZSAgfSk7CisgICAgICAgIGFjY2Vzc0hhbmRsZSA9
IGF3YWl0IGZpbGVIYW5kbGUuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOworICAgICAgICBmaWxl
U2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3VsZEJlKCJm
aWxlU2l6ZSIsICIwIik7CisKKyAgICAgICAgZGVidWcoInRlc3QgcmVhZCgpIGFuZCB3cml0ZSgp
OiIpOworICAgICAgICB0b3RhbFdyaXRlU2l6ZSArPSB3cml0ZShhY2Nlc3NIYW5kbGUsIDAsICJU
aGlzIGlzIGZpcnN0IHNlbnRlbmNlLiIpOworICAgICAgICB0b3RhbFJlYWRTaXplICs9IHJlYWQo
YWNjZXNzSGFuZGxlLCAwLCB0b3RhbFdyaXRlU2l6ZSwgIlRoaXMgaXMgZmlyc3Qgc2VudGVuY2Uu
Iik7CisgICAgICAgIHRvdGFsV3JpdGVTaXplICs9IHdyaXRlKGFjY2Vzc0hhbmRsZSwgdG90YWxX
cml0ZVNpemUsICJUaGlzIGlzIHNlY29uZCBzZW50ZW5jZS4iKTsKKyAgICAgICAgcmVhZChhY2Nl
c3NIYW5kbGUsIHRvdGFsUmVhZFNpemUsIHRvdGFsV3JpdGVTaXplIC0gdG90YWxSZWFkU2l6ZSwg
IlRoaXMgaXMgc2Vjb25kIHNlbnRlbmNlLiIpOworICAgICAgICByZWFkKGFjY2Vzc0hhbmRsZSwg
MCwgdG90YWxXcml0ZVNpemUsICJUaGlzIGlzIGZpcnN0IHNlbnRlbmNlLlRoaXMgaXMgc2Vjb25k
IHNlbnRlbmNlLiIpOworCisgICAgICAgIC8vIFdyb25nIG9mZnNldCB0byByZWFkIGFuZCB3cml0
ZS4KKyAgICAgICAgc2hvdWxkVGhyb3coImFjY2Vzc0hhbmRsZS5yZWFkKG5ldyBBcnJheUJ1ZmZl
cigxKSwgeyBcImF0XCIgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9KSIpOworICAgICAgICBz
aG91bGRUaHJvdygiYWNjZXNzSGFuZGxlLndyaXRlKG5ldyBBcnJheUJ1ZmZlcigxKSwgeyBcImF0
XCIgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9KSIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0
IGZsdXNoKCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS5mbHVzaCgpOworICAgICAg
ICBmaWxlU2l6ZSA9IGF3YWl0IGFjY2Vzc0hhbmRsZS5nZXRTaXplKCk7CisgICAgICAgIHNob3Vs
ZEJlKCJmaWxlU2l6ZSIsICJ0b3RhbFdyaXRlU2l6ZSIpOworCisgICAgICAgIGRlYnVnKCJ0ZXN0
IHRydW5jYXRlKCk6Iik7CisgICAgICAgIGF3YWl0IGFjY2Vzc0hhbmRsZS50cnVuY2F0ZSg0KTsK
KyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmZsdXNoKCk7CisgICAgICAgIGZpbGVTaXplID0g
YXdhaXQgYWNjZXNzSGFuZGxlLmdldFNpemUoKTsKKyAgICAgICAgc2hvdWxkQmUoImZpbGVTaXpl
IiwgIjQiKTsKKworICAgICAgICBkZWJ1ZygidGVzdCB3cml0ZSgpIHdpdGggcGVuZGluZyBvcGVy
YXRpb246Iik7CisgICAgICAgIGV2YWxBbmRMb2coImFjY2Vzc0hhbmRsZS50cnVuY2F0ZSgwKSIp
OworICAgICAgICByZWFkQnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDQpOworICAgICAgICBzaG91
bGRUaHJvdygiYWNjZXNzSGFuZGxlLnJlYWQocmVhZEJ1ZmZlciwgeyBcImF0XCIgOiAwIH0pIik7
CisKKyAgICAgICAgYXdhaXQgYWNjZXNzSGFuZGxlLmNsb3NlKCk7CisgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsK
KyAgICB9Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3N5bmMtYWNjZXNz
LWhhbmRsZS1yZWFkLXdyaXRlLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVmNmJk
MWE5NzA2NTlhMDQ4NTIxNGMxZDJiM2M5Yzk1YTRiNWZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVh
ZC13cml0ZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK1tXb3JrZXJdIFRo
aXMgdGVzdCBjaGVja3MgcmVhZCBhbmQgd3JpdGUgY2FwYWJpbGl0aWVzIG9mIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3RhcnRp
bmcgd29ya2VyOiByZXNvdXJjZXMvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUuanMKK1BB
U1MgW1dvcmtlcl0gZmlsZVNpemUgaXMgMAorW1dvcmtlcl0gdGVzdCByZWFkKCkgYW5kIHdyaXRl
KCk6CitQQVNTIFtXb3JrZXJdIHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQ
QVNTIFtXb3JrZXJdIHJlYWRTaXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29y
a2VyXSByZWFkVGV4dCBpcyAiVGhpcyBpcyBmaXJzdCBzZW50ZW5jZS4iCitQQVNTIFtXb3JrZXJd
IHdyaXRlU2l6ZSBpcyB3cml0ZUJ1ZmZlci5ieXRlTGVuZ3RoCitQQVNTIFtXb3JrZXJdIHJlYWRT
aXplIGlzIHJlYWRCdWZmZXIuYnl0ZUxlbmd0aAorUEFTUyBbV29ya2VyXSByZWFkVGV4dCBpcyAi
VGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSByZWFkU2l6ZSBpcyByZWFk
QnVmZmVyLmJ5dGVMZW5ndGgKK1BBU1MgW1dvcmtlcl0gcmVhZFRleHQgaXMgIlRoaXMgaXMgZmly
c3Qgc2VudGVuY2UuVGhpcyBpcyBzZWNvbmQgc2VudGVuY2UuIgorUEFTUyBbV29ya2VyXSBhY2Nl
c3NIYW5kbGUucmVhZChuZXcgQXJyYXlCdWZmZXIoMSksIHsgImF0IiA6IE51bWJlci5NQVhfU0FG
RV9JTlRFR0VSIH0pIHRocmV3IGV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogRmFpbGVkIHRv
IHJlYWQgYXQgb2Zmc2V0LgorUEFTUyBbV29ya2VyXSBhY2Nlc3NIYW5kbGUud3JpdGUobmV3IEFy
cmF5QnVmZmVyKDEpLCB7ICJhdCIgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9KSB0aHJldyBl
eGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IEZhaWxlZCB0byB3cml0ZSBhdCBvZmZzZXQuCitb
V29ya2VyXSB0ZXN0IGZsdXNoKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXplIGlzIHRvdGFsV3Jp
dGVTaXplCitbV29ya2VyXSB0ZXN0IHRydW5jYXRlKCk6CitQQVNTIFtXb3JrZXJdIGZpbGVTaXpl
IGlzIDQKK1tXb3JrZXJdIHRlc3Qgd3JpdGUoKSB3aXRoIHBlbmRpbmcgb3BlcmF0aW9uOgorW1dv
cmtlcl0gYWNjZXNzSGFuZGxlLnRydW5jYXRlKDApCitQQVNTIFtXb3JrZXJdIGFjY2Vzc0hhbmRs
ZS5yZWFkKHJlYWRCdWZmZXIsIHsgImF0IiA6IDAgfSkgdGhyZXcgZXhjZXB0aW9uIEludmFsaWRT
dGF0ZUVycm9yOiBBY2Nlc3MgaGFuZGxlIGhhcyB1bmZpbmlzaGVkIG9wZXJhdGlvbi4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxl
LXJlYWQtd3JpdGUtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1h
Y2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjcxNmY3MWM4MDMwZGNkMTBjNjVkYTM4MzZlNGQ5NWM4YzI2M2VlNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1o
YW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgord29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNl
cy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS5qcycpOzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>